{"version":3,"sources":["lib/Form/Input.tsx","shared/UnreadMessages/store/unreadMessages.actions.ts","shared/UnreadAlerts/store/unreadAlerts.actions.ts","lib/Grid/index.ts","lib/Form/Validation/FormField.tsx","routing/path.ts","lib/Form/Validation/WithValidation.tsx","pages/AccountSettings/DeliveryPreferences/model.ts","pages/AlertsAndMessages/Alerts/models.tsx","style/theme/themeModule.ts","helpers/logging.ts","lib/OptionalRender.tsx","pages/Dividend/components/Plan/helpers/dividendPlanForm.utils.tsx","pages/Dividend/components/Details/helpers/dividendDetailsForm.constants.tsx","store/rootModel.ts","lib/Alert/Alert.tsx","style/style.constants.tsx","lib/Form/Button.tsx","pages/Dividend/components/Details/DividendDetailsForm.tsx","pages/Dividend/components/Payment/helpers/dividendPaymentForm.constants.tsx","lib/Form/Label.tsx","lib/Form/FormGroup.tsx","containers/CmsData/store lazy /^.*$/ groupOptions: {} namespace object","serviceWorker.ts","style/StylesProvider/StylesProvider.tsx","lib/Icon/IconsProvider.tsx","containers/Format/store/actions.ts","containers/Format/store/selectors.ts","containers/Animation/store/animation.actions.ts","containers/Format/FormatProvider/FormatProvider.tsx","containers/Format/store/reducer.ts","lib/Modal/store/reducer.ts","pages/AccountSettings/AccountProfile/store/accountProfile.reducer.ts","pages/Portfolio/store/reducer.ts","pages/AccountSettings/Address/store/address.reducer.ts","pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.reducer.ts","pages/AccountSettings/ProxyDeliveryPreferences/store/proxyDeliveryPreferences.reducer.ts","pages/AccountSettings/TaxCertification/store/taxCertification.reducer.ts","pages/Dividend/store/dividend.reducer.ts","containers/FormPersist/store/formPersist.reducer.ts","containers/Animation/store/animation.reducer.ts","pages/SecurityOverview/store/securityOverview.reducer.ts","shared/UnreadMessages/store/unreadMessages.reducer.ts","shared/UnreadAlerts/store/unreadAlerts.reducer.ts","pages/AlertsAndMessages/store/alertAndMessage.reducer.ts","store/rootReducer.ts","containers/Format/store/sagas.ts","pages/AccountSettings/AccountProfile/store/accountProfile.sagas.ts","pages/Portfolio/store/sagas.ts","pages/AccountSettings/Address/store/address.sagas.ts","pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.sagas.ts","pages/Dividend/store/dividend.sagas.ts","pages/AccountSettings/ProxyDeliveryPreferences/store/proxyDeliveryPreferences.sagas.ts","pages/AccountSettings/TaxCertification/store/taxCertification.sagas.ts","containers/Animation/store/animation.sagas.ts","pages/SecurityOverview/store/securityOverview.sagas.ts","pages/AlertsAndMessages/store/alertAndMessage.sagas.ts","shared/UnreadMessages/store/unreadMessages.sagas.ts","shared/UnreadAlerts/store/unreadAlerts.sagas.ts","store/rootSagas.ts","store/index.ts","AppBootstrap.tsx","NotFound.tsx","helpers/ScrollToTopProvider.tsx","shared/Header/RegistrationMenuMobile.tsx","shared/Header/RegistrationMenu.tsx","shared/Header/ProfileMenu.tsx","shared/Header/HeaderPresentation.tsx","shared/Header/HeaderPortal.tsx","shared/Header/HeaderProps.tsx","shared/Footer/FooterPresentation.tsx","shared/Footer/FooterPortal.jsx","shared/Footer/FooterProps.tsx","App.tsx","index.tsx","pages/AccountSettings/AccountProfile/store/__mock__/accountProfile.mock.ts","pages/AccountSettings/TaxCertification/__mock__/taxCertificationData.commons.mock.ts","pages/AlertsAndMessages/__mock__/alerts.api.mock.ts","pages/AlertsAndMessages/__mock__/messages.data.mock.ts","pages/AlertsAndMessages/__mock__/messages.api.mock.ts","pages/Dividend/store/__mock__/LoadSetupDetailsResponse.mock.ts","pages/DocumentsAndForms/__mock__/AccountsForDocuments.mock.tsx","pages/DocumentsAndForms/__mock__/EDeliveryDocument.mock.tsx","pages/DocumentsAndForms/__mock__/TaxForms.mock.tsx","pages/EmailAddressMismatch/__mock__/emailAddressMismatch.mock.tsx","pages/PendingSales/__mock__/pendingSales.mock.ts","pages/SecurityOverview/components/TransactionHistory/__mock__/transactionHistoryPlanSharesInfoResponse.mock.ts","pages/Shares/Buy/__mock__/companyList.mock.ts","pages/Shares/Buy/__mock__/companyPlan.mock.ts","pages/Shares/Buy/__mock__/companyPlanBrochure.mock.ts","pages/Shares/Buy/__mock__/investmentPreferencesResponse.mock.ts","pages/Shares/Buy/__mock__/accountsResponse.mock.ts","pages/Shares/Buy/__mock__/companyDeliveryOptions.mock.ts","pages/Shares/Buy/__mock__/accountDeliveryOptions.mock.tsx","pages/Shares/Buy/__mock__/automaticInvestmentResponse.mock.ts","pages/Shares/Buy/__mock__/accountSSNConfirm.mock.tsx","pages/Shares/Buy/__mock__/accountTaxIdConfirm.mock.tsx","pages/Shares/Buy/__mock__/registrationTypes.mock.ts","pages/Shares/Sell/__mock__/SellAccount.mock.ts","pages/Shares/Sell/__mock__/SaleOrder.mock.ts","pages/Shares/Sell/__mock__/SellShares.mock.ts","pages/SignUp/__mock__/securityQuestions.mock.tsx","pages/SignUp/__mock__/signup.mock.tsx","pages/TermsAndConditions/__mock__/termsAndConditions.mock.tsx","shared/DataStructures/BankAccount/BankAccount.mock.tsx","shared/UnreadAlerts/__mock__/unreadAlertsResponse.mock.ts","shared/UnreadMessages/__mock__/unreadMessagesResponse.mock.ts","pages/BrokerInstructions/__mock__/brokerInstructions.mock.ts","pages/AccountSettings/Address/store/__mock__/address.mock.ts","shared/BankInfo/BankInfoMocks.tsx","api/api.mocks.ts","shared/DataStructures/__mock__/index.tsx","pages/SignOn/ResetSecurityQuestion/__mock__/resetSecurityQuestion.mock.tsx","pages/SignOn/UnlockAccount/__mock__/unlockAccount.mock.tsx","pages/AccountSettings/TaxCertification/__mock__/taxCertificationData.mock.ts","pages/SignOn/ResetPassword/__mock__/resetPassword.mock.tsx","pages/SignOn/RecoverAccount/__mock__/recoverAccount.mock.tsx","pages/Shares/Buy/__mock__/index.ts","pages/Shares/Sell/__mock__/index.ts","pages/DocumentsAndForms/__mock__/index.tsx","pages/Espp/__mocks__/esppCompanies.mock.ts","pages/Espp/__mocks__/esppCompanyDetails.mock.ts","pages/Espp/__mocks__/esppAuthentication.mock.ts","pages/Espp/__mocks__/esppReviewPlan.mock.ts","pages/Espp/__mocks__/esppDeductions.mock.ts","pages/Wfsso/__mock__/wfsso.mock.tsx","lib/Form/WrappedField/FormGroupWrapper.tsx","containers/FormPersist/store/formPersist.selectors.ts","pages/AlertsAndMessages/store/alertAndMessage.actions.ts","style/theme/theme.ts","shared/DataStructures/BankAccount/BankAccount.model.tsx","pages/Dividend/components/Details/helpers/dividendDetailsForm.utils.tsx","lib/Spinner/Spinner.tsx","containers/CmsData/index.tsx","pages/AccountSettings/Address/store/address.actions.ts","pages/Dividend/components/Payment/helpers/dividendPaymentForm.model.tsx","pages/Shares/Sell/models/SellSharesSelectors.ts","lib/Form/LabelIconWithTooltip.tsx","lib/Modal/Templates/Modal.Wrapper.tsx","lib/Form/ChoiceGroup/RadioButtonGroup.tsx","pages/Shares/Sell/models/SellSharesRouting.ts","pages/SecurityOverview/store/securityOverview.actions.ts","lib/Form/Validation/ValidationError.tsx","lib/Panel/Panel.tsx","api/api.utils.ts","api/api.service.constants.ts","api/api.service.ts","lib/Modal/Templates/Modal.Info.tsx","lib/Modal/Modal.Root.tsx","containers/CmsData/store/cmsData.hooks.tsx","lib/Form/Validation/validation.utils.ts","pages/AccountSettings/Address/store/address.enums.ts","routing/routes.ts","pages/Shares/Sell/models/SellSharesTypes.ts","pages/TermsAndConditions/model.ts","containers/CmsData/CmsDataProvider.tsx","pages/Dividend/components/Payment/DividendPaymentSecondaryAddress.tsx","pages/Dividend/components/Payment/DividendPaymentOnlyOption.tsx","pages/Dividend/components/Payment/helpers/dividendPaymentForm.builder.tsx","style/theme/defaultColors.ts","style/theme/defaultTypography.ts","style/theme/branding.ts","pages/Shares/Buy/model/steps.ts","pages/AccountSettings/AccountProfile/store/accountProfile.actions.ts","lib/LoadFailedMessage/LoadFailedMessage.tsx","lib/Typography/index.tsx","style/theme/hooks.ts","lib/ActionLink/ActionLink.tsx","lib/LoadHandler/IncompleteLoadContainer.tsx","lib/LoadHandler/LoadHandler.tsx","lib/LoadHandler/index.tsx","routing/routing.utils.ts","lib/Form/Select/FormikSelect.tsx","lib/Form/Select/index.tsx","lib/Form/Select/select.constants.ts","lib/Form/Select/select.styles.tsx","lib/Form/Select/SelectArrow.tsx","lib/Form/Select/BaseSelect.tsx","config.ts","pages/Shares/Shared/utils.ts","lib/SimpleSpinner/SimpleSpinner.tsx","containers/FormPersist/store/formPersist.actions.ts","pages/Dividend/store/dividend.selectors.ts","lib/Form/InputMask.tsx","lib/Form/ChoiceGroup/Checkbox.tsx","containers/CmsData/store/cmsData.model.ts","pages/Shares/Sell/models/SellSharesHooks.ts","pages/Dividend/store/dividend.constants.ts","lib/Form/GroupLabel.tsx","lib/Form/FormControl.tsx","shared/Data/Array.tsx","pages/Shares/Sell/Steps/SaleOrderDetailsStep/SaleOrderDetails.model.tsx","containers/CmsData/store/cmsData.mapper.ts","containers/CmsData/store/cmsData.constants.ts","shared/BankInfo/BankInfoDisplay.tsx","shared/BankInfo/BankInfo.tsx","shared/BankInfo/BankInfoEffects.tsx","routing/api.ts","routing/__mock__/api.mock.ts","shared/DataStructures/index.tsx","lib/Form/FormEffect.tsx","containers/FormPersist/store/formPersist.utils.ts","lib/Panel/Suffix.tsx","pages/Dividend/components/Details/helpers/dividendDetailsForm.builder.tsx","shared/UnreadRoundel/UnreadRoundel.tsx","lib/HelpText/HelpText.tsx","style/index.ts","pages/Shares/Sell/models/SellSharesTranslationMaps.ts","pages/Shares/Sell/models/index.ts","pages/PendingSales/model/types.ts","lib/Panel/Header.tsx","pages/Portfolio/store/actions.ts","lib/Panel/Footer.tsx","lib/CollapsibleHelp/index.tsx","pages/Shares/Buy/model/company.ts","lib/Tooltip/Tooltip.tsx","pages/Dividend/components/shared/DividendFormActions.tsx","lib/Form/FormActions.tsx","pages/Dividend/components/Plan/helpers/dividendPlanForm.constants.tsx","pages/Dividend/components/shared/DividendFormValidStatusEffect.tsx","lib/Modal/Templates/Modal.Confirm.tsx","lib/Typography/Typography.tsx","containers/FormPersist/FormPersist.tsx","lib/CollapsibleHelp/CollapsibleHelp.tsx","shared/BankInfo/AccountNumberObfuscationHelper.ts","lib/Grid/Grid/Grid.tsx","pages/Shares/Buy/Steps/SelectCompany/utils.ts","lib/Grid/Row/Row.tsx","lib/Form/PercentageInput/index.tsx","pages/Dividend/components/Plan/helpers/dividendPlanForm.builder.tsx","lib/Form/InputIconContainer.tsx","lib/Form/Select/ControlledSelect.tsx","lib/Form/WrappedField/FormGroupRadioGroup.tsx","lib/Modal/Templates/Modal.Basic.tsx","lib/Modal/Templates/Modal.Agreement.tsx","lib/Grid/Col/Col.tsx","pages/AccountSettings/Address/store/__mock__/address.commons.mock.ts","store/reduxBoilerplate.ts","lib/Modal/store/actions.ts","pages/Shares/Sell/models/SellSharesContext.tsx","pages/AccountSettings/DeliveryPreferences/utils.ts","lib/Panel/Divider.tsx","shared/Data/index.tsx","lib/Form/ChoiceGroup/Radio.tsx","lib/Form/ChoiceGroup/CheckboxGroup.tsx","lib/Form/LabeledValue/LabeledValue.tsx","lib/Form/ReadOnlyField.tsx","lib/Form/DatePicker/DatePickerContainer.tsx","lib/Form/DatePicker/DatePickerHeader.tsx","lib/Form/DatePicker/DatePickerInput.tsx","lib/Form/DatePicker/DatePicker.tsx","lib/Form/FieldDescription.tsx","lib/Form/DynamicForm.tsx","lib/Form/index.ts","pages/Dividend/store/dividend.utils.ts","pages/Dividend/store/dividend.actions.ts","lib/Form/ChoiceGroup/RadioButton.tsx","pages/Dividend/components/Payment/helpers/dividendPaymentForm.utils.tsx","pages/AlertsAndMessages/Alerts/Alerts.hook.tsx","shared/DataStructures/Country/index.tsx","shared/DataStructures/Country/Country.hooks.tsx","shared/DataStructures/InternationalACHSetupDetails/index.tsx","shared/DataStructures/InternationalACHSetupDetails/InternationalACHSetupDetails.hooks.tsx","pages/Dividend/store/dividend.model.ts","style/theme/utils.ts","lib/Panel/Content.tsx","shared/RegExp/mapValidationFormatStringToRegExp.ts","lib/FormPremades/WireTransferPayment/index.tsx","pages/AccountSettings/ProxyDeliveryPreferences/utils.ts","shared/UnreadMessages/UnreadMessagesBadge.tsx","shared/UnreadAlerts/UnreadAlertsBadge.tsx","lib/FormPremades/WireTransferPayment/WireTransferPaymentUtils.tsx","lib/FormPremades/WireTransferPayment/FieldGroups/WireTransferPaymentPreAmbleForm.tsx","lib/FormPremades/WireTransferPayment/FieldGroups/BankDetailsForm.tsx","lib/FormPremades/WireTransferPayment/FieldGroups/BeneficiaryPaymentForm.tsx","lib/FormPremades/WireTransferPayment/WireTransferPaymentForm.tsx","lib/FormPremades/WireTransferPayment/FieldGroups/BeneficiaryPaymentFormValidation.tsx","lib/FormPremades/WireTransferPayment/FieldGroups/BankDetailsFormValidation.tsx","lib/FormPremades/WireTransferPayment/WireTransferPaymentFormValidation.tsx","shared/DataStructures/BankAccount/BankAccount.hooks.tsx","shared/DataStructures/BankAccount/index.tsx","pages/AccountSettings/ProxyDeliveryPreferences/store/proxyDeliveryPreferences.actions.ts","api/api.hooks.ts","lib/Icon/Icon.tsx","pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.actions.ts","pages/AccountSettings/TaxCertification/store/taxCertification.actions.ts","lib/Form/WrappedField/FormGroupDate.tsx","lib/Form/WrappedField/FormGroupInput.tsx","lib/Form/WrappedField/FormGroupDisplay.tsx","lib/Form/WrappedField/FormGroupSelect.tsx","lib/Form/WrappedField/FormGroupCheckbox.tsx","lib/Form/WrappedField/index.ts","pages/AccountSettings/shared/accountSettings.enums.ts"],"names":["Input","withValidation","props","field","hasError","restProps","Object","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2___default","a","createElement","Container","assign","styled","_ref","hasIcon","children","rest","reactstrap__WEBPACK_IMPORTED_MODULE_3__","_templateObject","p","concat","theme","colors","error","type","withAutoHeight","input","focusColor","__webpack_require__","d","__webpack_exports__","UnreadMessagesActionTypes","unreadMessagesActions","_store_reduxBoilerplate__WEBPACK_IMPORTED_MODULE_0__","AT","init","createAction","INIT","setStarted","SET_STARTED","update","UPDATE","updateFail","UPDATE_FAIL","updateDone","payload","UPDATE_DONE","UnreadAlertsActionTypes","unreadAlertsActions","_Grid_Grid__WEBPACK_IMPORTED_MODULE_0__","_Row_Row__WEBPACK_IMPORTED_MODULE_1__","_Col_Col__WEBPACK_IMPORTED_MODULE_2__","FormField","onChange","onBlur","fieldKey","formProps","placeholder","isRequired","className","innerRef","id","render","react__WEBPACK_IMPORTED_MODULE_3___default","formik__WEBPACK_IMPORTED_MODULE_2__","name","data-test-id","e","handleChange","status","_formProps$status","newStatus","map","_toPropertyKey","setStatus","unsetFormikStatus","handleBlur","_ref2","primary1","securityOverviewPath","dividendPath","sellKnownSharePath","accountSettingsPath","portfolioPath","messagePath","messageReplyPath","pendingSalesPath","costBasisDetailsPath","matchDocumentsAndFormsPath","buyVerifyRegistrationPath","buyInPlanAccountsPath","_pages_Shares_Sell_models_SellSharesRouting__WEBPACK_IMPORTED_MODULE_0__","_routes__WEBPACK_IMPORTED_MODULE_1__","accountNumber","issueNumber","activeTab","ROUTES","securityOverview","replace","dividends","subPath","SELL_SHARES_PATHS","SELL_SHARES_STEPS","SelectCompany","sellShares","panel","accountId","accountSettings","portfolio","messageId","individualMessage","messageReply","saleId","pendingSale","taxLotId","costBasisDetails","location","match","split","pop","eDelivery","taxForms","shareBalance","unknown","buySharesVerifyRegistration","buyInAccountsPath","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","WrappedComponent","form","hasVisibleError","errors","touched","DeliveryTypes","FORM_KEYS","getValidationSchema","_t","_object$shape","_object$shape2","object","shape","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__","setAllToEDelivery","string","required","deliveryPreferences","array","when","is","BINARY","No","then","of","number","accountStatements","shareOwnerCommunications","directDepositNotice","getInitialValues","data","Yes","accounts","initialDeliveryPreferences","account","String","AlertType","mapAlertResponseItemToAlertFactory","cmsData","response","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","alertType","OutstandingChecks","actionTitle","c30OutstandingChecksDescription","actionText","c40OutstandingChecksHyperlink","buttonText","c60OutstandingChecksPrimaryButton","UndeliverableAddress","c70UndeliverableAddressDescription","c80UndeliverableAddressHyperlink","c90UndeliverableAddressPrimaryButton","TaxCertified","c100TaxCertifiedDescription","c110TaxCertifiedHyperlink","c120TaxCertifiedPrimaryButton","FirstBNotice","c130FirstBNoticeDescription","c140FirstBNoticeHyperlink","c150FirstBNoticePrimaryButton","SecondBNotice","c160SecondBNoticeDescription","c170SecondBNoticeHyperlink","c180SecondBNoticePrimaryButton","CNotice","c190CNoticeDescription","c200CNoticeHyperlink","c210CNoticePrimaryButton","AccountReCertification","c220AccountRecertificationDescription","c230AccountRecertificationHyperlink","c240AccountRecertificationPrimaryButton","EmailNotSet","c250EmailNotSetDescription","c260EmailNotSetHyperlink","c270EmailNotSetPrimaryButton","PasswordExpiry","c280PasswordExpiryDescription","c290PasswordExpiryHyperlink","c300PasswordExpiryPrimaryButton","getAlertTexts","icon","getAlertIcon","accountNumberLabel","c50AccountNumberLabel","css","keyframes","createGlobalStyle","ThemeProvider","styledComponents","default","logInfo","logWarning","logError","LogLevel","LOG_LEVEL","process","REACT_APP_LOG_LEVEL","typeToLoggerMap","info","msg","metadata","console","log","warn","isLogEnabled","logType","undefined","parseLogLevel","message","CI","OptionalRender","shouldRender","component","getDividendPlanInitialValues","dripDetails","reinvestDividends","getReinvestInitialOption","reinvestAllShares","getReinvestAllInitialOption","quantityToReinvestAbsolute","quantityToCash","quantityToReinvestPercentage","reinvestmentPercent","getDividendPlanFormValidationSchema","cmsLabel","reinvestmentOptions","includesReinvestment","types","some","o","reinvestmentType","quantityOfSharesAllowed","ReinvestmentType","RPY","RPN","quantityOfCashAllowed","PSY","PSN","sharePercentageAllowed","RXY","RXN","reinvestPlanSharesAllowed","option","RVY","reinvestmentOptionsPairCount","filter","pair","length","isIssueOfferOnlyFullReinvestment","notRequired","val","isTrue","RD","otherwise","partialReinvestmentType","isFalse","typeError","PartialReinvestmentType","Shares","integer","min","max","getNumberOfSharesEligibleForReinvestment","Cash","reinvestPlanShares","getDividendPlanFormNextStep","dividendDetailsFormValues","getDividendDetailsNextStep","secondStep","DividendStep","Payment","Confirm","indicatorKey","indicatorValue","numberOfPlanShares","numberOfDRSShares","numberOfCertificateShares","Number","MAX_VALUE","getNumberOfSharesEligibleByIndicatorValue","getIndicatorValue","indicator","issuedUnissuedIndicators","find","i","getReinvestmentType","reinvestment","DividendReinvestment","RX","RP","PS","RV","getIndicator","isReinvestmentPreselected","reinvestOptions","_getFlattenReinvestme","getFlattenReinvestmentTypes","containFullReinvestment","containReinvestmentOptions","containNoReinvestmentOptions","shouldSkipPaymentStep","containsRD","containsRP0","RP0","issueOfferOnlyFullReinvestment","newUserManagingDividends","isNewUserManagingDividends","doesNotAllowPayment","DIVIDEND_DETAILS_FORM_KEYS","ProgressTypeEnum","Alert","color","dismissible","fullWidth","onClose","small","noVerticalMargin","hideEmpty","react_default","data-testid","toggle","UncontrolledAlert","div","BUTTON_MARGIN_LEFT","BUTTON_MARGIN_VERTICAL","Button","iconOnLeft","iconSize","ButtonIconComp","ButtonIcon","leftIcon","rightIcon","ButtonContainer","activeShadow","disabled","hoverShadow","outlineShadow","styleType","hexToRgbA","primary3","primary4","primary2","getOutlineColor","size","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__","px","button","height","borderRadius","white","join","media","tablet","andUp","desktop","Icon","_templateObject2","DividendDetailsEditType","DividendDetailsForm","react_redux__WEBPACK_IMPORTED_MODULE_1__","connected_react_router__WEBPACK_IMPORTED_MODULE_2__","formik__WEBPACK_IMPORTED_MODULE_3__","_containers_CmsData__WEBPACK_IMPORTED_MODULE_4__","_containers_FormPersist_FormPersist__WEBPACK_IMPORTED_MODULE_5__","_containers_FormPersist_store_formPersist_selectors__WEBPACK_IMPORTED_MODULE_6__","_lib_Form__WEBPACK_IMPORTED_MODULE_7__","_routing_path__WEBPACK_IMPORTED_MODULE_8__","_store_dividend_actions__WEBPACK_IMPORTED_MODULE_9__","_store_dividend_model__WEBPACK_IMPORTED_MODULE_10__","_store_dividend_selectors__WEBPACK_IMPORTED_MODULE_11__","_store_dividend_utils__WEBPACK_IMPORTED_MODULE_12__","_shared_DividendFormActions__WEBPACK_IMPORTED_MODULE_13__","_shared_DividendFormValidStatusEffect__WEBPACK_IMPORTED_MODULE_14__","_helpers_dividendDetailsForm_builder__WEBPACK_IMPORTED_MODULE_15__","_helpers_dividendDetailsForm_constants__WEBPACK_IMPORTED_MODULE_16__","_helpers_dividendDetailsForm_utils__WEBPACK_IMPORTED_MODULE_17__","_helpers_logging__WEBPACK_IMPORTED_MODULE_18__","DEFAULT_VALUES","editType","enrolInPlan","changePaymentType","formValues","formSetFieldValue","connect","state","formValuesFromStore","getPersistedFormValues","PersistedDividendForm","Details","isFormInitiallyValid","dispatch","onCancel","useCmsData","fields","getDividendDetailsFormFields","isChangePlanButton","reinvestmentOptionsAvailable","hasReinvestmentOptions","isFullDividendsReinvestment","showChangePlanButton","isManagementAllowed","isDividendManagementAllowed","submitText","isFullDividendsReinvestmentEnabled","isNextStepVisible","useEffect","Both","onCancelChecked","useCallback","initialValues","isInitialValid","validationSchema","getDividendDetailsFormValidationSchema","onSubmit","values","setFieldValue","formKey","isValid","isFormValid","submitButtonType","nextStep","firstStep","dividendActions","setActiveStep","Plan","push","submitDisabled","onBack","backText","backButtonStyleType","cancelText","DIVIDEND_PAYMENT_FORM_KEYS","paymentMethod","paymentMethodType","createNewAccount","bankAccountNumber","useSecondaryAddress","secondaryAddressFormAction","secondaryAddressData","secondaryAddress","countryCode","addressLine1","addressLine2","addressLine3","addressLine4","city","zipCode","zipCodeOptional","wireTransferData","newDirectDepositUSBankAccountNumber","newDirectDepositUSBankName","newDirectDepositUSRoutingNumber","newDirectDepositUSBankAccountType","newDirectDepositINTBankCountry","newDirectDepositINTBankAccountNumber","newDirectDepositINTIBAN","newDirectDepositINTRoutingNumber","newDirectDepositINTSwiftBicCode","newDirectDepositINTBankName","newDirectDepositINTBankCity","Label","forChoice","check","fontWeight","normal","FormGroup","./__mock__/SignOn/recoverUsername.cmsData.mock","./__mock__/SignOn/recoverUsername.cmsData.mock.tsx","./__mock__/accountSettings.cmsData.mock","./__mock__/accountSettings.cmsData.mock.ts","./__mock__/alertsAndMessages.cmsData.mock","./__mock__/alertsAndMessages.cmsData.mock.ts","./__mock__/all.cmsData.mock","./__mock__/all.cmsData.mock.ts","./__mock__/authenticatedBuy.cmsData.mock","./__mock__/authenticatedBuy.cmsData.mock.ts","./__mock__/authenticatedSell.cmsData.mock","./__mock__/authenticatedSell.cmsData.mock.ts","./__mock__/brokerInstructions.cmsData.mock","./__mock__/brokerInstructions.cmsData.mock.ts","./__mock__/checks.cmsData.mock","./__mock__/checks.cmsData.mock.ts","./__mock__/commonErrorMessages.cmsData.mock","./__mock__/commonErrorMessages.cmsData.mock.ts","./__mock__/companyPlans.cmsData.mock","./__mock__/companyPlans.cmsData.mock.ts","./__mock__/components.cmsData.mock","./__mock__/components.cmsData.mock.ts","./__mock__/contact.cmsData.mock","./__mock__/contact.cmsData.mock.ts","./__mock__/countryGlossary.cmsData.mock","./__mock__/countryGlossary.cmsData.mock.ts","./__mock__/dashboard.cmsData.mock","./__mock__/dashboard.cmsData.mock.ts","./__mock__/dividend.cmsData.mock","./__mock__/dividend.cmsData.mock.ts","./__mock__/documentsAndForms.cmsData.mock","./__mock__/documentsAndForms.cmsData.mock.ts","./__mock__/emailAddressMismatch.cmsData.mock","./__mock__/emailAddressMismatch.cmsData.mock.ts","./__mock__/espp.cmsData.mock","./__mock__/espp.cmsData.mock.ts","./__mock__/glossary.cmsData.mock","./__mock__/glossary.cmsData.mock.ts","./__mock__/internationalPaymentsHelp.cmsData.mock","./__mock__/internationalPaymentsHelp.cmsData.mock.ts","./__mock__/login.cmsData.mock","./__mock__/login.cmsData.mock.ts","./__mock__/marketData.cmsData.mock","./__mock__/marketData.cmsData.mock.ts","./__mock__/portfolio.cmsData.mock","./__mock__/portfolio.cmsData.mock.ts","./__mock__/securityOverview.cmsData.mock","./__mock__/securityOverview.cmsData.mock.ts","./__mock__/shared.cmsData.mock","./__mock__/shared.cmsData.mock.ts","./__mock__/signOnIssues.cmsData.mock","./__mock__/signOnIssues.cmsData.mock.tsx","./__mock__/signUp.cmsData.mock","./__mock__/signUp.cmsData.mock.ts","./__mock__/termsAndConditions.cmsData.mock","./__mock__/termsAndConditions.cmsData.mock.ts","./__mock__/wfsso.cmsData.mock","./__mock__/wfsso.cmsData.mock.ts","./__test__/cmsData.hooks.test","./__test__/cmsData.hooks.test.ts","./__test__/cmsData.utils.test","./__test__/cmsData.utils.test.tsx","./__test__/cmsDataTesting.utils","./__test__/cmsDataTesting.utils.tsx","./cmsData.actions","./cmsData.actions.ts","./cmsData.constants","./cmsData.constants.ts","./cmsData.hooks","./cmsData.hooks.factory","./cmsData.hooks.factory.tsx","./cmsData.hooks.tsx","./cmsData.mapper","./cmsData.mapper.ts","./cmsData.model","./cmsData.model.ts","./cmsData.utils","./cmsData.utils.tsx","webpackAsyncContext","req","Promise","resolve","Error","code","ids","all","slice","keys","module","exports","Boolean","window","hostname","StylesProvider","themeModule","IconsProvider","Fragment","library","add","faBell","faCalendar","faCircle","faChevronLeft","faChevronRight","faChevronDown","faChevronUp","faCheck","faDesktop","faIdCard","faIdCardAlt","faPlus","faMinus","faTimes","faUserFriends","faUser","faTv","faPaperPlane","faEnvelope","faEnvelopeOpen","faAddressCard","faQuestionCircle","faArrowAltCircleUp","faArrowAltCircleDown","faAngleRight","faSlidersH","faSort","faSortUp","faSortDown","faSortAmountUp","faSortAmountDown","faPrint","faFileDownload","faEdit","faTrash","faComment","faPhone","faExternalLinkSquareAlt","faWindowClose","faFilePdf","faSearch","faChartArea","faHouseDamage","faFileExcel","faFileAlt","faClock","LOAD_TRANSLATIONS","formatActions","loadTranslations","loadTranslationsDone","translations","loadTranslationsFail","setCurrency","currency","setLocale","locale","isFormatDataLoaded","_state$format","format","AnimationActionTypes","Component","this","_this$props","loaded","lib_index_es","messages","Spinner","React","FormatProvider","formatReducer","createReducer","draft","action","modalInitialState","modalType","modalProps","modalReducer","_action$payload","objectSpread","defineProperty","prop","value","initialState","progressType","Initial","accountProfileReducer","AccountProfileActionTypes","LOAD","Loading","LOAD_DONE","Loaded","LOAD_FAIL","LoadFailed","SET_EDIT_MODE","fieldInEditMode","UNSET_EDIT_MODE","apiErrors","usernameExists","passwordHistoryCount","SET_CONFIRM_MODE","fieldInConfirmMode","confirmData","UNSET_CONFIRM_MODE","UPDATE_FIELD","fieldInUpdatingMode","UPDATE_FIELD_DONE","UPDATE_FIELD_FAIL","CHECK_USERNAME","checkUsernameProgressType","CHECK_USERNAME_DONE","exist","CHECK_USERNAME_FAIL","CHECK_PASSWORD","checkPasswordProgressType","CHECK_PASSWORD_DONE","CHECK_PASSWORD_FAIL","VALIDATE_CURRENT_PASSWORD","VALIDATE_CURRENT_PASSWORD_DONE","VALIDATE_CURRENT_PASSWORD_FAIL","CHECK_EMAIL_BATCH","CHECK_EMAIL_BATCH_DONE","saveEmailAddressPending","CHECK_EMAIL_BATCH_FAIL","RESET","accountPortfolioReducer","companyPlan","portfolioData","selectedInvestmentDetails","automaticInvestmentData","companies","companyPlanBrochures","fieldProgressType","previewProgressType","accountIdInEditMode","viewData","confirmPrimaryAddressProgressType","addressLines","secondaryAddressProgressType","inquiryMode","addressReducer","AddressActionTypes","LOAD_COUNTRIES","LOAD_US_STATES","LOAD_PROVINCES","LOAD_PREVIEW","formRecentlyUpdated","LOAD_ADDRESS_FORMATS","currentCountryName","LOAD_PREVIEW_DONE","previewData","LOAD_ADDRESS_FORMATS_DONE","addressFormat","countryName","LOAD_COUNTRIES_FAIL","LOAD_US_STATES_FAIL","LOAD_PROVINCES_FAIL","LOAD_PREVIEW_FAIL","DELETE","UPDATE_FORM","formInUpdatingMode","formName","UPDATE_FORM_DONE","formInEditMode","DELETE_DONE","UPDATE_FORM_FAIL","DELETE_FAIL","LOAD_ADDRESS_FORMATS_FAIL","LOAD_COUNTRIES_DONE","countries","LOAD_US_STATES_DONE","usStates","LOAD_PROVINCES_DONE","canadaProvinces","formRecentlyClosed","isSeasonalAddressBatchPending","isPrimaryAddressBatchPending","SET_DELETE_MODE","formInDeleteMode","UNSET_DELETE_MODE","SET_PREVIEW_MODE","formInPreviewMode","UNSET_PREVIEW_MODE","CHECK_SEASONAL_ADDRESS_BATCH_DONE","CHECK_PRIMARY_ADDRESS_BATCH_DONE","CONFIRM_PRIMARY_ADDRESS","CONFIRM_PRIMARY_ADDRESS_DONE","recentlyConfirmedAddress","CONFIRM_PRIMARY_ADDRESS_FAIL","UNSET_RECENTLY_CLOSED_FORM","LOAD_SECONDARY_ADDRESS","LOAD_SECONDARY_ADDRESS_DONE","LOAD_SECONDARY_ADDRESS_FAIL","editMode","displayConfirm","confirming","deliveryPreferencesReducer","DeliveryPreferencesActionTypes","SET_CONFIRM_ON","SET_CONFIRM_OFF","CONFIRM","CONFIRM_DONE","proxyDeliveryPreferencesReducer","ProxyDeliveryPreferencesActionTypes","SET_EDIT_MODE_ON","SET_EDIT_MODE_OFF","CONFIRM_FAIL","taxCertificationReducer","TaxCertificationActionTypes","taxCertificationData","activeStep","externallyValidatedPaymentFields","secondaryAddressPreview","secondaryAddressInquiryMode","dividendsUpdateInquiryMode","DividendsActionTypes","dividendReducer","LOAD_DETAILS_DONE","dividendDetails","LOAD_SETUP_DETAILS","loadingSetupDetails","LOAD_SETUP_DETAILS_DONE","setupDetails","LOAD_SETUP_DETAILS_FAIL","VALIDATE_PAYMENT_FIELD_FORMAT","loading","valid","VALIDATE_PAYMENT_FIELD_FORMAT_DONE","result","VALIDATE_PAYMENT_FIELD_FORMAT_FAIL","SET_ACTIVE_STEP","step","SET_PAYMENT_SKIPPED","skippedPaymentStep","skipped","SET_PERSISTED_FORM_VALID_STATUS","key","persistedFormsValidStatusMap","updateProgressType","SECONDARY_ADDRESS_UPDATE_PREVIEW","SECONDARY_ADDRESS_SET_INQUIRY","DIVIDENDS_UPDATE_SET_INQUIRY","FormPersistActionTypes","formPersistReducer","forms","SET","UNSET","forEach","k","animationActions","setRecentlyClosedField","SET_RECENTLY_CLOSED_FIELD","unsetRecentlyClosedField","UNSET_RECENTLY_CLOSED_FIELD","animationReducer","SecurityOverviewActionTypes","securityOverviewReducer","LOAD_DETAILS","securityDetails","LOAD_DETAILS_FAIL","SET_TRANSACTION_DATA","transactionData","UNSET_TRANSACTION_DATA","started","unreadMessagesReducer","unreadAlertsReducer","alertsAndMessagesInitialState","alertsAndMessagesReducer","currentMessage","createRootReducer","history","combineReducers","router","connectRouter","accountProfile","accountPortfolio","accountAddress","proxyDeliveryPreferences","taxCertification","modal","formPersist","animation","unreadMessages","unreadAlerts","alertsAndMessages","formatSaga","regenerator_default","wrap","_context","prev","next","takeEvery","stop","_marked","_context2","put","accountOverview.title","accountOverview.totalAssetValue","accountOverview.viewPortfolio","accountOverview.accountValue","accountOverview.company","accountOverview.numberOfShares","common.failedLoadData","_marked2","accountProfileSaga","validateCurrentPassword","checkIsEmailBatchPending","loadAccountProfileData","updateField","unsetEditMode","checkUsername","checkPassword","accountProfile_sagas_marked","call","ApiService","post","APP_CONFIG","api","sent","accountProfileActions","validateCurrentPasswordDone","setConfirmMode","validateCurrentPasswordFail","t0","accountProfile_sagas_marked2","_response","_context3","get","checkEmailBatchPending","checkEmailBatchPendingDone","checkEmailBatchPendingFail","_marked3","_response2","_context4","load","loadDone","loadFail","_marked4","_action$payload2","_context5","success","updateFieldDone","unsetConfirmMode","executionStatus","modalActions","openConfirmModal","updateFieldFail","_marked5","_context6","_marked6","_response3","_context7","encodeURIComponent","username","checkUsernameDone","checkUsernameFail","_marked7","_response4","_context8","newPassword","password","checkPasswordDone","checkPasswordFail","_marked8","accountPortfolioSaga","loadAccountPortfolio","redirectToSellShare","loadAccounts","loadInvestmentDetails","LOAD_ACCOUNT_PORTFOLIO","LOAD_INVESTMENT_DETAILS","REDIRECT_TO_SELL_SHARE","LOAD_ACCOUNT_AND_REDIRECT_TO_BUY_SHARES","sagas_marked","sortOptions","partial","accountPortfolioActions","addAvailableAccounts","sagas_marked2","sagas_marked3","flow","BuyFlow","BuyInPlanExistingAccount","selectedAccountIndex","sagas_marked4","companiesResponse","currentSecurity","investmentDetailsResponse","automaticInvestmentResponse","securityTypeBrochureResponse","extendedInvestmentDetailsData","investment","companySecurityTypes","getSecurityWithIssueId","issueId","investmentPreferences","automaticInvestment","userRegionCode","companyPlanBrochure","COMPANY_PLAN_TYPE","accountNumberFromPortfolioFlow","issueNumberFromPortfolioFlow","loadInvestmentDetailsDone","loadAutomaticInvestmentDone","loadCompanyBrochuresDone","loadCompaniesDone","loadCompanyPlanDone","BuyInPlanEditFromPortfolio","loadInvestmentDetailsFail","sagas_marked5","accountAddressSaga","loadAccountAddressData","loadAccountAddressCountriesData","loadAccountAddressUsStatesData","loadAccountAddressProvinces","loadAccountAddressPreviewData","loadAccountAddressFormatsData","deleteAddress","checkBatchAndDeleteSeasonalAddress","checkBatchAndEditAddress","confirmPrimaryAddressValidity","loadSecondaryAddressData","CHECK_AND_DELETE_SEASONAL_ADDRESS_BATCH","CHECK_AND_EDIT_ADDRESS_BATCH","address_sagas_marked","addressActions","address_sagas_marked2","loadCountriesDone","loadCountriesFail","address_sagas_marked3","loadUsStatesDone","loadUsStatesFail","address_sagas_marked4","provinces","loadProvincesDone","loadProvincesFail","address_sagas_marked5","preview","AddressFormEnum","requestData","loadPreviewDone","loadPreviewFail","address_sagas_marked6","registrationCode","_response5","loadAddressFormatsDone","loadAddressFormatsFail","address_sagas_marked7","method","_response6","updateModalProp","create","change","updateFormDone","updateFormFail","address_sagas_marked8","_response7","_context9","delete","deleteDone","deleteFail","_marked9","_action$payload3","batchPendingModalProps","_response8","_context10","checkSeasonalAddressBatchPending","checkSeasonalAddressBatchDone","setDeleteMode","checkAddressBatchFail","_marked10","_action$payload4","isPrimary","_response9","_context11","primary","checkPrimaryAddressBatchPending","checkPrimaryAddressBatchDone","setPreviewMode","_marked11","_action$payload5","inquiryModeModalProps","confirmFailedModalProps","genericError","_response10","_context12","errorCode","confirm","confirmPrimaryAddressDone","closeModal","confirmPrimaryAddressFail","openModal","ModalComponents","INFO_MODAL","_marked12","_context13","delay","unsetRecentlyClosedForm","_marked13","_action$payload6","_response11","_context14","secondaryAddressGet","loadSecondaryAddressDone","loadSecondaryAddressFail","_marked14","deliveryPreferencesSaga","loadDeliveryPreferencesData","updatePreferencesData","deliveryPreferences_sagas_marked","deliveryPreferencesActions","deliveryPreferences_sagas_marked2","select","updateDeliveryData","confirmDone","inquiryModalProps","confirmFail","deliveryPreferences_sagas_marked3","dividendsSaga","loadDetails","loadSetupDetails","validatePaymentFieldFormat","getPreview","SECONDARY_ADDRESS_GET_PREVIEW","dividend_sagas_marked","loadDripDetails","loadSecondaryAddress","loadDetailsDone","loadDetailsFail","dividend_sagas_marked2","loadSetupDetailsDone","loadSetupDetailsFail","dividend_sagas_marked3","updateFn","setErrorFn","request","_response2$data","paddedValue","validatePaymentFieldFormatDone","validatePaymentFieldFormatFail","dividend_sagas_marked4","paymentValues","createAddressData","secondaryAddressResponse","deleteSecondaryAddressResponse","getUpdateDividendRequest","SecondaryAddressFormAction","Change","getSecondaryAddressRequestData","secondaryAddressAdd","abrupt","setSecondaryAddressInquiryMode","Remove","secondaryAddressRemove","Summary","setUpdateDividendsInquiryMode","dividend_sagas_marked5","paymentFormValues","dividendSecondaryAddressActions","updatePreview","dividend_sagas_marked6","proxyDeliveryPreferencesSaga","loadProxyDeliveryPreferencesData","updateProxyDeliveryPreferences","proxyDeliveryPreferences_sagas_marked","proxyDeliveryPreferencesActions","proxyDeliveryPreferences_sagas_marked2","preferences","updateProxyDeliveryData","proxyDeliveryPreferences_sagas_marked3","taxCertificationSaga","loadTaxCertificationData","loadCitizenshipCountriesData","taxCertification_sagas_marked","taxCertificationActions","loadCountries","take","taxCertification_sagas_marked2","taxCertification_sagas_marked3","animationSaga","animation_sagas_marked","animation_sagas_marked2","securityOverviewSaga","redirectToAccountSettings","REDIRECT_TO_ACCOUNT_SETTINGS","securityOverview_sagas_marked","details","securityOverviewActions","securityOverview_sagas_marked2","securityOverview_sagas_marked3","alertAndMessageSaga","openMessage","openMessages","openAlerts","openReply","openAlertsAndMessages","openNewMessage","goToPreviousPage","OPEN_MESSAGE","OPEN_REPLY","OPEN_MESSAGES","OPEN_ALERTS","OPEN_NEW_MESSAGE","OPEN_ALERTS_AND_MESSAGES","GO_BACK","alertAndMessage_sagas_marked","alertAndMessage_sagas_marked2","alertAndMessage_sagas_marked3","alerts","alertAndMessage_sagas_marked4","alertAndMessage_sagas_marked5","alertAndMessage_sagas_marked6","alertsAndMessagesContactUs","alertAndMessage_sagas_marked7","goBack","alertAndMessage_sagas_marked8","unreadMessagesSaga","updateUnreadMessages","unreadMessages_sagas_marked","MESSAGE_POLL_INTERVAL","unreadMessages_sagas_marked2","unreadMessages_sagas_marked3","unreadAlertsSaga","updateUnreadAlerts","unreadAlerts_sagas_marked","ALERT_POLL_INTERVAL","unreadAlerts_sagas_marked2","unreadAlerts_sagas_marked3","rootSaga","rootSagas_marked","createBrowserHistory","basename","ROUTES_BASENAME","sagaMiddleware","createSagaMiddleware","historyMiddleware","routerMiddleware","store","preloadedState","composedEnhancers","composeWithDevTools","applyMiddleware","createStore","run","configureStore","AppBootstrap","propsStore","es","THEME","CmsData","Modal_Root","NotFound","pathname","ScrollToTopProvider","withRouter","scrollTo","RegistrationMenuMobileItem","_useState","useState","_useState2","slicedToArray","isExpanded","setIsExpanded","onClick","aria-expanded","role","Title","dangerouslySetInnerHTML","__html","MainText","ButtonLink","ButtonText","href","ButtonTargetObject","RegistrationMenuMobile","registrationItems","item","RegistrationMenuMobile_RegistrationMenuMobileItem","Id","Target","RegistrationMenu","Link","LinkCaption","Header_RegistrationMenuMobile","ProfileMenuIcon","stroke","stroke-width","fill","fill-rule","transform","ProfileMenu","isMenuOpened","setIsMenuOpened","tabIndex","aria-label","aCC20AvatarAriaLabel","width","viewBox","version","xmlns","xmlnsXlink","ProfileMenu_ProfileMenuIcon","aria-hidden","aria-labelledby","style","visibility","profileMenuItems","ShowMobileOnly","Bg","target","LinkTarget","Caption","ShowMessageCount","UnreadMessagesBadge","ShowAlertCount","UnreadAlertsBadge","signOutPageLink","signOutPageCaption","HeaderPresentation","isRegistrationMenuShown","setIsRegistrationMenuShown","data-sol-dropdown-target","hideLoginRegisterButtons","disableLogoAnchor","pointerEvents","isLoginDisabled","c10SiteLogoDesktop","c10SiteLogoTablet","c10SiteLogoMobile","isAuthenticated","Header_ProfileMenu","c20SignUpButtonCopy","signUpButtonIcon","defaultAuthenticatedPage","c30SignInButtonCopy","signInButtonIcon","Header_RegistrationMenu","HeaderPortal","container","document","getElementById","HEADER_PORTAL_ID","setProps","win","useHeaderProps","ReactDOM","createPortal","Header_HeaderPresentation","FooterPresentation","clientFooterCopy","footerLinks","link","newWindow","caption","footerCopy","socialFooterLinks","FAicon","src","logoUrl","alt","Date","getFullYear","copyrightText","FooterPortal","FOOTER_PORTAL_ID","useFooterProps","Footer_FooterPresentation","LOGIN_ROUTE","AUTH_SETTINGS_ROUTE","ContactUs","lazy","bind","MessageContainer","Contact","_ref3","EmailAddressMismatchPage","_ref4","SignOnIssuesRouter","_ref5","TermsAndConditionsPage","_ref6","SignUpPage","_ref7","Checks","_ref8","Dashboard","_ref9","Portfolio","_ref10","BuyShares","_ref11","DsppPage","_ref12","EsppPage","_ref13","AccountSettings","_ref14","DocumentsAndForms","_ref15","AlertsAndMessages","_ref16","CompanyPlansPage","_ref17","PendingSaleContainer","_ref18","SellSharesContainer","_ref19","DividendPage","_ref20","SecurityOverview","_ref21","CostBasisDetails","_ref22","WfssoPage","_ref23","BrokerInstructions","_ref24","CountryGlossaryPage","_ref25","GlossaryPage","_ref26","MarketDataPage","_ref27","MarketDataPageContainer","InternationalPayments","_ref28","internationalPaymentsPage","root","APP_BOOTSTRAP_ROOT","header","footer","_useRouting","useRouting","routing","isLoading","useBranding","routingData","loginInfo","r","alias","loginRoute","route","esm","react","fallback","react_router","path","prefix","url","exact","to","buyShares","brokerInstructions","companyPlans","dashboard","glossary","countryGlossary","signOnIssues","checks","contact","signUp","documentsAndForms","espp","dspp","termsAndConditions","emailAddressMismatch","wfsso","marketData","internationalPayments","getRoutesProps","contentId","renderRouter","HeaderPortal_HeaderPortal","FooterPortal_FooterPortal","navigator","serviceWorker","ready","registration","unregister","ACCOUNT_PROFILE_DATA_MOCK","userName","telephoneNumber","securityQuestion","email","TAX_CERTIFICATION_DATA_MOCK","ownershipType","isTaxCertified","registeredOwner","primaryAddressLines","withCNotice","withBNotice","canCertify","canCertifyTax","RESPONSE","mockData","page","pageSize","pageCount","totalRecords","subject","recievedAt","unread","body","isCompanyMessage","isUserMessage","attachmentData","fileName","fileType","setMockData","upgrade","getMessages","mock","onGet","inbox","reply","updateReadStatusMessage","onPut","updateReadStatus","JSON","parse","isInUpdateList","isRead","deleteSelectedMessages","deleteMessages","onDelete","RegExp","messageIds","includes","toString","getMessageAttachments","attachments","replyMessage","onPost","accountNumberFormat","bankCodeFormat","country","irsCountryCode","isPostalCodeMandatory","iBAN","regionCode","address","fullAddressLines","securityTypes","issueNumbers","statementId","companyId","date","companyNameSecurityType","documentType","statementInsertPDFExists","securityType","companyName","userEmailMismatchResponse","doesUserEmailMismatch","userEmailAddressesResponse","distinctEmails","SECURITY_DETAILS_MOCK","timing","PendingSaleTiming","GTD","datePlaced","shareType","shares","orderPrice","expirationDate","TRANSACTION_HISTORY_PLAN_SHARES_INFO_RESPONSE_MOCK","cashPendingInvestment","sharesPendingSaleWithdrawal","dividendReinvestmentType","COMPANY_LIST_RESPONSE_MOCK","company","issueSecurityTypes","allowDRIP","buyUnavailableBecauseDRIP","dPPOneTimeMinAmount","dPPRecurringMinAmount","edeliveryPreferences","initialMinimumWaivedifEnrolledinDebitACH","COMPANY_PLAN_RESPONSE_MOCK","oneTimeDebitFee","oneTimeDebitFeePaidBy","aCHDebitFee","aCHDebitFeePaidBy","COMPANY_PLAN_BROCHURES_RESPONSE_MOCK","fileId","INVESTMENT_PREFERENCES_RESPONSE_MOCK","oneTimeMinAmount","oneTimeMaxAmount","recurringMinAmount","recurringMaxAmount","combinedOneTimeMinAmount","combinedOneTimeMaxAmount","combinedRecurringMinAmount","combinedRecurringMaxAmount","frequencyDetails","frequencyName","frequencyShortName","allowMonthlyCycle1","debitDateRequestForCycle1","allowMonthlyCycle2","debitDateRequestForCycle2","bankAccounts","paysDividends","allowOneTimeAndRecurringInvestment","allowOneTimeInvestment","allowRecurringInvestment","ACCOUNTS_RESPONSE_MOCK","isMarketPricingAvailable","totalValue","ownerCode","sharesCount","currentAssetValue","COMPANY_DELIVERY_OPTIONS_RESPONSE_MOCK","E_DELIVERY","MAIL","ACCOUNT_DELIVERY_OPTIONS_RESPONSE_MOCK","canSelectAccountStatementsDeliveryMethod","canSelectShareOwnerCommunicationsDeliveryMethod","canSelectTaxFormsDeliveryMethod","canSelectDirectDepositNoticeDeliveryMethod","AUTOMATIC_INVESTMENT_RESPONSE_MOCK","AccountNumber","IssueNumber","UserRegionCode","InvestmentType","InvestmentAmount","Frequency","FrequencyName","FrequencyShortName","BankAccount","BankName","RoutingNumber","Currency","DestinationCountry","BankCity","BankAccountNumber","PaymentMethodType","UsBeneficiaryABARoutingNumber","UsBeneficiaryBankCity","BeneficiaryBankAccountNumber","BeneficiaryABARoutingNumber","BeneficiaryBankAccountName","BeneficiaryInstructions","BeneficiaryBankSwiftCode","BankAccountHoldersCity","BankAccountHoldersCountry","BankAccountType","InternationalRoutingCode","PaymentMethod","AUTOMATIC_INVESTMENT_BATCH_RESPONSE_MOCK","accountCompanies","taxCertificationStatus","primaryAddress","seasonalAddress","start","end","isRecurring","drsTotalWithReserved","planTotalWithReserved","drsAvailableForSale","planAvailableForSale","certificateAvailableForSale","drsNumberOfShares","planNumberOfShares","allowSaleOfDrs","allowDrsSalesSol","allowSaleOfPlanShares","allowPlanSalesSol","drsFractionalSaleAllowed","planFractionalSaleAllowed","allowSaleReceiptsByACH","allowSaleReceiptsByInternationalACH","allowSaleReceiptsByWireTransfer","salePaymentType","SalePaymentType","sellAllPlanSharesTerminatesAccount","marketInfo","isHoliday","isLimitClosing","isMarketClosed","isMarketClosing","saleTypesDetails","saleType","planFees","amount","FeeType","Amount","discount","paidBy","PaidBy","Company","drsFees","Shareowner","commissionPerPlanShare","commissionPerDrsShare","planDirectDepositFees","drsDirectDepositFees","planWireTransferFees","drsWireTransferFees","planSalesDollarLimit","drsSalesDollarLimit","bookLots","acquisitionPricePerShare","grossAmount","dispositionStatus","DispositionStatus","Blank","totalShares","availableForSale","acquisitionDate","restrictionPriceVariance","price","priceType","PriceType","Current","stopLossOrderAutoSellLimit","limitOrderAutoSellLimit","hasCancellableSaleOrders","securityQuestionsResponse","securityQuestions","getCompanies","getSignUpCompanies","getAuthIdRecoveryResponse","isSent","Math","floor","random","sendingType","getAuthenticate","userAgreementsResponse","showEConsent","showOAA","newUserAgreementsResponse","agreementType","AgreementTypeEnum","Esign","needsSign","OnlineAccess","bankAccountHoldersCity","bankAccountHoldersCountry","bankAccountType","Checking","bankCity","bankName","beneficiaryABARoutingNumber","beneficiaryBankAccountName","beneficiaryBankAccountNumber","beneficiaryBankSwiftCode","beneficiaryInstructions","destinationCountry","internationalRoutingCode","routingNumber","usBeneficiaryABARoutingNumber","usBeneficiaryBankCity","Savings","randomAlertResponse","randomUnreadMessageResponse","companyMessageCount","inboxMessageCount","BROKER_INSTRUCTIONS_MOCK","transferType","companyDirection","issueName","brokerName","brokerAccountNumber","dtcBrokerParticipantNumber","medallionNumber","remainingMedallionValue","instructionForFractionalShare","canTransfer","canRemoveInstructions","MockAdapter","axios","delayResponse","adapter","mockBankAccountResponse","transaction","getPlansInfo","mockUnreadMessageResponse","mockAlertResponse","mockCompaniesResponse","mockSignUpCompaniesResponse","authIdRecovery","mockAuthIdRecoveryResponse","authenticate","mockAuthenticateResponse","agreement","mockSignUpAgreements","byAuthId","redirectUrl","byEmployeeNumberCompanyId","mockSignUpProfile","receivePreferences","mockEDeliveryReceivePreferences","mockSignUpProcess","mockSecurityQuestions","baseUrl","mockLoadSetupDetailsResponse","mockMessagesApi","unreadAlertsList","mockAlertsResponse","signOn","validate","setTimeout","reset","mockResetSecurityQuestion","unlockAccount","mockUnlockAccount","mockTaxCertificationData","mockCitizenshipCountriesData","validatetaxcertification","mockValidateBatchedCertifyTaxId","save","mockSaveTaxCertificationData","passwordReset","asyncToGenerator","mark","_callee","employee","_callee2","authId","_callee3","answer","_callee4","_callee5","_callee6","_callee7","_callee8","_callee9","mockResetPassword","recoverAccount","validateToken","params","token","credentials","mockRecoverAccount","mockRoutesApi","mockAccountProfileUpdate","urlString","urlRegExp","mockInvestmentDetailsResponse","arguments","accountOverview","mockAccountsResponse","companyDeliveryOptions","mockCompanyDeliveryOptionsResponse","mockAccountDeliveryOptionsResponse","mockAutomaticInvestmentResponse","mockCompanyPlanResponse","mockCompanyPlanBrochureResponse","SSN","checkSSN","mockAccountSSNConfirmResponse","taxId","checkTaxId","mockAccountTaxIdConfirmResponse","registrationTypes","mockRegistrationTypesResponse","automaticInvestmentBatch","mockAutomaticInvestmetBatchResponse","RegisterBuySharesModuleMocks","sell","mockSellAccountResponse","saleOrderDetails","mockSaleOrderConfigurationResponse","mockSellSharesResponse","RegisterSellSharesModuleMocks","documents","mockAccountForDocumentsResponse","mockEDeliveryDocumentResponse","mockTaxFormsResponse","RegisterDocumentsAndFormsModuleMocks","bankInfo","mockBankInfoResponse","sales","getPendingSales","mockGetPendingSales","urlWithParameters","getPendingSale","mockGetPendingSale","cancelPendingSale","mockCancelPendingSale","Array","from","tickerValue","internetEnabledIndicator","hidePlanForUnAuthenticatedUser","mockEsppCompanies","c","companyDetails","allowEnrollment","description","mockEsppCompanyDetails","createAuthenticationDetails","companyAuthentication","mockEsppAuthentication","getPlan","employeeNumber","employeeName","accountType","deductionAmount","deductionCycle","deductionType","isEnrolled","canEditDeduction","investmentMaterials","mockEsppGetPlan","validations","mockEsppValidate","deductions","canSelectContributionType","contributionType","contribution1Name","contribution2Name","contribution1DeductionCycles","contribution2DeductionCycles","contribution1","contribution2","constraints","allowedContributionType","jointAccountAllowed","canEdit","canSetupContribution","maxAmount","minAmount","minAmountPercentage","maxAmountPercentage","allowedDeductionType","mockEsppDeductions","getDeductions","mockEsppDeductionsSetup","mockEsppDeductionsUpdate","mockEsppDeductionsStop","userAgreements","mockCheckUserAgreements","accept","mockNewAgreements","acceptESignAgreement","acceptOnlineAccessAgreement","mockUpdateUserAgreements","emailMismatch","userEmailMismatch","mockCheckUserEmailMismatch","getUserEmailAddresses","mockGetUserEmailAddresses","saveEmailAddress","mockSaveEmailAddress","byWfSso","mockCreateProfile","mockBrokerInstructions","instruction","isUndeliverableAddress","broker","participantNumber","sharesDetails","unrestrictedShares","eligibleShares","mockBrokerInstructionsDetails","mockBrokerInstructionsTransfer","mockBrokerInstructionsRemove","mockDeleteSeasonalAddressResponse","mockConfirmPrimaryAddressResponse","onAny","passThrough","FormGroupWrapper","label","noValidation","tooltipHeader","tooltipContent","useTooltip","react__WEBPACK_IMPORTED_MODULE_1___default","StyledFormGroup","_Label__WEBPACK_IMPORTED_MODULE_4__","for","_LabelIconWithTooltip__WEBPACK_IMPORTED_MODULE_6__","_Validation_ValidationError__WEBPACK_IMPORTED_MODULE_5__","alertAndMessageActions","THEME_CONSTANTS","MEDIA","DESKTOP","TABLET","MOBILE","THEME_CONFIG","extraLight","light","semiBold","bold","checkbox","radio","components","filterContainer","borderColor","labelColor","labelFontWeight","clearFiltersBackgroundColor","labelFontSize","valueFontSize","settings","rowBorderColor","andDown","only","mobile","print","hide","noBorders","getTheme","branding","DEFAULT_BRANDING","getField","show","PaymentDetails","hasPaymentOptions","checkAllowedSOL","paymentOptions","allowDrip","withOverlay","Loader","SIZE","sm","md","lg","_CmsDataProvider__WEBPACK_IMPORTED_MODULE_0__","_store_cmsData_hooks__WEBPACK_IMPORTED_MODULE_1__","_store_cmsData_model__WEBPACK_IMPORTED_MODULE_2__","updateForm","loadPreview","loadUsStates","loadProvinces","loadAddressFormats","setEditMode","unsetPreviewMode","unsetDeleteMode","checkAndDeleteSeasonalAddress","checkAndEditAddress","CHECK_ADDRESS_BATCH_FAIL","confirmPrimaryAddress","getSelectedAccount","metaData","getSelectedCompany","getSelectedSecurityType","s","getBookLotsFactory","unitPrice","selectedIssue","sellTypes","drsSaleDollarsLimit","mapper","allowFractional","maxUnits","bookLot","mapBookLot","getIsInstantSale","toFixed","b","getTotalSellAmount","journey","shareTypesToSell","ShareType","DrsShare","getDrsSellAmount","PlanShare","planSellAmount","DrsAndPlanShare","None","getTotalPaymentAmount","getDrsSellPrice","getPlanSellPrice","planAutoSellPrice","sharePrice","drsAutoSellPrice","drsSellAmount","saleMethod","SellMethod","FIFO","bookLotSaleConfig","v","isSelling","reduce","acc","amountToSell","getInternationalCurrency","newBankAccount","getSellAmount","getIsSellingAll","maxPlanSharesAmount","isOptedToSellAllPlanShares","getSelectedBankAccount","existingBankAccountNumber","getAddressLines","selectedAccount","seasonal","now","parseDate","seasonStart","seasonEnd","currentYear","getYear","setYear","isWithinRange","LabelIconWithTooltip","_Tooltip_Tooltip__WEBPACK_IMPORTED_MODULE_2__","effect","place","content","inline","TooltipIcon","grey","Modal","_React$Component","_this","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","isOpen","backdrop","keyboard","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__","submit","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_7__","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__","setState","onSubmitClick","onCloseClick","titleText","footerText","closeText","noFooter","compact","_this$state","closeBtn","react__WEBPACK_IMPORTED_MODULE_8___default","_Form__WEBPACK_IMPORTED_MODULE_15__","ModalContainer","onClosed","reactstrap__WEBPACK_IMPORTED_MODULE_9__","close","_Typography__WEBPACK_IMPORTED_MODULE_16__","reactstrap__WEBPACK_IMPORTED_MODULE_10__","_OptionalRender__WEBPACK_IMPORTED_MODULE_13__","reactstrap__WEBPACK_IMPORTED_MODULE_11__","footerControlsAlign","reactstrap__WEBPACK_IMPORTED_MODULE_12__","RadioButtonGroup","options","onClickHandler","inputStyle","hasFullWidth","RadioButtonGroupContainer","optionsCount","RadioButton","generateId","pathArray","optionName","toLowerCase","vertical","noMargin","_SELL_SHARES_PATHS","BeforeYouBegin","SelectSaleType","SaleOrderDetails","BookLotCustomize","Confirmation","goToStart","goTo","absPath","exit","navigateWithRefresh","goToStep","goToDashboard","goToBookLotDetails","bookLotNumber","stepPath","setTransactionData","unsetTransactionData","ValidationError","htmlError","dangerText","dangerBackground","typography","fontSizeBase","PANEL_PADDING","Panel","apply","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__","react__WEBPACK_IMPORTED_MODULE_7___default","reactstrap__WEBPACK_IMPORTED_MODULE_8__","Header","Divider","Content","Footer","toCamel","newKey","charAt","constructor","API_SERVICE_CONSTANTS","isProd","baseApiUrl","REACT_APP_API_PROXY","basicAuth","REACT_APP_API_PROXY_BASIC_AUTH_USER","REACT_APP_API_PROXY_BASIC_AUTH_PASSWORD","headers","REACT_APP_API_PROXY_HEADER_AUTHENTICATIONID","userId","REACT_APP_API_PROXY_HEADER_USERID","REACT_APP_API_PROXY_HEADER_USERNAME","useApiMocks","REACT_APP_USE_API_MOCKS","isErrorResponse","require","ERROR_CODE_CANCEL","interceptors","use","reject","requestCounter","classCallCheck","createClass","_get","cancelToken","_x","_x2","_x3","_post","_x4","_x5","_x6","_put","_x7","_x8","_x9","_delete2","_x10","_x11","_x12","_parameters","parameterPage","parameters","_x13","cancel","CANCEL_TOKEN_MESSAGE","_request","_ref$method","requestNumber","toUpperCase","resolveHeaders","withCredentials","resolveHost","returnError","_x14","apiProxyConfig","isBasicAuth","baseURL","auth","statusText","InfoModal","objectWithoutProperties","Modal_Wrapper","Grid","FormActions","FormButton","pickColor","_templateObject3","MODAL_COMPONENTS","_MODAL_COMPONENTS","BASIC_MODAL","BasicModal","CONFIRMATION_MODAL","ConfirmModal","AGREEMENT_MODAL","AgreementModal","ModalRoot","SpecificModal","useCmsDataLoader","_len","pages","_key","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__","setLoading","_useContext","useContext","CmsDataContext","cmsDataAllPages","setCmsData","getNotLoadedPages","source","CancelToken","pagesToLoad","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","promises","newCmsData","CMS_DATA_CONSTANTS","useMockLabels","getMockPagePath","parseKey","indexOf","_key$split","_key$split2","namespace","labelKey","getPage","allPages","cmsDataOfPage","rawCmsLabel","_parseKey","getRawCmsValue","_parseKey2","_len2","interpolateParams","_key2","getCmsLabel","cmsLabelHtml","_len3","_key3","sanitizedLabel","DOMPurify","sanitize","cmsLabelStartsWith","fullKey","_parseKey3","pageKey","startsWith","_len4","_key4","_len5","_key5","interpolatedValue","interpolate","sanitizedValue","setConfig","ADD_ATTR","regex","test","args","EXTERNAL_ROUTES","_api__WEBPACK_IMPORTED_MODULE_0__","DEFAULT_ROUTES","createRoute","routeCreator","basicRouteCreator","pendingSales","esppCompany","esppCompanies","esppAuthentication","esppReviewPlan","esppSetupDeduction","esppEditDeduction","esppStopConfirmation","esppSetupConfirmation","esppEditConfirmation","esppStopDeductionSummary","esppSummary","dsppCompanyPlans","dsppAnonymousBuy","checksReplace","checksHistory","alert","signOut","buySharesInvestmentEdit","buySharesInvestmentNew","login","documentsAndFormsEDelivery","documentsAndFormsTaxForms","documentsAndFormsShareBalance","termsAndConditionsESign","termsAndConditionsOnlineAccess","emailAddressMismatchConfirm","emailAddressMismatchSummary","home","help","contactUs","W8BenForm","IRSWebsite","AccountLocation","ExistingOrNew","SaleType","initialNewBankAccount","initialBankDetails","AutoSellType","autoSellConfigInitialValues","_shared_DataStructures_BankAccount__WEBPACK_IMPORTED_MODULE_0__","payoutType","accountToUse","Existing","isDomesticBank","wireTransfer","planAutoSellType","planAutoSellDate","drsAutoSellType","drsAutoSellDate","createContext","CmsDataProvider","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__","cmsContextValue","useMemo","Provider","DividendPaymentSecondaryAddress","title","line","idx","DividendPaymentOnlyOption","labelToDisplay","FormControl","DividendPaymentOnlyOption_templateObject","getDividendPaymentFormFields","onExternallyValidatedPaymentFieldBlur","wireTransferCountryConfig","beneficiaryCountries","isDsppFullReinvestment","CmsDataPage","Dividend","dsppFullInvestment","Check","paymentOption","pos","arr","mapObj","_","getPaymentOptions","directPaymentMethodTypeOptions","paymentOptionType","US","International","getPaymentMethodTypeOptions","DirectDeposit","createNewAccountOptions","getCreateNewAccountOptions","bankAccountOptions","usBankAccounts","getObfuscatedBankAccountNumber","getBankAccountOptions","directDepositINTCountriesOptions","sort","sortBy","trim","getDirectDepositINTCountriesOptions","accountTypeOptions","getAccountTypeOptions","formFields","onlyFullReinvestmentAllowed","customElement","DividendPaymentOnlyOption_DividendPaymentOnlyOption","NoChange","shouldShowCreateNewAccount","bankAccount","ReadOnlyFieldsRow","Form","responsive","renderBankAccountDetails","showBankAccountFields","newDirectDepositUS","labelIconWithTooltip","newDirectDepositInt","BankInfo","contentUnavailableBehavior","panelTitle","showIBAN","selectedSetupDetails","getSelectedSetupDetailByCountry","WireTransferPayment","wireTransferConfig","formDataObjectKey","hideFieldsMissingValidationConfig","dividendRate","paymentAmount","netDividendProceeds","labels","bankAccountTypeCheckingLabel","bankAccountTypeSavingsLabel","currencyLabel","currencyPlaceholder","bankAccountNumberLabel","countryLabel","countryPlaceholder","bankAccountTypeLabel","bankCityLabel","bankInfoTitle","bankInternationalRoutingCodeLabel","bankNameLabel","bankSwiftBicCodeLabel","beneficiaryAddress1Label","beneficiaryAddress2Label","beneficiaryCityLabel","beneficiaryCountryLabel","beneficiaryEmailAddressLabel","beneficiaryNameLabel","beneficiaryStateProvinceLabel","beneficiaryTaxIDLabel","beneficiaryTelephoneNumberLabel","thresholdNotMetWarningLabel","thresholdNotMetDividendInfoLabel","WireTransfer","isFieldExternallyValidated","getExternallyValidatedFieldConfig","hasUSAccount","dividendPaymentForm_builder_templateObject","DEFAULT_COLORS","secondary1","secondary2","secondary3","secondary4","secondary5","secondary6","secondary7","secondary8","secondary9","tertiary1","black","highlight","disabledBackground","lightBlue","successBorder","successBackground","tableBorderSecondary","tooltipHeaderBg","tooltipHeaderBorder","greyHeading","progressBarFg","progressBarBg","dangerBorder","DEFAULT_TYPOGRAPHY","fontFamily","fontSizeH1","fontSizeH2","fontSizeH3","fontSizeH4","fontWeightLight","fontWeightRegular","fontWeightMedium","fontSizeH1Desktop","fontSizeH2Desktop","fontSizeH3Desktop","fontSizeH4Desktop","fontSizeH1Tablet","fontSizeH2Tablet","fontSizeH3Tablet","fontSizeH4Tablet","fontSizeH1Mobile","fontSizeH2Mobile","fontSizeH3Mobile","fontSizeH4Mobile","fontSizeBodyDesktop","fontSizeBodyTitleDesktop","lineHeightBodyDesktop","lineHeightBodyTitleDesktop","fontSizeFootNoteDesktop","lineHeightFootNoteDesktop","fontSizeTableHeaderDesktop","lineHeightTableHeaderDesktop","fontSizeTableDataDesktop","lineHeightTableDataDesktop","fontSizeTableHeaderSmallDesktop","lineHeightTableHeaderSmallDesktop","fontSizeTableDataSmallDesktop","lineHeightTableDataSmallDesktop","fontSizeBreadcrumbDesktop","lineHeightBreadcrumbDesktop","fontSizeBodyTablet","lineHeightBodyTablet","fontSizeBodyTitleTablet","lineHeightBodyTitleTablet","fontSizeFootNoteTablet","lineHeightFootNoteTablet","fontSizeTableHeaderTablet","lineHeightTableHeaderTablet","fontSizeTableDataTablet","lineHeightTableDataTablet","fontSizeTableHeaderSmallTablet","lineHeightTableHeaderSmallTablet","fontSizeTableDataSmallTablet","lineHeightTableDataSmallTablet","fontSizeBreadcrumbTablet","lineHeightBreadcrumbTablet","fontSizeBodyMobile","lineHeightBodyMobile","fontSizeBodyTitleMobile","lineHeightBodyTitleMobile","fontSizeFootNoteMobile","lineHeightFootNoteMobile","fontSizeTableHeaderMobile","lineHeightTableHeaderMobile","fontSizeTableDataMobile","lineHeightTableDataMobile","fontSizeTableHeaderSmallMobile","lineHeightTableHeaderSmallMobile","fontSizeTableDataSmallMobile","lineHeightTableDataSmallMobile","fontSizeBreadcrumbMobile","lineHeightBreadcrumbMobile","toBranding","apiBranding","BuyStep","LoadFailedMessage","centered","onRetry","MessageBox","Text","_ActionLink_ActionLink__WEBPACK_IMPORTED_MODULE_3__","span","_Typography__WEBPACK_IMPORTED_MODULE_0__","useWindowMedia","getWindowMedia","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","windowMedia","setWindowMedia","updateWindowMedia","addEventListener","removeEventListener","_useState3","_useState4","setTheme","w","REACT_APP_USE_MAIN_SITE_BRANDING","Axios","res","sol","theming","ActionLink","underlined","preventDefault","IncompleteLoadContainer","showProgress","progress","ColCentered","Col","LoadHandler","loaders","requestsStillLoading","l","requests","loadingRequests","allRequests","getLoadProgress","getLoadingView","requestsWithErrors","findRequestsWithErrors","errorsOccurred","ErrorCentered","retry","handleRetry","getErrorView","completedLoaders","LoadHandler_templateObject","normalize","getParam","openNewTab","navigateExternal","connected_react_router__WEBPACK_IMPORTED_MODULE_0__","param","matchingString","defaultValue","createMatchSelector","matchSelector","open","FormikSelect","onSelect","BaseSelect","SELECT_CLASS_NAME_PREFIX","getSelectStyle","baseStyles","secondaryStyles","MENU_BOX_SHADOW","_templateObject4","SelectArrow","indicatorProps","icons","_icons","selectProps","menuIsOpen","SelectArrow_templateObject","onFocus","iconUp","iconDown","alphabeticalOrder","wrapOptionContentToNewLine","ariaLabel","isSearchable","blurInputOnSelect","filteredEmptyOptions","onChangeFn","BaseSelect_Container","react_select_esm","inputId","isDisabled","classNamePrefix","DropdownIndicator","BaseSelect_templateObject","query_string__WEBPACK_IMPORTED_MODULE_0__","apiPrefixed","apiFilePrefixed","sessionExtend","sessionTimeout","newMessage","companyLogos","countryId","bankInfoCountries","accountIndicator","stringify","direction","orderBy","validateUsername","checkIsConfirmPrimaryAddressBatchPending","overview","downloadHistory","reasons","statuses","management","currentEmployee","currentWfEmployee","newValidations","secure","mfa","downloadInvestmentMaterial","contactQuestions","download","downloadInsert","loadList","brochure","brochureLink","downloadSaleForm","certify","getInquiryTime","getTransactions","downloadTransactions","getInfo","getPlans","downloadPlans","getSales","getOldestSale","saleProceeds","getList","getSummary","dividendProceeds","costBasis","summary","taxLots","taxLotDetails","debitDetails","companyMessages","attachmentLink","registrationPreview","issueFeeAmount","paymentCompany","planType","companyPlanBrochureLink","brochureName","accountVerify","submitNoStock","recoverUsername","byAuthenticationId","byAccountNumber","byEmployeeNumber","confirmSecurityAnswerWithAuthenticationId","confirmSecurityAnswerWithAccountNumber","confirmSecurityAnswerWithEmployeeNumber","shared","plans","pagedPlans","questions","submitForm","user","current","userPreferences","routes","displayFormat","validatePhoneNumber","isFiscalNumberCorrect","getCanSellPlanShares","getCanSellDRSShares","getPlanAvailableForSale","getDrsAvailableForSale","getIsDRSSale","getIsPlanSale","getIsDelayedSale","_Sell_models__WEBPACK_IMPORTED_MODULE_0__","fiscalNumberRegex","wholeNumberRegex","nonDigitRegex","phone","strippedPhone","testValue","MarketOrder","BatchOrder","LimitOrder","StopLossOrder","SimpleSpinner","invert","spin","formPersistActions","set","unset","isDividendStepsDirty","_containers_FormPersist_store_formPersist_selectors__WEBPACK_IMPORTED_MODULE_0__","_lib_Form_Validation_validation_utils__WEBPACK_IMPORTED_MODULE_1__","_components_Details_DividendDetailsForm__WEBPACK_IMPORTED_MODULE_2__","_components_Details_helpers_dividendDetailsForm_utils__WEBPACK_IMPORTED_MODULE_3__","_components_Payment_helpers_dividendPaymentForm_utils__WEBPACK_IMPORTED_MODULE_4__","_components_Plan_helpers_dividendPlanForm_builder__WEBPACK_IMPORTED_MODULE_5__","_components_Plan_helpers_dividendPlanForm_constants__WEBPACK_IMPORTED_MODULE_6__","_dividend_model__WEBPACK_IMPORTED_MODULE_7__","_dividend_utils__WEBPACK_IMPORTED_MODULE_8__","_components_Plan_helpers_dividendPlanForm_utils__WEBPACK_IMPORTED_MODULE_9__","detailsFormValues","planFormValues","shouldUpdatePlanDetails","planUpdate","planFormFields","getDividendPlanFormFields","reinvestmentOptionsPD","el","PD","reinvestmentOptionsRP0","reinvestmentOptionsRVY","reinvestmentOption","RVN","reinvestmentValue","DIVIDEND_PLAN_FORM_KEYS","Reinvest","getPlanUpdate","paymentUpdate","getPaymentUpdate","steps","shouldUpdatePaymentDetails","isNewBankAccount","dividendBankAccount","getNewBankAccount","getBeneficiaryBankSwiftCode","getInternationalRoutingCode","beneficiaryDetails","getBeneficiaryBankDetails","dividendPaymentOption","InputMask","react_text_mask__WEBPACK_IMPORTED_MODULE_3___default","ref","maskProps","_Input__WEBPACK_IMPORTED_MODULE_4__","IconContainer","CheckboxInputStyle","CheckboxInput","CheckIcon","_templateObject5","Checkbox","dataTestId","_i","_Object$entries","entries","fieldName","cmsPageName","AuthenticatedSell","useSellSharesCmsData","cmsDataLoading","_useCmsData","useTranslate","_useCmsData2","_thtml","_e","_eMany","useWireTransferTranslate","_twt","useSellSharesAlerts","useAlerts","getAlerts","alertList","taxCertifiedAlerts","onPerformAction","useSellSharesAccountsApi","useApiGet","useSellSharesValidationApi","useApiRequestWithResponse","useSellSharesSubmitApi","useWireTransferBeneficiaryCountriesApi","_dividend_model__WEBPACK_IMPORTED_MODULE_0__","REINVESTMENT_TYPES_MAP","FULL","ALLOWED","NOT_ALLOWED","DEFAULT_REINVESTMENT","availableOptions","GroupLabel","___WEBPACK_IMPORTED_MODULE_1__","_ChoiceGroup_RadioButtonGroup__WEBPACK_IMPORTED_MODULE_2__","_FormGroup__WEBPACK_IMPORTED_MODULE_3__","_InputIconContainer__WEBPACK_IMPORTED_MODULE_5__","_Label__WEBPACK_IMPORTED_MODULE_6__","_LabelIconWithTooltip__WEBPACK_IMPORTED_MODULE_7__","_Select__WEBPACK_IMPORTED_MODULE_8__","_Validation_FormField__WEBPACK_IMPORTED_MODULE_9__","_Validation_ValidationError__WEBPACK_IMPORTED_MODULE_10__","maxLength","renderRadioButtonGroup","getType","getComponent","setFieldTouched","renderInput","t","sel","item1","item2","s1","s2","list","idSelector","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__","dispositionStatusMessage","_dispositionStatusMes","DisQualified","Qualified","pageToMockMapping","_pageToMockMapping","CommonErrorMessages","Components","SignUp","AuthSettings","AuthenticatedBuy","SignOnIssues","CompanyPlans","GlossaryOfTerms","CountryGlossary","Espp","TermsAndConditions","EmailAddressMismatch","Wfsso","MarketData","SharedLabels","REACT_APP_USE_CMS_DATA_MOCKS","BankInfoDisplay","bankInfoText","CollapsibleHelp","bankInfoTexts","noContentBehavior","noContentMessage","getText","contentUnavailableMessage","isLoaded","REACT_APP_ON_TEST","ROUTES_MOCK_DATA","getRouting","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","setIsLoading","setRouting","finally","_config__WEBPACK_IMPORTED_MODULE_0__","_BankAccount__WEBPACK_IMPORTED_MODULE_0__","_Country__WEBPACK_IMPORTED_MODULE_1__","_InternationalACHSetupDetails__WEBPACK_IMPORTED_MODULE_2__","prevProps","formik","FormEffect","debounce","func","wait","timeout","immediate","context","clearTimeout","Suffix","background","suffix","_OptionalRender__WEBPACK_IMPORTED_MODULE_3__","_lib_Form_Validation_validation_utils__WEBPACK_IMPORTED_MODULE_0__","_store_dividend_utils__WEBPACK_IMPORTED_MODULE_1__","_DividendDetailsForm__WEBPACK_IMPORTED_MODULE_2__","_dividendDetailsForm_constants__WEBPACK_IMPORTED_MODULE_3__","isNewUser","isFullReinvestment","getEditTypeOptions","isDividendsReinvestmentAllowed","getEnrolInPlanOptions","getChangePaymentMethodOptions","Roundel","UnreadRoundel","HelpText","_theme_utils__WEBPACK_IMPORTED_MODULE_0__","_theme_themeModule__WEBPACK_IMPORTED_MODULE_1__","createPayoutTranslationMap","translate","createSaleTypeTranslationMap","createSaleTypeFeesAndTimingTranslationMap","SellSharesContext","SellSharesHooks","SellSharesRouting","SellSharesSelectors","SellSharesTranslationMaps_createPayoutTranslationMap","SellSharesTranslationMaps_createSaleTypeTranslationMap","SellSharesTranslationMaps_createSaleTypeFeesAndTimingTranslationMap","SellSharesTypes","PendingSaleType","tag","_Suffix__WEBPACK_IMPORTED_MODULE_3__","reactstrap__WEBPACK_IMPORTED_MODULE_2__","LOAD_ACCOUNT_PORTFOLIO_DONE","LOAD_ACCOUNT_PORTFOLIO_FAIL","LOAD_INVESTMENT_DETAILS_DONE","LOAD_INVESTMENT_DETAILS_FAIL","LOAD_AUTOMATIC_INVESTMENT","LOAD_AUTOMATIC_INVESTMENT_DONE","LOAD_AUTOMATIC_INVESTMENT_FAIL","LOAD_COMPANY_BROCHURES","LOAD_COMPANY_BROCHURES_DONE","LOAD_COMPANY_BROCHURES_FAIL","LOAD_COMPANIES","LOAD_COMPANIES_DONE","LOAD_COMPANIES_FAIL","LOAD_COMPANY_PLAN","LOAD_COMPANY_PLAN_DONE","LOAD_COMPANY_PLAN_FAIL","ADD_AVAILABLE_ACCOUNTS","loadAccountAndRedirectToBuyShares","issueType","issueCompanyName","loadAutomaticInvestment","loadAutomaticInvestmentFail","loadCompanyBrochures","loadCompanyBrochuresFail","loadCompanies","loadCompaniesFail","loadCompanyPlan","loadCompanyPlanFail","_CollapsibleHelp__WEBPACK_IMPORTED_MODULE_0__","Tooltip","tip","heightAuto","isDesktop","attributes","data-for","data-tip","withHeader","StyledTooltip","clickable","event","globalEventOff","ReactTooltip","DividendFormActions","customMarginTop","_lib_Panel_Panel__WEBPACK_IMPORTED_MODULE_4__","insidePanelContent","Actions","DEFAULT_PROPS","fullProps","onAfterSubmit","onAfterSubmitText","onAfterCancelText","cancelDisabled","backDisabled","marginTop","marginBottom","submitted","isFormSubmit","CancelButtonContainer","ActionButton","SubmitButtonContainer","flexGrow","allowShrinkIndefinitely","SubmitButton","_templateObject6","zeroBalanceInformation","DividendFormValidStatusEffect","_lib_Form_FormEffect__WEBPACK_IMPORTED_MODULE_2__","_containers_FormPersist_store_formPersist_utils__WEBPACK_IMPORTED_MODULE_3__","_store_dividend_actions__WEBPACK_IMPORTED_MODULE_4__","onFormChange","setPersistedFormValidStatus","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__","onAfterSubmitClick","recentlySubmitted","react__WEBPACK_IMPORTED_MODULE_5___default","_Modal_Wrapper__WEBPACK_IMPORTED_MODULE_7__","_Form__WEBPACK_IMPORTED_MODULE_8__","Typography","FormPersist","_store_formPersist_actions__WEBPACK_IMPORTED_MODULE_2__","_lib_Form_FormEffect__WEBPACK_IMPORTED_MODULE_3__","_store_formPersist_utils__WEBPACK_IMPORTED_MODULE_4__","defaultOpened","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__","_React$useState","_React$useState2","isOpened","setIsOpened","previous","StyledIcon","react_collapse__WEBPACK_IMPORTED_MODULE_4__","Body","hideVerticalBorders","visibleDigits","extracted","exec","_extracted","maskable","showable","reactstrap__WEBPACK_IMPORTED_MODULE_1__","getCompany","comp","getCurrentSecurityTypes","getSecurityTypeByIssueNumber","security","foundSecurity","Row","getDisplayRangeFromConfig","config","range","defaultRange","getDisplayRange","display","PercentageInput","_getDisplayRangeFromC","js_default","minValue","maxValue","allowed","isNotInMinRange","isNotInMaxRange","formatLabel","pairCount","isTablet","innerWidth","canChooseToReinvestAllShares","_v","_f","containsSomeOfReinvestmentTypes","getPartialReinvestmentDescription","getReinvestmentDescription","Percentage","getPartialReivestmentTypeOptions","isPartialReinvestmentWithZeroBalances","userSelectToReinvest","reinvestmentLabelY","reinvestmentLabelN","reinvestmentTypeY","InputIconContainer","SuccessIcon","centeredIcon","ControlledSelect","_BaseSelect__WEBPACK_IMPORTED_MODULE_2__","FormGroupRadioGroup","_FormGroupWrapper__WEBPACK_IMPORTED_MODULE_4__","RadioButtons","_Modal_Wrapper__WEBPACK_IMPORTED_MODULE_3__","alertText","checkboxLabel","checkboxId","linkText","linkUrl","linkTarget","agreementRead","setAgreementRead","taCContainerRef","abs","scrollHeight","clientHeight","_Modal_Wrapper__WEBPACK_IMPORTED_MODULE_11__","_lib_Typography__WEBPACK_IMPORTED_MODULE_12__","RedLine","_Alert_Alert__WEBPACK_IMPORTED_MODULE_8__","BrochureLinkContainer","_ActionLink_ActionLink__WEBPACK_IMPORTED_MODULE_7__","TaCContainer","onScroll","scrollTop","agree","boolean","formikProps","_Form__WEBPACK_IMPORTED_MODULE_9__","hr","xs","xl","createReactReducer","immer__WEBPACK_IMPORTED_MODULE_0__","fn","produce","OPEN_MODAL","CLOSE_MODAL","UPDATE_MODAL_PROP","_Modal_Root__WEBPACK_IMPORTED_MODULE_1__","SellJourneyInitialData","agreesToTerms","SellJourneyMetaDataInitialState","totalSharesToSell","getBookLots","SellJourneyContext","SellJourneyUpdate","updateMetaData","SellJourneyContextProvider","setData","_React$useState3","_React$useState4","setMetaData","contextState","selectedCompany","internationalCurrency","newData","newMetaData","_lib_LoadHandler__WEBPACK_IMPORTED_MODULE_3__","useSellSharesJourney","useSellSharesState","useSellSharesUpdate","toDeliveryType","mapToRequestData","getMargin","Data_Array","RadioInput","RadioIcon","selected","CheckboxGroup","formik_esm","LabeledValue","LabeledValue_Container","LabeledValue_Label","LabeledValue_templateObject","LabeledValue_templateObject2","ReadOnlyField","ReadOnlyField_Container","Key","Value","ReadOnlyField_templateObject","ReadOnlyField_templateObject2","ReadOnlyField_templateObject3","DatePickerContainer","DatePickerContainer_templateObject","expandInput","DatePickerHeader","HeaderContainer","ChangeMonthButton","decreaseMonth","LeftIcon","subMonths","DateName","increaseMonth","addMonths","RightIcon","DatePickerHeader_templateObject","DatePickerHeader_templateObject2","DatePickerHeader_templateObject3","DatePickerHeader_templateObject4","DatePickerInput","possibleConstructorReturn","getPrototypeOf","inputRef","createRef","inherits","_this2","CalendarInput","CalendarIcon","DatePickerInput_templateObject","DatePickerInput_templateObject2","closeOnSelect","dateFormat","minDate","maxDate","expandedDateInput","onDateChanged","filterDate","isUTCDateRequired","dateNullChecked","selectedDate","UTC","getMonth","getDate","getHours","renderCustomHeader","placeholderText","shouldCloseOnSelect","customInput","DatePickerInput_DatePickerInput","DatePicker","DatePicker_Container","FieldDescription","FieldDescription_templateObject","DynamicForm","renderCustomElement","renderFormControl","WrappedField","getDividendReinvestmentLabel","getDividendPartialTypeLabel","getSteps","mapSteps","useSelector","useDispatch","_lib_Form_Validation_validation_utils__WEBPACK_IMPORTED_MODULE_2__","_dividend_model__WEBPACK_IMPORTED_MODULE_3__","dividendReinvestment","getLabel","currentReinvestmentOption","allowDRIPEnrollmentOnline","withdrawalTerminationIndicator","isPartialReinvestmentSelected","noShares","noSharesAtAll","isCashOrSharesPartialReinvestmentType","every","optional","c10ScreenHeading","c10DividendDetailsPageTitle","c10DividendStepPlanPageTitle","c10DividendStepPaymentPageTitle","c10DividendStepConfirmPageTitle","c10DividendSummaryPageTitle","stepsInStepper","activeStepIndex","findIndex","stepLabels","showStepper","selector","ReactReduxContext","getState","setPaymentSkipped","resetDetails","focused","idValue","idLabelValue","active","CircleRadioButtonLabel","htmlFor","_Input__WEBPACK_IMPORTED_MODULE_9__","checked","RadioButtonValue","RadioButtonLabel","bankAccountNumberRegex","bankNameRegex","abaRoutingNumberRegex","usZipCodeRegex","usZipCodeOptionalMinLengthRegex","usZipCodeOptionalRegex","canadaPostalCodeRegex","worldZipCodeRegex","cityStateRegex","addressLineRegex","getDividendPaymentFormDefaultValues","currentBankAccount","getBankAccountNumber","bankCountryCode","bankSwiftBicCode","bankInternationalRoutingCode","beneficiaryAddress1","beneficiaryAddress2","beneficiaryCity","beneficiaryCountry","beneficiaryEmailAddress","beneficiaryName","beneficiaryStateProvince","beneficiaryTaxID","beneficiaryTelephoneNumber","getDividendPaymentFormValidationSchema","wireTransferCountries","getReinvestDividendsSchema","else","createNewAcc","isUsaDirectDepositConsideringNewAccount","matches","excludeEmptyString","isInternationalDirectDeposit","isUsaDirectDeposit","newAccount","directDepositValidationScheme","newAddress","secondaryAddressValidation","checkValidationScheme","getWireTransferPaymentFormValidationSchemaDefinition","mapWireTransferValidationLabels","wireTransferValidationScheme","isUsDirectDeposit","getDividendsLabel","getAccSettingsLabel","zipNotPostal","SpecialCountries","CANADA","USA","selectedCountry","nullable","newWireTransfer","ExternallyValidatedPaymentField","getExternallyValidatedFieldValidationFormat","NewDirectDepositINTBankAccountNumber","NewDirectDepositINTIBAN","getExternallyValidatedFieldValidationError","NewDirectDepositINTRoutingNumber","NewDirectDepositINTSwiftBicCode","detail","hasExternalErrors","hasExternalError","getDividendPaymentFormBackStep","isSecondaryAddressFieldRequired","addressValidationSchema","reach","describe","tests","rule","_unused","currencyRequiredMessage","bankAccountNumberRequiredMessage","bankAccountNumberFormatMessage","bankAccountTypeRequiredMessage","bankCityFormatMessage","bankCityRequiredMessage","bankCountryCodeRequiredMessage","bankInternationalRoutingCodeFormatMessage","bankInternationalRoutingCodeRequiredMessage","bankNameRequiredMessage","bankNameFormatMessage","bankSwiftBicCodeRequiredMessage","bankSwiftBicCodeFormatMessage","beneficiaryAddress1RequiredMessage","beneficiaryAddress1FormatMessage","beneficiaryAddress2FormatMessage","beneficiaryCityRequiredMessage","beneficiaryCityFormatMessage","beneficiaryCountryRequiredMessage","beneficiaryEmailAddressRequiredMessage","beneficiaryEmailAddressFormatMessage","beneficiaryNameRequiredMessage","beneficiaryNameFormatMessage","beneficiaryStateProvinceRequiredMessage","beneficiaryStateProvinceFormatMessage","beneficiaryTaxIDRequiredMessage","beneficiaryTaxIDFormatMessage","beneficiaryTelephoneNumberRequiredMessage","beneficiaryTelephoneNumberFormatMessage","_Country_model__WEBPACK_IMPORTED_MODULE_1__","_InternationalACHSetupDetails_hooks__WEBPACK_IMPORTED_MODULE_0__","useInternationalACHSetupDetails","_api_api_hooks__WEBPACK_IMPORTED_MODULE_0__","_config__WEBPACK_IMPORTED_MODULE_1__","hex","alpha","validAlpha","substring","parseInt","num","VisibleOnlyTablet","VisibleOnlyMobile","HiddenOnlyDesktop","animateOnHighlight","pickFromTheme","colorSelector","LoadingSpinner","_LoadFailedMessage_LoadFailedMessage__WEBPACK_IMPORTED_MODULE_7__","renderInnerContent","noPadding","x","showPredefinedContent","getPadding","mapValidationFormatStringToRegExp","regExpString","_WireTransferPaymentTypes__WEBPACK_IMPORTED_MODULE_0__","_WireTransferPaymentForm__WEBPACK_IMPORTED_MODULE_1__","mapToUpdateRequest","itemArray","deliveryPreference","proxyEmailAddress","D_EQShared_AgentPools_A2_work_185_s_App_Sol_Equiniti_Sol_UI_react_app_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__","_store_unreadMessages_actions__WEBPACK_IMPORTED_MODULE_2__","_UnreadRoundel_UnreadRoundel__WEBPACK_IMPORTED_MODULE_3__","_ref$wrapper","wrapper","counter","_store_unreadAlerts_actions__WEBPACK_IMPORTED_MODULE_2__","getIsPreAmbleComplete","formikContext","objectKey","_getWireTransferValue","getWireTransferValues","getCountryCode","WireTransferPaymentPreAmbleForm","fieldPrefix","setThreshold","isPreAmbleValidOnInit","setIsPreAmbleValid","wireTransferValues","setIsValid","countryChoices","nameA","nameB","currencyChoices","currentCountry","currencies","getCurrencyChoices","mounted","resetWireTransferForm","currencyCode","selectedCurrency","minimumThreshold","setTresholdFromCurrency","formattedFieldName","fieldType","BankDetailsForm","hideIRCField","bankCodesFormats","swift","fieldsValidating","setFieldsValidating","_useApiRequestWithRes","validateCode","savingsLabel","checkingLabel","validateBankInfoCodeField","bankSwiftCodeFormat","setFieldValidatingStatus","bankRoutingCodeFormat","bankAccountNumberFormat","hasFieldChanged","_validateBankInfoCodeField","_response$data","updateBankInfoCodeField","BeneficiaryPaymentForm","WireTransferPaymentForm","setMinimumThreshold","isPreAmbleValid","thresholdMet","getIsThresholdMet","wireTransferFormValues","getWireTransferFormValues","getSelectedCountry","getBankInfoCodesFormats","isRoutingCodeDefined","threshold","BEN_NAME_MAX_LENGTH","BEN_ADDRESS1_MAX_LENGTH","BEN_ADDRESS2_MAX_LENGTH","BEN_CITY_MAX_LENGTH","BEN_STATE_PROVINCE_MAX_LENGTH","BEN_TAX_ID_MAX_LENGTH","BEN_EMAIL_MAX_LENGTH","BEN_PHONE_MAX_LENGTH","BEN_PHONE_NUMBER_REGEXP","BANK_ACCOUNT_NAME_REGEXP","BEN_ADDRESS_REGEXP","BEN_CITY_REGEXP","BEN_STATE_PROVINCE_REGEXP","BEN_TAX_ID_REGEXP","BEN_EMAIL_REGEXP","BANK_NAME_MAX_LENGTH","BANK_CITY_MAX_LENGTH","SWIFT_BIC_MAX_LENGTH","INTL_ROUTING_CODE_MAX_LENGTH","BANK_ACCOUNT_NUMBER_MAX_LENGTH","BANK_CITY_REGEXP","BANK_NAME_FORMAT_REGEX","getRegExpValidation","requiredLabel","maxLabel","matchesLabel","formatType","getBeneficiaryPaymentFormValidationSchemaDefinition","mixed","oneOf","getBankDetailsFormValidationSchemaDefinition","useBankAccounts","BankAccount_model","PDP","setEditModeOn","setEditModeOff","setConfirmOn","setConfirmOff","_useState5","_useState6","setError","_useState7","_useState8","isSuccess","responseContent","responseData","_args","finish","useRef","_useState9","Symbol","_useState10","tick","setTick","_usePerformRequestWit","_useState11","_useState12","_useState13","_useState14","_useState15","_useState16","viewMounted","removeSource","cancelRequest","newSource","catch","usePerformRequestWithTick","useCancelRequestOnUnMount","useApiRequest","_usePerformRequest","_useState17","_useState18","_useState19","_useState20","_useState21","_useState22","_useState23","_useState24","setSource","_args2","usePerformRequest","_usePerformRequest2","performRequest","_usePerformRequest2$","FontAwesomeIcon","DP","setConfirmOFF","actionTypes","FormGroupDate","FormGroupInput","FormGroupDisplay","FormGroupSelect","selectedOption","FormGroupCheckbox","hideError","showError","TaxCertificationTypes"],"mappings":"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","file":"Scripts/React/main.2dec6117.chunk.js","sourcesContent":["import React from 'react';\r\nimport { Input as LibInput } from 'reactstrap';\r\nimport { FieldProps } from 'formik';\r\nimport { Theme, styled } from '../../style/theme/themeModule';\r\nimport { WithValidationProps, withValidation } from './Validation/WithValidation';\r\n\r\ninterface OwnProps extends React.InputHTMLAttributes {\r\n hasIcon?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport type InputProps = (FieldProps) & OwnProps & WithValidationProps;\r\n\r\nfunction Component(props: InputProps) {\r\n const { field, hasError, ...restProps } = props;\r\n return ;\r\n}\r\n\r\nexport { Component as InputWithNoValidation }; // might be needed for DefaultRadioButton.tsx\r\n\r\nexport const Input = withValidation(Component);\r\n\r\ninterface ContainerProps extends Theme {\r\n hasError?: boolean;\r\n hasIcon?: boolean;\r\n type?: string;\r\n withAutoHeight?: boolean\r\n}\r\n\r\nconst Container = styled(({ hasError, hasIcon, children, ...rest }: InputProps) => {\r\n return ;\r\n})`\r\n ${(p: ContainerProps) => p.hasError && `border-color: ${p.theme.colors.error};`}\r\n ${(p: ContainerProps) => p.type === 'textarea' && `min-height: 150px;`}\r\n ${(p: ContainerProps) => p.withAutoHeight && `min-height: auto !important;`}\r\n\r\n && {\r\n ${(p: ContainerProps) => p.hasIcon && `padding-right: 35px;`}\r\n }\r\n\r\n &:focus {\r\n border-color: ${(p: ContainerProps) => p.theme.input.focusColor};\r\n box-shadow: none;\r\n }\r\n`;\r\n","import { createAction } from '../../../store/reduxBoilerplate';\r\nimport { UnreadMessagesResult } from './unreadMessages.model';\r\n\r\nexport enum UnreadMessagesActionTypes {\r\n INIT = '[UnreadMessages] INIT',\r\n SET_STARTED = '[UnreadMessages] SET_STARTED',\r\n UPDATE = '[UnreadMessages] UPDATE',\r\n UPDATE_FAIL = '[UnreadMessages] UPDATE_FAIL',\r\n UPDATE_DONE = '[UnreadMessages] UPDATE_DONE',\r\n}\r\n\r\nconst AT = UnreadMessagesActionTypes;\r\n\r\nexport const unreadMessagesActions = {\r\n init: () => createAction(AT.INIT),\r\n setStarted: () => createAction(AT.SET_STARTED),\r\n update: () => createAction(AT.UPDATE),\r\n updateFail: () => createAction(AT.UPDATE_FAIL),\r\n updateDone: (payload: UnreadMessagesResult) => createAction(AT.UPDATE_DONE, payload)\r\n};\r\n","import { createAction } from '../../../store/reduxBoilerplate';\r\n\r\nexport enum UnreadAlertsActionTypes {\r\n INIT = '[UnreadAlerts] INIT',\r\n SET_STARTED = '[UnreadAlerts] SET_STARTED',\r\n UPDATE = '[UnreadAlerts] UPDATE',\r\n UPDATE_FAIL = '[UnreadAlerts] UPDATE_FAIL',\r\n UPDATE_DONE = '[UnreadAlerts] UPDATE_DONE',\r\n}\r\n\r\nconst AT = UnreadAlertsActionTypes;\r\n\r\nexport const unreadAlertsActions = {\r\n init: () => createAction(AT.INIT),\r\n setStarted: () => createAction(AT.SET_STARTED),\r\n update: () => createAction(AT.UPDATE),\r\n updateFail: () => createAction(AT.UPDATE_FAIL),\r\n updateDone: (payload: number) => createAction(AT.UPDATE_DONE, payload)\r\n};\r\n","import { Grid } from './Grid/Grid';\r\nimport { Row } from './Row/Row';\r\nimport { Col } from './Col/Col';\r\n\r\nexport { Grid, Row, Col };\r\n","import { Field, FieldProps, FormikProps } from 'formik';\r\nimport React from 'react';\r\nimport { styled, Theme } from '../../../style/theme/themeModule';\r\nimport { OptionalProp } from '../../../types';\r\nimport { SelectOption, SelectProps } from '../Select/select.model';\r\n\r\ninterface OwnProps {\r\n isRequired?: boolean;\r\n fieldKey: Field;\r\n formProps: FormikProps;\r\n type?: string;\r\n component?: any;\r\n disabled?: boolean;\r\n max?: number;\r\n id?: string;\r\n placeholder?: string;\r\n maxLength?: number;\r\n dateFormat?: string;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n expandedDateInput?: boolean;\r\n onSelect?: (option: SelectOption) => void;\r\n onChange?: (e: React.ChangeEvent) => void;\r\n onBlur?: (e: React.FocusEvent) => void;\r\n onKeyUp?: (e: React.KeyboardEvent) => void;\r\n onDateChanged?: (date: Date | null) => void;\r\n innerRef?: (node: any) => void;\r\n filterDate?: (date: Date) => boolean;\r\n render?: (props: FieldProps) => React.ReactNode;\r\n isUTCDateRequired?: boolean;\r\n autoComplete?: string;\r\n inputMode?: string;\r\n withAutoHeight?: boolean\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n isRequired: boolean;\r\n children: any;\r\n className?: any;\r\n}\r\n\r\ntype Props = OwnProps & OptionalProp;\r\n\r\nexport function FormField({\r\n onChange,\r\n onBlur,\r\n fieldKey,\r\n formProps,\r\n placeholder,\r\n isRequired,\r\n className,\r\n innerRef,\r\n id,\r\n render,\r\n ...restProps\r\n}: Props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n\r\n function customOnChange(e: React.ChangeEvent) {\r\n formProps.handleChange(e);\r\n\r\n if (formikStatusExists()) {\r\n unsetFormikStatus();\r\n }\r\n if (onChange) {\r\n onChange(e);\r\n }\r\n }\r\n\r\n function customOnBlur(e: React.FocusEvent) {\r\n formProps.handleBlur(e);\r\n !!onBlur && onBlur(e);\r\n }\r\n\r\n function unsetFormikStatus() {\r\n const { [fieldKey]: ommitedKey, ...newStatus } = formProps.status;\r\n formProps.setStatus(newStatus);\r\n }\r\n\r\n function formikStatusExists() {\r\n return formProps.status && formProps.status[fieldKey];\r\n }\r\n}\r\n\r\nconst Container = styled(({ children, isRequired, ...rest }: any) => (\r\n
{children}
\r\n))`\r\n position: relative;\r\n ${(p: ContainerProps) =>\r\n p.isRequired &&\r\n `\r\n :after {\r\n content: '*';\r\n color: ${p.theme.colors.primary1};\r\n display: block;\r\n margin-top: -2.8rem;\r\n margin-left: 101%;\r\n line-height: 2.8rem;\r\n }\r\n `}\r\n`;\r\n","import {\r\n SELL_SHARES_PATHS,\r\n SELL_SHARES_STEPS,\r\n} from '../pages/Shares/Sell/models/SellSharesRouting';\r\nimport { ROUTES } from './routes';\r\n\r\nexport const securityOverviewPath = (\r\n accountNumber: number,\r\n issueNumber: string,\r\n activeTab?: string,\r\n) =>\r\n ROUTES.securityOverview\r\n .replace(':accountNumber', `${accountNumber}`)\r\n .replace(':issueNumber', issueNumber)\r\n .replace(':activeTab?', activeTab || '');\r\n\r\nexport const dividendPath = (accountNumber: number, issueNumber: string) =>\r\n ROUTES.dividends\r\n .replace(':accountNumber?', `${accountNumber}`)\r\n .replace(':issueNumber?', issueNumber);\r\n\r\nexport const sellKnownSharePath = (accountNumber: number, issueNumber: string) => {\r\n const subPath = SELL_SHARES_PATHS[SELL_SHARES_STEPS.SelectCompany]\r\n .replace(':accountNumber?', `${accountNumber}`)\r\n .replace(':issueNumber?', issueNumber);\r\n\r\n return `${ROUTES.sellShares}${subPath}`;\r\n};\r\n\r\nexport const accountSettingsPath = (panel: string, field?: string, accountId?: string) =>\r\n ROUTES.accountSettings\r\n .replace(':panel?/', panel ? `${panel}/` : '')\r\n .replace(':field?/', !!field ? `${field}/` : '')\r\n .replace(':accountId?', !!field && accountId ? accountId : '');\r\n\r\nexport const portfolioPath = (accountNumber: number | string) =>\r\n ROUTES.portfolio.replace(':accountNumber', `${accountNumber}`);\r\n\r\nexport const messagePath = (messageId: number) =>\r\n ROUTES.individualMessage.replace(':messageId', `${messageId}`);\r\n\r\nexport const messageReplyPath = (messageId: number) =>\r\n ROUTES.messageReply.replace(':messageId', `${messageId}`);\r\n\r\nexport const pendingSalesPath = (saleId: number) =>\r\n ROUTES.pendingSale.replace(':saleId', `${saleId}`);\r\n\r\nexport const costBasisDetailsPath = (\r\n accountNumber: number,\r\n issueNumber: string,\r\n taxLotId: number,\r\n) =>\r\n ROUTES.costBasisDetails\r\n .replace(':accountNumber', `${accountNumber}`)\r\n .replace(':issueNumber', `${issueNumber}`)\r\n .replace(':taxLotId', `${taxLotId}`);\r\n\r\nexport function matchDocumentsAndFormsPath(\r\n location: string,\r\n match: {\r\n eDelivery: T;\r\n taxForms: T;\r\n shareBalance: T;\r\n unknown: T;\r\n },\r\n) {\r\n const urlPart = getLastUrlPart(location);\r\n switch (urlPart) {\r\n case 'e-delivery':\r\n return match.eDelivery;\r\n case 'tax-forms':\r\n return match.taxForms;\r\n case 'share-balance':\r\n return match.shareBalance;\r\n default:\r\n return match.unknown;\r\n }\r\n}\r\n\r\nexport const buyVerifyRegistrationPath = () => `${ROUTES.buySharesVerifyRegistration}`;\r\nexport const buyInPlanAccountsPath = () => `${ROUTES.buyInAccountsPath}`;\r\nexport const dashboardPath = () => `${ROUTES.dashboard}`;\r\n\r\nexport function getLastUrlPart(path: string) {\r\n const parts = path.split('/');\r\n return parts.pop();\r\n}\r\n","import React from 'react';\r\nimport { FieldProps, FormikProps } from 'formik';\r\n\r\nexport interface WithValidationProps {\r\n hasError: boolean;\r\n}\r\n\r\ntype OwnProps = FieldProps;\r\n\r\nexport const withValidation =

(WrappedComponent: React.ComponentType

) => {\r\n return function WithValidation(props: P) {\r\n const { form, field } = props;\r\n return ;\r\n };\r\n\r\n function hasVisibleError(formProps: FormikProps, name: string) {\r\n const { errors, touched } = formProps;\r\n const isTouched = !!touched[name];\r\n return isTouched && !!errors[name];\r\n }\r\n};\r\n","import { array, number, object, string } from 'yup';\r\nimport { AccountSettingsCmsData, Translate } from '../../../containers/CmsData/store/cmsData.model';\r\nimport { BINARY } from '../shared/accountSettings.enums';\r\n\r\nexport enum DeliveryTypes {\r\n NONE = 0,\r\n MAIL = 1,\r\n E_DELIVERY = 2,\r\n BOTH = 3,\r\n}\r\n\r\nexport type UpdateRequest = {\r\n preferences: DeliveryPreferencesItem[];\r\n};\r\n\r\nexport interface DeliveryData {\r\n email: string;\r\n accounts: AccountData[];\r\n}\r\n\r\nexport interface DeliveryDataResponse {\r\n data: DeliveryData;\r\n}\r\n\r\nexport interface CompanyDeliveryOptions {\r\n accountStatements: DeliveryTypes;\r\n shareOwnerCommunications: DeliveryTypes;\r\n taxForms: DeliveryTypes;\r\n directDepositNotice: DeliveryTypes;\r\n}\r\n\r\nexport interface CompanyOptions extends CompanyDeliveryOptions {\r\n name: string;\r\n securityType: string;\r\n}\r\n\r\nexport interface AccountData {\r\n accountNumber: string;\r\n accountStatements: DeliveryTypes;\r\n shareOwnerCommunications: DeliveryTypes;\r\n taxForms: DeliveryTypes;\r\n directDepositNotice: DeliveryTypes;\r\n companies: CompanyOptions[];\r\n canSelectAccountStatementsDeliveryMethod: boolean;\r\n canSelectShareOwnerCommunicationsDeliveryMethod: boolean;\r\n canSelectTaxFormsDeliveryMethod: boolean;\r\n canSelectDirectDepositNoticeDeliveryMethod: boolean;\r\n}\r\n\r\nexport enum FORM_KEYS {\r\n setAllToEDelivery = 'setAllToEDelivery',\r\n deliveryPreferences = 'deliveryPreferences',\r\n accountNumber = 'accountNumber',\r\n accountStatements = 'accountStatements',\r\n shareOwnerCommunications = 'shareOwnerCommunications',\r\n taxForms = 'taxForms',\r\n directDepositNotice = 'directDepositNotice',\r\n}\r\n\r\nexport interface DeliveryPreferencesFormValues {\r\n accountNumber: string;\r\n accountStatements?: string;\r\n shareOwnerCommunications?: string;\r\n taxForms?: string;\r\n directDepositNotice?: string;\r\n}\r\n\r\nexport interface DeliveryPreferencesItem {\r\n accountNumber: string;\r\n accountStatements: DeliveryTypes;\r\n shareOwnerCommunications: DeliveryTypes;\r\n taxForms: DeliveryTypes;\r\n directDepositNotice: DeliveryTypes;\r\n}\r\n\r\nexport interface DeliveryPreferencesFormData {\r\n setAllToEDelivery?: BINARY;\r\n deliveryPreferences: DeliveryPreferencesFormValues[];\r\n}\r\n\r\nexport const getValidationSchema = (_t: Translate) =>\r\n object().shape({\r\n [FORM_KEYS.setAllToEDelivery]: string().required(_t('e1053NoEdeliveryCommsSelectionMade')),\r\n [FORM_KEYS.deliveryPreferences]: array().when(FORM_KEYS.setAllToEDelivery, {\r\n is: BINARY.No,\r\n then: array().of(\r\n object().shape({\r\n [FORM_KEYS.accountNumber]: string(),\r\n [FORM_KEYS.taxForms]: number().required(_t('e1054SelecteDeliveryPreference')),\r\n [FORM_KEYS.accountStatements]: number().required(_t('e1054SelecteDeliveryPreference')),\r\n [FORM_KEYS.shareOwnerCommunications]: number().required(\r\n _t('e1054SelecteDeliveryPreference'),\r\n ),\r\n [FORM_KEYS.directDepositNotice]: number().required(_t('e1054SelecteDeliveryPreference')),\r\n }),\r\n ),\r\n }),\r\n });\r\n\r\nexport const getInitialValues = (data: DeliveryData): DeliveryPreferencesFormData => {\r\n return {\r\n setAllToEDelivery: BINARY.Yes,\r\n deliveryPreferences: data.accounts.map(initialDeliveryPreferences),\r\n };\r\n};\r\n\r\nconst initialDeliveryPreferences = (account: AccountData): DeliveryPreferencesFormValues => ({\r\n accountNumber: account.accountNumber,\r\n accountStatements: String(account.accountStatements),\r\n shareOwnerCommunications: String(account.shareOwnerCommunications),\r\n taxForms: String(account.taxForms),\r\n directDepositNotice: String(account.directDepositNotice),\r\n});\r\n","import { IconName } from '../../../lib/Icon/IconsProvider';\r\nimport { AlertsAndMessagesCmsData } from '../../../containers/CmsData/store/cmsData.model';\r\n\r\nexport enum AlertType {\r\n None,\r\n OutstandingChecks,\r\n UndeliverableAddress,\r\n TaxCertified,\r\n FirstBNotice,\r\n SecondBNotice,\r\n CNotice,\r\n AccountReCertification,\r\n EmailNotSet,\r\n PasswordExpiry,\r\n}\r\n\r\nexport interface AlertProps {\r\n icon: IconName;\r\n alertType: AlertType;\r\n buttonText: string;\r\n accountNumber: number;\r\n actionTitle: string;\r\n actionText: string;\r\n accountNumberLabel: string;\r\n hideButton?: boolean;\r\n fullWidth?: boolean;\r\n id?: string;\r\n onPerformAction: (alertType: AlertType) => void;\r\n}\r\n\r\nexport interface AlertsResponseItem {\r\n alertType: AlertType;\r\n accountNumber: number;\r\n}\r\n\r\nexport function mapAlertResponseItemToAlertFactory(cmsData: AlertsAndMessagesCmsData) {\r\n return (response: AlertsResponseItem): AlertProps =>\r\n ({\r\n ...getAlertTexts(cmsData, response.alertType),\r\n icon: getAlertIcon(response.alertType),\r\n accountNumber: response.accountNumber,\r\n alertType: response.alertType as AlertType,\r\n accountNumberLabel: cmsData.c50AccountNumberLabel,\r\n } as AlertProps);\r\n}\r\n\r\nexport function getAlertTexts(\r\n cmsData: AlertsAndMessagesCmsData,\r\n alertType: AlertType,\r\n): Partial {\r\n switch (alertType) {\r\n case AlertType.OutstandingChecks:\r\n return {\r\n actionTitle: cmsData.c30OutstandingChecksDescription,\r\n actionText: cmsData.c40OutstandingChecksHyperlink,\r\n buttonText: cmsData.c60OutstandingChecksPrimaryButton,\r\n };\r\n case AlertType.UndeliverableAddress:\r\n return {\r\n actionTitle: cmsData.c70UndeliverableAddressDescription,\r\n actionText: cmsData.c80UndeliverableAddressHyperlink,\r\n buttonText: cmsData.c90UndeliverableAddressPrimaryButton,\r\n };\r\n case AlertType.TaxCertified:\r\n return {\r\n actionTitle: cmsData.c100TaxCertifiedDescription,\r\n actionText: cmsData.c110TaxCertifiedHyperlink,\r\n buttonText: cmsData.c120TaxCertifiedPrimaryButton,\r\n };\r\n case AlertType.FirstBNotice:\r\n return {\r\n actionTitle: cmsData.c130FirstBNoticeDescription,\r\n actionText: cmsData.c140FirstBNoticeHyperlink,\r\n buttonText: cmsData.c150FirstBNoticePrimaryButton,\r\n };\r\n case AlertType.SecondBNotice:\r\n return {\r\n actionTitle: cmsData.c160SecondBNoticeDescription,\r\n actionText: cmsData.c170SecondBNoticeHyperlink,\r\n buttonText: cmsData.c180SecondBNoticePrimaryButton,\r\n };\r\n case AlertType.CNotice:\r\n return {\r\n actionTitle: cmsData.c190CNoticeDescription,\r\n actionText: cmsData.c200CNoticeHyperlink,\r\n buttonText: cmsData.c210CNoticePrimaryButton,\r\n };\r\n case AlertType.AccountReCertification:\r\n return {\r\n actionTitle: cmsData.c220AccountRecertificationDescription,\r\n actionText: cmsData.c230AccountRecertificationHyperlink,\r\n buttonText: cmsData.c240AccountRecertificationPrimaryButton,\r\n };\r\n case AlertType.EmailNotSet:\r\n return {\r\n actionTitle: cmsData.c250EmailNotSetDescription,\r\n actionText: cmsData.c260EmailNotSetHyperlink,\r\n buttonText: cmsData.c270EmailNotSetPrimaryButton,\r\n };\r\n case AlertType.PasswordExpiry:\r\n return {\r\n actionTitle: cmsData.c280PasswordExpiryDescription,\r\n actionText: cmsData.c290PasswordExpiryHyperlink,\r\n buttonText: cmsData.c300PasswordExpiryPrimaryButton,\r\n };\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nexport function getAlertIcon(alertType: AlertType): IconName {\r\n switch (alertType) {\r\n default:\r\n return 'bell';\r\n }\r\n}\r\n","import * as sComponents from 'styled-components';\r\nimport { ThemedStyledComponentsModule } from 'styled-components';\r\n\r\nimport { ThemeType } from './theme';\r\n\r\nexport interface Theme {\r\n theme: ThemeType;\r\n}\r\n\r\nexport const styledComponents: ThemedStyledComponentsModule = sComponents as any;\r\n\r\nexport const { default: styled, css, keyframes, createGlobalStyle, ThemeProvider } = styledComponents;\r\n","const LOG_LEVEL = (process.env.REACT_APP_LOG_LEVEL || '') as LogType;\r\n\r\nenum LogLevel {\r\n 'info' = 1,\r\n 'warn',\r\n 'error',\r\n 'none',\r\n}\r\n\r\ntype LogType = 'info' | 'warn' | 'error';\r\n\r\ntype LogWriter = (message: string, metadata?: any) => void;\r\n\r\ntype TypeToWriterMap = { [type in LogType]: LogWriter };\r\n\r\nconst typeToLoggerMap: TypeToWriterMap = {\r\n info: (msg, metadata) => (metadata ? console.log(msg, metadata) : console.log(msg)),\r\n warn: (msg, metadata) => (metadata ? console.warn(msg, metadata) : console.warn(msg)),\r\n error: (msg, metadata) => (metadata ? console.error(msg, metadata) : console.error(msg)),\r\n};\r\n\r\ntype Log = (type: LogType, message: string, metadata?: any) => void;\r\n\r\nfunction isLogEnabledInEnvironment() {\r\n return process.env.CI !== 'true';\r\n}\r\n\r\nfunction isLogEnabled(type: LogType) {\r\n return LogLevel[type] >= parseLogLevel(LOG_LEVEL);\r\n}\r\n\r\nfunction parseLogLevel(logType: LogType) {\r\n if (LogLevel[logType] === undefined) {\r\n return LogLevel.error;\r\n }\r\n\r\n return LogLevel[logType];\r\n}\r\n\r\nexport const log: Log = (type, message, metadata?) =>\r\n isLogEnabledInEnvironment() && isLogEnabled(type) && typeToLoggerMap[type](message, metadata);\r\nexport const logInfo = (message: string, metadata?: any) => log('info', message, metadata);\r\nexport const logWarning = (message: string, metadata?: any) => log('warn', message, metadata);\r\nexport const logError = (message: string, metadata?: any) => log('error', message, metadata);\r\n","import { PropsWithChildren } from 'react';\r\n\r\ninterface OwnProps {\r\n shouldRender: boolean;\r\n component?: () => JSX.Element;\r\n}\r\n\r\nexport function OptionalRender({ shouldRender, component, children }: PropsWithChildren) {\r\n return (shouldRender ? (!!component ? component() : children) : null) as JSX.Element;\r\n}\r\n","import { number, object, string } from 'yup';\r\nimport {\r\n DividendDripDetails,\r\n DividendReinvestment,\r\n DividendStep,\r\n PartialReinvestmentType,\r\n ReinvestmentType,\r\n ReinvestmentOption,\r\n} from '../../../store/dividend.model';\r\nimport { isNewUserManagingDividends } from '../../../store/dividend.utils';\r\nimport { getFlattenReinvestmentTypes } from '../../../store/dividend.constants';\r\nimport { DividendDetailsFormValues } from '../../Details/DividendDetailsForm';\r\nimport { getDividendDetailsNextStep } from '../../Details/helpers/dividendDetailsForm.utils';\r\nimport { DividendPlanFormValues } from '../DividendPlanForm';\r\nimport { DIVIDEND_PLAN_FORM_KEYS as FORM_KEYS } from './dividendPlanForm.constants';\r\nimport { isTrue, isFalse } from '../../../../../lib/Form/Validation/validation.utils';\r\nimport { FormBoolean } from '../../../../../lib/Form/Validation/validation.model';\r\n\r\ntype IndicatorValue = 'Y' | 'N' | undefined;\r\n\r\nexport function getDividendPlanInitialValues(\r\n dripDetails: DividendDripDetails,\r\n): DividendPlanFormValues {\r\n return {\r\n reinvestDividends: getReinvestInitialOption(dripDetails),\r\n reinvestAllShares: getReinvestAllInitialOption(dripDetails),\r\n quantityToReinvestAbsolute: '',\r\n quantityToCash: '',\r\n quantityToReinvestPercentage:\r\n dripDetails && dripDetails.reinvestmentPercent ? dripDetails.reinvestmentPercent : 10,\r\n };\r\n}\r\n\r\nexport function getDividendPlanFormValidationSchema(\r\n dripDetails: DividendDripDetails,\r\n cmsLabel: (id: string) => string,\r\n) {\r\n const { reinvestmentOptions } = dripDetails;\r\n const includesReinvestment = (types: [ReinvestmentType, ReinvestmentType]) =>\r\n reinvestmentOptions.some((o) => o.reinvestmentType === types[0]) &&\r\n reinvestmentOptions.some((o) => o.reinvestmentType === types[1]);\r\n\r\n const quantityOfSharesAllowed = includesReinvestment([\r\n ReinvestmentType.RPY,\r\n ReinvestmentType.RPN,\r\n ]);\r\n const quantityOfCashAllowed = includesReinvestment([ReinvestmentType.PSY, ReinvestmentType.PSN]);\r\n const sharePercentageAllowed = includesReinvestment([ReinvestmentType.RXY, ReinvestmentType.RXN]);\r\n const reinvestPlanSharesAllowed = reinvestmentOptions.some(\r\n (option) => option.reinvestmentType === ReinvestmentType.RVY,\r\n );\r\n\r\n const reinvestmentOptionsPairCount = [\r\n quantityOfSharesAllowed,\r\n quantityOfCashAllowed,\r\n sharePercentageAllowed,\r\n reinvestPlanSharesAllowed,\r\n ].filter((pair) => pair).length;\r\n\r\n const getReinvestDividendsSchema = () =>\r\n isIssueOfferOnlyFullReinvestment(reinvestmentOptions)\r\n ? string().notRequired()\r\n : string().required(cmsLabel('dividends.e1064DividendReinvestmentChoiceNotSelected'));\r\n\r\n return object().shape({\r\n [FORM_KEYS.reinvestDividends]: getReinvestDividendsSchema(),\r\n [FORM_KEYS.reinvestAllShares]: string().when(FORM_KEYS.reinvestDividends, {\r\n is: (val: FormBoolean) =>\r\n isTrue(val) &&\r\n reinvestmentOptions.some((o) => o.reinvestmentType === ReinvestmentType.RD) &&\r\n (quantityOfSharesAllowed || quantityOfCashAllowed || sharePercentageAllowed),\r\n then: string().required(cmsLabel('dividends.e1065DividendReinvestmentTypeNotSelected')),\r\n otherwise: string().notRequired(),\r\n }),\r\n [FORM_KEYS.partialReinvestmentType]: string().when(\r\n [FORM_KEYS.reinvestAllShares, FORM_KEYS.reinvestDividends],\r\n {\r\n is: (reinvestAllShares: FormBoolean, reinvestDividends: FormBoolean) =>\r\n isTrue(reinvestDividends) &&\r\n (isFalse(reinvestAllShares) || !reinvestAllShares) &&\r\n reinvestmentOptionsPairCount > 1,\r\n then: string().required(\r\n cmsLabel('dividends.e1061DividendPartialReinvestmentChoiceNotSelected'),\r\n ),\r\n otherwise: string().notRequired(),\r\n },\r\n ),\r\n\r\n [FORM_KEYS.quantityToReinvestAbsolute]: number()\r\n .typeError(cmsLabel('dividends.e1063QuantityOfSharesAsValidNumberRequired'))\r\n .when([FORM_KEYS.partialReinvestmentType, FORM_KEYS.reinvestDividends], {\r\n is: (partialReinvestmentType: string, reinvestDividends: FormBoolean) =>\r\n partialReinvestmentType === PartialReinvestmentType.Shares && isTrue(reinvestDividends),\r\n then: number()\r\n .typeError(cmsLabel('dividends.e1063QuantityOfSharesAsValidNumberRequired'))\r\n .integer(cmsLabel('dividends.e1063QuantityOfSharesAsValidNumberRequired'))\r\n .min(1, cmsLabel('dividends.e1066AuthenticateQuantityOfSharesAvailable'))\r\n .max(\r\n getNumberOfSharesEligibleForReinvestment(\r\n dripDetails,\r\n 'REINVEST PARTIAL NUMBER OF ISSUED SHARES ONLY',\r\n ),\r\n cmsLabel('dividends.e1066AuthenticateQuantityOfSharesAvailable'),\r\n )\r\n .required(cmsLabel('dividends.e1062QuantityOfSharesRequired')),\r\n }),\r\n [FORM_KEYS.quantityToCash]: number()\r\n .typeError(cmsLabel('dividends.e1063QuantityOfSharesAsValidNumberRequired'))\r\n .when([FORM_KEYS.partialReinvestmentType, FORM_KEYS.reinvestDividends], {\r\n is: (partialReinvestmentType: string, reinvestDividends: FormBoolean) =>\r\n partialReinvestmentType === PartialReinvestmentType.Cash && isTrue(reinvestDividends),\r\n then: number()\r\n .typeError(cmsLabel('dividends.e1063QuantityOfSharesAsValidNumberRequired'))\r\n .integer(cmsLabel('dividends.e1063QuantityOfSharesAsValidNumberRequired'))\r\n .min(1, cmsLabel('dividends.e1066AuthenticateQuantityOfSharesAvailable'))\r\n .max(\r\n getNumberOfSharesEligibleForReinvestment(\r\n dripDetails,\r\n 'PAY OUT PARTIAL NUMBER OF ISSUED SHARES ONLY',\r\n ),\r\n cmsLabel('dividends.e1066AuthenticateQuantityOfSharesAvailable'),\r\n )\r\n .required(cmsLabel('dividends.e1062QuantityOfSharesRequired')),\r\n }),\r\n [FORM_KEYS.reinvestPlanShares]: string(),\r\n [FORM_KEYS.quantityToReinvestPercentage]: number()\r\n .integer()\r\n .min(10)\r\n .max(90),\r\n });\r\n}\r\n\r\nexport function getDividendPlanFormNextStep(\r\n dripDetails: DividendDripDetails,\r\n dividendDetailsFormValues: DividendDetailsFormValues,\r\n): DividendStep {\r\n const dividendDetailsSecondStep = getDividendDetailsNextStep(\r\n dripDetails,\r\n dividendDetailsFormValues,\r\n ).secondStep;\r\n return dividendDetailsSecondStep === DividendStep.Payment\r\n ? DividendStep.Payment\r\n : DividendStep.Confirm;\r\n}\r\n\r\nfunction getNumberOfSharesEligibleForReinvestment(\r\n dripDetails: DividendDripDetails,\r\n indicatorKey: string,\r\n) {\r\n const indicatorValue = getIndicatorValue(dripDetails, indicatorKey);\r\n return getNumberOfSharesEligibleByIndicatorValue(dripDetails, indicatorValue);\r\n}\r\n\r\nfunction getNumberOfSharesEligibleByIndicatorValue(\r\n dripDetails: DividendDripDetails,\r\n indicatorValue: IndicatorValue,\r\n) {\r\n const { numberOfPlanShares, numberOfDRSShares, numberOfCertificateShares } = dripDetails;\r\n\r\n if (indicatorValue === 'Y') {\r\n return numberOfDRSShares + numberOfCertificateShares;\r\n }\r\n\r\n if (indicatorValue === 'N') {\r\n return numberOfPlanShares + numberOfDRSShares + numberOfCertificateShares;\r\n }\r\n\r\n return Number.MAX_VALUE;\r\n}\r\n\r\nfunction getIndicatorValue(dripDetails: DividendDripDetails, indicatorKey: string): IndicatorValue {\r\n const indicator =\r\n dripDetails.issuedUnissuedIndicators &&\r\n dripDetails.issuedUnissuedIndicators.find((i) => i.indicator === indicatorKey);\r\n // @ts-ignore\r\n return indicator && indicator.indicatorValue;\r\n}\r\n\r\nfunction getIndicator(reinvestment: DividendReinvestment): string {\r\n if (reinvestment === DividendReinvestment.RX) {\r\n return 'PARTIAL REINVEST PERCENTAGE OF CERTIFICATE SHARES ONLY';\r\n }\r\n\r\n if (reinvestment === DividendReinvestment.RP) {\r\n return 'REINVEST PARTIAL NUMBER OF ISSUED SHARES ONLY';\r\n }\r\n\r\n if (reinvestment === DividendReinvestment.PS) {\r\n return 'PAY OUT PARTIAL NUMBER OF ISSUED SHARES ONLY';\r\n }\r\n\r\n if (reinvestment === DividendReinvestment.RV) {\r\n return 'REINVEST DIVIDENDS ON DRP SHARES FOR VOLUNTARY CASH ACCTS';\r\n }\r\n\r\n return '';\r\n}\r\n\r\nexport function getReinvestmentType(\r\n reinvestment: DividendReinvestment,\r\n dripDetails: DividendDripDetails,\r\n): string {\r\n const indicator = getIndicator(reinvestment);\r\n const indicatorValue = getIndicatorValue(dripDetails, indicator);\r\n\r\n if (!indicatorValue) {\r\n return '';\r\n }\r\n\r\n return `${reinvestment}${indicatorValue}`;\r\n}\r\n\r\nexport const isIssueOfferOnlyFullReinvestment = (reinvestmentOptions: ReinvestmentOption[]) =>\r\n reinvestmentOptions.length === 1 &&\r\n reinvestmentOptions[0].reinvestmentType === ReinvestmentType.RD;\r\n\r\nexport const isReinvestmentPreselected = (reinvestOptions: ReinvestmentOption[]) => {\r\n const {\r\n containFullReinvestment,\r\n containReinvestmentOptions,\r\n containNoReinvestmentOptions,\r\n } = getFlattenReinvestmentTypes(reinvestOptions);\r\n\r\n return containFullReinvestment && containReinvestmentOptions && !containNoReinvestmentOptions;\r\n};\r\n\r\nexport function shouldSkipPaymentStep(dripDetails: DividendDripDetails) {\r\n const { reinvestmentOptions } = dripDetails;\r\n const containsRD = reinvestmentOptions.some((o) => o.reinvestmentType === ReinvestmentType.RD);\r\n const containsRP0 = reinvestmentOptions.some((o) => o.reinvestmentType === ReinvestmentType.RP0);\r\n const issueOfferOnlyFullReinvestment = isIssueOfferOnlyFullReinvestment(reinvestmentOptions);\r\n const newUserManagingDividends = isNewUserManagingDividends(dripDetails);\r\n\r\n const doesNotAllowPayment = !reinvestmentOptions.some(\r\n (o) =>\r\n o.reinvestmentType === ReinvestmentType.RPY ||\r\n o.reinvestmentType === ReinvestmentType.RPN ||\r\n o.reinvestmentType === ReinvestmentType.PSY ||\r\n o.reinvestmentType === ReinvestmentType.PSN ||\r\n o.reinvestmentType === ReinvestmentType.RXY ||\r\n o.reinvestmentType === ReinvestmentType.RXN,\r\n );\r\n\r\n return (\r\n (containsRD && containsRP0 && doesNotAllowPayment) ||\r\n (issueOfferOnlyFullReinvestment && !newUserManagingDividends)\r\n );\r\n}\r\n\r\nfunction getReinvestInitialOption(dripDetails: DividendDripDetails): FormBoolean {\r\n const { reinvestmentOptions } = dripDetails;\r\n\r\n return reinvestmentOptions && isReinvestmentPreselected(reinvestmentOptions) ? 'true' : '';\r\n}\r\n\r\nfunction getReinvestAllInitialOption(dripDetails: DividendDripDetails): FormBoolean {\r\n const { reinvestmentOptions } = dripDetails;\r\n const issueOfferOnlyFullReinvestment = isIssueOfferOnlyFullReinvestment(reinvestmentOptions);\r\n\r\n return issueOfferOnlyFullReinvestment ? 'true' : '';\r\n}\r\n","export enum DIVIDEND_DETAILS_FORM_KEYS {\r\n editType = 'editType',\r\n enrolInPlan = 'enrolInPlan',\r\n changePaymentType = 'changePaymentType',\r\n}\r\n","import { RouterState } from 'connected-react-router';\r\nimport { FormatState } from '../containers/Format/store/model';\r\nimport { ModalState } from '../lib/Modal/store/model';\r\nimport { AccountProfileState } from '../pages/AccountSettings/AccountProfile/store/accountProfile.model';\r\nimport { AccountPortfolioState } from '../pages/Portfolio/store/model';\r\nimport { AddressState } from '../pages/AccountSettings/Address/store/address.model';\r\nimport { DeliveryPreferencesState } from '../pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.model';\r\nimport { DividendsState } from '../pages/Dividend/store/dividend.model';\r\nimport { FormPersistState } from '../containers/FormPersist/store/formPersist.model';\r\nimport { ProxyDeliveryPreferencesState } from '../pages/AccountSettings/ProxyDeliveryPreferences/store/proxyDeliveryPreferences.model';\r\nimport { AnimationState } from '../containers/Animation/store/animation.model';\r\nimport { SecurityOverviewState } from '../pages/SecurityOverview/store/securityOverview.model';\r\nimport { UnreadMessagesState } from '../shared/UnreadMessages/store/unreadMessages.model';\r\nimport { UnreadAlertsState } from '../shared/UnreadAlerts/store/unreadAlerts.model';\r\nimport { AlertsAndMessagesState } from '../pages/AlertsAndMessages/store/alertAndMessage.model';\r\nimport { TaxCertificationState } from '../pages/AccountSettings/TaxCertification/store/taxCertification.model';\r\n\r\nexport interface RootState {\r\n router: RouterState;\r\n accountProfile: AccountProfileState;\r\n accountPortfolio: AccountPortfolioState;\r\n accountAddress: AddressState;\r\n deliveryPreferences: DeliveryPreferencesState;\r\n proxyDeliveryPreferences: ProxyDeliveryPreferencesState;\r\n taxCertification: TaxCertificationState;\r\n format: FormatState;\r\n modal: ModalState;\r\n dividends: DividendsState;\r\n formPersist: FormPersistState;\r\n animation: AnimationState;\r\n securityOverview: SecurityOverviewState;\r\n unreadMessages: UnreadMessagesState;\r\n unreadAlerts: UnreadAlertsState;\r\n alertsAndMessages: AlertsAndMessagesState;\r\n}\r\n\r\nexport enum ProgressTypeEnum {\r\n Initial = 'Initial',\r\n Loading = 'Loading',\r\n Loaded = 'Loaded',\r\n LoadFailed = 'LoadFailed',\r\n}\r\n","import React from 'react';\r\nimport { Alert as LibAlert, UncontrolledAlert } from 'reactstrap';\r\nimport { OptionalRender } from '../OptionalRender';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\nimport { MARGIN_BIG, GUTTER_WIDTH } from '../../style/style.constants';\r\n\r\ninterface OwnProps {\r\n color: 'success' | 'info' | 'danger' | 'warning';\r\n dismissible?: boolean;\r\n fullWidth?: boolean;\r\n small?: boolean;\r\n onClose?: () => void;\r\n className?: string;\r\n children?: any;\r\n noVerticalMargin?: boolean;\r\n hideEmpty?: boolean;\r\n id?: string;\r\n}\r\n\r\nexport function Alert({\r\n color,\r\n dismissible,\r\n fullWidth,\r\n onClose,\r\n small,\r\n className,\r\n noVerticalMargin,\r\n hideEmpty,\r\n children,\r\n id,\r\n}: OwnProps) {\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n fullWidth?: boolean;\r\n small?: boolean;\r\n noVerticalMargin?: boolean;\r\n hideEmpty?: boolean;\r\n}\r\n\r\nconst Container = styled.div`\r\n ${(p: ContainerProps) =>\r\n p.hideEmpty &&\r\n `\r\n :empty {\r\n display: none;\r\n }\r\n `}\r\n\r\n > div {\r\n margin-bottom: ${MARGIN_BIG}px;\r\n border-radius: 0;\r\n font-weight: normal;\r\n\r\n ${(p: ContainerProps) =>\r\n p.fullWidth &&\r\n `\r\n margin: ${MARGIN_BIG}px -${GUTTER_WIDTH}px ${MARGIN_BIG}px -${GUTTER_WIDTH}px;\r\n `}\r\n\r\n ${(p: ContainerProps) =>\r\n p.small &&\r\n `\r\n font-size: 14px;\r\n padding-top: 5px;\r\n padding-bottom: 5px;\r\n `}\r\n ${(p: ContainerProps) =>\r\n p.noVerticalMargin &&\r\n `\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n `}\r\n\r\n p {\r\n margin-bottom: 0;\r\n }\r\n }\r\n\r\n .close {\r\n padding-bottom: 0.6rem;\r\n\r\n span {\r\n position: relative;\r\n top: -2px;\r\n }\r\n }\r\n\r\n .alert-warning {\r\n a {\r\n color: #856404;\r\n text-decoration: underline;\r\n }\r\n }\r\n .alert-info, .alert-success {\r\n border-radius: 6px;\r\n font-weight: 500;\r\n font-size: 16px;\r\n p {\r\n font-weight: 500;\r\n }\r\n }\r\n .alert-info {\r\n background-color: rgba(209, 236, 241, 0.2);\r\n }\r\n .alert-success {\r\n background-color: rgba(212, 237, 218, 0.2);\r\n }\r\n`;\r\n","export const GUTTER_WIDTH = 20;\r\n\r\nexport const MARGIN_BIG = 30;\r\n","import React from 'react';\r\nimport { Button as LibButton } from 'reactstrap';\r\nimport { hexToRgbA, px } from '../../style';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\nimport { IconName } from '../Icon/IconsProvider';\r\nimport { Icon } from '../Icon/Icon';\r\n\r\nexport const BUTTON_MARGIN_LEFT = 20;\r\nexport const BUTTON_MARGIN_VERTICAL = 30;\r\n\r\nexport type ButtonStyleType =\r\n | 'primary'\r\n | 'blue'\r\n | 'secondary'\r\n | 'tertiary'\r\n | 'link' // Note: so far used only in one place AccordionItem.tsx for (+/-) button/icon.\r\n | 'alternative';\r\nexport type ButtonSize = 'small' | 'medium';\r\n\r\ninterface OwnProps extends React.ButtonHTMLAttributes {\r\n styleType?: ButtonStyleType;\r\n active?: boolean;\r\n size?: ButtonSize;\r\n icon?: IconName;\r\n iconSize?: number;\r\n noVerticalMargin?: boolean;\r\n iconOnLeft?: boolean;\r\n disabled?: boolean;\r\n onClick?: () => void;\r\n className?: string;\r\n}\r\n\r\nexport type ButtonProps = OwnProps;\r\n\r\nexport function Button(props: OwnProps) {\r\n const { children, icon, iconOnLeft, iconSize } = props;\r\n const ButtonIconComp = (\r\n \r\n );\r\n const leftIcon = !!icon && !!iconOnLeft && ButtonIconComp;\r\n const rightIcon = !!icon && !iconOnLeft && ButtonIconComp;\r\n\r\n return (\r\n \r\n {leftIcon}\r\n {children}\r\n {rightIcon}\r\n \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n styleType?: ButtonStyleType;\r\n size?: ButtonSize;\r\n iconOnLeft?: boolean;\r\n iconSize?: number;\r\n noVerticalMargin?: boolean;\r\n disabled?: boolean;\r\n children?: any;\r\n}\r\n\r\nconst getOutlineColor = (p: ContainerProps) => {\r\n switch (p.styleType) {\r\n case 'primary':\r\n case 'secondary':\r\n return hexToRgbA(p.theme.colors.primary1, 0.3);\r\n case 'tertiary':\r\n return hexToRgbA(p.theme.colors.primary3, 0.6);\r\n case 'alternative':\r\n return hexToRgbA(p.theme.colors.primary4, 0.6);\r\n case 'link':\r\n return 'transparent';\r\n default:\r\n return hexToRgbA(p.theme.colors.primary2, 0.4);\r\n }\r\n};\r\n\r\nconst getCssByButtonStyle = (p: ContainerProps): string => {\r\n switch (p.styleType) {\r\n default:\r\n case 'primary':\r\n return `\r\n background-color: ${p.theme.colors.primary1};\r\n color: ${p.theme.colors.white};\r\n `;\r\n case 'secondary':\r\n return `\r\n border: 1px solid ${p.theme.colors.primary1} !important;\r\n background-color: ${p.theme.colors.white};\r\n color: ${p.theme.colors.primary1};\r\n `;\r\n case 'tertiary':\r\n return `\r\n border: 1px solid ${p.theme.colors.primary2} !important;\r\n background-color: ${p.theme.colors.white};\r\n color: ${p.theme.colors.primary2};\r\n `;\r\n case 'alternative':\r\n return `\r\n background-color: ${p.theme.colors.primary4};\r\n color: ${p.theme.colors.white};\r\n `;\r\n case 'link':\r\n return `\r\n color: ${p.theme.colors.primary1};\r\n background-color: transparent;\r\n min-width: auto !important;\r\n width: auto !important;\r\n &:hover {\r\n color: ${p.theme.colors.primary1};\r\n }\r\n &:hover,\r\n &:focus,\r\n &:active,\r\n &:hover:focus,\r\n &:active:focus { \r\n box-shadow: none; \r\n background-color: transparent;\r\n }\r\n `;\r\n }\r\n};\r\n\r\nconst getCssByDisabledProp = (p: ContainerProps): string => {\r\n if (!p.disabled) {\r\n return ``;\r\n }\r\n const DISABLED_COLOR_BG = '#f5f5f5';\r\n const DISABLED_COLOR_TEXT = '#5d5d5d';\r\n\r\n switch (p.styleType) {\r\n default:\r\n case 'primary':\r\n case 'alternative':\r\n return `\r\n opacity: 1 !important;\r\n background-color: ${DISABLED_COLOR_BG};\r\n color: ${DISABLED_COLOR_TEXT};\r\n `;\r\n case 'secondary':\r\n case 'tertiary':\r\n return `\r\n opacity: 1 !important;\r\n border: 1px solid ${DISABLED_COLOR_BG} !important;\r\n color: ${DISABLED_COLOR_TEXT};\r\n `;\r\n\r\n case 'link':\r\n return `\r\n opacity: 1 !important;\r\n color: #c3c4c5;\r\n `;\r\n }\r\n};\r\n\r\nconst getCssByButtonSize = (p: ContainerProps): string => {\r\n switch (p.size) {\r\n case 'small':\r\n return `\r\n min-width: 60px !important;\r\n font-size: 14px !important;\r\n height: 25px !important;\r\n line-height: 11px !important;\r\n `;\r\n\r\n case 'medium':\r\n return `\r\n min-width: 90px !important;\r\n font-size: 12px !important;\r\n height: 37px !important;\r\n line-height: 12px !important;\r\n `;\r\n default:\r\n return ``;\r\n }\r\n};\r\n\r\nconst activeShadow = (p: ContainerProps) =>\r\n !p.disabled && `inset 0 2px 5px 0 rgba(0,0,0,0.2), inset 0 1px 3px 0 rgba(0,0,0,0.1)`;\r\nconst hoverShadow = (p: ContainerProps) =>\r\n !p.disabled && `0 2px 5px 0 rgba(0,0,0,0.2), 0 1px 3px 0 rgba(0,0,0,0.1);`;\r\nconst outlineShadow = (p: ContainerProps) => !p.disabled && `0 0 0 0.2rem ${getOutlineColor(p)}`;\r\n\r\nconst ButtonContainer = styled(\r\n ({\r\n styleType,\r\n noVerticalMargin,\r\n iconOnLeft,\r\n iconSize,\r\n size,\r\n children,\r\n ...rest\r\n }: ContainerProps) => {children},\r\n)`\r\n // Default styling\r\n width: 100%;\r\n padding: 0 20px;\r\n ${(p: ContainerProps) => !p.noVerticalMargin && `margin: ${BUTTON_MARGIN_VERTICAL}px 0;`}\r\n border: 0 none;\r\n height: ${(p) => px(p.theme.button.height)};\r\n border-radius: ${(p) => px(p.theme.button.borderRadius)};\r\n color: ${(p) => p.theme.colors.white}; \r\n\r\n // Hover, Active, Focus\r\n &:hover {\r\n box-shadow: ${hoverShadow};\r\n }\r\n &:focus {\r\n box-shadow: ${outlineShadow};\r\n }\r\n &:active {\r\n box-shadow: ${activeShadow};\r\n }\r\n &:hover:focus {\r\n box-shadow: ${(p) => [outlineShadow(p), hoverShadow(p)].join(', ')};\r\n }\r\n &:active:focus {\r\n box-shadow: ${(p) => [outlineShadow(p), activeShadow(p)].join(', ')};\r\n }\r\n\r\n // Responsive Tablets\r\n ${(p: ContainerProps) => p.theme.media.tablet.andUp} {\r\n width: auto;\r\n min-width: 164px;\r\n & + & {\r\n margin-left: ${BUTTON_MARGIN_LEFT}px;\r\n }\r\n }\r\n\r\n // Responsive Desktop\r\n ${(p: ContainerProps) => p.theme.media.desktop.andUp} {\r\n min-width: 180px;\r\n }\r\n\r\n ${getCssByButtonStyle} \r\n ${getCssByButtonSize} \r\n ${getCssByDisabledProp} \r\n`;\r\n\r\ninterface ButtonIconProps extends Theme {\r\n iconOnLeft: boolean;\r\n iconSize?: number;\r\n}\r\n\r\nconst ButtonIcon = styled(Icon)`\r\n ${(p: ButtonIconProps) => (!!p.iconOnLeft ? `margin-right: 10px;` : `margin-left: 10px;`)}\r\n ${(p: ButtonIconProps) => !!p.iconSize && `font-size: ${p.iconSize}px;`}\r\n`;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { connect, DispatchProp } from 'react-redux';\r\nimport { push } from 'connected-react-router';\r\nimport { Form as FormikForm, Formik, FormikProps } from 'formik';\r\nimport { useCmsData } from '../../../../containers/CmsData';\r\nimport { FormPersist } from '../../../../containers/FormPersist/FormPersist';\r\nimport { getPersistedFormValues } from '../../../../containers/FormPersist/store/formPersist.selectors';\r\nimport { DynamicForm } from '../../../../lib/Form';\r\nimport { FormBoolean } from '../../../../lib/Form/Validation/validation.model';\r\nimport { portfolioPath } from '../../../../routing/path';\r\nimport { RootState } from '../../../../store/rootModel';\r\nimport { dividendActions } from '../../store/dividend.actions';\r\nimport {\r\n DividendDripDetails,\r\n DividendStep,\r\n PersistedDividendForm,\r\n} from '../../store/dividend.model';\r\nimport { isFormInitiallyValid } from '../../store/dividend.selectors';\r\nimport {\r\n isFormValid,\r\n isFullDividendsReinvestment,\r\n isDividendManagementAllowed,\r\n} from '../../store/dividend.utils';\r\nimport { DividendFormActions } from '../shared/DividendFormActions';\r\nimport { DividendFormValidStatusEffect } from '../shared/DividendFormValidStatusEffect';\r\nimport { getDividendDetailsFormFields } from './helpers/dividendDetailsForm.builder';\r\nimport { DIVIDEND_DETAILS_FORM_KEYS } from './helpers/dividendDetailsForm.constants';\r\nimport {\r\n getDividendDetailsFormValidationSchema,\r\n getDividendDetailsNextStep,\r\n} from './helpers/dividendDetailsForm.utils';\r\nimport { logWarning } from '../../../../helpers/logging';\r\n\r\nexport type DividendDetailsFormValues = {\r\n editType: DividendDetailsEditType | '';\r\n enrolInPlan: FormBoolean;\r\n changePaymentType: FormBoolean;\r\n};\r\n\r\nexport enum DividendDetailsEditType {\r\n Plan = 'Plan',\r\n PaymentDetails = 'PaymentDetails',\r\n Both = 'Both',\r\n}\r\n\r\nconst DEFAULT_VALUES: DividendDetailsFormValues = {\r\n editType: '',\r\n enrolInPlan: '',\r\n changePaymentType: '',\r\n};\r\n\r\ninterface OwnProps {\r\n dripDetails: DividendDripDetails;\r\n onCancel: (ignoreDirtySteps?: boolean) => void;\r\n}\r\n\r\nconst mapStateToProps = (state: RootState) => ({\r\n formValuesFromStore: getPersistedFormValues(\r\n state,\r\n PersistedDividendForm.Details,\r\n ),\r\n isFormInitiallyValid: isFormInitiallyValid(state, PersistedDividendForm.Details),\r\n});\r\n\r\ntype StateProps = ReturnType;\r\n\r\ntype Props = OwnProps & StateProps & DispatchProp;\r\n\r\ntype SetFieldValue = (field: DIVIDEND_DETAILS_FORM_KEYS, value: string) => void;\r\n\r\nlet formValues: DividendDetailsFormValues | null = null;\r\nlet formSetFieldValue: SetFieldValue | null = null;\r\n\r\nfunction Component({\r\n dripDetails,\r\n dispatch,\r\n onCancel,\r\n formValuesFromStore,\r\n isFormInitiallyValid,\r\n}: Props) {\r\n const { cmsLabel } = useCmsData();\r\n const fields = getDividendDetailsFormFields(dripDetails, cmsLabel);\r\n const isChangePlanButton = showChangePlanButton();\r\n const isManagementAllowed = isDividendManagementAllowed(dripDetails);\r\n const submitText = isChangePlanButton\r\n ? cmsLabel('dividends.c221DividendDetailsChangePlanText')\r\n : cmsLabel('dividends.c220DividendDetailsNextButtonText');\r\n const isFullDividendsReinvestmentEnabled = isFullDividendsReinvestment(dripDetails);\r\n const isNextStepVisible =\r\n !isFullDividendsReinvestmentEnabled ||\r\n (isFullDividendsReinvestmentEnabled && isChangePlanButton);\r\n useEffect(() => {\r\n if (formSetFieldValue && formValues && formValues.editType === '') {\r\n // Due to custom validation we have to set initial value for EditType field manually using FormProps\r\n formSetFieldValue(DIVIDEND_DETAILS_FORM_KEYS.editType, DividendDetailsEditType.Both);\r\n }\r\n }, []);\r\n const onCancelChecked = useCallback(() => onCancel(!isNextStepVisible), [\r\n onCancel,\r\n isNextStepVisible,\r\n ]);\r\n const onFormikSubmit = () => {};\r\n\r\n function onSubmit(values: DividendDetailsFormValues) {\r\n if (!isManagementAllowed) {\r\n //TODO: this case should be handle in UI instead of only returning false.\r\n logWarning('Online dividend management is not allowed for this issue.');\r\n return;\r\n }\r\n\r\n const nextStep = getDividendDetailsNextStep(dripDetails, values).firstStep;\r\n if (nextStep === null) {\r\n dispatch(push(portfolioPath(dripDetails.accountNumber)));\r\n return;\r\n }\r\n\r\n if (isChangePlanButton) {\r\n dispatch(dividendActions.setActiveStep(DividendStep.Plan));\r\n } else {\r\n dispatch(dividendActions.setActiveStep(nextStep));\r\n }\r\n }\r\n\r\n return (\r\n ) => {\r\n formValues = formProps.values;\r\n formSetFieldValue = formProps.setFieldValue;\r\n\r\n return (\r\n \r\n \r\n\r\n ) =>\r\n isFormValid(fields, formProps)\r\n }\r\n />\r\n {isNextStepVisible && }\r\n\r\n onSubmit(formProps.values) : undefined}\r\n submitText={submitText}\r\n submitDisabled={!isFormValid(fields, formProps) || !isManagementAllowed}\r\n onBack={onCancelChecked}\r\n backText={cmsLabel('dividends.c215DividendDetailsBackButtonText')}\r\n backButtonStyleType={'tertiary'}\r\n cancelText={cmsLabel('dividends.c520DividendStepPaymentCancelButtonText')}\r\n id={'dividend-details-acc-form-actions'}\r\n />\r\n \r\n );\r\n }}\r\n />\r\n );\r\n\r\n function showChangePlanButton() {\r\n const { reinvestmentOptionsAvailable, reinvestmentOptions } = dripDetails;\r\n const hasReinvestmentOptions = reinvestmentOptions && reinvestmentOptions.length >= 2;\r\n\r\n return (\r\n isFullDividendsReinvestment(dripDetails) &&\r\n reinvestmentOptionsAvailable &&\r\n hasReinvestmentOptions\r\n );\r\n }\r\n}\r\n\r\nexport const DividendDetailsForm = connect(mapStateToProps)(Component);\r\n","export const DIVIDEND_PAYMENT_FORM_KEYS = {\r\n paymentMethod: 'paymentMethod',\r\n paymentMethodType: 'paymentMethodType',\r\n createNewAccount: 'createNewAccount',\r\n bankAccountNumber: 'bankAccountNumber',\r\n useSecondaryAddress: 'useSecondaryAddress',\r\n secondaryAddressFormAction: 'secondaryAddressFormAction',\r\n secondaryAddressData: 'secondaryAddress',\r\n secondaryAddress: {\r\n countryCode: 'countryCode',\r\n addressLine1: 'addressLine1',\r\n addressLine2: 'addressLine2',\r\n addressLine3: 'addressLine3',\r\n addressLine4: 'addressLine4',\r\n city: 'city',\r\n state: 'state',\r\n zipCode: 'zipCode',\r\n zipCodeOptional: 'zipCodeOptional',\r\n },\r\n wireTransferData: 'wireTransferData',\r\n newDirectDepositUSBankAccountNumber: 'newDirectDepositUSBankAccountNumber',\r\n newDirectDepositUSBankName: 'newDirectDepositUSBankName',\r\n newDirectDepositUSRoutingNumber: 'newDirectDepositUSRoutingNumber',\r\n newDirectDepositUSBankAccountType: 'newDirectDepositUSBankAccountType',\r\n newDirectDepositINTBankCountry: 'newDirectDepositINTBankCountry',\r\n newDirectDepositINTBankAccountNumber: 'newDirectDepositINTBankAccountNumber',\r\n newDirectDepositINTIBAN: 'newDirectDepositINTIBAN',\r\n newDirectDepositINTRoutingNumber: 'newDirectDepositINTRoutingNumber',\r\n newDirectDepositINTSwiftBicCode: 'newDirectDepositINTSwiftBicCode',\r\n newDirectDepositINTBankName: 'newDirectDepositINTBankName',\r\n newDirectDepositINTBankCity: 'newDirectDepositINTBankCity',\r\n};\r\n","import React from 'react';\r\nimport { Label as LibLabel } from 'reactstrap';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\n\r\ninterface OwnProps extends React.LabelHTMLAttributes {\r\n for?: Field;\r\n forChoice?: boolean;\r\n required?: boolean;\r\n className?: string;\r\n children?: any;\r\n}\r\n\r\nexport function Label(props: OwnProps) {\r\n const { forChoice } = props;\r\n return ;\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n forChoice?: boolean;\r\n required?: boolean;\r\n}\r\n\r\nconst Container = styled(({ forChoice, required, ...rest }: OwnProps) => (\r\n \r\n))`\r\n font-weight: ${(p) => p.theme.fontWeight.normal};\r\n ${(p: ContainerProps) => p.forChoice && `display: flex; align-items: center;`};\r\n ${(p: ContainerProps) =>\r\n p.required &&\r\n `\r\n position: relative;\r\n padding-left: 20px;\r\n\r\n &:before {\r\n content: \"*\";\r\n font-size: 36px;\r\n position: absolute;\r\n top: 2px;\r\n left: 0;\r\n line-height: 1;\r\n color: ${p.theme.colors.primary1};\r\n }\r\n `};\r\n`;\r\n","import React from 'react';\r\nimport { FormGroup as LibFormGroup } from 'reactstrap';\r\nimport { styled } from '../../style/theme/themeModule';\r\n\r\ninterface OwnProps extends React.HTMLProps {\r\n className?: string;\r\n}\r\n\r\nexport function FormGroup(props: OwnProps) {\r\n return ;\r\n}\r\n\r\nconst Container = styled(({ children, ...rest }: OwnProps) => (\r\n {children}\r\n))`\r\n margin-bottom: 20px;\r\n padding-left: 0;\r\n`;\r\n","var map = {\n\t\"./__mock__/SignOn/recoverUsername.cmsData.mock\": [\n\t\t751,\n\t\t23\n\t],\n\t\"./__mock__/SignOn/recoverUsername.cmsData.mock.tsx\": [\n\t\t751,\n\t\t23\n\t],\n\t\"./__mock__/accountSettings.cmsData.mock\": [\n\t\t749,\n\t\t3\n\t],\n\t\"./__mock__/accountSettings.cmsData.mock.ts\": [\n\t\t749,\n\t\t3\n\t],\n\t\"./__mock__/alertsAndMessages.cmsData.mock\": [\n\t\t740,\n\t\t13\n\t],\n\t\"./__mock__/alertsAndMessages.cmsData.mock.ts\": [\n\t\t740,\n\t\t13\n\t],\n\t\"./__mock__/all.cmsData.mock\": [\n\t\t752,\n\t\t4,\n\t\t3,\n\t\t9\n\t],\n\t\"./__mock__/all.cmsData.mock.ts\": [\n\t\t752,\n\t\t4,\n\t\t3,\n\t\t9\n\t],\n\t\"./__mock__/authenticatedBuy.cmsData.mock\": [\n\t\t753,\n\t\t24\n\t],\n\t\"./__mock__/authenticatedBuy.cmsData.mock.ts\": [\n\t\t753,\n\t\t24\n\t],\n\t\"./__mock__/authenticatedSell.cmsData.mock\": [\n\t\t754,\n\t\t25\n\t],\n\t\"./__mock__/authenticatedSell.cmsData.mock.ts\": [\n\t\t754,\n\t\t25\n\t],\n\t\"./__mock__/brokerInstructions.cmsData.mock\": [\n\t\t741,\n\t\t26\n\t],\n\t\"./__mock__/brokerInstructions.cmsData.mock.ts\": [\n\t\t741,\n\t\t26\n\t],\n\t\"./__mock__/checks.cmsData.mock\": [\n\t\t755,\n\t\t14\n\t],\n\t\"./__mock__/checks.cmsData.mock.ts\": [\n\t\t755,\n\t\t14\n\t],\n\t\"./__mock__/commonErrorMessages.cmsData.mock\": [\n\t\t742,\n\t\t27\n\t],\n\t\"./__mock__/commonErrorMessages.cmsData.mock.ts\": [\n\t\t742,\n\t\t27\n\t],\n\t\"./__mock__/companyPlans.cmsData.mock\": [\n\t\t756,\n\t\t15\n\t],\n\t\"./__mock__/companyPlans.cmsData.mock.ts\": [\n\t\t756,\n\t\t15\n\t],\n\t\"./__mock__/components.cmsData.mock\": [\n\t\t748,\n\t\t28\n\t],\n\t\"./__mock__/components.cmsData.mock.ts\": [\n\t\t748,\n\t\t28\n\t],\n\t\"./__mock__/contact.cmsData.mock\": [\n\t\t757,\n\t\t16\n\t],\n\t\"./__mock__/contact.cmsData.mock.ts\": [\n\t\t757,\n\t\t16\n\t],\n\t\"./__mock__/countryGlossary.cmsData.mock\": [\n\t\t758,\n\t\t29\n\t],\n\t\"./__mock__/countryGlossary.cmsData.mock.ts\": [\n\t\t758,\n\t\t29\n\t],\n\t\"./__mock__/dashboard.cmsData.mock\": [\n\t\t743,\n\t\t17\n\t],\n\t\"./__mock__/dashboard.cmsData.mock.ts\": [\n\t\t743,\n\t\t17\n\t],\n\t\"./__mock__/dividend.cmsData.mock\": [\n\t\t744,\n\t\t30\n\t],\n\t\"./__mock__/dividend.cmsData.mock.ts\": [\n\t\t744,\n\t\t30\n\t],\n\t\"./__mock__/documentsAndForms.cmsData.mock\": [\n\t\t759,\n\t\t31\n\t],\n\t\"./__mock__/documentsAndForms.cmsData.mock.ts\": [\n\t\t759,\n\t\t31\n\t],\n\t\"./__mock__/emailAddressMismatch.cmsData.mock\": [\n\t\t760,\n\t\t32\n\t],\n\t\"./__mock__/emailAddressMismatch.cmsData.mock.ts\": [\n\t\t760,\n\t\t32\n\t],\n\t\"./__mock__/espp.cmsData.mock\": [\n\t\t761,\n\t\t18\n\t],\n\t\"./__mock__/espp.cmsData.mock.ts\": [\n\t\t761,\n\t\t18\n\t],\n\t\"./__mock__/glossary.cmsData.mock\": [\n\t\t750,\n\t\t4\n\t],\n\t\"./__mock__/glossary.cmsData.mock.ts\": [\n\t\t750,\n\t\t4\n\t],\n\t\"./__mock__/internationalPaymentsHelp.cmsData.mock\": [\n\t\t762,\n\t\t33\n\t],\n\t\"./__mock__/internationalPaymentsHelp.cmsData.mock.ts\": [\n\t\t762,\n\t\t33\n\t],\n\t\"./__mock__/login.cmsData.mock\": [\n\t\t745,\n\t\t34\n\t],\n\t\"./__mock__/login.cmsData.mock.ts\": [\n\t\t745,\n\t\t34\n\t],\n\t\"./__mock__/marketData.cmsData.mock\": [\n\t\t763,\n\t\t19\n\t],\n\t\"./__mock__/marketData.cmsData.mock.ts\": [\n\t\t763,\n\t\t19\n\t],\n\t\"./__mock__/portfolio.cmsData.mock\": [\n\t\t746,\n\t\t20\n\t],\n\t\"./__mock__/portfolio.cmsData.mock.ts\": [\n\t\t746,\n\t\t20\n\t],\n\t\"./__mock__/securityOverview.cmsData.mock\": [\n\t\t747,\n\t\t21\n\t],\n\t\"./__mock__/securityOverview.cmsData.mock.ts\": [\n\t\t747,\n\t\t21\n\t],\n\t\"./__mock__/shared.cmsData.mock\": [\n\t\t737,\n\t\t35\n\t],\n\t\"./__mock__/shared.cmsData.mock.ts\": [\n\t\t737,\n\t\t35\n\t],\n\t\"./__mock__/signOnIssues.cmsData.mock\": [\n\t\t764,\n\t\t36\n\t],\n\t\"./__mock__/signOnIssues.cmsData.mock.tsx\": [\n\t\t764,\n\t\t36\n\t],\n\t\"./__mock__/signUp.cmsData.mock\": [\n\t\t765,\n\t\t37\n\t],\n\t\"./__mock__/signUp.cmsData.mock.ts\": [\n\t\t765,\n\t\t37\n\t],\n\t\"./__mock__/termsAndConditions.cmsData.mock\": [\n\t\t766,\n\t\t38\n\t],\n\t\"./__mock__/termsAndConditions.cmsData.mock.ts\": [\n\t\t766,\n\t\t38\n\t],\n\t\"./__mock__/wfsso.cmsData.mock\": [\n\t\t767,\n\t\t39\n\t],\n\t\"./__mock__/wfsso.cmsData.mock.ts\": [\n\t\t767,\n\t\t39\n\t],\n\t\"./__test__/cmsData.hooks.test\": [\n\t\t768,\n\t\t40\n\t],\n\t\"./__test__/cmsData.hooks.test.ts\": [\n\t\t768,\n\t\t40\n\t],\n\t\"./__test__/cmsData.utils.test\": [\n\t\t769,\n\t\t22\n\t],\n\t\"./__test__/cmsData.utils.test.tsx\": [\n\t\t769,\n\t\t22\n\t],\n\t\"./__test__/cmsDataTesting.utils\": [\n\t\t770,\n\t\t41\n\t],\n\t\"./__test__/cmsDataTesting.utils.tsx\": [\n\t\t770,\n\t\t41\n\t],\n\t\"./cmsData.actions\": [\n\t\t771,\n\t\t42\n\t],\n\t\"./cmsData.actions.ts\": [\n\t\t771,\n\t\t42\n\t],\n\t\"./cmsData.constants\": [\n\t\t364\n\t],\n\t\"./cmsData.constants.ts\": [\n\t\t364\n\t],\n\t\"./cmsData.hooks\": [\n\t\t239\n\t],\n\t\"./cmsData.hooks.factory\": [\n\t\t739,\n\t\t43\n\t],\n\t\"./cmsData.hooks.factory.tsx\": [\n\t\t739,\n\t\t43\n\t],\n\t\"./cmsData.hooks.tsx\": [\n\t\t239\n\t],\n\t\"./cmsData.mapper\": [\n\t\t363\n\t],\n\t\"./cmsData.mapper.ts\": [\n\t\t363\n\t],\n\t\"./cmsData.model\": [\n\t\t34\n\t],\n\t\"./cmsData.model.ts\": [\n\t\t34\n\t],\n\t\"./cmsData.utils\": [\n\t\t735,\n\t\t44\n\t],\n\t\"./cmsData.utils.tsx\": [\n\t\t735,\n\t\t44\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 1547;\nmodule.exports = webpackAsyncContext;","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\r\n window.location.href,\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA',\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker === null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.',\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType !== null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport { styled, ThemeProvider } from '../theme/themeModule';\r\nimport { ThemeType } from '../theme/theme';\r\n\r\ninterface OwnProps {\r\n theme: ThemeType;\r\n children?: any;\r\n}\r\n\r\nexport function StylesProvider(props: OwnProps) {\r\n const { theme, children } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n//TODO: check why tests fail without container\r\nconst Container = styled.div``;\r\n","import React from 'react';\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport { IconLookup, IconPrefix } from '@fortawesome/fontawesome-common-types';\r\nimport {\r\n faCalendar,\r\n faChevronLeft,\r\n faChevronRight,\r\n faChevronUp,\r\n faChevronDown,\r\n faCheck,\r\n faDesktop,\r\n faIdCardAlt,\r\n faIdCard,\r\n faPlus,\r\n faMinus,\r\n faTimes,\r\n faUserFriends,\r\n faUser,\r\n faTv,\r\n faEnvelope,\r\n faPaperPlane,\r\n faAddressCard,\r\n faQuestionCircle,\r\n faArrowAltCircleUp,\r\n faArrowAltCircleDown,\r\n faAngleRight,\r\n faSlidersH,\r\n faSort,\r\n faSortUp,\r\n faSortDown,\r\n faSortAmountUp,\r\n faSortAmountDown,\r\n faCircle,\r\n faPrint,\r\n faFileDownload,\r\n faEdit,\r\n faEnvelopeOpen,\r\n faTrash,\r\n faBell,\r\n faComment,\r\n faPhone,\r\n faExternalLinkSquareAlt,\r\n faWindowClose,\r\n faFilePdf,\r\n faSearch,\r\n faChartArea,\r\n faHouseDamage,\r\n faFileExcel,\r\n faFileAlt,\r\n faClock,\r\n} from '@fortawesome/free-solid-svg-icons';\r\n\r\n// when adding/removing icons, sync with type IconName\r\nlibrary.add(\r\n faBell,\r\n faCalendar,\r\n faCircle,\r\n faChevronLeft,\r\n faChevronRight,\r\n faChevronDown,\r\n faChevronUp,\r\n faChevronRight,\r\n faCheck,\r\n faDesktop,\r\n faIdCard,\r\n faIdCardAlt,\r\n faPlus,\r\n faMinus,\r\n faTimes,\r\n faUserFriends,\r\n faUser,\r\n faTv,\r\n faPaperPlane,\r\n faEnvelope,\r\n faEnvelopeOpen,\r\n faAddressCard,\r\n faQuestionCircle,\r\n faArrowAltCircleUp,\r\n faArrowAltCircleDown,\r\n faAngleRight,\r\n faSlidersH,\r\n faSort,\r\n faSortUp,\r\n faSortDown,\r\n faSortAmountUp,\r\n faSortAmountDown,\r\n faPrint,\r\n faFileDownload,\r\n faEdit,\r\n faTrash,\r\n faComment,\r\n faPhone,\r\n faExternalLinkSquareAlt,\r\n faWindowClose,\r\n faFilePdf,\r\n faSearch,\r\n faChartArea,\r\n faHouseDamage,\r\n faFileExcel,\r\n faFileAlt,\r\n faClock,\r\n);\r\n\r\nexport type IconName =\r\n | 'bell'\r\n | 'circle'\r\n | 'chevron-left'\r\n | 'chevron-right'\r\n | 'chevron-up'\r\n | 'chevron-down'\r\n | 'calendar'\r\n | 'check'\r\n | 'desktop'\r\n | 'id-card'\r\n | 'id-card-alt'\r\n | 'plus'\r\n | 'minus'\r\n | 'times'\r\n | 'user'\r\n | 'user-friends'\r\n | 'tv'\r\n | 'paper-plane'\r\n | 'envelope'\r\n | 'address-card'\r\n | 'question-circle'\r\n | 'arrow-alt-circle-up'\r\n | 'arrow-alt-circle-down'\r\n | 'angle-right'\r\n | 'sliders-h'\r\n | 'search'\r\n | 'sort'\r\n | 'sort-up'\r\n | 'sort-down'\r\n | 'sort-amount-up'\r\n | 'edit'\r\n | 'sort-amount-down'\r\n | 'print'\r\n | 'envelope-open'\r\n | 'file-download'\r\n | 'trash'\r\n | 'comment'\r\n | 'phone'\r\n | 'external-link-square-alt'\r\n | 'window-close'\r\n | 'file-pdf'\r\n | 'chart-area'\r\n | 'house-damage'\r\n | 'file-excel'\r\n | 'file-alt'\r\n | 'clock';\r\n\r\ninterface OwnProps {\r\n children?: any;\r\n}\r\n\r\nexport function IconsProvider({ children }: OwnProps) {\r\n return <>{children};\r\n}\r\n\r\n/**\r\n * https://github.com/FortAwesome/react-fontawesome\r\n * The Fontawesome \"icon\" prop expects a single object:\r\n * - It could a string object, like \"coffee\". as IconName\r\n * - It could be an icon object, like {faCoffee}. as IconLookup\r\n * - Or it could be an Array of strings, where the first element is a prefix, and the second element is the icon name: {[\"fab\", \"apple\"]}\r\n *\r\n * Having this approach, here are possible instances:\r\n * createAction(LOAD_TRANSLATIONS),\r\n\r\n loadTranslationsDone: ({ translations }: LoadTranslationsResponse) =>\r\n createAction(LOAD_TRANSLATIONS_DONE, { translations }),\r\n\r\n loadTranslationsFail: () => createAction(LOAD_TRANSLATIONS_FAIL),\r\n\r\n setCurrency: (currency: string) => createAction(SET_CURRENCY, { currency }),\r\n\r\n setLocale: (locale: string) => createAction(SET_LOCALE, { locale }),\r\n};\r\n","import { RootState } from '../../../store/rootModel';\r\n\r\nexport function isFormatDataLoaded(state: RootState) {\r\n const { currency, locale, translations } = state.format;\r\n return !!currency && !!locale && translations !== {};\r\n}\r\n","import { createAction } from '../../../store/reduxBoilerplate';\r\n\r\nexport enum AnimationActionTypes {\r\n SET_RECENTLY_CLOSED_FIELD = '[Animation] SET_RECENTLY_CLOSED_FIELD',\r\n UNSET_RECENTLY_CLOSED_FIELD = '[Animation] UNSET_RECENTLY_CLOSED_FIELD',\r\n}\r\n\r\nconst AT = AnimationActionTypes;\r\n\r\nexport const animationActions = {\r\n setRecentlyClosedField: (field: unknown) => createAction(AT.SET_RECENTLY_CLOSED_FIELD, { field }),\r\n\r\n unsetRecentlyClosedField: () => createAction(AT.UNSET_RECENTLY_CLOSED_FIELD),\r\n};\r\n","import React from 'react';\r\nimport { connect, DispatchProp } from 'react-redux';\r\nimport { formatActions } from '../store/actions';\r\nimport { RootState } from '../../../store/rootModel';\r\nimport { IntlProvider } from 'react-intl';\r\nimport { isFormatDataLoaded } from '../store/selectors';\r\nimport { Spinner } from '../../../lib/Spinner/Spinner';\r\n\r\nconst mapStateToProps = (state: RootState) => {\r\n const {\r\n format: { locale, translations },\r\n } = state;\r\n return {\r\n locale,\r\n translations,\r\n loaded: isFormatDataLoaded(state),\r\n };\r\n};\r\n\r\ntype StateProps = ReturnType;\r\n\r\nclass Component extends React.Component {\r\n componentDidMount() {\r\n const { dispatch } = this.props;\r\n dispatch(formatActions.loadTranslations());\r\n\r\n // TODO: use real data from API\r\n dispatch(formatActions.setCurrency('USD'));\r\n dispatch(formatActions.setLocale('en-US'));\r\n }\r\n\r\n render() {\r\n const { children, locale, translations, loaded } = this.props;\r\n if (!loaded) {\r\n return ;\r\n }\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport const FormatProvider = connect(mapStateToProps)(Component);\r\n","import * as a from './actions';\r\nimport * as m from './model';\r\nimport { createReducer } from '../../../store/reduxBoilerplate';\r\n\r\nconst initialState: m.FormatState = {};\r\n\r\nexport const formatReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case a.LOAD_TRANSLATIONS_DONE:\r\n draft.translations = action.payload.translations;\r\n return;\r\n case a.SET_CURRENCY:\r\n draft.currency = action.payload.currency;\r\n return;\r\n case a.SET_LOCALE:\r\n draft.locale = action.payload.locale;\r\n return;\r\n }\r\n },\r\n);\r\n","import * as a from './actions';\r\nimport * as m from './model';\r\nimport { createReducer } from '../../../store/reduxBoilerplate';\r\n\r\nexport const modalInitialState: m.ModalState = {\r\n modalType: '',\r\n modalProps: {},\r\n};\r\n\r\nexport const modalReducer = createReducer(\r\n modalInitialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case a.OPEN_MODAL:\r\n const { modalType, modalProps } = action.payload;\r\n draft.modalType = modalType;\r\n draft.modalProps = modalProps;\r\n return;\r\n\r\n case a.CLOSE_MODAL:\r\n return (draft = modalInitialState);\r\n\r\n case a.UPDATE_MODAL_PROP:\r\n return {\r\n ...draft,\r\n modalProps: {\r\n ...draft.modalProps,\r\n [action.payload.prop]: action.payload.value,\r\n },\r\n };\r\n }\r\n },\r\n);\r\n","import { ProgressTypeEnum } from '../../../../store/rootModel';\r\nimport { AccountProfileAction, AccountProfileState } from './accountProfile.model';\r\nimport { createReducer } from '../../../../store/reduxBoilerplate';\r\nimport { AccountProfileActionTypes } from './accountProfile.actions';\r\n\r\nconst initialState: AccountProfileState = {\r\n progressType: ProgressTypeEnum.Initial,\r\n};\r\n\r\nexport const accountProfileReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case AccountProfileActionTypes.LOAD:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n case AccountProfileActionTypes.LOAD_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.data = action.payload.data;\r\n return;\r\n case AccountProfileActionTypes.LOAD_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AccountProfileActionTypes.SET_EDIT_MODE:\r\n draft.fieldInEditMode = action.payload.field;\r\n return;\r\n case AccountProfileActionTypes.UNSET_EDIT_MODE:\r\n delete draft.fieldInEditMode;\r\n delete draft.apiErrors;\r\n delete draft.usernameExists;\r\n delete draft.passwordHistoryCount;\r\n return;\r\n case AccountProfileActionTypes.SET_CONFIRM_MODE:\r\n draft.fieldInConfirmMode = action.payload.field;\r\n draft.confirmData = action.payload.data;\r\n return;\r\n case AccountProfileActionTypes.UNSET_CONFIRM_MODE:\r\n delete draft.fieldInConfirmMode;\r\n delete draft.confirmData;\r\n return;\r\n case AccountProfileActionTypes.UPDATE_FIELD:\r\n draft.fieldInUpdatingMode = action.payload.field;\r\n delete draft.apiErrors;\r\n return;\r\n case AccountProfileActionTypes.UPDATE_FIELD_DONE:\r\n delete draft.fieldInUpdatingMode;\r\n draft.data = {\r\n ...draft.data!,\r\n ...action.payload.data,\r\n };\r\n return;\r\n case AccountProfileActionTypes.UPDATE_FIELD_FAIL:\r\n delete draft.fieldInUpdatingMode;\r\n draft.apiErrors = action.payload.errors;\r\n return;\r\n case AccountProfileActionTypes.CHECK_USERNAME:\r\n draft.checkUsernameProgressType = ProgressTypeEnum.Loading;\r\n delete draft.usernameExists;\r\n return;\r\n case AccountProfileActionTypes.CHECK_USERNAME_DONE:\r\n draft.checkUsernameProgressType = ProgressTypeEnum.Loaded;\r\n draft.usernameExists = action.payload.exist;\r\n return;\r\n case AccountProfileActionTypes.CHECK_USERNAME_FAIL:\r\n draft.checkUsernameProgressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AccountProfileActionTypes.CHECK_PASSWORD:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.Loading;\r\n delete draft.passwordHistoryCount;\r\n return;\r\n case AccountProfileActionTypes.CHECK_PASSWORD_DONE:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.Loaded;\r\n draft.passwordHistoryCount = action.payload.passwordHistoryCount;\r\n return;\r\n case AccountProfileActionTypes.CHECK_PASSWORD_FAIL:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AccountProfileActionTypes.VALIDATE_CURRENT_PASSWORD:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.Loading;\r\n return;\r\n case AccountProfileActionTypes.VALIDATE_CURRENT_PASSWORD_DONE:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.Loaded;\r\n delete draft.apiErrors;\r\n return;\r\n case AccountProfileActionTypes.VALIDATE_CURRENT_PASSWORD_FAIL:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.LoadFailed;\r\n draft.apiErrors = action.payload.errors;\r\n return;\r\n case AccountProfileActionTypes.CHECK_EMAIL_BATCH:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.Loading;\r\n return;\r\n case AccountProfileActionTypes.CHECK_EMAIL_BATCH_DONE:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.Loaded;\r\n draft.saveEmailAddressPending = action.payload.saveEmailAddressPending;\r\n return;\r\n case AccountProfileActionTypes.CHECK_EMAIL_BATCH_FAIL:\r\n draft.checkPasswordProgressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AccountProfileActionTypes.RESET:\r\n draft = initialState;\r\n return;\r\n }\r\n },\r\n);\r\n","import * as a from './actions';\r\nimport { AccountPortfolioState, AccountPortfolioAction } from './model';\r\nimport { createReducer } from '../../../store/reduxBoilerplate';\r\nimport { ProgressTypeEnum } from '../../../store/rootModel';\r\n\r\nconst initialState: AccountPortfolioState = {\r\n progressType: ProgressTypeEnum.Initial,\r\n};\r\n\r\nexport const accountPortfolioReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case a.LOAD_COMPANY_PLAN:\r\n case a.LOAD_COMPANIES:\r\n case a.LOAD_COMPANY_BROCHURES:\r\n case a.LOAD_AUTOMATIC_INVESTMENT:\r\n case a.LOAD_ACCOUNT_PORTFOLIO:\r\n case a.LOAD_INVESTMENT_DETAILS:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n case a.LOAD_COMPANY_PLAN_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.companyPlan = action.payload;\r\n return;\r\n case a.LOAD_ACCOUNT_PORTFOLIO_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.portfolioData = action.payload;\r\n return;\r\n case a.LOAD_INVESTMENT_DETAILS_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.selectedInvestmentDetails = action.payload;\r\n return;\r\n case a.LOAD_AUTOMATIC_INVESTMENT_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.automaticInvestmentData = action.payload;\r\n return;\r\n case a.LOAD_COMPANIES_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.companies = action.payload;\r\n return;\r\n case a.LOAD_COMPANY_BROCHURES_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.companyPlanBrochures = action.payload;\r\n return;\r\n case a.ADD_AVAILABLE_ACCOUNTS:\r\n draft.accounts = action.payload;\r\n return;\r\n case a.LOAD_COMPANY_PLAN_FAIL:\r\n case a.LOAD_COMPANIES_FAIL:\r\n case a.LOAD_COMPANY_BROCHURES_FAIL:\r\n case a.LOAD_AUTOMATIC_INVESTMENT_FAIL:\r\n case a.LOAD_INVESTMENT_DETAILS_FAIL:\r\n case a.LOAD_ACCOUNT_PORTFOLIO_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n }\r\n },\r\n);\r\n","import { createReducer } from '../../../../store/reduxBoilerplate';\r\nimport { ProgressTypeEnum } from '../../../../store/rootModel';\r\nimport { AddressActionTypes } from './address.actions';\r\nimport { AddressAction, AddressState } from './address.model';\r\n\r\nconst initialState: AddressState = {\r\n progressType: ProgressTypeEnum.Initial,\r\n fieldProgressType: ProgressTypeEnum.Initial,\r\n previewProgressType: ProgressTypeEnum.Initial,\r\n accountIdInEditMode: '',\r\n viewData: {},\r\n confirmPrimaryAddressProgressType: ProgressTypeEnum.Initial,\r\n secondaryAddress: { addressLines: [] },\r\n secondaryAddressProgressType: ProgressTypeEnum.Initial,\r\n inquiryMode: false,\r\n};\r\n\r\nexport const addressReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case AddressActionTypes.LOAD:\r\n case AddressActionTypes.LOAD_COUNTRIES:\r\n case AddressActionTypes.LOAD_US_STATES:\r\n case AddressActionTypes.LOAD_PROVINCES:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n case AddressActionTypes.LOAD_PREVIEW:\r\n draft.previewProgressType = ProgressTypeEnum.Loading;\r\n delete draft.formRecentlyUpdated;\r\n return;\r\n case AddressActionTypes.LOAD_ADDRESS_FORMATS:\r\n draft.fieldProgressType = ProgressTypeEnum.Loading;\r\n delete draft.currentCountryName;\r\n return;\r\n case AddressActionTypes.LOAD_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.viewData = action.payload.data;\r\n return;\r\n case AddressActionTypes.LOAD_PREVIEW_DONE:\r\n draft.previewProgressType = ProgressTypeEnum.Loaded;\r\n draft.previewData = action.payload.data;\r\n return;\r\n case AddressActionTypes.LOAD_ADDRESS_FORMATS_DONE:\r\n draft.fieldProgressType = ProgressTypeEnum.Loaded;\r\n draft.addressFormat = action.payload.data;\r\n draft.currentCountryName = action.payload.countryName;\r\n return;\r\n case AddressActionTypes.LOAD_FAIL:\r\n case AddressActionTypes.LOAD_COUNTRIES_FAIL:\r\n case AddressActionTypes.LOAD_US_STATES_FAIL:\r\n case AddressActionTypes.LOAD_PROVINCES_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AddressActionTypes.LOAD_PREVIEW_FAIL:\r\n draft.previewProgressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AddressActionTypes.DELETE:\r\n case AddressActionTypes.UPDATE_FORM:\r\n draft.previewProgressType = ProgressTypeEnum.Loading;\r\n draft.formInUpdatingMode = action.payload.formName;\r\n return;\r\n case AddressActionTypes.UPDATE_FORM_DONE:\r\n draft.inquiryMode = !!action.payload.inquiryMode;\r\n draft.previewProgressType = ProgressTypeEnum.Loaded;\r\n draft.formRecentlyUpdated = action.payload.formName;\r\n draft.viewData[action.payload.accountId][action.payload.formName] = action.payload.data;\r\n delete draft.formInUpdatingMode;\r\n delete draft.formInEditMode;\r\n return;\r\n case AddressActionTypes.DELETE_DONE:\r\n draft.previewProgressType = ProgressTypeEnum.Loaded;\r\n draft.formRecentlyUpdated = action.payload.formName;\r\n draft.inquiryMode = action.payload.inquiryMode;\r\n delete draft.viewData[action.payload.accountId][action.payload.formName];\r\n delete draft.formInUpdatingMode;\r\n return;\r\n case AddressActionTypes.UPDATE_FORM_FAIL:\r\n draft.previewProgressType = ProgressTypeEnum.LoadFailed;\r\n delete draft.formRecentlyUpdated;\r\n delete draft.formInUpdatingMode;\r\n return;\r\n case AddressActionTypes.DELETE_FAIL:\r\n draft.previewProgressType = ProgressTypeEnum.LoadFailed;\r\n delete draft.formInUpdatingMode;\r\n return;\r\n case AddressActionTypes.LOAD_ADDRESS_FORMATS_FAIL:\r\n draft.fieldProgressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AddressActionTypes.LOAD_COUNTRIES_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.countries = action.payload.data;\r\n return;\r\n case AddressActionTypes.LOAD_US_STATES_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.usStates = action.payload.data;\r\n return;\r\n case AddressActionTypes.LOAD_PROVINCES_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.canadaProvinces = action.payload.data;\r\n return;\r\n case AddressActionTypes.SET_EDIT_MODE:\r\n draft.accountIdInEditMode = action.payload.accountId;\r\n draft.formInEditMode = action.payload.form;\r\n return;\r\n case AddressActionTypes.UNSET_EDIT_MODE:\r\n draft.formRecentlyClosed = draft.formInEditMode;\r\n delete draft.formInEditMode;\r\n delete draft.formRecentlyUpdated;\r\n delete draft.formInUpdatingMode;\r\n delete draft.data;\r\n delete draft.isSeasonalAddressBatchPending;\r\n delete draft.isPrimaryAddressBatchPending;\r\n return;\r\n case AddressActionTypes.SET_DELETE_MODE:\r\n draft.accountIdInEditMode = action.payload.accountId;\r\n draft.formInDeleteMode = action.payload.formName;\r\n return;\r\n case AddressActionTypes.UNSET_DELETE_MODE:\r\n draft.formRecentlyClosed = draft.formInDeleteMode;\r\n delete draft.formInDeleteMode;\r\n delete draft.isSeasonalAddressBatchPending;\r\n delete draft.isPrimaryAddressBatchPending;\r\n return;\r\n case AddressActionTypes.SET_PREVIEW_MODE:\r\n draft.formInPreviewMode = action.payload.formName;\r\n draft.data = action.payload.data;\r\n return;\r\n case AddressActionTypes.UNSET_PREVIEW_MODE:\r\n draft.formRecentlyClosed = draft.formInEditMode;\r\n delete draft.formRecentlyUpdated;\r\n delete draft.formInPreviewMode;\r\n delete draft.previewData;\r\n delete draft.isSeasonalAddressBatchPending;\r\n delete draft.isPrimaryAddressBatchPending;\r\n return;\r\n case AddressActionTypes.CHECK_SEASONAL_ADDRESS_BATCH_DONE:\r\n draft.isSeasonalAddressBatchPending = action.payload;\r\n return;\r\n case AddressActionTypes.CHECK_PRIMARY_ADDRESS_BATCH_DONE:\r\n draft.isPrimaryAddressBatchPending = action.payload;\r\n return;\r\n case AddressActionTypes.CONFIRM_PRIMARY_ADDRESS:\r\n draft.confirmPrimaryAddressProgressType = ProgressTypeEnum.Loading;\r\n return;\r\n case AddressActionTypes.CONFIRM_PRIMARY_ADDRESS_DONE:\r\n draft.confirmPrimaryAddressProgressType = ProgressTypeEnum.Loaded;\r\n draft.recentlyConfirmedAddress = action.payload.accountId;\r\n return;\r\n case AddressActionTypes.CONFIRM_PRIMARY_ADDRESS_FAIL:\r\n draft.confirmPrimaryAddressProgressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AddressActionTypes.UNSET_RECENTLY_CLOSED_FORM:\r\n draft.accountIdInEditMode = '';\r\n delete draft.formRecentlyClosed;\r\n return;\r\n case AddressActionTypes.LOAD_SECONDARY_ADDRESS:\r\n draft.secondaryAddressProgressType = ProgressTypeEnum.Loading;\r\n return;\r\n case AddressActionTypes.LOAD_SECONDARY_ADDRESS_DONE:\r\n draft.secondaryAddressProgressType = ProgressTypeEnum.Loaded;\r\n draft.secondaryAddress = action.payload.data;\r\n return;\r\n case AddressActionTypes.LOAD_SECONDARY_ADDRESS_FAIL:\r\n draft.secondaryAddressProgressType = ProgressTypeEnum.LoadFailed;\r\n draft.errors = action.payload.errors;\r\n return;\r\n }\r\n },\r\n);\r\n","import { createReducer } from '../../../../store/reduxBoilerplate';\r\nimport { DeliveryPreferencesAction, DeliveryPreferencesState } from './deliveryPreferences.model';\r\nimport { ProgressTypeEnum } from '../../../../store/rootModel';\r\nimport { DeliveryPreferencesActionTypes } from './deliveryPreferences.actions';\r\n\r\nexport const initialState: DeliveryPreferencesState = {\r\n progressType: ProgressTypeEnum.Initial,\r\n editMode: false,\r\n displayConfirm: false,\r\n confirming: false,\r\n};\r\n\r\nexport const deliveryPreferencesReducer = createReducer<\r\n DeliveryPreferencesState,\r\n DeliveryPreferencesAction\r\n>(initialState, (draft, action) => {\r\n switch (action.type) {\r\n case DeliveryPreferencesActionTypes.LOAD:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n case DeliveryPreferencesActionTypes.LOAD_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.data = action.payload;\r\n return;\r\n case DeliveryPreferencesActionTypes.LOAD_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case DeliveryPreferencesActionTypes.SET_EDIT_MODE:\r\n draft.editMode = true;\r\n return;\r\n case DeliveryPreferencesActionTypes.UNSET_EDIT_MODE:\r\n draft.editMode = false;\r\n return;\r\n case DeliveryPreferencesActionTypes.SET_CONFIRM_ON:\r\n draft.confirmData = action.payload;\r\n draft.displayConfirm = true;\r\n return;\r\n case DeliveryPreferencesActionTypes.SET_CONFIRM_OFF:\r\n delete draft.confirmData;\r\n draft.displayConfirm = false;\r\n return;\r\n case DeliveryPreferencesActionTypes.CONFIRM:\r\n draft.confirming = true;\r\n return;\r\n case DeliveryPreferencesActionTypes.CONFIRM_DONE:\r\n draft.data = action.payload;\r\n draft.confirming = false;\r\n draft.displayConfirm = false;\r\n draft.editMode = false;\r\n }\r\n});\r\n","import { createReducer } from '../../../../store/reduxBoilerplate';\r\nimport {\r\n ProxyDeliveryPreferencesAction,\r\n ProxyDeliveryPreferencesState,\r\n} from './proxyDeliveryPreferences.model';\r\nimport { ProxyDeliveryPreferencesActionTypes } from './proxyDeliveryPreferences.actions';\r\nimport { ProgressTypeEnum } from '../../../../store/rootModel';\r\n\r\nexport const initialState: ProxyDeliveryPreferencesState = {\r\n progressType: ProgressTypeEnum.Initial,\r\n confirming: false,\r\n editMode: false,\r\n displayConfirm: false,\r\n};\r\n\r\nexport const proxyDeliveryPreferencesReducer = createReducer<\r\n ProxyDeliveryPreferencesState,\r\n ProxyDeliveryPreferencesAction\r\n>(initialState, (draft, action) => {\r\n switch (action.type) {\r\n case ProxyDeliveryPreferencesActionTypes.LOAD:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.LOAD_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.data = (action as any).payload;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.LOAD_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.SET_EDIT_MODE_ON:\r\n draft.editMode = true;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.SET_EDIT_MODE_OFF:\r\n draft.editMode = false;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.SET_CONFIRM_ON:\r\n draft.confirmData = (action as any).payload;\r\n draft.displayConfirm = true;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.SET_CONFIRM_OFF:\r\n delete draft.confirmData;\r\n draft.displayConfirm = false;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.CONFIRM:\r\n draft.confirming = true;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.CONFIRM_DONE:\r\n draft.data = (action as any).payload;\r\n draft.confirming = false;\r\n draft.editMode = false;\r\n draft.displayConfirm = false;\r\n return;\r\n case ProxyDeliveryPreferencesActionTypes.CONFIRM_FAIL:\r\n draft.confirming = false;\r\n return;\r\n }\r\n});\r\n","import { createReducer } from '../../../../store/reduxBoilerplate';\r\nimport { TaxCertificationAction, TaxCertificationState } from './taxCertification.model';\r\nimport { TaxCertificationActionTypes } from './taxCertification.actions';\r\nimport { ProgressTypeEnum } from '../../../../store/rootModel';\r\n\r\nexport const initialState: TaxCertificationState = {\r\n progressType: ProgressTypeEnum.Initial,\r\n};\r\n\r\nexport const taxCertificationReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case TaxCertificationActionTypes.LOAD:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n case TaxCertificationActionTypes.LOAD_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.taxCertificationData = action.payload;\r\n return;\r\n case TaxCertificationActionTypes.LOAD_COUNTRIES_DONE:\r\n draft.countries = action.payload.data;\r\n return;\r\n case TaxCertificationActionTypes.LOAD_FAIL:\r\n case TaxCertificationActionTypes.LOAD_COUNTRIES_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n }\r\n },\r\n);\r\n","import { DividendAction, DividendsState, DividendStep } from './dividend.model';\r\nimport { createReducer } from '../../../store/reduxBoilerplate';\r\nimport { ProgressTypeEnum } from '../../../store/rootModel';\r\nimport { DividendsActionTypes } from './dividend.actions';\r\n\r\nexport const initialState: DividendsState = {\r\n activeStep: DividendStep.SelectCompany,\r\n externallyValidatedPaymentFields: {},\r\n secondaryAddressPreview: [],\r\n secondaryAddressInquiryMode: false,\r\n dividendsUpdateInquiryMode: false,\r\n};\r\n\r\nconst AT = DividendsActionTypes;\r\n\r\nexport const dividendReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case AT.LOAD_DETAILS_DONE:\r\n draft.dividendDetails = action.payload.dripDetails;\r\n return;\r\n case AT.LOAD_SETUP_DETAILS:\r\n draft.loadingSetupDetails = ProgressTypeEnum.Loading;\r\n return;\r\n case AT.LOAD_SETUP_DETAILS_DONE:\r\n draft.loadingSetupDetails = ProgressTypeEnum.Loaded;\r\n draft.setupDetails = action.payload.setupDetails;\r\n return;\r\n case AT.LOAD_SETUP_DETAILS_FAIL:\r\n draft.loadingSetupDetails = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AT.VALIDATE_PAYMENT_FIELD_FORMAT:\r\n draft.externallyValidatedPaymentFields[action.payload.field] = {\r\n loading: ProgressTypeEnum.Loading,\r\n valid: false,\r\n };\r\n return;\r\n case AT.VALIDATE_PAYMENT_FIELD_FORMAT_DONE:\r\n draft.externallyValidatedPaymentFields[action.payload.field] = {\r\n valid: action.payload.result.valid,\r\n loading: ProgressTypeEnum.Loaded,\r\n };\r\n return;\r\n case AT.VALIDATE_PAYMENT_FIELD_FORMAT_FAIL:\r\n draft.externallyValidatedPaymentFields[action.payload.field] = {\r\n loading: ProgressTypeEnum.LoadFailed,\r\n };\r\n return;\r\n case AT.SET_ACTIVE_STEP:\r\n draft.activeStep = action.payload.step;\r\n return;\r\n case AT.SET_PAYMENT_SKIPPED:\r\n draft.skippedPaymentStep = action.payload.skipped;\r\n return;\r\n case AT.SET_PERSISTED_FORM_VALID_STATUS:\r\n const { key, valid } = action.payload;\r\n if (!draft.persistedFormsValidStatusMap) {\r\n draft.persistedFormsValidStatusMap = {};\r\n }\r\n draft.persistedFormsValidStatusMap[key] = valid;\r\n return;\r\n case AT.UPDATE:\r\n draft.updateProgressType = ProgressTypeEnum.Loading;\r\n return;\r\n case AT.UPDATE_DONE:\r\n draft.updateProgressType = ProgressTypeEnum.Loaded;\r\n return;\r\n case AT.UPDATE_FAIL:\r\n draft.updateProgressType = ProgressTypeEnum.LoadFailed;\r\n draft.errors = action.payload.errors;\r\n return;\r\n case AT.SECONDARY_ADDRESS_UPDATE_PREVIEW:\r\n draft.secondaryAddressPreview = action.payload;\r\n return;\r\n case AT.SECONDARY_ADDRESS_SET_INQUIRY:\r\n draft.secondaryAddressInquiryMode = action.payload.inquiryMode;\r\n return;\r\n case AT.DIVIDENDS_UPDATE_SET_INQUIRY:\r\n draft.dividendsUpdateInquiryMode = action.payload.inquiryMode;\r\n return;\r\n case AT.RESET:\r\n return initialState;\r\n }\r\n },\r\n);\r\n","import { createReducer } from '../../../store/reduxBoilerplate';\r\nimport { FormPersistState, FormPersistAction } from './formPersist.model';\r\nimport { FormPersistActionTypes } from './formPersist.actions';\r\n\r\nconst initialState: FormPersistState = {\r\n forms: {},\r\n};\r\n\r\nconst AT = FormPersistActionTypes;\r\n\r\nexport const formPersistReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case AT.SET:\r\n const { key, values } = action.payload;\r\n draft.forms[key] = values;\r\n return;\r\n case AT.UNSET:\r\n const { keys } = action.payload;\r\n keys.forEach((k) => {\r\n delete draft.forms[k];\r\n });\r\n\r\n return;\r\n }\r\n },\r\n);\r\n","import { createReducer } from '../../../store/reduxBoilerplate';\r\nimport { AnimationState, AnimationAction } from './animation.model';\r\nimport { AnimationActionTypes } from './animation.actions';\r\n\r\nconst initialState: AnimationState = {};\r\n\r\nconst AT = AnimationActionTypes;\r\n\r\nexport const animationReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case AT.SET_RECENTLY_CLOSED_FIELD:\r\n draft.field = action.payload.field;\r\n return;\r\n case AT.UNSET_RECENTLY_CLOSED_FIELD:\r\n delete draft.field;\r\n return;\r\n }\r\n },\r\n);\r\n","import { SecurityOverviewAction, SecurityOverviewState } from './securityOverview.model';\r\nimport { createReducer } from '../../../store/reduxBoilerplate';\r\nimport { SecurityOverviewActionTypes } from './securityOverview.actions';\r\nimport { ProgressTypeEnum } from '../../../store/rootModel';\r\n\r\nconst initialState: SecurityOverviewState = {\r\n progressType: ProgressTypeEnum.Initial,\r\n};\r\n\r\nconst AT = SecurityOverviewActionTypes;\r\nexport const securityOverviewReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case AT.LOAD_DETAILS:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n case AT.LOAD_DETAILS_DONE:\r\n draft.securityDetails = action.payload.securityDetails;\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n return;\r\n case AT.LOAD_DETAILS_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case AT.SET_TRANSACTION_DATA:\r\n draft.transactionData = action.payload;\r\n return;\r\n case AT.UNSET_TRANSACTION_DATA:\r\n delete draft.transactionData;\r\n return;\r\n }\r\n },\r\n);\r\n","import { createReducer } from '../../../store/reduxBoilerplate';\r\nimport { UnreadMessagesAction, UnreadMessagesState } from './unreadMessages.model';\r\nimport { UnreadMessagesActionTypes } from './unreadMessages.actions';\r\nimport { ProgressTypeEnum } from '../../../store/rootModel';\r\n\r\nexport const initialState: UnreadMessagesState = {\r\n started: false,\r\n progressType: ProgressTypeEnum.Initial,\r\n};\r\n\r\nexport const unreadMessagesReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case UnreadMessagesActionTypes.SET_STARTED:\r\n draft.started = true;\r\n return;\r\n case UnreadMessagesActionTypes.UPDATE_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.data = action.payload;\r\n return;\r\n case UnreadMessagesActionTypes.UPDATE_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case UnreadMessagesActionTypes.UPDATE:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n }\r\n },\r\n);\r\n","import { createReducer } from '../../../store/reduxBoilerplate';\r\nimport { UnreadAlertsAction, UnreadAlertsState } from './unreadAlerts.model';\r\nimport { UnreadAlertsActionTypes } from './unreadAlerts.actions';\r\nimport { ProgressTypeEnum } from '../../../store/rootModel';\r\n\r\nexport const initialState: UnreadAlertsState = {\r\n started: false,\r\n progressType: ProgressTypeEnum.Initial,\r\n};\r\n\r\nexport const unreadAlertsReducer = createReducer(\r\n initialState,\r\n (draft, action) => {\r\n switch (action.type) {\r\n case UnreadAlertsActionTypes.SET_STARTED:\r\n draft.started = true;\r\n return;\r\n case UnreadAlertsActionTypes.UPDATE_DONE:\r\n draft.progressType = ProgressTypeEnum.Loaded;\r\n draft.data = action.payload;\r\n return;\r\n case UnreadAlertsActionTypes.UPDATE_FAIL:\r\n draft.progressType = ProgressTypeEnum.LoadFailed;\r\n return;\r\n case UnreadAlertsActionTypes.UPDATE:\r\n draft.progressType = ProgressTypeEnum.Loading;\r\n return;\r\n }\r\n },\r\n);\r\n","import * as a from './alertAndMessage.actions';\r\nimport { AlertsAndMessagesState, AlertsAndMessagesAction } from './alertAndMessage.model';\r\nimport { createReducer } from '../../../store/reduxBoilerplate';\r\nimport { ProgressTypeEnum } from '../../../store/rootModel';\r\n\r\nexport const alertsAndMessagesInitialState: AlertsAndMessagesState = {\r\n progressType: ProgressTypeEnum.Initial,\r\n};\r\n\r\nexport const alertsAndMessagesReducer = createReducer<\r\n AlertsAndMessagesState,\r\n AlertsAndMessagesAction\r\n>(alertsAndMessagesInitialState, (draft, action) => {\r\n switch (action.type) {\r\n case a.OPEN_MESSAGE:\r\n draft.currentMessage = action.payload;\r\n return;\r\n }\r\n});\r\n","import { ReducersMapObject, combineReducers } from 'redux';\r\nimport { connectRouter } from 'connected-react-router';\r\nimport { History } from 'history';\r\nimport { formatReducer } from '../containers/Format/store/reducer';\r\nimport { modalReducer } from '../lib/Modal/store/reducer';\r\nimport { accountProfileReducer } from '../pages/AccountSettings/AccountProfile/store/accountProfile.reducer';\r\nimport { accountPortfolioReducer } from '../pages/Portfolio/store/reducer';\r\nimport { addressReducer } from '../pages/AccountSettings/Address/store/address.reducer';\r\nimport { deliveryPreferencesReducer } from '../pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.reducer';\r\nimport { proxyDeliveryPreferencesReducer } from '../pages/AccountSettings/ProxyDeliveryPreferences/store/proxyDeliveryPreferences.reducer';\r\nimport { taxCertificationReducer } from '../pages/AccountSettings/TaxCertification/store/taxCertification.reducer';\r\nimport { dividendReducer } from '../pages/Dividend/store/dividend.reducer';\r\nimport { formPersistReducer } from '../containers/FormPersist/store/formPersist.reducer';\r\nimport { animationReducer } from '../containers/Animation/store/animation.reducer';\r\nimport { securityOverviewReducer } from '../pages/SecurityOverview/store/securityOverview.reducer';\r\nimport { unreadMessagesReducer } from '../shared/UnreadMessages/store/unreadMessages.reducer';\r\nimport { unreadAlertsReducer } from '../shared/UnreadAlerts/store/unreadAlerts.reducer';\r\nimport { alertsAndMessagesReducer } from '../pages/AlertsAndMessages/store/alertAndMessage.reducer';\r\n\r\nexport const createRootReducer = (history: History) =>\r\n combineReducers({\r\n router: connectRouter(history) as any,\r\n accountProfile: accountProfileReducer,\r\n accountPortfolio: accountPortfolioReducer,\r\n accountAddress: addressReducer,\r\n deliveryPreferences: deliveryPreferencesReducer,\r\n proxyDeliveryPreferences: proxyDeliveryPreferencesReducer,\r\n taxCertification: taxCertificationReducer,\r\n format: formatReducer,\r\n modal: modalReducer,\r\n dividends: dividendReducer,\r\n securityOverview: securityOverviewReducer,\r\n formPersist: formPersistReducer as any,\r\n animation: animationReducer,\r\n unreadMessages: unreadMessagesReducer,\r\n unreadAlerts: unreadAlertsReducer,\r\n alertsAndMessages: alertsAndMessagesReducer,\r\n } as ReducersMapObject);\r\n","import { put, takeEvery } from 'redux-saga/effects';\r\nimport { formatActions, LOAD_TRANSLATIONS } from './actions';\r\n\r\nexport function* formatSaga() {\r\n yield takeEvery(LOAD_TRANSLATIONS, loadTranslations);\r\n}\r\n\r\nfunction* loadTranslations() {\r\n // TODO: make api request here\r\n\r\n yield put(\r\n formatActions.loadTranslationsDone({\r\n translations: {\r\n 'accountOverview.title': 'YOUR ACCOUNTS',\r\n 'accountOverview.totalAssetValue': 'TOTAL ASSET VALUE',\r\n 'accountOverview.viewPortfolio': 'View portfolio',\r\n 'accountOverview.accountValue': 'ACCOUNT VALUE',\r\n 'accountOverview.company': 'Company',\r\n 'accountOverview.numberOfShares': 'Number of Shares',\r\n 'common.failedLoadData': 'Failed to load data',\r\n },\r\n }),\r\n );\r\n}\r\n","import { modalActions } from './../../../../lib/Modal/store/actions';\r\nimport { put, takeEvery, call } from 'redux-saga/effects';\r\nimport { accountProfileActions, AccountProfileActionTypes } from './accountProfile.actions';\r\nimport { ApiService } from '../../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport {\r\n GetAccountProfileAction,\r\n LoadAccountProfileDataResponse,\r\n CheckUsernameResponse,\r\n EmailBatchPendingResponse,\r\n} from './accountProfile.model';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { animationActions } from '../../../../containers/Animation/store/animation.actions';\r\nimport { Status } from '../../../../api/api.hooks';\r\n\r\nexport function* accountProfileSaga() {\r\n yield takeEvery(AccountProfileActionTypes.LOAD, loadAccountProfileData);\r\n yield takeEvery(AccountProfileActionTypes.UPDATE_FIELD, updateField);\r\n yield takeEvery(AccountProfileActionTypes.UNSET_EDIT_MODE, unsetEditMode);\r\n yield takeEvery(AccountProfileActionTypes.CHECK_USERNAME, checkUsername);\r\n yield takeEvery(AccountProfileActionTypes.CHECK_PASSWORD, checkPassword);\r\n yield takeEvery(AccountProfileActionTypes.VALIDATE_CURRENT_PASSWORD, validateCurrentPassword);\r\n yield takeEvery(AccountProfileActionTypes.CHECK_EMAIL_BATCH, checkIsEmailBatchPending);\r\n}\r\n\r\ntype validateCurrentPasswordAction = GetAccountProfileAction<'validateCurrentPassword'>;\r\nexport function* validateCurrentPassword(action: validateCurrentPasswordAction) {\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.post,\r\n APP_CONFIG.api.accountProfile.validateCurrentPassword,\r\n action.payload.data,\r\n );\r\n\r\n if (response.data) {\r\n yield put(accountProfileActions.validateCurrentPasswordDone());\r\n yield put(accountProfileActions.setConfirmMode(action.payload.field, action.payload.data));\r\n } else {\r\n yield put(accountProfileActions.validateCurrentPasswordFail(response.errors));\r\n }\r\n } catch (e) {\r\n yield put(accountProfileActions.validateCurrentPasswordFail());\r\n }\r\n}\r\n\r\nexport function* checkIsEmailBatchPending(action: GetAccountProfileAction<'setConfirmMode'>) {\r\n const { field, data } = action.payload;\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.accountProfile.checkEmailBatchPending,\r\n );\r\n yield put(\r\n accountProfileActions.checkEmailBatchPendingDone(response.data.saveEmailAddressPending),\r\n );\r\n if (!response.data.saveEmailAddressPending) {\r\n yield put(accountProfileActions.setConfirmMode(field, data));\r\n }\r\n } catch (e) {\r\n yield put(accountProfileActions.checkEmailBatchPendingFail());\r\n }\r\n}\r\n\r\nexport function* loadAccountProfileData() {\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.accountProfile.load,\r\n );\r\n yield put(accountProfileActions.loadDone(response.data));\r\n } catch (e) {\r\n yield put(accountProfileActions.loadFail());\r\n }\r\n}\r\n\r\nexport function* updateField(action: GetAccountProfileAction<'updateField'>) {\r\n const { field, data, modalProps } = action.payload;\r\n try {\r\n const result = (yield call(\r\n ApiService.put,\r\n APP_CONFIG.api.accountProfile.update,\r\n data,\r\n )) as Status>;\r\n if (result.success) {\r\n yield put(accountProfileActions.updateFieldDone(field, data));\r\n yield put(accountProfileActions.unsetConfirmMode());\r\n yield put(accountProfileActions.unsetEditMode(field));\r\n\r\n if (result.executionStatus === 'InquiryMode' && !!modalProps) {\r\n yield put(modalActions.openConfirmModal(modalProps));\r\n }\r\n } else {\r\n yield put(accountProfileActions.updateFieldFail(result.errors));\r\n yield put(accountProfileActions.unsetConfirmMode());\r\n }\r\n } catch (e) {\r\n yield put(accountProfileActions.updateFieldFail());\r\n yield put(accountProfileActions.unsetConfirmMode());\r\n }\r\n}\r\n\r\nexport function* unsetEditMode(action: GetAccountProfileAction<'unsetEditMode'>) {\r\n yield put(animationActions.setRecentlyClosedField(action.payload.field));\r\n}\r\n\r\nexport function* checkUsername(action: GetAccountProfileAction<'checkUsername'>) {\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.accountProfile.checkUsername(encodeURIComponent(action.payload.username)),\r\n );\r\n yield put(accountProfileActions.checkUsernameDone(response.data.exist));\r\n } catch (e) {\r\n yield put(accountProfileActions.checkUsernameFail());\r\n }\r\n}\r\n\r\nexport function* checkPassword(action: GetAccountProfileAction<'checkPassword'>) {\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.post,\r\n APP_CONFIG.api.accountProfile.checkPassword,\r\n {\r\n newPassword: action.payload.password,\r\n },\r\n );\r\n yield put(accountProfileActions.checkPasswordDone(response.data));\r\n } catch (e) {\r\n yield put(accountProfileActions.checkPasswordFail());\r\n }\r\n}\r\n","import { push } from 'connected-react-router';\r\nimport { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { ApiService } from '../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport {\r\n buyInPlanAccountsPath,\r\n sellKnownSharePath,\r\n buyVerifyRegistrationPath,\r\n} from '../../../routing/path';\r\nimport { AutomaticInvestmentData } from '../../Shares/Buy/model/automaticInvestment';\r\nimport {\r\n CompanyItem,\r\n CompanyPlanBrochureResponse,\r\n CompanyPlanResponse,\r\n COMPANY_PLAN_TYPE,\r\n IssueSecurityType,\r\n} from '../../Shares/Buy/model/company';\r\nimport { InvestmentDetails } from '../../Shares/Buy/model/investmentDetails';\r\nimport { BuyFlow } from '../../Shares/Buy/model/steps';\r\nimport { getSecurityWithIssueId } from './../../Shares/Buy/Steps/SelectCompany/utils';\r\nimport {\r\n accountPortfolioActions,\r\n GetPortfolioActions,\r\n LOAD_ACCOUNT_AND_REDIRECT_TO_BUY_SHARES,\r\n LOAD_ACCOUNT_PORTFOLIO,\r\n LOAD_INVESTMENT_DETAILS,\r\n REDIRECT_TO_SELL_SHARE,\r\n} from './actions';\r\nimport { LoadAccountPortfolioResponse } from './model';\r\n\r\nexport function* accountPortfolioSaga() {\r\n yield takeEvery(LOAD_ACCOUNT_PORTFOLIO, loadAccountPortfolio);\r\n yield takeEvery(LOAD_INVESTMENT_DETAILS, loadInvestmentDetails);\r\n yield takeEvery(REDIRECT_TO_SELL_SHARE, redirectToSellShare);\r\n yield takeEvery(LOAD_ACCOUNT_AND_REDIRECT_TO_BUY_SHARES, loadAccounts);\r\n}\r\n\r\n/* Dear developer, this function is albo used to collect data for dividend flow.\r\n/* If you need to change something here, please make sure that the change doesn't break dividend functionality */\r\nexport function* loadAccountPortfolio(action: GetPortfolioActions<'load'>) {\r\n const { accountId, sortOptions, partial } = action.payload;\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.accountPortfolio.load(accountId, sortOptions),\r\n );\r\n\r\n if (!partial) {\r\n yield put(accountPortfolioActions.addAvailableAccounts(response.data.accounts));\r\n }\r\n yield put(accountPortfolioActions.loadDone(response.data));\r\n } catch (e) {\r\n yield put(accountPortfolioActions.loadFail());\r\n }\r\n}\r\n\r\nexport function* redirectToSellShare(action: GetPortfolioActions<'redirectToSellShare'>) {\r\n yield put(push(sellKnownSharePath(action.payload.accountNumber, action.payload.issueNumber)));\r\n}\r\n\r\nexport function* loadAccounts(action: GetPortfolioActions<'loadAccountAndRedirectToBuyShares'>) {\r\n try {\r\n yield put(\r\n push(buyInPlanAccountsPath(), {\r\n flow: BuyFlow.BuyInPlanExistingAccount,\r\n selectedAccountIndex: action.payload,\r\n }),\r\n );\r\n } catch (e) {\r\n console.log('not handled ', e);\r\n }\r\n}\r\n\r\nexport function* loadInvestmentDetails(action: GetPortfolioActions<'loadInvestmentDetails'>) {\r\n try {\r\n const companiesResponse: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.investment.companySecurityTypes,\r\n );\r\n\r\n const currentSecurity: IssueSecurityType | null = getSecurityWithIssueId(\r\n companiesResponse.data,\r\n action.payload.issueId,\r\n );\r\n\r\n const investmentDetailsResponse: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.investment.investmentPreferences(\r\n action.payload.issueNumber,\r\n `${action.payload.accountNumber}`,\r\n ),\r\n );\r\n\r\n const automaticInvestmentResponse: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.investment.automaticInvestment(\r\n `${action.payload.accountNumber}`,\r\n action.payload.issueNumber,\r\n ),\r\n );\r\n\r\n const companyPlan: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.investment.companyPlan(\r\n `${action.payload.issueNumber}`,\r\n currentSecurity!.userRegionCode,\r\n ),\r\n );\r\n\r\n const securityTypeBrochureResponse: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.investment.companyPlanBrochure(`${action.payload.issueId}`, COMPANY_PLAN_TYPE),\r\n );\r\n\r\n const extendedInvestmentDetailsData = {\r\n ...investmentDetailsResponse.data,\r\n accountNumberFromPortfolioFlow: action.payload.accountNumber,\r\n issueNumberFromPortfolioFlow: action.payload.issueNumber,\r\n };\r\n\r\n yield put(accountPortfolioActions.loadInvestmentDetailsDone(extendedInvestmentDetailsData));\r\n yield put(\r\n accountPortfolioActions.loadAutomaticInvestmentDone(automaticInvestmentResponse.data),\r\n );\r\n yield put(accountPortfolioActions.loadCompanyBrochuresDone(securityTypeBrochureResponse.data));\r\n yield put(accountPortfolioActions.loadCompaniesDone(companiesResponse.data));\r\n yield put(accountPortfolioActions.loadCompanyPlanDone(companyPlan.data));\r\n\r\n if (automaticInvestmentResponse.data && automaticInvestmentResponse.data.length) {\r\n yield put(\r\n push(buyVerifyRegistrationPath(), {\r\n flow: BuyFlow.BuyInPlanEditFromPortfolio,\r\n }),\r\n );\r\n } else {\r\n yield put(\r\n push(buyVerifyRegistrationPath(), {\r\n flow: BuyFlow.BuyInPlanEditFromPortfolio,\r\n }),\r\n );\r\n }\r\n } catch (e) {\r\n yield put(accountPortfolioActions.loadInvestmentDetailsFail());\r\n }\r\n}\r\n","import { Status } from './../../../../api/api.hooks';\r\nimport { call, delay, put, takeEvery } from 'redux-saga/effects';\r\nimport { ApiService } from '../../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { modalActions } from '../../../../lib/Modal/store/actions';\r\nimport { addressActions, AddressActionTypes, GetAddressActions } from './address.actions';\r\nimport { AddressFormEnum } from './address.enums';\r\nimport { SecondaryAddressResponse } from './address.model';\r\nimport { ModalComponents } from '../../../../lib/Modal/Modal.Root';\r\nimport { Country } from '../../../../shared/DataStructures';\r\n\r\nexport function* accountAddressSaga() {\r\n yield takeEvery(AddressActionTypes.LOAD, loadAccountAddressData);\r\n yield takeEvery(AddressActionTypes.LOAD_PREVIEW, loadAccountAddressPreviewData);\r\n yield takeEvery(AddressActionTypes.LOAD_COUNTRIES, loadAccountAddressCountriesData);\r\n yield takeEvery(AddressActionTypes.LOAD_US_STATES, loadAccountAddressUsStatesData);\r\n yield takeEvery(AddressActionTypes.LOAD_PROVINCES, loadAccountAddressProvinces);\r\n yield takeEvery(AddressActionTypes.LOAD_ADDRESS_FORMATS, loadAccountAddressFormatsData);\r\n yield takeEvery(AddressActionTypes.UPDATE_FORM, update);\r\n yield takeEvery(AddressActionTypes.DELETE, deleteAddress);\r\n yield takeEvery(\r\n AddressActionTypes.CHECK_AND_DELETE_SEASONAL_ADDRESS_BATCH,\r\n checkBatchAndDeleteSeasonalAddress,\r\n );\r\n yield takeEvery(AddressActionTypes.CHECK_AND_EDIT_ADDRESS_BATCH, checkBatchAndEditAddress);\r\n yield takeEvery(AddressActionTypes.CONFIRM_PRIMARY_ADDRESS, confirmPrimaryAddressValidity);\r\n yield takeEvery(\r\n [AddressActionTypes.UNSET_EDIT_MODE, AddressActionTypes.UNSET_DELETE_MODE],\r\n unsetEditMode,\r\n );\r\n yield takeEvery(AddressActionTypes.LOAD_SECONDARY_ADDRESS, loadSecondaryAddressData);\r\n}\r\n\r\nexport function* loadAccountAddressData() {\r\n try {\r\n const response = yield call(ApiService.get, APP_CONFIG.api.accountAddress.data);\r\n yield put(addressActions.loadDone(response.data));\r\n } catch (e) {\r\n yield put(addressActions.loadFail());\r\n }\r\n}\r\n\r\nexport function* loadAccountAddressCountriesData() {\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.accountAddress.countries,\r\n );\r\n yield put(addressActions.loadCountriesDone(response.data));\r\n } catch (e) {\r\n yield put(addressActions.loadCountriesFail());\r\n }\r\n}\r\n\r\nexport function* loadAccountAddressUsStatesData() {\r\n try {\r\n const response = yield call(ApiService.get, APP_CONFIG.api.accountAddress.usStates);\r\n yield put(addressActions.loadUsStatesDone(response.data));\r\n } catch (e) {\r\n yield put(addressActions.loadUsStatesFail());\r\n }\r\n}\r\n\r\nexport function* loadAccountAddressProvinces() {\r\n try {\r\n const response = yield call(ApiService.get, APP_CONFIG.api.accountAddress.provinces);\r\n yield put(addressActions.loadProvincesDone(response.data));\r\n } catch (e) {\r\n yield put(addressActions.loadProvincesFail());\r\n }\r\n}\r\n\r\nexport function* loadAccountAddressPreviewData(action: GetAddressActions<'loadPreview'>) {\r\n try {\r\n const response = yield ApiService.post(\r\n APP_CONFIG.api.accountAddress.preview(action.payload.id, AddressFormEnum[\r\n action.payload.form\r\n ] as string),\r\n { ...action.payload.requestData },\r\n );\r\n yield put(addressActions.loadPreviewDone(response.data));\r\n } catch (e) {\r\n yield put(addressActions.loadPreviewFail());\r\n }\r\n}\r\n\r\nexport function* loadAccountAddressFormatsData(action: GetAddressActions<'loadAddressFormats'>) {\r\n const { accountNumber: number, countryCode, countryName, registrationCode } = action.payload;\r\n try {\r\n const accountNumber = number !== 'N/A' ? number : 0;\r\n\r\n const response = yield ApiService.get(\r\n APP_CONFIG.api.accountAddress.format,\r\n !!registrationCode\r\n ? { accountNumber, countryCode, registrationCode }\r\n : { accountNumber, countryCode },\r\n );\r\n yield put(addressActions.loadAddressFormatsDone(response.data, countryName as string));\r\n } catch (e) {\r\n yield put(addressActions.loadAddressFormatsFail());\r\n }\r\n}\r\n\r\nexport function* update(action: GetAddressActions<'updateForm'>) {\r\n yield put(modalActions.updateModalProp('loading', true));\r\n try {\r\n const method = action.payload.create ? 'post' : 'put';\r\n const response: Status = yield ApiService[method](\r\n APP_CONFIG.api.accountAddress.change(action.payload.accountId, action.payload.formName),\r\n { ...action.payload.data },\r\n );\r\n yield put(\r\n addressActions.updateFormDone(\r\n action.payload.accountId,\r\n action.payload.formName,\r\n response.data,\r\n response.executionStatus === 'InquiryMode',\r\n ),\r\n );\r\n yield put(modalActions.updateModalProp('recentlySubmitted', true));\r\n yield put(modalActions.updateModalProp('loading', false));\r\n } catch (e) {\r\n yield put(addressActions.updateFormFail());\r\n yield put(modalActions.updateModalProp('loading', false));\r\n }\r\n}\r\n\r\nexport function* deleteAddress(action: GetAddressActions<'delete'>) {\r\n const { accountId, formName } = action.payload;\r\n yield put(modalActions.updateModalProp('loading', true));\r\n\r\n try {\r\n const response: Status = yield ApiService.delete(\r\n APP_CONFIG.api.accountAddress.change(accountId, formName),\r\n );\r\n yield put(\r\n addressActions.deleteDone(accountId, formName, response.executionStatus === 'InquiryMode'),\r\n );\r\n yield put(modalActions.updateModalProp('recentlySubmitted', true));\r\n yield put(modalActions.updateModalProp('loading', false));\r\n } catch (e) {\r\n yield put(addressActions.deleteFail());\r\n yield put(modalActions.updateModalProp('loading', false));\r\n }\r\n}\r\n\r\nexport function* checkBatchAndDeleteSeasonalAddress(\r\n action: GetAddressActions<'checkAndDeleteSeasonalAddress'>,\r\n) {\r\n const { accountId, formName, modalProps, batchPendingModalProps } = action.payload;\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.accountProfile.checkSeasonalAddressBatchPending(accountId),\r\n );\r\n\r\n yield put(addressActions.checkSeasonalAddressBatchDone(response.data));\r\n\r\n if (!response.data) {\r\n yield put(addressActions.setDeleteMode(accountId, formName));\r\n yield put(modalActions.openConfirmModal(modalProps));\r\n } else {\r\n yield put(modalActions.openConfirmModal(batchPendingModalProps));\r\n }\r\n } catch (e) {\r\n yield put(addressActions.checkAddressBatchFail());\r\n }\r\n}\r\n\r\nexport function* checkBatchAndEditAddress(action: GetAddressActions<'checkAndEditAddress'>) {\r\n const { accountId, formName, data, modalProps } = action.payload;\r\n const isPrimary = formName === AddressFormEnum.primary;\r\n\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n isPrimary\r\n ? APP_CONFIG.api.accountProfile.checkPrimaryAddressBatchPending(accountId)\r\n : APP_CONFIG.api.accountProfile.checkSeasonalAddressBatchPending(accountId),\r\n );\r\n\r\n isPrimary\r\n ? yield put(addressActions.checkPrimaryAddressBatchDone(response.data))\r\n : yield put(addressActions.checkSeasonalAddressBatchDone(response.data));\r\n\r\n if (!response.data) {\r\n yield put(addressActions.setPreviewMode(formName, data));\r\n yield put(modalActions.openConfirmModal(modalProps));\r\n }\r\n } catch (e) {\r\n yield put(addressActions.checkAddressBatchFail());\r\n }\r\n}\r\n\r\nexport function* confirmPrimaryAddressValidity(action: GetAddressActions<'confirmPrimaryAddress'>) {\r\n const { accountId, inquiryModeModalProps, confirmFailedModalProps } = action.payload;\r\n const genericError = [{ errorCode: '1000' }];\r\n\r\n try {\r\n const response: Status> = yield call(\r\n ApiService.post,\r\n APP_CONFIG.api.accountAddress.confirm(accountId),\r\n );\r\n\r\n if (response && response.success) {\r\n yield put(addressActions.confirmPrimaryAddressDone(accountId));\r\n if (response.executionStatus === 'InquiryMode') {\r\n yield put(modalActions.openConfirmModal(inquiryModeModalProps));\r\n } else {\r\n yield put(modalActions.closeModal());\r\n }\r\n } else {\r\n const errors = (response && response.errors) || [];\r\n yield put(addressActions.confirmPrimaryAddressFail());\r\n yield put(\r\n modalActions.openModal(\r\n ModalComponents.INFO_MODAL,\r\n confirmFailedModalProps(errors.length ? errors : genericError),\r\n ),\r\n );\r\n }\r\n } catch (e) {\r\n yield put(addressActions.confirmPrimaryAddressFail());\r\n yield put(modalActions.openConfirmModal(confirmFailedModalProps(genericError)));\r\n }\r\n}\r\n\r\nexport function* unsetEditMode() {\r\n yield delay(1);\r\n yield put(addressActions.unsetRecentlyClosedForm());\r\n}\r\n\r\nexport function* loadSecondaryAddressData(action: GetAddressActions<'loadSecondaryAddress'>) {\r\n const { accountNumber, issueNumber } = action.payload;\r\n\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.accountAddress.secondaryAddressGet(accountNumber, issueNumber),\r\n );\r\n\r\n if (response.success) {\r\n yield put(addressActions.loadSecondaryAddressDone(response.data));\r\n } else {\r\n yield put(addressActions.loadSecondaryAddressFail(response.errors));\r\n }\r\n } catch (e) {\r\n e.message = 'Something went wrong when processing your request. Please try again later.';\r\n yield put(addressActions.loadSecondaryAddressFail([e.message]));\r\n }\r\n}\r\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport {\r\n deliveryPreferencesActions,\r\n DeliveryPreferencesActionTypes,\r\n} from './deliveryPreferences.actions';\r\nimport { GetDeliveryPreferencesActions } from './deliveryPreferences.model';\r\nimport { DeliveryDataResponse, UpdateRequest } from '../model';\r\nimport { ApiService } from '../../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { updateDeliveryData } from '../utils';\r\nimport { RootState } from '../../../../store/rootModel';\r\nimport { Status } from '../../../../api/api.hooks';\r\nimport { modalActions } from '../../../../lib/Modal/store/actions';\r\n\r\nexport function* deliveryPreferencesSaga() {\r\n yield takeEvery(DeliveryPreferencesActionTypes.LOAD, loadDeliveryPreferencesData);\r\n yield takeEvery(DeliveryPreferencesActionTypes.CONFIRM, updatePreferencesData);\r\n}\r\n\r\nexport function* loadDeliveryPreferencesData() {\r\n try {\r\n const response: DeliveryDataResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.deliveryPreferences.load,\r\n );\r\n yield put(deliveryPreferencesActions.loadDone(response.data));\r\n } catch (e) {\r\n yield put(deliveryPreferencesActions.loadFail());\r\n }\r\n}\r\n\r\nexport function* updatePreferencesData(action: GetDeliveryPreferencesActions<'confirm'>) {\r\n try {\r\n const requestData: UpdateRequest = action.payload.data;\r\n const state = yield select((state: RootState) => state.deliveryPreferences.data);\r\n const data = updateDeliveryData(state, requestData);\r\n const response: Status = yield call(\r\n ApiService.post,\r\n APP_CONFIG.api.deliveryPreferences.update,\r\n requestData,\r\n );\r\n yield put(deliveryPreferencesActions.confirmDone(data));\r\n if (response.executionStatus === 'InquiryMode') {\r\n yield put(modalActions.openConfirmModal(action.payload.inquiryModalProps));\r\n }\r\n } catch (e) {\r\n yield put(deliveryPreferencesActions.confirmFail());\r\n }\r\n}\r\n","import { Status } from './../../../api/api.hooks';\r\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport { ApiService } from '../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { getPersistedFormValues } from '../../../containers/FormPersist/store/formPersist.selectors';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { RootState } from '../../../store/rootModel';\r\nimport { addressActions } from '../../AccountSettings/Address/store/address.actions';\r\nimport { AddressFormEnum } from '../../AccountSettings/Address/store/address.enums';\r\nimport { AddressLines } from '../../AccountSettings/Address/store/address.model';\r\nimport {\r\n DividendPaymentFormValues,\r\n SecondaryAddressFormAction,\r\n} from '../components/Payment/helpers/dividendPaymentForm.model';\r\nimport {\r\n dividendActions,\r\n DividendsActionTypes,\r\n dividendSecondaryAddressActions,\r\n} from './dividend.actions';\r\nimport {\r\n DividendStep,\r\n GetDividendAction,\r\n GetDividendAddressAction,\r\n LoadDividendDetailsResponse,\r\n LoadSetupDetailsResponse,\r\n PersistedDividendForm,\r\n ValidatePaymentFieldFormatRequest,\r\n ValidatePaymentFieldFormatResponse,\r\n} from './dividend.model';\r\nimport { getUpdateDividendRequest } from './dividend.selectors';\r\nimport { getSecondaryAddressRequestData } from './dividend.utils';\r\n\r\nexport function* dividendsSaga() {\r\n yield takeEvery(DividendsActionTypes.LOAD_DETAILS, loadDetails);\r\n yield takeEvery(DividendsActionTypes.LOAD_SETUP_DETAILS, loadSetupDetails);\r\n yield takeEvery(DividendsActionTypes.VALIDATE_PAYMENT_FIELD_FORMAT, validatePaymentFieldFormat);\r\n yield takeEvery(DividendsActionTypes.UPDATE, update);\r\n yield takeEvery(DividendsActionTypes.SECONDARY_ADDRESS_GET_PREVIEW, getPreview);\r\n}\r\n\r\nexport function* loadDetails(action: GetDividendAction<'loadDetails'>) {\r\n const { issueNumber, accountNumber } = action.payload;\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.dividends.loadDripDetails(issueNumber, accountNumber),\r\n );\r\n\r\n yield put(addressActions.loadSecondaryAddress(`${accountNumber}`, issueNumber));\r\n yield put(dividendActions.loadDetailsDone(response.data));\r\n } catch (e) {\r\n yield put(dividendActions.loadDetailsFail());\r\n }\r\n}\r\n\r\nexport function* loadSetupDetails(action: GetDividendAction<'loadSetupDetails'>) {\r\n const { userRegionCode } = action.payload;\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.dividends.loadSetupDetails(userRegionCode),\r\n );\r\n yield put(dividendActions.loadSetupDetailsDone(response.data));\r\n } catch (e) {\r\n yield put(dividendActions.loadSetupDetailsFail());\r\n }\r\n}\r\n\r\nexport function* validatePaymentFieldFormat(\r\n action: GetDividendAction<'validatePaymentFieldFormat'>,\r\n) {\r\n const { field, value, format, updateFn, setErrorFn } = action.payload;\r\n const request: ValidatePaymentFieldFormatRequest = {\r\n input: value,\r\n format,\r\n };\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.post,\r\n APP_CONFIG.api.dividends.validatePaymentFieldFormat(),\r\n request,\r\n );\r\n yield put(dividendActions.validatePaymentFieldFormatDone(field, response.data));\r\n const { paddedValue, valid } = response.data;\r\n if (paddedValue) {\r\n updateFn(paddedValue);\r\n }\r\n if (!valid) {\r\n setErrorFn(field);\r\n }\r\n } catch (e) {\r\n yield put(dividendActions.validatePaymentFieldFormatFail(field));\r\n }\r\n}\r\n\r\nexport function* update(action: GetDividendAction<'update'>) {\r\n const { issueNumber, accountNumber } = action.payload;\r\n const state: RootState = yield select();\r\n const requestData = getUpdateDividendRequest(state);\r\n const paymentValues = getPersistedFormValues(\r\n state,\r\n PersistedDividendForm.Payment,\r\n );\r\n\r\n try {\r\n if (\r\n paymentValues &&\r\n (paymentValues.secondaryAddressFormAction === SecondaryAddressFormAction.Change ||\r\n paymentValues.useSecondaryAddress === 'true')\r\n ) {\r\n const createAddressData = getSecondaryAddressRequestData(paymentValues.secondaryAddress);\r\n const secondaryAddressResponse: Status> = yield call(\r\n ApiService.post,\r\n APP_CONFIG.api.accountAddress.secondaryAddressAdd(`${accountNumber}`, issueNumber),\r\n createAddressData,\r\n );\r\n\r\n if (!secondaryAddressResponse.success) {\r\n yield put(dividendActions.updateFail(secondaryAddressResponse.errors));\r\n return;\r\n }\r\n\r\n if (secondaryAddressResponse.success) {\r\n yield put(\r\n dividendActions.setSecondaryAddressInquiryMode(\r\n secondaryAddressResponse.executionStatus === 'InquiryMode',\r\n ),\r\n );\r\n }\r\n }\r\n\r\n if (\r\n paymentValues &&\r\n paymentValues.secondaryAddressFormAction === SecondaryAddressFormAction.Remove\r\n ) {\r\n const deleteSecondaryAddressResponse: Status> = yield call(\r\n ApiService.delete,\r\n APP_CONFIG.api.accountAddress.secondaryAddressRemove(`${accountNumber}`, issueNumber),\r\n );\r\n\r\n if (!deleteSecondaryAddressResponse.success) {\r\n yield put(dividendActions.updateFail(deleteSecondaryAddressResponse.errors));\r\n return;\r\n }\r\n\r\n if (deleteSecondaryAddressResponse.success) {\r\n yield put(\r\n dividendActions.setSecondaryAddressInquiryMode(\r\n deleteSecondaryAddressResponse.executionStatus === 'InquiryMode',\r\n ),\r\n );\r\n }\r\n }\r\n\r\n const response: Status> = yield ApiService.put(\r\n APP_CONFIG.api.dividends.update(issueNumber, accountNumber),\r\n requestData,\r\n );\r\n\r\n if (response.success) {\r\n yield put(dividendActions.updateDone(requestData));\r\n yield put(dividendActions.setActiveStep(DividendStep.Summary));\r\n yield put(\r\n dividendActions.setUpdateDividendsInquiryMode(response.executionStatus === 'InquiryMode'),\r\n );\r\n } else {\r\n yield put(dividendActions.updateFail(response.errors));\r\n }\r\n } catch (e) {\r\n e.message = 'Something went wrong when processing your request. Please try again later.';\r\n yield put(dividendActions.updateFail([e.message]));\r\n }\r\n}\r\n\r\nfunction* getPreview(action: GetDividendAddressAction<'getPreview'>) {\r\n const accountNumber = action.payload;\r\n const state: RootState = yield select();\r\n const paymentFormValues = getPersistedFormValues(\r\n state,\r\n PersistedDividendForm.Payment,\r\n );\r\n\r\n try {\r\n const response = yield ApiService.post>(\r\n APP_CONFIG.api.accountAddress.preview(accountNumber, AddressFormEnum.primary),\r\n getSecondaryAddressRequestData(paymentFormValues.secondaryAddress),\r\n );\r\n yield put(dividendSecondaryAddressActions.updatePreview(response.data.addressLines));\r\n } catch (e) {\r\n yield put(dividendSecondaryAddressActions.updatePreview([]));\r\n }\r\n}\r\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport {\r\n proxyDeliveryPreferencesActions,\r\n ProxyDeliveryPreferencesActionTypes,\r\n} from './proxyDeliveryPreferences.actions';\r\nimport { ProxyDeliveryDataResponse, ProxyDeliveryUpdateRequest } from '../model';\r\nimport { GetProxyDeliveryPreferencesActions } from './proxyDeliveryPreferences.model';\r\nimport { ApiService } from '../../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { updateProxyDeliveryData } from '../utils';\r\nimport { RootState } from '../../../../store/rootModel';\r\n\r\nexport function* proxyDeliveryPreferencesSaga() {\r\n yield takeEvery(ProxyDeliveryPreferencesActionTypes.LOAD, loadProxyDeliveryPreferencesData);\r\n yield takeEvery(ProxyDeliveryPreferencesActionTypes.CONFIRM, updateProxyDeliveryPreferences);\r\n}\r\n\r\nfunction* loadProxyDeliveryPreferencesData() {\r\n try {\r\n const response: ProxyDeliveryDataResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.proxyDeliveryPreferences.load,\r\n );\r\n yield put(proxyDeliveryPreferencesActions.loadDone(response.data));\r\n } catch (e) {\r\n yield put(proxyDeliveryPreferencesActions.loadFail());\r\n }\r\n}\r\n\r\nfunction* updateProxyDeliveryPreferences(action: GetProxyDeliveryPreferencesActions<'confirm'>) {\r\n const requestData: ProxyDeliveryUpdateRequest = action.payload;\r\n try {\r\n yield call(\r\n ApiService.put,\r\n APP_CONFIG.api.proxyDeliveryPreferences.update,\r\n requestData.preferences,\r\n );\r\n const state = yield select((state: RootState) => state.proxyDeliveryPreferences.data);\r\n const data = updateProxyDeliveryData(state, requestData);\r\n yield put(proxyDeliveryPreferencesActions.confirmDone(data));\r\n } catch (e) {\r\n put(proxyDeliveryPreferencesActions.confirmFail());\r\n }\r\n}\r\n","import { call, put, takeEvery, take } from 'redux-saga/effects';\r\nimport { taxCertificationActions, TaxCertificationActionTypes } from './taxCertification.actions';\r\nimport { TaxCertificationDataResponse, CitizenshipCountriesDataResponse } from '../model';\r\nimport { ApiService } from '../../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport function* taxCertificationSaga() {\r\n yield takeEvery(TaxCertificationActionTypes.LOAD, loadTaxCertificationData);\r\n yield takeEvery(TaxCertificationActionTypes.LOAD_COUNTRIES, loadCitizenshipCountriesData);\r\n}\r\n\r\nfunction* loadTaxCertificationData() {\r\n try {\r\n const response: TaxCertificationDataResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.taxCertification.load,\r\n );\r\n\r\n yield put(taxCertificationActions.loadCountries());\r\n yield take([\r\n taxCertificationActions.loadCountriesDone,\r\n taxCertificationActions.loadCountriesFail,\r\n ]);\r\n\r\n yield put(taxCertificationActions.loadDone(response.data));\r\n } catch (e) {\r\n yield put(taxCertificationActions.loadFail());\r\n }\r\n}\r\n\r\nexport function* loadCitizenshipCountriesData() {\r\n try {\r\n const response: CitizenshipCountriesDataResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.taxCertification.countries,\r\n );\r\n yield put(taxCertificationActions.loadCountriesDone(response.data));\r\n } catch (e) {\r\n yield put(taxCertificationActions.loadCountriesFail());\r\n }\r\n}\r\n","import { takeEvery, delay, put } from 'redux-saga/effects';\r\nimport { AnimationActionTypes, animationActions } from './animation.actions';\r\n\r\nexport function* animationSaga() {\r\n yield takeEvery(AnimationActionTypes.SET_RECENTLY_CLOSED_FIELD, unsetRecentlyClosedField);\r\n}\r\n\r\nexport function* unsetRecentlyClosedField() {\r\n yield delay(1);\r\n yield put(animationActions.unsetRecentlyClosedField());\r\n}\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport {\r\n LoadSecurityDetailsResponse,\r\n securityOverviewActions,\r\n SecurityOverviewActionTypes,\r\n} from './securityOverview.actions';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { ApiService } from '../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { GetSecurityOverviewAction } from './securityOverview.model';\r\nimport { push } from 'connected-react-router';\r\nimport { accountSettingsPath } from '../../../routing/path';\r\n\r\nexport function* securityOverviewSaga() {\r\n yield takeEvery(SecurityOverviewActionTypes.LOAD_DETAILS, loadDetails);\r\n yield takeEvery(\r\n SecurityOverviewActionTypes.REDIRECT_TO_ACCOUNT_SETTINGS,\r\n redirectToAccountSettings,\r\n );\r\n}\r\n\r\nfunction* loadDetails(action: GetSecurityOverviewAction<'loadDetails'>) {\r\n const { issueNumber, accountNumber } = action.payload;\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.securityOverview.details(accountNumber, issueNumber),\r\n );\r\n yield put(securityOverviewActions.loadDetailsDone(response.data));\r\n } catch (e) {\r\n yield put(securityOverviewActions.loadDetailsFail());\r\n }\r\n}\r\n\r\nfunction* redirectToAccountSettings(\r\n action: GetSecurityOverviewAction<'redirectToAccountSettings'>,\r\n) {\r\n yield put(\r\n push(accountSettingsPath(action.payload.panel, action.payload.field, action.payload.accountId)),\r\n );\r\n}\r\n","import { put, takeEvery } from 'redux-saga/effects';\r\nimport { goBack, push } from 'connected-react-router';\r\nimport {\r\n OPEN_MESSAGE,\r\n OPEN_MESSAGES,\r\n OPEN_ALERTS,\r\n OPEN_REPLY,\r\n OPEN_NEW_MESSAGE,\r\n OPEN_ALERTS_AND_MESSAGES,\r\n GetAlertAndMessageActions,\r\n GO_BACK,\r\n} from './alertAndMessage.actions';\r\nimport { messagePath, messageReplyPath } from '../../../routing/path';\r\nimport { ROUTES } from '../../../routing/routes';\r\n\r\nexport function* alertAndMessageSaga() {\r\n yield takeEvery(OPEN_MESSAGE, openMessage);\r\n yield takeEvery(OPEN_REPLY, openReply);\r\n yield takeEvery(OPEN_MESSAGES, openMessages);\r\n yield takeEvery(OPEN_ALERTS, openAlerts);\r\n yield takeEvery(OPEN_NEW_MESSAGE, openNewMessage);\r\n yield takeEvery(OPEN_ALERTS_AND_MESSAGES, openAlertsAndMessages);\r\n yield takeEvery(GO_BACK, goToPreviousPage);\r\n}\r\n\r\nexport function* openMessage(action: GetAlertAndMessageActions<'openMessage'>) {\r\n yield put(push(messagePath(action.payload.messageId)));\r\n}\r\n\r\nexport function* openMessages() {\r\n yield put(push(ROUTES.messages));\r\n}\r\n\r\nexport function* openAlerts() {\r\n yield put(push(ROUTES.alerts));\r\n}\r\n\r\nexport function* openReply(action: GetAlertAndMessageActions<'openReply'>) {\r\n yield put(push(messageReplyPath(action.payload)));\r\n}\r\n\r\nexport function* openAlertsAndMessages() {\r\n yield put(push(ROUTES.alertsAndMessages));\r\n}\r\n\r\nexport function* openNewMessage() {\r\n yield put(push(ROUTES.alertsAndMessagesContactUs));\r\n}\r\n\r\nexport function* goToPreviousPage() {\r\n yield put(goBack());\r\n}\r\n","import { unreadMessagesActions, UnreadMessagesActionTypes } from './unreadMessages.actions';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { takeEvery, call, put, delay, select } from 'redux-saga/effects';\r\nimport { ApiService } from '../../../api/api.service';\r\nimport { APP_CONFIG, MESSAGE_POLL_INTERVAL } from '../../../config';\r\nimport { UnreadMessagesResult } from './unreadMessages.model';\r\nimport { RootState } from '../../../store/rootModel';\r\n\r\nexport function* unreadMessagesSaga() {\r\n yield takeEvery(UnreadMessagesActionTypes.INIT, init);\r\n yield takeEvery(UnreadMessagesActionTypes.UPDATE, updateUnreadMessages);\r\n}\r\n\r\nfunction* init() {\r\n const state: RootState = yield select();\r\n if (state.unreadMessages.started) {\r\n return;\r\n }\r\n yield put(unreadMessagesActions.setStarted());\r\n while (true) {\r\n yield put(unreadMessagesActions.update());\r\n yield delay(MESSAGE_POLL_INTERVAL);\r\n }\r\n}\r\n\r\nfunction* updateUnreadMessages() {\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.messages.unreadMessages,\r\n );\r\n\r\n if (response.success) {\r\n yield put(unreadMessagesActions.updateDone(response.data));\r\n } else {\r\n yield put(unreadMessagesActions.updateFail());\r\n }\r\n } catch (e) {\r\n yield put(unreadMessagesActions.updateFail());\r\n }\r\n}\r\n","import { unreadAlertsActions, UnreadAlertsActionTypes } from './unreadAlerts.actions';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { takeEvery, call, put, delay, select } from 'redux-saga/effects';\r\nimport { ApiService } from '../../../api/api.service';\r\nimport { APP_CONFIG, ALERT_POLL_INTERVAL } from '../../../config';\r\nimport { RootState } from '../../../store/rootModel';\r\n\r\nexport function* unreadAlertsSaga() {\r\n yield takeEvery(UnreadAlertsActionTypes.INIT, init);\r\n yield takeEvery(UnreadAlertsActionTypes.UPDATE, updateUnreadAlerts);\r\n}\r\n\r\nexport function* init() {\r\n const state: RootState = yield select();\r\n if (state.unreadAlerts.started) {\r\n return;\r\n }\r\n put(unreadAlertsActions.setStarted());\r\n while (true) {\r\n yield put(unreadAlertsActions.update());\r\n yield delay(ALERT_POLL_INTERVAL);\r\n }\r\n}\r\n\r\nexport function* updateUnreadAlerts() {\r\n try {\r\n const response: ApiResponse = yield call(\r\n ApiService.get,\r\n APP_CONFIG.api.messages.unreadAlerts,\r\n );\r\n\r\n if (response.success) {\r\n yield put(unreadAlertsActions.updateDone(response.data));\r\n } else {\r\n yield put(unreadAlertsActions.updateFail());\r\n }\r\n } catch (e) {\r\n yield put(unreadAlertsActions.updateFail());\r\n }\r\n}\r\n","import { all } from 'redux-saga/effects';\r\nimport { formatSaga } from '../containers/Format/store/sagas';\r\nimport { accountProfileSaga } from '../pages/AccountSettings/AccountProfile/store/accountProfile.sagas';\r\nimport { accountPortfolioSaga } from '../pages/Portfolio/store/sagas';\r\nimport { accountAddressSaga } from '../pages/AccountSettings/Address/store/address.sagas';\r\nimport { deliveryPreferencesSaga } from '../pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.sagas';\r\nimport { dividendsSaga } from '../pages/Dividend/store/dividend.sagas';\r\nimport { proxyDeliveryPreferencesSaga } from '../pages/AccountSettings/ProxyDeliveryPreferences/store/proxyDeliveryPreferences.sagas';\r\nimport { taxCertificationSaga } from '../pages/AccountSettings/TaxCertification/store/taxCertification.sagas';\r\nimport { animationSaga } from '../containers/Animation/store/animation.sagas';\r\nimport { securityOverviewSaga } from '../pages/SecurityOverview/store/securityOverview.sagas';\r\nimport { alertAndMessageSaga } from '../pages/AlertsAndMessages/store/alertAndMessage.sagas';\r\nimport { unreadMessagesSaga } from '../shared/UnreadMessages/store/unreadMessages.sagas';\r\nimport { unreadAlertsSaga } from '../shared/UnreadAlerts/store/unreadAlerts.sagas';\r\n\r\nexport function* rootSaga() {\r\n yield all([\r\n formatSaga(),\r\n accountProfileSaga(),\r\n accountPortfolioSaga(),\r\n accountAddressSaga(),\r\n deliveryPreferencesSaga(),\r\n proxyDeliveryPreferencesSaga(),\r\n taxCertificationSaga(),\r\n dividendsSaga(),\r\n animationSaga(),\r\n securityOverviewSaga(),\r\n unreadMessagesSaga(),\r\n unreadAlertsSaga(),\r\n alertAndMessageSaga(),\r\n ]);\r\n}\r\n","import { applyMiddleware, createStore, DeepPartial } from 'redux';\r\nimport { createBrowserHistory } from 'history';\r\nimport { composeWithDevTools } from 'redux-devtools-extension/developmentOnly';\r\nimport { routerMiddleware } from 'connected-react-router';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport { RootState } from './rootModel';\r\nimport { createRootReducer } from './rootReducer';\r\nimport { rootSaga } from './rootSagas';\r\nimport { ROUTES_BASENAME } from '../routing/routes';\r\n\r\nexport const history = createBrowserHistory({ basename: ROUTES_BASENAME });\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst historyMiddleware = routerMiddleware(history);\r\n\r\nexport function configureStore(preloadedState?: RootState) {\r\n const composedEnhancers = composeWithDevTools(\r\n applyMiddleware(sagaMiddleware),\r\n applyMiddleware(historyMiddleware),\r\n );\r\n const store = createStore(\r\n createRootReducer(history),\r\n preloadedState as DeepPartial,\r\n composedEnhancers,\r\n );\r\n sagaMiddleware.run(rootSaga);\r\n return store;\r\n}\r\n\r\nexport const store = configureStore();\r\n","import React from 'react';\r\n\r\nimport { StylesProvider } from './style/StylesProvider/StylesProvider';\r\nimport { THEME, ThemeType } from './style/theme/theme';\r\nimport { IconsProvider } from './lib/Icon/IconsProvider';\r\nimport { FormatProvider } from './containers/Format/FormatProvider/FormatProvider';\r\nimport { ModalRoot } from './lib/Modal/Modal.Root';\r\nimport { Provider } from 'react-redux';\r\nimport { store } from './store';\r\nimport { Store, Action } from 'redux';\r\nimport { CmsDataProvider } from './containers/CmsData';\r\n\r\ninterface OwnProps {\r\n children?: any;\r\n theme?: ThemeType;\r\n store?: Store> & {\r\n dispatch: {};\r\n };\r\n}\r\n\r\nexport function AppBootstrap(props: OwnProps) {\r\n const { children, theme, store: propsStore } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Alert } from './lib/Alert/Alert';\r\n\r\nexport function NotFound() {\r\n console.warn(`App route: '${window.location.pathname}' could not be found.`);\r\n\r\n if (process.env.REACT_APP_PRODUCTION) {\r\n return null;\r\n }\r\n\r\n return 404 - Page not found;\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { Location } from 'history';\r\n\r\ninterface ScrollToTopProps {\r\n children?: React.ReactElement;\r\n location: Location;\r\n}\r\n\r\nfunction Component({ children, location }: ScrollToTopProps) {\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [location.pathname]);\r\n\r\n return children || ;\r\n}\r\n\r\nexport const ScrollToTopProvider = withRouter(Component);\r\n","import React, { useState } from 'react';\r\nimport RegistrationItems from './Models/RegistrationItems';\r\n\r\ninterface RegistrationMenuProps {\r\n registrationItems: Array;\r\n}\r\n\r\nconst RegistrationMenuMobile = (props: RegistrationMenuProps) => {\r\n return (\r\n

\r\n {props.registrationItems.map((item) => (\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n\r\nconst RegistrationMenuMobileItem = (props: RegistrationItems) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n const toggleItem = () => setIsExpanded(!isExpanded);\r\n\r\n return (\r\n \r\n \r\n \r\n {props.Title}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {props.ButtonLink && props.ButtonText && (\r\n
\r\n \r\n {props.ButtonText}\r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RegistrationMenuMobile;\r\n","import React from 'react';\r\nimport RegistrationItems from './Models/RegistrationItems';\r\nimport RegistrationMenuMobile from './RegistrationMenuMobile';\r\n\r\ninterface RegistrationMenuProps {\r\n registrationItems: Array;\r\n}\r\n\r\nconst RegistrationMenu = (props: RegistrationMenuProps) => {\r\n return (\r\n
\r\n
\r\n
\r\n {props.registrationItems &&\r\n props.registrationItems.map((item) => (\r\n
\r\n
\r\n
\r\n

{item.Title}

\r\n
\r\n
\r\n
\r\n
\r\n {item.Link && item.LinkCaption && (\r\n
\r\n \r\n {item.LinkCaption}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default RegistrationMenu;\r\n","import React, { useState } from 'react';\r\nimport ProfileMenuItem from './Models/ProfileMenuItem';\r\nimport { UnreadMessagesBadge } from '../UnreadMessages/UnreadMessagesBadge';\r\nimport { UnreadAlertsBadge } from '../UnreadAlerts/UnreadAlertsBadge';\r\n\r\ninterface RegistrationMenuProps {\r\n profileMenuItems: Array;\r\n aCC20AvatarAriaLabel: string;\r\n signOutPageLink: string;\r\n signOutPageCaption: string;\r\n}\r\n\r\nconst ProfileMenu = (props: RegistrationMenuProps) => {\r\n const [isMenuOpened, setIsMenuOpened] = useState(false);\r\n\r\n const toggleMenu = () => setIsMenuOpened(!isMenuOpened);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Profile Menu icon.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
    \r\n {props.profileMenuItems.map((item) => (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {item.Caption}\r\n \r\n {item.ShowMessageCount &&
    }\r\n {item.ShowAlertCount &&
    }\r\n \r\n ))}\r\n
\r\n \r\n \r\n
\r\n {props.signOutPageLink && props.signOutPageCaption && {props.signOutPageCaption}}\r\n
\r\n \r\n );\r\n};\r\n\r\nconst ProfileMenuIcon = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n);\r\n\r\nexport default ProfileMenu;\r\n","import React, { useState } from 'react';\r\nimport RegistrationMenu from './RegistrationMenu';\r\nimport RegistrationItems from './Models/RegistrationItems';\r\nimport ProfileMenuItem from './Models/ProfileMenuItem';\r\nimport ProfileMenu from './ProfileMenu';\r\nimport HeaderProps from './Models/HeaderProps';\r\n\r\nconst HeaderPresentation = (props: HeaderProps) => {\r\n const [isRegistrationMenuShown, setIsRegistrationMenuShown] = useState(false);\r\n\r\n const toggleRegistrationMenu = () => setIsRegistrationMenuShown(!isRegistrationMenuShown);\r\n const redirectToLogInPage = () => (window.location.href = props.defaultAuthenticatedPage);\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n \r\n Navigation\r\n \r\n \r\n
\r\n {!props.hideLoginRegisterButtons && !props.disableLogoAnchor && (\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n\r\n {props.isAuthenticated && }\r\n\r\n {!props.isAuthenticated && !props.isLoginDisabled && !props.hideLoginRegisterButtons && (\r\n
\r\n \r\n {` ${props.c20SignUpButtonCopy} `}\r\n \r\n \r\n\r\n \r\n {` ${props.c30SignInButtonCopy} `}\r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n {isRegistrationMenuShown && }\r\n \r\n );\r\n};\r\n\r\nexport default HeaderPresentation;\r\n","import { HEADER_PORTAL_ID } from '../../config';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport HeaderPresentation from './HeaderPresentation';\r\nimport {useHeaderProps} from './HeaderProps'\r\nimport HeaderProps from './Models/HeaderProps';\r\n\r\nexport const HeaderPortal = () => {\r\n \r\n const container = document.getElementById(HEADER_PORTAL_ID);\r\n const props : HeaderProps = useHeaderProps();\r\n \r\n return container ? ReactDOM.createPortal(, container) : null;\r\n}\r\n\r\n\r\n","import React from 'react';\r\nimport { useState } from 'react';\r\nimport { useEffect } from 'react';\r\nimport HeaderProps from './Models/HeaderProps';\r\n\r\nexport const useHeaderProps = () => {\r\n const [props, setProps] = useState();\r\n\r\n useEffect(() => {\r\n const win = window as any;\r\n if (win)\r\n setProps({\r\n isAuthenticated: win.isAuthenticated,\r\n defaultAuthenticatedPage: win.defaultAuthenticatedPage,\r\n disableLogoAnchor: win.disableLogoAnchor,\r\n hideLoginRegisterButtons: win.hideLoginRegisterButtons,\r\n isLoginDisabled: win.isLoginDisabled,\r\n c20SignUpButtonCopy: win.c20SignUpButtonCopy,\r\n signUpButtonIcon: win.signUpButtonIcon,\r\n c30SignInButtonCopy: win.c30SignInButtonCopy,\r\n signInButtonIcon: win.signInButtonIcon,\r\n c10SiteLogoDesktop: win.c10SiteLogoDesktop,\r\n c10SiteLogoTablet: win.c10SiteLogoTablet,\r\n c10SiteLogoMobile: win.c10SiteLogoMobile,\r\n registrationItems: win.registrationItems,\r\n profileMenuItems: win.profileMenuItems,\r\n aCC20AvatarAriaLabel: win.aCC20AvatarAriaLabel,\r\n signOutPageLink: win.signOutPageLink,\r\n signOutPageCaption: win.signOutPageCaption,\r\n } as HeaderProps);\r\n }, []);\r\n\r\n return props as HeaderProps;\r\n};\r\n","import React, { useState } from 'react';\r\nimport FooterLink from './Models/FooterLink';\r\n\r\ninterface FooterProps {\r\n footerLinks: Array\r\n copyrightText: string\r\n logoUrl: string\r\n footerCopy: string\r\n clientFooterCopy: string\r\n socialFooterLinks: Array\r\n FAicon: string\r\n}\r\n\r\nconst FooterPresentation = (props: FooterProps) => {\r\n return (\r\n
\r\n {props.clientFooterCopy &&\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
    \r\n {\r\n props.footerLinks &&\r\n props.footerLinks.map((item) => (\r\n
  • \r\n {item.caption}\r\n
  • \r\n ))\r\n }\r\n
\r\n\r\n {props.footerCopy &&\r\n
\r\n
\r\n\r\n
}\r\n
\r\n {props.socialFooterLinks &&\r\n props.socialFooterLinks.map((item) => (\r\n
  • \r\n {item.caption}\r\n
  • \r\n\r\n ))\r\n }\r\n
    \r\n\r\n
    \r\n \"Equiniti\r\n © {new Date().getFullYear()} {props.copyrightText}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default FooterPresentation;\r\n","import { FOOTER_PORTAL_ID } from '../../config';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport FooterPresentation from './FooterPresentation';\r\nimport { useFooterProps } from './FooterProps'\r\n\r\nexport const FooterPortal = () => {\r\n\r\n const container = document.getElementById(FOOTER_PORTAL_ID);\r\n const props = useFooterProps();\r\n\r\n\r\n return container ? ReactDOM.createPortal(, container) : null;\r\n}","import React from 'react';\r\nimport { useState } from 'react';\r\nimport { useEffect } from 'react';\r\n\r\nexport const useFooterProps = () => {\r\n const [props, setProps] = useState({})\r\n\r\n useEffect(() => {\r\n const win = window as any;\r\n if (win)\r\n setProps({\r\n footerLinks: win.footerLinks,\r\n copyrightText: win.copyrightText,\r\n logoUrl: win.logoUrl,\r\n footerCopy: win.footerCopy,\r\n clientFooterCopy: win.clientFooterCopy,\r\n socialFooterLinks: win.socialFooterLinks,\r\n FAicon: win.FAicon\r\n });\r\n }, [])\r\n\r\n return props;\r\n}","import { ConnectedRouter } from 'connected-react-router';\r\nimport React, { Suspense, lazy } from 'react';\r\nimport { Redirect, Route, RouteProps, Switch } from 'react-router-dom';\r\nimport { AppBootstrap } from './AppBootstrap';\r\nimport { logError } from './helpers/logging';\r\nimport { Spinner } from './lib/Spinner/Spinner';\r\nimport { NotFound } from './NotFound';\r\nimport { Alias, RoutingInfo, useRouting } from './routing/api';\r\nimport { ROUTES } from './routing/routes';\r\nimport { UnreadAlertsPortal } from './shared/UnreadAlerts/UnreadAlertsPortal';\r\nimport { UnreadMessagesPortal } from './shared/UnreadMessages/UnreadMessagesPortal';\r\nimport { history } from './store';\r\nimport { ScrollToTopProvider } from './helpers/ScrollToTopProvider';\r\nimport { useBranding } from './style/theme/hooks';\r\nimport { HeaderPortal } from './shared/Header/HeaderPortal';\r\nimport { FooterPortal } from './shared/Footer/FooterPortal';\r\n\r\nconst LOGIN_ROUTE = 'login';\r\nconst AUTH_SETTINGS_ROUTE = 'authSettings';\r\n\r\nconst ContactUs = lazy(() =>\r\n import('./pages/AlertsAndMessages/ContactUs/ContactUsContainer').then(({ ContactUs }) => ({\r\n default: ContactUs,\r\n })),\r\n);\r\nconst MessageContainer = lazy(() =>\r\n import('./pages/AlertsAndMessages/Message/MessageContainer').then(({ MessageContainer }) => ({\r\n default: MessageContainer,\r\n })),\r\n);\r\nconst Contact = lazy(() =>\r\n import('./pages/Contact/Contact').then(({ Contact }) => ({\r\n default: Contact,\r\n })),\r\n);\r\nconst EmailAddressMismatchPage = lazy(() =>\r\n import('./pages/EmailAddressMismatch').then(({ EmailAddressMismatchPage }) => ({\r\n default: EmailAddressMismatchPage,\r\n })),\r\n);\r\nconst SignOnIssuesRouter = lazy(() =>\r\n import('./pages/SignOn/Issues/SignOnIssuesRouter').then(({ SignOnIssuesRouter }) => ({\r\n default: SignOnIssuesRouter,\r\n })),\r\n);\r\nconst TermsAndConditionsPage = lazy(() =>\r\n import('./pages/TermsAndConditions').then(({ TermsAndConditionsPage }) => ({\r\n default: TermsAndConditionsPage,\r\n })),\r\n);\r\nconst SignUpPage = lazy(() =>\r\n import('./pages/SignUp').then(({ SignUpPage }) => ({ default: SignUpPage })),\r\n);\r\nconst Checks = lazy(() =>\r\n import('./pages/Checks/index').then(({ Checks }) => ({ default: Checks })),\r\n);\r\nconst Dashboard = lazy(() =>\r\n import('./pages/Dashboard/Dashboard').then(({ Dashboard }) => ({ default: Dashboard })),\r\n);\r\nconst Portfolio = lazy(() =>\r\n import('./pages/Portfolio/Portfolio').then(({ Portfolio }) => ({ default: Portfolio })),\r\n);\r\nconst BuyShares = lazy(() =>\r\n import('./pages/Shares/Buy').then(({ BuyShares }) => ({ default: BuyShares })),\r\n);\r\nconst DsppPage = lazy(() =>\r\n import('./pages/Dspp/DsppPage').then(({ DsppPage }) => ({ default: DsppPage })),\r\n);\r\nconst EsppPage = lazy(() => import('./pages/Espp').then(({ EsppPage }) => ({ default: EsppPage })));\r\nconst AccountSettings = lazy(() =>\r\n import('./pages/AccountSettings/AccountSettings').then(({ AccountSettings }) => ({\r\n default: AccountSettings,\r\n })),\r\n);\r\nconst DocumentsAndForms = lazy(() =>\r\n import('./pages/DocumentsAndForms/DocumentsAndForms').then(({ DocumentsAndForms }) => ({\r\n default: DocumentsAndForms,\r\n })),\r\n);\r\nconst AlertsAndMessages = lazy(() =>\r\n import('./pages/AlertsAndMessages/AlertsAndMessagesContainer').then(({ AlertsAndMessages }) => ({\r\n default: AlertsAndMessages,\r\n })),\r\n);\r\nconst CompanyPlansPage = lazy(() =>\r\n import('./pages/CompanyPlans').then(({ CompanyPlansPage }) => ({ default: CompanyPlansPage })),\r\n);\r\nconst PendingSaleContainer = lazy(() =>\r\n import('./pages/PendingSales').then(({ PendingSaleContainer }) => ({\r\n default: PendingSaleContainer,\r\n })),\r\n);\r\nconst SellSharesContainer = lazy(() =>\r\n import('./pages/Shares/Sell/SellShares.container').then(({ SellSharesContainer }) => ({\r\n default: SellSharesContainer,\r\n })),\r\n);\r\nconst DividendPage = lazy(() =>\r\n import('./pages/Dividend/DividendPage').then(({ DividendPage }) => ({ default: DividendPage })),\r\n);\r\nconst SecurityOverview = lazy(() =>\r\n import('./pages/SecurityOverview').then(({ SecurityOverview }) => ({\r\n default: SecurityOverview,\r\n })),\r\n);\r\nconst CostBasisDetails = lazy(() =>\r\n import('./pages/SecurityOverview/components/CostBasis/Details/CostBasisDetails').then(\r\n ({ CostBasisDetails }) => ({ default: CostBasisDetails }),\r\n ),\r\n);\r\nconst WfssoPage = lazy(() =>\r\n import('./pages/Wfsso/WfssoPage').then(({ WfssoPage }) => ({ default: WfssoPage })),\r\n);\r\nconst BrokerInstructions = lazy(() =>\r\n import('./pages/BrokerInstructions/BrokerInstructions').then(({ BrokerInstructions }) => ({\r\n default: BrokerInstructions,\r\n })),\r\n);\r\nconst CountryGlossaryPage = lazy(() =>\r\n import('./pages/Help/Glossary').then(({ CountryGlossaryPage }) => ({\r\n default: CountryGlossaryPage,\r\n })),\r\n);\r\nconst GlossaryPage = lazy(() =>\r\n import('./pages/Help/Glossary').then(({ GlossaryPage }) => ({ default: GlossaryPage })),\r\n);\r\nconst MarketDataPage = lazy(() =>\r\n import('./pages/MarketData').then(({ MarketDataPageContainer }) => ({\r\n default: MarketDataPageContainer,\r\n })),\r\n);\r\n\r\nconst InternationalPayments = lazy(() =>\r\n import('./pages/Help/InternationalPayments/InternationalPayments').then(\r\n ({ internationalPaymentsPage }) => ({\r\n default: internationalPaymentsPage,\r\n }),\r\n ),\r\n);\r\n\r\nexport function App() {\r\n const { routing, isLoading } = useRouting();\r\n const theme = useBranding();\r\n\r\n return (\r\n \r\n {isLoading && }\r\n {!isLoading && routing && renderRouter(routing)}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction renderRouter(routingData: RoutingInfo[]) {\r\n const loginInfo = routingData.find((r) => r.alias === LOGIN_ROUTE);\r\n const loginRoute = loginInfo && loginInfo.route;\r\n return (\r\n \r\n }>\r\n \r\n \r\n \r\n {(props) => {\r\n const { match } = props;\r\n const prefix = match && match.url ? match.url : '';\r\n return (\r\n \r\n {loginRoute ? (\r\n } />\r\n ) : null}\r\n {routingData.map((data) => {\r\n return getRoutesProps(data.alias).map((p, i) => {\r\n return [\r\n ,\r\n ,\r\n ,\r\n ];\r\n });\r\n })}\r\n \r\n \r\n );\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction getRoutesProps(alias: Alias | undefined): RouteProps[] {\r\n switch (alias) {\r\n case `accountSettings`:\r\n return [{ exact: true, component: AccountSettings, path: ROUTES.accountSettings }];\r\n case `authenticatedBuy`:\r\n return [{ exact: false, component: BuyShares, path: ROUTES.buyShares }];\r\n case `authenticatedSell`:\r\n return [{ exact: false, component: SellSharesContainer, path: ROUTES.sellShares }];\r\n case `brokerInstructions`:\r\n return [{ exact: false, component: BrokerInstructions, path: ROUTES.brokerInstructions }];\r\n case `companyPlans`:\r\n return [{ exact: false, component: CompanyPlansPage, path: ROUTES.companyPlans }];\r\n case `dashboard`:\r\n return [{ exact: true, component: Dashboard, path: ROUTES.dashboard }];\r\n case `dividends`:\r\n return [{ exact: true, component: DividendPage, path: ROUTES.dividends }];\r\n case `glossary`:\r\n return [{ exact: false, component: GlossaryPage, path: ROUTES.glossary }];\r\n case `countryGlossary`:\r\n return [{ exact: false, component: CountryGlossaryPage, path: ROUTES.countryGlossary }];\r\n case `portfolio`:\r\n return [{ exact: false, component: Portfolio, path: ROUTES.portfolio }];\r\n case `securityOverview`:\r\n return [\r\n { exact: true, component: SecurityOverview, path: ROUTES.securityOverview },\r\n { exact: true, component: CostBasisDetails, path: ROUTES.costBasisDetails },\r\n ];\r\n case `signOnIssues`:\r\n return [{ exact: false, component: SignOnIssuesRouter, path: ROUTES.signOnIssues }];\r\n case `alertsAndMessages`:\r\n return [\r\n { exact: true, component: ContactUs, path: ROUTES.alertsAndMessagesContactUs },\r\n { exact: false, component: MessageContainer, path: ROUTES.individualMessage },\r\n { exact: false, component: AlertsAndMessages, path: ROUTES.alertsAndMessages },\r\n ];\r\n case `checks`:\r\n return [{ exact: false, component: Checks, path: ROUTES.checks }];\r\n case `contact`:\r\n return [{ exact: false, component: Contact, path: ROUTES.contact }];\r\n case `signUpProcessPage`:\r\n return [{ exact: false, component: SignUpPage, path: ROUTES.signUp }];\r\n case `documentsAndForms`:\r\n return [{ exact: false, component: DocumentsAndForms, path: ROUTES.documentsAndForms }];\r\n case `pendingSales`:\r\n return [{ exact: false, component: PendingSaleContainer, path: ROUTES.pendingSale }];\r\n case `espp`:\r\n return [{ exact: false, component: EsppPage, path: ROUTES.espp }];\r\n case `dspp`:\r\n return [{ exact: false, component: DsppPage, path: ROUTES.dspp }];\r\n case `termsAndConditions`:\r\n return [{ exact: false, component: TermsAndConditionsPage, path: ROUTES.termsAndConditions }];\r\n case `emailAddressMismatch`:\r\n return [\r\n { exact: false, component: EmailAddressMismatchPage, path: ROUTES.emailAddressMismatch },\r\n ];\r\n case `wfsso`:\r\n return [{ exact: false, component: WfssoPage, path: ROUTES.wfsso }];\r\n case `marketData`:\r\n return [{ exact: false, component: MarketDataPage, path: ROUTES.marketData }];\r\n case `internationalPayments`:\r\n return [\r\n { exact: false, component: InternationalPayments, path: ROUTES.internationalPayments },\r\n ];\r\n default:\r\n // Login route is processed outside this switch scope, so we don't want to log it\r\n alias !== LOGIN_ROUTE &&\r\n alias !== AUTH_SETTINGS_ROUTE &&\r\n logError(`Can't resolve route props for alias: '${alias}'`);\r\n return [];\r\n }\r\n}\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport 'core-js';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { APP_BOOTSTRAP_ROOT, UNREAD_ALERTS_PORTAL_ID, UNREAD_MESSAGES_PORTAL_ID, HEADER_PORTAL_ID, FOOTER_PORTAL_ID } from './config';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport { App } from './App';\r\nimport { Provider } from 'react-redux';\r\nimport { store } from './store';\r\nimport { HeaderPortal } from './shared/Header/HeaderPortal';\r\nimport { FooterPortal } from './shared/Footer/FooterPortal';\r\n\r\nconst root = document.getElementById(APP_BOOTSTRAP_ROOT);\r\nconst header = document.getElementById(HEADER_PORTAL_ID);\r\nconst footer = document.getElementById(FOOTER_PORTAL_ID);\r\n\r\n// React should load on every page, but render only in those, that has root\r\nif (root !== null) {\r\n ReactDOM.render(, root);\r\n}\r\n\r\nif (root === null && header !== null && footer !== null) {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n ,\r\n header,\r\n );\r\n}\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import { AccountProfileData } from '../accountProfile.model';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../../config';\r\n\r\nexport const SECURITY_QUESTIONS_MOCK = [\r\n {\r\n key: '1',\r\n value: 'What was your first occupation?',\r\n },\r\n {\r\n key: '2',\r\n value: 'What was the make model of the first car you owned?',\r\n },\r\n {\r\n key: '3',\r\n value: 'What is the name of your favorite pet?',\r\n },\r\n {\r\n key: '4',\r\n value: 'What is your favorite food?',\r\n },\r\n {\r\n key: '5',\r\n value: 'What is your favorite pastime or hobby?',\r\n },\r\n];\r\n\r\nexport const ACCOUNT_PROFILE_DATA_MOCK: AccountProfileData = {\r\n userName: 'Eqtest01',\r\n password: 'Something',\r\n telephoneNumber: '5555555555',\r\n securityQuestion: SECURITY_QUESTIONS_MOCK[1],\r\n email: 'nicolle.vazquez@eq-us.com',\r\n};\r\n\r\nexport function mockAccountProfileUpdate(mock: MockAdapter) {\r\n mock.onPut(APP_CONFIG.api.accountProfile.update).reply(200, ACCOUNT_PROFILE_DATA_MOCK);\r\n}\r\n","// That is strange, but it works - This object extracted from taxCertification.mock.ts where it wasn't working well during import.\r\n// Most probabbly it was related with TypeScript building from types TaxCertificationData, OwnershipTypes to regular JavaScript object.\r\nexport const TAX_CERTIFICATION_DATA_MOCK = {\r\n accounts: [\r\n {\r\n number: 412341234,\r\n ownershipType: 'Single',\r\n isTaxCertified: true,\r\n registeredOwner: 'TM7A 01 IVR',\r\n primaryAddressLines: ['ADDRESS LINE1', '3625'],\r\n withCNotice: false,\r\n withBNotice: false,\r\n canCertify: true,\r\n },\r\n {\r\n number: 1234512351236123,\r\n ownershipType: 'Single',\r\n isTaxCertified: false,\r\n registeredOwner: '3625 E 43RD STREET MOCK',\r\n primaryAddressLines: ['ADDRESS', 'LINE2 MOCK'],\r\n withCNotice: false,\r\n withBNotice: true,\r\n canCertify: true,\r\n },\r\n {\r\n number: 123450000,\r\n ownershipType: 'Single',\r\n isTaxCertified: false,\r\n registeredOwner: 'ADDRESS LINE 1',\r\n primaryAddressLines: ['ADDRESS', 'LINE2', '3625'],\r\n withCNotice: true,\r\n withBNotice: true,\r\n canCertify: true,\r\n },\r\n ],\r\n canCertifyTax: true,\r\n};\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { AlertsResponseItem, AlertType } from '../Alerts/models';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nconst RESPONSE: ApiResponse = {\r\n success: true,\r\n data: [\r\n { alertType: AlertType.AccountReCertification, accountNumber: 4000000001 },\r\n { alertType: AlertType.CNotice, accountNumber: 4000000001 },\r\n { alertType: AlertType.EmailNotSet, accountNumber: 4000000001 },\r\n { alertType: AlertType.FirstBNotice, accountNumber: 4000000001 },\r\n { alertType: AlertType.OutstandingChecks, accountNumber: 4000000001 },\r\n { alertType: AlertType.PasswordExpiry, accountNumber: 4000000001 },\r\n { alertType: AlertType.SecondBNotice, accountNumber: 4000000001 },\r\n { alertType: AlertType.TaxCertified, accountNumber: 4000000001 },\r\n { alertType: AlertType.UndeliverableAddress, accountNumber: 4000000001 },\r\n ],\r\n};\r\n\r\nexport function mockAlertsResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.messages.unreadAlertsList;\r\n return adapter.onGet(new RegExp(`${url}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { MessageListData, MessageAttachmentResponse } from '../store/alertAndMessage.model';\r\n\r\nconst body = `
    \"EQ
    \r\n
    \r\n\r\n

    Dear Shareowner:

    \r\n\r\n

    Our records indicate you have recently requested a change to the Dividend Preferences for your account. Your request will be processed provided there are no restrictions on the account that may delay or prevent the transaction from occurring.

    \r\n\r\n

    If you did not make this request, please contact our office. You may reach us anytime by signing on to your account at\r\nshareowneronline.com and selecting\r\nContact Us.

    \r\n\r\n

    Sincerely,
    \r\nShareowner Services
    \r\n
    \r\n
    \r\n

    \r\n\r\n

    Please do not reply to this email. This notice was automatically generated and this email box is not monitored.

    \r\n
    \r\n
    \r\n
    `;\r\n\r\nexport let mockData = {\r\n page: 0,\r\n pageSize: 5,\r\n pageCount: 2,\r\n totalRecords: 10,\r\n data: [\r\n {\r\n messageId: 123,\r\n subject: 'Some message Subject 1',\r\n recievedAt: '2019-02-20T00:00:00',\r\n unread: false,\r\n body:\r\n 'Kimco will release 1Q16 earnings on April 27 after market close, live earnings webcast April 28th @ 11am EDT with replay @investors.kimcorealty.com',\r\n isCompanyMessage: true,\r\n isUserMessage: null,\r\n },\r\n {\r\n messageId: 124,\r\n subject: 'Some message Subject 2',\r\n recievedAt: '2019-02-21T00:00:00',\r\n unread: true,\r\n body,\r\n isCompanyMessage: true,\r\n isUserMessage: false,\r\n },\r\n {\r\n messageId: 125,\r\n subject: 'Some message Subject 3',\r\n recievedAt: '2019-02-22T00:00:00',\r\n unread: true,\r\n body: 'test sep 23',\r\n isCompanyMessage: true,\r\n isUserMessage: true,\r\n },\r\n {\r\n messageId: 126,\r\n subject: 'Some message Subject 4',\r\n recievedAt: '2019-02-23T00:00:00',\r\n unread: true,\r\n body:\r\n '

    Kimco Realty Reports Second Quarter 2016 Results:  Strong Operating Fundamentals and Tenant Demand Drive Occupancy to Eight-Year High; Company Remains Focused on 2020 Vision - Exit from Canada 90% Complete and Early Debt Repayment Plan Strengthens Capital Structure.

     

    Earnings_Release_2Q16.pdf

    ',\r\n isCompanyMessage: false,\r\n isUserMessage: null,\r\n },\r\n {\r\n messageId: 127,\r\n subject: 'Some message Subject 5',\r\n recievedAt: '2019-02-24T00:00:00',\r\n unread: true,\r\n body: 'test denmarkasd    ',\r\n isCompanyMessage: false,\r\n isUserMessage: true,\r\n },\r\n ],\r\n};\r\n\r\nconst attachmentData = [\r\n {\r\n id: 12345,\r\n fileName: 'Some fancy pdf',\r\n fileType: 'PDF',\r\n },\r\n {\r\n id: 12347,\r\n fileName: 'Some fancy doc',\r\n fileType: 'DOC',\r\n },\r\n];\r\n\r\nexport const setMockData = (data: any) => {\r\n if (typeof data === 'function') {\r\n const upgrade = data(mockData);\r\n mockData = {\r\n ...mockData,\r\n ...upgrade,\r\n };\r\n } else {\r\n mockData = {\r\n ...mockData,\r\n data,\r\n };\r\n }\r\n};\r\n\r\nexport function getMessagesDataResp(): ApiResponse {\r\n return {\r\n success: true,\r\n data: mockData,\r\n };\r\n}\r\n\r\nexport function getSimpleResp(): ApiResponse {\r\n return {\r\n success: true,\r\n data: false,\r\n };\r\n}\r\n\r\nexport function getAttachmentsResp(): ApiResponse {\r\n return {\r\n success: true,\r\n data: attachmentData,\r\n };\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport {\r\n setMockData,\r\n getMessagesDataResp,\r\n getSimpleResp,\r\n getAttachmentsResp,\r\n} from './messages.data.mock';\r\n\r\nexport function mockMessagesApi(mock: MockAdapter) {\r\n return Promise.all([\r\n getMessages(mock),\r\n updateReadStatusMessage(mock),\r\n deleteSelectedMessages(mock),\r\n getMessageAttachments(mock),\r\n replyMessage(mock),\r\n ]);\r\n}\r\n\r\nfunction getMessages(mock: MockAdapter) {\r\n return mock.onGet(APP_CONFIG.api.inbox.messages).reply(\r\n () =>\r\n new Promise((resolve) => {\r\n resolve([200, getMessagesDataResp()]);\r\n }),\r\n );\r\n}\r\n\r\nfunction updateReadStatusMessage(mock: MockAdapter) {\r\n return mock.onPut(APP_CONFIG.api.inbox.updateReadStatus).reply(\r\n ({ data }) =>\r\n new Promise((resolve) => {\r\n const body = JSON.parse(data);\r\n setMockData((mockData: any) => {\r\n return {\r\n data: mockData.data.map((item: any) => {\r\n let isInUpdateList = false;\r\n\r\n body.messages.forEach((msg: any) => {\r\n if (msg.messageId === item.messageId) {\r\n isInUpdateList = true;\r\n }\r\n });\r\n\r\n return isInUpdateList\r\n ? {\r\n ...item,\r\n unread: !body.isRead,\r\n }\r\n : item;\r\n }),\r\n };\r\n });\r\n resolve([200, getSimpleResp()]);\r\n }),\r\n );\r\n}\r\n\r\nfunction deleteSelectedMessages(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.inbox.deleteMessages([1]).split('1')[0];\r\n return mock.onDelete(new RegExp(`${url}/*`)).reply(\r\n ({ data }) =>\r\n new Promise((resolve) => {\r\n const messageIds = JSON.parse(data);\r\n setMockData((mockData: any) => {\r\n return {\r\n data: mockData.data.filter(\r\n (item: any) => !messageIds.includes(item.messageId.toString()),\r\n ),\r\n };\r\n });\r\n resolve([200, getSimpleResp()]);\r\n }),\r\n );\r\n}\r\n\r\nfunction getMessageAttachments(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.inbox.attachments(1).split('1');\r\n return mock.onGet(new RegExp(`${url[0]}(.*)${url[1]}`)).reply(\r\n () =>\r\n new Promise((resolve) => {\r\n resolve([200, getAttachmentsResp()]);\r\n }),\r\n );\r\n}\r\n\r\nfunction replyMessage(mock: MockAdapter) {\r\n return mock.onPost(APP_CONFIG.api.inbox.reply).reply(\r\n () =>\r\n new Promise((resolve) => {\r\n resolve([200, getSimpleResp()]);\r\n }),\r\n );\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { InternationalACHSetupDetails } from '../dividend.model';\r\n\r\nconst RESPONSE: ApiResponse = {\r\n success: true,\r\n data: [\r\n {\r\n accountNumberFormat: 'AAAAZZZZZZZZBBBB',\r\n bankCodeFormat: 'AAAAZZZZZZZZBBBB',\r\n country: {\r\n code: 'GB',\r\n name: 'Great Britain',\r\n irsCountryCode: '02',\r\n isPostalCodeMandatory: false,\r\n },\r\n iBAN: '02',\r\n currency: 'GBP',\r\n regionCode: 'L1',\r\n },\r\n {\r\n accountNumberFormat: 'AAAAZZZZZZZZBBBB',\r\n bankCodeFormat: 'AAAAZZZZZZZZBBBB',\r\n country: {\r\n code: 'LT',\r\n name: 'Lithuania',\r\n irsCountryCode: '01',\r\n isPostalCodeMandatory: false,\r\n },\r\n iBAN: '01',\r\n currency: 'EUR',\r\n regionCode: 'L1',\r\n },\r\n ],\r\n};\r\n\r\nexport function mockLoadSetupDetailsResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.dividends.loadSetupDetails('');\r\n const baseUrl = url.split('?')[0];\r\n return adapter.onGet(new RegExp(`${baseUrl}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { AccountForDocuments } from '../models/DocumentsAndForms.models';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nconst RESPONSE: ApiResponse = {\r\n success: true,\r\n data: [\r\n {\r\n accountNumber: 4000000001,\r\n name: 'LINE,ADDRESS',\r\n address: {\r\n fullAddressLines: ['REST', 'REST', 'REST', 'REST', 'REST REST 6855', 'AUSTRIA'],\r\n },\r\n companies: [\r\n {\r\n id: 1900,\r\n name: 'ADR TEST',\r\n securityTypes: ['COMMON', 'RESTRICTED - DIVIDEND'],\r\n issueNumbers: ['ADR1', 'ADR2'],\r\n },\r\n {\r\n id: 1902,\r\n name: 'ADR AUSTRALIA, INC.',\r\n securityTypes: ['COMMON'],\r\n issueNumbers: ['AUSL'],\r\n },\r\n { id: 2300, name: 'IndiaCements', securityTypes: ['COMMON'], issueNumbers: ['CSK1'] },\r\n { id: 2315, name: 'GMR Group', securityTypes: ['COMMON'], issueNumbers: ['DDD1'] },\r\n { id: 1904, name: 'ADR Denmark, Inc.', securityTypes: ['COMMON'], issueNumbers: ['DENM'] },\r\n { id: 2298, name: 'ADR India', securityTypes: ['COMMON'], issueNumbers: ['IND1'] },\r\n { id: 2299, name: 'MUMBAI INDIAN', securityTypes: ['COMMON'], issueNumbers: ['MUM1'] },\r\n {\r\n id: 411,\r\n name: 'J-ones, (&) \"Associates.',\r\n securityTypes: ['COMMON'],\r\n issueNumbers: ['PM01'],\r\n },\r\n { id: 2319, name: 'RetraTest', securityTypes: ['COMMON'], issueNumbers: ['WWW1'] },\r\n ],\r\n },\r\n {\r\n accountNumber: 4002249612,\r\n name: 'PATRICK,ACCOUNT',\r\n address: {\r\n fullAddressLines: ['REST', 'REST', 'REST', 'REST', 'REST REST 6855', 'AUSTRIA'],\r\n },\r\n companies: [\r\n { id: 2317, name: 'Red Chillies', securityTypes: ['COMMON'], issueNumbers: ['KKR1'] },\r\n ],\r\n },\r\n {\r\n accountNumber: 4002250777,\r\n name: 'IRIS,ACCOUNT847',\r\n address: {\r\n fullAddressLines: ['REST', 'REST', 'REST', 'REST', 'REST REST 6855', 'AUSTRIA'],\r\n },\r\n companies: [\r\n { id: 2315, name: 'GMR Group', securityTypes: ['COMMON'], issueNumbers: ['DDD1'] },\r\n { id: 2298, name: 'ADR India', securityTypes: ['COMMON'], issueNumbers: ['IND1'] },\r\n { id: 2299, name: 'MUMBAI INDIAN', securityTypes: ['COMMON'], issueNumbers: ['MUM1'] },\r\n {\r\n id: 411,\r\n name: 'J-ones, (&) \"Associates.',\r\n securityTypes: ['COMMON'],\r\n issueNumbers: ['PM01'],\r\n },\r\n { id: 2319, name: 'RetraTest', securityTypes: ['COMMON'], issueNumbers: ['WWW1'] },\r\n ],\r\n },\r\n {\r\n accountNumber: 4002270828,\r\n name: 'TM7A 01, IVR',\r\n address: {\r\n fullAddressLines: ['REST', 'REST', 'REST', 'REST', 'REST REST 6855', 'AUSTRIA'],\r\n },\r\n companies: [\r\n {\r\n id: 2379,\r\n name: 'IVR TEST ISSUE DO NOT USE 11',\r\n securityTypes: ['N/A'],\r\n issueNumbers: ['IV11'],\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nexport function mockAccountForDocumentsResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.documents.accounts;\r\n return adapter.onGet(new RegExp(`${url}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { EDeliveryDocument } from '../EDelivery/EDelivery.models';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nconst RESPONSE: ApiResponse = {\r\n success: true,\r\n data: [\r\n {\r\n statementId: 1889,\r\n companyId: 1900,\r\n issueNumber: 'ADR1',\r\n date: '2016-12-31T00:00:00',\r\n companyNameSecurityType: 'ADR TEST - COMMON',\r\n documentType: 3,\r\n name: '1099DIV',\r\n statementInsertPDFExists: false,\r\n securityType: 'COMMON',\r\n },\r\n {\r\n statementId: 1890,\r\n companyId: 1900,\r\n issueNumber: 'ADR2',\r\n date: '2016-12-30T00:00:00',\r\n companyNameSecurityType: 'ADR - COMMON',\r\n documentType: 1,\r\n name: '1089DIV',\r\n statementInsertPDFExists: true,\r\n securityType: 'COMMON',\r\n },\r\n {\r\n statementId: 1990,\r\n companyId: 1902,\r\n issueNumber: 'KMN2',\r\n date: '2018-12-30T00:00:00',\r\n companyNameSecurityType: 'KMN - TEST',\r\n documentType: 0,\r\n name: '1990DIV',\r\n statementInsertPDFExists: true,\r\n securityType: 'TEST',\r\n },\r\n ],\r\n};\r\n\r\nexport function mockEDeliveryDocumentResponse(adapter: MockAdapter) {\r\n const fullUrl = APP_CONFIG.api.documents.eDelivery(0);\r\n const urlParts = fullUrl.split('/0');\r\n const baseUrl = urlParts[0];\r\n return adapter.onGet(new RegExp(`${baseUrl}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { TaxForm } from '../TaxForms/TaxForms.models';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\n\r\nexport const TAX_FORMS_DATA_MOCK: TaxForm[] = [\r\n {\r\n companyName: 'ADR TEST',\r\n companyId: 1900,\r\n name: 'form 1',\r\n securityType: 'COMMON',\r\n date: '2018-12-31T00:00:00',\r\n statementId: 1889,\r\n issueNumber: 'ADR1',\r\n },\r\n {\r\n companyName: 'ADR TEST',\r\n companyId: 1900,\r\n name: 'form 2',\r\n securityType: 'COMMON',\r\n date: '2018-11-31T00:00:00',\r\n statementId: 1890,\r\n issueNumber: 'ADR2',\r\n },\r\n {\r\n companyName: 'ADR AUSTRALIA, INC.',\r\n companyId: 1902,\r\n name: 'form 3',\r\n securityType: 'COMMON',\r\n date: '2019-01-31T00:00:00',\r\n statementId: 1891,\r\n issueNumber: 'AUSL',\r\n },\r\n];\r\n\r\nconst RESPONSE: ApiResponse = {\r\n success: true,\r\n data: TAX_FORMS_DATA_MOCK,\r\n};\r\n\r\nexport function mockTaxFormsResponse(adapter: MockAdapter) {\r\n const fullUrl = APP_CONFIG.api.documents.taxForms(0);\r\n const urlParts = fullUrl.split('/0');\r\n const baseUrl = urlParts[0];\r\n return adapter.onGet(new RegExp(`${baseUrl}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { UserEmailMismatchResponse, UserEmailAddressesResponse } from '../model';\r\n\r\nconst userEmailMismatchResponse: UserEmailMismatchResponse = {\r\n doesUserEmailMismatch: true,\r\n};\r\nconst userEmailAddressesResponse: UserEmailAddressesResponse = {\r\n distinctEmails: ['test1@mock.com', 'test2@mock.com'],\r\n};\r\n\r\nexport function mockCheckUserEmailMismatch(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.emailMismatch.userEmailMismatch).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true, data: userEmailMismatchResponse }]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockGetUserEmailAddresses(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.accountProfile.getUserEmailAddresses).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true, data: userEmailAddressesResponse }]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockSaveEmailAddress(mock: MockAdapter) {\r\n mock.onPost(APP_CONFIG.api.accountProfile.saveEmailAddress).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true }]);\r\n }),\r\n );\r\n}\r\n","import MockAdapter from 'axios-mock-adapter/types';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { PendingSaleItem, PendingSaleTiming } from '../model/types';\r\n\r\nconst SECURITY_DETAILS_MOCK: PendingSaleItem[] = [\r\n {\r\n type: 16,\r\n timing: PendingSaleTiming.GTD,\r\n datePlaced: '2017.11.11',\r\n accountNumber: 1123123131,\r\n companyName: 'Company A',\r\n securityType: 'Common',\r\n shareType: 'DRS',\r\n shares: 1213,\r\n orderPrice: 10,\r\n expirationDate: '2019.11.11',\r\n saleId: 1,\r\n },\r\n {\r\n type: 16,\r\n timing: PendingSaleTiming.GTD,\r\n datePlaced: '2018.11.11',\r\n accountNumber: 1123123131,\r\n companyName: 'Company A',\r\n securityType: 'Common',\r\n shareType: 'DRS',\r\n shares: 1213,\r\n orderPrice: 10,\r\n expirationDate: '2019.11.11',\r\n saleId: 2,\r\n },\r\n];\r\n\r\nexport function mockGetPendingSales(mock: MockAdapter) {\r\n mock\r\n .onGet(APP_CONFIG.api.securityOverview.sales.getPendingSales)\r\n .reply(async () => [200, { success: true, data: SECURITY_DETAILS_MOCK }]);\r\n}\r\n\r\nexport function mockGetPendingSale(mock: MockAdapter) {\r\n const urlWithParameters = APP_CONFIG.api.securityOverview.sales.getPendingSale(1);\r\n mock\r\n .onGet(urlWithParameters)\r\n .reply(async () => [200, { success: true, data: SECURITY_DETAILS_MOCK[0] }]);\r\n}\r\n\r\nexport function mockCancelPendingSale(mock: MockAdapter) {\r\n const urlWithParameters = APP_CONFIG.api.securityOverview.sales.cancelPendingSale(1123123131, 1);\r\n mock.onDelete(urlWithParameters).reply(() => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve([200, { success: true }]), 1000);\r\n });\r\n });\r\n}\r\n","import { ApiResponse } from '../../../../../lib/Form/Validation/validation.model';\r\nimport { PlanSharesDetailsResult } from '../PlanShares/model';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../../config';\r\n\r\nexport const TRANSACTION_HISTORY_PLAN_SHARES_INFO_RESPONSE_MOCK: ApiResponse<\r\n PlanSharesDetailsResult\r\n> = {\r\n success: true,\r\n data: {\r\n cashPendingInvestment: 1.0,\r\n sharesPendingSaleWithdrawal: 0.0,\r\n dividendReinvestmentType: 'Partial Reinvestment(RX)',\r\n },\r\n};\r\n\r\nexport function mockPlansInfoResponse(mock: MockAdapter) {\r\n mock\r\n .onGet(APP_CONFIG.api.securityOverview.transaction.getPlansInfo('4002250777', 'DDD1'))\r\n .reply(200, TRANSACTION_HISTORY_PLAN_SHARES_INFO_RESPONSE_MOCK);\r\n}\r\n","import { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { CompanyResponse } from '../model/company';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport const COMPANY_LIST_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: [\r\n {\r\n company: { name: 'ADR AUSTRALIA, INC.', id: 1902 },\r\n issueSecurityTypes: [\r\n {\r\n allowDRIP: false,\r\n buyUnavailableBecauseDRIP: true,\r\n securityType: 'COMMON',\r\n issueNumber: 'AUSL',\r\n issueId: 6842,\r\n dPPOneTimeMinAmount: 0.0,\r\n dPPRecurringMinAmount: 0.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'ADR AUSTRIA', id: 1903 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'TIV1',\r\n issueId: 7580,\r\n dPPOneTimeMinAmount: 50.0,\r\n dPPRecurringMinAmount: 60.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'N',\r\n },\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'N/A',\r\n issueNumber: 'AUST',\r\n issueId: 7424,\r\n dPPOneTimeMinAmount: 100.0,\r\n dPPRecurringMinAmount: 100.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 1,\r\n taxForms: 2,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'N',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'ADR Denmark, Inc.', id: 1904 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'DENM',\r\n issueId: 7190,\r\n dPPOneTimeMinAmount: 10.0,\r\n dPPRecurringMinAmount: 20.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'ADR India', id: 2298 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'IND1',\r\n issueId: 15442,\r\n dPPOneTimeMinAmount: 50.0,\r\n dPPRecurringMinAmount: 25.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'Restricted',\r\n issueNumber: 'IND2',\r\n issueId: 15474,\r\n dPPOneTimeMinAmount: 200.0,\r\n dPPRecurringMinAmount: 200.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'ADR SINGLE TAX RATE', id: 1901 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'PREFERRED',\r\n issueNumber: 'ADR3',\r\n issueId: 7418,\r\n dPPOneTimeMinAmount: 0.0,\r\n dPPRecurringMinAmount: 0.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'N',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'ADR TEST', id: 1900 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'ADR1',\r\n issueId: 3581,\r\n dPPOneTimeMinAmount: 250.0,\r\n dPPRecurringMinAmount: 50.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'N',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'Deccan Chroni', id: 2309 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'DCH1',\r\n issueId: 15447,\r\n dPPOneTimeMinAmount: 10.0,\r\n dPPRecurringMinAmount: 20.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 2,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'Exelon-Blenheim', id: 2314 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'RRY1',\r\n issueId: 15467,\r\n dPPOneTimeMinAmount: 10.0,\r\n dPPRecurringMinAmount: 20.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'GMR Group', id: 2315 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'DDD1',\r\n issueId: 15468,\r\n dPPOneTimeMinAmount: 250.0,\r\n dPPRecurringMinAmount: 25.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'N',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'IRIS PERFORMANCE TEST', id: 2338 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'TEST',\r\n issueNumber: 'IPT1',\r\n issueId: 15489,\r\n dPPOneTimeMinAmount: 1.0,\r\n dPPRecurringMinAmount: 1.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'N',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'JJTEST COMPANY5', id: 2215 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'CAPITAL STOCK',\r\n issueNumber: 'JJ02',\r\n issueId: 14788,\r\n dPPOneTimeMinAmount: 1.0,\r\n dPPRecurringMinAmount: 1.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'N/A',\r\n issueNumber: 'JJ01',\r\n issueId: 14780,\r\n dPPOneTimeMinAmount: 1.0,\r\n dPPRecurringMinAmount: 1.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 1,\r\n taxForms: 2,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'Major League Baseball', id: 2255 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'MLB1',\r\n issueId: 15112,\r\n dPPOneTimeMinAmount: 1000.0,\r\n dPPRecurringMinAmount: 0.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'DIR STK PP',\r\n issueNumber: 'MLB9',\r\n issueId: 15459,\r\n dPPOneTimeMinAmount: 25.0,\r\n dPPRecurringMinAmount: 25.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'MICHELLE & MICHELLE INC', id: 2231 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'CAPITAL STOCK',\r\n issueNumber: 'NFL2',\r\n issueId: 15108,\r\n dPPOneTimeMinAmount: 250.0,\r\n dPPRecurringMinAmount: 50.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'MUMBAI INDIAN', id: 2299 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'MUM1',\r\n issueId: 15443,\r\n dPPOneTimeMinAmount: 5.0,\r\n dPPRecurringMinAmount: 4.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'OCTOBERFEST', id: 2217 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'CLASS B COMMON',\r\n issueNumber: 'RKS5',\r\n issueId: 14772,\r\n dPPOneTimeMinAmount: 10.0,\r\n dPPRecurringMinAmount: 20.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 1,\r\n taxForms: 2,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'Red Chillies', id: 2317 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'KKR1',\r\n issueId: 15452,\r\n dPPOneTimeMinAmount: 100.0,\r\n dPPRecurringMinAmount: 25.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'Rendezvous', id: 2311 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'KTU1',\r\n issueId: 15449,\r\n dPPOneTimeMinAmount: 100.0,\r\n dPPRecurringMinAmount: 100.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'SuperSport Series', id: 2321 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'DOL3',\r\n issueId: 15456,\r\n dPPOneTimeMinAmount: 10.0,\r\n dPPRecurringMinAmount: 10.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'Trinidad', id: 2322 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'OLD COMMON',\r\n issueNumber: 'TAT1',\r\n issueId: 15457,\r\n dPPOneTimeMinAmount: 100.0,\r\n dPPRecurringMinAmount: 30.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n {\r\n company: { name: 'Victorian', id: 2318 },\r\n issueSecurityTypes: [\r\n {\r\n buyUnavailableBecauseDRIP: false,\r\n allowDRIP: false,\r\n securityType: 'COMMON',\r\n issueNumber: 'BRG1',\r\n issueId: 15453,\r\n dPPOneTimeMinAmount: 10.0,\r\n dPPRecurringMinAmount: 20.0,\r\n userRegionCode: '050',\r\n edeliveryPreferences: {\r\n accountStatements: 2,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 2,\r\n taxForms: 1,\r\n },\r\n initialMinimumWaivedifEnrolledinDebitACH: 'Y',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nexport function mockCompanyListResponse(adapter: MockAdapter): void {\r\n adapter\r\n .onGet(APP_CONFIG.api.investment.companySecurityTypes)\r\n .reply(200, COMPANY_LIST_RESPONSE_MOCK);\r\n}\r\n","import { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { CompanyPlanResponse } from '../model/company';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport const COMPANY_PLAN_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: {\r\n oneTimeDebitFee: 1,\r\n oneTimeDebitFeePaidBy: 'C',\r\n aCHDebitFee: 2.75,\r\n aCHDebitFeePaidBy: 'S',\r\n },\r\n};\r\n\r\nexport function mockCompanyPlanResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.investment.companyPlan('1', '2').split('1')[0];\r\n return adapter.onGet(new RegExp(`${url}/*`)).reply(200, COMPANY_PLAN_RESPONSE_MOCK);\r\n}\r\n","import { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { CompanyPlanBrochure } from '../model/company';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport const COMPANY_PLAN_BROCHURES_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: [\r\n {\r\n fileId: '123',\r\n fileName: 'File name',\r\n },\r\n {\r\n fileId: '1234',\r\n fileName: 'File name 1',\r\n },\r\n {\r\n fileId: '12345',\r\n fileName: 'File name 13',\r\n },\r\n {\r\n fileId: '12346',\r\n fileName: 'File name 12',\r\n },\r\n ],\r\n};\r\n\r\nexport function mockCompanyPlanBrochureResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.investment.companyPlanBrochure('1', '2').split('1')[0];\r\n return adapter.onGet(new RegExp(`${url}/*`)).reply(200, COMPANY_PLAN_BROCHURES_RESPONSE_MOCK);\r\n}\r\n","import { InvestmentDetails } from '../model/investmentDetails';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\n\r\nexport const INVESTMENT_PREFERENCES_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: {\r\n oneTimeMinAmount: 5.0,\r\n oneTimeMaxAmount: 100.0,\r\n recurringMinAmount: 6.0,\r\n recurringMaxAmount: 200.0,\r\n combinedOneTimeMinAmount: 7.0,\r\n combinedOneTimeMaxAmount: 300.0,\r\n combinedRecurringMinAmount: 8.0,\r\n combinedRecurringMaxAmount: 400.0,\r\n frequencyDetails: [\r\n { frequencyName: 'Semi-Monthly', frequencyShortName: 'SM' },\r\n { frequencyName: 'Monthly Cycle 1', frequencyShortName: 'MO1' },\r\n { frequencyName: 'Monthly', frequencyShortName: 'MO' },\r\n { frequencyName: 'Monthly Cycle 2', frequencyShortName: 'MO2' },\r\n { frequencyName: 'Quarterly', frequencyShortName: 'QU' },\r\n { frequencyName: 'Semi-Annual', frequencyShortName: 'SA' },\r\n { frequencyName: 'Annually', frequencyShortName: 'AN' },\r\n ],\r\n allowMonthlyCycle1: true,\r\n debitDateRequestForCycle1: 5,\r\n allowMonthlyCycle2: true,\r\n debitDateRequestForCycle2: 25,\r\n bankAccounts: null,\r\n paysDividends: false,\r\n allowOneTimeAndRecurringInvestment: true,\r\n allowOneTimeInvestment: true,\r\n allowRecurringInvestment: true,\r\n },\r\n};\r\n\r\nexport function mockInvestmentDetailsResponse(mock: MockAdapter) {\r\n const wildCard = '(.*)';\r\n const urlString = APP_CONFIG.api.investment.investmentPreferences(wildCard, wildCard);\r\n const urlRegExp = new RegExp(urlString);\r\n mock.onGet(urlRegExp).reply(200, INVESTMENT_PREFERENCES_RESPONSE_MOCK);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { LoadAccountOverviewResponse } from '../../../AccountOverview/model';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\n\r\nexport const ACCOUNTS_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: {\r\n isMarketPricingAvailable: true,\r\n totalValue: 752995125.56164,\r\n accounts: [\r\n {\r\n accountNumber: 4000000001,\r\n ownerCode: '33',\r\n name: 'LINE,ADDRESS',\r\n email: '123@GMAIL.COM',\r\n value: 3730507.4318399997,\r\n userRegionCode: '050', // set 050, to allow Buy journey using mock only.\r\n companies: [\r\n {\r\n name: 'ADR TEST',\r\n securityType: 'COMMON',\r\n sharesCount: 43329.496,\r\n currentAssetValue: 2090214.88704,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'ADR TEST',\r\n securityType: 'RESTRICTED - DIVIDEND',\r\n sharesCount: 4500.0,\r\n currentAssetValue: 217080.0,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'ADR AUSTRALIA, INC.',\r\n securityType: 'COMMON',\r\n sharesCount: 0.0,\r\n currentAssetValue: 0.0,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'IndiaCements',\r\n securityType: 'COMMON',\r\n sharesCount: 2000.0,\r\n currentAssetValue: 96480.0,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'GMR Group',\r\n securityType: 'COMMON',\r\n sharesCount: 6367.02,\r\n currentAssetValue: 307145.04480000003,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'ADR Denmark, Inc.',\r\n securityType: 'COMMON',\r\n sharesCount: 17060.0,\r\n currentAssetValue: 790048.60000000009,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'ADR India',\r\n securityType: 'COMMON',\r\n sharesCount: 48.5,\r\n currentAssetValue: 0.0,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'MUMBAI INDIAN',\r\n securityType: 'COMMON',\r\n sharesCount: 1000.0,\r\n currentAssetValue: 197840.0,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'J-ones, (&) \"Associates.',\r\n securityType: 'COMMON',\r\n sharesCount: 700.0,\r\n currentAssetValue: 30856.0,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'RetraTest',\r\n securityType: 'COMMON',\r\n sharesCount: 10.0,\r\n currentAssetValue: 842.90000000000009,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n ],\r\n },\r\n {\r\n accountNumber: 4002249612,\r\n ownerCode: '34',\r\n name: 'PATRICK,ACCOUNT',\r\n email: '123@GMAIL.COM',\r\n value: 291981.35124000005,\r\n userRegionCode: '001',\r\n companies: [\r\n {\r\n name: 'Red Chillies',\r\n securityType: 'COMMON',\r\n sharesCount: 31702.644,\r\n currentAssetValue: 291981.35124000005,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n ],\r\n },\r\n {\r\n accountNumber: 4002250777,\r\n name: 'IRIS,ACCOUNT847',\r\n email: '123@GMAIL.COM',\r\n value: 15371078.11856,\r\n userRegionCode: '002',\r\n companies: [\r\n {\r\n name: 'GMR Group',\r\n securityType: 'COMMON',\r\n sharesCount: 53962.454,\r\n currentAssetValue: 2603148.78096,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'ADR India',\r\n securityType: 'COMMON',\r\n sharesCount: 745217.27,\r\n currentAssetValue: 0.0,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'MUMBAI INDIAN',\r\n securityType: 'COMMON',\r\n sharesCount: 53748.64,\r\n currentAssetValue: 10633630.9376,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'J-ones, (&) \"Associates.',\r\n securityType: 'COMMON',\r\n sharesCount: 41596.0,\r\n currentAssetValue: 1833551.68,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n {\r\n name: 'RetraTest',\r\n securityType: 'COMMON',\r\n sharesCount: 3568.0,\r\n currentAssetValue: 300746.72000000003,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n ],\r\n },\r\n {\r\n accountNumber: 4002270828,\r\n name: 'TM7A 01, IVR',\r\n email: '123@GMAIL.COM',\r\n value: 733601558.66,\r\n userRegionCode: '003',\r\n companies: [\r\n {\r\n name: 'IVR TEST ISSUE DO NOT USE 11',\r\n securityType: 'N/A',\r\n sharesCount: 5101186.0,\r\n currentAssetValue: 733601558.66,\r\n issueNumber: 'test',\r\n allowDRIP: false,\r\n dividendReinvestmentType: 'RX',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n};\r\n\r\nexport function mockAccountsResponse(mock: MockAdapter, delay = 0) {\r\n mock.onGet(APP_CONFIG.api.accountOverview).reply(() => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve([200, ACCOUNTS_RESPONSE_MOCK]), delay);\r\n });\r\n });\r\n}\r\n","import { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport {\r\n CompanyDeliveryOptions,\r\n DeliveryTypes,\r\n} from '../../../AccountSettings/DeliveryPreferences/model';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport const COMPANY_DELIVERY_OPTIONS_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: {\r\n accountStatements: DeliveryTypes.E_DELIVERY,\r\n directDepositNotice: DeliveryTypes.MAIL,\r\n shareOwnerCommunications: DeliveryTypes.E_DELIVERY,\r\n taxForms: DeliveryTypes.E_DELIVERY,\r\n },\r\n};\r\n\r\nexport function mockCompanyDeliveryOptionsResponse(mock: MockAdapter, delay = 0): void {\r\n const urlString = APP_CONFIG.api.investment.companyDeliveryOptions('(.*)');\r\n const urlRegExp = new RegExp(urlString);\r\n mock.onGet(urlRegExp).reply(() => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve([200, COMPANY_DELIVERY_OPTIONS_RESPONSE_MOCK]);\r\n }, delay);\r\n });\r\n });\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { DeliveryData } from '../../../AccountSettings/DeliveryPreferences/model';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport const ACCOUNT_DELIVERY_OPTIONS_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: {\r\n email: '123@GMAIL.COM',\r\n accounts: [\r\n {\r\n accountNumber: '4000000001',\r\n accountStatements: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n directDepositNotice: 1,\r\n canSelectAccountStatementsDeliveryMethod: true,\r\n canSelectShareOwnerCommunicationsDeliveryMethod: false,\r\n canSelectTaxFormsDeliveryMethod: true,\r\n canSelectDirectDepositNoticeDeliveryMethod: false,\r\n companies: [\r\n {\r\n name: 'ADR TEST',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'ABC ASSOCIATES',\r\n securityType: 'RESTRICTED - DIVIDEND',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'ADR Australia, Inc.',\r\n securityType: 'COMMON',\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n {\r\n name: 'Chennai Super Kings',\r\n securityType: 'COMMON',\r\n accountStatements: 2,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'Delhi DareDevils',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'SCC DEMO TESTING02',\r\n securityType: 'COMMON',\r\n accountStatements: 2,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n {\r\n name: 'TOLAPU COMPANY',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'Mumbay ',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n {\r\n name: 'Books-A-Million',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'Western Warriors',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n ],\r\n },\r\n {\r\n accountNumber: '4002249612',\r\n accountStatements: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n directDepositNotice: 1,\r\n canSelectAccountStatementsDeliveryMethod: true,\r\n canSelectShareOwnerCommunicationsDeliveryMethod: false,\r\n canSelectTaxFormsDeliveryMethod: true,\r\n canSelectDirectDepositNoticeDeliveryMethod: false,\r\n companies: [\r\n {\r\n name: 'Kolkata Knight Rider',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n ],\r\n },\r\n {\r\n accountNumber: '4002250777',\r\n accountStatements: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 1,\r\n directDepositNotice: 2,\r\n canSelectAccountStatementsDeliveryMethod: true,\r\n canSelectShareOwnerCommunicationsDeliveryMethod: false,\r\n canSelectTaxFormsDeliveryMethod: true,\r\n canSelectDirectDepositNoticeDeliveryMethod: false,\r\n companies: [\r\n {\r\n name: 'Delhi DareDevils',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'TOLAPU COMPANY',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'Mumbay ',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 2,\r\n shareOwnerCommunications: 2,\r\n taxForms: 2,\r\n },\r\n {\r\n name: 'Books-A-Million',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n {\r\n name: 'Western Warriors',\r\n securityType: 'COMMON',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n ],\r\n },\r\n {\r\n accountNumber: '4002270828',\r\n accountStatements: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n directDepositNotice: 1,\r\n canSelectAccountStatementsDeliveryMethod: true,\r\n canSelectShareOwnerCommunicationsDeliveryMethod: false,\r\n canSelectTaxFormsDeliveryMethod: true,\r\n canSelectDirectDepositNoticeDeliveryMethod: false,\r\n companies: [\r\n {\r\n name: 'IVR TEST 11',\r\n securityType: 'N/A',\r\n accountStatements: 1,\r\n directDepositNotice: 1,\r\n shareOwnerCommunications: 1,\r\n taxForms: 1,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n};\r\n\r\nexport function mockAccountDeliveryOptionsResponse(mock: MockAdapter, delay = 0) {\r\n mock.onGet(APP_CONFIG.api.deliveryPreferences.load).reply(() => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve([200, ACCOUNT_DELIVERY_OPTIONS_RESPONSE_MOCK])\r\n }, delay);\r\n });\r\n });\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport const AUTOMATIC_INVESTMENT_RESPONSE_MOCK = {\r\n success: true,\r\n data: [\r\n {\r\n AccountNumber: 4002250777,\r\n IssueNumber: 'DDD1',\r\n UserRegionCode: '050',\r\n InvestmentType: 'R',\r\n InvestmentAmount: 100.0,\r\n Frequency: { FrequencyName: '', FrequencyShortName: 'MO1' },\r\n BankAccount: {\r\n BankName: 'WELLS DEBIT',\r\n RoutingNumber: '91000019',\r\n Currency: null,\r\n DestinationCountry: null,\r\n BankCity: null,\r\n UserRegionCode: '',\r\n BankAccountNumber: '1234567890',\r\n PaymentMethodType: '',\r\n UsBeneficiaryABARoutingNumber: null,\r\n UsBeneficiaryBankCity: null,\r\n BeneficiaryBankAccountNumber: null,\r\n BeneficiaryABARoutingNumber: null,\r\n BeneficiaryBankAccountName: null,\r\n BeneficiaryInstructions: null,\r\n BeneficiaryBankSwiftCode: null,\r\n BankAccountHoldersCity: null,\r\n BankAccountHoldersCountry: null,\r\n BankAccountType: 'Checking',\r\n InternationalRoutingCode: null,\r\n },\r\n PaymentMethod: 'DirectDeposit',\r\n },\r\n {\r\n AccountNumber: 4002250777,\r\n IssueNumber: 'DDD1',\r\n UserRegionCode: '050',\r\n InvestmentType: 'O',\r\n InvestmentAmount: 150.0,\r\n Frequency: {},\r\n BankAccount: {\r\n BankName: 'WELLS DEBIT',\r\n RoutingNumber: '91000019',\r\n Currency: null,\r\n DestinationCountry: null,\r\n BankCity: null,\r\n UserRegionCode: '',\r\n BankAccountNumber: '1234567890',\r\n PaymentMethodType: '',\r\n UsBeneficiaryABARoutingNumber: null,\r\n UsBeneficiaryBankCity: null,\r\n BeneficiaryBankAccountNumber: null,\r\n BeneficiaryABARoutingNumber: null,\r\n BeneficiaryBankAccountName: null,\r\n BeneficiaryInstructions: null,\r\n BeneficiaryBankSwiftCode: null,\r\n BankAccountHoldersCity: null,\r\n BankAccountHoldersCountry: null,\r\n BankAccountType: 'Checking',\r\n InternationalRoutingCode: null,\r\n },\r\n PaymentMethod: 'DirectDeposit',\r\n },\r\n ],\r\n};\r\n\r\nexport function mockAutomaticInvestmentResponse(mock: MockAdapter, delay = 0) {\r\n const urlString = APP_CONFIG.api.investment.automaticInvestment('(.*)', '(.*)');\r\n mock.onGet(new RegExp(urlString)).reply(() => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve([200, AUTOMATIC_INVESTMENT_RESPONSE_MOCK]), delay);\r\n });\r\n });\r\n}\r\n\r\nexport const AUTOMATIC_INVESTMENT_BATCH_RESPONSE_MOCK = {\r\n success: true,\r\n data: false,\r\n};\r\n\r\nexport function mockAutomaticInvestmetBatchResponse(mock: MockAdapter, delay = 0) {\r\n const urlString = APP_CONFIG.api.investment.automaticInvestmentBatch('(.*)', '(.*)');\r\n mock.onGet(new RegExp(urlString)).reply(() => {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve([200, AUTOMATIC_INVESTMENT_BATCH_RESPONSE_MOCK]), delay);\r\n });\r\n });\r\n}\r\n","import { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nconst RESPONSE: ApiResponse = {\r\n success: true,\r\n data: false,\r\n};\r\n\r\nexport function mockAccountSSNConfirmResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.account.SSN.checkSSN;\r\n return adapter.onPost(new RegExp(`${url}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nconst RESPONSE: ApiResponse = {\r\n success: true,\r\n data: false,\r\n};\r\n\r\nexport function mockAccountTaxIdConfirmResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.account.taxId.checkTaxId;\r\n return adapter.onPost(new RegExp(`${url}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { KeyValuePair } from '../../../../lib/Form/KeyValuePair';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nconst RESPONSE: ApiResponse[]> = {\r\n success: true,\r\n data: [\r\n { key: '33', value: 'Custodial Registration' },\r\n { key: '00', value: 'Individual' },\r\n { key: '20', value: 'Joint Tenancy' },\r\n { key: '21', value: 'Tenants by the Entirety' },\r\n { key: '22', value: 'Tenants in Common' },\r\n { key: '31', value: 'Trust Registration' },\r\n ],\r\n};\r\n\r\nexport function mockRegistrationTypesResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.account.registrationTypes;\r\n return adapter.onGet(new RegExp(`${url}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { SalePaymentType, SellSharesDetails } from '../models/SellSharesTypes';\r\n\r\nexport const RESPONSE: ApiResponse = {\r\n success: true,\r\n data: {\r\n isMarketPricingAvailable: true,\r\n accountCompanies: [\r\n {\r\n accountNumber: 4002250777,\r\n name: 'IRIS,ACCOUNT847',\r\n value: 15852690.726019999,\r\n taxCertificationStatus: -1,\r\n primaryAddress: { addressLines: ['TEST', 'TEST MN 55406', '', '', ''] },\r\n seasonalAddress: {\r\n addressLines: ['TESTA', 'TESTB TESTC TESTD', 'ALBANIA', '', ''],\r\n start: '2019-05-02T00:00:00',\r\n end: '2019-05-03T00:00:00',\r\n isRecurring: true,\r\n },\r\n address: 'address',\r\n userRegionCode: '050',\r\n companies: [\r\n {\r\n name: 'GMR Group',\r\n companyId: 2315,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 42440.534,\r\n planAvailableForSale: 1886.793,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'DDD1',\r\n drsNumberOfShares: 44175.661,\r\n planNumberOfShares: 1886.793,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: true,\r\n allowSaleOfPlanShares: false,\r\n allowPlanSalesSol: false,\r\n drsFractionalSaleAllowed: true,\r\n planFractionalSaleAllowed: true,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: true,\r\n allowSaleReceiptsByWireTransfer: false,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 42440.534,\r\n planAvailableForSale: 1886.793,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'DIVIDEND',\r\n issueNumber: 'DDD2',\r\n drsNumberOfShares: 44175.661,\r\n planNumberOfShares: 1886.793,\r\n allowSaleOfDrs: false,\r\n allowDrsSalesSol: false,\r\n allowSaleOfPlanShares: false,\r\n allowPlanSalesSol: false,\r\n drsFractionalSaleAllowed: false,\r\n planFractionalSaleAllowed: false,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: false,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'ADR India',\r\n companyId: 2298,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 614781.92,\r\n planAvailableForSale: 128428.35,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'IND1',\r\n drsNumberOfShares: 616781.92,\r\n planNumberOfShares: 128428.35,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: true,\r\n allowSaleOfPlanShares: true,\r\n allowPlanSalesSol: true,\r\n drsFractionalSaleAllowed: false,\r\n planFractionalSaleAllowed: false,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: false,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'MUMBAI INDIAN',\r\n companyId: 2299,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 43891.082,\r\n planAvailableForSale: 7857.558,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'MUM1',\r\n drsNumberOfShares: 43891.082,\r\n planNumberOfShares: 7857.558,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: true,\r\n allowSaleOfPlanShares: true,\r\n allowPlanSalesSol: true,\r\n drsFractionalSaleAllowed: true,\r\n planFractionalSaleAllowed: true,\r\n allowSaleReceiptsByACH: false,\r\n allowSaleReceiptsByInternationalACH: true,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'J-ones, (&) \"Associates.',\r\n companyId: 411,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 41596.0,\r\n planAvailableForSale: 0.0,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'PM01',\r\n drsNumberOfShares: 41596.0,\r\n planNumberOfShares: 0.0,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: false,\r\n allowSaleOfPlanShares: true,\r\n allowPlanSalesSol: false,\r\n drsFractionalSaleAllowed: true,\r\n planFractionalSaleAllowed: true,\r\n allowSaleReceiptsByACH: false,\r\n allowSaleReceiptsByInternationalACH: false,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'RetraTest',\r\n companyId: 2319,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 2968.0,\r\n planAvailableForSale: 0.0,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'WWW1',\r\n drsNumberOfShares: 2968.0,\r\n planNumberOfShares: 0.0,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: true,\r\n allowSaleOfPlanShares: true,\r\n allowPlanSalesSol: true,\r\n drsFractionalSaleAllowed: false,\r\n planFractionalSaleAllowed: false,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: true,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n accountNumber: 4002250787,\r\n name: 'IRIS,ACCOUNT887',\r\n value: 15852690.726019999,\r\n taxCertificationStatus: -1,\r\n address: 'address',\r\n primaryAddress: { addressLines: ['TEST', 'TEST MN 55406', '', '', ''] },\r\n seasonalAddress: {\r\n addressLines: ['TESTA', 'TESTB TESTC TESTD', 'ALBANIA', '', ''],\r\n start: '2019-05-02T00:00:00',\r\n end: '2019-05-03T00:00:00',\r\n isRecurring: true,\r\n },\r\n userRegionCode: '050',\r\n companies: [],\r\n },\r\n {\r\n accountNumber: 4002350777,\r\n name: 'IRIS,ACCOUNT847',\r\n value: 15852690.726019999,\r\n taxCertificationStatus: -1,\r\n primaryAddress: { addressLines: ['TEST', 'TEST MN 55406', '', '', ''] },\r\n seasonalAddress: {\r\n addressLines: ['TESTA', 'TESTB TESTC TESTD', 'ALBANIA', '', ''],\r\n start: '2019-05-02T00:00:00',\r\n end: '2019-05-03T00:00:00',\r\n isRecurring: true,\r\n },\r\n address: 'address',\r\n userRegionCode: '050',\r\n companies: [\r\n {\r\n name: 'GMR Group',\r\n companyId: 2315,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 42440.534,\r\n planAvailableForSale: 1886.793,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'DDD1',\r\n drsNumberOfShares: 44175.661,\r\n planNumberOfShares: 1886.793,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: true,\r\n allowSaleOfPlanShares: false,\r\n allowPlanSalesSol: false,\r\n drsFractionalSaleAllowed: false,\r\n planFractionalSaleAllowed: false,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: true,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'ADR India',\r\n companyId: 2298,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 614781.92,\r\n planAvailableForSale: 128428.35,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'IND1',\r\n drsNumberOfShares: 614781.92,\r\n planNumberOfShares: 128428.35,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: false,\r\n allowSaleOfPlanShares: true,\r\n allowPlanSalesSol: true,\r\n drsFractionalSaleAllowed: false,\r\n planFractionalSaleAllowed: false,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: true,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'MUMBAI INDIAN',\r\n companyId: 2299,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 43891.082,\r\n planAvailableForSale: 7857.558,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'MUM1',\r\n drsNumberOfShares: 43891.082,\r\n planNumberOfShares: 7857.558,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: true,\r\n allowSaleOfPlanShares: true,\r\n allowPlanSalesSol: true,\r\n drsFractionalSaleAllowed: true,\r\n planFractionalSaleAllowed: true,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: true,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'J-ones, (&) \"Associates.',\r\n companyId: 411,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 41596.0,\r\n planAvailableForSale: 0.0,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'PM01',\r\n drsNumberOfShares: 41596.0,\r\n planNumberOfShares: 0.0,\r\n allowSaleOfDrs: true,\r\n allowDrsSalesSol: false,\r\n allowSaleOfPlanShares: true,\r\n allowPlanSalesSol: false,\r\n drsFractionalSaleAllowed: true,\r\n planFractionalSaleAllowed: true,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: true,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n {\r\n name: 'RetraTest',\r\n companyId: 2319,\r\n shares: [\r\n {\r\n drsTotalWithReserved: 99999.999,\r\n planTotalWithReserved: 98888.889,\r\n drsAvailableForSale: 2968.0,\r\n planAvailableForSale: 0.0,\r\n certificateAvailableForSale: 0.0,\r\n securityType: 'COMMON',\r\n issueNumber: 'WWW1',\r\n drsNumberOfShares: 2968.0,\r\n planNumberOfShares: 0.0,\r\n allowSaleOfDrs: false,\r\n allowDrsSalesSol: false,\r\n allowSaleOfPlanShares: true,\r\n allowPlanSalesSol: true,\r\n drsFractionalSaleAllowed: false,\r\n planFractionalSaleAllowed: false,\r\n allowSaleReceiptsByACH: true,\r\n allowSaleReceiptsByInternationalACH: true,\r\n allowSaleReceiptsByWireTransfer: true,\r\n salePaymentType: SalePaymentType.Both,\r\n sellAllPlanSharesTerminatesAccount: true,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n};\r\n\r\nexport function mockSellAccountResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.shares.sell.accounts;\r\n return adapter.onGet(new RegExp(`${url}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { DispositionStatus } from '../Steps/SaleOrderDetailsStep/SaleOrderDetails.model';\r\nimport { FeeType, PaidBy, PriceType, SellTypesConfiguration } from '../models';\r\n\r\nexport const RESPONSE: ApiResponse = {\r\n success: true,\r\n data: {\r\n isMarketPricingAvailable: true,\r\n marketInfo: {\r\n isHoliday: false,\r\n isLimitClosing: false,\r\n isMarketClosed: false,\r\n isMarketClosing: false,\r\n },\r\n saleTypesDetails: [\r\n {\r\n saleType: 'MarketOrder',\r\n timing: 'Typically within 30 minutes.',\r\n planFees: { amount: 1.3, type: FeeType.Amount, discount: 1, paidBy: PaidBy.Company },\r\n drsFees: { amount: 2.5, type: FeeType.Amount, discount: 2, paidBy: PaidBy.Shareowner },\r\n },\r\n {\r\n saleType: 'BatchOrder',\r\n timing: 'Typically within 1 to 2 business days.',\r\n planFees: { amount: 3.2, type: FeeType.Amount, discount: 1, paidBy: PaidBy.Shareowner },\r\n drsFees: { amount: 1.4, type: FeeType.Amount, discount: 2, paidBy: PaidBy.Company },\r\n },\r\n {\r\n saleType: 'LimitOrder',\r\n timing: 'Typically within 30 minutes.',\r\n planFees: { amount: 1.3, type: FeeType.Amount, discount: 2, paidBy: PaidBy.Company },\r\n drsFees: { amount: 2.5, type: FeeType.Amount, discount: 2, paidBy: PaidBy.Company },\r\n },\r\n {\r\n saleType: 'StopLossOrder',\r\n timing: 'Typically within 1 to 2 business days.',\r\n planFees: { amount: 3.2, type: FeeType.Amount, discount: 2, paidBy: PaidBy.Shareowner },\r\n drsFees: { amount: 1.4, type: FeeType.Amount, discount: 2, paidBy: PaidBy.Shareowner },\r\n },\r\n ],\r\n commissionPerPlanShare: {\r\n amount: 0.2,\r\n type: FeeType.Amount,\r\n discount: 2,\r\n paidBy: PaidBy.Shareowner,\r\n },\r\n commissionPerDrsShare: {\r\n amount: 2.2,\r\n type: FeeType.Amount,\r\n discount: 2,\r\n paidBy: PaidBy.Shareowner,\r\n },\r\n planDirectDepositFees: { amount: 6.58, type: FeeType.Amount },\r\n drsDirectDepositFees: { amount: 8.8, type: FeeType.Amount },\r\n planWireTransferFees: { amount: 3.7, type: FeeType.Amount },\r\n drsWireTransferFees: { amount: 1.3, type: FeeType.Amount },\r\n planSalesDollarLimit: 1000,\r\n drsSalesDollarLimit: 5000,\r\n bookLots: [\r\n {\r\n number: '0',\r\n acquisitionPricePerShare: 13,\r\n grossAmount: 789,\r\n dispositionStatus: DispositionStatus.Blank,\r\n totalShares: 787,\r\n availableForSale: 67.12,\r\n acquisitionDate: new Date('2018-01-01'),\r\n },\r\n {\r\n number: '1',\r\n acquisitionPricePerShare: 7,\r\n grossAmount: 2344,\r\n dispositionStatus: DispositionStatus.Blank,\r\n totalShares: 8,\r\n availableForSale: 0.8,\r\n acquisitionDate: new Date('2019-06-02'),\r\n },\r\n {\r\n number: '298',\r\n acquisitionPricePerShare: 988,\r\n grossAmount: 31.321,\r\n dispositionStatus: DispositionStatus.Blank,\r\n totalShares: 60.123,\r\n availableForSale: 2.102,\r\n acquisitionDate: new Date('2019-06-15'),\r\n },\r\n ],\r\n restrictionPriceVariance: 151.456,\r\n price: 100,\r\n priceType: PriceType.Current,\r\n stopLossOrderAutoSellLimit: 52,\r\n limitOrderAutoSellLimit: 150,\r\n hasCancellableSaleOrders: true,\r\n },\r\n};\r\n\r\nexport function mockSaleOrderConfigurationResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.shares.sell.saleOrderDetails;\r\n return adapter.onPost(new RegExp(`${url}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { ApiResponse } from '../../../../lib/Form/Validation/validation.model';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { Status } from '../../../../api/api.hooks';\r\n\r\nconst RESPONSE: Status> = {\r\n success: true,\r\n data: undefined,\r\n executionStatus: 'InquiryMode',\r\n};\r\n\r\nexport function mockSellSharesResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.shares.sell.shares;\r\n return adapter.onPost(url).reply(200, RESPONSE);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { LoadSecurityQuestionsResponse } from '../../AccountSettings/AccountProfile/store/accountProfile.model';\r\n\r\nconst securityQuestionsResponse: LoadSecurityQuestionsResponse = {\r\n securityQuestions: [\r\n {\r\n key: '1',\r\n value: 'What is your name?',\r\n },\r\n {\r\n key: '2',\r\n value: 'Your first pet name?',\r\n },\r\n ],\r\n};\r\n\r\nexport function mockSecurityQuestions(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.accountProfile.securityQuestions).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true, data: securityQuestionsResponse }]);\r\n }),\r\n );\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { CompanyResponse, AuthIdRecoveryResponse } from '../containers/Authentication/model';\r\n\r\nconst getCompanies = () => ({\r\n success: true,\r\n data: [\r\n {\r\n id: 1,\r\n name: 'Test company 1',\r\n },\r\n {\r\n id: 2,\r\n name: 'Test company with employee signup',\r\n },\r\n ] as CompanyResponse,\r\n});\r\n\r\nexport function mockCompaniesResponse(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.companies.all).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, getCompanies()]);\r\n }),\r\n );\r\n}\r\n\r\nconst getSignUpCompanies = () => ({\r\n success: true,\r\n data: [\r\n {\r\n id: 2,\r\n name: 'Test company with employee signup',\r\n },\r\n ] as CompanyResponse,\r\n});\r\n\r\nexport function mockSignUpCompaniesResponse(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.signUp.companies).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, getSignUpCompanies()]);\r\n }),\r\n );\r\n}\r\n\r\nconst getAuthIdRecoveryResponse = (): AuthIdRecoveryResponse => ({\r\n success: true,\r\n data: {\r\n isSent: Math.floor(Math.random() * 3) === 0,\r\n sendingType: Math.floor(Math.random() * 2) === 0 ? 'email' : 'post',\r\n },\r\n errors: [],\r\n});\r\nexport function mockAuthIdRecoveryResponse(mock: MockAdapter) {\r\n mock.onGet(new RegExp(APP_CONFIG.api.signUp.authIdRecovery())).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, getAuthIdRecoveryResponse()]);\r\n }),\r\n );\r\n}\r\n\r\nconst getAuthenticate = () => ({\r\n success: true,\r\n data: true,\r\n});\r\n\r\nexport function mockAuthenticateResponse(mock: MockAdapter) {\r\n mock.onPost(new RegExp(APP_CONFIG.api.signUp.authenticate('employee'))).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, getAuthenticate()]);\r\n }),\r\n );\r\n mock.onPost(new RegExp(APP_CONFIG.api.signUp.authenticate('authId'))).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, getAuthenticate()]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockSignUpAgreements(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.signUp.agreement('eSign')).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n data: `ESIGN. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas tincidunt erat metus, sed congue dolor dignissim at. Fusce nibh elit, mollis sed sagittis non, mattis eget lectus. Sed dui dui, congue eget dolor sed, lacinia mollis tortor. In libero neque, lacinia et est sed, auctor porttitor nisl. Cras imperdiet sagittis tortor vitae lacinia. Integer sed imperdiet purus. Cras ligula dolor, vestibulum et auctor vitae, tincidunt vitae ante. Phasellus feugiat dui ac risus luctus vulputate. Donec non nisl urna. Donec eu augue porta, luctus risus at, volutpat odio. Sed id elit auctor, bibendum est vitae, pellentesque quam. Sed convallis sapien sed congue lobortis. Duis est arcu, iaculis nec purus ac, luctus elementum neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis suscipit urna ex, nec eleifend nisl consequat tincidunt. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.`,\r\n },\r\n ]);\r\n }),\r\n );\r\n mock.onGet(APP_CONFIG.api.signUp.agreement('onlineAccess')).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n data: `ONLINE ACCESS. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas tincidunt erat metus, sed congue dolor dignissim at. Fusce nibh elit, mollis sed sagittis non, mattis eget lectus. Sed dui dui, congue eget dolor sed, lacinia mollis tortor. In libero neque, lacinia et est sed, auctor porttitor nisl. Cras imperdiet sagittis tortor vitae lacinia. Integer sed imperdiet purus. Cras ligula dolor, vestibulum et auctor vitae, tincidunt vitae ante. Phasellus feugiat dui ac risus luctus vulputate. Donec non nisl urna. Donec eu augue porta, luctus risus at, volutpat odio. Sed id elit auctor, bibendum est vitae, pellentesque quam. Sed convallis sapien sed congue lobortis. Duis est arcu, iaculis nec purus ac, luctus elementum neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis suscipit urna ex, nec eleifend nisl consequat tincidunt. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.`,\r\n },\r\n ]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockSignUpProfile(mock: MockAdapter) {\r\n mock.onPost(new RegExp(APP_CONFIG.api.signUp.byAuthId('.+'))).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n data: {\r\n redirectUrl: '/',\r\n },\r\n },\r\n ]);\r\n }),\r\n );\r\n mock.onPost(new RegExp(APP_CONFIG.api.signUp.byEmployeeNumberCompanyId('.+', '.+'))).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n data: {\r\n redirectUrl: '/',\r\n },\r\n },\r\n ]);\r\n }),\r\n );\r\n}\r\n\r\nfunction mockEDeliveryReceivePreferences(mock: MockAdapter) {\r\n mock.onPut(APP_CONFIG.api.deliveryPreferences.receivePreferences).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n },\r\n ]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockAll(mock: MockAdapter) {\r\n mockCompaniesResponse(mock);\r\n mockSignUpCompaniesResponse(mock);\r\n mockAuthIdRecoveryResponse(mock);\r\n mockAuthenticateResponse(mock);\r\n mockSignUpAgreements(mock);\r\n mockSignUpProfile(mock);\r\n mockEDeliveryReceivePreferences(mock);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { UserAgreements, NewUserAgreement, AgreementTypeEnum } from '../model';\r\n\r\nconst userAgreementsResponse: UserAgreements = {\r\n showEConsent: true,\r\n showOAA: true,\r\n};\r\n\r\nconst newUserAgreementsResponse: NewUserAgreement[] = [\r\n { agreementType: AgreementTypeEnum.Esign, needsSign: true },\r\n { agreementType: AgreementTypeEnum.OnlineAccess, needsSign: false },\r\n];\r\n\r\nexport function mockCheckUserAgreements(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.termsAndConditions.userAgreements).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true, data: userAgreementsResponse }]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockNewAgreements(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.agreement.get).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true, data: newUserAgreementsResponse }]);\r\n }),\r\n );\r\n mock.onPost(APP_CONFIG.api.agreement.accept).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n data: { agreementType: AgreementTypeEnum.Esign, needsSign: false },\r\n },\r\n ]);\r\n }),\r\n );\r\n mock.onPost(APP_CONFIG.api.agreement.accept).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n data: { agreementType: AgreementTypeEnum.OnlineAccess, needsSign: false },\r\n },\r\n ]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockUpdateUserAgreements(mock: MockAdapter) {\r\n mock.onPost(APP_CONFIG.api.termsAndConditions.acceptESignAgreement).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true }]), 500);\r\n }),\r\n );\r\n mock.onPost(APP_CONFIG.api.termsAndConditions.acceptOnlineAccessAgreement).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true }]), 500);\r\n }),\r\n );\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { BankAccount, BankAccountType } from './BankAccount.model';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nconst RESPONSE: ApiResponse = {\r\n success: true,\r\n data: [\r\n {\r\n bankAccountHoldersCity: null,\r\n bankAccountHoldersCountry: null,\r\n bankAccountNumber: '09111',\r\n bankAccountType: BankAccountType.Checking,\r\n bankCity: null,\r\n bankName: 'BANK',\r\n beneficiaryABARoutingNumber: null,\r\n beneficiaryBankAccountName: null,\r\n beneficiaryBankAccountNumber: null,\r\n beneficiaryBankSwiftCode: null,\r\n beneficiaryInstructions: null,\r\n currency: null,\r\n destinationCountry: {\r\n code: 'L1',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n name: null,\r\n },\r\n internationalRoutingCode: null,\r\n paymentMethodType: '',\r\n routingNumber: '091000019',\r\n usBeneficiaryABARoutingNumber: null,\r\n usBeneficiaryBankCity: null,\r\n userRegionCode: '',\r\n },\r\n {\r\n bankAccountHoldersCity: null,\r\n bankAccountHoldersCountry: null,\r\n bankAccountNumber: '',\r\n bankAccountType: BankAccountType.Savings,\r\n bankCity: null,\r\n bankName: '',\r\n beneficiaryABARoutingNumber: null,\r\n beneficiaryBankAccountName: null,\r\n beneficiaryBankAccountNumber: null,\r\n beneficiaryBankSwiftCode: null,\r\n beneficiaryInstructions: null,\r\n currency: null,\r\n destinationCountry: {\r\n code: 'L1',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n name: null,\r\n },\r\n internationalRoutingCode: null,\r\n paymentMethodType: '',\r\n routingNumber: '',\r\n usBeneficiaryABARoutingNumber: null,\r\n usBeneficiaryBankCity: null,\r\n userRegionCode: '',\r\n },\r\n {\r\n bankAccountHoldersCity: null,\r\n bankAccountHoldersCountry: null,\r\n bankAccountNumber: '1234567890',\r\n bankAccountType: BankAccountType.Checking,\r\n bankCity: null,\r\n bankName: '',\r\n beneficiaryABARoutingNumber: null,\r\n beneficiaryBankAccountName: null,\r\n beneficiaryBankAccountNumber: null,\r\n beneficiaryBankSwiftCode: null,\r\n beneficiaryInstructions: null,\r\n currency: null,\r\n destinationCountry: {\r\n code: 'L1',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n name: null,\r\n },\r\n internationalRoutingCode: null,\r\n paymentMethodType: '',\r\n routingNumber: '091000019',\r\n usBeneficiaryABARoutingNumber: null,\r\n usBeneficiaryBankCity: null,\r\n userRegionCode: '',\r\n },\r\n {\r\n bankAccountHoldersCity: null,\r\n bankAccountHoldersCountry: null,\r\n bankAccountNumber: '123456456',\r\n bankAccountType: BankAccountType.Checking,\r\n bankCity: null,\r\n bankName: 'WF TEST ACCT',\r\n beneficiaryABARoutingNumber: null,\r\n beneficiaryBankAccountName: null,\r\n beneficiaryBankAccountNumber: null,\r\n beneficiaryBankSwiftCode: null,\r\n beneficiaryInstructions: null,\r\n currency: null,\r\n destinationCountry: {\r\n code: '',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n name: null,\r\n },\r\n internationalRoutingCode: null,\r\n paymentMethodType: '',\r\n routingNumber: '091000019',\r\n usBeneficiaryABARoutingNumber: null,\r\n usBeneficiaryBankCity: null,\r\n userRegionCode: '',\r\n },\r\n ],\r\n};\r\n\r\nexport function mockBankAccountResponse(adapter: MockAdapter) {\r\n const url = APP_CONFIG.api.account.bankAccounts('' as any);\r\n return adapter.onGet(new RegExp(`${url}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nexport const UNREAD_ALERTS_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: 42,\r\n};\r\n\r\nconst randomAlertResponse = (): ApiResponse => ({\r\n success: true,\r\n data: Math.floor(Math.random() * 6),\r\n});\r\n\r\nexport function mockAlertResponse(mock: MockAdapter, data ? : ApiResponse) {\r\n mock.onGet(APP_CONFIG.api.messages.unreadAlerts).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, data || randomAlertResponse()]);\r\n }),\r\n );\r\n}\r\n","import { ApiResponse } from '../../../lib/Form/Validation/validation.model';\r\nimport { UnreadMessagesResult } from '../store/unreadMessages.model';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nexport const UNREAD_MESSAGES_RESPONSE_MOCK: ApiResponse = {\r\n success: true,\r\n data: {\r\n companyMessageCount: 41,\r\n inboxMessageCount: 1,\r\n }\r\n};\r\n\r\nconst randomUnreadMessageResponse = (): ApiResponse => ({\r\n success: true,\r\n data: {\r\n companyMessageCount: Math.floor(Math.random() * 10),\r\n inboxMessageCount: Math.floor(Math.random() * 10),\r\n },\r\n});\r\n\r\nexport function mockUnreadMessageResponse(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.messages.unreadMessages).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, randomUnreadMessageResponse()]);\r\n }),\r\n );\r\n}\r\n","import { BrokerInstructionsResponse } from '../model';\r\nimport MockAdapter from 'axios-mock-adapter/types';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nexport function mockBrokerInstructions(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.brokerInstructions.data).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true, data: BROKER_INSTRUCTIONS_MOCK.data }]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockBrokerInstructionsDetails(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.brokerInstructions.instruction('1', '2').split('1')[0];\r\n mock.onGet(new RegExp(`${url}/*`)).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n // For error handling tests\r\n // {\r\n // success: false,\r\n // errors: [{ errorCode: 1024, field: 'PendingBatchFound', message: null }],\r\n // },\r\n {\r\n success: true,\r\n data: {\r\n account: {\r\n accountNumber: '123456789',\r\n address: {\r\n addressLines: ['aline 1'],\r\n isUndeliverableAddress: false,\r\n },\r\n email: 'a@b.c',\r\n },\r\n broker: {\r\n name: 'Broker name',\r\n accountNumber: '987654321',\r\n participantNumber: '777444555',\r\n },\r\n sharesDetails: {\r\n companyName: 'Company A',\r\n accountNumber: '79845454',\r\n securityType: 'COMMON',\r\n totalShares: 5000,\r\n unrestrictedShares: 2000,\r\n eligibleShares: 1000,\r\n },\r\n },\r\n },\r\n ]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockBrokerInstructionsTransfer(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.brokerInstructions.instruction('1', '2').split('1')[0];\r\n mock.onPost(new RegExp(`${url}/*`)).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n executionStatus: 'InquiryMode',\r\n },\r\n ]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockBrokerInstructionsRemove(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.brokerInstructions.instruction('1', '2').split('1')[0];\r\n mock.onDelete(new RegExp(`${url}/*`)).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([\r\n 200,\r\n {\r\n success: true,\r\n executionStatus: 'InquiryMode',\r\n },\r\n ]);\r\n }),\r\n );\r\n}\r\n\r\nexport const BROKER_INSTRUCTIONS_MOCK: { data: BrokerInstructionsResponse } = {\r\n data: {\r\n brokerInstructions: [\r\n {\r\n transferType: 'R',\r\n companyDirection: 'N',\r\n accountNumber: '4002253187',\r\n issueNumber: 'ADR1',\r\n issueName: 'ADR TEST',\r\n securityType: 'COMMON',\r\n brokerName: 'MY BROKER',\r\n brokerAccountNumber: '12345',\r\n dtcBrokerParticipantNumber: '00001234',\r\n expirationDate: '2022-02-20T00:00:00',\r\n medallionNumber: '',\r\n remainingMedallionValue: 31912.0,\r\n instructionForFractionalShare: 'A',\r\n canTransfer: true,\r\n },\r\n {\r\n transferType: 'R',\r\n companyDirection: 'Y',\r\n accountNumber: '4002253187',\r\n issueNumber: 'BRG1',\r\n issueName: 'Victorian',\r\n securityType: 'COMMON',\r\n brokerName: 'MY BROKER',\r\n brokerAccountNumber: 'A123',\r\n dtcBrokerParticipantNumber: '00001234',\r\n expirationDate: '2022-02-21T00:00:00',\r\n medallionNumber: '',\r\n remainingMedallionValue: 1000000.0,\r\n instructionForFractionalShare: ' ',\r\n canTransfer: true,\r\n },\r\n {\r\n transferType: 'R',\r\n companyDirection: 'N',\r\n accountNumber: '4002253187',\r\n issueNumber: 'DENM',\r\n issueName: 'ADR DENMARK',\r\n securityType: 'COMMON',\r\n brokerName: 'TEST BROKER',\r\n brokerAccountNumber: 'TEST BROKER ACCNT #',\r\n dtcBrokerParticipantNumber: '00001111',\r\n expirationDate: '2022-06-17T00:00:00',\r\n medallionNumber: 'F9999999',\r\n remainingMedallionValue: 2155406.0,\r\n instructionForFractionalShare: ' ',\r\n canTransfer: true,\r\n },\r\n {\r\n transferType: 'R',\r\n companyDirection: 'Y',\r\n accountNumber: '4002253187',\r\n issueNumber: 'KKR1',\r\n issueName: 'Red Chillies',\r\n securityType: 'COMMON',\r\n brokerName: 'VEERA TOLAPU',\r\n brokerAccountNumber: '123456',\r\n dtcBrokerParticipantNumber: '00001234',\r\n expirationDate: '2022-10-09T00:00:00',\r\n medallionNumber: 'F9999999',\r\n remainingMedallionValue: 1000000.0,\r\n instructionForFractionalShare: 'A',\r\n canTransfer: true,\r\n },\r\n {\r\n transferType: 'R',\r\n companyDirection: 'Y',\r\n accountNumber: '4002253187',\r\n issueNumber: 'KKR1',\r\n issueName: 'Red Chillies',\r\n securityType: 'COMMON',\r\n brokerName: 'VEERA TOLAPU',\r\n brokerAccountNumber: '123456',\r\n dtcBrokerParticipantNumber: '00001234',\r\n expirationDate: '2022-10-09T00:00:00',\r\n medallionNumber: 'Z9999999',\r\n remainingMedallionValue: 1000000.0,\r\n instructionForFractionalShare: 'A',\r\n canTransfer: true,\r\n },\r\n ],\r\n canRemoveInstructions: true,\r\n },\r\n};\r\n\r\nexport const BROKER_INSTRUCTIONS_DETAILS_MOCK = {\r\n account: {\r\n accountNumber: '111222333',\r\n address: {\r\n addressLines: ['line 1', 'line 2', 'line 3'],\r\n isUndeliverableAddress: false,\r\n },\r\n email: 'test@test.com',\r\n },\r\n broker: {\r\n name: 'Name',\r\n accountNumber: '333444555',\r\n participantNumber: '888555222',\r\n },\r\n sharesDetails: {\r\n companyName: 'Company A',\r\n accountNumber: '111222333',\r\n securityType: 'Common',\r\n totalShares: 10,\r\n unrestrictedShares: 5,\r\n eligibleShares: 5,\r\n },\r\n};\r\n","import { APP_CONFIG } from '../../../../../config';\r\nimport MockAdapter from 'axios-mock-adapter/types';\r\n\r\nexport function mockDeleteSeasonalAddressResponse(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.accountProfile.checkSeasonalAddressBatchPending('1').split('1')[0];\r\n mock.onGet(new RegExp(`${url}/*`)).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true, data: false }]);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockConfirmPrimaryAddressResponse(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.accountAddress.confirm('1').split('1');\r\n mock.onPost(new RegExp(`${url[0]}(.*)${url[1]}`)).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true, data: true }]);\r\n }),\r\n );\r\n}\r\n\r\nexport const addressLines = {\r\n addressLines: [\r\n 'IRIS, ACCOUNT TESTING DO NOT USE-847',\r\n '*LINE1',\r\n 'LINE2',\r\n 'LINE3',\r\n 'City',\r\n 'Atlanta',\r\n '1111',\r\n 'USA',\r\n ],\r\n};\r\n\r\nexport const addressLinesSeasonal = {\r\n addressLines: [\r\n 'IRIS, ACCOUNT TESTING DO NOT USE-847',\r\n '*LINE1',\r\n 'LINE2',\r\n 'LINE3',\r\n 'CITY STATEORPROVINC POSTAL',\r\n 'LITHUANIA',\r\n ],\r\n start: '2019-07-06',\r\n end: '2019-08-06',\r\n isRecurring: true,\r\n};\r\n\r\nexport const accountAddresses = {\r\n '4002250777': {\r\n primary: {\r\n addressLines: [\r\n 'IRIS, ACCOUNT TESTING DO NOT USE-847',\r\n '*LINE1',\r\n 'LINE2',\r\n 'LINE3',\r\n 'CITY STATEORPROVINC POSTAL',\r\n 'LITHUANIA',\r\n ],\r\n },\r\n },\r\n '4002250772': {\r\n primary: {\r\n addressLines: [\r\n 'IRIS, ACCOUNT TESTING DO NOT USE-847',\r\n '*LINE1',\r\n 'LINE2',\r\n 'LINE3',\r\n 'CITY STATEORPROVINC POSTAL',\r\n 'LITHUANIA',\r\n ],\r\n },\r\n seasonal: {\r\n addressLines: [\r\n 'IRIS, ACCOUNT TESTING DO NOT USE-847',\r\n '*LINE1',\r\n 'LINE2',\r\n 'LINE3',\r\n 'CITY STATEORPROVINC POSTAL',\r\n 'LITHUANIA',\r\n ],\r\n start: '2019-07-06',\r\n end: '2019-08-06',\r\n isRecurring: true,\r\n },\r\n },\r\n};\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { Status } from '../../api/api.hooks';\r\nimport { ApiResponse } from '../../lib/Form/Validation/validation.model';\r\nimport { APP_CONFIG } from '../../config';\r\n\r\nconst baconIpsum = `\r\n

    Bacon ipsum dolor amet chuck pastrami corned beef chislic short ribs picanha strip steak doner ham shoulder beef. Andouille ground round alcatra meatball ham hock, pork loin cupim pork chop tail turducken bacon. Ground round t-bone fatback prosciutto ham hock picanha porchetta jowl. Pork loin pork chop shankle frankfurter pork belly andouille meatball sausage. Short loin pig tongue andouille jerky brisket. Pork buffalo alcatra swine tri-tip t-bone doner pig spare ribs short loin. Cupim pork turkey, beef ribs strip steak biltong pig filet mignon brisket pork loin short loin ball tip tenderloin hamburger leberkas.

    \r\n

    Brisket frankfurter turducken ground round bresaola, pork chop drumstick tail meatloaf ball tip. Fatback tri-tip pork loin ribeye sausage pork belly pig. Cupim burgdoggen sausage pastrami boudin tail pork buffalo filet mignon capicola chislic cow swine shoulder. Jowl short ribs chuck, alcatra pork belly cupim chicken frankfurter venison ground round sausage tongue ball tip. T-bone turkey picanha, capicola jowl brisket cupim shoulder fatback kielbasa pig chuck. Corned beef kielbasa doner bacon ham hock pork leberkas.

    \r\n

    Shoulder chuck tenderloin, fatback hamburger chislic jerky ham hock ground round drumstick cupim boudin pig. Spare ribs kevin rump pork loin turducken. Pork strip steak chislic pancetta kielbasa bresaola prosciutto salami buffalo pastrami tail. Burgdoggen biltong drumstick, brisket buffalo strip steak t-bone alcatra bresaola cupim pork loin frankfurter tri-tip porchetta fatback.

    \r\n

    Capicola rump boudin bacon. Salami sirloin strip steak pork chop andouille, turducken flank doner beef pig. Pork chop hamburger tenderloin buffalo, picanha jerky chislic short ribs turducken doner corned beef fatback. Alcatra pancetta sausage, ball tip shoulder chicken buffalo pork loin t-bone hamburger kielbasa boudin capicola cow.

    \r\n

    Pork belly boudin flank kielbasa ground round biltong. Capicola pork chop alcatra chicken, tenderloin beef ribs tongue ham hock. Corned beef shoulder kielbasa chislic, chicken turkey beef pork belly prosciutto. Corned beef pig picanha salami strip steak. Strip steak pastrami salami prosciutto brisket. Doner tongue bacon, filet mignon jerky turducken buffalo kevin. Alcatra fatback brisket flank, filet mignon sausage prosciutto ham hock.

    \r\n`;\r\n\r\nconst RESPONSE: Status> = {\r\n success: true,\r\n data: baconIpsum,\r\n};\r\n\r\nexport function mockBankInfoResponse(adapter: MockAdapter) {\r\n const baseUrl = APP_CONFIG.api.bankInfo('').split('?')[0];\r\n return adapter.onGet(new RegExp(`${baseUrl}(.*)`)).reply(200, RESPONSE);\r\n}\r\n","import axios from 'axios';\r\nimport MockAdapter from 'axios-mock-adapter';\r\nimport { mockAccountProfileUpdate } from '../pages/AccountSettings/AccountProfile/store/__mock__/accountProfile.mock';\r\nimport {\r\n mockCitizenshipCountriesData,\r\n mockSaveTaxCertificationData,\r\n mockTaxCertificationData,\r\n mockValidateBatchedCertifyTaxId,\r\n} from '../pages/AccountSettings/TaxCertification/__mock__/taxCertificationData.mock';\r\nimport { mockAlertsResponse } from '../pages/AlertsAndMessages/__mock__/alerts.api.mock';\r\nimport { mockMessagesApi } from '../pages/AlertsAndMessages/__mock__/messages.api.mock';\r\nimport { mockLoadSetupDetailsResponse } from '../pages/Dividend/store/__mock__/LoadSetupDetailsResponse.mock';\r\nimport { RegisterDocumentsAndFormsModuleMocks } from '../pages/DocumentsAndForms/__mock__';\r\nimport {\r\n mockCheckUserEmailMismatch,\r\n mockGetUserEmailAddresses,\r\n mockSaveEmailAddress,\r\n} from '../pages/EmailAddressMismatch/__mock__/emailAddressMismatch.mock';\r\nimport {\r\n mockCancelPendingSale,\r\n mockGetPendingSale,\r\n mockGetPendingSales,\r\n} from '../pages/PendingSales/__mock__/pendingSales.mock';\r\nimport { mockPlansInfoResponse } from '../pages/SecurityOverview/components/TransactionHistory/__mock__/transactionHistoryPlanSharesInfoResponse.mock';\r\nimport { RegisterBuySharesModuleMocks } from '../pages/Shares/Buy/__mock__';\r\nimport { RegisterSellSharesModuleMocks } from '../pages/Shares/Sell/__mock__';\r\nimport { mockRecoverAccount } from '../pages/SignOn/RecoverAccount/__mock__/recoverAccount.mock';\r\nimport { mockResetPassword } from '../pages/SignOn/ResetPassword/__mock__/resetPassword.mock';\r\nimport { mockResetSecurityQuestion } from '../pages/SignOn/ResetSecurityQuestion/__mock__/resetSecurityQuestion.mock';\r\nimport { mockUnlockAccount } from '../pages/SignOn/UnlockAccount/__mock__/unlockAccount.mock';\r\nimport { mockSecurityQuestions } from '../pages/SignUp/__mock__/securityQuestions.mock';\r\nimport { mockAll as mockSignUpProcess } from '../pages/SignUp/__mock__/signup.mock';\r\nimport {\r\n mockCheckUserAgreements,\r\n mockNewAgreements,\r\n mockUpdateUserAgreements,\r\n} from '../pages/TermsAndConditions/__mock__/termsAndConditions.mock';\r\nimport { mockRoutesApi } from '../routing/__mock__/api.mock';\r\nimport { RegisterCommonDataStructureMocks } from '../shared/DataStructures/__mock__';\r\nimport { mockAlertResponse } from '../shared/UnreadAlerts/__mock__/unreadAlertsResponse.mock';\r\nimport { mockUnreadMessageResponse } from '../shared/UnreadMessages/__mock__/unreadMessagesResponse.mock';\r\nimport { mockCreateProfile } from '../pages/Wfsso/__mock__/wfsso.mock';\r\nimport {\r\n mockEsppCompanies,\r\n mockEsppCompanyDetails,\r\n mockEsppAuthentication,\r\n mockEsppGetPlan,\r\n mockEsppValidate,\r\n mockEsppDeductions,\r\n mockEsppDeductionsStop,\r\n mockEsppDeductionsUpdate,\r\n mockEsppDeductionsSetup,\r\n} from '../pages/Espp/__mocks__';\r\nimport {\r\n mockBrokerInstructions,\r\n mockBrokerInstructionsRemove,\r\n mockBrokerInstructionsTransfer,\r\n mockBrokerInstructionsDetails,\r\n} from '../pages/BrokerInstructions/__mock__/brokerInstructions.mock';\r\nimport {\r\n mockDeleteSeasonalAddressResponse,\r\n mockConfirmPrimaryAddressResponse,\r\n} from '../pages/AccountSettings/Address/store/__mock__/address.mock';\r\nimport { mockBankInfoResponse } from '../shared/BankInfo/BankInfoMocks';\r\n\r\nconst mock = new MockAdapter(axios, { delayResponse: 500 });\r\n\r\n// Mock common data structures\r\nRegisterCommonDataStructureMocks(mock);\r\n\r\nmockPlansInfoResponse(mock);\r\nmockUnreadMessageResponse(mock);\r\nmockAlertResponse(mock);\r\nmockSignUpProcess(mock);\r\nmockSecurityQuestions(mock);\r\n// mockDividendSecondaryAddressExistsResponse(mock);\r\n// mockDividendSecondaryAddressAddResponse(mock);\r\n// mockDividendSecondaryAddressRemoveResponse(mock);\r\nmockLoadSetupDetailsResponse(mock);\r\nmockMessagesApi(mock);\r\nmockAlertsResponse(mock);\r\nmockResetSecurityQuestion(mock);\r\nmockUnlockAccount(mock);\r\nmockTaxCertificationData(mock);\r\nmockCitizenshipCountriesData(mock);\r\nmockValidateBatchedCertifyTaxId(mock);\r\nmockSaveTaxCertificationData(mock);\r\nmockResetPassword(mock);\r\nmockRecoverAccount(mock);\r\nmockRoutesApi(mock);\r\nmockAccountProfileUpdate(mock);\r\n\r\nRegisterBuySharesModuleMocks(mock);\r\nRegisterSellSharesModuleMocks(mock);\r\nRegisterDocumentsAndFormsModuleMocks(mock);\r\nmockBankInfoResponse(mock);\r\nmockGetPendingSales(mock);\r\nmockGetPendingSale(mock);\r\nmockCancelPendingSale(mock);\r\nmockEsppCompanies(mock);\r\nmockEsppCompanyDetails(mock);\r\nmockEsppAuthentication(mock);\r\nmockEsppGetPlan(mock);\r\nmockEsppValidate(mock);\r\nmockEsppDeductions(mock);\r\nmockEsppDeductionsSetup(mock);\r\nmockEsppDeductionsUpdate(mock);\r\nmockEsppDeductionsStop(mock);\r\nmockCheckUserAgreements(mock);\r\nmockNewAgreements(mock);\r\nmockUpdateUserAgreements(mock);\r\nmockCheckUserEmailMismatch(mock);\r\nmockGetUserEmailAddresses(mock);\r\nmockSaveEmailAddress(mock);\r\nmockCreateProfile(mock);\r\nmockBrokerInstructions(mock);\r\nmockBrokerInstructionsDetails(mock);\r\nmockBrokerInstructionsTransfer(mock);\r\nmockBrokerInstructionsRemove(mock);\r\n\r\nmockDeleteSeasonalAddressResponse(mock);\r\nmockConfirmPrimaryAddressResponse(mock);\r\n\r\nmock.onAny().passThrough();\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { mockBankAccountResponse } from '../BankAccount/BankAccount.mock';\r\n\r\nexport function RegisterCommonDataStructureMocks(adapter: MockAdapter) {\r\n mockBankAccountResponse(adapter);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport function mockResetSecurityQuestion(mock: MockAdapter) {\r\n mock.onPost(APP_CONFIG.api.signOn.securityQuestion.validate).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true }]), 250);\r\n }),\r\n );\r\n\r\n mock.onPost(APP_CONFIG.api.signOn.securityQuestion.reset).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true }]), 250);\r\n }),\r\n );\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport function mockUnlockAccount(mock: MockAdapter) {\r\n mock.onPost(APP_CONFIG.api.signOn.unlockAccount).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true }]), 500);\r\n }),\r\n );\r\n}\r\n","import { APP_CONFIG } from '../../../../config';\r\nimport MockAdapter from 'axios-mock-adapter/types';\r\nimport { countries } from '../../Address/store/__mock__/address.commons.mock';\r\nimport { TAX_CERTIFICATION_DATA_MOCK } from './taxCertificationData.commons.mock';\r\n\r\nexport function mockTaxCertificationData(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.taxCertification.load).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true, data: TAX_CERTIFICATION_DATA_MOCK }]), 100);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockCitizenshipCountriesData(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.taxCertification.countries).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true, data: countries }]), 100);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockValidateBatchedCertifyTaxId(mock: MockAdapter) {\r\n const accountNumber = TAX_CERTIFICATION_DATA_MOCK.accounts[0].number;\r\n const url = APP_CONFIG.api.taxCertification\r\n .validatetaxcertification(accountNumber)\r\n .split(accountNumber.toString())[0];\r\n return mock.onPost(new RegExp(`${url}/*`)).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true, data: true }]), 100);\r\n }),\r\n );\r\n}\r\n\r\nexport function mockSaveTaxCertificationData(mock: MockAdapter) {\r\n const accountNumber = TAX_CERTIFICATION_DATA_MOCK.accounts[0].number;\r\n const url = APP_CONFIG.api.taxCertification\r\n .save(accountNumber)\r\n .split(accountNumber.toString())[0];\r\n return mock.onPost(new RegExp(`${url}/*`)).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n setTimeout(() => resolve([200, { success: true, data: true }]), 100);\r\n }),\r\n );\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport function mockResetPassword(mock: MockAdapter) {\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.validate.account)\r\n .reply(async () => [200, { success: true, data: 'What was your first occupation?' }]);\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.validate.employee)\r\n .reply(async () => [200, { success: true, data: 'What was your first occupation?' }]);\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.validate.authId)\r\n .reply(async () => [200, { success: true, data: 'What was your first occupation?' }]);\r\n\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.answer.account)\r\n .reply(async () => [200, { success: true }]);\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.answer.employee)\r\n .reply(async () => [200, { success: true }]);\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.answer.authId)\r\n .reply(async () => [200, { success: true }]);\r\n\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.password.account)\r\n .reply(async () => [200, { success: true }]);\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.password.employee)\r\n .reply(async () => [200, { success: true }]);\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.passwordReset.password.authId)\r\n .reply(async () => [200, { success: true }]);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../../config';\r\n\r\nexport function mockRecoverAccount(mock: MockAdapter) {\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.recoverAccount.email)\r\n .reply(async () => [200, { success: true, data: 'aleksandr.smailov@equiniti.com' }]);\r\n\r\n mock\r\n .onGet(APP_CONFIG.api.signOn.recoverAccount.validateToken, {\r\n params: { token: 'as7sd4f65qw15qwd87984as1c2' },\r\n })\r\n .reply(async () => [200, { success: true }]);\r\n\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.recoverAccount.username)\r\n .reply(async () => [200, { success: true, data: 'asd789' }]);\r\n\r\n mock\r\n .onPost(APP_CONFIG.api.signOn.recoverAccount.credentials)\r\n .reply(async () => [200, { success: true }]);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { mockCompanyListResponse } from './companyList.mock';\r\nimport { mockCompanyPlanResponse } from './companyPlan.mock';\r\nimport { mockCompanyPlanBrochureResponse } from './companyPlanBrochure.mock';\r\nimport { mockInvestmentDetailsResponse } from './investmentPreferencesResponse.mock';\r\nimport { mockAccountsResponse } from './accountsResponse.mock';\r\nimport { mockCompanyDeliveryOptionsResponse } from './companyDeliveryOptions.mock';\r\nimport { mockAccountDeliveryOptionsResponse } from './accountDeliveryOptions.mock';\r\nimport {\r\n mockAutomaticInvestmentResponse,\r\n mockAutomaticInvestmetBatchResponse,\r\n} from './automaticInvestmentResponse.mock';\r\nimport { mockAccountSSNConfirmResponse } from './accountSSNConfirm.mock';\r\nimport { mockAccountTaxIdConfirmResponse } from './accountTaxIdConfirm.mock';\r\nimport { mockRegistrationTypesResponse } from './registrationTypes.mock';\r\n\r\nexport function RegisterBuySharesModuleMocks(mock: MockAdapter) {\r\n mockCompanyListResponse(mock);\r\n mockInvestmentDetailsResponse(mock);\r\n mockAccountsResponse(mock);\r\n mockCompanyDeliveryOptionsResponse(mock);\r\n mockAccountDeliveryOptionsResponse(mock);\r\n mockAutomaticInvestmentResponse(mock);\r\n mockCompanyPlanResponse(mock);\r\n mockCompanyPlanBrochureResponse(mock);\r\n mockAccountSSNConfirmResponse(mock);\r\n mockAccountTaxIdConfirmResponse(mock);\r\n mockRegistrationTypesResponse(mock);\r\n mockAutomaticInvestmetBatchResponse(mock);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { mockSellAccountResponse } from './SellAccount.mock';\r\nimport { mockSaleOrderConfigurationResponse } from './SaleOrder.mock';\r\nimport { mockSellSharesResponse } from './SellShares.mock';\r\n\r\nexport function RegisterSellSharesModuleMocks(adapter: MockAdapter) {\r\n mockSellAccountResponse(adapter);\r\n mockSaleOrderConfigurationResponse(adapter);\r\n mockSellSharesResponse(adapter);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { mockAccountForDocumentsResponse } from './AccountsForDocuments.mock';\r\nimport { mockEDeliveryDocumentResponse } from './EDeliveryDocument.mock';\r\nimport { mockTaxFormsResponse } from './TaxForms.mock';\r\n\r\nexport function RegisterDocumentsAndFormsModuleMocks(adapter: MockAdapter) {\r\n mockAccountForDocumentsResponse(adapter);\r\n mockEDeliveryDocumentResponse(adapter);\r\n mockTaxFormsResponse(adapter);\r\n}\r\n","import MockAdapter from 'axios-mock-adapter/types';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nexport function mockEsppCompanies(mock: MockAdapter) {\r\n mock\r\n .onGet(APP_CONFIG.api.espp.companies)\r\n .reply(async () => [200, { success: true, data: companies() }]);\r\n\r\n function companies() {\r\n return Array.from(Array(100).keys()).map((i) => ({\r\n id: i,\r\n name: `Company ${i}`,\r\n tickerValue: `ticker ${i}`,\r\n internetEnabledIndicator: true,\r\n hidePlanForUnAuthenticatedUser: true,\r\n }));\r\n }\r\n}\r\n","import MockAdapter from 'axios-mock-adapter/types';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { EsppCompanyDetails } from '../api/model';\r\n\r\nexport function mockEsppCompanyDetails(mock: MockAdapter) {\r\n companies().forEach((c) => {\r\n mock\r\n .onGet(APP_CONFIG.api.espp.companyDetails(c.id))\r\n .reply(async () => [200, { success: true, data: details() }]);\r\n });\r\n}\r\n\r\nfunction companies() {\r\n return Array.from(Array(100).keys()).map((i) => ({\r\n id: i,\r\n }));\r\n}\r\n\r\nfunction details(): EsppCompanyDetails {\r\n return {\r\n issueId: 1,\r\n companyId: 10,\r\n name: `Company 1`,\r\n tickerValue: `ticker 1`,\r\n allowEnrollment: true,\r\n description:\r\n 'Wells Fargo administers a Share Sale Program offered by the issuer of your securities for shareholders who would like to enroll in the Program and' +\r\n 'sell all or a portion of their book-entry shares. The following letter provides detailed information for the Share Sale Program. For further information, ' +\r\n 'please contact Shareowner Services by selecting contact us or help above.',\r\n };\r\n}\r\n","import MockAdapter from 'axios-mock-adapter/types';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { EsppCompanyAuthentication } from '../api/model';\r\n\r\nexport function mockEsppAuthentication(mock: MockAdapter) {\r\n companies().forEach((c, i) => {\r\n mock\r\n .onGet(APP_CONFIG.api.espp.companyAuthentication(i))\r\n .reply(async () => [200, { success: true, data: createAuthenticationDetails(c.name, i) }]);\r\n });\r\n\r\n function createAuthenticationDetails(company: string, i: number): EsppCompanyAuthentication {\r\n if (i % 4 === 0) {\r\n return { type: 'both', name: company };\r\n } else if (i % 4 === 1) {\r\n return { type: 'employeeNumber', name: company };\r\n } else if (i % 4 === 2) {\r\n return { type: 'taxIdNumber', name: company };\r\n } else {\r\n return { type: 'either', name: company };\r\n }\r\n }\r\n\r\n function companies() {\r\n return Array.from(Array(100).keys()).map((i) => ({\r\n name: `Company ${i}`,\r\n }));\r\n }\r\n}\r\n\r\nexport function mockEsppValidate(mock: MockAdapter) {\r\n mock.onPost(APP_CONFIG.api.espp.validations).reply(200, { success: true, data: {} });\r\n}\r\n\r\nexport function mockEsppValidate2(mock: MockAdapter) {\r\n mock.onPost(APP_CONFIG.api.espp.newValidations.secure).reply(200, { success: true, data: {} });\r\n}\r\n\r\nexport function mockEsppValidate3(mock: MockAdapter) {\r\n mock.onPost(APP_CONFIG.api.espp.newValidations.mfa).reply(200, { success: true, data: {} });\r\n}\r\n","import MockAdapter from 'axios-mock-adapter/types';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { EsppPlan } from '../api/model';\r\n\r\nexport function mockEsppGetPlan(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.espp.getPlan(1, '2', '3').split('1')[0];\r\n mock.onGet(new RegExp(`${url}/*`)).reply(200, { success: true, data: data() });\r\n\r\n function data(): EsppPlan {\r\n return {\r\n employeeNumber: '100',\r\n employeeName: 'Employee A',\r\n companyName: 'Company A',\r\n accountType: 'single',\r\n deductionAmount: 10,\r\n deductionCycle: 'Monthly',\r\n deductionType: 'percentage',\r\n isEnrolled: false,\r\n canEditDeduction: true,\r\n investmentMaterials: [\r\n {\r\n fileId: '123',\r\n fileName: 'Account autherization form',\r\n },\r\n {\r\n fileId: '1234',\r\n fileName: 'Quick Guide',\r\n },\r\n {\r\n fileId: '12345',\r\n fileName: 'File name 13',\r\n },\r\n {\r\n fileId: '12346',\r\n fileName: 'File name 12',\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import MockAdapter from 'axios-mock-adapter/types';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { EsppDeductionDetails } from '../api/model';\r\n\r\nexport function mockEsppDeductionsSetup(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.espp.getDeductions();\r\n mock.onPost(new RegExp(`${url}/*`)).reply(200, { success: true, data: true });\r\n}\r\n\r\nexport function mockEsppDeductionsUpdate(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.espp.getDeductions();\r\n mock.onPut(new RegExp(`${url}/*`)).reply(200, { success: true, data: true });\r\n}\r\n\r\nexport function mockEsppDeductionsStop(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.espp.getDeductions();\r\n mock.onDelete(new RegExp(`${url}/*`)).reply(200, { success: true, data: true });\r\n}\r\n\r\nexport function mockEsppDeductions(mock: MockAdapter) {\r\n const url = APP_CONFIG.api.espp.deductions(1, '2', '3').split('?')[0];\r\n mock.onGet(new RegExp(`${url}/*`)).reply(200, { success: true, data: deduction() });\r\n\r\n function deduction(): EsppDeductionDetails {\r\n return {\r\n employeeName: 'Test Owner',\r\n employeeNumber: '123141501',\r\n companyName: 'Test Company',\r\n accountType: 'joint',\r\n canSelectContributionType: true,\r\n contributionType: 'contribution1',\r\n contribution1Name: 'Payroll',\r\n contribution2Name: 'Lump Sum',\r\n contribution1DeductionCycles: ['Monthly', 'Weekly'],\r\n contribution2DeductionCycles: ['Monthly', 'Weekly'],\r\n contribution1: {\r\n name: 'Payroll',\r\n amount: 100,\r\n deductionCycle: 'Monthly',\r\n deductionType: 'amount',\r\n },\r\n contribution2: {\r\n name: 'Lump Sum',\r\n amount: 100,\r\n deductionCycle: 'Monthly',\r\n deductionType: 'amount',\r\n },\r\n constraints: {\r\n allowedContributionType: 'both',\r\n jointAccountAllowed: true,\r\n contribution1: {\r\n canEdit: true,\r\n canSetupContribution: true,\r\n maxAmount: 100,\r\n minAmount: 2,\r\n minAmountPercentage: 2,\r\n maxAmountPercentage: 100,\r\n allowedDeductionType: 'both',\r\n },\r\n contribution2: {\r\n canEdit: true,\r\n canSetupContribution: true,\r\n maxAmount: 100,\r\n minAmount: 2,\r\n minAmountPercentage: 2,\r\n maxAmountPercentage: 100,\r\n allowedDeductionType: 'both',\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nexport function mockCreateProfile(mock: MockAdapter) {\r\n mock.onPost(APP_CONFIG.api.signUp.byWfSso()).reply(\r\n () =>\r\n new Promise(function(resolve) {\r\n resolve([200, { success: true }]);\r\n }),\r\n );\r\n}\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { FormGroup } from '../FormGroup';\r\nimport { Label } from '../Label';\r\nimport { FormikProps } from 'formik';\r\nimport { ValidationError } from '../Validation/ValidationError';\r\nimport { LabelIconWithTooltip } from '../LabelIconWithTooltip';\r\n\r\ninterface OwnProps {\r\n id?: string; // We need id for LABEL tag, for proper usage aria-labelledby attr.\r\n label: string | JSX.Element;\r\n required?: boolean;\r\n formProps?: FormikProps;\r\n fieldKey?: string;\r\n noValidation?: boolean;\r\n tooltipHeader?: string;\r\n tooltipContent?: string;\r\n}\r\nexport function FormGroupWrapper({\r\n id,\r\n label,\r\n formProps,\r\n noValidation,\r\n fieldKey,\r\n required,\r\n tooltipHeader,\r\n tooltipContent,\r\n children,\r\n}: React.PropsWithChildren>) {\r\n const useTooltip = !!tooltipHeader && !!tooltipContent;\r\n return (\r\n \r\n \r\n\r\n {children}\r\n {!noValidation && !!formProps && !!fieldKey && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nconst StyledFormGroup = styled(FormGroup)`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n","import { RootState } from '../../../store/rootModel';\r\n\r\nexport function getPersistedFormValues(state: RootState, key: string) {\r\n return state.formPersist.forms[key] as T;\r\n}\r\n","import { createAction } from '../../../store/reduxBoilerplate';\r\nimport { FormattedMessageData } from './alertAndMessage.model';\r\n\r\nexport const OPEN_MESSAGE = '[AlertsAndMessages] OPEN_MESSAGE';\r\nexport const OPEN_REPLY = '[AlertsAndMessages] OPEN_REPLY';\r\nexport const OPEN_MESSAGES = '[AlertsAndMessages] OPEN_MESSAGES';\r\nexport const GO_BACK = '[AlertsAndMessages] GO_BACK';\r\nexport const OPEN_ALERTS = '[AlertsAndMessages] OPEN_ALERTS';\r\nexport const OPEN_NEW_MESSAGE = '[AlertsAndMessages] OPEN_NEW_MESSAGE';\r\nexport const OPEN_ALERTS_AND_MESSAGES = '[AlertsAndMessages] OPEN_ALERTS_AND_MESSAGES';\r\n\r\nexport const alertAndMessageActions = {\r\n openMessage: (message: FormattedMessageData) => createAction(OPEN_MESSAGE, message),\r\n openReply: (messageId: number) => createAction(OPEN_REPLY, messageId),\r\n openMessages: () => createAction(OPEN_MESSAGES),\r\n goBack: () => createAction(GO_BACK),\r\n openAlerts: () => createAction(OPEN_ALERTS),\r\n openNewMessage: () => createAction(OPEN_NEW_MESSAGE),\r\n openAlertsAndMessages: () => createAction(OPEN_ALERTS_AND_MESSAGES),\r\n};\r\n\r\nexport type GetAlertAndMessageActions = ReturnType<\r\n typeof alertAndMessageActions[T]\r\n>;\r\n","import { DEFAULT_BRANDING, Branding } from './branding';\r\n\r\nexport const THEME_CONSTANTS = {\r\n MEDIA: {\r\n DESKTOP: 1200,\r\n TABLET: 768,\r\n MOBILE: 375,\r\n },\r\n};\r\n\r\nexport const THEME_CONFIG = {\r\n fontWeight: {\r\n extraLight: '100',\r\n light: '300',\r\n normal: '400',\r\n semiBold: '500',\r\n bold: '600',\r\n },\r\n button: {\r\n height: 38,\r\n borderRadius: 5,\r\n },\r\n checkbox: {\r\n height: 28,\r\n },\r\n radio: {\r\n height: 30,\r\n },\r\n input: {\r\n focusColor: '#7FB6C6',\r\n },\r\n components: {\r\n filterContainer: {\r\n borderColor: '#E0E0E0',\r\n borderRadius: 5,\r\n labelColor: '#343434',\r\n labelFontWeight: 400,\r\n clearFiltersBackgroundColor: '#F5F5F5', // very close to theme.colors.disabledBackground\r\n },\r\n filter: {\r\n borderColor: '#E0E0E0',\r\n borderRadius: 5,\r\n labelColor: '#343434',\r\n labelFontSize: 12,\r\n labelFontWeight: 300,\r\n valueFontSize: 18,\r\n },\r\n settings: {\r\n rowBorderColor: '#dedede', // TODO when new design for Settings on Accordion arrived, reuse color from branding.tsx\r\n },\r\n },\r\n media: {\r\n desktop: {\r\n andUp: `@media (min-width: ${THEME_CONSTANTS.MEDIA.DESKTOP}px)`,\r\n },\r\n tablet: {\r\n andUp: `@media (min-width: ${THEME_CONSTANTS.MEDIA.TABLET}px)`,\r\n andDown: `@media (max-width: ${THEME_CONSTANTS.MEDIA.DESKTOP - 1}px)`,\r\n only: `@media (min-width: ${THEME_CONSTANTS.MEDIA.TABLET}px) and (max-width: ${THEME_CONSTANTS\r\n .MEDIA.DESKTOP - 1}px)`,\r\n },\r\n mobile: {\r\n andDown: `@media (max-width: ${THEME_CONSTANTS.MEDIA.TABLET - 1}px)`,\r\n },\r\n },\r\n print: {\r\n // It's important to realize here, that if you have nested CSS classes, and then u use this snippet,\r\n // it will wrap with \"@media print {}\" the hole bloack starting from main class.\r\n // That is not intiitive behavior, but looks like\r\n // as side effect of using Styled Components and string literal as place with overrides.\r\n // So use these snippets only in one place, and don't combine with other parent \"@media print {}\"\r\n hide: `@media print { display: none; }`,\r\n noBorders: `@media print { border: none; }`,\r\n },\r\n};\r\n\r\n// TODO: rename to DEFAULT_THEME because it is static and does not get dynamic umbraco styles\r\nexport const THEME = getTheme();\r\n\r\nexport type ThemeType = typeof THEME;\r\n\r\nexport function getTheme(branding: Branding = DEFAULT_BRANDING) {\r\n return {\r\n ...THEME_CONFIG,\r\n ...branding,\r\n };\r\n}\r\n","import { Country } from '../Country';\r\n\r\nexport interface BankAccount {\r\n bankName: string;\r\n routingNumber: string;\r\n bankAccountNumber: string;\r\n bankAccountType: BankAccountType;\r\n currency: string | null;\r\n destinationCountry: Country;\r\n bankCity: string | null;\r\n userRegionCode: string;\r\n paymentMethodType: PaymentMethodType | '';\r\n usBeneficiaryABARoutingNumber: string | null;\r\n usBeneficiaryBankCity: string | null;\r\n beneficiaryBankAccountNumber: string | null;\r\n beneficiaryABARoutingNumber: string | null;\r\n beneficiaryBankAccountName: string | null;\r\n beneficiaryInstructions: string | null;\r\n beneficiaryBankSwiftCode: string | null;\r\n bankAccountHoldersCity: string | null;\r\n bankAccountHoldersCountry: Country | null;\r\n internationalRoutingCode: string | null;\r\n}\r\n\r\nexport enum BankAccountType {\r\n None = '',\r\n Checking = 'Checking',\r\n Savings = 'Savings',\r\n}\r\n\r\nexport enum PaymentMethodType {\r\n US = 'D',\r\n WireTransferUS = 'U',\r\n International = 'I',\r\n}\r\n","import { object, string } from 'yup';\r\nimport { CmsLabelFnType } from '../../../../../containers/CmsData/store/cmsData.model';\r\nimport { isTrue } from '../../../../../lib/Form/Validation/validation.utils';\r\nimport { DividendDripDetails, DividendStep } from '../../../store/dividend.model';\r\nimport { getField } from '../../../store/dividend.utils';\r\nimport { DividendDetailsEditType, DividendDetailsFormValues } from '../DividendDetailsForm';\r\nimport { getDividendDetailsFormFields } from './dividendDetailsForm.builder';\r\nimport { DIVIDEND_DETAILS_FORM_KEYS as FORM_KEYS } from './dividendDetailsForm.constants';\r\n\r\nexport function getDividendDetailsFormValidationSchema(cmsLabel: CmsLabelFnType) {\r\n return object().shape({\r\n [FORM_KEYS.editType]: string().required(cmsLabel('dividends.e1055PlanChoiceNotSelected')),\r\n [FORM_KEYS.enrolInPlan]: string().required(\r\n cmsLabel('dividends.e1056EnrolInPlanChoiceNotSelected'),\r\n ),\r\n [FORM_KEYS.changePaymentType]: string().required(\r\n cmsLabel('dividends.e1057ChangePaymentMethodOptionNotSelected'),\r\n ),\r\n });\r\n}\r\n\r\nexport function getDividendDetailsNextStep(\r\n dripDetails: DividendDripDetails,\r\n values: DividendDetailsFormValues,\r\n): {\r\n firstStep: DividendStep | null;\r\n secondStep: DividendStep | null;\r\n} {\r\n const fields = getDividendDetailsFormFields(dripDetails, (key) => key);\r\n\r\n if (getField(fields, FORM_KEYS.editType).show!(values)) {\r\n if (values.editType === DividendDetailsEditType.Plan) {\r\n return { firstStep: DividendStep.Plan, secondStep: null };\r\n }\r\n\r\n if (values.editType === DividendDetailsEditType.PaymentDetails) {\r\n return { firstStep: DividendStep.Payment, secondStep: null };\r\n }\r\n\r\n if (values.editType === DividendDetailsEditType.Both) {\r\n return { firstStep: DividendStep.Plan, secondStep: DividendStep.Payment };\r\n }\r\n }\r\n\r\n if (getField(fields, FORM_KEYS.enrolInPlan).show!(values)) {\r\n if (isTrue(values.enrolInPlan)) {\r\n return { firstStep: DividendStep.Plan, secondStep: DividendStep.Payment };\r\n }\r\n\r\n if (isTrue(values.changePaymentType)) {\r\n return { firstStep: DividendStep.Payment, secondStep: null };\r\n }\r\n\r\n return { firstStep: null, secondStep: null };\r\n }\r\n\r\n //From here: DividendsReinvestmentNOTAllowed\r\n const hasReinvestmentOptions =\r\n dripDetails.reinvestmentOptions && dripDetails.reinvestmentOptions.length > 0;\r\n const hasPaymentOptions = dripDetails.checkAllowedSOL || (dripDetails.paymentOptions && dripDetails.paymentOptions.length > 0);\r\n\r\n if (hasReinvestmentOptions && dripDetails.allowDrip) {\r\n if (hasPaymentOptions) {\r\n return { firstStep: DividendStep.Plan, secondStep: DividendStep.Payment };\r\n }\r\n\r\n return { firstStep: DividendStep.Plan, secondStep: null };\r\n }\r\n\r\n if (!hasReinvestmentOptions) {\r\n if (hasPaymentOptions || dripDetails.checkAllowedSOL) {\r\n return { firstStep: DividendStep.Payment, secondStep: null };\r\n }\r\n }\r\n\r\n if (hasPaymentOptions) {\r\n return { firstStep: DividendStep.Payment, secondStep: null };\r\n }\r\n\r\n return { firstStep: null, secondStep: null };\r\n}\r\n","// BTW, there is Spinner from 'reactstrap/lib/Spinner'; So far used in Glossary. TODO research the difference.\r\n// Plus => ../SimpleSpinner\r\nimport React from 'react';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\n\r\nexport type SpinnerSize = 'sm' | 'md' | 'lg';\r\n\r\ninterface OwnProps {\r\n size: SpinnerSize;\r\n noVerticalMargin?: boolean;\r\n withOverlay?: boolean;\r\n}\r\n\r\nexport function Spinner(props: OwnProps) {\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\n\r\ninterface LoaderProps extends Theme {\r\n small?: boolean;\r\n size: SpinnerSize;\r\n noVerticalMargin?: boolean;\r\n}\r\n\r\nconst SIZE = {\r\n sm: '.7',\r\n md: '1',\r\n lg: '1.4',\r\n};\r\n\r\nconst Container = styled.div`\r\n transform: scale(${(p: LoaderProps) => SIZE[p.size]});\r\n position: relative;\r\n margin: ${(p) => (p.noVerticalMargin ? '0' : '40px')} auto 0;\r\n width: 96px;\r\n height: 96px;\r\n\r\n &.overlay {\r\n left: 0;\r\n position: fixed;\r\n top: 0;\r\n height: 100%;\r\n margin: 0;\r\n width: 100%;\r\n background: rgba(255, 255, 255, 0.2);\r\n z-index: 10000;\r\n\r\n & > div {\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n margin: auto;\r\n }\r\n }\r\n`;\r\n\r\nconst Loader = styled.div`\r\n display: inline-block;\r\n position: absolute;\r\n width: 96px;\r\n height: 96px;\r\n z-index: 10000;\r\n\r\n div {\r\n box-sizing: border-box;\r\n display: block;\r\n position: absolute;\r\n width: ${(p: LoaderProps) => (p.small ? '50px' : '90px')};\r\n height: ${(p: LoaderProps) => (p.small ? '50px' : '90px')};\r\n margin: ${(p: LoaderProps) => (p.small ? '26px' : '6px')};\r\n border: 3px solid\r\n ${(p: LoaderProps) => (p.small ? p.theme.colors.primary3 : p.theme.colors.primary1)};\r\n border-radius: 50%;\r\n animation: ${(p: LoaderProps) => (p.small ? 'back 1.2s' : 'forward 1.4s')}\r\n cubic-bezier(0.5, 0, 0.5, 1) infinite;\r\n border-color: ${(p: LoaderProps) =>\r\n p.small ? p.theme.colors.primary3 : p.theme.colors.primary1}\r\n transparent transparent transparent;\r\n }\r\n div:nth-child(1) {\r\n animation-delay: -0.3s;\r\n }\r\n div:nth-child(2) {\r\n animation-delay: -0.2s;\r\n }\r\n div:nth-child(3) {\r\n animation-delay: -0.1s;\r\n }\r\n @keyframes forward {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n @keyframes back {\r\n 0% {\r\n transform: rotate(360deg);\r\n }\r\n 100% {\r\n transform: rotate(0deg);\r\n }\r\n }\r\n`;\r\n","export { CmsDataProvider } from './CmsDataProvider';\r\nexport { useCmsData, useCmsDataLoader } from './store/cmsData.hooks';\r\nexport * from './store/cmsData.model';\r\nexport * from './CmsModels';\r\n","import { Country } from './../../../../shared/DataStructures/Country/Country.model';\r\nimport { ModalProps } from './../../../../lib/Modal/store/model';\r\nimport { ApiValidationError } from '../../../../lib/Form/Validation/validation.model';\r\nimport { ConfirmModalProps } from '../../../../lib/Modal/Templates/Modal.Confirm';\r\nimport { createAction } from '../../../../store/reduxBoilerplate';\r\nimport { AddressFormEnum } from './address.enums';\r\nimport {\r\n AddressData,\r\n AddressDataRequest,\r\n AddressFormat,\r\n AddressFormatLoad,\r\n AddressLines,\r\n AddressStateOrProvince,\r\n LoadAddressDataResponse,\r\n SecondaryAddressResponse,\r\n} from './address.model';\r\n\r\nexport enum AddressActionTypes {\r\n LOAD = '[Address] LOAD',\r\n LOAD_DONE = '[Address] LOAD_DONE',\r\n LOAD_FAIL = '[Address] LOAD_FAIL',\r\n\r\n LOAD_PREVIEW = '[Address] LOAD_PREVIEW',\r\n LOAD_PREVIEW_DONE = '[Address] LOAD_PREVIEW_DONE',\r\n LOAD_PREVIEW_FAIL = '[Address] LOAD_PREVIEW_FAIL',\r\n\r\n UPDATE_FORM = '[Address] UPDATE_FORM',\r\n UPDATE_FORM_DONE = '[Address] UPDATE_FORM_DONE',\r\n UPDATE_FORM_FAIL = '[Address] UPDATE_FORM_FAIL',\r\n\r\n DELETE = '[Address] DELETE',\r\n DELETE_DONE = '[Address] DELETE_DONE',\r\n DELETE_FAIL = '[Address] DELETE_FAIL',\r\n\r\n LOAD_COUNTRIES = '[Address] LOAD_COUNTRIES',\r\n LOAD_COUNTRIES_DONE = '[Address] LOAD_COUNTRIES_DONE',\r\n LOAD_COUNTRIES_FAIL = '[Address] LOAD_COUNTRIES_FAIL',\r\n\r\n LOAD_PROVINCES = '[Address] LOAD_PROVINCES',\r\n LOAD_PROVINCES_DONE = '[Address] LOAD_PROVINCES_DONE',\r\n LOAD_PROVINCES_FAIL = '[Address] LOAD_PROVINCES_FAIL',\r\n\r\n LOAD_US_STATES = '[Address] LOAD_US_STATES',\r\n LOAD_US_STATES_DONE = '[Address] LOAD_US_STATES_DONE',\r\n LOAD_US_STATES_FAIL = '[Address] LOAD_US_STATES_FAIL',\r\n\r\n LOAD_ADDRESS_FORMATS = '[Address] LOAD_ADDRESS_FORMATS',\r\n LOAD_ADDRESS_FORMATS_DONE = '[Address] LOAD_ADDRESS_FORMATS_DONE',\r\n LOAD_ADDRESS_FORMATS_FAIL = '[Address] LOAD_ADDRESS_FORMATS_FAIL',\r\n\r\n SET_EDIT_MODE = '[Address] SET_EDIT_MODE',\r\n UNSET_EDIT_MODE = '[Address] UNSET_EDIT_MODE',\r\n\r\n SET_PREVIEW_MODE = '[Address] SET_PREVIEW_MODE',\r\n UNSET_PREVIEW_MODE = '[Address] UNSET_PREVIEW_MODE',\r\n\r\n SET_DELETE_MODE = '[Address] SET_DELETE_MODE',\r\n UNSET_DELETE_MODE = '[Address] UNSET_DELETE_MODE',\r\n\r\n CHECK_AND_DELETE_SEASONAL_ADDRESS_BATCH = '[Address] CHECK_AND_DELETE_SEASONAL_ADDRESS_BATCH',\r\n CHECK_AND_EDIT_ADDRESS_BATCH = '[Address] CHECK_AND_EDIT_ADDRESS_BATCH',\r\n\r\n CHECK_PRIMARY_ADDRESS_BATCH_DONE = '[Address] CHECK_PRIMARY_ADDRESS_BATCH_DONE',\r\n CHECK_SEASONAL_ADDRESS_BATCH_DONE = '[Address] CHECK_SEASONAL_ADDRESS_BATCH_DONE',\r\n\r\n CHECK_ADDRESS_BATCH_FAIL = '[Address] CHECK_ADDRESS_BATCH_FAIL',\r\n\r\n CONFIRM_PRIMARY_ADDRESS = '[Address] CONFIRM_PRIMARY_ADDRESS',\r\n CONFIRM_PRIMARY_ADDRESS_DONE = '[Address] CONFIRM_PRIMARY_ADDRESS_DONE',\r\n CONFIRM_PRIMARY_ADDRESS_FAIL = '[Address] CONFIRM_PRIMARY_ADDRESS_FAIL',\r\n\r\n UNSET_RECENTLY_CLOSED_FORM = '[Address] UNSET_RECENTLY_CLOSED_FORM',\r\n\r\n LOAD_SECONDARY_ADDRESS = '[Address] LOAD_SECONDARY_ADDRESS',\r\n LOAD_SECONDARY_ADDRESS_DONE = '[Address] LOAD_SECONDARY_ADDRESS_DONE',\r\n LOAD_SECONDARY_ADDRESS_FAIL = '[Address] LOAD_SECONDARY_ADDRESS_FAIL',\r\n}\r\n\r\nconst AT = AddressActionTypes;\r\n\r\nexport const addressActions = {\r\n load: () => createAction(AT.LOAD),\r\n\r\n loadDone: (data: LoadAddressDataResponse) => createAction(AT.LOAD_DONE, { data }),\r\n\r\n loadFail: () => createAction(AT.LOAD_FAIL),\r\n\r\n updateForm: (\r\n accountId: string,\r\n formName: AddressFormEnum,\r\n data: AddressDataRequest,\r\n create: boolean,\r\n ) =>\r\n createAction(AT.UPDATE_FORM, {\r\n accountId,\r\n formName,\r\n data,\r\n create,\r\n }),\r\n\r\n updateFormDone: (\r\n accountId: string,\r\n formName: AddressFormEnum,\r\n data: AddressLines,\r\n inquiryMode?: boolean,\r\n ) => createAction(AT.UPDATE_FORM_DONE, { accountId, formName, data, inquiryMode }),\r\n\r\n updateFormFail: () => createAction(AT.UPDATE_FORM_FAIL),\r\n\r\n delete: (accountId: string, formName: AddressFormEnum) =>\r\n createAction(AT.DELETE, {\r\n accountId,\r\n formName,\r\n }),\r\n\r\n deleteDone: (accountId: string, formName: AddressFormEnum, inquiryMode: boolean) =>\r\n createAction(AT.DELETE_DONE, { accountId, formName, inquiryMode }),\r\n\r\n deleteFail: () => createAction(AT.DELETE_FAIL),\r\n\r\n loadPreview: (id: string, form: AddressFormEnum, requestData: AddressDataRequest) =>\r\n createAction(AT.LOAD_PREVIEW, { id, form, requestData }),\r\n\r\n loadPreviewDone: (data: AddressLines) => createAction(AT.LOAD_PREVIEW_DONE, { data }),\r\n\r\n loadPreviewFail: () => createAction(AT.LOAD_PREVIEW_FAIL),\r\n\r\n loadCountries: () => createAction(AT.LOAD_COUNTRIES),\r\n\r\n loadCountriesDone: (data: Country[]) => createAction(AT.LOAD_COUNTRIES_DONE, { data }),\r\n\r\n loadCountriesFail: () => createAction(AT.LOAD_COUNTRIES_FAIL),\r\n\r\n loadUsStates: () => createAction(AT.LOAD_US_STATES),\r\n\r\n loadUsStatesDone: (data: AddressStateOrProvince[]) =>\r\n createAction(AT.LOAD_US_STATES_DONE, { data }),\r\n\r\n loadUsStatesFail: () => createAction(AT.LOAD_US_STATES_FAIL),\r\n\r\n loadProvinces: () => createAction(AT.LOAD_PROVINCES),\r\n\r\n loadProvincesDone: (data: AddressStateOrProvince[]) =>\r\n createAction(AT.LOAD_PROVINCES_DONE, { data }),\r\n\r\n loadProvincesFail: () => createAction(AT.LOAD_PROVINCES_FAIL),\r\n\r\n loadAddressFormats: (data: AddressFormatLoad) =>\r\n createAction(AT.LOAD_ADDRESS_FORMATS, { ...data }),\r\n\r\n loadAddressFormatsDone: (data: AddressFormat, countryName: string) =>\r\n createAction(AT.LOAD_ADDRESS_FORMATS_DONE, { data, countryName }),\r\n\r\n loadAddressFormatsFail: () => createAction(AT.LOAD_ADDRESS_FORMATS_FAIL),\r\n\r\n setEditMode: (accountId: string, form: AddressFormEnum) =>\r\n createAction(AT.SET_EDIT_MODE, { accountId, form }),\r\n\r\n unsetEditMode: () => createAction(AT.UNSET_EDIT_MODE),\r\n\r\n setPreviewMode: (formName: AddressFormEnum, data: AddressData) =>\r\n createAction(AT.SET_PREVIEW_MODE, { formName, data }),\r\n\r\n unsetPreviewMode: () => createAction(AT.UNSET_PREVIEW_MODE),\r\n\r\n setDeleteMode: (accountId: string, formName: AddressFormEnum) =>\r\n createAction(AT.SET_DELETE_MODE, { accountId, formName }),\r\n\r\n unsetDeleteMode: () => createAction(AT.UNSET_DELETE_MODE),\r\n\r\n checkAndDeleteSeasonalAddress: (\r\n accountId: string,\r\n formName: AddressFormEnum,\r\n modalProps: ConfirmModalProps,\r\n batchPendingModalProps: ConfirmModalProps,\r\n ) =>\r\n createAction(AT.CHECK_AND_DELETE_SEASONAL_ADDRESS_BATCH, {\r\n accountId,\r\n formName,\r\n modalProps,\r\n batchPendingModalProps,\r\n }),\r\n\r\n checkAndEditAddress: (\r\n accountId: string,\r\n formName: AddressFormEnum,\r\n data: AddressData,\r\n modalProps: ConfirmModalProps,\r\n ) => createAction(AT.CHECK_AND_EDIT_ADDRESS_BATCH, { accountId, formName, data, modalProps }),\r\n\r\n checkPrimaryAddressBatchDone: (data: boolean) =>\r\n createAction(AT.CHECK_PRIMARY_ADDRESS_BATCH_DONE, data),\r\n\r\n checkSeasonalAddressBatchDone: (data: boolean) =>\r\n createAction(AT.CHECK_SEASONAL_ADDRESS_BATCH_DONE, data),\r\n\r\n checkAddressBatchFail: () => createAction(AT.CHECK_ADDRESS_BATCH_FAIL),\r\n\r\n confirmPrimaryAddress: (\r\n accountId: string,\r\n inquiryModeModalProps: ModalProps,\r\n confirmFailedModalProps: (errors: ApiValidationError[]) => ModalProps,\r\n ) =>\r\n createAction(AT.CONFIRM_PRIMARY_ADDRESS, {\r\n accountId,\r\n inquiryModeModalProps,\r\n confirmFailedModalProps,\r\n }),\r\n\r\n confirmPrimaryAddressDone: (accountId: string) =>\r\n createAction(AT.CONFIRM_PRIMARY_ADDRESS_DONE, { accountId }),\r\n\r\n confirmPrimaryAddressFail: (errors?: ApiValidationError[]) =>\r\n createAction(AT.CONFIRM_PRIMARY_ADDRESS_FAIL, { errors }),\r\n\r\n unsetRecentlyClosedForm: () => createAction(AT.UNSET_RECENTLY_CLOSED_FORM),\r\n\r\n loadSecondaryAddress: (accountNumber: string, issueNumber: string) =>\r\n createAction(AT.LOAD_SECONDARY_ADDRESS, { accountNumber, issueNumber }),\r\n\r\n loadSecondaryAddressDone: (data: SecondaryAddressResponse) =>\r\n createAction(AT.LOAD_SECONDARY_ADDRESS_DONE, { data }),\r\n\r\n loadSecondaryAddressFail: (errors?: ApiValidationError[]) =>\r\n createAction(AT.LOAD_SECONDARY_ADDRESS_FAIL, { errors }),\r\n};\r\n\r\nexport type GetAddressActions = ReturnType<\r\n typeof addressActions[T]\r\n>;\r\n","import { PaymentMethod } from '../../../store/dividend.model';\r\nimport { FormBoolean } from '../../../../../lib/Form/Validation/validation.model';\r\nimport { BankAccountType, PaymentMethodType } from '../../../../../shared/DataStructures';\r\nimport { WireTransferPayment } from '../../../../../lib/FormPremades/WireTransferPayment';\r\n\r\nexport type DividendPaymentFormValues = {\r\n paymentMethod: PaymentMethod;\r\n paymentMethodType: PaymentMethodType;\r\n createNewAccount: FormBoolean;\r\n bankAccountNumber: string;\r\n wireTransferData: WireTransferPayment;\r\n} & NewDirectDepositUSBankAccount &\r\n NewDirectDepositINTBankAccount &\r\n SecondaryAddressForm;\r\n\r\nexport type SecondaryAddressForm = {\r\n useSecondaryAddress: FormBoolean;\r\n secondaryAddressFormAction: SecondaryAddressFormAction | '';\r\n secondaryAddress: SecondaryAddress;\r\n};\r\n\r\nexport type SecondaryAddress = {\r\n countryCode: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n addressLine3: string;\r\n addressLine4: string;\r\n city: string;\r\n state: string;\r\n zipCode: string;\r\n zipCodeOptional: string;\r\n};\r\n\r\nexport type NewDirectDepositUSBankAccount = {\r\n newDirectDepositUSBankAccountNumber: string;\r\n newDirectDepositUSBankName: string;\r\n newDirectDepositUSRoutingNumber: string;\r\n newDirectDepositUSBankAccountType: BankAccountType;\r\n};\r\n\r\nexport type NewDirectDepositINTBankAccount = {\r\n newDirectDepositINTBankCountry: string;\r\n newDirectDepositINTBankAccountNumber: string;\r\n newDirectDepositINTIBAN: string;\r\n newDirectDepositINTRoutingNumber: string;\r\n newDirectDepositINTSwiftBicCode: string;\r\n newDirectDepositINTBankName: string;\r\n newDirectDepositINTBankCity: string;\r\n};\r\n\r\n// export type NewWireTransferUSBankAccount = {\r\n// newWireTransferUSBankName: string;\r\n// newWireTransferUSBankCity: string;\r\n// newWireTransferUSRoutingNumber: string;\r\n// newWireTransferUSBankAccountNumberForCredit: string;\r\n// newWireTransferUSBankAccountNameForCredit: string;\r\n// newWireTransferUSBankAccountType: BankAccountType;\r\n// newWireTransferUSInstructions: string;\r\n// };\r\n\r\n// export type NewWireTransferINTBankAccount = {\r\n// newWireTransferINTSwiftCode: string;\r\n// newWireTransferINTBankName: string;\r\n// newWireTransferINTBankCity: string;\r\n// newWireTransferINTBankCountry: string;\r\n// newWireTransferINTRoutingNumber: string;\r\n// newWireTransferINTBankAccountNumberForCredit: string;\r\n// newWireTransferINTBankAccountNameForCredit: string;\r\n// newWireTransferINTBankAccountHolderCity: string;\r\n// newWireTransferINTBankAccountHolderCountry: string;\r\n// newWireTransferINTBankCurrency: string;\r\n// newWireTransferINTInstructions: string;\r\n// };\r\n\r\nexport enum SecondaryAddressFormAction {\r\n NoChange = 'No change',\r\n Change = 'Change',\r\n Remove = 'Remove',\r\n}\r\n","import { getYear, isWithinRange, parse as parseDate, setYear } from 'date-fns';\r\nimport { BankAccount } from '../../../../shared/DataStructures/BankAccount';\r\nimport { getIsInstantSale } from '../../Shared/utils';\r\nimport { ShareTransaction } from '../Steps/SaleOrderDetailsStep/SaleOrderDetails.model';\r\nimport {\r\n PaymentMethod,\r\n SellJourney,\r\n SellJourneyMetaData,\r\n SellMethod,\r\n ShareType,\r\n} from './SellSharesTypes';\r\n\r\nexport function getSelectedAccount(data: SellJourney, metaData: SellJourneyMetaData) {\r\n return metaData.accounts.find((a) => a.accountNumber === data.accountNumber);\r\n}\r\n\r\nexport function getSelectedCompany(data: SellJourney, metaData: SellJourneyMetaData) {\r\n const account = getSelectedAccount(data, metaData);\r\n if (!account) {\r\n return undefined;\r\n }\r\n return account.companies.find((c) => c.companyId === data.companyId);\r\n}\r\n\r\nexport function getSelectedSecurityType(data: SellJourney, metaData: SellJourneyMetaData) {\r\n const company = getSelectedCompany(data, metaData);\r\n if (!company) {\r\n return undefined;\r\n }\r\n\r\n return company.shares.find((s) => s.securityType === data.securityType);\r\n}\r\n\r\nexport function getBookLotsFactory(data: SellJourney, metaData: SellJourneyMetaData) {\r\n return (unitPrice?: number): ShareTransaction[] => {\r\n if (\r\n !metaData ||\r\n !metaData.selectedIssue ||\r\n !metaData.sellTypes ||\r\n !metaData.sellTypes.bookLots ||\r\n !unitPrice\r\n ) {\r\n return [];\r\n }\r\n\r\n const drsSaleDollarsLimit = metaData.sellTypes!.drsSalesDollarLimit || 0;\r\n const fractionalSaleAllowed =\r\n metaData.selectedIssue!.drsFractionalSaleAllowed && getIsInstantSale(data.saleType);\r\n const currentPrice = unitPrice || 1;\r\n const maxUnits = +(drsSaleDollarsLimit / currentPrice).toFixed(3);\r\n const mapper = mapBookLot(fractionalSaleAllowed, maxUnits);\r\n\r\n return metaData.sellTypes.bookLots.map(mapper).filter((b) => b.availableForSale > 0);\r\n };\r\n}\r\n\r\nfunction mapBookLot(allowFractional: boolean, maxUnits: number) {\r\n return (bookLot: ShareTransaction) => {\r\n const amount = bookLot.totalShares < maxUnits ? bookLot.totalShares : maxUnits;\r\n\r\n return {\r\n ...bookLot,\r\n availableForSale: allowFractional ? amount : Math.floor(amount), // This defines how value will be shown on table column cell\r\n };\r\n };\r\n}\r\n\r\nexport function getTotalSellAmount(journey: SellJourney) {\r\n const { shareTypesToSell } = journey;\r\n switch (shareTypesToSell) {\r\n case ShareType.DrsShare:\r\n return getDrsSellAmount(journey);\r\n case ShareType.PlanShare:\r\n return journey.planSellAmount;\r\n case ShareType.DrsAndPlanShare:\r\n return journey.planSellAmount + getDrsSellAmount(journey);\r\n case ShareType.None:\r\n default:\r\n return 0;\r\n }\r\n}\r\n\r\nexport function getTotalPaymentAmount(journey: SellJourney, metaData: SellJourneyMetaData) {\r\n const { shareTypesToSell } = journey;\r\n switch (shareTypesToSell) {\r\n case ShareType.DrsShare:\r\n return getDrsSellPrice(journey, metaData);\r\n case ShareType.PlanShare:\r\n return getPlanSellPrice(journey, metaData);\r\n case ShareType.DrsAndPlanShare:\r\n return getPlanSellPrice(journey, metaData) + getDrsSellPrice(journey, metaData);\r\n case ShareType.None:\r\n default:\r\n return 0;\r\n }\r\n}\r\n\r\nfunction getPlanSellPrice(journey: SellJourney, metaData: SellJourneyMetaData) {\r\n const { planSellAmount, planAutoSellPrice, saleType } = journey;\r\n const { sharePrice } = metaData;\r\n if (getIsInstantSale(saleType)) {\r\n return planSellAmount * (sharePrice || 0);\r\n }\r\n\r\n return planSellAmount * (planAutoSellPrice || 0);\r\n}\r\n\r\nfunction getDrsSellPrice(journey: SellJourney, metaData: SellJourneyMetaData) {\r\n const { drsAutoSellPrice, saleType } = journey;\r\n const drsSellAmount = getDrsSellAmount(journey);\r\n const { sharePrice } = metaData;\r\n if (getIsInstantSale(saleType)) {\r\n return drsSellAmount * (sharePrice || 0);\r\n }\r\n\r\n return drsSellAmount * (drsAutoSellPrice || 0);\r\n}\r\n\r\nexport function getDrsSellAmount(journey: SellJourney) {\r\n if (journey.saleMethod === SellMethod.FIFO) return journey.drsSellAmount;\r\n if (!journey.bookLotSaleConfig) return 0;\r\n const values = Object.values(journey.bookLotSaleConfig);\r\n if (!values) return 0;\r\n return values.filter((v) => v.isSelling).reduce((acc, value) => acc + value.amountToSell, 0);\r\n}\r\n\r\nexport function isDirectDeposit(journey: SellJourney) {\r\n if (!journey || !journey.payoutType) return false;\r\n return journey.payoutType === PaymentMethod.DirectDeposit;\r\n}\r\n\r\nexport function getInternationalCurrency(data: SellJourney, metaData: SellJourneyMetaData) {\r\n const {\r\n newBankAccount: { countryCode },\r\n } = data;\r\n\r\n if (!countryCode || !metaData.countries) {\r\n return '';\r\n }\r\n\r\n const country = metaData.countries.find((c) => c.country.code === countryCode);\r\n return (country && country.currency) || '';\r\n}\r\n\r\nexport function getSellAmount(data: SellJourney): string {\r\n if (!data) {\r\n return (0).toFixed(3);\r\n }\r\n switch (data.shareTypesToSell) {\r\n case ShareType.DrsShare:\r\n return getDrsSellAmount(data).toFixed(3);\r\n case ShareType.PlanShare:\r\n return data.planSellAmount.toFixed(3);\r\n case ShareType.DrsAndPlanShare:\r\n return (data.planSellAmount + getDrsSellAmount(data)).toFixed(3);\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nexport function getIsSellingAll(data: SellJourney, metaData: SellJourneyMetaData) {\r\n let maxPlanSharesAmount = null;\r\n let sellAllPlanSharesTerminatesAccount = false;\r\n if (metaData.selectedIssue) {\r\n maxPlanSharesAmount = roundAmount(metaData.selectedIssue.planAvailableForSale);\r\n sellAllPlanSharesTerminatesAccount = metaData.selectedIssue.sellAllPlanSharesTerminatesAccount;\r\n }\r\n\r\n let isOptedToSellAllPlanShares = false;\r\n if (\r\n sellAllPlanSharesTerminatesAccount &&\r\n maxPlanSharesAmount &&\r\n maxPlanSharesAmount === data.planSellAmount\r\n ) {\r\n isOptedToSellAllPlanShares = true;\r\n }\r\n\r\n return isOptedToSellAllPlanShares;\r\n\r\n function roundAmount(amount: number) {\r\n return Math.floor(amount * 1000) / 1000;\r\n }\r\n}\r\n\r\nexport function getSelectedBankAccount(\r\n data: SellJourney,\r\n metaData: SellJourneyMetaData,\r\n): BankAccount | undefined {\r\n if (!data!.existingBankAccountNumber) return;\r\n const accounts = metaData.bankAccounts;\r\n if (!accounts) return;\r\n return accounts.find((a) => a.bankAccountNumber === data!.existingBankAccountNumber);\r\n}\r\n\r\nexport function getAddressLines(data: SellJourney, metaData: SellJourneyMetaData): string[] {\r\n const selectedAccount = getSelectedAccount(data, metaData);\r\n\r\n if (!selectedAccount) {\r\n return [];\r\n }\r\n\r\n const seasonal = selectedAccount.seasonalAddress;\r\n const primary =\r\n (selectedAccount.primaryAddress && selectedAccount.primaryAddress.addressLines) || [];\r\n if (!seasonal || !seasonal.start || !seasonal.end) {\r\n return primary;\r\n }\r\n\r\n const now = parseDate(Date.now());\r\n const seasonStart = parseDate(seasonal.start);\r\n const seasonEnd = parseDate(seasonal.end);\r\n\r\n if (seasonal.isRecurring) {\r\n const currentYear = getYear(now);\r\n setYear(seasonStart, currentYear);\r\n setYear(seasonEnd, currentYear);\r\n }\r\n\r\n if (seasonStart <= seasonEnd && isWithinRange(now, seasonStart, seasonEnd)) {\r\n return seasonal.addressLines as string[];\r\n }\r\n\r\n return primary;\r\n}\r\n","import React from 'react';\r\nimport { Tooltip } from '../Tooltip/Tooltip';\r\nimport { Icon } from '../Icon/Icon';\r\nimport { styled } from '../../style';\r\n\r\nexport interface LabelIconWithTooltipProps {\r\n id: string;\r\n tooltipHeader?: string;\r\n tooltipContent: string;\r\n className?: string;\r\n}\r\n\r\nexport const LabelIconWithTooltip = ({\r\n id,\r\n tooltipHeader,\r\n tooltipContent,\r\n className,\r\n}: LabelIconWithTooltipProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst TooltipIcon = styled(Icon)`\r\n color: ${(p) => p.theme.colors.grey};\r\n font-size: 25px;\r\n margin-left: 8px;\r\n top: 4px;\r\n`;\r\n","import React from 'react';\r\nimport {\r\n Modal as LibModal,\r\n ModalHeader as LibModalHeader,\r\n ModalBody as LibModalBody,\r\n ModalFooter as LibModalFooter,\r\n ModalProps as LibModalProps,\r\n} from 'reactstrap';\r\nimport { OptionalRender } from '../../OptionalRender';\r\nimport { styled, Theme } from '../../../style/theme/themeModule';\r\nimport { Button } from '../../Form';\r\nimport { Typography } from '../../Typography';\r\nimport { ModalProps } from '../store/model';\r\n\r\ntype FooterControlsAlignment = 'left' | 'right';\r\n\r\ninterface OwnState extends LibModalProps {\r\n isOpen: boolean;\r\n}\r\n\r\nexport class Modal extends React.Component {\r\n constructor(props: ModalProps) {\r\n super(props);\r\n this.state = {\r\n isOpen: props.isOpen !== undefined ? props.isOpen : true,\r\n backdrop: props.backdrop,\r\n keyboard: props.keyboard,\r\n };\r\n this.toggle = this.toggle.bind(this);\r\n this.submit = this.submit.bind(this);\r\n }\r\n\r\n private toggle() {\r\n this.setState({\r\n isOpen: !this.state.isOpen,\r\n });\r\n }\r\n\r\n private submit() {\r\n !!this.props.onSubmitClick && this.props.onSubmitClick();\r\n this.toggle();\r\n }\r\n\r\n public render() {\r\n const {\r\n onSubmitClick,\r\n onCloseClick,\r\n size,\r\n titleText,\r\n children,\r\n footerText,\r\n closeText,\r\n submitText,\r\n noFooter,\r\n compact,\r\n width,\r\n } = this.props;\r\n const { isOpen, keyboard, backdrop } = this.state;\r\n const closeBtn = (\r\n \r\n Close\r\n \r\n );\r\n\r\n return (\r\n \r\n {!!titleText && (\r\n \r\n {titleText}\r\n \r\n )}\r\n {children}\r\n \r\n \r\n \r\n
    {footerText}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n footerControlsAlign?: FooterControlsAlignment;\r\n children: any;\r\n compact?: boolean;\r\n}\r\n\r\nexport const ModalContainer = styled(\r\n ({ footerControlsAlign, compact, children, ...rest }: ContainerProps & LibModalProps) => {\r\n return {children};\r\n },\r\n)<{ width?: number | string }>`\r\n &.modal-dialog {\r\n ${(p) => {\r\n if (!!p.width) {\r\n const width = typeof p.width === 'number' ? p.width.toString() + 'px' : p.width;\r\n return 'max-width: ' + width;\r\n }\r\n }};\r\n\r\n ${(p) => p.theme.media.tablet.andDown} {\r\n max-width: ${(p) =>\r\n !!p.width ? (typeof p.width === 'number' ? p.width.toString() + 'px' : p.width) : 650};\r\n }\r\n\r\n ${(p) => p.theme.media.mobile.andDown} {\r\n max-width: unset;\r\n }\r\n }\r\n\r\n .modal-body,\r\n .modal-footer,\r\n .modal-header {\r\n ${(p: ContainerProps) => (p.compact ? 'padding: 0;' : '')}\r\n }\r\n\r\n .modal-body {\r\n button {\r\n ${(p: ContainerProps) => (p.compact ? 'margin: 10px 0;' : '')}\r\n }\r\n }\r\n\r\n .modal-content {\r\n background-color: transparent;\r\n border: none;\r\n border-radius: 0;\r\n box-shadow: none;\r\n }\r\n\r\n background: ${(p: Theme) => p.theme.colors.white};\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n border-bottom-left-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n border-top: 3px solid ${(p: Theme) => p.theme.colors.primary1};\r\n box-shadow: 0 3px 8px 1px rgba(0, 0, 0, 0.5);\r\n\r\n .modal-footer {\r\n ${(p: ContainerProps) =>\r\n p.footerControlsAlign === 'right' &&\r\n `\r\n justify-content: flex-end;\r\n `}\r\n ${(p: ContainerProps) =>\r\n p.footerControlsAlign !== 'right' &&\r\n `\r\n justify-content: space-between;\r\n `}\r\n }\r\n\r\n .modal-footer span {\r\n text-align: left;\r\n }\r\n\r\n .modal-footer-controls {\r\n display: flex;\r\n justify-items: right;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Field } from 'formik';\r\nimport { styled, Theme } from '../../../style/theme/themeModule';\r\nimport { RadioButton, RadioButtonStyle } from './RadioButton';\r\nimport { ChoiceGroupOption } from './RadioGroup';\r\n\r\nexport interface Mobile {\r\n vertical: boolean;\r\n horizontal: boolean;\r\n noMargin?: boolean;\r\n}\r\n\r\ninterface OwnProps extends RadioButtonStyle {\r\n name: Field;\r\n options: ChoiceGroupOption[];\r\n disabled?: boolean;\r\n className?: string;\r\n mobile?: Mobile;\r\n hasFullWidth?: boolean;\r\n onClickHandler?: (option: ChoiceGroupOption) => void;\r\n}\r\n\r\nexport function RadioButtonGroup(props: OwnProps) {\r\n const {\r\n name,\r\n options,\r\n disabled,\r\n className,\r\n mobile,\r\n onClickHandler,\r\n inputStyle,\r\n hasFullWidth,\r\n ...rest // mainly to give ability to pass through props like aria-label or similar native (React.ComponentType).\r\n } = props;\r\n\r\n return (\r\n \r\n {options.map((option) => (\r\n onClickHandler(option) : undefined}\r\n // aria-labelledby={rest['aria-labelledby'] as string} // TODO this doesn't work due to typing.\r\n />\r\n ))}\r\n \r\n );\r\n}\r\n\r\n// TODO - extract generateId() to upper level of \"shared\" code.\r\nfunction generateId(option: any) {\r\n if (option.id) {\r\n return option.id;\r\n }\r\n\r\n let pathArray = window.location.pathname.split('/');\r\n let optionName = option.value\r\n .split(' ')\r\n .join('-')\r\n .toLowerCase();\r\n return `${pathArray[3]}-${pathArray[4]}-${optionName}`;\r\n}\r\n\r\ninterface ContainerProps extends Theme, RadioButtonStyle {\r\n optionsCount: number;\r\n mobile?: Mobile;\r\n hasFullWidth?: boolean;\r\n}\r\n\r\nexport const RadioButtonGroupContainer = styled.div`\r\n display: ${(p) => (p.inputStyle && p.inputStyle === 'circle' ? 'block' : 'flex')};\r\n\r\n > div {\r\n ${(p: ContainerProps) => `flex: ${p.hasFullWidth ? 1 : 0} 1 auto !important;`}\r\n border-radius: 0;\r\n\r\n &:first-child {\r\n ${(p: ContainerProps) =>\r\n `border-top-left-radius: ${p.theme.button.borderRadius}px;\r\n border-bottom-left-radius: ${p.theme.button.borderRadius}px;`}\r\n }\r\n\r\n &:last-child {\r\n ${(p: ContainerProps) =>\r\n `border-top-right-radius: ${p.theme.button.borderRadius}px;\r\n border-bottom-right-radius: ${p.theme.button.borderRadius}px;`}\r\n }\r\n }\r\n\r\n ${(p: ContainerProps) => p.theme.media.mobile.andDown} {\r\n ${(p) =>\r\n p.optionsCount < 3 &&\r\n `\r\n > div {\r\n flex: 1 1 0;\r\n }\r\n `}\r\n\r\n ${(p) =>\r\n (p.optionsCount >= 2 || (p.mobile && p.mobile.vertical)) &&\r\n !(p.mobile && p.mobile.noMargin) &&\r\n `\r\n display: block;\r\n\r\n > div {\r\n margin-top: 8px;\r\n border-radius: ${p.theme.button.borderRadius}px;\r\n }\r\n `}\r\n\r\n ${(p) =>\r\n p.mobile &&\r\n p.mobile.noMargin &&\r\n `\r\n display: block;\r\n > div {\r\n &:first-child {\r\n border-radius: 0;\r\n border-top-left-radius: ${p.theme.button.borderRadius}px;\r\n border-top-right-radius: ${p.theme.button.borderRadius}px;\r\n }\r\n &:last-child {\r\n border-radius: 0;\r\n border-bottom-left-radius: ${p.theme.button.borderRadius}px;\r\n border-bottom-right-radius: ${p.theme.button.borderRadius}px;\r\n }\r\n &:not(:first-child) {\r\n border-top: 0;\r\n }\r\n }\r\n `}\r\n }\r\n`;\r\n","import { navigateWithRefresh } from '../../../../routing/routing.utils';\r\nimport { ROUTES } from '../../../../routing/routes';\r\nimport { History } from 'history';\r\n\r\nexport enum SELL_SHARES_STEPS {\r\n SelectCompany,\r\n BeforeYouBegin,\r\n SelectSaleType,\r\n SaleOrderDetails,\r\n BookLotCustomize,\r\n Payment,\r\n Confirmation,\r\n Summary,\r\n}\r\n\r\nexport const SELL_SHARES_PATHS = {\r\n [SELL_SHARES_STEPS.SelectCompany]: '/:accountNumber?/:issueNumber?',\r\n [SELL_SHARES_STEPS.BeforeYouBegin]: '/beforeyoubegin',\r\n [SELL_SHARES_STEPS.SelectSaleType]: '/selectsaletype',\r\n [SELL_SHARES_STEPS.SaleOrderDetails]: '/saleorderdetails',\r\n [SELL_SHARES_STEPS.BookLotCustomize]: '/booklot/:number',\r\n [SELL_SHARES_STEPS.Payment]: '/payment',\r\n [SELL_SHARES_STEPS.Confirmation]: '/confirmation',\r\n [SELL_SHARES_STEPS.Summary]: '/summary',\r\n};\r\n\r\nexport function goToStart(history: History, path: string) {\r\n return () => goTo(history, path);\r\n}\r\n\r\nexport function absPath(path: string, step: SELL_SHARES_STEPS) {\r\n return path + SELL_SHARES_PATHS[step];\r\n}\r\n\r\nexport function exit() {\r\n return navigateWithRefresh(ROUTES.dashboard);\r\n}\r\n\r\nexport function goToStep(history: History, path: string, step: SELL_SHARES_STEPS) {\r\n return () => goTo(history, absPath(path, step));\r\n}\r\n\r\nexport function goTo(history: History, path: string) {\r\n history.push(path);\r\n}\r\n\r\nexport function goToDashboard(history: History) {\r\n return () => {\r\n goTo(history, ROUTES.dashboard);\r\n };\r\n}\r\n\r\nexport function goToBookLotDetails(history: History, path: string) {\r\n return (bookLotNumber: string) => {\r\n const stepPath = SELL_SHARES_PATHS[SELL_SHARES_STEPS.BookLotCustomize].replace(\r\n ':number',\r\n bookLotNumber,\r\n );\r\n goTo(history, path + stepPath);\r\n };\r\n}\r\n","import { createAction } from '../../../store/reduxBoilerplate';\r\nimport { SavedTransactionData, SecurityDetails } from './securityOverview.model';\r\n\r\nexport enum SecurityOverviewActionTypes {\r\n LOAD_DETAILS = '[SecurityOverview] LOAD_DETAILS',\r\n LOAD_DETAILS_DONE = '[SecurityOverview] LOAD_DETAILS_DONE',\r\n LOAD_DETAILS_FAIL = '[SecurityOverview] LOAD_DETAILS_FAIL',\r\n\r\n REDIRECT_TO_ACCOUNT_SETTINGS = '[SecurityOverview] REDIRECT_TO_ACCOUNT_SETTINGS',\r\n\r\n SET_TRANSACTION_DATA = '[SecurityOverview] SET_TRANSACTION_DATA',\r\n UNSET_TRANSACTION_DATA = '[SecurityOverview] UNSET_TRANSACTION_DATA',\r\n}\r\n\r\nconst AT = SecurityOverviewActionTypes;\r\n\r\nexport const securityOverviewActions = {\r\n loadDetails: (issueNumber: string, accountNumber: string) =>\r\n createAction(AT.LOAD_DETAILS, {\r\n issueNumber,\r\n accountNumber,\r\n }),\r\n loadDetailsDone: (securityDetails: LoadSecurityDetailsResponse) =>\r\n createAction(AT.LOAD_DETAILS_DONE, { securityDetails }),\r\n loadDetailsFail: () => createAction(AT.LOAD_DETAILS_FAIL),\r\n\r\n redirectToAccountSettings: (panel: string, field: string, accountId?: string) =>\r\n createAction(AT.REDIRECT_TO_ACCOUNT_SETTINGS, {\r\n panel,\r\n field,\r\n accountId,\r\n }),\r\n\r\n setTransactionData: (payload: SavedTransactionData) =>\r\n createAction(AT.SET_TRANSACTION_DATA, payload),\r\n unsetTransactionData: () => createAction(AT.UNSET_TRANSACTION_DATA),\r\n};\r\n\r\nexport type LoadSecurityDetailsResponse = SecurityDetails;\r\n","import React from 'react';\r\nimport { FormikProps, ErrorMessage } from 'formik';\r\nimport { px } from '../../../style/theme/utils';\r\nimport { styled } from '../../../style/theme/themeModule';\r\nimport { Alert } from '../../Alert/Alert';\r\n\r\ninterface OwnProps {\r\n name: Field;\r\n formProps?: FormikProps;\r\n className?: string;\r\n htmlError?: string | null | undefined;\r\n}\r\n\r\nexport function ValidationError(\r\n props: OwnProps,\r\n) {\r\n const { formProps, name, className, htmlError } = props;\r\n\r\n if (htmlError) {\r\n return (\r\n \r\n
    \r\n \r\n );\r\n }\r\n\r\n if (formProps && formProps.status && formProps.status[name]) {\r\n return (\r\n \r\n
    \r\n \r\n );\r\n }\r\n\r\n return (\r\n (\r\n \r\n
    \r\n \r\n )}\r\n />\r\n );\r\n}\r\n\r\nconst Container = styled(Alert)`\r\n color: ${(p) => p.theme.colors.dangerText};\r\n background-color: ${(p) => p.theme.colors.dangerBackground};\r\n font-size: ${(p) => px(p.theme.typography.fontSizeBase)};\r\n padding: 5px 12px;\r\n border-width: 2px;\r\n\r\n && {\r\n margin: 10px 0;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Card, CardProps } from 'reactstrap';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\nimport { Header } from './Header';\r\nimport { Divider } from './Divider';\r\nimport { Content } from './Content';\r\nimport { Footer } from './Footer';\r\n\r\ninterface PanelCardProps extends CardProps {\r\n compact?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const PANEL_PADDING = '1.25rem';\r\n\r\nexport class Panel extends React.Component {\r\n static Header = Header;\r\n static Divider = Divider;\r\n static Content = Content;\r\n static Footer = Footer;\r\n\r\n public render() {\r\n const { children, compact, className, ...rest } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\ninterface PanelContainerProps extends Theme {\r\n compact?: boolean;\r\n children?: any;\r\n}\r\n\r\nconst Container = styled.div`\r\n border-top: 2px solid ${(p: PanelContainerProps) => p.theme.colors.primary1};\r\n ${(p) => p.theme.print.noBorders}\r\n\r\n .card {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n border-bottom-left-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n border-top: none;\r\n box-shadow: none;\r\n }\r\n\r\n ${(p: PanelContainerProps) =>\r\n p.compact &&\r\n `\r\n .card-footer,\r\n .card-body {\r\n padding: 10px;\r\n }\r\n `}\r\n`;\r\n","export function toCamel(data: any): any {\r\n if (data instanceof Array) {\r\n return data.map((value) => (typeof value === 'object' ? toCamel(value) : value));\r\n }\r\n\r\n return Object.keys(data).reduce((acc: any, key) => {\r\n const newKey = (key.charAt(0).toLowerCase() + key.slice(1) || key).toString();\r\n let value = data[key];\r\n if (value instanceof Array || (value !== null && value.constructor === Object)) {\r\n value = toCamel(value);\r\n }\r\n acc[newKey] = value;\r\n return acc;\r\n }, {});\r\n}\r\n\r\nexport const makeCancelable = (promise: Promise) => {\r\n let hasCanceled_ = false;\r\n\r\n const wrappedPromise = new Promise((resolve, reject) => {\r\n promise.then(\r\n (val) => (hasCanceled_ ? reject({ isCanceled: true }) : resolve(val)),\r\n (error) => (hasCanceled_ ? reject({ isCanceled: true }) : reject(error)),\r\n );\r\n });\r\n\r\n return {\r\n promise: wrappedPromise,\r\n cancel() {\r\n hasCanceled_ = true;\r\n },\r\n };\r\n};\r\n","const getHostFromEnv = (hostname?: string) => {\r\n return !!hostname ? hostname.replace(/\\/?$/, '/') : false;\r\n};\r\n\r\nexport const API_SERVICE_CONSTANTS = {\r\n isProd: process.env.REACT_APP_PRODUCTION === 'true',\r\n baseApiUrl: getHostFromEnv(process.env.REACT_APP_API_PROXY) || 'https://localhost:44340', // deprecated, now use axios mock adapter\r\n basicAuth: {\r\n username: process.env.REACT_APP_API_PROXY_BASIC_AUTH_USER,\r\n password: process.env.REACT_APP_API_PROXY_BASIC_AUTH_PASSWORD,\r\n },\r\n headers: {\r\n authId: process.env.REACT_APP_API_PROXY_HEADER_AUTHENTICATIONID,\r\n userId: process.env.REACT_APP_API_PROXY_HEADER_USERID,\r\n username: process.env.REACT_APP_API_PROXY_HEADER_USERNAME,\r\n },\r\n useApiMocks: process.env.REACT_APP_USE_API_MOCKS === 'true',\r\n};\r\n","import axios, { CancelToken, CancelTokenSource } from 'axios';\r\nimport { APP_CONFIG } from '../config';\r\nimport { toCamel } from './api.utils';\r\nimport { API_SERVICE_CONSTANTS } from './api.service.constants';\r\nimport { logInfo } from '../helpers/logging';\r\nimport { navigateWithRefresh } from '../routing/routing.utils';\r\n\r\nif (API_SERVICE_CONSTANTS.useApiMocks) {\r\n require('./api.mocks.ts');\r\n}\r\n\r\nexport function isErrorResponse(error: any): error is ErrorResponse {\r\n return (error as ErrorResponse).code !== undefined;\r\n}\r\n\r\nexport interface ErrorResponse {\r\n code: number;\r\n statusText: string;\r\n}\r\n\r\nexport interface UrlParams {\r\n [key: string]: string | number | undefined;\r\n}\r\n\r\nexport const ERROR_CODE_CANCEL = 0;\r\n\r\ninterface OwnRequestProps {\r\n url: string;\r\n method?: string;\r\n params?: UrlParams;\r\n data?: any;\r\n cancelToken?: CancelToken;\r\n}\r\n\r\n// INTERCEPTORS\r\naxios.interceptors.response.use(\r\n (response) =>\r\n Object.assign({}, response, {\r\n data: toCamel(response.data),\r\n }),\r\n (error) => Promise.reject(error),\r\n);\r\n\r\nlet requestCounter = 0;\r\n\r\nexport class ApiService {\r\n private static readonly CANCEL_TOKEN_MESSAGE = 'API_SERVICE_CANCEL';\r\n\r\n public static async get(\r\n url: string,\r\n params?: UrlParams,\r\n cancelToken?: CancelToken,\r\n ): Promise {\r\n return await ApiService.request({ url, params, cancelToken });\r\n }\r\n\r\n public static async post(url: string, data?: any, params?: UrlParams): Promise {\r\n return await ApiService.request({ url, params, data, method: 'post' });\r\n }\r\n\r\n public static async put(url: string, data?: any, params?: UrlParams): Promise {\r\n return await ApiService.request({ url, params, data, method: 'put' });\r\n }\r\n\r\n public static async delete(url: string, data?: any, params?: UrlParams): Promise {\r\n return await ApiService.request({ url, params, data, method: 'delete' });\r\n }\r\n\r\n public static async parameters(parameterPage: string): Promise {\r\n return await ApiService.request({ url: APP_CONFIG.api.parameters(parameterPage) });\r\n }\r\n\r\n public static cancelRequest(token: CancelTokenSource): void {\r\n token.cancel(this.CANCEL_TOKEN_MESSAGE);\r\n }\r\n\r\n public static async request({\r\n url,\r\n method = 'get',\r\n data,\r\n params,\r\n cancelToken,\r\n }: OwnRequestProps): Promise {\r\n try {\r\n const requestNumber = requestCounter + 1;\r\n requestCounter = requestNumber;\r\n\r\n logInfo(`Making #${requestNumber} '${method.toUpperCase()}' request to '${url}'`, {\r\n url,\r\n method,\r\n data,\r\n params,\r\n });\r\n\r\n const response = await axios.request({\r\n url,\r\n method,\r\n data,\r\n params,\r\n cancelToken,\r\n headers: {\r\n ...ApiService.resolveHeaders(),\r\n },\r\n withCredentials: true,\r\n ...ApiService.resolveHost(),\r\n });\r\n\r\n logInfo(`Received #${requestNumber} response.`, response);\r\n\r\n return response.data;\r\n } catch (e) {\r\n if (!API_SERVICE_CONSTANTS.useApiMocks) {\r\n if (e.response.status === 403) {\r\n navigateWithRefresh('/');\r\n }\r\n }\r\n\r\n logInfo(`Error happened: '${method.toUpperCase()}' request to '${url}'`, {\r\n url,\r\n method,\r\n data,\r\n params,\r\n e,\r\n });\r\n\r\n throw ApiService.returnError(e);\r\n }\r\n }\r\n\r\n private static resolveHeaders(): {} {\r\n let headers: any = {};\r\n\r\n if (API_SERVICE_CONSTANTS.isProd) {\r\n return {};\r\n }\r\n\r\n headers['AuthenticationId'] = API_SERVICE_CONSTANTS.headers.authId;\r\n headers['UserId'] = API_SERVICE_CONSTANTS.headers.userId;\r\n headers['Username'] = API_SERVICE_CONSTANTS.headers.username;\r\n\r\n return headers;\r\n }\r\n\r\n private static resolveHost(): {} {\r\n let apiProxyConfig: any = {};\r\n\r\n if (API_SERVICE_CONSTANTS.isProd) {\r\n return {};\r\n }\r\n\r\n const isBasicAuth =\r\n API_SERVICE_CONSTANTS.basicAuth.username && API_SERVICE_CONSTANTS.basicAuth.password;\r\n\r\n // deprecated, now use axios mock adapter\r\n apiProxyConfig.baseURL = API_SERVICE_CONSTANTS.baseApiUrl;\r\n\r\n if (isBasicAuth) {\r\n apiProxyConfig.auth = {\r\n username: API_SERVICE_CONSTANTS.basicAuth.username,\r\n password: API_SERVICE_CONSTANTS.basicAuth.password,\r\n };\r\n }\r\n\r\n return apiProxyConfig;\r\n }\r\n\r\n public static returnError(e: any): ErrorResponse {\r\n if (e.message === this.CANCEL_TOKEN_MESSAGE) {\r\n return {\r\n code: ERROR_CODE_CANCEL,\r\n statusText: 'Cancelled request',\r\n };\r\n }\r\n return {\r\n code: e.response.status,\r\n statusText: e.response.statusText,\r\n };\r\n }\r\n}\r\n\r\nexport interface Pagination {\r\n page: number;\r\n pageSize: number;\r\n pageCount: number;\r\n totalRecords: number;\r\n data: T[];\r\n}\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Dispatch } from 'redux';\r\nimport { Modal } from './Modal.Wrapper';\r\nimport { modalActions } from '../store/actions';\r\nimport { styled } from '../../../style';\r\nimport { pickColor } from '../../../style/theme/utils';\r\nimport { Grid, Col, Row } from '../../Grid';\r\nimport { Button } from '../../../lib/Form/Button';\r\n\r\ninterface OwnProps {\r\n titleText: string;\r\n submitText: string;\r\n content: any;\r\n onSubmitClick: () => any;\r\n children: any;\r\n compact?: boolean;\r\n}\r\n\r\ninterface ModalContainerProps extends OwnProps {\r\n dispatch: Dispatch;\r\n}\r\n\r\nfunction InfoModalComponent({\r\n titleText,\r\n submitText,\r\n onSubmitClick,\r\n content,\r\n dispatch,\r\n compact,\r\n ...rest\r\n}: ModalContainerProps) {\r\n const modalContent = () => {\r\n return (\r\n \r\n \r\n \r\n
    \r\n {titleText}\r\n dispatch(modalActions.closeModal())}\r\n />\r\n
    \r\n \r\n
    \r\n \r\n {content}\r\n \r\n \r\n \r\n {submitText && onSubmitClick && (\r\n \r\n {submitText}\r\n \r\n )}\r\n \r\n \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n dispatch(modalActions.closeModal())}\r\n {...rest as any}\r\n >\r\n {modalContent()}\r\n \r\n );\r\n}\r\n\r\nexport const InfoModal = connect()(InfoModalComponent);\r\n\r\nexport const Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n padding-bottom: 20px;\r\n margin-bottom: 20px;\r\n font-size: 36px;\r\n border-bottom: 1px solid ${pickColor((c) => c.primary1)};\r\n`;\r\n\r\nconst FormActions = styled.div`\r\n float: right;\r\n`;\r\n\r\nconst FormButton = styled(Button)`\r\n margin: 20px 0px 10px 0px;\r\n`;\r\n","import React from 'react';\r\nimport { connect, ConnectedComponentClass } from 'react-redux';\r\nimport { RootState } from '../../store/rootModel';\r\nimport { ModalState } from './store/model';\r\nimport { ConfirmModal } from './Templates/Modal.Confirm';\r\nimport { BasicModal } from './Templates/Modal.Basic';\r\nimport { AgreementModal } from './Templates/Modal.Agreement';\r\nimport { InfoModal } from './Templates/Modal.Info';\r\n\r\ninterface ModalComponentProps {\r\n [key: string]: ConnectedComponentClass;\r\n}\r\n\r\nexport enum ModalComponents {\r\n BASIC_MODAL = 'BASIC_MODAL',\r\n CONFIRMATION_MODAL = 'CONFIRMATION_MODAL',\r\n AGREEMENT_MODAL = 'AGREEMENT_MODAL',\r\n INFO_MODAL = 'INFO_MODAL',\r\n}\r\n\r\nconst MODAL_COMPONENTS: ModalComponentProps = {\r\n [ModalComponents.BASIC_MODAL]: BasicModal,\r\n [ModalComponents.CONFIRMATION_MODAL]: ConfirmModal,\r\n [ModalComponents.AGREEMENT_MODAL]: AgreementModal,\r\n [ModalComponents.INFO_MODAL]: InfoModal,\r\n};\r\n\r\nfunction Component({ modalType, modalProps }: ModalState) {\r\n if (!modalType) {\r\n return null;\r\n }\r\n\r\n const SpecificModal = MODAL_COMPONENTS[modalType];\r\n return ;\r\n}\r\n\r\nexport const ModalRoot = connect((state: RootState) => state.modal)(Component);\r\n","import React, { useState, useContext, useEffect, useCallback } from 'react';\r\nimport axios from 'axios';\r\nimport DOMPurify from 'dompurify';\r\nimport { CmsDataPage, CmsDataValues, CmsDataAllPages } from './cmsData.model';\r\nimport { ApiService } from '../../../api/api.service';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { CmsDataContext } from '../CmsDataProvider';\r\nimport { interpolate } from '../../../lib/Form/Validation/validation.utils';\r\nimport { getMockPagePath } from './cmsData.mapper';\r\nimport { CMS_DATA_CONSTANTS } from './cmsData.constants';\r\n\r\nDOMPurify.setConfig({ ADD_ATTR: ['target'] });\r\n\r\nexport function useCmsDataLoader(...pages: CmsDataPage[]): boolean {\r\n const [loading, setLoading] = useState(true);\r\n const { cmsDataAllPages, setCmsData } = useContext(CmsDataContext);\r\n\r\n const getNotLoadedPages = useCallback(\r\n (pages: CmsDataPage[]) => {\r\n return pages.filter((page) => !cmsDataAllPages[page]);\r\n },\r\n [cmsDataAllPages],\r\n );\r\n\r\n useEffect(() => {\r\n const loading = !!getNotLoadedPages(pages).length;\r\n setLoading(loading);\r\n }, [pages, getNotLoadedPages]);\r\n\r\n useEffect(() => {\r\n const source = axios.CancelToken.source();\r\n const pagesToLoad = getNotLoadedPages(pages);\r\n (async () => {\r\n if (pagesToLoad.length) {\r\n try {\r\n const promises = CMS_DATA_CONSTANTS.useMockLabels\r\n ? pages.map((page) => {\r\n const path = getMockPagePath(page);\r\n return import(`${path}`).then((data) => data.default);\r\n })\r\n : pages.map((page) =>\r\n ApiService.get(APP_CONFIG.api.parameters(page), undefined, source.token),\r\n );\r\n\r\n const response: any[] = await Promise.all(promises);\r\n\r\n const newCmsData = pages.reduce((acc: CmsDataAllPages, page, i) => {\r\n acc[page] = response[i];\r\n return acc;\r\n }, cmsDataAllPages);\r\n setCmsData(newCmsData);\r\n } catch {}\r\n }\r\n })();\r\n return () => {\r\n source.cancel();\r\n };\r\n }, [getNotLoadedPages, cmsDataAllPages, pages, setCmsData]);\r\n\r\n return loading;\r\n}\r\n\r\nfunction parseKey(key: string) {\r\n if (key.indexOf('.') === -1) {\r\n throw Error(\r\n `When calling cmsLabel function, you must add namespace of the page\r\n separated with dot in the beginning of the key`,\r\n );\r\n }\r\n\r\n const [namespace, labelKey] = key.split('.');\r\n return {\r\n namespace,\r\n labelKey,\r\n };\r\n}\r\n\r\nfunction getPage(namespace: string, allPages: CmsDataAllPages) {\r\n const cmsDataOfPage = allPages[namespace as CmsDataPage];\r\n\r\n if (!cmsDataOfPage) {\r\n throw Error(\r\n `CmsData for provided namespace was not found.\r\n Either you forgot to use useCmsDataLoader to load all necessary cms data,\r\n or provided namespace \"${namespace}\" is incorrect`,\r\n );\r\n }\r\n\r\n return cmsDataOfPage;\r\n}\r\n\r\nexport function useCmsData() {\r\n const { cmsDataAllPages } = useContext(CmsDataContext);\r\n\r\n const rawCmsLabel = useCallback(\r\n (key: string) => {\r\n const { labelKey, namespace } = parseKey(key);\r\n const cmsDataOfPage = getPage(namespace, cmsDataAllPages);\r\n\r\n return getRawCmsValue(cmsDataOfPage, labelKey);\r\n },\r\n [cmsDataAllPages],\r\n );\r\n\r\n const cmsLabel = useCallback(\r\n (key: string, ...interpolateParams: any[]): string => {\r\n const { labelKey, namespace } = parseKey(key);\r\n const cmsDataOfPage = getPage(namespace, cmsDataAllPages);\r\n\r\n return getCmsLabel(cmsDataOfPage, labelKey, ...interpolateParams);\r\n },\r\n [cmsDataAllPages],\r\n );\r\n\r\n const cmsLabelHtml = useCallback(\r\n (key: string, ...interpolateParams: any[]) => {\r\n const label = cmsLabel(key, ...interpolateParams);\r\n const sanitizedLabel = DOMPurify.sanitize(label);\r\n return
    ;\r\n },\r\n [cmsLabel],\r\n );\r\n\r\n const cmsLabelStartsWith = useCallback(\r\n (key: string, ...interpolateParams: any[]): string => {\r\n const { labelKey, namespace } = parseKey(key);\r\n const cmsDataOfPage = getPage(namespace, cmsDataAllPages);\r\n\r\n let fullKey: string | undefined;\r\n for (let pageKey in cmsDataOfPage) {\r\n if (pageKey.startsWith(labelKey)) {\r\n fullKey = pageKey;\r\n break;\r\n }\r\n }\r\n if (!fullKey) {\r\n fullKey = labelKey;\r\n }\r\n\r\n return getCmsLabel(cmsDataOfPage, fullKey, ...interpolateParams);\r\n },\r\n [cmsDataAllPages],\r\n );\r\n\r\n return {\r\n cmsLabel,\r\n cmsLabelStartsWith,\r\n cmsLabelHtml,\r\n cmsDataAllPages,\r\n rawCmsLabel,\r\n };\r\n}\r\n\r\nexport function getCmsLabel(\r\n cmsData: CmsDataValues,\r\n key: string,\r\n ...interpolateParams: any[]\r\n): string {\r\n //Todo: There are some cases when possible return is Array>.\r\n // New fn should be constructed to handle this case. And this function should be\r\n // kept low level and follow SRP.\r\n // E.G. SignOn (login) modal has accordion which implements shis shape.\r\n\r\n const value = cmsData[key];\r\n\r\n const interpolatedValue =\r\n interpolateParams && interpolateParams.length && typeof value === 'string'\r\n ? interpolate(value, ...interpolateParams)\r\n : value;\r\n\r\n if (typeof value === 'string') {\r\n let sanitizedValue = DOMPurify.sanitize(interpolatedValue);\r\n sanitizedValue.replace(/\\n/g, '
    ');\r\n return sanitizedValue;\r\n }\r\n\r\n return !!value ? interpolatedValue : key + ' [NS]';\r\n}\r\n\r\nexport function getRawCmsValue(cmsData: any, key: string): string | null | undefined | object {\r\n return cmsData[key];\r\n}\r\n","import { FormBoolean } from './validation.model';\r\nimport { TestOptions, TestContext } from 'yup';\r\n\r\nexport function isTrue(value: FormBoolean) {\r\n return value === 'true';\r\n}\r\n\r\nexport function isFalse(value: FormBoolean) {\r\n return value === 'false';\r\n}\r\n\r\nexport function match(regex: any, message: string): TestOptions {\r\n return {\r\n message,\r\n test: function(this: TestContext, value = '') {\r\n return new RegExp(regex).test(value);\r\n },\r\n };\r\n}\r\n\r\nexport function interpolate(message: string, ...args: any[]) {\r\n return (args || []).reduce((acc, value, i) => {\r\n return acc.replace(`{${i}}`, value);\r\n }, message);\r\n}\r\n","export enum AddressFormEnum {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n seasonal = 'seasonal',\r\n}\r\n","import { routing, Alias, RoutingInfo } from './api';\r\nexport const ROUTES_BASENAME = '';\r\nexport const DEFAULT_ROUTES: RoutingInfo[] = [\r\n {\r\n alias: 'signout',\r\n route: '/transactional/anonymous/signout',\r\n contentId: 0,\r\n },\r\n];\r\n\r\ntype RouteCreator = (apiRoute: string) => string;\r\n\r\nconst createRoute = (alias: Alias) => (routeCreator: RouteCreator) => {\r\n let item = routing.find((route: RoutingInfo) => route.alias === alias);\r\n\r\n if (!item) {\r\n console.warn(`Can't find route: '${alias}'. Trying default.`);\r\n item = DEFAULT_ROUTES.find((route: RoutingInfo) => route.alias === alias);\r\n if (!item) {\r\n throw new Error(\r\n `Can't find route: '${alias}'. Route is not found even in default routes constant.`,\r\n );\r\n }\r\n }\r\n\r\n return routeCreator(item.route);\r\n};\r\n\r\nconst basicRouteCreator: RouteCreator = (r) => r;\r\n\r\nexport const ROUTES = {\r\n root: '/',\r\n get dashboard() {\r\n return createRoute('dashboard')(basicRouteCreator);\r\n },\r\n get pendingSales() {\r\n return createRoute('pendingSales')(basicRouteCreator);\r\n },\r\n get pendingSale() {\r\n return createRoute('pendingSales')((r) => `${r}/:saleId`);\r\n },\r\n get brokerInstructions() {\r\n return createRoute('brokerInstructions')(basicRouteCreator);\r\n },\r\n get espp() {\r\n return createRoute('espp')(basicRouteCreator);\r\n },\r\n get esppCompany() {\r\n return createRoute('espp')((r) => `${r}/companies/:companyId/`);\r\n },\r\n get esppCompanies() {\r\n return createRoute('espp')((r) => `${r}/companies`);\r\n },\r\n get esppAuthentication() {\r\n return createRoute('espp')((r) => `${r}/companies/:companyId/authentication/`);\r\n },\r\n get esppReviewPlan() {\r\n return createRoute('espp')((r) => `${r}/companies/:companyId/review/:navigationMode?`);\r\n },\r\n get esppSetupDeduction() {\r\n return createRoute('espp')((r) => `${r}/companies/:companyId/setup-deduction/:navigationMode?`);\r\n },\r\n get esppEditDeduction() {\r\n return createRoute('espp')((r) => `${r}/companies/:companyId/edit-deduction/:navigationMode?`);\r\n },\r\n get esppStopConfirmation() {\r\n return createRoute('espp')(\r\n (r) => `${r}/companies/:companyId/confirmation/stop/:navigationMode?`,\r\n );\r\n },\r\n get esppSetupConfirmation() {\r\n return createRoute('espp')(\r\n (r) => `${r}/companies/:companyId/confirmation/setup/:navigationMode?`,\r\n );\r\n },\r\n get esppEditConfirmation() {\r\n return createRoute('espp')(\r\n (r) => `${r}/companies/:companyId/confirmation/edit/:navigationMode?`,\r\n );\r\n },\r\n get esppStopDeductionSummary() {\r\n return createRoute('espp')((r) => `${r}/companies/summary/stop`);\r\n },\r\n get esppSummary() {\r\n return createRoute('espp')((r) => `${r}/companies/:companyId/summary/:action`);\r\n },\r\n get dspp() {\r\n return createRoute('dspp')(basicRouteCreator);\r\n },\r\n get dsppCompanyPlans() {\r\n return createRoute('dspp')((r) => `${r}/company-plans`);\r\n },\r\n get dsppAnonymousBuy() {\r\n return createRoute('dspp')((r) => `${r}/anonymous-buy`);\r\n },\r\n get checks() {\r\n return createRoute('checks')(basicRouteCreator);\r\n },\r\n get checksReplace() {\r\n return createRoute('checks')((r) => `${r}/replace`);\r\n },\r\n get checksHistory() {\r\n return createRoute('checks')((r) => `${r}/history`);\r\n },\r\n get accountSettings() {\r\n return createRoute('accountSettings')((r) => `${r}/:panel?/:field?/:accountId?`);\r\n },\r\n get dividends() {\r\n return createRoute('dividends')((r) => `${r}/:accountNumber?/:issueNumber?`);\r\n },\r\n get alertsAndMessages() {\r\n return createRoute('alertsAndMessages')(basicRouteCreator);\r\n },\r\n get alertsAndMessagesContactUs() {\r\n return createRoute('alertsAndMessages')((r) => `${r}/contact-us`);\r\n },\r\n get alerts() {\r\n return createRoute('alertsAndMessages')((r) => `${r}/alerts`);\r\n },\r\n get alert() {\r\n return createRoute('alertsAndMessages')((r) => `${r}/alerts/:alertId`);\r\n },\r\n get messages() {\r\n return createRoute('alertsAndMessages')((r) => `${r}/messages`);\r\n },\r\n get individualMessage() {\r\n return createRoute('alertsAndMessages')((r) => `${r}/messages/:messageId`);\r\n },\r\n get messageReply() {\r\n return createRoute('alertsAndMessages')((r) => `${r}/messages/:messageId/reply`);\r\n },\r\n get portfolio() {\r\n return createRoute('portfolio')((r) => `${r}/:accountNumber`);\r\n // In fact route from backend (at least on OPS) with alias \"portfolio\" is \"/transactional/authenticated/account-summary\"\r\n // but on old UK Umbraco database it was \"/transactional/authenticated/portfolio\"\r\n // Anyhow, currently get portfolio() used when :accountNumber param passed.\r\n // So string value \"all\" means, it will show/render page with all accounts (account numbers).\r\n // Maybe it would be better to not use createRoute() explicitly, and use/add dedicated getter for '/transactional/authenticated/account-summary/all';\r\n },\r\n get securityOverview() {\r\n return createRoute('securityOverview')((r) => `${r}/:accountNumber/:issueNumber/:activeTab?`);\r\n },\r\n get costBasisDetails() {\r\n return createRoute('securityOverview')(\r\n (r) => `${r}/:accountNumber/:issueNumber/cost-basis/:taxLotId`,\r\n );\r\n },\r\n get signUp() {\r\n return createRoute('signUpProcessPage')(basicRouteCreator);\r\n },\r\n get signOut() {\r\n return createRoute('signout')(basicRouteCreator);\r\n },\r\n get buyShares() {\r\n return createRoute('authenticatedBuy')(basicRouteCreator);\r\n },\r\n get buySharesVerifyRegistration() {\r\n return createRoute('authenticatedBuy')((r) => `${r}/verify-registration`);\r\n },\r\n get buySharesInvestmentEdit() {\r\n return createRoute('authenticatedBuy')((r) => `${r}/your-investment-edit`);\r\n },\r\n get buySharesInvestmentNew() {\r\n return createRoute('authenticatedBuy')((r) => `${r}/your-investment`);\r\n },\r\n get buyInAccountsPath() {\r\n return createRoute('authenticatedBuy')((r) => `${r}/select-account`);\r\n },\r\n get sellShares() {\r\n return createRoute('authenticatedSell')(basicRouteCreator);\r\n },\r\n get glossary() {\r\n return createRoute('glossary')(basicRouteCreator);\r\n },\r\n get countryGlossary() {\r\n return createRoute('countryGlossary')(basicRouteCreator);\r\n },\r\n get signOnIssues() {\r\n return createRoute('signOnIssues')(basicRouteCreator);\r\n },\r\n get login() {\r\n return createRoute('login')(basicRouteCreator);\r\n },\r\n get documentsAndForms() {\r\n return createRoute('documentsAndForms')(basicRouteCreator);\r\n },\r\n get documentsAndFormsEDelivery() {\r\n return createRoute('documentsAndForms')((r) => `${r}/e-delivery`);\r\n },\r\n get documentsAndFormsTaxForms() {\r\n return createRoute('documentsAndForms')((r) => `${r}/tax-forms`);\r\n },\r\n get documentsAndFormsShareBalance() {\r\n return createRoute('documentsAndForms')((r) => `${r}/share-balance`);\r\n },\r\n get companyPlans() {\r\n return createRoute('companyPlans')(basicRouteCreator);\r\n },\r\n get contact() {\r\n return createRoute('contact')(basicRouteCreator);\r\n },\r\n get internationalPayments() {\r\n return createRoute('internationalPayments')(basicRouteCreator);\r\n },\r\n get termsAndConditions() {\r\n return createRoute('termsAndConditions')(basicRouteCreator);\r\n },\r\n get termsAndConditionsESign() {\r\n return createRoute('termsAndConditions')((r) => `${r}/esign`);\r\n },\r\n get termsAndConditionsOnlineAccess() {\r\n return createRoute('termsAndConditions')((r) => `${r}/online-access`);\r\n },\r\n get emailAddressMismatch() {\r\n return createRoute('emailAddressMismatch')(basicRouteCreator);\r\n },\r\n get emailAddressMismatchConfirm() {\r\n return createRoute('emailAddressMismatch')((r) => `${r}/confirm`);\r\n },\r\n get emailAddressMismatchSummary() {\r\n return createRoute('emailAddressMismatch')((r) => `${r}/summary`);\r\n },\r\n get wfsso() {\r\n return createRoute('wfsso')(basicRouteCreator);\r\n },\r\n get marketData() {\r\n return createRoute('marketData')((r) => `${r}/:tickerValue`);\r\n },\r\n};\r\n\r\nexport const EXTERNAL_ROUTES = {\r\n home: '/',\r\n signUp: '/',\r\n help: '/help',\r\n contactUs: '/contact-us',\r\n internationalPayments: '/international-Payments',\r\n W8BenForm: 'w8ben-form',\r\n IRSWebsite: 'irs-website',\r\n};\r\n","import { BankAccount, BankAccountType } from '../../../../shared/DataStructures/BankAccount';\r\nimport { ShareTransaction } from '../Steps/SaleOrderDetailsStep/SaleOrderDetails.model';\r\nimport { InternationalACHSetupDetails } from '../../../Dividend/store/dividend.model';\r\nimport {\r\n DividendCmsData,\r\n SellSharesCmsData,\r\n SellSharesTranslate,\r\n SellSharesTranslateHtml,\r\n TranslateErrors,\r\n} from '../../../../containers/CmsData';\r\nimport { WireTransferPayment } from '../../../../lib/FormPremades/WireTransferPayment';\r\n\r\nexport type SellTranslations = SellSharesCmsData & DividendCmsData;\r\n\r\nexport interface StepPropsBase {\r\n onCancel: () => void;\r\n navigateNext: (data?: Partial) => void;\r\n navigateBack?: () => void;\r\n}\r\nexport type StepProps

    = StepPropsBase & P;\r\nexport interface TranslateProps {\r\n _t: SellSharesTranslate;\r\n}\r\n\r\nexport interface TranslateHtmlProps {\r\n _thtml: SellSharesTranslateHtml;\r\n}\r\n\r\nexport interface TranslateErrorsProps {\r\n _eMany: TranslateErrors;\r\n}\r\n\r\nexport interface SellSharesDetails {\r\n accountCompanies: SellAccount[];\r\n isMarketPricingAvailable: boolean;\r\n}\r\n\r\nexport interface SellAccount {\r\n accountNumber: number;\r\n name: string;\r\n value: number;\r\n companies: SellCompany[];\r\n taxCertificationStatus: number;\r\n primaryAddress: AccountAddress;\r\n seasonalAddress?: AccountAddress;\r\n address: string;\r\n userRegionCode: string;\r\n}\r\n\r\nexport interface AccountAddress {\r\n addressLines: string[] | null;\r\n start?: Date | string;\r\n end?: Date | string;\r\n isRecurring?: boolean;\r\n isActive?: boolean;\r\n}\r\n\r\nexport interface SellCompany {\r\n companyId: number;\r\n name: string;\r\n shares: SellShare[];\r\n}\r\n\r\nexport interface SellShare {\r\n drsAvailableForSale: number;\r\n planAvailableForSale: number;\r\n planTotalWithReserved: number;\r\n certificateAvailableForSale: number;\r\n securityType: string;\r\n issueNumber: string;\r\n drsTotalWithReserved: number;\r\n drsNumberOfShares: number;\r\n planNumberOfShares: number;\r\n allowSaleOfDrs: boolean;\r\n allowDrsSalesSol: boolean;\r\n allowSaleOfPlanShares: boolean;\r\n allowPlanSalesSol: boolean;\r\n drsFractionalSaleAllowed: boolean;\r\n planFractionalSaleAllowed: boolean;\r\n allowSaleReceiptsByACH: boolean;\r\n allowSaleReceiptsByInternationalACH: boolean;\r\n allowSaleReceiptsByWireTransfer: boolean;\r\n salePaymentType: SalePaymentType;\r\n sellAllPlanSharesTerminatesAccount: boolean;\r\n}\r\n\r\nexport enum SalePaymentType {\r\n WireTransfer = 'WireTransfer',\r\n DirectDeposit = 'DirectDeposit',\r\n Check = 'Check',\r\n Both = 'Both',\r\n}\r\n\r\nexport enum PaymentMethod {\r\n WireTransfer = 'WireTransfer',\r\n DirectDeposit = 'DirectDeposit',\r\n Check = 'Check',\r\n None = 'None',\r\n}\r\n\r\nexport enum AccountLocation {\r\n US = 'us',\r\n INTL = 'intl',\r\n}\r\n\r\nexport enum ExistingOrNew {\r\n Existing = 'existing',\r\n New = 'new',\r\n}\r\n\r\nexport enum ShareType {\r\n None = '',\r\n DrsShare = '0',\r\n PlanShare = '1',\r\n DrsAndPlanShare = '2',\r\n}\r\n\r\nexport enum SellMethod {\r\n FIFO = '0',\r\n DATE = '1',\r\n}\r\n\r\nexport enum SaleType {\r\n MarketOrder = 'MarketOrder',\r\n BatchOrder = 'BatchOrder',\r\n LimitOrder = 'LimitOrder',\r\n StopLossOrder = 'StopLossOrder',\r\n}\r\n\r\n//#region Bank details\r\nexport interface BankDetails {\r\n payoutType: PaymentMethod;\r\n accountToUse: ExistingOrNew;\r\n existingBankAccountNumber: string;\r\n isDomesticBank: boolean;\r\n newBankAccount: NewBankAccount;\r\n wireTransfer: WireTransferPayment;\r\n}\r\n\r\nexport interface NewBankAccount {\r\n accountNumber: string;\r\n bankName: string;\r\n bankCity: string;\r\n routingNumber: string;\r\n accountType: BankAccountType;\r\n countryCode: string;\r\n country: string;\r\n currency: string;\r\n}\r\n\r\nexport const initialNewBankAccount: NewBankAccount = {\r\n currency: '',\r\n routingNumber: '',\r\n countryCode: '',\r\n bankName: '',\r\n bankCity: '',\r\n accountType: BankAccountType.None,\r\n accountNumber: '',\r\n country: '',\r\n};\r\nexport const initialBankDetails: BankDetails = {\r\n payoutType: PaymentMethod.None,\r\n accountToUse: ExistingOrNew.Existing,\r\n existingBankAccountNumber: '',\r\n isDomesticBank: true,\r\n newBankAccount: initialNewBankAccount,\r\n wireTransfer: {} as WireTransferPayment,\r\n};\r\n//#endregion\r\n\r\nexport interface BookLotSaleInfo {\r\n number: string;\r\n amountToSell: number;\r\n sellAll: boolean;\r\n isSelling: boolean;\r\n}\r\n\r\nexport interface NormalizedList {\r\n [key: string]: TEntity;\r\n}\r\n\r\nexport interface SellJourney extends BankDetails, AutoSellConfig {\r\n accountNumber: number;\r\n companyId: number;\r\n securityType: string;\r\n issueNumber: string;\r\n agreesToTerms: boolean;\r\n saleType: SaleType;\r\n shareTypesToSell: ShareType;\r\n drsSellAmount: number;\r\n planSellAmount: number;\r\n saleMethod: SellMethod;\r\n selectedBankAccount?: BankAccount;\r\n bookLotSaleConfig: NormalizedList;\r\n}\r\n\r\nexport interface SellTypesConfiguration {\r\n saleTypesDetails: SellType[];\r\n commissionPerPlanShare: Fee;\r\n commissionPerDrsShare: Fee;\r\n planDirectDepositFees: Fee;\r\n drsDirectDepositFees: Fee;\r\n planWireTransferFees: Fee;\r\n drsWireTransferFees: Fee;\r\n planSalesDollarLimit: number;\r\n drsSalesDollarLimit: number;\r\n marketInfo: MarketInfo;\r\n bookLots: ShareTransaction[];\r\n restrictionPriceVariance: number;\r\n limitOrderAutoSellLimit: number;\r\n stopLossOrderAutoSellLimit: number;\r\n isMarketPricingAvailable: boolean;\r\n hasCancellableSaleOrders: boolean;\r\n price: number;\r\n priceType: PriceType;\r\n}\r\n\r\nexport enum PriceType {\r\n Current = 'Current',\r\n PreviousDate = 'PreviousDate',\r\n FaceValue = 'FaceValue',\r\n}\r\n\r\nexport interface Fee {\r\n amount: number;\r\n type: FeeType;\r\n paidBy?: PaidBy;\r\n discount?: number;\r\n}\r\n\r\nexport interface MarketInfo {\r\n isHoliday: boolean;\r\n isMarketClosed: boolean;\r\n isMarketClosing: boolean;\r\n isLimitClosing: boolean;\r\n}\r\n\r\nexport enum FeeType {\r\n Amount = 'Amount',\r\n Percentage = 'Percentage',\r\n}\r\n\r\nexport enum PaidBy {\r\n Shareowner = 'Shareowner',\r\n Company = 'Company',\r\n}\r\n\r\n//#region AutoSell\r\nexport enum AutoSellType {\r\n None = '0',\r\n ForTheDay = '1',\r\n UntilCancelled = '2',\r\n UntilDate = '3',\r\n}\r\n\r\nexport interface AutoSellConfig {\r\n planAutoSellType: AutoSellType;\r\n planAutoSellPrice?: number;\r\n planAutoSellDate?: Date;\r\n\r\n drsAutoSellType: AutoSellType;\r\n drsAutoSellPrice?: number;\r\n drsAutoSellDate?: Date;\r\n}\r\n\r\n//#endregion\r\n\r\nexport interface SellType {\r\n saleType: string;\r\n timing: string;\r\n planFees: Fee;\r\n drsFees: Fee;\r\n}\r\n\r\nexport interface SellJourneyMetaData {\r\n accounts: SellAccount[];\r\n selectedAccount?: SellAccount;\r\n selectedCompany?: SellCompany;\r\n selectedIssue?: SellShare;\r\n sellTypes?: SellTypesConfiguration;\r\n internationalCurrency?: string;\r\n sharePrice?: number;\r\n countries: InternationalACHSetupDetails[];\r\n isMarketPricingAvailable: boolean;\r\n inquiryMode: boolean;\r\n totalSharesToSell: string;\r\n bankAccounts?: BankAccount[];\r\n wireTransferCountry?: string;\r\n getBookLots: (autoSellPrice?: number) => ShareTransaction[];\r\n}\r\n\r\nexport const autoSellConfigInitialValues: AutoSellConfig = {\r\n planAutoSellType: AutoSellType.None,\r\n planAutoSellPrice: undefined,\r\n planAutoSellDate: undefined,\r\n\r\n drsAutoSellType: AutoSellType.None,\r\n drsAutoSellPrice: undefined,\r\n drsAutoSellDate: undefined,\r\n};\r\n","export type OldAgreementType = 'eSign' | 'onlineAccess';\r\n\r\nexport interface UserAgreements {\r\n showEConsent: boolean;\r\n showOAA: boolean;\r\n}\r\n\r\n// By the business logic first goes ESign consent, and then Online Access Agreement page/step.\r\n// But backend code defines these enum fields in opposite way.\r\n// Values: 0 and 1 used in POST body to define agreementType which has been accepted.\r\nexport enum AgreementTypeEnum {\r\n OnlineAccess = 0,\r\n Esign = 1,\r\n}\r\n\r\nexport interface NewUserAgreement {\r\n agreementType: AgreementTypeEnum;\r\n needsSign: boolean;\r\n}\r\n\r\nexport interface NewAgreementProps {\r\n navigateCancel: () => void;\r\n navigateNext: () => void;\r\n newAgreementType?: AgreementTypeEnum;\r\n}\r\n","import React, { useState, useMemo } from 'react';\r\nimport { CmsDataAllPages } from '../../containers/CmsData/store/cmsData.model';\r\n\r\ninterface CmsDataContext {\r\n cmsDataAllPages: CmsDataAllPages;\r\n setCmsData: (data: CmsDataAllPages) => void;\r\n}\r\n\r\nexport const CmsDataContext = React.createContext({} as any);\r\n\r\ninterface OwnProps {\r\n children?: any;\r\n}\r\n\r\nexport function CmsDataProvider({ children }: OwnProps) {\r\n const [cmsDataAllPages, setCmsData] = useState({});\r\n\r\n const cmsContextValue = useMemo(\r\n () => ({\r\n cmsDataAllPages,\r\n setCmsData: (data: CmsDataAllPages) => {\r\n setCmsData({\r\n ...cmsDataAllPages,\r\n ...data,\r\n });\r\n },\r\n }),\r\n [cmsDataAllPages, setCmsData],\r\n );\r\n return {children};\r\n}\r\n","import React from 'react';\r\nimport { px, styled } from '../../../../style';\r\n\r\nexport interface OwnProps {\r\n title: string;\r\n addressLines: string[];\r\n id?: string;\r\n}\r\n\r\nexport function DividendPaymentSecondaryAddress({ title, addressLines, id }: OwnProps) {\r\n return (\r\n \r\n {title}\r\n {addressLines.map((line, idx) => (\r\n

    {line}
    \r\n ))}\r\n \r\n );\r\n}\r\n\r\nconst Title = styled.div`\r\n font-weight: 600;\r\n font-size: ${(p) => px(p.theme.typography.fontSizeBase)};\r\n`;\r\n\r\nconst Container = styled.div`\r\n margin-top: 40px;\r\n margin-bottom: 20px;\r\n`;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { FormControl } from '../../../../lib/Form/FormControl';\r\n\r\nexport const DividendPaymentOnlyOption = ({ \r\n formProps,\r\n formKey,\r\n label,\r\n type,\r\n options,\r\n}: any) => {\r\n /* Business requirement, to display as default when there is only one payment option available: #138699 */ \r\n if (options.length === 1 && options[0].value) {\r\n const option = options[0].value.toLowerCase();\r\n const labelToDisplay = `Your dividend will be paid by ${option}.`;\r\n\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst Label = styled.div`\r\n font-size: 18px;\r\n margin-bottom: 30px;\r\n font-weight: bold;\r\n`;","import React from 'react';\r\nimport { DividendPaymentFormValues, SecondaryAddressFormAction } from './dividendPaymentForm.model';\r\nimport {\r\n DividendDripDetails,\r\n ExternallyValidatedPaymentField,\r\n ExternallyValidatedPaymentFields,\r\n InternationalACHSetupDetails,\r\n PaymentMethod,\r\n} from '../../../store/dividend.model';\r\nimport { DIVIDEND_PAYMENT_FORM_KEYS as FORM_KEYS } from './dividendPaymentForm.constants';\r\nimport { SelectOption } from '../../../../../lib/Form/Select/select.model';\r\nimport { ChoiceGroupOption } from '../../../../../lib/Form/ChoiceGroup/RadioGroup';\r\nimport { FormBoolean } from '../../../../../lib/Form/Validation/validation.model';\r\nimport { isFalse } from '../../../../../lib/Form/Validation/validation.utils';\r\nimport { styled } from '../../../../../style';\r\nimport { ReadOnlyField } from '../../../../../lib/Form';\r\nimport {\r\n getExternallyValidatedFieldConfig,\r\n getSelectedBankAccount,\r\n getSelectedSetupDetailByCountry,\r\n hasUSAccount,\r\n isFieldExternallyValidated,\r\n showBankAccountFields,\r\n} from './dividendPaymentForm.utils';\r\nimport { ProgressTypeEnum } from '../../../../../store/rootModel';\r\nimport { FormControlItem } from '../../../../../lib/Form/DynamicForm';\r\nimport { FormikProps } from 'formik';\r\nimport { DividendPaymentSecondaryAddress } from '../DividendPaymentSecondaryAddress';\r\nimport {\r\n DividendCmsData,\r\n CmsDataPage,\r\n} from '../../../../../containers/CmsData/store/cmsData.model';\r\nimport {\r\n BankAccountType,\r\n PaymentMethodType,\r\n} from '../../../../../shared/DataStructures/BankAccount';\r\nimport { sortBy } from '../../../../../shared/Data/Array';\r\nimport {\r\n WireTransferPaymentForm,\r\n WireTransferCountryConfig,\r\n} from '../../../../../lib/FormPremades/WireTransferPayment';\r\nimport { getObfuscatedBankAccountNumber } from '../../../../../shared/BankInfo/AccountNumberObfuscationHelper';\r\nimport { BankInfo } from '../../../../../shared/BankInfo/BankInfo';\r\nimport { NewBankAccount } from '../../../../Shares/Sell/models';\r\nimport { Country } from '../../../../../shared/DataStructures';\r\nimport { BankDetailsFormTranslations } from '../../../../../lib/FormPremades/WireTransferPayment/FieldGroups/BankDetailsForm';\r\nimport { WireTransferPaymentPreAmbleFormTranslations } from '../../../../../lib/FormPremades/WireTransferPayment/FieldGroups/WireTransferPaymentPreAmbleForm';\r\nimport { BeneficiaryPaymentFormTranslations } from '../../../../../lib/FormPremades/WireTransferPayment/FieldGroups/BeneficiaryPaymentForm';\r\nimport { isIssueOfferOnlyFullReinvestment } from '../../Plan/helpers/dividendPlanForm.utils';\r\nimport { isNewUserManagingDividends } from '../../../store/dividend.utils';\r\nimport { DividendPaymentOnlyOption } from '../DividendPaymentOnlyOption';\r\n\r\nexport function getDividendPaymentFormFields(\r\n dripDetails: DividendDripDetails,\r\n cmsLabel: (key: string, ...interpolateParams: any[]) => string,\r\n externallyValidatedPaymentFields: ExternallyValidatedPaymentFields,\r\n onExternallyValidatedPaymentFieldBlur: (\r\n formProps: FormikProps,\r\n selectedSetupDetails: InternationalACHSetupDetails,\r\n field: ExternallyValidatedPaymentField,\r\n ) => void,\r\n secondaryAddress: string[],\r\n wireTransferCountryConfig: WireTransferCountryConfig[],\r\n beneficiaryCountries: Country[],\r\n setupDetails?: InternationalACHSetupDetails[],\r\n isDsppFullReinvestment?: boolean,\r\n) {\r\n const _t = (key: keyof DividendCmsData, ...interpolateParams: any[]) =>\r\n cmsLabel(`${CmsDataPage.Dividend}.${key}`, ...interpolateParams);\r\n const paymentOptions = getPaymentOptions(dripDetails, _t, isDsppFullReinvestment);\r\n const directPaymentMethodTypeOptions = getPaymentMethodTypeOptions(\r\n dripDetails,\r\n PaymentMethod.DirectDeposit,\r\n _t,\r\n );\r\n const createNewAccountOptions = getCreateNewAccountOptions(_t);\r\n const bankAccountOptions = getBankAccountOptions(dripDetails);\r\n const directDepositINTCountriesOptions = getDirectDepositINTCountriesOptions(setupDetails);\r\n const accountTypeOptions = getAccountTypeOptions(_t);\r\n const wireTransferLabels = (): BankDetailsFormTranslations &\r\n WireTransferPaymentPreAmbleFormTranslations &\r\n BeneficiaryPaymentFormTranslations => ({\r\n bankAccountTypeCheckingLabel: _t('c142DividendStepPaymentAccountTypeOptionChecking'),\r\n bankAccountTypeSavingsLabel: _t('c143DividendStepPaymentAccountTypeOptionSavings'),\r\n currencyLabel: _t('c380DividendStepPaymentNewWireTransferINTBankCurrencyLabel'),\r\n currencyPlaceholder: _t('c381currencyPlaceholder'),\r\n bankAccountNumberLabel: _t(\r\n 'c340DividendStepPaymentNewWireTransferINTBankAccountNumberForCreditLabel',\r\n ),\r\n countryLabel: _t('c320DividendStepPaymentNewWireTransferINTBankCountryLabel'),\r\n countryPlaceholder: _t('c321beneficiaryCountryPlaceholder'),\r\n bankAccountTypeLabel: _t('c345PaymentBankAccountTypeLabel'),\r\n bankCityLabel: _t('c310DividendStepPaymentNewWireTransferINTBankCityLabel'),\r\n bankInfoTitle: _t('c390HelpAccordionTitle'),\r\n bankInternationalRoutingCodeLabel: _t(\r\n 'c330DividendStepPaymentNewWireTransferINTRoutingNumberLabel',\r\n ),\r\n bankNameLabel: _t('c300DividendStepPaymentNewWireTransferINTBankNameLabel'),\r\n bankSwiftBicCodeLabel: _t('c290DividendStepPaymentNewWireTransferINTSwiftCodeLabel'),\r\n beneficiaryAddress1Label: _t('c590PaymentBeneficiaryAddress1Label'),\r\n beneficiaryAddress2Label: _t('c600PaymentBeneficiaryAddress2Label'),\r\n beneficiaryCityLabel: _t('c360DividendStepPaymentNewWireTransferINTBankAccountHolderCityLabel'),\r\n beneficiaryCountryLabel: _t('c620PaymentBeneficiaryCountryLabel'),\r\n beneficiaryEmailAddressLabel: _t('c550PaymentBeneficiaryEmailAddressLabel'),\r\n beneficiaryNameLabel: _t(\r\n 'c350DividendStepPaymentNewWireTransferINTBankAccountNameForCreditLabel',\r\n ),\r\n beneficiaryStateProvinceLabel: _t('c610PaymentBeneficiaryStateProvinceLabel'),\r\n beneficiaryTaxIDLabel: _t('c540PaymentBeneficiaryTaxIDLabel'),\r\n beneficiaryTelephoneNumberLabel: _t('c560PaymentBeneficiaryTelephoneNumberLabel'),\r\n thresholdNotMetWarningLabel: _t('c385PaymentThresholdNotMet'),\r\n thresholdNotMetDividendInfoLabel: _t('c386PaymentTresholdNotMetInfo'),\r\n });\r\n\r\n let formFields: FormControlItem[] = [\r\n {\r\n formKey: FORM_KEYS.paymentMethod,\r\n label: _t('c80DividendStepPaymentPaymentTypeLabel'),\r\n options: paymentOptions,\r\n //TODO: This group should be visible when we have paymentOptions available,\r\n // Skipping payment step should be done earlier. Check when refactoring.\r\n // Need probably only to show \"all certified...\" in payment step\r\n show: shouldShowPaymentOptions,\r\n customElement: (values, field, formProps) => (\r\n \r\n ),\r\n },\r\n {\r\n formKey: FORM_KEYS.useSecondaryAddress,\r\n label: _t('c420ExistingCheckPaymentAddressChangeDetailsOptionLabel'),\r\n type: 'radioButtonGroup',\r\n required: true,\r\n options: [\r\n { value: 'Yes', key: 'true', id: 'dividends-payment-check-yes-btn' },\r\n { value: 'No', key: 'false', id: 'dividends-payment-check-no-btn' },\r\n ],\r\n show: (values) => values.paymentMethod === PaymentMethod.Check && !secondaryAddress.length,\r\n },\r\n {\r\n formKey: 'any1',\r\n label: 'any1',\r\n customElement: () => (\r\n \r\n ),\r\n show: (values) => values.paymentMethod === PaymentMethod.Check && !!secondaryAddress.length,\r\n },\r\n {\r\n formKey: FORM_KEYS.secondaryAddressFormAction,\r\n label: _t('c440UseRegisteredAddress'),\r\n type: 'radioButtonGroup',\r\n required: true,\r\n options: [\r\n {\r\n value: 'No change',\r\n key: SecondaryAddressFormAction.NoChange,\r\n id: 'dividends-payment-registered-address-nochange-btn',\r\n },\r\n {\r\n value: 'Change secondary address',\r\n key: SecondaryAddressFormAction.Change,\r\n id: 'dividends-payment-registered-address-change-btn',\r\n },\r\n {\r\n value: 'Remove secondary address',\r\n key: SecondaryAddressFormAction.Remove,\r\n id: 'dividends-payment-registered-address-remove-btn',\r\n },\r\n ],\r\n show: (values) => values.paymentMethod === PaymentMethod.Check && !!secondaryAddress.length,\r\n },\r\n {\r\n formKey: FORM_KEYS.paymentMethodType,\r\n label: _t('c90DividendStepPaymentBankAccountTypeLabel'),\r\n type: 'radioButtonGroup',\r\n options: directPaymentMethodTypeOptions,\r\n show: (values) => PaymentMethod.DirectDeposit === values.paymentMethod,\r\n },\r\n {\r\n formKey: FORM_KEYS.createNewAccount,\r\n label: _t('c100DividendStepPaymentCreateNewAccountLabel'),\r\n type: 'radioButtonGroup',\r\n options: createNewAccountOptions,\r\n show: (values) => shouldShowCreateNewAccount(values, dripDetails),\r\n },\r\n {\r\n formKey: FORM_KEYS.bankAccountNumber,\r\n label: _t('c110DividendStepPaymentSelectBankAccountNumberLabel'),\r\n type: 'select',\r\n options: bankAccountOptions,\r\n show: (values) =>\r\n shouldShowCreateNewAccount(values, dripDetails) && isFalse(values.createNewAccount),\r\n },\r\n {\r\n formKey: 'any2',\r\n label: 'any2',\r\n show: (values) =>\r\n shouldShowCreateNewAccount(values, dripDetails) && isFalse(values.createNewAccount),\r\n customElement: (values) => {\r\n const bankAccount = getSelectedBankAccount(values, dripDetails);\r\n return bankAccount ? renderBankAccountDetails(bankAccount, _t) : null;\r\n },\r\n },\r\n\r\n // new Direct Deposit US\r\n {\r\n formKey: FORM_KEYS.newDirectDepositUSBankAccountNumber,\r\n label: _t('c150DividendStepPaymentNewUSBankAccountNumberLabel'),\r\n required: true,\r\n placeholder: _t('c151bankAccountNumberPlaceholder'),\r\n show: (values) => showBankAccountFields.newDirectDepositUS(values, dripDetails),\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositUSBankName,\r\n label: _t('c120DividendStepPaymentNewBankNameLabel'),\r\n required: true,\r\n placeholder: _t('c121bankNamePlaceholder'),\r\n show: (values) => showBankAccountFields.newDirectDepositUS(values, dripDetails),\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositUSRoutingNumber,\r\n label: _t('c130DividendStepPaymentNewUSRoutingNumberLabel'),\r\n labelIconWithTooltip: {\r\n id: 'newUSRoutingNumberLabel',\r\n tooltipHeader: _t('c160USABARoutingNumberTooltipTitle'),\r\n tooltipContent: _t('c161USABARoutingNumberTooltipCopy'),\r\n },\r\n required: true,\r\n placeholder: _t('c162routingNumberPlaceholder'),\r\n show: (values) => showBankAccountFields.newDirectDepositUS(values, dripDetails),\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositUSBankAccountType,\r\n label: _t('c140DividendStepPaymentNewUSAccountTypeLabel'),\r\n type: 'select',\r\n options: accountTypeOptions,\r\n required: true,\r\n placeholder: _t('c141accountTypePlaceholder'),\r\n show: (values) => showBankAccountFields.newDirectDepositUS(values, dripDetails),\r\n },\r\n {\r\n formKey: 'an3',\r\n label: 'any3',\r\n customElement: () => (\r\n \r\n ),\r\n show: (values) => showBankAccountFields.newDirectDepositUS(values, dripDetails),\r\n },\r\n\r\n // new Direct Deposit International\r\n {\r\n formKey: FORM_KEYS.newDirectDepositINTBankCountry,\r\n label: _t('c180DividendDetailsSelectCountryLabel'),\r\n type: 'select',\r\n options: directDepositINTCountriesOptions,\r\n required: true,\r\n placeholder: _t('c181selectCountryPlaceholder'),\r\n show: (values) => showBankAccountFields.newDirectDepositInt(values),\r\n },\r\n {\r\n formKey: 'bankInfo',\r\n label: 'bankInfo',\r\n customElement: (values) => (\r\n \r\n ),\r\n show: (values) =>\r\n values.paymentMethod === PaymentMethod.DirectDeposit &&\r\n !!values.newDirectDepositINTBankCountry,\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositINTBankAccountNumber,\r\n label: _t('c150DividendStepPaymentNewINTBankAccountNumberLabel'),\r\n show: (values) =>\r\n showBankAccountFields.newDirectDepositInt(values) &&\r\n !showIBAN(values.newDirectDepositINTBankCountry, setupDetails),\r\n required: true,\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositINTIBAN,\r\n label: _t('dividendStepPaymentNewINTIBANLabel'),\r\n show: (values) =>\r\n showBankAccountFields.newDirectDepositInt(values) &&\r\n showIBAN(values.newDirectDepositINTBankCountry, setupDetails),\r\n required: true,\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositINTRoutingNumber,\r\n label: _t('c190DividendDetailsINTRoutingNumberLabel'),\r\n show: (values) =>\r\n showBankAccountFields.newDirectDepositInt(values) &&\r\n !showIBAN(values.newDirectDepositINTBankCountry, setupDetails),\r\n placeholder: _t('c191INTRoutingNumberPlaceholder'),\r\n required: true,\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositINTSwiftBicCode,\r\n label: _t('dividendStepPaymentNewINTSwiftBicLabel'),\r\n show: (values) =>\r\n showBankAccountFields.newDirectDepositInt(values) &&\r\n showIBAN(values.newDirectDepositINTBankCountry, setupDetails),\r\n required: true,\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositINTBankName,\r\n label: _t('c120DividendStepPaymentSelectedAccountBankNameLabel'),\r\n required: true,\r\n placeholder: _t('c121bankNamePlaceholder'),\r\n show: (values) => showBankAccountFields.newDirectDepositInt(values),\r\n },\r\n {\r\n formKey: FORM_KEYS.newDirectDepositINTBankCity,\r\n label: _t('c210BankCityLabel'),\r\n required: true,\r\n placeholder: _t('c211bankCityPlaceholder'),\r\n show: (values) => showBankAccountFields.newDirectDepositInt(values),\r\n },\r\n {\r\n formKey: 'any4',\r\n label: 'any4',\r\n customElement: (values) => {\r\n const selectedSetupDetails = getSelectedSetupDetailByCountry(\r\n setupDetails,\r\n values.newDirectDepositINTBankCountry,\r\n );\r\n return (\r\n \r\n );\r\n },\r\n show: (values) => {\r\n const selectedSetupDetails = getSelectedSetupDetailByCountry(\r\n setupDetails,\r\n values.newDirectDepositINTBankCountry,\r\n );\r\n return showBankAccountFields.newDirectDepositInt(values) && !!selectedSetupDetails;\r\n },\r\n },\r\n {\r\n formKey: 'wireTransferForm',\r\n label: '',\r\n customElement: () => (\r\n \r\n ),\r\n show: (values) => PaymentMethod.WireTransfer === values.paymentMethod,\r\n },\r\n ];\r\n\r\n formFields.forEach((field) => {\r\n if (isFieldExternallyValidated(field.formKey)) {\r\n const config = getExternallyValidatedFieldConfig(\r\n externallyValidatedPaymentFields,\r\n field.formKey,\r\n );\r\n const loading = config.loading === ProgressTypeEnum.Loading;\r\n field.icon = loading ? 'loading' : undefined;\r\n field.disabled = (values) => {\r\n const selectedSetupDetails = getSelectedSetupDetailByCountry(\r\n setupDetails,\r\n values.newDirectDepositINTBankCountry,\r\n );\r\n return !selectedSetupDetails || loading;\r\n };\r\n field.onBlur = (formProps) => () => {\r\n const selectedSetupDetails = getSelectedSetupDetailByCountry(\r\n setupDetails,\r\n formProps.values.newDirectDepositINTBankCountry,\r\n );\r\n onExternallyValidatedPaymentFieldBlur(\r\n formProps,\r\n selectedSetupDetails!,\r\n field.formKey as ExternallyValidatedPaymentField,\r\n );\r\n };\r\n }\r\n });\r\n\r\n return formFields;\r\n\r\n function shouldShowPaymentOptions() {\r\n const reinvestmentOptions = dripDetails.reinvestmentOptions;\r\n const onlyFullReinvestmentAllowed = isIssueOfferOnlyFullReinvestment(reinvestmentOptions);\r\n const newUserManagingDividends = isNewUserManagingDividends(dripDetails);\r\n\r\n return (\r\n !onlyFullReinvestmentAllowed || (onlyFullReinvestmentAllowed && newUserManagingDividends)\r\n );\r\n }\r\n}\r\n\r\nfunction getPaymentOptions(\r\n dripDetails: DividendDripDetails,\r\n _t: (key: keyof DividendCmsData) => string,\r\n dsppFullInvestment?: boolean,\r\n): ChoiceGroupOption[] {\r\n if (dsppFullInvestment) {\r\n return [\r\n {\r\n key: PaymentMethod.Check,\r\n value: _t('c81HowDoYouWantYourMoneyPaidToggle'),\r\n id: `dividends-payment-options-check-btn`,\r\n },\r\n ];\r\n }\r\n\r\n return (\r\n (dripDetails.paymentOptions || [])\r\n .map((option) => ({\r\n key: option.paymentOption,\r\n value: option.paymentOption as string,\r\n id: `dividends-payment-options-${option.paymentOption.toLowerCase().replace(' ', '-')}-btn`,\r\n }))\r\n // keep with unique key only\r\n .filter((option, pos, arr) => arr.map((mapObj) => mapObj.key).indexOf(option.key) === pos)\r\n .concat((dripDetails.checkAllowedSOL\r\n ? {\r\n key: PaymentMethod.Check,\r\n value: _t('c81HowDoYouWantYourMoneyPaidToggle'),\r\n id: `dividends-payment-options-check-btn`,\r\n }\r\n : undefined) as any)\r\n .filter((_) => !!_)\r\n );\r\n}\r\n\r\nfunction getPaymentMethodTypeOptions(\r\n dripDetails: DividendDripDetails,\r\n paymentMethod: PaymentMethod,\r\n _t: (key: keyof DividendCmsData) => string,\r\n): ChoiceGroupOption[] {\r\n return (dripDetails.paymentOptions || [])\r\n .filter(({ paymentOption }) => paymentOption === paymentMethod)\r\n .map(({ paymentOptionType }) => {\r\n if (paymentOptionType === PaymentMethodType.US) {\r\n return {\r\n key: PaymentMethodType.US,\r\n value: _t('c91DomesticOrInternationalBankToggle'),\r\n id: 'dividends-payment-us-btn',\r\n };\r\n }\r\n if (paymentOptionType === PaymentMethodType.International) {\r\n return {\r\n key: PaymentMethodType.International,\r\n value: _t('c92DomesticOrInternationalBankToggle'),\r\n id: 'dividends-payment-international-btn',\r\n };\r\n }\r\n return null;\r\n })\r\n .filter((o) => !!o) as ChoiceGroupOption[];\r\n}\r\n\r\nfunction getCreateNewAccountOptions(\r\n _t: (key: keyof DividendCmsData) => string,\r\n): ChoiceGroupOption[] {\r\n return [\r\n {\r\n key: 'false',\r\n value: _t('c101ExistingOrCreateAccountToggle'),\r\n id: 'dividends-payment-existing-btn',\r\n },\r\n {\r\n key: 'true',\r\n value: _t('c102ExistingOrCreateAccountToggle'),\r\n id: 'dividends-payment-new-btn',\r\n },\r\n ];\r\n}\r\n\r\nfunction getBankAccountOptions(dripDetails: DividendDripDetails): SelectOption[] {\r\n return (dripDetails.usBankAccounts || []).map(({ bankAccountNumber }) => ({\r\n value: bankAccountNumber,\r\n label: getObfuscatedBankAccountNumber(bankAccountNumber),\r\n }));\r\n}\r\n\r\nfunction getDirectDepositINTCountriesOptions(\r\n setupDetails?: InternationalACHSetupDetails[],\r\n): SelectOption[] {\r\n return (setupDetails || [])\r\n .map((country) => ({\r\n value: country.country.code,\r\n label: country.country.name,\r\n }))\r\n .sort(sortBy((option) => option.label && option.label.trim().toLowerCase()));\r\n}\r\n\r\nfunction getAccountTypeOptions(_t: (key: keyof DividendCmsData) => string): SelectOption[] {\r\n return [\r\n {\r\n value: BankAccountType.Checking,\r\n label: _t('c142DividendStepPaymentAccountTypeOptionChecking'),\r\n },\r\n {\r\n value: BankAccountType.Savings,\r\n label: _t('c143DividendStepPaymentAccountTypeOptionSavings'),\r\n },\r\n ];\r\n}\r\n\r\nfunction shouldShowCreateNewAccount(\r\n values: DividendPaymentFormValues,\r\n dripDetails: DividendDripDetails,\r\n) {\r\n return (\r\n values.paymentMethod === PaymentMethod.DirectDeposit &&\r\n values.paymentMethodType === PaymentMethodType.US &&\r\n hasUSAccount(dripDetails)\r\n );\r\n}\r\n\r\nexport function showIBAN(country: string, setupDetails?: InternationalACHSetupDetails[]) {\r\n const selectedSetupDetails = getSelectedSetupDetailByCountry(setupDetails, country);\r\n return !!selectedSetupDetails && selectedSetupDetails.iBAN === '02';\r\n}\r\n\r\nfunction renderBankAccountDetails(\r\n { bankName, routingNumber, accountType }: NewBankAccount,\r\n _t: (key: keyof DividendCmsData) => string,\r\n) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst ReadOnlyFieldsRow = styled.div`\r\n ${(p) => p.theme.media.desktop.andUp} {\r\n display: flex;\r\n\r\n div + div {\r\n margin-left: 40px;\r\n }\r\n }\r\n`;\r\n","export const DEFAULT_COLORS = {\r\n primary1: '#DE0001',\r\n primary2: '#343434',\r\n primary3: '#CCCCCC',\r\n primary4: '#006E8E', // TFS #117011 for details\r\n secondary1: '#5B5486',\r\n secondary2: '#7F94BA',\r\n secondary3: '#7F94BA',\r\n secondary4: '#DEEAED',\r\n secondary5: '#D4DACE',\r\n secondary6: '#5CB85C',\r\n secondary7: '#D99F00',\r\n secondary8: '#856AA0',\r\n secondary9: '#f2f2f2',\r\n tertiary1: '#F1F1F1',\r\n body: '#373A3C',\r\n grey: '#757575',\r\n white: '#fff',\r\n black: '#000',\r\n highlight: '#338BA5', // used mainly in Table-related components\r\n error: '#F20000', // TODO re-think usage of dangerText instead\r\n disabledBackground: '#F7F7F7', // Very close to #f5f5f5, which is used as color background for Clear Filters area in Filters\r\n // TODO: These colors are taken from designs and should probably be changed into default branding colors\r\n lightBlue: '#1D7E9A', // Suggested to use for Context Help boxes\r\n successBorder: '#336600',\r\n successBackground: '#EEF7EE',\r\n tableBorderSecondary: '#E0E0E0',\r\n tooltipHeaderBg: '#F2F2F2',\r\n tooltipHeaderBorder: '#EBEBEB',\r\n greyHeading: '#5c5a5a',\r\n progressBarFg: '#006f91',\r\n progressBarBg: '#b5d8e0',\r\n dangerBackground: '#FFE7E7',\r\n dangerBorder: '#FFE7E7', // TODO\r\n dangerText: '#D60000',\r\n};\r\n","export const DEFAULT_TYPOGRAPHY = {\r\n fontFamily: 'Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif',\r\n // DEV: \"Helvetica Neue\", Helvetica, Arial, sans-serif\r\n\r\n // TODO: All these values used. Need to refactor attentivelly\r\n fontSizeBase: 16,\r\n fontSizeH1: 48,\r\n fontSizeH2: 32,\r\n fontSizeH3: 26,\r\n fontSizeH4: 18,\r\n // TODO: All these values used. Need to refactor attentivelly\r\n\r\n //\r\n //\r\n // No: used yet\r\n fontWeightLight: 300, // | DEV 100\r\n fontWeightRegular: 500, // | DEV 300\r\n fontWeightMedium: 700, // | DE 500\r\n fontSizeH1Desktop: 48,\r\n fontSizeH2Desktop: 32,\r\n fontSizeH3Desktop: 24,\r\n fontSizeH4Desktop: 18,\r\n fontSizeH1Tablet: 36,\r\n fontSizeH2Tablet: 28,\r\n fontSizeH3Tablet: 22,\r\n fontSizeH4Tablet: 18,\r\n fontSizeH1Mobile: 28,\r\n fontSizeH2Mobile: 22,\r\n fontSizeH3Mobile: 18,\r\n fontSizeH4Mobile: 18,\r\n\r\n // == DESKTOP ==\r\n fontSizeBodyDesktop: 16,\r\n fontSizeBodyTitleDesktop: 16,\r\n lineHeightBodyDesktop: 20,\r\n lineHeightBodyTitleDesktop: 20,\r\n\r\n fontSizeFootNoteDesktop: 14,\r\n lineHeightFootNoteDesktop: 20,\r\n\r\n fontSizeTableHeaderDesktop: 14,\r\n lineHeightTableHeaderDesktop: 18,\r\n fontSizeTableDataDesktop: 14,\r\n lineHeightTableDataDesktop: 18,\r\n\r\n fontSizeTableHeaderSmallDesktop: 12,\r\n lineHeightTableHeaderSmallDesktop: 16,\r\n fontSizeTableDataSmallDesktop: 12,\r\n lineHeightTableDataSmallDesktop: 16,\r\n\r\n fontSizeBreadcrumbDesktop: 14,\r\n lineHeightBreadcrumbDesktop: 18,\r\n\r\n // == TABLET ==\r\n fontSizeBodyTablet: 16,\r\n lineHeightBodyTablet: 20,\r\n fontSizeBodyTitleTablet: 16,\r\n lineHeightBodyTitleTablet: 20,\r\n\r\n fontSizeFootNoteTablet: 12,\r\n lineHeightFootNoteTablet: 20,\r\n\r\n fontSizeTableHeaderTablet: 14,\r\n lineHeightTableHeaderTablet: 18,\r\n fontSizeTableDataTablet: 14,\r\n lineHeightTableDataTablet: 18,\r\n\r\n fontSizeTableHeaderSmallTablet: 12,\r\n lineHeightTableHeaderSmallTablet: 16,\r\n fontSizeTableDataSmallTablet: 12,\r\n lineHeightTableDataSmallTablet: 16,\r\n\r\n fontSizeBreadcrumbTablet: 12,\r\n lineHeightBreadcrumbTablet: 16,\r\n\r\n // == MOBILE ==\r\n fontSizeBodyMobile: 14,\r\n lineHeightBodyMobile: 20,\r\n\r\n fontSizeBodyTitleMobile: 14,\r\n lineHeightBodyTitleMobile: 20,\r\n\r\n fontSizeFootNoteMobile: 12,\r\n lineHeightFootNoteMobile: 16,\r\n\r\n fontSizeTableHeaderMobile: 14,\r\n lineHeightTableHeaderMobile: 18,\r\n fontSizeTableDataMobile: 14,\r\n lineHeightTableDataMobile: 18,\r\n\r\n fontSizeTableHeaderSmallMobile: 12,\r\n lineHeightTableHeaderSmallMobile: 16,\r\n fontSizeTableDataSmallMobile: 12,\r\n lineHeightTableDataSmallMobile: 16,\r\n\r\n fontSizeBreadcrumbMobile: 12,\r\n lineHeightBreadcrumbMobile: 16,\r\n\r\n // No: used yet\r\n //\r\n //\r\n};\r\n","// branding is all the styles that come from api\r\nimport { DEFAULT_COLORS } from './defaultColors';\r\nimport { DEFAULT_TYPOGRAPHY } from './defaultTypography';\r\nexport type Colors = typeof DEFAULT_COLORS;\r\n\r\nexport const DEFAULT_BRANDING = {\r\n colors: DEFAULT_COLORS,\r\n typography: DEFAULT_TYPOGRAPHY\r\n};\r\n\r\n// Currently, branding from api comes flattened\r\nexport type ApiBranding = typeof DEFAULT_COLORS & typeof DEFAULT_TYPOGRAPHY;\r\n\r\n// in React app, we use not flat branding object\r\nexport type Branding = typeof DEFAULT_BRANDING;\r\n\r\n// this method helps to transform apiBranding to expected branding\r\nexport function toBranding(apiBranding: ApiBranding): Branding {\r\n const {\r\n fontFamily,\r\n fontSizeBase,\r\n fontSizeH1,\r\n fontSizeH2,\r\n fontSizeH3,\r\n fontSizeH4,\r\n ...colors\r\n } = apiBranding;\r\n\r\n const typography = {\r\n fontFamily,\r\n fontSizeBase,\r\n fontSizeH1,\r\n fontSizeH2,\r\n fontSizeH3,\r\n fontSizeH4\r\n };\r\n\r\n // TODO - implement smart code using type, typeof, keyof, enum from TypeScript or JavaScript to minimize number of duplication.\r\n return {\r\n typography: {\r\n ...DEFAULT_TYPOGRAPHY,\r\n ...typography\r\n },\r\n colors: {\r\n ...DEFAULT_COLORS,\r\n ...colors\r\n }\r\n };\r\n}\r\n","export enum BuyStep {\r\n SelectCompany = 0,\r\n SelectAccount = 1,\r\n VerifyRegistration = 2,\r\n CreateAccountSSN = 3,\r\n CreateAccountInformation = 4,\r\n CreateAccountAgreements = 5,\r\n YourNewInvestment = 6,\r\n YourEditInvestment = 7,\r\n Payment = 8,\r\n EDelivery = 9,\r\n DividendInvestment = 10,\r\n DividendPayment = 11,\r\n Confirm = 12,\r\n Summary = 13,\r\n DsppGetCompanies = 14,\r\n DsppVerification = 15,\r\n DsppEsignAgreement = 16,\r\n DsppOnlineAgreement = 17,\r\n DsppCreateProfile = 18,\r\n DsppCreateAccount = 19,\r\n DsppTaxCertificationAgreement = 20,\r\n}\r\n\r\nexport enum BuyFlow {\r\n NoFlow = 'NoFlow',\r\n BuyInPlanNewAccount = 'BuyInPlanNewAccount',\r\n BuyInPlanExistingAccount = 'BuyInPlanExistingAccount',\r\n BuyInPlanEdit = 'BuyInPlanEdit',\r\n BuyInPlanEditFromPortfolio = 'BuyInPlanEditFromPortfolio',\r\n BuyInPlanEditInvestment = 'BuyInPlanEditInvestment',\r\n BuyInPlanEditInvestmentAndPayment = 'BuyInPlanEditInvestmentAndPayment',\r\n BuyInPlanEditPayment = 'BuyInPlanEditPayment',\r\n BuyInPlanCancelInvestment = 'BuyInPlanCancelInvestment',\r\n BuyInPlanExistingAccountNoCompany = 'BuyInPlanExistingAccountNoCompany',\r\n BuyInPlanExistingAccountWithStockNoAutomaticInvestment = 'BuyInPlanExistingAccountWithStockNoAutomaticInvestment',\r\n BuyInPlanExistingAccountWithStockNoAutomaticInvestmentNoVerify = 'BuyInPlanExistingAccountWithStockNoAutomaticInvestmentNoVerify',\r\n NoStockWithoutDividendInvestment = 'NoStockWithoutDividendInvestment',\r\n WithStockWithoutDividendInvestment = 'WithStockWithoutDividendInvestment',\r\n NoStockFullDividendReinvestment = 'NoStockFullDividendReinvestment',\r\n WithStockFullDividendReinvestment = 'WithStockFullDividendReinvestment',\r\n NoStockDividendPayingNotAllowed = 'NoStockDividendPayingNotAllowed',\r\n WithStockDividendPayingNotAllowed = 'WithStockDividendPayingNotAllowed',\r\n AnonymousBuyInDspp = 'AnonymousBuyInDspp',\r\n AnonymousBuyInDsppPayingNotAllowed = 'AnonymousBuyInDsppPayingNotAllowed',\r\n AnonymousBuyInDsppDRIPNotAllowed = 'AnonymousBuyInDsppDRIPNotAllowed',\r\n}\r\n","import { createAction } from '../../../../store/reduxBoilerplate';\r\nimport {\r\n AccountProfileField,\r\n LoadAccountProfileDataResponse,\r\n ConfirmData,\r\n} from './accountProfile.model';\r\nimport { ApiValidationError } from '../../../../lib/Form/Validation/validation.model';\r\nimport { ModalProps } from '../../../../lib/Modal/store/model';\r\n\r\nexport enum AccountProfileActionTypes {\r\n LOAD = '[Account profile] LOAD',\r\n LOAD_DONE = '[Account profile] LOAD_DONE',\r\n LOAD_FAIL = '[Account profile] LOAD_FAIL',\r\n\r\n SET_EDIT_MODE = '[Account profile] SET_EDIT_MODE',\r\n UNSET_EDIT_MODE = '[Account profile] UNSET_EDIT_MODE',\r\n\r\n SET_CONFIRM_MODE = '[Account profile] SET_CONFIRM_MODE',\r\n UNSET_CONFIRM_MODE = '[Account profile] UNSET_CONFIRM_MODE',\r\n\r\n UPDATE_FIELD = '[Account profile] UPDATE_FIELD',\r\n UPDATE_FIELD_DONE = '[Account profile] UPDATE_FIELD_DONE',\r\n UPDATE_FIELD_FAIL = '[Account profile] UPDATE_FIELD_FAIL',\r\n\r\n CHECK_USERNAME = '[Account profile] CHECK_USERNAME',\r\n CHECK_USERNAME_DONE = '[Account profile] CHECK_USERNAME_DONE',\r\n CHECK_USERNAME_FAIL = '[Account profile] CHECK_USERNAME_FAIL',\r\n\r\n CHECK_PASSWORD = '[Account profile] CHECK_PASSWORD',\r\n CHECK_PASSWORD_DONE = '[Account profile] CHECK_PASSWORD_DONE',\r\n CHECK_PASSWORD_FAIL = '[Account profile] CHECK_PASSWORD_FAIL',\r\n\r\n CHECK_EMAIL_BATCH = '[Account profile] CHECK_EMAIL_BATCH',\r\n CHECK_EMAIL_BATCH_DONE = '[Account profile] CHECK_EMAIL_BATCH_DONE',\r\n CHECK_EMAIL_BATCH_FAIL = '[Account profile] CHECK_EMAIL_BATCH_FAIL',\r\n\r\n VALIDATE_CURRENT_PASSWORD = '[Account profile] VALIDATE_CURRENT_PASSWORD',\r\n VALIDATE_CURRENT_PASSWORD_DONE = '[Account profile] VALIDATE_CURRENT_PASSWORD_DONE',\r\n VALIDATE_CURRENT_PASSWORD_FAIL = '[Account profile] VALIDATE_CURRENT_PASSWORD_FAIL',\r\n\r\n RESET = '[Account profile] RESET',\r\n}\r\n\r\nconst AT = AccountProfileActionTypes;\r\n\r\nexport const accountProfileActions = {\r\n load: () => createAction(AT.LOAD),\r\n loadDone: (data: LoadAccountProfileDataResponse) => createAction(AT.LOAD_DONE, { data }),\r\n loadFail: () => createAction(AT.LOAD_FAIL),\r\n\r\n setEditMode: (field: AccountProfileField) => createAction(AT.SET_EDIT_MODE, { field }),\r\n unsetEditMode: (field: AccountProfileField) => createAction(AT.UNSET_EDIT_MODE, { field }),\r\n\r\n setConfirmMode: (field: AccountProfileField, data: ConfirmData) =>\r\n createAction(AT.SET_CONFIRM_MODE, { field, data }),\r\n unsetConfirmMode: () => createAction(AT.UNSET_CONFIRM_MODE),\r\n\r\n validateCurrentPassword: (field: AccountProfileField, data: ConfirmData) =>\r\n createAction(AT.VALIDATE_CURRENT_PASSWORD, { field, data }),\r\n validateCurrentPasswordDone: () => createAction(AT.VALIDATE_CURRENT_PASSWORD_DONE),\r\n validateCurrentPasswordFail: (errors?: ApiValidationError[]) =>\r\n createAction(AT.VALIDATE_CURRENT_PASSWORD_FAIL, { errors }),\r\n\r\n updateField: (field: AccountProfileField, data: ConfirmData, modalProps?: ModalProps) =>\r\n createAction(AT.UPDATE_FIELD, {\r\n field,\r\n data,\r\n modalProps,\r\n }),\r\n updateFieldDone: (field: AccountProfileField, data: ConfirmData) =>\r\n createAction(AT.UPDATE_FIELD_DONE, { field, data }),\r\n updateFieldFail: (errors?: ApiValidationError[]) =>\r\n createAction(AT.UPDATE_FIELD_FAIL, { errors }),\r\n\r\n checkUsername: (username: string) =>\r\n createAction(AT.CHECK_USERNAME, {\r\n username,\r\n }),\r\n checkUsernameDone: (exist: boolean) => createAction(AT.CHECK_USERNAME_DONE, { exist }),\r\n checkUsernameFail: () => createAction(AT.CHECK_USERNAME_FAIL),\r\n\r\n checkPassword: (password: string) =>\r\n createAction(AT.CHECK_PASSWORD, {\r\n password,\r\n }),\r\n checkPasswordDone: (passwordHistoryCount: number) =>\r\n createAction(AT.CHECK_PASSWORD_DONE, { passwordHistoryCount }),\r\n checkPasswordFail: () => createAction(AT.CHECK_PASSWORD_FAIL),\r\n\r\n checkEmailBatchPending: (field: AccountProfileField, data: ConfirmData) =>\r\n createAction(AT.CHECK_EMAIL_BATCH, { field, data }),\r\n checkEmailBatchPendingDone: (saveEmailAddressPending: boolean) =>\r\n createAction(AT.CHECK_EMAIL_BATCH_DONE, { saveEmailAddressPending }),\r\n checkEmailBatchPendingFail: () => createAction(AT.CHECK_EMAIL_BATCH_FAIL),\r\n\r\n reset: () => createAction(AT.RESET),\r\n};\r\n","import React from 'react';\r\nimport { styled } from '../../style/theme/themeModule';\r\nimport { ActionLink } from '../ActionLink/ActionLink';\r\n\r\ninterface OwnProps {\r\n centered?: boolean;\r\n className?: string;\r\n onRetry?: () => void;\r\n}\r\n\r\nexport function LoadFailedMessage({ centered, className, onRetry }: OwnProps) {\r\n return (\r\n \r\n {/* TODO: add to cmsData */}\r\n The requested page was not completed\r\n {!!onRetry && '. Please '}\r\n {!!onRetry && try again}\r\n \r\n );\r\n}\r\n\r\nconst MessageBox = styled.div<{ centered?: boolean }>`\r\n ${(p) => p.centered && 'text-align: center'};\r\n`;\r\n\r\nconst Text = styled.span`\r\n font-style: italic;\r\n`;\r\n","export { Typography } from './Typography';\r\n","import { useEffect, useState } from 'react';\r\nimport Axios from 'axios';\r\nimport { getWindowMedia, WindowMedia } from './utils';\r\nimport { ApiBranding, toBranding } from './branding';\r\nimport { ThemeType, getTheme } from './theme';\r\nimport { AppWindow } from '../../types';\r\n\r\nexport function useWindowMedia(): WindowMedia {\r\n const [windowMedia, setWindowMedia] = useState(getWindowMedia());\r\n useEffect(() => {\r\n const updateWindowMedia = () => {\r\n setWindowMedia(getWindowMedia());\r\n };\r\n updateWindowMedia();\r\n window.addEventListener('resize', updateWindowMedia);\r\n return () => window.removeEventListener('resize', updateWindowMedia);\r\n }, []);\r\n return windowMedia;\r\n}\r\n\r\nexport function useBranding() {\r\n const [theme, setTheme] = useState();\r\n\r\n useEffect(() => {\r\n const w = window as AppWindow;\r\n if (process.env.REACT_APP_USE_MAIN_SITE_BRANDING === 'true') {\r\n Axios.get(\r\n 'https://localhost:44340/umbraco/surface/reactthemingsurface/GetProperties',\r\n ).then((res) => {\r\n setTheme(getTheme(toBranding(res.data)));\r\n });\r\n } else {\r\n const branding = w.sol && w.sol.theming && toBranding(w.sol.theming);\r\n setTheme(getTheme(branding));\r\n }\r\n }, []);\r\n\r\n return theme;\r\n}\r\n","import React from 'react';\r\nimport { Theme, styled } from '../../style/theme/themeModule';\r\n\r\ninterface OwnProps {\r\n onClick: () => void;\r\n underlined?: boolean;\r\n className?: string;\r\n children?: any;\r\n id?: string;\r\n}\r\n\r\nexport function ActionLink({ onClick, underlined, className, children, id }: OwnProps) {\r\n function handleClick(e: React.MouseEvent) {\r\n e.preventDefault();\r\n onClick();\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n underlined: boolean;\r\n}\r\n\r\n/* \r\nTODO in nearest future, if we remove Brand.cshtml and SassFileHandler.ashx usage from SOnL,\r\nwe may need to get back to this component, and use color for link from either p.theme.colors.primary1 or another dedicated color.\r\nBut for now, color is defined by Umbraco.\r\nThere are a few similar components: Link.tsx, Hyperlink.tsx (2)\r\nPlus I see 2 approaches: \r\n1) styled(Link) where { Link } is from 'react-router-dom' (1 example in IssueLink.tsx) \r\n2) styled.a`` majority of examples\r\nTODO: research, refactor, clean up the code.\r\n*/\r\nconst Container = styled.a`\r\n ${(p: ContainerProps) =>\r\n p.underlined &&\r\n `\r\n text-decoration: underline;\r\n\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { Col, Grid, Row } from '../Grid';\r\n\r\n//#region Type definitions\r\ninterface OwnProps {\r\n showProgress?: boolean;\r\n progress?: number | undefined | null;\r\n}\r\n\r\ntype Props = React.PropsWithChildren;\r\n//#endregion\r\n\r\n/**\r\n * Styled wrapper for loading spinner, load percentage and error message.\r\n * Not intended to be used by itself.\r\n * @param showProgress If true, will display additional line with centered \"progress\" number in it.\r\n * @param progress Number corresponding to current progress\r\n * @param children Element to display in first row.\r\n */\r\nexport function IncompleteLoadContainer({ showProgress, progress, children }: Props) {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n {showProgress && (\r\n \r\n {progress}%\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\n//#region Styling\r\nconst ColCentered = styled(Col)`\r\n text-align: center;\r\n`;\r\n//#endregion\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { LoadFailedMessage } from '../LoadFailedMessage/LoadFailedMessage';\r\nimport { Spinner } from '../Spinner/Spinner';\r\nimport { ApiHookState } from '../../api/api.hooks';\r\nimport { IncompleteLoadContainer } from './IncompleteLoadContainer';\r\n\r\n//#region Type definitions\r\ninterface OwnProps {\r\n loaders: ApiHookState[];\r\n showProgress?: boolean;\r\n}\r\ntype Props = React.PropsWithChildren;\r\n//#endregion\r\n\r\n/**\r\n * Displays a loading indicator while useApiGet calls are being processed.\r\n * In case of errors will display retry links.\r\n * \"null-safe\" - will not render children until all data has finished loading successfully\r\n * @param loaders Array of objects returned by useApiGet\r\n * @param children Components to render once loading is completed\r\n * @param showProgress If true - will display loading percentage (as a product of all loaders and the ones that are still loading)\r\n */\r\nexport function LoadHandler({ loaders, children, showProgress }: Props) {\r\n // Show spinner while at least one request is set to \"loading\"\r\n const requestsStillLoading = findRequestsStillLoading(loaders);\r\n if (isLoading(requestsStillLoading)) {\r\n return getLoadingView(showProgress, requestsStillLoading, loaders);\r\n }\r\n\r\n // Show single error with retry link for all request that have errors\r\n const requestsWithErrors = findRequestsWithErrors(loaders);\r\n if (errorsOccurred(requestsWithErrors)) {\r\n return getErrorView(requestsWithErrors);\r\n }\r\n\r\n // If neither loading, nor errors detected - render children\r\n return <>{children};\r\n}\r\n\r\n//#region Private code\r\nfunction handleRetry(requestsWithErrors: ApiHookState[]) {\r\n requestsWithErrors.forEach((e) => e.retry());\r\n}\r\n\r\nfunction isLoading(requests: ApiHookState[]): boolean {\r\n return !!requests && !!requests.length;\r\n}\r\n\r\nfunction errorsOccurred(requests: ApiHookState[]): boolean {\r\n return !!requests && !!requests.length;\r\n}\r\n\r\nfunction findRequestsStillLoading(requests: ApiHookState[]): ApiHookState[] {\r\n return requests.filter((l) => l.loading);\r\n}\r\n\r\nfunction findRequestsWithErrors(requests: ApiHookState[]): ApiHookState[] {\r\n return requests.filter((l) => !!l.error);\r\n}\r\n\r\nfunction getLoadProgress(loadingRequests: ApiHookState[], allRequests: ApiHookState[]) {\r\n const completedLoaders = loadingRequests.length / allRequests.length;\r\n return Math.floor((1 - completedLoaders) * 100);\r\n}\r\n\r\nfunction getLoadingView(\r\n showProgress: boolean | undefined,\r\n loadingRequests: ApiHookState[],\r\n allRequests: ApiHookState[],\r\n) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction getErrorView(requestsWithErrors: ApiHookState[]) {\r\n return (\r\n \r\n handleRetry(requestsWithErrors)} />\r\n \r\n );\r\n}\r\n//#endregion\r\n\r\n//#region Styling\r\nconst ErrorCentered = styled(LoadFailedMessage)`\r\n text-align: center;\r\n`;\r\n//#endregion\r\n","export { LoadHandler } from './LoadHandler';\r\nexport { useLoading } from './UseLoadingHook';\r\n","import { createMatchSelector, RouterState } from 'connected-react-router';\r\nimport { EXTERNAL_ROUTES } from './routes';\r\n\r\ntype Params = {\r\n [key: string]: string;\r\n};\r\n\r\nexport type QueryParams = {\r\n [key: string]: string | undefined | (string | undefined)[];\r\n};\r\n\r\nexport function normalize(param: string): string | undefined {\r\n return !param || param === '0' ? undefined : param;\r\n}\r\n\r\n/**\r\n *\r\n * @param matchingString\r\n * @param router\r\n * @param param\r\n * @param defaultValue\r\n *\r\n * @deprecated because many pages use URL params for sensitive data, so we better avoid it and reuse Router.location.state instead.\r\n */\r\nexport function getParam(\r\n matchingString: string,\r\n router: RouterState,\r\n param: string,\r\n defaultValue?: string,\r\n): string {\r\n const matchSelector = createMatchSelector(matchingString);\r\n const match = matchSelector({ router });\r\n\r\n if (!!match) {\r\n return (match.params as Params)[param] || defaultValue || '';\r\n }\r\n\r\n return defaultValue || '';\r\n}\r\n\r\nexport function navigateWithRefresh(path: string) {\r\n window.location.href = path;\r\n}\r\n\r\nexport function openNewTab(path: string) {\r\n window.open(path);\r\n}\r\n\r\nexport function navigateExternal(path: keyof typeof EXTERNAL_ROUTES) {\r\n return navigateWithRefresh(EXTERNAL_ROUTES[path]);\r\n}\r\n","import React from 'react';\r\nimport { FieldProps } from 'formik';\r\nimport { WithValidationProps, withValidation } from '../Validation/WithValidation';\r\nimport { SelectOption, SelectProps } from './select.model';\r\nimport { BaseSelect } from './BaseSelect';\r\n\r\ntype Props = SelectProps &\r\n (FieldProps) &\r\n WithValidationProps &\r\n React.SelectHTMLAttributes & {\r\n onSelect: (option: SelectOption) => void;\r\n };\r\n\r\nfunction Component(props: Props) {\r\n const { field, options, form } = props;\r\n const { onSelect, ...rest } = props;\r\n\r\n const onChangeFn = (option: SelectOption) => {\r\n form.setFieldValue(field.name, option.value);\r\n !!onSelect && onSelect(option);\r\n };\r\n\r\n return (\r\n option.value === field.value)}\r\n onChange={onChangeFn}\r\n />\r\n );\r\n}\r\n\r\nexport const FormikSelect = withValidation(Component);\r\n","export { ControlledSelect } from './ControlledSelect';\r\nexport { FormikSelect } from './FormikSelect';\r\n","export const SELECT_CLASS_NAME_PREFIX = 'sol-react-select';\r\n","import { css } from '../../../style';\r\nimport { SelectStyleType } from './select.model';\r\nimport { SELECT_CLASS_NAME_PREFIX } from './select.constants';\r\n\r\nexport function getSelectStyle(styleType: SelectStyleType) {\r\n switch (styleType) {\r\n case 'primary':\r\n return primaryStyles();\r\n case 'secondary':\r\n return secondaryStyles();\r\n case 'tertiary':\r\n return tertiaryStyles();\r\n default:\r\n return ``;\r\n }\r\n}\r\n\r\nconst MENU_BOX_SHADOW = `0 1px 6px 0 rgba(0, 0, 0, 0.1), 0 1px 3px 0 rgba(0, 0, 0, 0.2) !important;`;\r\n\r\nfunction primaryStyles() {\r\n return css`\r\n ${baseStyles()}\r\n `;\r\n}\r\n\r\nfunction secondaryStyles() {\r\n return css`\r\n ${baseStyles()}\r\n\r\n .sol-react-select__control {\r\n border-color: transparent;\r\n\r\n &:hover,\r\n &--is-focused {\r\n border-color: #e0e0e0 !important;\r\n box-shadow: ${MENU_BOX_SHADOW};\r\n }\r\n\r\n &--menu-is-open {\r\n border-bottom-left-radius: 0;\r\n border-bottom-right-radius: 0;\r\n\r\n &,\r\n &:hover,\r\n &--is-focused {\r\n border-bottom-color: ${(p) => p.theme.colors.primary1} !important;\r\n }\r\n }\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__menu {\r\n margin-top: 0;\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n box-shadow: ${MENU_BOX_SHADOW};\r\n\r\n &-list {\r\n padding: 0;\r\n }\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__option {\r\n padding-left: 20px;\r\n padding-right: 20px;\r\n color: #757575;\r\n font-weight: ${(p) => p.theme.fontWeight.light};\r\n\r\n &:hover,\r\n &--is-focused,\r\n &--is-selected {\r\n background-color: ${(p) => p.theme.colors.secondary4};\r\n }\r\n\r\n &--is-selected {\r\n color: ${(p) => p.theme.colors.body};\r\n }\r\n\r\n & + .${SELECT_CLASS_NAME_PREFIX}__option {\r\n border-top: 1px solid #e0e0e0;\r\n }\r\n }\r\n `;\r\n}\r\n\r\nfunction tertiaryStyles() {\r\n return css`\r\n ${baseStyles()}\r\n ${secondaryStyles()};\r\n\r\n .sol-react-select__control {\r\n border-color: #e0e0e0;\r\n /* border-color: green !important; */\r\n\r\n &--menu-is-open {\r\n .${SELECT_CLASS_NAME_PREFIX}__indicators {\r\n border-bottom-right-radius: 0;\r\n }\r\n }\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__indicators {\r\n background-color: ${(p) => p.theme.colors.primary1};\r\n }\r\n `;\r\n}\r\n\r\nfunction baseStyles() {\r\n return css`\r\n .sol-react-select__control {\r\n border: 1px solid #ccc;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n\r\n &--is-focused {\r\n border: 1px solid #80bdff !important;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25) !important;\r\n }\r\n\r\n &--is-disabled {\r\n /* bootstrap input colors */\r\n background: #e9ecef;\r\n border-color: #ced4da;\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__indicator {\r\n opacity: 0.5;\r\n }\r\n }\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__placeholder {\r\n color: #757575;\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__single-value {\r\n color: #333333;\r\n font-weight: ${(p) => p.theme.fontWeight.normal};\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__indicators {\r\n border-top-right-radius: 4px;\r\n border-bottom-right-radius: 4px;\r\n margin: -1px -2px -1px;\r\n\r\n svg {\r\n width: 34px;\r\n }\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__indicator-separator {\r\n display: none;\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__menu {\r\n margin-left: 1px;\r\n width: calc(100% - 1px);\r\n }\r\n\r\n .${SELECT_CLASS_NAME_PREFIX}__option {\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n }\r\n `;\r\n}\r\n","import React from 'react';\r\nimport { styled } from '../../../style';\r\nimport { Icon } from '../../Icon/Icon';\r\nimport { IndicatorProps } from 'react-select/lib/components/indicators';\r\nimport { SelectStyleType } from './select.model';\r\nimport { Theme } from '../../../style/theme/themeModule';\r\nimport { IconName } from '../../Icon/IconsProvider';\r\n\r\ninterface OwnProps {\r\n indicatorProps: IndicatorProps;\r\n styleType: SelectStyleType;\r\n className?: string;\r\n icons?: (string | undefined)[];\r\n}\r\n\r\nexport function SelectArrow({ indicatorProps, styleType, className, icons }: OwnProps): any {\r\n const _icons =\r\n icons && !!icons.filter((i) => !!i).length ? icons : ['chevron-up', 'chevron-down'];\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n styleType: SelectStyleType;\r\n}\r\n\r\nconst Container = styled(Icon)`\r\n color: ${(p: ContainerProps) =>\r\n p.styleType === 'tertiary' ? p.theme.colors.white : p.theme.colors.primary1};\r\n padding: 0 10px;\r\n`;\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport ReactSelect from 'react-select';\r\nimport { IndicatorProps } from 'react-select/lib/components/indicators';\r\nimport { ValueType } from 'react-select/lib/types';\r\nimport { styled } from '../../../style';\r\nimport { Theme } from '../../../style/theme/themeModule';\r\nimport { SELECT_CLASS_NAME_PREFIX } from './select.constants';\r\nimport { SelectOption, SelectProps, SelectStyleType } from './select.model';\r\nimport { getSelectStyle } from './select.styles';\r\nimport { SelectArrow } from './SelectArrow';\r\nimport { sortBy } from '../../../shared/Data';\r\n\r\nexport function BaseSelect({\r\n value,\r\n onChange,\r\n onBlur,\r\n onFocus,\r\n options,\r\n styleType,\r\n disabled,\r\n placeholder,\r\n className,\r\n iconUp,\r\n iconDown,\r\n id,\r\n alphabeticalOrder,\r\n wrapOptionContentToNewLine,\r\n ariaLabel,\r\n isSearchable,\r\n blurInputOnSelect,\r\n}: SelectProps) {\r\n const style: SelectStyleType = styleType || 'primary';\r\n const filteredEmptyOptions = options.filter((option) => option.label);\r\n alphabeticalOrder &&\r\n filteredEmptyOptions.sort(sortBy((o) => o.label.trim().toLowerCase()));\r\n const onChangeFn = useCallback(\r\n (value: ValueType<{}>) => !!onChange && onChange(value as SelectOption),\r\n [onChange],\r\n );\r\n // In this effect we want to check, if we have only one option to select.\r\n // As per business requirement, in such case it should be preselected.\r\n useEffect(() => {\r\n const option = options[0];\r\n if (options.length === 1 && option !== value) {\r\n onChangeFn(option);\r\n }\r\n }, [options, onChangeFn, value]);\r\n\r\n return (\r\n \r\n ) => (\r\n \r\n ),\r\n }}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n isSearchable={isSearchable}\r\n blurInputOnSelect={blurInputOnSelect}\r\n />\r\n \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n styleType: SelectStyleType;\r\n wrapOptionContentToNewLine?: boolean;\r\n}\r\n\r\nconst Container = styled.div`\r\n ${(p: ContainerProps) => getSelectStyle(p.styleType)}\r\n .sol-react-select__menu {\r\n z-index: 10;\r\n }\r\n ${(p: ContainerProps) =>\r\n p.wrapOptionContentToNewLine &&\r\n `.${SELECT_CLASS_NAME_PREFIX}__option {\r\n white-space: pre-line;\r\n }`}\r\n`;\r\n","import { stringify } from 'query-string';\r\nimport { PortfolioSortOptions } from './pages/Portfolio/store/model';\r\nimport { OldAgreementType } from './pages/TermsAndConditions/model';\r\n\r\nexport const APP_BOOTSTRAP_ROOT = 'root';\r\nexport const API_PREFIX = 'umbraco/api/sosservices/';\r\nexport const API_FILE_PREFIX = 'umbraco/api/sosfileservices/';\r\nexport const SIGN_IN_POST_ACTION = 'umbraco/surface/loginsurface/login';\r\n\r\n// Unread Messages and Alerts constants\r\nexport const MESSAGE_POLL_INTERVAL = 120000;\r\nexport const ALERT_POLL_INTERVAL = 120000;\r\nexport const UNREAD_MESSAGES_PORTAL_ID = 'unread-messages-counter';\r\nexport const UNREAD_ALERTS_PORTAL_ID = 'unread-alerts-counter';\r\nexport const HEADER_PORTAL_ID = 'header-portal';\r\nexport const FOOTER_PORTAL_ID = 'footer-portal';\r\n\r\nconst apiPrefixed = (url: string): string => `${API_PREFIX}${url}`;\r\nconst apiFilePrefixed = (url: string): string => `${API_FILE_PREFIX}${url}`;\r\n\r\nexport const APP_CONFIG = {\r\n api: {\r\n sessionExtend: 'umbraco/api/session/extend',\r\n sessionTimeout: 'umbraco/api/session/timeout',\r\n messages: {\r\n unreadAlertsList: apiPrefixed('user/alerts/unread'),\r\n unreadAlerts: apiPrefixed('user/alerts/unread/count'),\r\n unreadMessages: apiPrefixed('messages/messagecount'),\r\n accounts: apiPrefixed('messages/newMessage/accounts'),\r\n newMessage: apiPrefixed('messages/newMessage'),\r\n },\r\n parameters: (page: string) =>\r\n `umbraco/surface/reactpropertiessurface/getproperties?alias=${page}`,\r\n companyLogos: (companyId: string) =>\r\n `umbraco/surface/companylogossurface/getcompanylogo?companyId=${companyId}`,\r\n bankInfo: (countryId: string) =>\r\n `umbraco/surface/bankinformationsurface/getbankinfobycountryid?id=${countryId}`,\r\n bankInfoCountries: () => `umbraco/surface/bankinformationsurface/GetBankInfoCountries`,\r\n account: {\r\n bankAccounts: (accountNumber: number) =>\r\n apiPrefixed(`investment/bankAccounts/${accountNumber}`),\r\n registrationTypes: apiPrefixed('registrationtypes'),\r\n SSN: {\r\n checkSSN: apiPrefixed(`ssn/check`),\r\n },\r\n taxId: {\r\n checkTaxId: apiPrefixed(`taxId/check`),\r\n },\r\n },\r\n accountOverview: apiPrefixed('account/overview'),\r\n accountPortfolio: {\r\n load: (\r\n accountIndicator: string | 'all' | 'all-not-filtered',\r\n sortOptions?: PortfolioSortOptions,\r\n ) =>\r\n apiPrefixed(\r\n `portfolio/${accountIndicator}${sortOptions\r\n ? `?${stringify({\r\n direction: sortOptions.direction,\r\n orderBy: sortOptions.orderBy,\r\n })}`\r\n : ''\r\n }`,\r\n ),\r\n },\r\n accountProfile: {\r\n load: apiPrefixed('userprofile'),\r\n update: apiPrefixed('userprofile'),\r\n validateCurrentPassword: apiPrefixed('validatecurrentpassword'),\r\n validateUsername: apiPrefixed('IsValidNewUser'),\r\n checkUsername: (username: string) => apiPrefixed(`isusernameexist?username=${username}`),\r\n checkPassword: apiPrefixed(`passwordhistory`),\r\n securityQuestions: apiPrefixed('securityquestions'),\r\n checkEmailBatchPending: apiPrefixed('IsSaveEmailAddressBatchPending'),\r\n checkSeasonalAddressBatchPending: (accountNumber: string) =>\r\n apiPrefixed(`IsSeasonalAddressBatchPending/${accountNumber}`),\r\n checkPrimaryAddressBatchPending: (accountNumber: string) =>\r\n apiPrefixed(`IsPrimaryAddressBatchPending/${accountNumber}`),\r\n checkIsConfirmPrimaryAddressBatchPending: (accountNumber: string) =>\r\n apiPrefixed(`IsConfirmPrimaryAddressBatchPending/${accountNumber}`),\r\n getUserEmailAddresses: apiPrefixed('UserEmailAddresses'),\r\n saveEmailAddress: apiPrefixed('EmailAddress'),\r\n },\r\n accountAddress: {\r\n data: apiPrefixed('account/address'),\r\n preview: (id: string, form: string) => apiPrefixed(`account/${id}/address/${form}/preview`),\r\n change: (id: string, form: string) => apiPrefixed(`account/${id}/address/${form}`),\r\n confirm: (id: string) => apiPrefixed(`account/${id}/address/confirm`),\r\n countries: apiPrefixed('country'),\r\n usStates: apiPrefixed('state/us'),\r\n provinces: apiPrefixed('province'),\r\n format: apiPrefixed('address/format'),\r\n secondaryAddressGet: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/address/secondary/${accountNumber}/${issueNumber}`),\r\n secondaryAddressAdd: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/address/secondary/${accountNumber}/${issueNumber}`),\r\n secondaryAddressRemove: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/address/secondary/${accountNumber}/${issueNumber}`),\r\n },\r\n agreement: {\r\n get: apiPrefixed('users/agreements'),\r\n accept: apiPrefixed('users/agreements/sign'),\r\n },\r\n brokerInstructions: {\r\n data: apiPrefixed('brokerInstructions'),\r\n instruction: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`brokerInstructions/${accountNumber}/${issueNumber}`),\r\n },\r\n checks: {\r\n overview: apiPrefixed('checks/overview'),\r\n history: apiPrefixed('checks/history'),\r\n downloadHistory: apiFilePrefixed(`checks/history/download`),\r\n replace: (accountNumber: string) => apiPrefixed(`checks/replace/${accountNumber}`),\r\n submit: apiPrefixed('checks/replace'),\r\n filter: {\r\n companies: apiPrefixed('checks/filter/companies'),\r\n reasons: apiPrefixed('checks/filter/paymentreasons'),\r\n statuses: apiPrefixed('checks/filter/paymentstatuses'),\r\n },\r\n },\r\n espp: {\r\n management: apiPrefixed('espp/employees/management'),\r\n companies: apiPrefixed('espp/companies'),\r\n companyDetails: (id: number) => apiPrefixed(`espp/companies/${id}/details`),\r\n companyAuthentication: (id: number) => apiPrefixed(`espp/companies/${id}/authentication`),\r\n currentEmployee: (issueId: number) => apiPrefixed(`espp/employees?${stringify({ issueId })}`),\r\n currentWfEmployee: () => apiPrefixed(`espp/wf/employees`),\r\n validations: apiPrefixed(`espp/employees/validations`),\r\n newValidations: {\r\n secure: apiPrefixed(`espp/employees/secure-validate`),\r\n mfa: apiPrefixed(`espp/employees/mfa-validate`),\r\n },\r\n getPlan: (companyId: number, taxId: string | undefined, employeeNumber: string | undefined) =>\r\n apiPrefixed(`espp/companies/${companyId}/plans?${stringify({ taxId, employeeNumber })}`),\r\n downloadInvestmentMaterial: (fileId: string, fileName: string) =>\r\n apiFilePrefixed(`File?fileId=${fileId}&filename=${fileName}`),\r\n getDeductions: () => apiPrefixed(`espp/deductions`),\r\n deductions: (\r\n issueId: number,\r\n employeeNumber: string | undefined,\r\n taxId: string | undefined,\r\n ) => apiPrefixed(`espp/deductions?${stringify({ issueId, employeeNumber, taxId })}`),\r\n },\r\n contactQuestions: apiPrefixed('contactQuestions'),\r\n documents: {\r\n accounts: apiPrefixed('documents/accounts'),\r\n eDelivery: (accountNumber: number) => apiPrefixed(`documents/edelivery/${accountNumber}`),\r\n download: (accountNumber: number, statementId: number, issueNumber: string) =>\r\n apiFilePrefixed(`documents/download/${accountNumber}/${statementId}/${issueNumber}`),\r\n downloadInsert: (accountNumber: number, statementId: number, issueNumber: string) =>\r\n apiFilePrefixed(`documents/downloadInserts/${accountNumber}/${statementId}/${issueNumber}`),\r\n taxForms: (accountNumber: number) => apiPrefixed(`documents/taxforms/${accountNumber}`),\r\n shareBalance: {\r\n accounts: apiPrefixed('shareBalance/accounts'),\r\n download: apiPrefixed(`shareBalance/download`),\r\n },\r\n },\r\n deliveryPreferences: {\r\n load: apiPrefixed('edelivery/preferences'),\r\n update: apiPrefixed('edelivery/preferences'),\r\n receivePreferences: apiPrefixed('edelivery/receive/preferences'),\r\n },\r\n dividends: {\r\n loadList: apiPrefixed('dividends'),\r\n loadDripDetails: (issueNumber: string, accountNumber: number) =>\r\n apiPrefixed(`dripdetails/accountNumber/${accountNumber}/issuenumber/${issueNumber}`),\r\n loadSetupDetails: (userRegionCode: string) =>\r\n apiPrefixed(`internationalachsetupdetails/userregioncode/${userRegionCode}`),\r\n validatePaymentFieldFormat: () => apiPrefixed(`dripdetails/validateandpadd`),\r\n update: (issueNumber: string, accountNumber: number) =>\r\n apiPrefixed(`dripdetails/accountNumber/${accountNumber}/issuenumber/${issueNumber}`),\r\n brochure: (brochureLink: string) =>\r\n apiFilePrefixed(`File?fileId=${brochureLink}&filename=Brochure`),\r\n secondaryAddressGet: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/address/secondary/${accountNumber}/${issueNumber}`),\r\n secondaryAddressAdd: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/address/secondary/${accountNumber}/${issueNumber}`),\r\n secondaryAddressRemove: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/address/secondary/${accountNumber}/${issueNumber}`),\r\n downloadSaleForm: (accountNumber: number, issueNumber: string) =>\r\n apiFilePrefixed(`saleForms/download/${accountNumber}/${issueNumber}`),\r\n },\r\n proxyDeliveryPreferences: {\r\n load: apiPrefixed('proxydelivery/preferences'),\r\n update: apiPrefixed('proxydelivery/preferences'),\r\n },\r\n taxCertification: {\r\n load: apiPrefixed('account/taxcertification'),\r\n countries: apiPrefixed('country'),\r\n validatetaxcertification: (accountNumber: number) =>\r\n apiPrefixed(`account/validatetaxcertification/${accountNumber}`),\r\n save: (accountNumber: number) =>\r\n apiPrefixed(`account/updatetaxidcertificationdetails/${accountNumber}`),\r\n certify: (accountNumber: number | string) =>\r\n apiPrefixed(`account/taina/taxcertification/${accountNumber}`),\r\n },\r\n securityOverview: {\r\n transaction: {\r\n getInquiryTime: () => apiPrefixed('transactions/inquiry-time'),\r\n getTransactions: (\r\n accountNumber: string,\r\n issueNumber: string,\r\n type?: 'drs' | 'certificate',\r\n ) => {\r\n return type\r\n ? apiPrefixed(`account/transactions/${accountNumber}/${issueNumber}/${type}`)\r\n : apiPrefixed(`account/transactions/${accountNumber}/${issueNumber}`);\r\n },\r\n downloadTransactions: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(`account/transactions/download/${accountNumber}/${issueNumber}`),\r\n getInfo: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/transactionsinfo/${accountNumber}/${issueNumber}`),\r\n getPlans: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`planshares/${accountNumber}/${issueNumber}`),\r\n getPlansInfo: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`planshares/${accountNumber}/${issueNumber}/info`),\r\n downloadPlans: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(`PlanShares/${accountNumber}/${issueNumber}/download`),\r\n },\r\n details: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/securitydetails/${accountNumber}/${issueNumber}`),\r\n sales: {\r\n getSales: (accountNumber: number, issueNumber: string) =>\r\n apiPrefixed(`account/sales/${accountNumber}/${issueNumber}`),\r\n getOldestSale: (accountNumber: number, issueNumber: string) =>\r\n apiPrefixed(`account/sales/oldest/${accountNumber}/${issueNumber}`),\r\n getPendingSales: apiPrefixed(`account/sales/pending`),\r\n getPendingSale: (saleId: number) => apiPrefixed(`account/sales/pending/${saleId}`),\r\n cancelPendingSale: (accountNumber: number, saleId: number) =>\r\n apiPrefixed(`account/sales/pending/${accountNumber}/${saleId}`),\r\n download: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(`account/sales/${accountNumber}/${issueNumber}/download`),\r\n },\r\n saleProceeds: {\r\n getList: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`accounts/saleProceeds/${accountNumber}/${issueNumber}`),\r\n getSummary: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`accounts/saleProceedsSummary/${accountNumber}/${issueNumber}`),\r\n download: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(`accounts/saleProceeds/${accountNumber}/${issueNumber}/download`),\r\n },\r\n dividendProceeds: {\r\n getList: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/${accountNumber}/issues/${issueNumber}/dividend-proceeds`),\r\n getSummary: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/${accountNumber}/issues/${issueNumber}/dividend-proceeds-summary`),\r\n download: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(`account/dividendProceeds/${accountNumber}/${issueNumber}/download`),\r\n },\r\n costBasis: {\r\n summary: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/costBasis/${accountNumber}/${issueNumber}/summary`),\r\n taxLots: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`account/costBasis/${accountNumber}/${issueNumber}/taxLots`),\r\n taxLotDetails: (accountNumber: string, issueNumber: string, taxLotId: number) =>\r\n apiPrefixed(`account/costBasis/${accountNumber}/${issueNumber}/taxLots/${taxLotId}`),\r\n debitDetails: (accountNumber: string, issueNumber: string, taxLotId: number) =>\r\n apiPrefixed(\r\n `account/costBasis/${accountNumber}/${issueNumber}/taxLots/${taxLotId}/debitDetails`,\r\n ),\r\n download: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(`account/costBasis/${accountNumber}/${issueNumber}/download`),\r\n },\r\n },\r\n inbox: {\r\n messages: apiPrefixed('messages'),\r\n companyMessages: apiPrefixed('company-messages'),\r\n deleteMessages: (messageIds: number[]) => apiPrefixed(`messages/${messageIds}`),\r\n updateReadStatus: apiPrefixed('messages/updateReadStatus'),\r\n attachments: (messageId: number) => apiPrefixed(`messages/${messageId}/attachments`),\r\n attachmentLink: (messageId: number, id: number) =>\r\n apiFilePrefixed(`messages/${messageId}/attachment//${id}`),\r\n reply: apiPrefixed('messages/reply'),\r\n },\r\n companies: {\r\n all: apiPrefixed('companies'),\r\n },\r\n investment: {\r\n registrationPreview: apiPrefixed('investment/registrationPreview'),\r\n issueFeeAmount: (issueNumber: string, regionCode: string) =>\r\n apiPrefixed(`investment/issuefeeamount/${issueNumber}/${regionCode}`),\r\n companyDeliveryOptions: (issueNumber: string) =>\r\n apiPrefixed(`investment/companydeliveryoptions/${issueNumber}`),\r\n paymentCompany: apiPrefixed('investment/payment-company'), // todo: check with backend ??\r\n companySecurityTypes: apiPrefixed('investment/companysecuritytypes'),\r\n automaticInvestment: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`investment/automaticinvestment/${accountNumber}/${issueNumber}`),\r\n automaticInvestmentBatch: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(\r\n `investment/CheckForBatchedAutomaticInvestment/${accountNumber}/${issueNumber}`,\r\n ),\r\n investmentPreferences: (issueNumber: string, accountNumber?: string) =>\r\n apiPrefixed(`investment/preferences/${issueNumber}/${accountNumber ? accountNumber : 0}`),\r\n companyPlan: (issueNumber: string, userRegionCode: string) =>\r\n apiPrefixed(`investment/issuefeeamount/${issueNumber}/${userRegionCode}`),\r\n companyPlanBrochure: (issueId: string, planType: string) =>\r\n apiPrefixed(`investment/plandocuments/${issueId}/${planType}`),\r\n companyPlanBrochureLink: (brochureLink: string, brochureName: string) =>\r\n apiFilePrefixed(`File?fileId=${brochureLink}&filename=${brochureName}`),\r\n accountVerify: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`investment/registrationVerificationDetails/${accountNumber}/${issueNumber}`),\r\n submit: apiPrefixed(`investment/automaticinvestment`),\r\n submitNoStock: apiPrefixed(`investment/automaticinvestmentdpp`),\r\n stop: apiPrefixed(`investment/stopautomaticinvestment`),\r\n },\r\n signUp: {\r\n companies: apiPrefixed('companies/signup'),\r\n authIdRecovery: () => apiPrefixed(`account/forgot/accountid`),\r\n authenticate: (type: 'employee' | 'authId') => apiPrefixed(`signup/${type}/authentication`),\r\n agreement: (type: OldAgreementType) => apiPrefixed(`signup/agreements/${type}`),\r\n byAuthId: (authId: string) => apiPrefixed(`signup/authId/${authId}/profile`),\r\n byEmployeeNumberCompanyId: (employeeNumber: string, companyId: string) =>\r\n apiPrefixed(`signup/employee/${employeeNumber}/company/${companyId}/profile`),\r\n byWfSso: () => apiPrefixed(`signup/wf/employee/profile`),\r\n },\r\n signOn: {\r\n signOut: `umbraco/surface/signoutsurface/SignOut`,\r\n unlockAccount: apiPrefixed('account/unlock'),\r\n recoverAccount: {\r\n email: apiPrefixed('recoverAccount/account'),\r\n validateToken: apiPrefixed('recoverAccount'),\r\n username: apiPrefixed('recoverAccount'),\r\n credentials: apiPrefixed('recoverAccount/reset'),\r\n },\r\n recoverUsername: {\r\n byAuthenticationId: apiPrefixed('account/recoverUsername/authenticationId'),\r\n byAccountNumber: apiPrefixed('account/recoverUsername/accountNumber'),\r\n byEmployeeNumber: apiPrefixed('account/recoverUsername/employeeNumber'),\r\n confirmSecurityAnswerWithAuthenticationId: apiPrefixed(\r\n 'account/recoverUsername/securityQuestion/authenticationId',\r\n ),\r\n confirmSecurityAnswerWithAccountNumber: apiPrefixed(\r\n 'account/recoverUsername/securityQuestion/accountNumber',\r\n ),\r\n confirmSecurityAnswerWithEmployeeNumber: apiPrefixed(\r\n 'account/recoverUsername/securityQuestion/employeeNumber',\r\n ),\r\n },\r\n securityQuestion: {\r\n validate: apiPrefixed('securityQuestions/validation'),\r\n reset: apiPrefixed('securityQuestions/reset'),\r\n },\r\n passwordReset: {\r\n validate: {\r\n account: apiPrefixed('account/resetPassword/accountNumber'),\r\n employee: apiPrefixed('account/resetPassword/employeeNumber'),\r\n authId: apiPrefixed('account/resetPassword/authenticationId'),\r\n },\r\n answer: {\r\n account: apiPrefixed('account/resetPassword/securityQuestion/accountNumber'),\r\n employee: apiPrefixed('account/resetPassword/securityQuestion/employeeNumber'),\r\n authId: apiPrefixed('account/resetPassword/securityQuestion/authenticationId'),\r\n },\r\n password: {\r\n account: apiPrefixed('account/resetPassword/newPassword/accountNumber'),\r\n employee: apiPrefixed('account/resetPassword/newPassword/employeeNumber'),\r\n authId: apiPrefixed('account/resetPassword/newPassword/authenticationId'),\r\n },\r\n },\r\n },\r\n shares: {\r\n shared: {\r\n wireTransferCountryConfig: apiPrefixed('sharesSales/wireTransfer/configuration'),\r\n },\r\n sell: {\r\n accounts: apiPrefixed('accounts/sharesdetails'),\r\n account: (accountNumber: number) => apiPrefixed(`accounts/sharesdetails/${accountNumber}`),\r\n saleOrderDetails: apiPrefixed(`sharesSales/saleOrderDetails`),\r\n shares: apiPrefixed(`sharesSales/sharesToSell`),\r\n },\r\n },\r\n company: {\r\n plans: apiPrefixed('company/plans'),\r\n pagedPlans: apiPrefixed('company/plans/paged'),\r\n details: (issueNumber: string, planType: string) =>\r\n apiPrefixed(`company/plan/details/${issueNumber}/${planType}`),\r\n document: (id: string, name: string) => apiFilePrefixed(`File?fileId=${id}&filename=${name}`),\r\n },\r\n contact: {\r\n questions: apiPrefixed('contactQuestions'),\r\n submitForm: apiPrefixed('contactUs'),\r\n },\r\n termsAndConditions: {\r\n userAgreements: 'umbraco/surface/usersurface/userAgreements',\r\n acceptESignAgreement: apiPrefixed('account/termsAndConditions/esign'),\r\n acceptOnlineAccessAgreement: apiPrefixed('account/termsAndConditions/onlineaccess'),\r\n },\r\n emailMismatch: {\r\n userEmailMismatch: 'umbraco/surface/usersurface/userEmailMismatch',\r\n },\r\n user: {\r\n current: 'umbraco/surface/usersurface/currentUser',\r\n },\r\n userPreferences: {\r\n get: apiPrefixed('user/preferences'),\r\n post: apiPrefixed('user/preferences'),\r\n },\r\n routes: `umbraco/api/routing`,\r\n },\r\n displayFormat: 'd MMMM',\r\n};\r\n","import { SaleType, SellShare, ShareType } from '../Sell/models';\r\n\r\nconst fiscalNumberRegex = /^[0-9]*(\\.[0-9]{1,3})?$/;\r\nconst wholeNumberRegex = /^[0-9]*$/;\r\nconst nonDigitRegex = /\\D/g;\r\n\r\nexport const validatePhoneNumber = (phone: string): string => {\r\n const strippedPhone = phone.replace(nonDigitRegex, '');\r\n\r\n return strippedPhone.length === 10 ? strippedPhone : '';\r\n};\r\n\r\nexport function isFiscalNumberCorrect(allowFractional: boolean) {\r\n const test = allowFractional ? fiscalNumberRegex : wholeNumberRegex;\r\n return (value: string) => {\r\n const testValue = !!value ? value.toString().trim() : '';\r\n return test.test(testValue);\r\n };\r\n}\r\n\r\nexport function getCanSellPlanShares(securityType: SellShare) {\r\n return (\r\n securityType.allowSaleOfPlanShares &&\r\n securityType.allowPlanSalesSol &&\r\n securityType.planAvailableForSale > 0\r\n );\r\n}\r\n\r\nexport function getCanSellDRSShares(securityType: SellShare) {\r\n return (\r\n securityType.allowSaleOfDrs &&\r\n securityType.allowDrsSalesSol &&\r\n securityType.drsAvailableForSale > 0\r\n );\r\n}\r\n\r\nexport function getPlanAvailableForSale(securityType: SellShare) {\r\n const canSellPlanShares = getCanSellPlanShares(securityType);\r\n return canSellPlanShares ? securityType.planAvailableForSale : 0;\r\n}\r\n\r\nexport function getDrsAvailableForSale(securityType: SellShare) {\r\n const canSellDRSShares = getCanSellDRSShares(securityType);\r\n return canSellDRSShares ? securityType.drsAvailableForSale : 0;\r\n}\r\n\r\nexport function getIsDRSSale(shareType: ShareType): boolean {\r\n return [ShareType.DrsAndPlanShare, ShareType.DrsShare].includes(shareType);\r\n}\r\n\r\nexport function getIsPlanSale(shareType: ShareType): boolean {\r\n return [ShareType.DrsAndPlanShare, ShareType.PlanShare].includes(shareType);\r\n}\r\n\r\nexport function getIsInstantSale(saleType: SaleType) {\r\n return [SaleType.MarketOrder, SaleType.BatchOrder].includes(saleType);\r\n}\r\n\r\nexport function getIsDelayedSale(saleType: SaleType) {\r\n return [SaleType.LimitOrder, SaleType.StopLossOrder].includes(saleType);\r\n}\r\n","import React from 'react';\r\nimport { styled, keyframes, Theme } from '../../style/theme/themeModule';\r\nimport { hexToRgbA } from '../../style';\r\n\r\ninterface OwnProps {\r\n invert?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function SimpleSpinner({ invert, className }: OwnProps) {\r\n return ;\r\n}\r\n\r\nexport const spin = keyframes`\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n`;\r\n\r\ninterface ContainerProps extends Theme {\r\n invert?: boolean;\r\n}\r\n\r\nconst Container = styled.div`\r\n display: inline-block;\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n border: 3px solid ${(p) => hexToRgbA(p.theme.colors.primary1, 0.3)};\r\n border-top-color: ${(p) => p.theme.colors.primary1};\r\n animation: ${spin} 1s infinite linear;\r\n\r\n ${(p: ContainerProps) =>\r\n p.invert &&\r\n `\r\n border-color: rgba(255, 255, 255, 0.3);\r\n border-top-color: #fff;\r\n `};\r\n`;\r\n","import { createAction } from '../../../store/reduxBoilerplate';\r\n\r\nexport enum FormPersistActionTypes {\r\n SET = '[Form Persist] SET',\r\n UNSET = '[Form Persist] UNSET',\r\n}\r\n\r\nconst AT = FormPersistActionTypes;\r\n\r\nexport const formPersistActions = {\r\n set: (key: string, values: unknown) => createAction(AT.SET, { key, values }),\r\n\r\n unset: (...keys: string[]) => createAction(AT.UNSET, { keys }),\r\n};\r\n","import { getPersistedFormValues } from '../../../containers/FormPersist/store/formPersist.selectors';\r\nimport { isFalse, isTrue } from '../../../lib/Form/Validation/validation.utils';\r\nimport { RootState } from '../../../store/rootModel';\r\nimport {\r\n DividendDetailsFormValues,\r\n DividendDetailsEditType,\r\n} from '../components/Details/DividendDetailsForm';\r\nimport { getDividendDetailsNextStep } from '../components/Details/helpers/dividendDetailsForm.utils';\r\nimport { DividendPaymentFormValues } from '../components/Payment/helpers/dividendPaymentForm.model';\r\nimport {\r\n getNewBankAccount,\r\n showBankAccountFields,\r\n getBeneficiaryBankSwiftCode,\r\n getInternationalRoutingCode,\r\n getBeneficiaryBankDetails,\r\n} from '../components/Payment/helpers/dividendPaymentForm.utils';\r\nimport { DividendPlanFormValues } from '../components/Plan/DividendPlanForm';\r\nimport { getDividendPlanFormFields } from '../components/Plan/helpers/dividendPlanForm.builder';\r\nimport { DIVIDEND_PLAN_FORM_KEYS } from '../components/Plan/helpers/dividendPlanForm.constants';\r\nimport {\r\n DividendDripDetails,\r\n DividendReinvestment,\r\n DividendStep,\r\n PersistedDividendForm,\r\n PlanUpdate,\r\n ReinvestmentOption,\r\n ReinvestmentType,\r\n UpdateDividendRequest,\r\n PartialReinvestmentType,\r\n PaymentUpdate,\r\n} from './dividend.model';\r\nimport { getField } from './dividend.utils';\r\nimport { shouldSkipPaymentStep } from '../components/Plan/helpers/dividendPlanForm.utils';\r\n\r\nexport function isDividendStepsDirty(state: RootState) {\r\n return !!getPersistedFormValues(state, PersistedDividendForm.Details);\r\n}\r\n\r\nexport function isFormInitiallyValid(state: RootState, formKey: PersistedDividendForm) {\r\n const { persistedFormsValidStatusMap } = state.dividends;\r\n return !!persistedFormsValidStatusMap && !!persistedFormsValidStatusMap[formKey];\r\n}\r\n\r\nexport function getUpdateDividendRequest(state: RootState): UpdateDividendRequest {\r\n const dripDetails = state.dividends.dividendDetails!;\r\n const setupDetails = state.dividends.setupDetails;\r\n\r\n const detailsFormValues = getPersistedFormValues(\r\n state,\r\n PersistedDividendForm.Details\r\n );\r\n const planFormValues = getPersistedFormValues(\r\n state,\r\n PersistedDividendForm.Plan\r\n );\r\n const paymentFormValues = getPersistedFormValues(\r\n state,\r\n PersistedDividendForm.Payment\r\n );\r\n const request: UpdateDividendRequest = {};\r\n\r\n if (shouldUpdatePlanDetails(detailsFormValues)) {\r\n request.planUpdate = getPlanUpdate(dripDetails);\r\n }\r\n\r\n const containOnlyRDandRP0 =\r\n dripDetails.reinvestmentOptions.length === 2 &&\r\n dripDetails.reinvestmentOptions.some(\r\n (o) =>\r\n o.reinvestmentType === ReinvestmentType.RD || o.reinvestmentType === ReinvestmentType.RP0\r\n );\r\n\r\n // We want to update paymentOptions only when user selected RP0 - no reinvestment\r\n if (containOnlyRDandRP0) {\r\n if (planFormValues && isFalse(planFormValues.reinvestDividends)) {\r\n request.paymentUpdate = getPaymentUpdate();\r\n }\r\n // In case, if user want to change only payment option - details step values needs to be checked\r\n if (\r\n detailsFormValues &&\r\n (detailsFormValues.editType === DividendDetailsEditType.PaymentDetails ||\r\n (detailsFormValues.editType === DividendDetailsEditType.Both &&\r\n planFormValues &&\r\n isFalse(planFormValues.reinvestDividends)))\r\n ) {\r\n request.paymentUpdate = getPaymentUpdate();\r\n }\r\n }\r\n\r\n if (detailsFormValues && isTrue(detailsFormValues.changePaymentType)) {\r\n request.paymentUpdate = getPaymentUpdate();\r\n }\r\n\r\n if (\r\n shouldUpdatePaymentDetails(detailsFormValues) &&\r\n (!planFormValues ||\r\n (planFormValues &&\r\n (!isTrue(planFormValues.reinvestAllShares) || isFalse(planFormValues.reinvestDividends))))\r\n ) {\r\n request.paymentUpdate = getPaymentUpdate();\r\n }\r\n\r\n return request;\r\n\r\n function shouldUpdatePlanDetails(detailsFormValues: DividendDetailsFormValues) {\r\n const detailsNextStep = getDividendDetailsNextStep(dripDetails, detailsFormValues).firstStep;\r\n return detailsNextStep === DividendStep.Plan;\r\n }\r\n\r\n function shouldUpdatePaymentDetails(detailsFormValues: DividendDetailsFormValues) {\r\n const steps = getDividendDetailsNextStep(dripDetails, detailsFormValues);\r\n\r\n return (\r\n [steps.firstStep, steps.secondStep].includes(DividendStep.Payment) &&\r\n !shouldSkipPaymentStep(dripDetails)\r\n );\r\n }\r\n\r\n function getPlanUpdate(dripDetails: DividendDripDetails): PlanUpdate | null {\r\n const planFormFields = getDividendPlanFormFields(\r\n dripDetails,\r\n (i: string) => i,\r\n (i: string) => i\r\n );\r\n\r\n if (!planFormFields) {\r\n return null;\r\n }\r\n\r\n if (isFalse(planFormValues.reinvestDividends)) {\r\n const reinvestmentOptionsPD: boolean = dripDetails.reinvestmentOptions.some(\r\n (el: ReinvestmentOption) => el.reinvestmentType === ReinvestmentType.PD\r\n );\r\n const reinvestmentOptionsRP0: boolean = dripDetails.reinvestmentOptions.some(\r\n (el: ReinvestmentOption) => el.reinvestmentType === ReinvestmentType.RP0\r\n );\r\n const reinvestmentOptionsRVY: boolean = dripDetails.reinvestmentOptions.some(\r\n (el: ReinvestmentOption) => el.reinvestmentType === ReinvestmentType.RVY\r\n );\r\n\r\n const reinvestmentOption = reinvestmentOptionsPD\r\n ? DividendReinvestment.PD\r\n : reinvestmentOptionsRP0\r\n ? DividendReinvestment.RP0\r\n : reinvestmentOptionsRVY\r\n ? DividendReinvestment.RVY\r\n : DividendReinvestment.RVN;\r\n\r\n return {\r\n reinvestmentOption, // Not clear what to do, this is not specified in docs\r\n reinvestmentPercent: '0',\r\n reinvestmentValue: '0',\r\n };\r\n }\r\n\r\n if (\r\n isTrue(planFormValues.reinvestAllShares) ||\r\n (isTrue(planFormValues.reinvestDividends) &&\r\n !getField(planFormFields, DIVIDEND_PLAN_FORM_KEYS.reinvestAllShares).show!(planFormValues))\r\n ) {\r\n return {\r\n reinvestmentPercent: '0',\r\n reinvestmentValue: '0',\r\n // TODO: how to know if user selected full reinvestment (RD) of full cash (PD)\r\n // answer from Umaima: Feedback text shown under R95 will give the user details of the\r\n // reinvestment option that they ultimately selected. R95 is in scope for Sprint 6\r\n reinvestmentOption: DividendReinvestment.RD,\r\n };\r\n }\r\n\r\n if (\r\n getField(planFormFields, DIVIDEND_PLAN_FORM_KEYS.quantityToReinvestPercentage).show!(\r\n planFormValues\r\n )\r\n ) {\r\n return {\r\n reinvestmentValue: '0',\r\n reinvestmentPercent: (planFormValues as any)[\r\n DIVIDEND_PLAN_FORM_KEYS.quantityToReinvestPercentage\r\n ],\r\n reinvestmentOption: DividendReinvestment.RX,\r\n };\r\n }\r\n\r\n if (\r\n getField(planFormFields, DIVIDEND_PLAN_FORM_KEYS.quantityToReinvestAbsolute).show!(\r\n planFormValues\r\n )\r\n ) {\r\n return {\r\n reinvestmentValue: (planFormValues as any)[\r\n DIVIDEND_PLAN_FORM_KEYS.quantityToReinvestAbsolute\r\n ],\r\n reinvestmentPercent: '0',\r\n reinvestmentOption: DividendReinvestment.RP,\r\n };\r\n }\r\n\r\n if (getField(planFormFields, DIVIDEND_PLAN_FORM_KEYS.quantityToCash).show!(planFormValues)) {\r\n return {\r\n reinvestmentValue: (planFormValues as any)[DIVIDEND_PLAN_FORM_KEYS.quantityToCash],\r\n reinvestmentPercent: '0',\r\n reinvestmentOption: DividendReinvestment.PS,\r\n };\r\n }\r\n\r\n if (\r\n planFormValues.partialReinvestmentType &&\r\n planFormValues.partialReinvestmentType === PartialReinvestmentType.Reinvest &&\r\n isTrue(planFormValues.reinvestDividends)\r\n ) {\r\n return {\r\n reinvestmentValue: '0',\r\n reinvestmentPercent: '0',\r\n reinvestmentOption: DividendReinvestment.RVY,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function getPaymentUpdate(): PaymentUpdate {\r\n const isNewBankAccount = showBankAccountFields.newDirectDepositUS(\r\n paymentFormValues,\r\n dripDetails\r\n );\r\n return {\r\n dividendBankAccount: getNewBankAccount(paymentFormValues, dripDetails, setupDetails),\r\n beneficiaryBankSwiftCode: getBeneficiaryBankSwiftCode(paymentFormValues),\r\n internationalRoutingCode: getInternationalRoutingCode(paymentFormValues),\r\n beneficiaryDetails: getBeneficiaryBankDetails(paymentFormValues),\r\n isNewBankAccount,\r\n dividendPaymentOption: {\r\n paymentOption: paymentFormValues && paymentFormValues.paymentMethod,\r\n paymentOptionType: paymentFormValues && paymentFormValues.paymentMethodType,\r\n },\r\n };\r\n }\r\n}\r\n","import React from 'react';\r\nimport { FieldProps } from 'formik';\r\nimport { WithValidationProps, withValidation } from './Validation/WithValidation';\r\nimport MaskedInput from 'react-text-mask';\r\nimport { Input } from './Input';\r\n\r\ninterface OwnProps extends React.InputHTMLAttributes {\r\n mask: (string | RegExp)[];\r\n className?: string;\r\n}\r\n\r\nexport type InputMaskProps = (FieldProps) & OwnProps & WithValidationProps;\r\n\r\nfunction Component(props: InputMaskProps) {\r\n const { field, hasError, ...restProps } = props;\r\n\r\n return (\r\n {\r\n const { innerRef, ...rest } = maskProps;\r\n return ;\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport const InputMask = withValidation(Component);\r\n","import { FieldProps } from 'formik';\r\nimport React from 'react';\r\nimport { Input } from '../Input';\r\nimport { styled, Theme, css } from '../../../style/theme/themeModule';\r\nimport { Icon } from '../../Icon/Icon';\r\nimport { WithValidationProps, withValidation } from '../Validation/WithValidation';\r\nimport { px } from '../../../style/theme/utils';\r\n\r\nconst Container = styled.div`\r\n position: relative;\r\n display: inline-block;\r\n`;\r\n\r\ninterface IconContainerProps extends Theme {\r\n hasError?: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const IconContainer = styled.div`\r\n position: relative;\r\n top: 4px;\r\n width: ${(p) => px(p.theme.checkbox.height)};\r\n height: ${(p) => px(p.theme.checkbox.height)};\r\n border-radius: 2px;\r\n border: 1px solid ${(p) => p.theme.colors.primary3};\r\n margin-right: 20px;\r\n display: inline-block;\r\n background: ${(p) => p.theme.colors.white};\r\n ${(p: IconContainerProps) =>\r\n p.disabled && `background: ${p.theme.colors.disabledBackground}; cursor: default;`}\r\n ${(p: IconContainerProps) => p.hasError && `border-color: ${p.theme.colors.error};`}\r\n`;\r\n\r\nexport const CheckboxInputStyle = css`\r\n position: absolute;\r\n opacity: 0;\r\n margin-left: 0;\r\n\r\n &:active,\r\n &:focus {\r\n & + ${IconContainer} {\r\n border-color: ${(p) => p.theme.input.focusColor};\r\n }\r\n }\r\n`;\r\n\r\nexport const CheckboxInput = styled(Input)`\r\n ${CheckboxInputStyle}\r\n`;\r\n\r\ninterface CheckIconProps extends Theme {\r\n disabled?: boolean;\r\n}\r\n\r\nexport const CheckIcon = styled(Icon)`\r\n position: absolute;\r\n top: 4px;\r\n left: 4px;\r\n color: ${(p) => p.theme.colors.primary1};\r\n font-size: 16px;\r\n ${(p: CheckIconProps) => p.disabled && `opacity: .5;`};\r\n\r\n && {\r\n width: 18px;\r\n height: 18px;\r\n }\r\n`;\r\n\r\ninterface OwnProps extends React.InputHTMLAttributes {\r\n className?: string;\r\n}\r\n\r\ntype Props = (FieldProps) & OwnProps & (WithValidationProps);\r\n\r\nfunction Component(props: Props) {\r\n const { field, hasError, className, ...restProps } = props;\r\n const { disabled } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {!!field.value && }\r\n \r\n \r\n );\r\n\r\n function generateId() {\r\n let dataTestId = undefined;\r\n\r\n for (let [key, value] of Object.entries(props)) {\r\n if (key === 'data-testid' || (key === 'data-test-id' && !dataTestId)) {\r\n return (dataTestId = value);\r\n }\r\n }\r\n\r\n if (dataTestId) {\r\n return dataTestId;\r\n }\r\n\r\n let pathArray = window.location.pathname.split('/');\r\n let fieldName = field.name\r\n .split(' ')\r\n .join('-')\r\n .toLowerCase();\r\n dataTestId = `${pathArray[3]}-${pathArray[4]}-${fieldName}`;\r\n return dataTestId;\r\n }\r\n}\r\n\r\nexport const Checkbox = withValidation(Component);\r\n","import { ACCOUNT_SETTINGS_CMS_DATA_MOCK } from './__mock__/accountSettings.cmsData.mock';\r\nimport { ALERTS_AND_MESSAGES_CMS_DATA_MOCK } from './__mock__/alertsAndMessages.cmsData.mock';\r\nimport BUY_SHARES_ALL_CMS_DATA_MOCK from './__mock__/authenticatedBuy.cmsData.mock';\r\nimport SELL_SHARES_ALL_CMS_DATA_MOCK from './__mock__/authenticatedSell.cmsData.mock';\r\nimport { BROKER_INSTRUCTIONS_CMS_DATA_MOCK } from './__mock__/brokerInstructions.cmsData.mock';\r\nimport { CHECKS_CMS_DATA_MOCK } from './__mock__/checks.cmsData.mock';\r\nimport { COMMON_ERROR_MESSAGES_CMS_DATA_MOCK } from './__mock__/commonErrorMessages.cmsData.mock';\r\nimport { COMPANY_PLANS_CMS_DATA_MOCK } from './__mock__/companyPlans.cmsData.mock';\r\nimport { COMPONENTS_CMS_DATA_MOCK } from './__mock__/components.cmsData.mock';\r\nimport { CONTACT_DATA_MOCK } from './__mock__/contact.cmsData.mock';\r\nimport { COUNTRY_GLOSSARY_CMS_DATA_MOCK } from './__mock__/countryGlossary.cmsData.mock';\r\nimport { DASHBOARD_CMS_DATA_MOCK } from './__mock__/dashboard.cmsData.mock';\r\nimport { DIVIDEND_CMS_DATA_MOCK } from './__mock__/dividend.cmsData.mock';\r\nimport DOCUMENTS_AND_FORMS_CMS_DATA_MOCK from './__mock__/documentsAndForms.cmsData.mock';\r\nimport { EMAIL_ADDRESS_MISMATCH_CMS_DATA_MOCK } from './__mock__/emailAddressMismatch.cmsData.mock';\r\nimport { ESPP_CMS_DATA_MOCK } from './__mock__/espp.cmsData.mock';\r\nimport { GLOSSARY_CMS_DATA_MOCK } from './__mock__/glossary.cmsData.mock';\r\nimport { LOGIN_CMS_DATA_MOCK } from './__mock__/login.cmsData.mock';\r\nimport { PORTFOLIO_CMS_DATA_MOCK } from './__mock__/portfolio.cmsData.mock';\r\nimport { SECURITY_OVERVIEW_CMS_DATA_MOCK } from './__mock__/securityOverview.cmsData.mock';\r\nimport SIGN_ON_ISSUES_CMS_DATA_MOCK from './__mock__/signOnIssues.cmsData.mock';\r\nimport SIGN_UP_CMS_DATA_MOCK from './__mock__/signUp.cmsData.mock';\r\nimport MARKET_DATA_CMS_DATA_MOCK from './__mock__/marketData.cmsData.mock';\r\nimport { TERMS_AND_CONDITIONS_CMS_DATA_MOCK } from './__mock__/termsAndConditions.cmsData.mock';\r\nimport SHARED_CMS_DATA_MOCK from './__mock__/shared.cmsData.mock';\r\nimport INTERNATIONAL_PAYMENTS_CMS_DATA_MOCK from './__mock__/internationalPaymentsHelp.cmsData.mock';\r\n\r\nexport type CmsDataValues = {\r\n [key: string]: string | any[];\r\n};\r\n\r\nexport type CmsDataAllPages = { [X in CmsDataPage]?: CmsDataValues };\r\n\r\nexport enum CmsDataPage {\r\n CommonErrorMessages = 'commonErrorMessages',\r\n // TODO: find out if component page needed in current architecture and remove it if not needed.\r\n Components = 'components',\r\n AuthSettings = 'login',\r\n AccountSettings = 'accountSettings',\r\n BrokerInstructions = 'brokerInstructions',\r\n Dashboard = 'dashboard',\r\n Dividend = 'dividends',\r\n Portfolio = 'portfolio',\r\n SecurityOverview = 'securityOverview',\r\n AlertsAndMessages = 'alertsAndMessages',\r\n SignUp = 'signUpProcessPage',\r\n AuthenticatedBuy = 'authenticatedBuy',\r\n AuthenticatedSell = 'authenticatedSell',\r\n DocumentsAndForms = 'documentsAndForms',\r\n SignOnIssues = 'signOnIssues',\r\n CompanyPlans = 'companyPlans',\r\n GlossaryOfTerms = 'glossary',\r\n CountryGlossary = 'countryGlossary',\r\n Checks = 'checks',\r\n Contact = 'contact',\r\n Espp = 'espp',\r\n TermsAndConditions = 'termsAndConditions',\r\n EmailAddressMismatch = 'emailAddressMismatch',\r\n Wfsso = 'wfsso',\r\n MarketData = 'marketData',\r\n SharedLabels = 'sharedData', // TODO\r\n InternationalPayments = 'internationalPayments',\r\n}\r\n\r\nexport type CmsLabelFnType = (key: string, ...interpolateParams: any[]) => string;\r\nexport type CmsLabelHtmlFnType = (key: string, ...interpolateParams: any[]) => JSX.Element;\r\n\r\n// TODO: remove below models when CmsData context'ish implementation is used everywhere\r\n\r\nexport type CommonErrorMessagesCmsData = typeof COMMON_ERROR_MESSAGES_CMS_DATA_MOCK;\r\nexport type LoginCmsData = typeof LOGIN_CMS_DATA_MOCK;\r\nexport type DashboardCmsData = typeof DASHBOARD_CMS_DATA_MOCK;\r\nexport type AccountSettingsCmsData = typeof ACCOUNT_SETTINGS_CMS_DATA_MOCK;\r\nexport type BrokerInstructionsCmsData = typeof BROKER_INSTRUCTIONS_CMS_DATA_MOCK;\r\nexport type DividendCmsData = typeof DIVIDEND_CMS_DATA_MOCK;\r\nexport type PortfolioCmsData = typeof PORTFOLIO_CMS_DATA_MOCK;\r\nexport type SecurityOverviewCmsData = typeof SECURITY_OVERVIEW_CMS_DATA_MOCK;\r\nexport type ComponentsCmsData = typeof COMPONENTS_CMS_DATA_MOCK;\r\nexport type AlertsAndMessagesCmsData = typeof ALERTS_AND_MESSAGES_CMS_DATA_MOCK;\r\nexport type SignOnIssuesCmsData = typeof SIGN_ON_ISSUES_CMS_DATA_MOCK;\r\nexport type SignUpCmsData = typeof SIGN_UP_CMS_DATA_MOCK;\r\nexport type BuySharesCmsData = typeof BUY_SHARES_ALL_CMS_DATA_MOCK;\r\nexport type SellSharesCmsData = typeof SELL_SHARES_ALL_CMS_DATA_MOCK;\r\nexport type DocumentsAndFormsCmsData = typeof DOCUMENTS_AND_FORMS_CMS_DATA_MOCK;\r\nexport type CompanyPlansCmsData = typeof COMPANY_PLANS_CMS_DATA_MOCK;\r\nexport type GlossaryCmsData = typeof GLOSSARY_CMS_DATA_MOCK;\r\nexport type ChecksCmsData = typeof CHECKS_CMS_DATA_MOCK;\r\nexport type CountryGlossaryCmsData = typeof COUNTRY_GLOSSARY_CMS_DATA_MOCK;\r\nexport type ContactCmsData = typeof CONTACT_DATA_MOCK;\r\nexport type EsppCmsData = typeof ESPP_CMS_DATA_MOCK;\r\nexport type TermsAndConditionsCmsData = typeof TERMS_AND_CONDITIONS_CMS_DATA_MOCK;\r\nexport type EmailAddressMismatchCmsData = typeof EMAIL_ADDRESS_MISMATCH_CMS_DATA_MOCK;\r\nexport type MarketDataCmsData = typeof MARKET_DATA_CMS_DATA_MOCK;\r\nexport type SharedCmsData = typeof SHARED_CMS_DATA_MOCK; // TODO\r\nexport type InternationalPaymentsCmsData = typeof INTERNATIONAL_PAYMENTS_CMS_DATA_MOCK;\r\n// export type WfssoCmsData = typeof WFSSO_CMS_DATA_MOCK;\r\n\r\nexport type CmsData =\r\n | CommonErrorMessagesCmsData\r\n | LoginCmsData\r\n | DashboardCmsData\r\n | AccountSettingsCmsData\r\n | BrokerInstructionsCmsData\r\n | DividendCmsData\r\n | PortfolioCmsData\r\n | SecurityOverviewCmsData\r\n | AlertsAndMessagesCmsData\r\n | SignUpCmsData\r\n | SignOnIssuesCmsData\r\n | BuySharesCmsData\r\n | SellSharesCmsData\r\n | DocumentsAndFormsCmsData\r\n | CompanyPlansCmsData\r\n | GlossaryCmsData\r\n | ChecksCmsData\r\n | CountryGlossaryCmsData\r\n | ContactCmsData\r\n | EsppCmsData\r\n | TermsAndConditionsCmsData\r\n | EmailAddressMismatchCmsData\r\n | MarketDataCmsData\r\n | InternationalPaymentsCmsData\r\n | SharedCmsData; // TODO\r\n// | WfssoCmsData;\r\n\r\nexport type CmsLabelKey = string;\r\nexport type Translate = (key: keyof T, ...interpolateParams: any[]) => string;\r\nexport type TranslateHtml = (key: keyof T, ...interpolateParams: any[]) => JSX.Element;\r\nexport type TranslateError = (key: string) => string;\r\nexport type TranslateErrors = (key: string[]) => string[];\r\n","import { History } from 'history';\r\nimport { Country } from './../../../Dividend/store/dividend.model';\r\nimport { DividendCmsData, useCmsData, useCmsDataLoader } from '../../../../containers/CmsData';\r\nimport {\r\n CmsDataAllPages,\r\n CmsDataPage,\r\n SellSharesCmsData,\r\n Translate,\r\n} from '../../../../containers/CmsData/store/cmsData.model';\r\nimport { useAlerts } from '../../../AlertsAndMessages/Alerts/Alerts.hook';\r\nimport { AlertProps, AlertType } from '../../../AlertsAndMessages/Alerts/models';\r\nimport { accountSettingsPath } from '../../../../routing/path';\r\nimport { useApiGet, useApiRequestWithResponse } from '../../../../api/api.hooks';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport { SellSharesDetails, SellTranslations } from './SellSharesTypes';\r\nimport { goTo } from './SellSharesRouting';\r\n\r\nconst cmsPageName = CmsDataPage.AuthenticatedSell;\r\n\r\nexport function useSellSharesCmsData() {\r\n const cmsDataLoading = useCmsDataLoader(\r\n CmsDataPage.Dashboard,\r\n CmsDataPage.AlertsAndMessages,\r\n CmsDataPage.Dividend,\r\n cmsPageName,\r\n );\r\n const { cmsLabel, cmsDataAllPages } = useCmsData();\r\n const _t: Translate = (key: string) => cmsLabel(`${cmsPageName}.${key}`);\r\n return { cmsDataLoading, _t, cmsDataAllPages };\r\n}\r\n\r\nexport function useTranslate() {\r\n const { cmsLabel, cmsLabelHtml, cmsLabelStartsWith } = useCmsData();\r\n\r\n return { _t, _thtml, _e, _eMany };\r\n\r\n function _t(key: keyof SellSharesCmsData) {\r\n return cmsLabel(`${cmsPageName}.${key}`);\r\n }\r\n\r\n function _thtml(key: keyof SellSharesCmsData) {\r\n return cmsLabelHtml(`${cmsPageName}.${key}`);\r\n }\r\n\r\n function _e(key: string) {\r\n return cmsLabelStartsWith(`${cmsPageName}.e${key}`);\r\n }\r\n\r\n function _eMany(keys: string[]): string[] {\r\n return keys.map((key) => _e(key));\r\n }\r\n}\r\n\r\nexport function useWireTransferTranslate() {\r\n const { cmsLabel } = useCmsData();\r\n\r\n return { _twt };\r\n\r\n function _twt(key: keyof DividendCmsData, ...interpolateParams: any[]) {\r\n return cmsLabel(`${CmsDataPage.Dividend}.${key}`, ...interpolateParams);\r\n }\r\n}\r\n\r\nexport function useSellSharesAlerts(cmsData: CmsDataAllPages, history: History) {\r\n const alerts = useAlerts(cmsData['alertsAndMessages'] as any);\r\n\r\n return {\r\n ...alerts,\r\n getAlerts,\r\n };\r\n\r\n function getAlerts(): AlertProps[] | undefined {\r\n if (!alerts || !alerts.alertList) {\r\n return undefined;\r\n }\r\n\r\n const taxCertifiedAlerts = alerts.alertList\r\n .filter((a) => a.alertType === AlertType.TaxCertified)\r\n .map((a) => {\r\n a.onPerformAction = () => goTo(history, accountSettingsPath('taxcertification'));\r\n return a;\r\n });\r\n\r\n return taxCertifiedAlerts && taxCertifiedAlerts.length ? taxCertifiedAlerts : undefined;\r\n }\r\n}\r\n\r\nexport function useSellSharesAccountsApi() {\r\n return useApiGet(APP_CONFIG.api.shares.sell.accounts);\r\n}\r\n\r\nexport function useSellSharesValidationApi() {\r\n return useApiRequestWithResponse(APP_CONFIG.api.shares.sell.saleOrderDetails, 'post');\r\n}\r\n\r\nexport function useSellSharesSubmitApi() {\r\n return useApiRequestWithResponse(APP_CONFIG.api.shares.sell.shares, 'post');\r\n}\r\n\r\nexport function useWireTransferBeneficiaryCountriesApi() {\r\n return useApiGet(APP_CONFIG.api.accountAddress.countries);\r\n}\r\n","import { ReinvestmentType, ReinvestmentOption } from './dividend.model';\r\n\r\nexport const REINVESTMENT_TYPES_MAP = {\r\n FULL: [ReinvestmentType.RD],\r\n ALLOWED: [\r\n ReinvestmentType.RXN,\r\n ReinvestmentType.RXY,\r\n ReinvestmentType.RPN,\r\n ReinvestmentType.RPY,\r\n ReinvestmentType.PSN,\r\n ReinvestmentType.PSY,\r\n ReinvestmentType.RVY,\r\n ReinvestmentType.RVN,\r\n ],\r\n NOT_ALLOWED: [ReinvestmentType.PD, ReinvestmentType.RP0],\r\n};\r\n\r\ninterface ReinvestmentMap {\r\n FULL: ReinvestmentOption[];\r\n ALLOWED: ReinvestmentOption[];\r\n NOT_ALLOWED: ReinvestmentOption[];\r\n}\r\n\r\nconst DEFAULT_REINVESTMENT = {\r\n FULL: [],\r\n ALLOWED: [],\r\n NOT_ALLOWED: [],\r\n};\r\nexport const getFlattenReinvestmentTypes = (options: ReinvestmentOption[]) => {\r\n const availableOptions = options.reduce((acc: ReinvestmentMap, option: ReinvestmentOption) => {\r\n if (REINVESTMENT_TYPES_MAP.FULL.includes(option.reinvestmentType)) {\r\n acc.FULL.push(option);\r\n }\r\n if (REINVESTMENT_TYPES_MAP.ALLOWED.includes(option.reinvestmentType)) {\r\n acc.ALLOWED.push(option);\r\n }\r\n if (REINVESTMENT_TYPES_MAP.NOT_ALLOWED.includes(option.reinvestmentType)) {\r\n acc.NOT_ALLOWED.push(option);\r\n }\r\n return acc;\r\n }, DEFAULT_REINVESTMENT);\r\n\r\n return {\r\n containFullReinvestment: availableOptions.FULL.length,\r\n containReinvestmentOptions: availableOptions.ALLOWED.length,\r\n containNoReinvestmentOptions: availableOptions.NOT_ALLOWED.length,\r\n };\r\n};\r\n","import { styled } from '../../style/theme/themeModule';\r\n\r\nexport const GroupLabel = styled.div`\r\n font-weight: ${(p) => p.theme.fontWeight.normal};\r\n margin-bottom: 10px;\r\n`;\r\n","import { FormikProps } from 'formik';\r\nimport React from 'react';\r\nimport { FieldDescription, GroupLabel } from '.';\r\nimport { RadioButtonGroup } from './ChoiceGroup/RadioButtonGroup';\r\nimport { ChoiceGroupOption } from './ChoiceGroup/RadioGroup';\r\nimport { FormGroup } from './FormGroup';\r\nimport { Input } from './Input';\r\nimport { InputIconContainer, InputIconType } from './InputIconContainer';\r\nimport { Label } from './Label';\r\nimport { LabelIconWithTooltip, LabelIconWithTooltipProps } from './LabelIconWithTooltip';\r\nimport { FormikSelect } from './Select';\r\nimport { SelectOption } from './Select/select.model';\r\nimport { FormField } from './Validation/FormField';\r\nimport { ValidationError } from './Validation/ValidationError';\r\n\r\nexport interface BaseFormControlProps {\r\n formKey: string;\r\n label: string | JSX.Element;\r\n options?: SelectOption[] | ChoiceGroupOption[];\r\n type?: 'textarea' | 'select' | 'radioButtonGroup';\r\n description?: string | JSX.Element;\r\n icon?: InputIconType;\r\n labelIconWithTooltip?: LabelIconWithTooltipProps;\r\n required?: boolean;\r\n placeholder?: string;\r\n style?: React.CSSProperties;\r\n maxLength?: number;\r\n}\r\n\r\nexport interface FormControlProps extends BaseFormControlProps {\r\n formProps: FormikProps;\r\n disabled?: boolean;\r\n onBlur?: (e: React.FocusEvent) => void;\r\n onSelect?: (val: SelectOption) => void;\r\n}\r\n\r\nexport const FormControl = ({\r\n formKey,\r\n label,\r\n formProps,\r\n options,\r\n type,\r\n description,\r\n disabled,\r\n icon,\r\n labelIconWithTooltip,\r\n required,\r\n placeholder,\r\n onBlur,\r\n onSelect,\r\n style,\r\n maxLength,\r\n}: FormControlProps) => {\r\n return (\r\n \r\n {type === 'radioButtonGroup'\r\n ? renderRadioButtonGroup(options as ChoiceGroupOption[])\r\n : renderInput(options as SelectOption[])}\r\n\r\n {!!description && {description}}\r\n \r\n \r\n );\r\n\r\n function renderInput(options: SelectOption[]) {\r\n return (\r\n <>\r\n \r\n \r\n formProps.setFieldTouched(formKey, true)}\r\n onSelect={onSelect}\r\n maxLength={maxLength}\r\n />\r\n \r\n \r\n );\r\n }\r\n\r\n function renderRadioButtonGroup(options: ChoiceGroupOption[]) {\r\n return (\r\n <>\r\n {label}\r\n \r\n \r\n );\r\n }\r\n\r\n function getType() {\r\n if (['radioButtonGroup', 'select'].some((t) => t === type)) {\r\n return undefined;\r\n }\r\n return type || 'text';\r\n }\r\n\r\n function getComponent() {\r\n switch (type) {\r\n case 'select':\r\n return FormikSelect;\r\n case 'radioButtonGroup':\r\n return RadioButtonGroup;\r\n default:\r\n return Input;\r\n }\r\n }\r\n};\r\n","export function sortBy(sel: (item: T) => string | number) {\r\n return (item1: T, item2: T) => {\r\n const s1 = sel(item1);\r\n const s2 = sel(item2);\r\n return s1 > s2 ? 1 : s2 > s1 ? -1 : 0;\r\n };\r\n}\r\n\r\ninterface NormalizedArrayObject {\r\n [key: string]: TModel | undefined;\r\n}\r\n\r\nexport function normalize(\r\n list: TModel[],\r\n idSelector: (item: TModel) => string,\r\n): NormalizedArrayObject {\r\n if (!list || !list.length) {\r\n return {} as NormalizedArrayObject;\r\n }\r\n\r\n return list.reduce(\r\n (result, item) => {\r\n const id = idSelector(item);\r\n return { ...result, [id]: item };\r\n },\r\n {} as NormalizedArrayObject,\r\n );\r\n}\r\n","import {\r\n AutoSellConfig,\r\n BookLotSaleInfo,\r\n NormalizedList,\r\n SellMethod,\r\n ShareType,\r\n} from '../../models';\r\n\r\nexport interface SaleOrderDetailsFormData extends AutoSellConfig {\r\n shareTypesToSell: ShareType;\r\n saleMethod: SellMethod;\r\n drsSellAmount?: number;\r\n planSellAmount?: number;\r\n bookLotSaleConfig: NormalizedList;\r\n}\r\n\r\nexport interface ShareTransaction {\r\n number: string;\r\n acquisitionDate: Date;\r\n acquisitionPricePerShare: number;\r\n grossAmount: number;\r\n dispositionStatus: DispositionStatus;\r\n totalShares: number;\r\n availableForSale: number;\r\n dispositionStatusMessage?: string;\r\n}\r\n\r\nexport type ShareTransactionSale = ShareTransaction & BookLotSaleInfo;\r\n\r\nexport enum DispositionStatus {\r\n DisQualified = -1,\r\n Blank = 0,\r\n Qualified = 1,\r\n}\r\n\r\nexport const dispositionStatusMessage: Record = {\r\n [DispositionStatus.DisQualified]: 'Disqualified',\r\n [DispositionStatus.Blank]: '',\r\n [DispositionStatus.Qualified]: 'Qualified',\r\n};\r\n","import { CmsDataPage } from './cmsData.model';\r\n\r\ntype PageToMockPathMap = { [page in CmsDataPage]: string };\r\n\r\nconst pageToMockMapping: PageToMockPathMap = {\r\n [CmsDataPage.AccountSettings]: 'accountSettings',\r\n [CmsDataPage.AlertsAndMessages]: 'alertsAndMessages',\r\n [CmsDataPage.CommonErrorMessages]: 'commonErrorMessages',\r\n [CmsDataPage.Components]: 'components',\r\n [CmsDataPage.Dashboard]: 'dashboard',\r\n [CmsDataPage.Dividend]: 'dividend',\r\n [CmsDataPage.SignUp]: 'signUp',\r\n [CmsDataPage.AuthSettings]: 'login',\r\n [CmsDataPage.Portfolio]: 'portfolio',\r\n [CmsDataPage.BrokerInstructions]: 'brokerInstructions',\r\n [CmsDataPage.SecurityOverview]: 'securityOverview',\r\n [CmsDataPage.AuthenticatedBuy]: 'authenticatedBuy',\r\n [CmsDataPage.AuthenticatedSell]: 'authenticatedSell',\r\n [CmsDataPage.SignOnIssues]: 'signOnIssues',\r\n [CmsDataPage.CompanyPlans]: 'companyPlans',\r\n [CmsDataPage.DocumentsAndForms]: 'documentsAndForms',\r\n [CmsDataPage.GlossaryOfTerms]: 'glossary',\r\n [CmsDataPage.CountryGlossary]: 'countryGlossary',\r\n [CmsDataPage.Checks]: 'checks',\r\n [CmsDataPage.Contact]: 'contact',\r\n [CmsDataPage.Espp]: 'espp',\r\n [CmsDataPage.Contact]: 'contact',\r\n [CmsDataPage.TermsAndConditions]: 'termsAndConditions',\r\n [CmsDataPage.EmailAddressMismatch]: 'emailAddressMismatch',\r\n [CmsDataPage.Wfsso]: 'wfsso',\r\n [CmsDataPage.MarketData]: 'marketData',\r\n [CmsDataPage.SharedLabels]: 'sharedLabels', // TODO research more about ability to use dedicated file\r\n [CmsDataPage.InternationalPayments]: 'internationalPaymentsHelp',\r\n};\r\n\r\nexport const getMockPagePath = (page: CmsDataPage) => {\r\n return `./__mock__/${pageToMockMapping[page]}.cmsData.mock`;\r\n};\r\n","export const CMS_DATA_CONSTANTS = {\r\n useMockLabels: process.env.REACT_APP_USE_CMS_DATA_MOCKS === 'true',\r\n};\r\n","import React from 'react';\r\nimport { CollapsibleHelp } from '../../lib/CollapsibleHelp';\r\n\r\ninterface OwnProps {\r\n bankInfoText: string;\r\n}\r\n\r\ninterface OwnTranslations {\r\n title: string;\r\n}\r\n\r\ntype Props = OwnProps & OwnTranslations;\r\n\r\nexport function BankInfoDisplay({ bankInfoText, ...t }: Props) {\r\n return ;\r\n}\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport { LoadHandler } from '../../lib/LoadHandler';\r\nimport { useBankInfo } from './BankInfoEffects';\r\nimport { BankInfoDisplay } from './BankInfoDisplay';\r\n\r\ntype NoContentBehavior = 'hide' | 'showMessage';\r\n\r\ninterface OwnProps {\r\n countryCode: string;\r\n contentUnavailableBehavior: NoContentBehavior;\r\n}\r\ninterface OwnTranslations {\r\n contentUnavailableMessage?: string;\r\n panelTitle: string;\r\n}\r\ntype Props = OwnProps & OwnTranslations;\r\n\r\nexport function BankInfo({ countryCode, contentUnavailableBehavior, ...t }: Props) {\r\n const bankInfo = useBankInfo(countryCode);\r\n const bankInfoTexts = getText(\r\n bankInfo.data,\r\n contentUnavailableBehavior,\r\n t.contentUnavailableMessage,\r\n );\r\n return (\r\n \r\n \r\n {bankInfoTexts !== undefined && (\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nfunction getText(\r\n bankInfo: string | null,\r\n noContentBehavior: NoContentBehavior,\r\n noContentMessage?: string,\r\n) {\r\n if (typeof bankInfo === 'string') {\r\n return bankInfo;\r\n }\r\n\r\n switch (noContentBehavior) {\r\n case 'hide':\r\n return undefined;\r\n case 'showMessage':\r\n return noContentMessage || '';\r\n }\r\n}\r\n\r\nexport const Container = styled.div`\r\n margin-bottom: 20px;\r\n`;\r\n","import { useApiGet } from '../../api/api.hooks';\r\nimport { APP_CONFIG } from '../../config';\r\n\r\nexport function useBankInfo (countryId: string) {\r\n return useApiGet(APP_CONFIG.api.bankInfo(countryId));\r\n}\r\n","import { useState, useEffect } from 'react';\r\nimport { ApiService } from '../api/api.service';\r\nimport { APP_CONFIG } from '../config';\r\nimport { ApiResponse } from '../lib/Form/Validation/validation.model';\r\nimport { ROUTES_MOCK_DATA } from './__mock__/api.mock';\r\n\r\nexport type Alias =\r\n | 'accountSettings'\r\n | 'authenticatedBuy'\r\n | 'authenticatedSell'\r\n | 'brokerInstructions'\r\n | 'companyPlans'\r\n | 'dashboard'\r\n | 'dividends'\r\n | 'glossary'\r\n | 'login'\r\n | 'portfolio'\r\n | 'securityOverview'\r\n | 'signOnIssues'\r\n | 'alertsAndMessages'\r\n | 'signUpProcessPage'\r\n | 'documentsAndForms'\r\n | 'authSettings'\r\n | 'checks'\r\n | 'pendingSales'\r\n | 'countryGlossary'\r\n | 'espp'\r\n | 'signout'\r\n | 'contact'\r\n | 'dspp'\r\n | 'termsAndConditions'\r\n | 'emailAddressMismatch'\r\n | 'wfsso'\r\n | 'internationalPayments'\r\n | 'marketData';\r\n\r\nexport interface RoutingInfo {\r\n alias: Alias;\r\n route: string;\r\n contentId: number;\r\n}\r\n\r\nexport let routing: RoutingInfo[] = [];\r\nlet isLoaded = false;\r\n\r\nif (process.env.REACT_APP_ON_TEST === 'true') {\r\n routing = ROUTES_MOCK_DATA.data;\r\n isLoaded = true;\r\n}\r\n\r\nexport const getRouting = async () => {\r\n if (isLoaded) {\r\n return routing;\r\n }\r\n\r\n const result = await ApiService.get>(APP_CONFIG.api.routes);\r\n if (result.success) {\r\n isLoaded = true;\r\n routing = result.data;\r\n return result.data;\r\n }\r\n\r\n throw result.errors;\r\n};\r\n\r\nexport const useRouting = () => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [routing, setRouting] = useState();\r\n useEffect(() => {\r\n getRouting()\r\n .then((data) => setRouting(data))\r\n .finally(() => setIsLoading(false));\r\n }, []);\r\n\r\n return {\r\n isLoading,\r\n routing,\r\n };\r\n};\r\n","import MockAdapter from 'axios-mock-adapter';\r\nimport { APP_CONFIG } from '../../config';\r\nimport { ApiResponse } from '../../lib/Form/Validation/validation.model';\r\nimport { RoutingInfo } from '../api';\r\n\r\nexport const ROUTES_MOCK_DATA: ApiResponse = {\r\n success: true,\r\n data: [\r\n {\r\n alias: 'internationalPayments',\r\n route: '/informational/international-payments',\r\n contentId: 1809,\r\n },\r\n {\r\n alias: 'accountSettings',\r\n route: '/transactional/authenticated/account-settings',\r\n contentId: 1317,\r\n },\r\n {\r\n alias: 'authenticatedBuy',\r\n route: '/transactional/authenticated/authenticated-buy',\r\n contentId: 1446,\r\n },\r\n {\r\n alias: 'dashboard',\r\n route: '/transactional/authenticated/dashboard',\r\n contentId: 1321,\r\n },\r\n {\r\n alias: 'pendingSales',\r\n route: '/transactional/authenticated/pending-sales',\r\n contentId: 1299,\r\n },\r\n {\r\n alias: 'dividends',\r\n route: '/transactional/authenticated/dividends',\r\n contentId: 1343,\r\n },\r\n {\r\n alias: 'portfolio',\r\n route: '/transactional/authenticated/portfolio',\r\n contentId: 1349,\r\n\r\n // Note: on OPS:\r\n // \"Alias\":\"portfolio\",\r\n // \"Route\":\"/transactional/authenticated/account-summary\",\r\n // \"ContentId\":1520\r\n },\r\n {\r\n alias: 'securityOverview',\r\n route: '/transactional/authenticated/security-overview',\r\n contentId: 1353,\r\n },\r\n {\r\n alias: 'alertsAndMessages',\r\n route: '/transactional/authenticated/alerts-and-messages',\r\n contentId: 1495,\r\n },\r\n {\r\n alias: 'authenticatedSell',\r\n route: '/transactional/authenticated/authenticated-sell',\r\n contentId: 1524,\r\n },\r\n {\r\n alias: 'companyPlans',\r\n route: '/transactional/authenticated/company-plans',\r\n contentId: 1539,\r\n },\r\n {\r\n alias: 'login',\r\n route: '/transactional/anonymous/login',\r\n contentId: 1247,\r\n },\r\n {\r\n alias: 'signUpProcessPage',\r\n route: '/transactional/anonymous/sign-up',\r\n contentId: 1410,\r\n },\r\n {\r\n alias: 'signOnIssues',\r\n route: '/transactional/anonymous/signon-issues',\r\n contentId: 1435,\r\n },\r\n {\r\n alias: 'glossary',\r\n route: '/transactional/anonymous/glossary',\r\n contentId: 1533,\r\n },\r\n {\r\n alias: 'authSettings',\r\n route: '/auth-settings',\r\n contentId: 1276,\r\n },\r\n {\r\n alias: 'documentsAndForms',\r\n route: '/transactional/authenticated/statements-and-tax-forms',\r\n contentId: 1578,\r\n },\r\n {\r\n alias: 'checks',\r\n route: '/transactional/authenticated/checks',\r\n contentId: 1288,\r\n },\r\n {\r\n alias: 'countryGlossary',\r\n route: '/transactional/anonymous/country-glossary',\r\n contentId: 1218,\r\n },\r\n {\r\n alias: 'contact',\r\n route: '/informational/contact-us',\r\n contentId: 1289,\r\n },\r\n {\r\n alias: 'espp',\r\n route: '/transactional/anonymous/espp',\r\n contentId: 1289,\r\n },\r\n {\r\n alias: 'dspp',\r\n route: '/transactional/anonymous/dspp',\r\n contentId: 1289,\r\n },\r\n {\r\n alias: 'brokerInstructions',\r\n route: '/transactional/authenticated/broker-instructions',\r\n contentId: 1290,\r\n },\r\n {\r\n alias: 'termsAndConditions',\r\n route: '/transactional/anonymous/terms-and-conditions',\r\n contentId: 1671,\r\n },\r\n {\r\n alias: 'emailAddressMismatch',\r\n route: '/transactional/anonymous/e-mail-address-mismatch',\r\n // On FTA2, OPS, PROD Umbraco content page has /e-mail-address-mismatch\r\n // /email-address-mismatch was in UK-hosted Umbraco database (and assumed old value)\r\n contentId: 1685,\r\n },\r\n {\r\n alias: 'wfsso',\r\n route: '/transactional/anonymous/wfsso',\r\n contentId: 1693,\r\n },\r\n {\r\n alias: 'marketData',\r\n route: '/informational/market-data',\r\n contentId: 1700,\r\n },\r\n ],\r\n};\r\n\r\nexport function mockRoutesApi(mock: MockAdapter) {\r\n mock.onGet(APP_CONFIG.api.routes).reply(200, ROUTES_MOCK_DATA);\r\n}\r\n","export * from './BankAccount';\r\nexport * from './Country';\r\nexport * from './InternationalACHSetupDetails';\r\n","import React from 'react';\r\nimport { connect, FormikValues, FormikProps } from 'formik';\r\n\r\n// jaredpalmer/formik-effect does not work new React context api\r\n// when issue is fixed, use it instead of this one\r\n// https://github.com/jaredpalmer/formik-effect/issues/4\r\n\r\ninterface OwnProps {\r\n onChange: (formProps: FormikProps) => void;\r\n}\r\n\r\ninterface Props extends OwnProps {\r\n formik: FormikProps;\r\n}\r\n\r\nclass Component extends React.Component {\r\n componentDidUpdate(prevProps: Props) {\r\n const { formik, onChange } = this.props;\r\n\r\n const hasChanged =\r\n JSON.stringify(formik.values) !== JSON.stringify(prevProps.formik.values) ||\r\n JSON.stringify(formik.errors) !== JSON.stringify(prevProps.formik.errors);\r\n\r\n if (hasChanged) {\r\n onChange(formik);\r\n }\r\n }\r\n\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nexport const FormEffect = connect(Component);\r\n","export function debounce(func: Function, wait: number, immediate = false) {\r\n let timeout: number | undefined;\r\n return function(this: any) {\r\n var context = this,\r\n args = arguments;\r\n window.clearTimeout(timeout);\r\n timeout = window.setTimeout(function() {\r\n timeout = undefined;\r\n if (!immediate) func.apply(context, args as any);\r\n }, wait);\r\n if (immediate && !timeout) func.apply(context, args as any);\r\n };\r\n}\r\n","import React from 'react';\r\nimport { OptionalRender } from '../OptionalRender';\r\nimport { styled } from '../../style/theme/themeModule';\r\n\r\ninterface OwnProps {\r\n suffix?: JSX.Element;\r\n children?: JSX.Element;\r\n className?: string;\r\n compact?: boolean;\r\n background?: string;\r\n}\r\n\r\nexport function Suffix({ children, compact, background, suffix, className }: OwnProps) {\r\n return (\r\n \r\n {children}\r\n \r\n
    {suffix}
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\ninterface PanelHeaderContainerProps {\r\n compact?: boolean;\r\n children?: any;\r\n className?: string;\r\n background?: string;\r\n}\r\n\r\nconst Container = styled(({ compact, children, ...rest }: PanelHeaderContainerProps) => (\r\n
    {children}
    \r\n))`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n ${(p: PanelHeaderContainerProps) => (p.compact ? ' padding: 10px;' : 'padding: 1.25rem;')}\r\n ${(p: PanelHeaderContainerProps) =>\r\n p.background\r\n ? `background: ${p.background};`\r\n : `background: none;`}\r\n \r\n .card-header,\r\n .card-footer {\r\n background: none;\r\n border: 0;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .suffix {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n button {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n }\r\n`;\r\n","import { CmsLabelFnType } from '../../../../../containers/CmsData/store/cmsData.model';\r\nimport { ChoiceGroupOption } from '../../../../../lib/Form/ChoiceGroup/RadioGroup';\r\nimport { FormControlItem } from '../../../../../lib/Form/DynamicForm';\r\nimport { FormBoolean } from '../../../../../lib/Form/Validation/validation.model';\r\nimport { isFalse } from '../../../../../lib/Form/Validation/validation.utils';\r\nimport { DividendDripDetails } from '../../../store/dividend.model';\r\nimport {\r\n isDividendsReinvestmentAllowed,\r\n isFullDividendsReinvestment,\r\n isNewUserManagingDividends,\r\n} from '../../../store/dividend.utils';\r\nimport { DividendDetailsEditType, DividendDetailsFormValues } from '../DividendDetailsForm';\r\nimport { DIVIDEND_DETAILS_FORM_KEYS as FORM_KEYS } from './dividendDetailsForm.constants';\r\n\r\nexport function getDividendDetailsFormFields(\r\n dripDetails: DividendDripDetails,\r\n cmsLabel: CmsLabelFnType,\r\n) {\r\n const isNewUser = isNewUserManagingDividends(dripDetails);\r\n const isFullReinvestment = isFullDividendsReinvestment(dripDetails);\r\n\r\n let formFields: FormControlItem[] = [\r\n {\r\n formKey: FORM_KEYS.editType,\r\n label: cmsLabel('dividends.c190DividendDetailsEditTypeLabel'),\r\n type: 'radioButtonGroup',\r\n options: getEditTypeOptions(cmsLabel),\r\n show: () => isDividendsReinvestmentAllowed(dripDetails) && !isNewUser && !isFullReinvestment,\r\n },\r\n {\r\n formKey: FORM_KEYS.enrolInPlan,\r\n label: cmsLabel('dividends.c200DividendDetailsEnrolInPlanLabel'),\r\n type: 'radioButtonGroup',\r\n options: getEnrolInPlanOptions(cmsLabel),\r\n show: () => isDividendsReinvestmentAllowed(dripDetails) && isNewUser,\r\n },\r\n {\r\n formKey: FORM_KEYS.changePaymentType,\r\n label: cmsLabel('dividends.c210DividendDetailsChangePaymentMethodLabel'),\r\n type: 'radioButtonGroup',\r\n options: getChangePaymentMethodOptions(cmsLabel),\r\n show: (values) => isFalse(values.enrolInPlan),\r\n },\r\n ];\r\n\r\n return formFields;\r\n\r\n function getEditTypeOptions(\r\n cmsLabel: CmsLabelFnType,\r\n ): ChoiceGroupOption[] {\r\n return [\r\n {\r\n key: DividendDetailsEditType.Plan,\r\n value: cmsLabel('dividends.c190DividendDetailsEditPlanButtonText'),\r\n id: 'dividends-edit-plan-btn',\r\n },\r\n {\r\n key: DividendDetailsEditType.PaymentDetails,\r\n value: cmsLabel('dividends.c190DividendDetailsEditPaymentDetailsButtonText'),\r\n id: 'dividends-edit-payment-btn',\r\n },\r\n {\r\n key: DividendDetailsEditType.Both,\r\n value: cmsLabel('dividends.c190DividendDetailsEditBothButtonText'),\r\n id: 'dividends-edit-both-btn',\r\n },\r\n ];\r\n }\r\n\r\n function getEnrolInPlanOptions(cmsLabel: CmsLabelFnType): ChoiceGroupOption[] {\r\n return [\r\n {\r\n key: 'true',\r\n value: cmsLabel('dividends.c200DividendDetailsEnrolInPlanYesButtonText'),\r\n id: 'dividends-ernoll-in-plan-yes-btn',\r\n },\r\n {\r\n key: 'false',\r\n value: cmsLabel('dividends.c200DividendDetailsEnrolInPlanNoButtonText'),\r\n id: 'dividends-enroll-in-plan-no-btn',\r\n },\r\n ];\r\n }\r\n\r\n function getChangePaymentMethodOptions(\r\n cmsLabel: CmsLabelFnType,\r\n ): ChoiceGroupOption[] {\r\n return [\r\n {\r\n key: 'true',\r\n value: cmsLabel('dividends.c210DividendDetailsChangePaymentMethodYesButtonText'),\r\n id: 'dividends-change-payment-yes-btn',\r\n },\r\n {\r\n key: 'false',\r\n value: cmsLabel('dividends.c210DividendDetailsChangePaymentMethodNoButtonText'),\r\n id: 'dividends-change-payment-no-btn',\r\n },\r\n ];\r\n }\r\n}\r\n","import React from 'react';\r\nimport { styled } from '../../style';\r\n\r\nconst Roundel = styled.div`\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-left: 10px;\r\n background-color: ${(p) => p.theme.colors.primary1};\r\n color: ${(p) => p.theme.colors.white};\r\n height: 25px;\r\n width: 25px;\r\n border-radius: 25px;\r\n`;\r\n\r\ninterface OwnProps {\r\n children?: any;\r\n}\r\n\r\nexport function UnreadRoundel({ children }: OwnProps) {\r\n return {children};\r\n}\r\n","import React from 'react';\r\nimport { styled } from '../../style/theme/themeModule';\r\nimport { Alert } from '../Alert/Alert';\r\n\r\ninterface OwnProps {\r\n children: any;\r\n className?: string;\r\n}\r\n\r\nexport function HelpText({ children, className }: OwnProps) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nconst Container = styled(Alert)`\r\n font-size: 12px;\r\n\r\n && {\r\n padding: 5px 20px;\r\n }\r\n`;\r\n","export {\r\n hexToRgbA,\r\n px,\r\n HiddenOnlyDesktop,\r\n HiddenOnlyMobile,\r\n VisibleOnlyMobile,\r\n VisibleOnlyTablet,\r\n VisibleOnlyDesktop,\r\n} from './theme/utils';\r\nexport { styled, css } from './theme/themeModule';\r\n","import { BankAccountType } from '../../../../shared/DataStructures';\r\nimport { SellSharesCmsData, Translate } from '../../../../containers/CmsData/store/cmsData.model';\r\nimport { PaymentMethod, SaleType, SellMethod, ShareType } from './SellSharesTypes';\r\n\r\nexport type PayoutTranslationMap = { [key in PaymentMethod]: string };\r\nexport const createPayoutTranslationMap = (\r\n translate: Translate,\r\n): PayoutTranslationMap => ({\r\n [PaymentMethod.WireTransfer]: translate('c83PaymentPayoutTypeWireTransfer'),\r\n [PaymentMethod.DirectDeposit]: translate('c21PaymentPayoutTypeDirectDeposit'),\r\n [PaymentMethod.Check]: translate('c22PaymentPayoutTypeCheck'),\r\n [PaymentMethod.None]: '',\r\n});\r\n\r\nexport type SaleTypeTranslationMap = { [key in SaleType]: string };\r\nexport const createSaleTypeTranslationMap = (\r\n translate: Translate,\r\n): SaleTypeTranslationMap => ({\r\n [SaleType.MarketOrder]: translate('c71MarketOrder'),\r\n [SaleType.BatchOrder]: translate('c72BatchOrder'),\r\n [SaleType.LimitOrder]: translate('c73LimitOrder'),\r\n [SaleType.StopLossOrder]: translate('c74StopLoss'),\r\n});\r\nexport const createSaleTypeFeesAndTimingTranslationMap = (\r\n translate: Translate,\r\n): SaleTypeTranslationMap => ({\r\n [SaleType.MarketOrder]: translate('c90MarketOrderFeesAndTimingLabel'),\r\n [SaleType.BatchOrder]: translate('c91BatchOrderFeesAndTimingLabel'),\r\n [SaleType.LimitOrder]: translate('c92LimitOrderFeesAndTimingLabel'),\r\n [SaleType.StopLossOrder]: translate('c93StopLossFeesAndTimingLabel'),\r\n});\r\n\r\nexport type ShareTypeTranslationMap = { [key in ShareType]: string };\r\nexport const createShareTypeTranslationMap = (\r\n translate: Translate,\r\n): ShareTypeTranslationMap => ({\r\n [ShareType.None]: '',\r\n [ShareType.DrsShare]: translate('c33SaleOrderShareTypeDRS'),\r\n [ShareType.PlanShare]: translate('c34SaleOrderShareTypePlan'),\r\n [ShareType.DrsAndPlanShare]: translate('c35SaleOrderShareTypeBoth'),\r\n});\r\n\r\nexport type SaleMethodTranslationMap = { [key in SellMethod]: string };\r\nexport const createSaleMethodTranslationMap = (\r\n translate: Translate,\r\n): SaleMethodTranslationMap => ({\r\n [SellMethod.DATE]: translate('c174SaleOrderSaleMethodDATE'),\r\n [SellMethod.FIFO]: translate('c173SaleOrderSaleMethodFIFO'),\r\n});\r\n\r\nexport type BankAccountTypeTranslationMap = { [key in BankAccountType]: string };\r\nexport const createBankAccountTypeTranslationMap = (\r\n translate: Translate,\r\n): BankAccountTypeTranslationMap => ({\r\n [BankAccountType.None]: '',\r\n [BankAccountType.Savings]: translate('c152PaymentAccountTypeSavings'),\r\n [BankAccountType.Checking]: translate('c153PaymentAccountTypeChecking'),\r\n});\r\n","export * from './SellSharesContext';\r\nexport * from './SellSharesHooks';\r\nexport * from './SellSharesRouting';\r\nexport * from './SellSharesSelectors';\r\nexport * from './SellSharesTranslationMaps';\r\nexport * from './SellSharesTypes';\r\n","export interface PendingSaleItem {\r\n type: PendingSaleType;\r\n timing: PendingSaleTiming;\r\n datePlaced: string;\r\n accountNumber: number;\r\n companyName: string;\r\n securityType: string;\r\n shareType: string;\r\n shares: number;\r\n orderPrice: number;\r\n expirationDate: string;\r\n saleId: number;\r\n}\r\n\r\nexport enum PendingSaleType {\r\n marketOrder = 2,\r\n batchOrder = 4,\r\n limitOrder = 8,\r\n stopLossOrder = 16,\r\n}\r\n\r\nexport enum PendingSaleTiming {\r\n GTD = 'GTD',\r\n GTC = 'GTC',\r\n GFD = 'GFD',\r\n}\r\n\r\nexport interface PendingSalesCmsLabels {\r\n loading: boolean;\r\n labels: PendingSalesLabels;\r\n confirmationLabels: PendingSalesConfirmationLabels;\r\n}\r\n\r\nexport interface PendingSalesLabels {\r\n panelHeading: () => string;\r\n contextualHelp: () => string;\r\n saleTypeAndTimingColumnHeader: () => string;\r\n datePlacedColumnHeader: () => string;\r\n accountNumberColumnHeader: () => string;\r\n companyNameSecurityTypeColumnHeader: () => string;\r\n shareTypeColumnHeader: () => string;\r\n sharesColumnHeader: () => string;\r\n orderPriceColumnHeader: () => string;\r\n expirationDateColumnHeader: () => string;\r\n cancelOrderButtonTitle: () => string;\r\n [saleTypeAndTiming: string]: () => string;\r\n}\r\n\r\nexport interface PendingSalesConfirmationLabels {\r\n panelHeading: () => string;\r\n contextualHelp: () => string;\r\n saleTypeColumnHeader: () => string;\r\n datePlacedColumnHeader: () => string;\r\n companyNameColumnHeader: () => string;\r\n shareTypeColumnHeader: () => string;\r\n sharesColumnHeader: () => string;\r\n orderPriceColumnHeader: () => string;\r\n timingColumnHeader: () => string;\r\n expirationDateColumnHeader: () => string;\r\n cancelText: () => string;\r\n returnToPortfolioButtonText: () => string;\r\n cancelOrderButtonText: () => string;\r\n submittedPanelHeading: () => string;\r\n submittedContextualHelp: () => string;\r\n [saleTypeAndTiming: string]: () => string;\r\n}\r\n\r\nexport interface ModalOptions {\r\n sale: PendingSaleItem | null;\r\n open: boolean;\r\n}\r\n","import React, { CSSProperties, PropsWithChildren } from 'react';\r\nimport { CardHeader } from 'reactstrap';\r\nimport { Suffix as ContainerWithSuffix } from './Suffix';\r\n\r\ninterface OwnProps {\r\n title?: string | JSX.Element;\r\n suffix?: JSX.Element;\r\n tag?: React.ReactType;\r\n className?: string;\r\n compact?: boolean;\r\n background?: string;\r\n style?: CSSProperties;\r\n}\r\n\r\nexport function Header({\r\n title,\r\n suffix,\r\n tag,\r\n compact,\r\n className,\r\n background,\r\n style,\r\n children,\r\n ...rest\r\n}: PropsWithChildren) {\r\n return (\r\n \r\n \r\n {title || children}\r\n \r\n \r\n );\r\n}\r\n\r\n// TODO review this together with other Header.tsx files\r\n","import { createAction } from '../../../store/reduxBoilerplate';\r\nimport {\r\n LoadAccountPortfolioResponse,\r\n ExtendedInvestmentData,\r\n PortfolioSortOptions,\r\n} from './model';\r\nimport { AutomaticInvestmentData } from '../../Shares/Buy/model/automaticInvestment';\r\nimport { CompanyPlanBrochureResponse } from '../../Shares/Buy/model/company';\r\nimport { CompanyItem, CompanyPlanResponse } from '../../Shares/Buy/model/company';\r\n\r\nexport const LOAD_ACCOUNT_PORTFOLIO = 'LOAD_ACCOUNT_PORTFOLIO';\r\nexport const LOAD_ACCOUNT_PORTFOLIO_DONE = 'LOAD_ACCOUNT_PORTFOLIO_DONE';\r\nexport const LOAD_ACCOUNT_PORTFOLIO_FAIL = 'LOAD_ACCOUNT_PORTFOLIO_FAIL';\r\nexport const LOAD_INVESTMENT_DETAILS = 'LOAD_INVESTMENT_DETAILS';\r\nexport const LOAD_INVESTMENT_DETAILS_DONE = 'LOAD_INVESTMENT_DETAILS_DONE';\r\nexport const LOAD_INVESTMENT_DETAILS_FAIL = 'LOAD_INVESTMENT_DETAILS_FAIL';\r\nexport const LOAD_AUTOMATIC_INVESTMENT = 'LOAD_AUTOMATIC_INVESTMENT';\r\nexport const LOAD_AUTOMATIC_INVESTMENT_DONE = 'LOAD_AUTOMATIC_INVESTMENT_DONE';\r\nexport const LOAD_AUTOMATIC_INVESTMENT_FAIL = 'LOAD_AUTOMATIC_INVESTMENT_FAIL';\r\nexport const LOAD_COMPANY_BROCHURES = 'LOAD_COMPANY_BROCHURES';\r\nexport const LOAD_COMPANY_BROCHURES_DONE = 'LOAD_COMPANY_BROCHURES_DONE';\r\nexport const LOAD_COMPANY_BROCHURES_FAIL = 'LOAD_COMPANY_BROCHURES_FAIL';\r\nexport const LOAD_COMPANIES = 'LOAD_COMPANIES';\r\nexport const LOAD_COMPANIES_DONE = 'LOAD_COMPANIES_DONE';\r\nexport const LOAD_COMPANIES_FAIL = 'LOAD_COMPANIES_FAIL';\r\nexport const LOAD_COMPANY_PLAN = 'LOAD_COMPANY_PLAN';\r\nexport const LOAD_COMPANY_PLAN_DONE = 'LOAD_COMPANY_PLAN_DONE';\r\nexport const LOAD_COMPANY_PLAN_FAIL = 'LOAD_COMPANY_PLAN_FAIL';\r\nexport const REDIRECT_TO_BUY_INVESTMENTS = 'REDIRECT_TO_BUY_INVESTMENTS';\r\nexport const REDIRECT_TO_SELL_SHARE = 'REDIRECT_TO_SELL_SHARE';\r\nexport const LOAD_ACCOUNT_AND_REDIRECT_TO_BUY_SHARES = 'LOAD_ACCOUNT_AND_REDIRECT_TO_BUY_SHARES';\r\nexport const ADD_AVAILABLE_ACCOUNTS = 'ADD_AVAILABLE_ACCOUNTS';\r\n\r\nexport const accountPortfolioActions = {\r\n /* Dear developer, this function is albo used to collect data for dividend flow */\r\n load: (accountId: string, sortOptions?: PortfolioSortOptions, partial?: boolean) =>\r\n createAction(LOAD_ACCOUNT_PORTFOLIO, { accountId, sortOptions, partial }),\r\n\r\n loadDone: (data: LoadAccountPortfolioResponse) => createAction(LOAD_ACCOUNT_PORTFOLIO_DONE, data),\r\n\r\n loadFail: () => createAction(LOAD_ACCOUNT_PORTFOLIO_FAIL),\r\n\r\n loadAccountAndRedirectToBuyShares: (selectedAccountIndex: number) =>\r\n createAction(LOAD_ACCOUNT_AND_REDIRECT_TO_BUY_SHARES, selectedAccountIndex),\r\n\r\n loadInvestmentDetails: (\r\n accountNumber: number,\r\n issueNumber: string,\r\n issueType: string,\r\n issueCompanyName: string,\r\n issueId: number,\r\n ) =>\r\n createAction(LOAD_INVESTMENT_DETAILS, {\r\n accountNumber,\r\n issueType,\r\n issueNumber,\r\n issueCompanyName,\r\n issueId,\r\n }),\r\n\r\n loadInvestmentDetailsFail: () => createAction(LOAD_INVESTMENT_DETAILS_FAIL),\r\n\r\n loadInvestmentDetailsDone: (data: ExtendedInvestmentData) =>\r\n createAction(LOAD_INVESTMENT_DETAILS_DONE, data),\r\n\r\n loadAutomaticInvestment: (accountNumber: number, issueNumber: string) =>\r\n createAction(LOAD_AUTOMATIC_INVESTMENT, { accountNumber, issueNumber }),\r\n loadAutomaticInvestmentDone: (data: AutomaticInvestmentData[]) =>\r\n createAction(LOAD_AUTOMATIC_INVESTMENT_DONE, data),\r\n loadAutomaticInvestmentFail: () => createAction(LOAD_AUTOMATIC_INVESTMENT_FAIL),\r\n\r\n loadCompanyBrochures: (issueId: number) => createAction(LOAD_COMPANY_BROCHURES, { issueId }),\r\n loadCompanyBrochuresDone: (data: CompanyPlanBrochureResponse) =>\r\n createAction(LOAD_COMPANY_BROCHURES_DONE, data),\r\n loadCompanyBrochuresFail: () => createAction(LOAD_COMPANY_BROCHURES_FAIL),\r\n\r\n loadCompanies: () => createAction(LOAD_COMPANIES),\r\n loadCompaniesDone: (data: CompanyItem[]) => createAction(LOAD_COMPANIES_DONE, data),\r\n loadCompaniesFail: () => createAction(LOAD_COMPANIES_FAIL),\r\n\r\n loadCompanyPlan: () => createAction(LOAD_COMPANY_PLAN),\r\n loadCompanyPlanDone: (data: CompanyPlanResponse) => createAction(LOAD_COMPANY_PLAN_DONE, data),\r\n loadCompanyPlanFail: () => createAction(LOAD_COMPANY_PLAN_FAIL),\r\n\r\n redirectToSellShare: (accountNumber: number, issueNumber: string) =>\r\n createAction(REDIRECT_TO_SELL_SHARE, { accountNumber, issueNumber }),\r\n\r\n addAvailableAccounts: (accounts: number[]) => createAction(ADD_AVAILABLE_ACCOUNTS, accounts),\r\n};\r\n\r\nexport type GetPortfolioActions = ReturnType<\r\n typeof accountPortfolioActions[T]\r\n>;\r\n","import React from 'react';\r\nimport { CardFooter, CardFooterProps } from 'reactstrap';\r\nimport { Suffix as ContainerWithSuffix } from './Suffix';\r\n\r\ninterface OwnProps extends CardFooterProps {\r\n footer?: string;\r\n suffix?: JSX.Element;\r\n compact?: boolean;\r\n}\r\n\r\nexport function Footer({ footer, suffix, compact, ...rest }: OwnProps) {\r\n return (\r\n \r\n {footer}\r\n \r\n );\r\n}\r\n","export * from './CollapsibleHelp';\r\n","import { CompanyDeliveryOptions } from '../../../AccountSettings/DeliveryPreferences/model';\r\n\r\nexport const COMPANY_PLAN_TYPE = 'DPP';\r\n\r\nexport enum PaidBy {\r\n Company = 'C',\r\n}\r\n\r\nexport interface CompanyItem {\r\n issueSecurityTypes: IssueSecurityType[];\r\n company: Company;\r\n}\r\n\r\nexport interface IssueSecurityType {\r\n securityType: string;\r\n issueNumber: string;\r\n issueId: number;\r\n dPPOneTimeMinAmount: number;\r\n dPPRecurringMinAmount: number;\r\n userRegionCode: string;\r\n edeliveryPreferences: CompanyDeliveryOptions;\r\n initialMinimumWaivedifEnrolledinDebitACH: string;\r\n allowDRIP: boolean;\r\n buyUnavailableBecauseDRIP: boolean;\r\n}\r\n\r\nexport interface CompanyPlanBrochure {\r\n fileId: string;\r\n fileName: string;\r\n}\r\n\r\ninterface Company {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface CompanyPlan {\r\n oneTimeDebitFee: number;\r\n oneTimeDebitFeePaidBy: string;\r\n aCHDebitFee: number;\r\n aCHDebitFeePaidBy: string;\r\n}\r\n\r\nexport type CompanyResponse = CompanyItem[];\r\nexport type CompanyPlanResponse = CompanyPlan;\r\nexport type CompanyPlanBrochureResponse = CompanyPlanBrochure[];\r\n","import React from 'react';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport { useWindowMedia } from '../../style/theme/hooks';\r\n\r\ninterface OwnProps {\r\n id: string;\r\n tip?: string;\r\n children?: any;\r\n content?: string | JSX.Element;\r\n header?: string | JSX.Element;\r\n inline?: boolean;\r\n heightAuto?: boolean;\r\n className?: string;\r\n}\r\n\r\ntype Props = OwnProps & ReactTooltip.Props;\r\n\r\nexport function Tooltip(props: Props) {\r\n const { id, tip, content, children, header, inline, heightAuto, className, ...rest } = props;\r\n\r\n const windowMedia = useWindowMedia();\r\n const isDesktop = windowMedia === 'desktop';\r\n\r\n const attributes: { 'data-for': string; 'data-tip': string } = {\r\n 'data-for': id,\r\n 'data-tip': '',\r\n };\r\n\r\n if (tip) {\r\n attributes['data-tip'] = tip;\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n <>\r\n {header &&

    {header}

    }\r\n {typeof content === 'string' ? (\r\n
    \r\n ) : (\r\n
    {content}
    \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n withHeader: boolean;\r\n inline?: boolean;\r\n heightAuto?: boolean;\r\n}\r\n\r\nconst StyledTooltip = styled(ReactTooltip)`\r\n ${(p) => p.theme.media.tablet.andDown} {\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst Container = styled.div`\r\n ${(p: ContainerProps) => (p.inline ? 'display: inline-block;' : '')}\r\n .__react_component_tooltip {\r\n background: ${(p: Theme) => p.theme.colors.white};\r\n color: ${(p: Theme) => p.theme.colors.primary2};\r\n padding: 0;\r\n border-radius: 4px;\r\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.1), 0 1px 3px 0 rgba(0, 0, 0, 0.1);\r\n opacity: 1;\r\n\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n width: 10px;\r\n height: 10px;\r\n background: white;\r\n transform-origin: 0 0;\r\n border-right-color: transparent !important;\r\n border-right-style: none;\r\n transform: rotate(-45deg);\r\n border-color: transparent transparent white white;\r\n }\r\n\r\n &.place-right {\r\n &:after {\r\n box-shadow: -2px -2px 3px -1px rgba(0, 0, 0, 0.1);\r\n transform: rotate(-45deg);\r\n border-color: transparent transparent white white;\r\n }\r\n }\r\n\r\n &.place-left {\r\n &:after {\r\n box-shadow: 2px 2px 2px -1px rgba(0, 0, 0, 0.1);\r\n transform: rotate(-45deg);\r\n border-color: transparent transparent white white;\r\n transform-origin: 7px 7px;\r\n }\r\n }\r\n\r\n &.place-top {\r\n &:after {\r\n box-shadow: -2px -2px 3px -1px rgba(0, 0, 0, 0.1);\r\n transform: rotate(-135deg);\r\n border-color: white white transparent transparent;\r\n transform-origin: 5px 5px;\r\n }\r\n }\r\n\r\n &.place-bottom {\r\n &:after {\r\n box-shadow: 2px 2px 3px -2px rgba(0, 0, 0, 0.1);\r\n transform: rotate(-135deg);\r\n border-color: white white transparent transparent;\r\n transform-origin: 6px 6px;\r\n ${(p: ContainerProps) =>\r\n p.withHeader ? `background: ${p.theme.colors.tooltipHeaderBg};` : `background: white`};\r\n }\r\n }\r\n\r\n h4 {\r\n background: ${(p: Theme) => p.theme.colors.tooltipHeaderBg};\r\n border-bottom: 1px solid ${(p: Theme) => p.theme.colors.tooltipHeaderBorder};\r\n margin: 0;\r\n padding: 0.75rem;\r\n border-top-left-radius: 4px;\r\n border-top-right-radius: 4px;\r\n font-size: 16px;\r\n }\r\n\r\n section {\r\n padding: ${(p: ContainerProps) => (!p.heightAuto ? '0.75rem' : '0.5rem')};\r\n font-size: 14px;\r\n max-width: 200px;\r\n margin: 0;\r\n ${(p: ContainerProps) => (!p.heightAuto ? 'min-height: 71px;' : '')}\r\n }\r\n }\r\n`;\r\n","import React, { PropsWithChildren } from 'react';\r\nimport { FormActions } from '../../../../lib/Form';\r\nimport { styled } from '../../../../style/theme/themeModule';\r\nimport { Panel, PANEL_PADDING } from '../../../../lib/Panel/Panel';\r\nimport { FormActionsProps } from '../../../../lib/Form/FormActions';\r\n\r\ninterface OwnProps {\r\n customMarginTop?: number;\r\n}\r\n\r\ntype Props = OwnProps & PropsWithChildren;\r\n\r\nexport function DividendFormActions(props: Props) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst Container = styled.div<{ customMarginTop?: number }>`\r\n margin-top: ${(p) => (p.customMarginTop !== undefined ? p.customMarginTop : 40)}px;\r\n`;\r\n\r\nconst Actions = styled(FormActions)`\r\n margin-top: ${PANEL_PADDING};\r\n`;\r\n","import React, { PropsWithChildren } from 'react';\r\nimport { FormikActions } from 'formik';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\nimport { Button, BUTTON_MARGIN_LEFT, BUTTON_MARGIN_VERTICAL, ButtonStyleType } from './Button';\r\nimport { SimpleSpinner } from '../SimpleSpinner/SimpleSpinner';\r\n\r\nexport const DEFAULT_PROPS: FormActionsProps = {\r\n submitText: 'Next',\r\n submitButtonType: 'button',\r\n cancelText: 'Cancel',\r\n backText: 'Previous',\r\n backButtonStyleType: 'secondary',\r\n id: '___WARNING_NOT_SET_ID___',\r\n};\r\n\r\nexport interface FormActionsProps {\r\n onSubmit?: (data: any, actions: FormikActions) => void;\r\n onAfterSubmit?: () => void;\r\n submitText?: string | JSX.Element;\r\n submitButtonType?: 'submit' | 'button' | 'reset';\r\n submitDisabled?: boolean;\r\n onCancel?: () => void;\r\n cancelText?: string | JSX.Element;\r\n cancelDisabled?: boolean;\r\n onBack?: () => void;\r\n backText?: string | JSX.Element;\r\n backButtonStyleType?: ButtonStyleType;\r\n onAfterSubmitText?: string | JSX.Element;\r\n onAfterCancelText?: string | JSX.Element;\r\n backDisabled?: boolean;\r\n marginTop?: boolean;\r\n marginBottom?: boolean;\r\n loading?: boolean;\r\n submitted?: boolean;\r\n className?: string;\r\n id: string;\r\n}\r\n\r\nexport const FormActions = (props: PropsWithChildren) => {\r\n const fullProps = {\r\n ...DEFAULT_PROPS,\r\n ...props,\r\n };\r\n const {\r\n onSubmit,\r\n onCancel,\r\n onAfterSubmit,\r\n onAfterSubmitText,\r\n onAfterCancelText,\r\n submitText,\r\n cancelText,\r\n onBack,\r\n backText,\r\n backButtonStyleType,\r\n submitButtonType,\r\n submitDisabled,\r\n cancelDisabled,\r\n backDisabled,\r\n marginTop,\r\n marginBottom,\r\n loading,\r\n submitted,\r\n className,\r\n id,\r\n children,\r\n } = fullProps;\r\n\r\n const isFormSubmit = submitButtonType === 'submit';\r\n\r\n return (\r\n \r\n \r\n {!!onBack && (\r\n \r\n {backText}\r\n \r\n )}\r\n {!!onCancel && (\r\n \r\n {!!onAfterSubmit && submitted && onAfterCancelText ? onAfterCancelText : cancelText}\r\n \r\n )}\r\n \r\n\r\n {!!children && (\r\n \r\n {children}\r\n \r\n )}\r\n\r\n {!submitted && (!!onSubmit || isFormSubmit) && (\r\n \r\n \r\n {submitText} {loading && }\r\n \r\n \r\n )}\r\n\r\n {!!onAfterSubmit && submitted && (\r\n \r\n \r\n {onAfterSubmitText}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\ninterface ContainerProps extends Theme {\r\n marginTop?: boolean;\r\n marginBottom?: boolean;\r\n}\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n ${(p: ContainerProps) => p.marginTop && `margin-top: ${BUTTON_MARGIN_VERTICAL}px;`}\r\n ${(p: ContainerProps) => p.marginBottom && `margin-bottom: ${BUTTON_MARGIN_VERTICAL}px;`}\r\n\r\n ${(p) => p.theme.media.mobile.andDown} {\r\n flex-direction: column-reverse;\r\n }\r\n`;\r\n\r\nconst ActionButton = styled(Button)`\r\n margin-bottom: 0;\r\n ${(p) => p.theme.media.mobile.andDown} {\r\n margin: 20px 0 0 0;\r\n }\r\n`;\r\n\r\nconst SubmitButton = styled(ActionButton)`\r\n position: relative;\r\n padding: 0 30px;\r\n ${(p) => p.theme.media.mobile.andDown} {\r\n margin-top: 0;\r\n\r\n & + & {\r\n margin-left: 0;\r\n }\r\n }\r\n`;\r\n\r\nconst CancelButtonContainer = styled.div`\r\n display: flex;\r\n\r\n ${(p) => p.theme.media.tablet.andUp} {\r\n flex-wrap: nowrap;\r\n }\r\n\r\n ${(p) => p.theme.media.mobile.andDown} {\r\n ${ActionButton} + ${ActionButton} {\r\n margin-left: ${BUTTON_MARGIN_LEFT}px !important;\r\n }\r\n }\r\n`;\r\n\r\ninterface SubmitButtonContainerProps extends Theme {\r\n flexGrow?: boolean;\r\n allowShrinkIndefinitely?: boolean;\r\n}\r\n\r\nconst SubmitButtonContainer = styled.div`\r\n ${(p: SubmitButtonContainerProps) => p.flexGrow && `flex-grow: 1;`}\r\n justify-content: flex-end;\r\n display: flex;\r\n ${(p: SubmitButtonContainerProps) => p.allowShrinkIndefinitely && 'min-width: 0;'};\r\n\r\n ${(p) => p.theme.media.tablet.andUp} {\r\n margin-left: ${BUTTON_MARGIN_LEFT}px;\r\n }\r\n`;\r\n\r\nconst Spinner = styled(SimpleSpinner)`\r\n position: absolute;\r\n margin-top: 2px;\r\n margin-left: 5px;\r\n`;\r\n","export const DIVIDEND_PLAN_FORM_KEYS = {\r\n reinvestDividends: 'reinvestDividends',\r\n reinvestAllShares: 'reinvestAllShares',\r\n partialReinvestmentType: 'partialReinvestmentType',\r\n quantityToReinvestAbsolute: 'quantityToReinvestAbsolute',\r\n quantityToCash: 'quantityToCash',\r\n quantityToReinvestPercentage: 'quantityToReinvestPercentage',\r\n zeroBalanceInformation: 'zeroBalanceInformation',\r\n reinvestPlanShares: 'reinvestPlanShares',\r\n};\r\n","import React from 'react';\r\nimport { connect, DispatchProp } from 'react-redux';\r\nimport { FormEffect } from '../../../../lib/Form/FormEffect';\r\nimport { PersistedDividendForm } from '../../store/dividend.model';\r\nimport { debounce } from '../../../../containers/FormPersist/store/formPersist.utils';\r\nimport { dividendActions } from '../../store/dividend.actions';\r\nimport { FormikProps } from 'formik';\r\n\r\ninterface OwnProps {\r\n formKey: PersistedDividendForm;\r\n isValid: (formProps: FormikProps) => boolean;\r\n}\r\n\r\nfunction Component({ formKey, isValid, dispatch }: OwnProps & DispatchProp) {\r\n let onFormChange = debounce((formProps: FormikProps) => {\r\n const valid = isValid(formProps);\r\n dispatch(dividendActions.setPersistedFormValidStatus(formKey, valid));\r\n }, 100);\r\n\r\n return ;\r\n}\r\n\r\nexport const DividendFormValidStatusEffect = connect()(Component);\r\n","import React from 'react';\r\nimport { connect, DispatchProp } from 'react-redux';\r\nimport { Modal } from './Modal.Wrapper';\r\nimport { FormActions } from '../../Form';\r\nimport { modalActions } from '../store/actions';\r\nimport { ModalProps } from '../store/model';\r\n\r\nexport interface ConfirmModalProps extends ModalProps {\r\n isOpen?: boolean;\r\n isSubmitted?: boolean;\r\n loading?: boolean;\r\n recentlySubmitted?: boolean;\r\n cancelText?: string;\r\n onAfterCancelText?: string;\r\n onAfterSubmitText?: string;\r\n onAfterSubmitClick?: () => void;\r\n}\r\n\r\ntype Props = ConfirmModalProps & DispatchProp;\r\n\r\ninterface OwnState {\r\n isOpen: boolean;\r\n}\r\n\r\nclass Component extends React.Component {\r\n constructor(props: Props) {\r\n super(props);\r\n const { isOpen } = props;\r\n\r\n this.state = {\r\n isOpen: isOpen !== undefined ? isOpen : true,\r\n };\r\n }\r\n\r\n render() {\r\n const {\r\n titleText,\r\n onSubmitClick,\r\n onAfterSubmitClick,\r\n recentlySubmitted,\r\n onCloseClick,\r\n content,\r\n dispatch,\r\n loading,\r\n cancelText,\r\n submitText,\r\n onAfterSubmitText,\r\n onAfterCancelText,\r\n width,\r\n } = this.props;\r\n\r\n const close = () => {\r\n if (loading) {\r\n return;\r\n }\r\n\r\n return onCloseClick ? onCloseClick() : dispatch(modalActions.closeModal());\r\n };\r\n\r\n return (\r\n \r\n <>\r\n {content}\r\n close() : undefined}\r\n marginTop={true}\r\n loading={loading}\r\n submitted={recentlySubmitted}\r\n id={'modal-test'}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport const ConfirmModal = connect()(Component);\r\n","import React, { CSSProperties } from 'react';\r\n\r\nexport type ComponentType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'p' | 'span' | 'div';\r\n\r\nexport interface OwnProps {\r\n style?: CSSProperties;\r\n component?: ComponentType;\r\n className?: any;\r\n children?: any;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function Typography(props: OwnProps) {\r\n const { component, ...rest } = props;\r\n const Component = component || 'span';\r\n return ;\r\n}\r\n","import React from 'react';\r\nimport { connect, DispatchProp } from 'react-redux';\r\nimport { formPersistActions } from './store/formPersist.actions';\r\nimport { FormEffect } from '../../lib/Form/FormEffect';\r\nimport { debounce } from './store/formPersist.utils';\r\nimport { FormikProps } from 'formik';\r\n\r\ninterface OwnProps {\r\n formKey: string;\r\n}\r\n\r\nfunction Component({ formKey, dispatch }: OwnProps & DispatchProp) {\r\n const onFormChange = debounce((formProps: FormikProps) => {\r\n dispatch(formPersistActions.set(formKey, formProps.values));\r\n }, 100);\r\n return ;\r\n}\r\n\r\nexport const FormPersist = connect()(Component);\r\n","import React from 'react';\r\nimport { Collapse } from 'react-collapse';\r\nimport styled from 'styled-components';\r\nimport { pickColor } from '../../style/theme/utils';\r\nimport { Icon } from '../../lib/Icon/Icon';\r\nimport { IconName } from '../Icon/IconsProvider';\r\n\r\ninterface Props {\r\n title: string;\r\n body: string | React.ReactElement;\r\n defaultOpened?: boolean;\r\n iconUp?: IconName;\r\n iconDown?: IconName;\r\n hideVerticalBorders?: boolean;\r\n}\r\n\r\nexport function CollapsibleHelp({ title, body, defaultOpened, iconUp, iconDown, ...rest }: Props) {\r\n const [isOpened, setIsOpened] = React.useState(!!defaultOpened);\r\n\r\n const handleClick = () => setIsOpened((previous) => !previous);\r\n return (\r\n \r\n
    \r\n {title}\r\n \r\n
    \r\n \r\n {typeof body === 'string' ? (\r\n \r\n ) : (\r\n {body}\r\n )}\r\n \r\n
    \r\n );\r\n}\r\n\r\nconst Container = styled.div<{ hideVerticalBorders?: boolean }>`\r\n padding: 10px 12px;\r\n color: ${pickColor((c) => c.lightBlue)};\r\n border: 1px solid ${pickColor((c) => c.secondary4)};\r\n ${(p) => p.hideVerticalBorders && `border-left: none; border-right: none;`};\r\n`;\r\n\r\nconst Header = styled.div`\r\n font-size: 12px;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst StyledIcon = styled(Icon)`\r\n font-size: 15px;\r\n`;\r\n\r\nconst Body = styled.div`\r\n margin-top: 10px;\r\n font-size: 14px;\r\n font-weight: normal;\r\n\r\n ul,\r\n ol {\r\n margin: 10px 0;\r\n padding-left: 30px !important;\r\n\r\n li {\r\n display: list-item !important;\r\n list-style: disc !important;\r\n }\r\n }\r\n`;\r\n","export function getObfuscatedBankAccountNumber(\r\n bankAccountNumber: string,\r\n visibleDigits: number = 4,\r\n): string {\r\n const expansionRegex = /([0-9]*)([0-9]{4})/g;\r\n\r\n if (!bankAccountNumber) return '';\r\n if (bankAccountNumber.length <= visibleDigits) return bankAccountNumber;\r\n\r\n const extracted = expansionRegex.exec(bankAccountNumber);\r\n\r\n if (!extracted || extracted.length < 3) return bankAccountNumber;\r\n\r\n const [, maskable, showable] = extracted;\r\n const masked = maskable.toString().replace(/[0-9a-zA-Z]/g, '*');\r\n\r\n return [masked, showable].join('');\r\n}\r\n","import React from 'react';\r\nimport { Container } from 'reactstrap';\r\n\r\ninterface OwnProps extends React.HTMLAttributes {\r\n className?: string;\r\n fluid?: boolean;\r\n}\r\n\r\nexport function Grid(props: OwnProps) {\r\n return ;\r\n}\r\n","import { CompanyItem, IssueSecurityType } from '../../model/company';\r\n\r\nexport function getCompany(companies: CompanyItem[], companyId: number | null, id?: number | null) {\r\n return companies.find((comp) => comp.company.id === (id || companyId));\r\n}\r\n\r\nexport function getCurrentSecurityTypes(\r\n companies: CompanyItem[],\r\n companyId: number | null,\r\n id?: number | null,\r\n) {\r\n const company = getCompany(companies, companyId, id);\r\n return company ? company.issueSecurityTypes : [];\r\n}\r\n\r\nexport function getSecurityTypeByIssueNumber(\r\n companies: CompanyItem[],\r\n companyId: number | null,\r\n issueNumber: string | number,\r\n) {\r\n const securityTypes = getCurrentSecurityTypes(companies, companyId);\r\n return securityTypes.find((security) => security.issueNumber === issueNumber);\r\n}\r\n\r\nexport function getSecurityWithIssueId(companies: CompanyItem[], issueId: string | number) {\r\n let securityType = null;\r\n\r\n companies.forEach((company: CompanyItem) => {\r\n let foundSecurity =\r\n company.issueSecurityTypes &&\r\n company.issueSecurityTypes.find(\r\n (securityType: IssueSecurityType) => securityType.issueId === issueId,\r\n );\r\n\r\n if (foundSecurity) {\r\n securityType = foundSecurity;\r\n return;\r\n }\r\n });\r\n\r\n return securityType;\r\n}\r\n","import React from 'react';\r\nimport { Row as LibRow } from 'reactstrap';\r\n\r\ninterface OwnProps extends React.HTMLAttributes {\r\n className?: string;\r\n noGutters?: boolean;\r\n}\r\n\r\nexport function Row(props: OwnProps) {\r\n return ;\r\n}\r\n","import React from 'react';\r\nimport { FieldProps } from 'formik';\r\nimport InputRange from 'react-input-range';\r\nimport 'react-input-range/lib/css/index.css';\r\nimport { styled } from '../../../style';\r\n\r\ninterface Range {\r\n min?: number;\r\n max?: number;\r\n}\r\n\r\ninterface RangeConfig {\r\n display?: Range;\r\n allowed?: Range;\r\n}\r\n\r\ninterface Props extends FieldProps {\r\n id?: string;\r\n range?: RangeConfig;\r\n step?: number;\r\n}\r\n\r\nconst DEFAULT_MIN = 0;\r\nconst DEFAULT_MAX = 100;\r\n\r\nconst getDefaultDisplayRange = (): Required => ({\r\n max: DEFAULT_MAX,\r\n min: DEFAULT_MIN,\r\n});\r\n\r\nconst getDisplayRange = (range?: Range): Required => {\r\n const defaultRange = getDefaultDisplayRange();\r\n if (!range) {\r\n return defaultRange;\r\n }\r\n\r\n return { ...defaultRange, ...range };\r\n};\r\n\r\nconst getDisplayRangeFromConfig = (config?: RangeConfig): Required => {\r\n if (!config) {\r\n return getDefaultDisplayRange();\r\n }\r\n\r\n return getDisplayRange(config.display);\r\n};\r\n\r\nexport function PercentageInput({ field, form, id, range, step }: Props) {\r\n const { max, min }: Required = getDisplayRangeFromConfig(range);\r\n\r\n return (\r\n \r\n {\r\n const isNotInMinRange = (value: number) =>\r\n range && range.allowed && range.allowed.min && value < range.allowed.min;\r\n const isNotInMaxRange = (value: number) =>\r\n range && range.allowed && range.allowed.max && value > range.allowed.max;\r\n if (typeof value !== 'number') {\r\n return;\r\n }\r\n if (isNotInMinRange(value) || isNotInMaxRange(value)) {\r\n return;\r\n }\r\n\r\n field.onChange(field.name)(value.toString());\r\n }}\r\n formatLabel={(value, type) => {\r\n if (type === 'value') {\r\n return `${value}%`;\r\n }\r\n if (type === 'min') {\r\n return `${min}%`;\r\n }\r\n if (type === 'max') {\r\n return `${max}%`;\r\n }\r\n\r\n throw Error(`Can't format label`);\r\n }}\r\n />\r\n \r\n );\r\n}\r\n\r\nconst Container = styled.div`\r\n line-height: 1.5;\r\n margin-top: 120px;\r\n margin-bottom: 35px;\r\n\r\n .input-range__track--active,\r\n .input-range__slider {\r\n background-color: ${(p) => p.theme.colors.primary1};\r\n }\r\n\r\n .input-range__track {\r\n height: 0.4rem;\r\n }\r\n\r\n .input-range__slider {\r\n background-color: ${(p) => p.theme.colors.white};\r\n border: 5px solid ${(p) => p.theme.colors.primary1};\r\n width: 1.8rem;\r\n height: 1.8rem;\r\n margin-left: -0.45rem;\r\n margin-top: -3rem;\r\n touch-action: pan-x;\r\n }\r\n\r\n .input-range__label {\r\n color: ${(p) => p.theme.colors.black};\r\n font-size: 1rem;\r\n }\r\n\r\n .input-range__label--value {\r\n position: relative;\r\n top: -7rem;\r\n left: -3.4rem;\r\n padding: 20px;\r\n border: 1px solid #dedede;\r\n border-radius: 5px;\r\n font-size: 2.5rem;\r\n text-align: center;\r\n -webkit-box-shadow: 0px 0px 5px 0px rgba(222, 222, 222, 1);\r\n -moz-box-shadow: 0px 0px 5px 0px rgba(222, 222, 222, 1);\r\n box-shadow: 0px 0px 5px 0px rgba(222, 222, 222, 1);\r\n }\r\n\r\n .input-range__label-container {\r\n left: 0;\r\n }\r\n\r\n .input-range__label--min,\r\n .input-range__label--max {\r\n top: 1.2em;\r\n }\r\n\r\n .input-range__label--max .input-range__label-container {\r\n left: 0;\r\n }\r\n\r\n .input-range__label--value:after,\r\n .input-range__label--value:before {\r\n top: 100%;\r\n left: 50%;\r\n border: solid transparent;\r\n content: ' ';\r\n height: 0;\r\n width: 0;\r\n position: absolute;\r\n pointer-events: none;\r\n }\r\n .input-range__label--value:after {\r\n border-color: rgba(255, 255, 255, 0);\r\n border-top-color: ${(p) => p.theme.colors.white};\r\n border-width: 10px;\r\n margin-left: -10px;\r\n }\r\n .input-range__label--value:before {\r\n border-color: rgba(204, 204, 204, 0);\r\n border-top-color: ${(p) => p.theme.colors.primary3};\r\n border-width: 11px;\r\n margin-left: -11px;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { FieldDescription, Label } from '../../../../../lib/Form';\r\nimport { ChoiceGroupOption } from '../../../../../lib/Form/ChoiceGroup/RadioGroup';\r\nimport { SelectOption } from '../../../../../lib/Form/Select/select.model';\r\nimport { FormControlItem } from '../../../../../lib/Form/DynamicForm';\r\nimport { PercentageInput } from '../../../../../lib/Form/PercentageInput';\r\nimport { FormField } from '../../../../../lib/Form/Validation/FormField';\r\nimport { FormBoolean } from '../../../../../lib/Form/Validation/validation.model';\r\nimport { isFalse, isTrue } from '../../../../../lib/Form/Validation/validation.utils';\r\nimport { HelpText } from '../../../../../lib/HelpText/HelpText';\r\nimport {\r\n DividendDripDetails,\r\n DividendReinvestment,\r\n PartialReinvestmentType,\r\n ReinvestmentType,\r\n} from '../../../store/dividend.model';\r\nimport { getFlattenReinvestmentTypes } from '../../../store/dividend.constants';\r\nimport { isPartialReinvestmentWithZeroBalances } from '../../../store/dividend.utils';\r\nimport { DividendPlanFormValues } from '../DividendPlanForm';\r\nimport { DIVIDEND_PLAN_FORM_KEYS as FORM_KEYS } from './dividendPlanForm.constants';\r\nimport {\r\n getReinvestmentType,\r\n isIssueOfferOnlyFullReinvestment,\r\n isReinvestmentPreselected,\r\n} from './dividendPlanForm.utils';\r\nimport { THEME_CONSTANTS } from './../../../../../style/theme/theme';\r\n\r\nexport function getDividendPlanFormFields(\r\n dripDetails: DividendDripDetails,\r\n cmsLabel: (id: string) => string,\r\n cmsLabelHtml: (key: string, ...interpolateParams: any[]) => JSX.Element | string,\r\n) {\r\n const { reinvestmentOptions } = dripDetails;\r\n const includesReinvestment = (types: [ReinvestmentType, ReinvestmentType]) =>\r\n reinvestmentOptions.some((o) => o.reinvestmentType === types[0]) &&\r\n reinvestmentOptions.some((o) => o.reinvestmentType === types[1]);\r\n\r\n const quantityOfSharesAllowed = includesReinvestment([\r\n ReinvestmentType.RPY,\r\n ReinvestmentType.RPN,\r\n ]);\r\n const quantityOfCashAllowed = includesReinvestment([ReinvestmentType.PSY, ReinvestmentType.PSN]);\r\n const sharePercentageAllowed = includesReinvestment([ReinvestmentType.RXY, ReinvestmentType.RXN]);\r\n const reinvestPlanSharesAllowed = reinvestmentOptions.some(\r\n (option) => option.reinvestmentType === ReinvestmentType.RVY,\r\n );\r\n\r\n const pairCount = [\r\n quantityOfSharesAllowed,\r\n quantityOfCashAllowed,\r\n sharePercentageAllowed,\r\n reinvestPlanSharesAllowed,\r\n ].filter((pair) => pair).length;\r\n\r\n const isTablet =\r\n window.innerWidth >= THEME_CONSTANTS.MEDIA.TABLET &&\r\n window.innerWidth < THEME_CONSTANTS.MEDIA.DESKTOP;\r\n\r\n const formFields: FormControlItem[] = [\r\n {\r\n formKey: FORM_KEYS.reinvestDividends,\r\n label: cmsLabel('dividends.c80DividendStepPlanDoYouWantReinvestDividendsLabel'),\r\n type: 'radioButtonGroup',\r\n options: getReinvestDividendsOptions(),\r\n show: showReinvestDividends,\r\n },\r\n {\r\n formKey: FORM_KEYS.reinvestAllShares,\r\n label: cmsLabel('dividends.c90DividendStepPlanHowDoYouWantToReinvestSharesLabel'),\r\n type: 'radioButtonGroup',\r\n options: getReinvestAllSharesOptions(),\r\n show: canChooseToReinvestAllShares,\r\n },\r\n {\r\n formKey: 'InvestmentDescriptionText',\r\n label: '',\r\n show: (values) =>\r\n isFalse(values.reinvestDividends) ||\r\n isIssueOfferOnlyFullReinvestment(reinvestmentOptions) ||\r\n (isTrue(values.reinvestDividends) && !canChooseToReinvestAllShares(values)) ||\r\n isTrue(values.reinvestAllShares),\r\n customElement: (_v, _f, formProps) => (\r\n \r\n {getReinvestmentDescription(formProps.values)}\r\n \r\n ),\r\n },\r\n {\r\n formKey: FORM_KEYS.partialReinvestmentType,\r\n label: cmsLabel('dividends.c95DividendStepPlanWhatTypeOfPartialReinvestmentLabel'),\r\n type: isTablet ? 'select' : 'radioButtonGroup',\r\n options: getPartialReivestmentTypeOptions(isTablet),\r\n show: canChooseReinvestmentType,\r\n },\r\n {\r\n formKey: FORM_KEYS.quantityToReinvestPercentage,\r\n label: '',\r\n customElement: (_v, _f, formProps) => (\r\n <>\r\n \r\n {\r\n return (\r\n \r\n );\r\n }}\r\n />\r\n \r\n {getPartialReinvestmentDescription(\r\n DividendReinvestment.RX,\r\n 'dividends.c165DividendStepPlanReinvestmentTextRXY',\r\n 'dividends.c166DividendStepPlanReinvestmentTextRXN',\r\n )}\r\n \r\n \r\n ),\r\n show: canChoosePercentageToReinvest,\r\n },\r\n {\r\n formKey: FORM_KEYS.quantityToReinvestAbsolute,\r\n label: cmsLabel('dividends.c100DividendStepPlanQuantityToReinvestLabel'),\r\n show: canChooseQuantityToReinvest,\r\n description: getPartialReinvestmentDescription(\r\n DividendReinvestment.RP,\r\n 'dividends.c167DividendStepPlanReinvestmentTextRPY',\r\n 'dividends.c168DividendStepPlanReinvestmentTextRPN',\r\n ),\r\n maxLength: 10,\r\n },\r\n {\r\n formKey: FORM_KEYS.quantityToCash,\r\n label: cmsLabel('dividends.c111DividendStepPlanQuantityToCashLabel'),\r\n show: canChooseQuantityToCash,\r\n description: getPartialReinvestmentDescription(\r\n DividendReinvestment.PS,\r\n 'dividends.c169DividendStepPlanReinvestmentTextPSY',\r\n 'dividends.c170DividendStepPlanReinvestmentTextPSN',\r\n ),\r\n maxLength: 10,\r\n },\r\n {\r\n formKey: FORM_KEYS.reinvestPlanShares,\r\n label: '',\r\n customElement: () => (\r\n {cmsLabelHtml('dividends.c163DividendStepPlanReinvestmentTextRVY')}\r\n ),\r\n show: shouldShowReinvestPlanSharesContextualHelp,\r\n },\r\n {\r\n formKey: FORM_KEYS.zeroBalanceInformation,\r\n label: '',\r\n customElement: () => (\r\n {cmsLabelHtml('dividends.c125DividendZeroSharesContextualHelp')}\r\n ),\r\n show: (formValues) => isPartialReinvestmentWithZeroBalances(dripDetails, formValues),\r\n },\r\n ];\r\n\r\n return formFields;\r\n\r\n function getPartialReivestmentTypeOptions(\r\n isTablet: boolean,\r\n ): SelectOption[] | ChoiceGroupOption[] {\r\n if (isTablet) {\r\n const options: SelectOption[] = [];\r\n\r\n if (sharePercentageAllowed) {\r\n options.push({\r\n value: PartialReinvestmentType.Percentage,\r\n label: cmsLabel(\r\n 'dividends.c96DividendStepPlanPartialReinvestmentTypePercentageOfSharesRadioLabel',\r\n ),\r\n });\r\n }\r\n\r\n if (quantityOfSharesAllowed) {\r\n options.push({\r\n value: PartialReinvestmentType.Shares,\r\n label: cmsLabel(\r\n 'dividends.c97DividendStepPlanPartialReinvestmentTypeQuantityOfSharesRadioLabel',\r\n ),\r\n });\r\n }\r\n\r\n if (quantityOfCashAllowed) {\r\n options.push({\r\n value: PartialReinvestmentType.Cash,\r\n label: cmsLabel(\r\n 'dividends.c98DividendStepPlanPartialReinvestmentTypeQuantityOfCashLabel',\r\n ),\r\n });\r\n }\r\n\r\n if (reinvestPlanSharesAllowed) {\r\n options.push({\r\n value: PartialReinvestmentType.Reinvest,\r\n label: cmsLabel('dividends.c99DividendStepPlanPartialReinvestmentTypeReinvestAllShares'),\r\n });\r\n }\r\n\r\n return options;\r\n }\r\n const options: ChoiceGroupOption[] = [];\r\n\r\n if (sharePercentageAllowed) {\r\n options.push({\r\n key: PartialReinvestmentType.Percentage,\r\n value: cmsLabel(\r\n 'dividends.c96DividendStepPlanPartialReinvestmentTypePercentageOfSharesRadioLabel',\r\n ),\r\n id: 'dividends-partial-reinvestment-percentage-btn',\r\n });\r\n }\r\n\r\n if (quantityOfSharesAllowed) {\r\n options.push({\r\n key: PartialReinvestmentType.Shares,\r\n value: cmsLabel(\r\n 'dividends.c97DividendStepPlanPartialReinvestmentTypeQuantityOfSharesRadioLabel',\r\n ),\r\n id: 'dividends-partial-reinvestment-shares-btn',\r\n });\r\n }\r\n\r\n if (quantityOfCashAllowed) {\r\n options.push({\r\n key: PartialReinvestmentType.Cash,\r\n value: cmsLabel('dividends.c98DividendStepPlanPartialReinvestmentTypeQuantityOfCashLabel'),\r\n id: 'dividends-partial-reinvestment-cash-btn',\r\n });\r\n }\r\n\r\n if (reinvestPlanSharesAllowed) {\r\n options.push({\r\n key: PartialReinvestmentType.Reinvest,\r\n value: cmsLabel('dividends.c99DividendStepPlanPartialReinvestmentTypeReinvestAllShares'),\r\n id: 'dividends-partial-reinvestment-reinvest-all-shares-btn',\r\n });\r\n }\r\n\r\n return options;\r\n }\r\n\r\n function getReinvestDividendsOptions(): ChoiceGroupOption[] {\r\n return [\r\n {\r\n key: 'true',\r\n value: cmsLabel('dividends.c81DividendStepPlanReinvestDividendsYesRadioLabel'),\r\n id: 'dividends-reinvest-plan-yes-btn',\r\n },\r\n {\r\n key: 'false',\r\n value: cmsLabel('dividends.c82DividendStepPlanReinvestDividendsNoRadioLabel'),\r\n id: 'dividends-reinvest-plan-no-btn',\r\n },\r\n ];\r\n }\r\n\r\n function getReinvestAllSharesOptions(): ChoiceGroupOption[] {\r\n return [\r\n {\r\n key: 'true',\r\n value: cmsLabel('dividends.c91DividendStepPlanReinvestSharesFullRadioLabel'),\r\n id: 'dividends-reinvest-all-full-btn',\r\n },\r\n {\r\n key: 'false',\r\n value: cmsLabel('dividends.c92DividendStepPlanReinvestSharesPartialRadioLabel'),\r\n id: 'dividends-reinvest-all-partial-btn',\r\n },\r\n ];\r\n }\r\n\r\n function containsSomeOfReinvestmentTypes(...types: ReinvestmentType[]) {\r\n const options = dripDetails.reinvestmentOptions;\r\n return options.some((option) => types.some((o) => o === option.reinvestmentType));\r\n }\r\n\r\n function canChooseReinvestmentType({\r\n reinvestDividends,\r\n reinvestAllShares,\r\n }: DividendPlanFormValues) {\r\n return (\r\n isTrue(reinvestDividends) &&\r\n (isFalse(reinvestAllShares) || (!canChooseToReinvestAllShares && !reinvestAllShares)) &&\r\n pairCount >= 2\r\n );\r\n }\r\n\r\n function shouldShowReinvestPlanSharesContextualHelp(formValues: DividendPlanFormValues) {\r\n return (\r\n isTrue(formValues.reinvestDividends) &&\r\n containsSomeOfReinvestmentTypes(ReinvestmentType.RVY) &&\r\n formValues.partialReinvestmentType === PartialReinvestmentType.Reinvest\r\n );\r\n }\r\n\r\n function showReinvestDividends() {\r\n return !(\r\n isIssueOfferOnlyFullReinvestment(reinvestmentOptions) ||\r\n isReinvestmentPreselected(reinvestmentOptions)\r\n );\r\n }\r\n\r\n function canChooseToReinvestAllShares(formValues: DividendPlanFormValues) {\r\n const userSelectToReinvest = isTrue(formValues.reinvestDividends);\r\n const { containFullReinvestment, containReinvestmentOptions } = getFlattenReinvestmentTypes(\r\n reinvestmentOptions,\r\n );\r\n\r\n return !!(userSelectToReinvest && containFullReinvestment && containReinvestmentOptions);\r\n }\r\n\r\n function canChooseQuantityToReinvest(formValues: DividendPlanFormValues) {\r\n const isReinvestmentTypeShares =\r\n formValues.partialReinvestmentType &&\r\n formValues.partialReinvestmentType === PartialReinvestmentType.Shares;\r\n\r\n if (\r\n isReinvestmentTypeShares &&\r\n ((!dripDetails.numberOfCertificateShares && !dripDetails.numberOfDRSShares) ||\r\n (!dripDetails.numberOfCertificateShares &&\r\n !dripDetails.numberOfDRSShares &&\r\n !dripDetails.numberOfPlanShares))\r\n ) {\r\n return false;\r\n }\r\n\r\n if (isFalse(formValues.reinvestDividends) || isTrue(formValues.reinvestAllShares)) {\r\n return false;\r\n }\r\n\r\n // if (\r\n // isFalse(formValues.reinvestAllShares) &&\r\n // !sharePercentageAllowed &&\r\n // !quantityOfCashAllowed &&\r\n // quantityOfSharesAllowed\r\n // ) {\r\n // // Only quantity of shares is allowed\r\n // return true;\r\n // }\r\n\r\n if (\r\n isTrue(formValues.reinvestDividends) &&\r\n !containsSomeOfReinvestmentTypes(\r\n ReinvestmentType.RD,\r\n ReinvestmentType.RXY,\r\n ReinvestmentType.RXN,\r\n ReinvestmentType.PSY,\r\n ReinvestmentType.PSN,\r\n ) &&\r\n containsSomeOfReinvestmentTypes(ReinvestmentType.RPY, ReinvestmentType.RPN)\r\n ) {\r\n return true;\r\n }\r\n\r\n if (formValues.partialReinvestmentType === PartialReinvestmentType.Shares) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function canChoosePercentageToReinvest({\r\n reinvestAllShares,\r\n reinvestDividends,\r\n partialReinvestmentType,\r\n }: DividendPlanFormValues) {\r\n if (isFalse(reinvestDividends) || isTrue(reinvestAllShares)) {\r\n return false;\r\n }\r\n\r\n if (\r\n isFalse(reinvestAllShares) &&\r\n sharePercentageAllowed &&\r\n !quantityOfCashAllowed &&\r\n !quantityOfSharesAllowed\r\n ) {\r\n return true;\r\n }\r\n\r\n if (\r\n isTrue(reinvestDividends) &&\r\n !containsSomeOfReinvestmentTypes(\r\n ReinvestmentType.RD,\r\n ReinvestmentType.RPY,\r\n ReinvestmentType.RPN,\r\n ReinvestmentType.PSY,\r\n ReinvestmentType.PSN,\r\n ) &&\r\n containsSomeOfReinvestmentTypes(ReinvestmentType.RXN, ReinvestmentType.RXY)\r\n ) {\r\n return true;\r\n }\r\n\r\n if (partialReinvestmentType === PartialReinvestmentType.Percentage) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function canChooseQuantityToCash(formValues: DividendPlanFormValues) {\r\n const isReinvestTypeCash =\r\n formValues.partialReinvestmentType &&\r\n formValues.partialReinvestmentType === PartialReinvestmentType.Cash;\r\n\r\n if (\r\n isReinvestTypeCash &&\r\n ((!dripDetails.numberOfCertificateShares && !dripDetails.numberOfDRSShares) ||\r\n (!dripDetails.numberOfCertificateShares &&\r\n !dripDetails.numberOfDRSShares &&\r\n !dripDetails.numberOfPlanShares))\r\n ) {\r\n return false;\r\n }\r\n\r\n if (isFalse(formValues.reinvestDividends) || isTrue(formValues.reinvestAllShares)) {\r\n return false;\r\n }\r\n\r\n if (\r\n isFalse(formValues.reinvestAllShares) &&\r\n !sharePercentageAllowed &&\r\n !quantityOfSharesAllowed &&\r\n quantityOfCashAllowed\r\n ) {\r\n return true;\r\n }\r\n\r\n if (\r\n isTrue(formValues.reinvestDividends) &&\r\n !containsSomeOfReinvestmentTypes(\r\n ReinvestmentType.RD,\r\n ReinvestmentType.RXY,\r\n ReinvestmentType.RXN,\r\n ReinvestmentType.RPY,\r\n ReinvestmentType.RPN,\r\n ) &&\r\n quantityOfCashAllowed\r\n ) {\r\n return true;\r\n }\r\n\r\n if (formValues.partialReinvestmentType === PartialReinvestmentType.Cash) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function getReinvestmentDescription(values: DividendPlanFormValues): JSX.Element | string {\r\n if (isFalse(values.reinvestDividends)) {\r\n if (containsSomeOfReinvestmentTypes(ReinvestmentType.PD)) {\r\n return cmsLabelHtml('dividends.c161DividendStepPlanReinvestmentTextPD');\r\n }\r\n\r\n if (containsSomeOfReinvestmentTypes(ReinvestmentType.RP0)) {\r\n return cmsLabelHtml('dividends.c162DividendStepPlanReinvestmentTextRP0');\r\n }\r\n\r\n if (containsSomeOfReinvestmentTypes(ReinvestmentType.RVY, ReinvestmentType.RVN)) {\r\n return getPartialReinvestmentDescription(\r\n DividendReinvestment.RV,\r\n 'dividends.c163DividendStepPlanReinvestmentTextRVY',\r\n 'dividends.c164DividendStepPlanReinvestmentTextRVN',\r\n );\r\n }\r\n }\r\n\r\n if (\r\n (isTrue(values.reinvestDividends) && !canChooseToReinvestAllShares(values)) ||\r\n isIssueOfferOnlyFullReinvestment(reinvestmentOptions) ||\r\n (values && values.reinvestAllShares && isTrue(values.reinvestAllShares))\r\n ) {\r\n return cmsLabelHtml('dividends.c160DividendStepPlanReinvestmentTextRD');\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function getPartialReinvestmentDescription(\r\n reinvestment: DividendReinvestment,\r\n reinvestmentLabelY: string,\r\n reinvestmentLabelN: string,\r\n ): JSX.Element | string {\r\n const reinvestmentType = getReinvestmentType(reinvestment, dripDetails);\r\n if (!reinvestmentType) {\r\n return '';\r\n }\r\n\r\n const reinvestmentTypeY = `${reinvestment}Y`;\r\n if (reinvestmentType === reinvestmentTypeY) {\r\n return cmsLabelHtml(reinvestmentLabelY);\r\n }\r\n\r\n return cmsLabelHtml(reinvestmentLabelN);\r\n }\r\n}\r\n","import React from 'react';\r\nimport { styled, css, Theme } from '../../style/theme/themeModule';\r\nimport { SimpleSpinner } from '../SimpleSpinner/SimpleSpinner';\r\nimport { Icon } from '../Icon/Icon';\r\n\r\nexport type InputIconType = 'check' | 'loading';\r\n\r\ninterface OwnProps extends React.InputHTMLAttributes {\r\n icon?: InputIconType;\r\n className?: string;\r\n}\r\n\r\nexport function InputIconContainer({ children, icon, className }: OwnProps) {\r\n if (!icon) {\r\n return <>{children};\r\n }\r\n return (\r\n \r\n {children}\r\n {icon === 'check' && }\r\n {icon === 'loading' && }\r\n \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n icon?: InputIconType;\r\n}\r\n\r\nconst Container = styled.div`\r\n position: relative;\r\n\r\n input {\r\n ${(p: ContainerProps) => p.icon && `padding-right: 35px;`}\r\n }\r\n`;\r\n\r\nconst centeredIcon = css`\r\n position: absolute;\r\n right: 10px;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto 0;\r\n`;\r\n\r\nconst Spinner = styled(SimpleSpinner)`\r\n ${centeredIcon}\r\n`;\r\n\r\nconst SuccessIcon = styled(Icon)`\r\n ${centeredIcon}\r\n color: ${(p) => p.theme.colors.successBorder};\r\n`;\r\n","import React from 'react';\r\nimport { SelectProps } from './select.model';\r\nimport { BaseSelect } from './BaseSelect';\r\n\r\nexport function ControlledSelect(props: SelectProps) {\r\n const { options } = props;\r\n const { value, ...rest } = props;\r\n return (\r\n option.value === value.value) : undefined}\r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport { styled } from '../../../style/theme/themeModule';\r\nimport { RadioButtonGroup } from '../ChoiceGroup/RadioButtonGroup';\r\nimport { ChoiceGroupOption } from '../ChoiceGroup/RadioGroup';\r\nimport { FormGroupInputProps } from './FormGroupFields.model';\r\nimport { FormGroupWrapper } from './FormGroupWrapper';\r\nimport { RadioButtonStyle } from '../ChoiceGroup/RadioButton';\r\n\r\ninterface OwnProps extends FormGroupInputProps, RadioButtonStyle {\r\n options: ChoiceGroupOption[];\r\n onClickHandler?: (option?: any) => void;\r\n}\r\n\r\nexport function FormGroupRadioGroup({\r\n formProps,\r\n fieldKey,\r\n required,\r\n label,\r\n options,\r\n tooltipHeader,\r\n tooltipContent,\r\n disabled,\r\n inputStyle,\r\n onClickHandler,\r\n}: OwnProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\n// TODO there might be change here when refactoring RadioGroup.tsx\r\n// TODO extract and rework maybe with pages/AccountSettings/shared/components.tsx\r\nconst RadioButtons = styled(RadioButtonGroup)`\r\n > div {\r\n min-width: auto;\r\n flex: 1 1 auto !important;\r\n }\r\n\r\n > label {\r\n word-break:break-all;\r\n } \r\n`;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Dispatch } from 'redux';\r\nimport { Modal } from './Modal.Wrapper';\r\nimport { modalActions } from '../store/actions';\r\n\r\ninterface OwnProps {\r\n titleText: string;\r\n footerText: string;\r\n closeText: string;\r\n submitText: string;\r\n content: any;\r\n onSubmitClick: () => any;\r\n children: any;\r\n compact?: boolean;\r\n}\r\n\r\ninterface ModalContainerProps extends OwnProps {\r\n dispatch: Dispatch;\r\n}\r\n\r\nfunction BasicModalComponent({\r\n titleText,\r\n footerText,\r\n closeText,\r\n submitText,\r\n onSubmitClick,\r\n content,\r\n dispatch,\r\n compact,\r\n ...rest\r\n}: ModalContainerProps) {\r\n return (\r\n dispatch(modalActions.closeModal())}\r\n onSubmitClick={() => onSubmitClick}\r\n {...rest as any}\r\n >\r\n {content}\r\n \r\n );\r\n}\r\n\r\nexport const BasicModal = connect()(BasicModalComponent);\r\n","import { Form, Formik } from 'formik';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect, DispatchProp } from 'react-redux';\r\nimport styled from 'styled-components';\r\nimport { boolean, object } from 'yup';\r\nimport { ActionLink } from '../../ActionLink/ActionLink';\r\nimport { Alert } from '../../Alert/Alert';\r\nimport { FormActions, FormGroupCheckbox } from '../../Form';\r\nimport { modalActions } from '../store/actions';\r\nimport { ModalProps } from '../store/model';\r\nimport { Modal } from './Modal.Wrapper';\r\nimport { Typography } from '../../../lib/Typography';\r\n\r\nexport interface AgreementModalProps extends ModalProps {\r\n isOpen?: boolean;\r\n isSubmitted?: boolean;\r\n loading?: boolean;\r\n recentlySubmitted?: boolean;\r\n cancelText?: string;\r\n onAfterCancelText?: string;\r\n onAfterSubmitText?: string;\r\n onAfterSubmitClick?: () => void;\r\n content: string;\r\n checkboxLabel: string;\r\n checkboxId?: string;\r\n alertText?: string;\r\n linkText?: string;\r\n linkUrl?: string;\r\n linkTarget?: string;\r\n}\r\n\r\ntype Props = AgreementModalProps & DispatchProp;\r\n\r\nfunction Component({\r\n alertText,\r\n titleText,\r\n onSubmitClick,\r\n onAfterSubmitClick,\r\n recentlySubmitted,\r\n onCloseClick,\r\n content,\r\n dispatch,\r\n loading,\r\n checkboxLabel,\r\n checkboxId,\r\n cancelText,\r\n submitText,\r\n onAfterSubmitText,\r\n onAfterCancelText,\r\n isOpen,\r\n linkText,\r\n linkUrl,\r\n linkTarget,\r\n}: Props) {\r\n const [agreementRead, setAgreementRead] = useState(false);\r\n\r\n let taCContainerRef: HTMLDivElement | null = null;\r\n\r\n useEffect(() => {\r\n if (\r\n taCContainerRef &&\r\n Math.abs(taCContainerRef.scrollHeight - taCContainerRef.clientHeight) <= 5\r\n ) {\r\n setAgreementRead(true);\r\n }\r\n }, [taCContainerRef]);\r\n\r\n return (\r\n \r\n \r\n {titleText}\r\n \r\n {alertText && (\r\n \r\n {alertText}\r\n \r\n )}\r\n {!!linkText && (\r\n \r\n \r\n window.open(linkUrl ? linkUrl : '#', linkTarget ? linkTarget : undefined)\r\n }\r\n underlined={true}\r\n >\r\n {linkText}\r\n \r\n \r\n )}\r\n\r\n (taCContainerRef = ref)}\r\n dangerouslySetInnerHTML={{ __html: content }}\r\n onScroll={handleScroll}\r\n />\r\n\r\n (\r\n
    \r\n \r\n close()}\r\n backText={cancelText}\r\n marginTop={true}\r\n loading={loading}\r\n submitted={recentlySubmitted}\r\n id={'modal-test'}\r\n />\r\n \r\n )}\r\n />\r\n
    \r\n
    \r\n );\r\n\r\n function handleScroll(event: any) {\r\n const bottom =\r\n Math.abs(event.target.scrollHeight - event.target.scrollTop - event.target.clientHeight) <= 5;\r\n\r\n if (bottom) {\r\n setAgreementRead(true);\r\n }\r\n }\r\n\r\n function handleSubmit() {\r\n if (loading) {\r\n return;\r\n }\r\n if (onSubmitClick) {\r\n onSubmitClick();\r\n }\r\n }\r\n\r\n function close() {\r\n if (loading) {\r\n return;\r\n }\r\n\r\n return onCloseClick ? onCloseClick() : dispatch(modalActions.closeModal());\r\n }\r\n}\r\n\r\nexport const AgreementModal = connect()(Component);\r\n\r\nconst TaCContainer = styled.div`\r\n padding: 10px;\r\n height: 10em;\r\n border-radius: 5px;\r\n border: 1px solid ${(p) => p.theme.colors.secondary4};\r\n overflow-y: auto;\r\n`;\r\n\r\nconst RedLine = styled.hr`\r\n border-top: 2px solid ${(p) => p.theme.colors.primary1};\r\n`;\r\n\r\nconst Container = styled.div`\r\n ${(p) => p.theme.media.desktop.andUp} {\r\n padding: 40px 80px;\r\n margin-bottom: 30px;\r\n }\r\n`;\r\n\r\nconst BrochureLinkContainer = styled.div`\r\n text-align: right;\r\n padding-top: 15px;\r\n padding-bottom: 15px;\r\n a {\r\n color: ${(p) => p.theme.colors.primary1};\r\n :hover {\r\n color: ${(p) => p.theme.colors.primary1};\r\n }\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Col as LibCol } from 'reactstrap';\r\nimport { ColumnProps } from 'reactstrap/lib/Col';\r\n\r\ninterface OwnProps extends React.HTMLProps {\r\n mobile?: ColumnProps;\r\n tablet?: ColumnProps;\r\n desktop?: ColumnProps;\r\n className?: string;\r\n}\r\n\r\nexport function Col(props: OwnProps) {\r\n const { mobile, tablet, desktop, ...restProps } = props;\r\n // restProps used to avoid mobile=\"[Object object]\" on HTML level\r\n return ;\r\n}\r\n","// 107 from umbraco/surface/bankinformationsurface/GetBankInfoCountries\r\n// 155 previous length of countries here in this file\r\n// 277 on Account Settings \\ Address tab\r\nexport const countries = [\r\n { code: 'L1', name: 'USA', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'U5', name: 'Abu Dhabi', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '01', name: 'Afghanistan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'K8', name: 'Akrotiri', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '02', name: 'Albania', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '03', name: 'Algeria', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '05', name: 'Andorra', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '06', name: 'Angola', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'N3', name: 'Anguilla', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '07', name: 'Antarctica', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '08',\r\n name: 'Antigua & Barbu',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '09', name: 'Argentina', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'Q7', name: 'Armenia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'N4', name: 'Aruba', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'N5',\r\n name: 'Ashmore & Cartier Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '10', name: 'Australia', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: '11', name: 'Austria', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: 'Q8', name: 'Azerbaijan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '12', name: 'Azores', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '13', name: 'Bahamas', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '14', name: 'Bahrain', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'T2',\r\n name: 'Balearic Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '15', name: 'Bangladesh', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '16', name: 'Barbados', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'N6',\r\n name: 'Bassas Da India',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'T1', name: 'Belarus', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '17', name: 'Belgium', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: '18', name: 'Belize', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '19', name: 'Benin', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '20', name: 'Bermuda', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '21', name: 'Bhutan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '22', name: 'Bolivia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'V3', name: 'Bonaire', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'Q9',\r\n name: 'Bosnia & Herceg',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '23', name: 'Botswana', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'N7',\r\n name: 'Bouvet Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: '25',\r\n name: 'Br. Indian Oc',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '24', name: 'Brazil', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '27', name: 'Brunei', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '28', name: 'Bulgaria', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'T7',\r\n name: 'Burkina Faso',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '29', name: 'Burma', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '30', name: 'Burundi', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '31', name: 'Cambodia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '32', name: 'Cameroon', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '33', name: 'Canada', irsCountryCode: null, isPostalCodeMandatory: true },\r\n {\r\n code: '35',\r\n name: 'Canary Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '36', name: 'Cape Verde', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '37',\r\n name: 'Cayman Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: '38',\r\n name: 'Central Africa',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '39', name: 'Chad', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '40',\r\n name: 'Channel Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '41', name: 'Chile', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '42', name: 'China', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'N8',\r\n name: 'Christmas Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'N9',\r\n name: 'Clipperton Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: '45',\r\n name: 'Cocos Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '46', name: 'Colombia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '47', name: 'Comoros', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'U1',\r\n name: 'Congo (Brazzavi)',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'U2',\r\n name: 'Congo DEM REP Kinsha',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: '49',\r\n name: 'Cook Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'P0',\r\n name: 'Coral Sea Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'U6', name: 'Corsica', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '50', name: 'Costa Rica', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'A2',\r\n name: \"Cote D'Ivoire\",\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'R0', name: 'Croatia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '51', name: 'Cuba', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'T3', name: 'Curacao', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '52', name: 'Cyprus', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '53',\r\n name: 'Czech Republic',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '54', name: 'Denmark', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'P5', name: 'Dhekelia ', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '55', name: 'Djibouti', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '56', name: 'Dominica', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '57',\r\n name: 'Dominican Rep',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'T8', name: 'Dubai', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '58', name: 'Ecuador', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '59', name: 'Egypt', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '60', name: 'El Salvador', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'U7',\r\n name: 'Eleuthera Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '61', name: 'England', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '62',\r\n name: 'Equator Guinea',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'T4', name: 'Eritrea', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'R1', name: 'Estonia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '63', name: 'Ethiopia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'P1',\r\n name: 'Europa Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: '64',\r\n name: 'Falkland Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: '65',\r\n name: 'Faroe Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '66', name: 'Fiji', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '67', name: 'Finland', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '71',\r\n name: 'Fr South Antarc',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: '70',\r\n name: 'Fr. Polynesia',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '68', name: 'France', irsCountryCode: null, isPostalCodeMandatory: true },\r\n {\r\n code: '69',\r\n name: 'French Guiana',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '72', name: 'Gabon', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '73', name: 'Gambia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'P2', name: 'Gaza Strip', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'R2', name: 'Georgia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'S8', name: 'Germany', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: '76', name: 'Ghana', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '77', name: 'Gibraltar', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '78',\r\n name: 'Gilbert Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'P3',\r\n name: 'Glorioso Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '79', name: 'Greece', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '80', name: 'Greenland', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '81', name: 'Grenada', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '82', name: 'Guadeloupe', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '84', name: 'Guatemala', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'P4', name: 'Guernsey', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '85', name: 'Guinea', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '86',\r\n name: 'Guinea-Bissau',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '87', name: 'Guyana', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '88', name: 'Haiti', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '89',\r\n name: 'Heard Island And McDonald Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'L4', name: 'Holy See ', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '90', name: 'Honduras', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '91', name: 'Hong Kong', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '92', name: 'Hungary', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '93', name: 'Iceland', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '94', name: 'India', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '95', name: 'Indonesia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '96', name: 'Iran', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '97', name: 'Iraq', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '98', name: 'Ireland', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '99', name: 'Isle of Man', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'A0', name: 'Israel', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'A1', name: 'Italy', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'A3', name: 'Jamaica', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'P6', name: 'Jan Mayen', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'A4', name: 'Japan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'P7', name: 'Jersey', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'A5',\r\n name: 'Johnston Atoll',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'A6', name: 'Jordan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'P8',\r\n name: 'Juan de Nova',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'R3', name: 'Kazakhstan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'A7', name: 'Kenya', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: '34', name: 'Kiribati', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'A8', name: 'Korea-North', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'B0', name: 'Korea-South', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'V6', name: 'Kosovo', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'T9',\r\n name: 'Kurile Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'B1', name: 'Kuwait', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'R4', name: 'Kyrgyzstan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'B2', name: 'Laos', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'R5', name: 'Latvia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'B3', name: 'Lebanon', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'B4', name: 'Lesotho', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'B5', name: 'Liberia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'B6', name: 'Libya', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'B7',\r\n name: 'Liechtenstein',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'R6', name: 'Lithuania', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'B8', name: 'Luxembourg', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'B9', name: 'Macau', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'R7',\r\n name: 'Macedonia-Skopje',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'C0', name: 'Madagascar', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'C1', name: 'Malawi', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'C2', name: 'Malaysia', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: 'C3', name: 'Maldives', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'C4', name: 'Mali', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'C5', name: 'Malta', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'Q0',\r\n name: 'Marshall Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'C6', name: 'Martinique', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'C7', name: 'Mauritania', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'C8', name: 'Mauritius', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'Q1', name: 'Mayotte', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'C9', name: 'Mexico', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: 'Q2', name: 'Micronesia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'R8', name: 'Moldova', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'D1', name: 'Monaco', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'D2', name: 'Mongolia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'R9', name: 'Montenegro', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'D3', name: 'Montserrat', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'D4', name: 'Morocco', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'D5', name: 'Mozambique', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'I5', name: 'Namibia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'D6', name: 'Nauru', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'D7',\r\n name: 'Navassa Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'D8', name: 'Nepal', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: 'D9', name: 'Netherlands', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'E1',\r\n name: 'New Caledonia',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'E3', name: 'New Zealand', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: 'E4', name: 'Nicaragua', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'E5', name: 'Niger', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'E6', name: 'Nigeria', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'E7', name: 'Niue', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'E8',\r\n name: 'Norfolk Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'F0', name: 'Norway', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: 'F1', name: 'Oman', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'F2', name: 'Pakistan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'F3', name: 'Panama', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'F4',\r\n name: 'Papua N. Guinea',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'F5',\r\n name: 'Paracel Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'F6', name: 'Paraguay', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'F7', name: 'Peru', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'F8', name: 'Philippines', irsCountryCode: null, isPostalCodeMandatory: true },\r\n {\r\n code: 'F9',\r\n name: 'Pitcairn Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'G0', name: 'Poland', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'G1', name: 'Portugal', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'G4', name: 'Qatar', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'T5', name: 'Redonda', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'U8',\r\n name: 'Republic Of Palau',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'G5', name: 'Reunion', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'G6', name: 'Romania', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'S0', name: 'Russia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'G7', name: 'Rwanda', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'U0',\r\n name: 'Ryukyu Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'M4', name: 'Saba', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: '44',\r\n name: 'Saint Barthelemy',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'E0',\r\n name: 'Saint Martin (French part)',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'H1',\r\n name: 'Saint Pierre et Miquelon',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'M2', name: 'Samoa', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'H3', name: 'San Marino', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'H4', name: 'Sao Tome', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'U9', name: 'Sarawak', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'H5',\r\n name: 'Saudi Arabia',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'H6', name: 'Scotland', irsCountryCode: null, isPostalCodeMandatory: true },\r\n { code: 'H7', name: 'Senegal', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'S1', name: 'Serbia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'H8', name: 'Seychelles', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'H9',\r\n name: 'Sierra Leone',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'I0', name: 'Singapore', irsCountryCode: null, isPostalCodeMandatory: true },\r\n {\r\n code: 'M3',\r\n name: 'Sint Eustatius',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'M6',\r\n name: 'Sint Maarten',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'V7', name: 'Slovakia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'S2', name: 'Slovenia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'I1',\r\n name: 'Solomon Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'I2', name: 'Somalia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'I3',\r\n name: 'South Africa',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: '43', name: 'South Sudan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'I6', name: 'Spain', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'I7',\r\n name: 'Spratly Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'I8', name: 'Sri Lanka', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'G9', name: 'St. Helena', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'G8',\r\n name: 'St. Kitts & Nevis',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'H0', name: 'St. Lucia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'H2', name: 'St. Vincent', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'I9', name: 'Sudan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J0', name: 'Suriname', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J1', name: 'Svalbard', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J2', name: 'Swaziland', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J3', name: 'Sweden', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J4', name: 'Switzerland', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J5', name: 'Syria', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'V0', name: 'Taiwan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'S3', name: 'Tajikistan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J6', name: 'Tanzania', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'ZZ', name: 'TEST1', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J7', name: 'Thailand', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'V4', name: 'Timor-Leste', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J8', name: 'Togo', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'J9', name: 'Tokelau', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'K0', name: 'Tonga', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'V1', name: 'Tortola', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'K1',\r\n name: 'Trinidad-Tobago',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'Q5',\r\n name: 'Tromelin Island',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'K3', name: 'Tunisia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'K4', name: 'Turkey', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'S4',\r\n name: 'Turkmenistan',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'K5',\r\n name: 'Turks & Caicos Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'K6', name: 'Tuvalu', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'K7', name: 'Uganda', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'S5', name: 'Ukraine', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'K9',\r\n name: 'United Arab Emirates',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'L0',\r\n name: 'United Kingdom',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: true,\r\n },\r\n { code: 'L3', name: 'Uruguay', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'S6', name: 'Uzbekistan', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'V2', name: 'Vanuatu', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'L5', name: 'Venezuela', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'L6', name: 'Vietnam', irsCountryCode: null, isPostalCodeMandatory: false },\r\n {\r\n code: 'U3',\r\n name: 'Virgin Islands (British)',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'M0',\r\n name: 'Wallis & Futuna Islands',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'Q6',\r\n name: 'West Bank Gaza',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n {\r\n code: 'M1',\r\n name: 'Western Sahara',\r\n irsCountryCode: null,\r\n isPostalCodeMandatory: false,\r\n },\r\n { code: 'T0', name: 'Yemen', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'M7', name: 'Zambia', irsCountryCode: null, isPostalCodeMandatory: false },\r\n { code: 'M8', name: 'Zimbabwe', irsCountryCode: null, isPostalCodeMandatory: false },\r\n];\r\n\r\nexport const states = [\r\n { name: 'Alabama', code: 'AL' },\r\n { name: 'Alaska', code: 'AK' },\r\n { name: 'American Samoa', code: 'AS' },\r\n { name: 'Arizona', code: 'AZ' },\r\n { name: 'Arkansas', code: 'AR' },\r\n { name: 'Armed Forces (the) Americans', code: 'AA' },\r\n { name: 'Armed Forces (the) Americas', code: 'AA' },\r\n { name: 'Armed Forces Europe', code: 'AE' },\r\n { name: 'Armed Forces Europe ', code: 'AE' },\r\n { name: 'Armed Forces Pacific', code: 'AP' },\r\n { name: 'Armed Forces Pacific', code: 'AP' },\r\n { name: 'California', code: 'CA' },\r\n { name: 'Colorado', code: 'CO' },\r\n { name: 'Connecticut', code: 'CT' },\r\n { name: 'Delaware', code: 'DE' },\r\n { name: 'Dist. of Columbia', code: 'DC' },\r\n { name: 'Federated States Of Micronesia', code: 'FM' },\r\n { name: 'Florida', code: 'FL' },\r\n { name: 'Georgia', code: 'GA' },\r\n { name: 'Guam', code: 'GU' },\r\n { name: 'Hawaii', code: 'HI' },\r\n { name: 'Idaho', code: 'ID' },\r\n { name: 'Illinois', code: 'IL' },\r\n { name: 'Indiana', code: 'IN' },\r\n { name: 'Iowa', code: 'IA' },\r\n { name: 'Kansas', code: 'KS' },\r\n { name: 'Kentucky', code: 'KY' },\r\n { name: 'Louisiana', code: 'LA' },\r\n { name: 'Maine', code: 'ME' },\r\n { name: 'Maryland', code: 'MD' },\r\n { name: 'Massachusetts', code: 'MA' },\r\n { name: 'Michigan', code: 'MI' },\r\n { name: 'Minnesota', code: 'MN' },\r\n { name: 'Mississippi', code: 'MS' },\r\n { name: 'Missouri', code: 'MO' },\r\n { name: 'Montana', code: 'MT' },\r\n { name: 'Nebraska', code: 'NE' },\r\n { name: 'Nevada', code: 'NV' },\r\n { name: 'New Hampshire', code: 'NH' },\r\n { name: 'New Jersey', code: 'NJ' },\r\n { name: 'New Mexico', code: 'NM' },\r\n { name: 'New York', code: 'NY' },\r\n { name: 'North Carolina', code: 'NC' },\r\n { name: 'North Dakota', code: 'ND' },\r\n { name: 'Northern Mariana Islands', code: 'MP' },\r\n { name: 'Ohio', code: 'OH' },\r\n { name: 'Oklahoma', code: 'OK' },\r\n { name: 'Oregon', code: 'OR' },\r\n { name: 'Pennsylvania', code: 'PA' },\r\n { name: 'Puerto Rico', code: 'PR' },\r\n { name: 'Republic of Palau', code: 'PW' },\r\n { name: 'Republic of the Marshall Islands', code: 'MH' },\r\n { name: 'Rhode Island', code: 'RI' },\r\n { name: 'South Carolina', code: 'SC' },\r\n { name: 'South Dakota', code: 'SD' },\r\n { name: 'Tennessee', code: 'TN' },\r\n { name: 'Texas', code: 'TX' },\r\n { name: 'US Minor outlying Islands (includes Midway)', code: 'UM' },\r\n { name: 'US Virgin Islands', code: 'VI' },\r\n { name: 'Utah', code: 'UT' },\r\n { name: 'Vermont', code: 'VT' },\r\n { name: 'Virginia', code: 'VA' },\r\n { name: 'Washington', code: 'WA' },\r\n { name: 'West Virginia', code: 'WV' },\r\n { name: 'Wisconsin', code: 'WI' },\r\n { name: 'Wyoming', code: 'WY' },\r\n];\r\n\r\nexport const provinces = [\r\n { name: 'Canada Province 1', code: 'CA' },\r\n { name: 'Canada Province 2', code: 'CB' },\r\n];\r\n\r\nexport const formats = {\r\n addressScreenFormat: 'Others',\r\n totalAddressLines: 3,\r\n};\r\n","import produce, { Draft } from 'immer';\r\n\r\nexport type GetActionTypes any }> = ReturnType<\r\n T[(keyof T)]\r\n>;\r\n\r\nexport interface Action {\r\n type: T;\r\n}\r\nexport interface ActionWithPayload extends Action {\r\n payload: P;\r\n}\r\n\r\nexport function createAction(type: T): Action;\r\nexport function createAction(type: T, payload: P): ActionWithPayload;\r\nexport function createAction(type: T, payload?: P) {\r\n return payload === undefined ? { type } : { type, payload };\r\n}\r\n\r\nexport function createReducer(\r\n initialState: S,\r\n fn: (draft: Draft, action: A) => void,\r\n): (state: S, action: A) => S {\r\n return function reducer(state: S = initialState, action: A) {\r\n return produce(state, (draft) => {\r\n return fn(draft, action);\r\n });\r\n };\r\n}\r\n\r\nexport function createReactReducer(\r\n fn: (draft: Draft, action: A) => void,\r\n): (state: S, action: A) => S {\r\n return function reducer(state: S, action: A) {\r\n return produce(state, (draft) => {\r\n return fn(draft, action);\r\n });\r\n };\r\n}\r\n","import { createAction } from '../../../store/reduxBoilerplate';\r\nimport { ModalComponents } from '../Modal.Root';\r\nimport { ModalProps } from './model';\r\nimport { ConfirmModalProps } from '../Templates/Modal.Confirm';\r\n\r\nexport const OPEN_MODAL = '[Modal] OPEN_MODAL';\r\nexport const CLOSE_MODAL = '[Modal] CLOSE_MODAL';\r\nexport const UPDATE_MODAL_PROP = '[Modal] UPDATE_MODAL_PROP';\r\n\r\nexport const modalActions = {\r\n openModal: (modalType: ModalComponents, modalProps?: ModalProps) =>\r\n createAction(OPEN_MODAL, { modalType, modalProps }),\r\n\r\n closeModal: () => createAction(CLOSE_MODAL),\r\n\r\n updateModalProp: (prop: string, value: any) => createAction(UPDATE_MODAL_PROP, { prop, value }),\r\n\r\n openConfirmModal: (props: ConfirmModalProps) =>\r\n modalActions.openModal(ModalComponents.CONFIRMATION_MODAL, props),\r\n};\r\n","import React from 'react';\r\nimport { LoadHandler } from '../../../../lib/LoadHandler';\r\nimport {\r\n autoSellConfigInitialValues,\r\n initialBankDetails,\r\n SaleType,\r\n SellAccount,\r\n SellJourney,\r\n SellJourneyMetaData,\r\n SellMethod,\r\n ShareType,\r\n} from './SellSharesTypes';\r\nimport {\r\n getBookLotsFactory,\r\n getInternationalCurrency,\r\n getSelectedAccount,\r\n getSelectedCompany,\r\n getSelectedSecurityType,\r\n getSellAmount,\r\n} from './SellSharesSelectors';\r\nimport { useSellSharesAccountsApi } from './SellSharesHooks';\r\n\r\nexport const SellJourneyInitialData: SellJourney = {\r\n accountNumber: 0,\r\n companyId: 0,\r\n securityType: '',\r\n issueNumber: '',\r\n agreesToTerms: false,\r\n saleType: SaleType.MarketOrder,\r\n shareTypesToSell: ShareType.None,\r\n drsSellAmount: 0,\r\n planSellAmount: 0,\r\n saleMethod: SellMethod.FIFO,\r\n ...autoSellConfigInitialValues,\r\n ...initialBankDetails,\r\n bookLotSaleConfig: {},\r\n};\r\n\r\nexport const SellJourneyMetaDataInitialState: SellJourneyMetaData = {\r\n accounts: [],\r\n countries: [],\r\n totalSharesToSell: '',\r\n isMarketPricingAvailable: true,\r\n inquiryMode: false,\r\n getBookLots: () => [],\r\n};\r\n\r\nexport interface SellJourneyContextState {\r\n data: SellJourney;\r\n metaData: SellJourneyMetaData;\r\n}\r\n\r\nexport interface SellJourneyUpdate {\r\n update: (data: Partial, reset?: boolean) => void;\r\n updateMetaData: (metaData: Partial) => void;\r\n}\r\n\r\nexport const SellJourneyContext = React.createContext({\r\n data: SellJourneyInitialData,\r\n metaData: SellJourneyMetaDataInitialState,\r\n});\r\n\r\nexport const SellJourneyUpdate = React.createContext({\r\n update: () => {},\r\n updateMetaData: () => {},\r\n});\r\n\r\ninterface OwnProps {\r\n initialState?: SellJourney;\r\n}\r\n\r\nexport function SellJourneyContextProvider({ children }: React.PropsWithChildren) {\r\n const accounts = useSellSharesAccountsApi();\r\n const [data, setData] = React.useState(SellJourneyInitialData);\r\n const [metaData, setMetaData] = React.useState(\r\n SellJourneyMetaDataInitialState,\r\n );\r\n\r\n const contextState: SellJourneyContextState = {\r\n data: data,\r\n metaData: {\r\n ...metaData,\r\n accounts: (accounts.data ? accounts.data.accountCompanies : []) as SellAccount[],\r\n selectedAccount: getSelectedAccount(data, metaData),\r\n selectedCompany: getSelectedCompany(data, metaData),\r\n selectedIssue: getSelectedSecurityType(data, metaData),\r\n totalSharesToSell: getSellAmount(data),\r\n internationalCurrency: getInternationalCurrency(data, metaData),\r\n getBookLots: getBookLotsFactory(data, metaData),\r\n sharePrice: metaData && metaData.sellTypes && metaData.sellTypes.price,\r\n isMarketPricingAvailable: !!(accounts.data && accounts.data.isMarketPricingAvailable),\r\n },\r\n };\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n\r\n function update(newData: Partial, reset: boolean = false) {\r\n if (reset){\r\n setData({...data, ...SellJourneyInitialData, ...newData})\r\n }\r\n else {\r\n setData({ ...data, ...newData });\r\n }\r\n }\r\n\r\n function updateMetaData(newMetaData: Partial) {\r\n setMetaData({ ...metaData, ...newMetaData });\r\n }\r\n}\r\n\r\nexport function useSellSharesState() {\r\n const context = React.useContext(SellJourneyContext);\r\n\r\n if (typeof context === 'undefined') throw new Error('useSellSharesState not within context');\r\n\r\n return context;\r\n}\r\n\r\nexport function useSellSharesUpdate() {\r\n const context = React.useContext(SellJourneyUpdate);\r\n\r\n if (typeof context === 'undefined') throw new Error('useSellSharesState not within context');\r\n\r\n return context;\r\n}\r\n\r\nexport function useSellSharesJourney(): SellJourneyContextState & SellJourneyUpdate {\r\n return { ...useSellSharesState(), ...useSellSharesUpdate() };\r\n}\r\n","import { BINARY } from '../shared/accountSettings.enums';\r\nimport { DeliveryData, DeliveryTypes, DeliveryPreferencesFormData, UpdateRequest } from './model';\r\n\r\nfunction toDeliveryType(val: string): DeliveryTypes {\r\n if (val === String(DeliveryTypes.MAIL)) {\r\n return DeliveryTypes.MAIL;\r\n }\r\n\r\n if (val === String(DeliveryTypes.E_DELIVERY)) {\r\n return DeliveryTypes.E_DELIVERY;\r\n }\r\n\r\n throw new Error('Invalid form value supplied.');\r\n}\r\n\r\nexport function mapToRequestData(data: DeliveryPreferencesFormData): UpdateRequest {\r\n if (data.setAllToEDelivery === BINARY.Yes) {\r\n return {\r\n preferences: data.deliveryPreferences.map((c) => ({\r\n accountNumber: c.accountNumber,\r\n accountStatements: DeliveryTypes.E_DELIVERY,\r\n shareOwnerCommunications: DeliveryTypes.E_DELIVERY,\r\n taxForms: DeliveryTypes.E_DELIVERY,\r\n directDepositNotice: DeliveryTypes.E_DELIVERY,\r\n })),\r\n };\r\n }\r\n\r\n return {\r\n preferences: data.deliveryPreferences.map((item) => {\r\n const {\r\n accountNumber,\r\n accountStatements,\r\n shareOwnerCommunications,\r\n taxForms,\r\n directDepositNotice,\r\n } = item;\r\n\r\n if (!accountStatements || !shareOwnerCommunications || !taxForms || !directDepositNotice) {\r\n throw new Error('Some form values are empty. Could not convert to UpdateRequest');\r\n }\r\n\r\n return {\r\n accountNumber,\r\n accountStatements: toDeliveryType(accountStatements),\r\n shareOwnerCommunications: toDeliveryType(shareOwnerCommunications),\r\n taxForms: toDeliveryType(taxForms),\r\n directDepositNotice: toDeliveryType(directDepositNotice),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nexport function updateDeliveryData(state: DeliveryData, update: UpdateRequest): DeliveryData {\r\n return {\r\n ...state,\r\n accounts: state.accounts.map((account) => {\r\n const item = update.preferences.find((item) => item.accountNumber === account.accountNumber);\r\n\r\n return {\r\n ...account,\r\n directDepositNotice: item!.directDepositNotice,\r\n taxForms: item!.taxForms,\r\n shareOwnerCommunications: item!.shareOwnerCommunications,\r\n accountStatements: item!.accountStatements,\r\n };\r\n }),\r\n };\r\n}\r\n","// TODO look to lib/Divider/Divider.tsx\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\nimport { PANEL_PADDING } from './Panel';\r\n\r\ninterface ContainerProps extends Theme {\r\n fullWidth?: boolean;\r\n insidePanelContent?: boolean;\r\n}\r\n\r\nexport const Divider = styled.div`\r\n height: 1px;\r\n background: ${(p: ContainerProps) => p.theme.colors.primary3};\r\n margin: ${(p: ContainerProps) => getMargin(p)};\r\n`;\r\n\r\nfunction getMargin(p: ContainerProps) {\r\n if (p.fullWidth) {\r\n return p.insidePanelContent ? `0 -${PANEL_PADDING}` : 0;\r\n }\r\n\r\n return `0 ${PANEL_PADDING}`;\r\n}\r\n","export * from './Array';\r\nexport * from './Object';\r\n","import { FieldProps } from 'formik';\r\nimport React from 'react';\r\nimport { Input } from '../Input';\r\nimport { styled, Theme } from '../../../style/theme/themeModule';\r\nimport { OptionalRender } from '../../OptionalRender';\r\nimport { WithValidationProps, withValidation } from '../Validation/WithValidation';\r\nimport { px } from '../../../style/theme/utils';\r\n\r\nconst Container = styled.div`\r\n position: relative;\r\n display: inline-block;\r\n`;\r\n\r\ninterface IconContainerProps extends Theme {\r\n hasError?: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nconst IconContainer = styled.div`\r\n position: relative;\r\n top: 4px;\r\n width: ${(p) => px(p.theme.radio.height)};\r\n height: ${(p) => px(p.theme.radio.height)};\r\n border-radius: 50%;\r\n border: 1px solid ${(p) => p.theme.colors.primary3};\r\n margin-right: 20px;\r\n display: inline-block;\r\n background: ${(p) => p.theme.colors.white};\r\n ${(p: IconContainerProps) =>\r\n p.disabled && `background: ${p.theme.colors.disabledBackground}; cursor: default;`}\r\n ${(p: IconContainerProps) => p.hasError && `border-color: ${p.theme.colors.error};`}\r\n`;\r\n\r\nconst RadioInput = styled(Input)`\r\n position: absolute;\r\n opacity: 0;\r\n margin-left: 0;\r\n\r\n &:active,\r\n &:focus {\r\n & + ${IconContainer} {\r\n border-color: ${(p) => p.theme.input.focusColor};\r\n }\r\n }\r\n`;\r\n\r\ninterface RadioIconProps extends Theme {\r\n disabled?: boolean;\r\n}\r\n\r\nconst RadioIcon = styled.div`\r\n position: absolute;\r\n top: 4px;\r\n left: 4px;\r\n background: ${(p: RadioIconProps) => p.theme.colors.primary1};\r\n font-size: 12px;\r\n border-radius: 50%;\r\n ${(p: RadioIconProps) => p.disabled && `opacity: .5;`};\r\n\r\n && {\r\n width: 20px;\r\n height: 20px;\r\n }\r\n`;\r\n\r\ninterface OwnProps extends React.InputHTMLAttributes {\r\n className?: string;\r\n}\r\n\r\ntype Props = (FieldProps) & OwnProps & (WithValidationProps);\r\n\r\nfunction Component(props: Props) {\r\n const { field, hasError, className, ...restProps } = props;\r\n const { disabled, value: fieldName } = props;\r\n const selected = fieldName === field.value;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const Radio = withValidation(Component);\r\n","import React from 'react';\r\nimport { Field, FieldArray } from 'formik';\r\nimport { Label } from '../Label';\r\nimport { Checkbox } from './Checkbox';\r\nimport { ChoiceGroupProps } from './RadioGroup';\r\n\r\nexport function CheckboxGroup(props: ChoiceGroupProps) {\r\n const { name, options, disabled, className } = props;\r\n return (\r\n (\r\n <>\r\n {options.map((option, i) => (\r\n \r\n ))}\r\n \r\n )}\r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport { styled, Theme } from '../../../style/theme/themeModule';\r\n\r\ninterface OwnProps {\r\n label: string;\r\n value: string | number | JSX.Element;\r\n responsive?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function LabeledValue({ label, value, responsive, className }: OwnProps) {\r\n return (\r\n \r\n \r\n
    {value}
    \r\n
    \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n responsive: boolean;\r\n}\r\n\r\nconst Container = styled.div`\r\n ${(p) => p.theme.media.tablet.andDown} {\r\n ${(p: ContainerProps) =>\r\n p.responsive &&\r\n `\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n > div {\r\n &:last-child {\r\n white-space: pre-wrap;\r\n word-wrap: break-word;\r\n word-break: break-word;\r\n }\r\n }\r\n `}\r\n }\r\n`;\r\n\r\ninterface LabelProps extends Theme {\r\n responsive: boolean;\r\n}\r\n\r\nconst Label = styled.div`\r\n font-size: 12px;\r\n color: #4f4f4e;\r\n\r\n ${(p) => p.theme.media.tablet.andDown} {\r\n ${(p: LabelProps) =>\r\n p.responsive &&\r\n `\r\n margin-right: 10px;\r\n font-size: 14px;\r\n `}\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\nimport { FormGroup } from './FormGroup';\r\n\r\ninterface OwnProps {\r\n label: string;\r\n value: string | number | JSX.Element;\r\n bold?: boolean;\r\n responsive?: boolean;\r\n}\r\n\r\nexport function ReadOnlyField(props: OwnProps) {\r\n const { label, value, bold, ...rest } = props;\r\n return (\r\n \r\n {label}\r\n {value}\r\n \r\n );\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n responsive: boolean;\r\n}\r\n\r\nconst Container = styled(({ responsive, ...rest }: OwnProps) => )`\r\n ${(p) => p.theme.media.tablet.andDown} {\r\n ${(p: ContainerProps) =>\r\n p.responsive &&\r\n `\r\n display: flex;\r\n justify-content: space-between;\r\n `}\r\n }\r\n`;\r\n\r\ninterface ValueProps extends Theme {\r\n bold: boolean;\r\n}\r\n\r\nconst Key = styled.div`\r\n margin-bottom: 5px;\r\n`;\r\n\r\nconst Value = styled.div`\r\n margin-bottom: 5px;\r\n ${(p: ValueProps) => p.bold && `font-weight: ${p.theme.fontWeight.bold};`}\r\n`;\r\n","import { styled, Theme } from '../../../style/theme/themeModule';\r\n\r\ninterface DatePickerContainerProps extends Theme {\r\n expandInput?: boolean;\r\n}\r\n\r\nexport const DatePickerContainer = styled.div`\r\n &.invalid {\r\n input {\r\n border-color: ${(p) => p.theme.colors.error};\r\n }\r\n input:focus {\r\n border-color: ${(p) => p.theme.input.focusColor};\r\n box-shadow: none;\r\n }\r\n }\r\n\r\n ${(p) =>\r\n p.expandInput &&\r\n `.react-datepicker-wrapper, .react-datepicker__input-container { width: 100%; }`}\r\n\r\n .react-datepicker__triangle {\r\n display: none;\r\n }\r\n\r\n .react-datepicker__day--today {\r\n position: relative;\r\n font-weight: 300;\r\n &:after {\r\n content: '•';\r\n font-size: 20px;\r\n position: absolute;\r\n top: 13px;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n color: ${(p) => p.theme.colors.primary1};\r\n }\r\n }\r\n\r\n .react-datepicker {\r\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.23), 0 3px 6px 0 rgba(0, 0, 0, 0.16);\r\n border-radius: 0 0 5px 5px;\r\n border: 0;\r\n border-top: 2px solid ${(p) => p.theme.colors.primary1};\r\n }\r\n .react-datepicker__month-container {\r\n margin: 0;\r\n font-size: 16px;\r\n width: 380px;\r\n ${(p) => p.theme.media.mobile.andDown} {\r\n width: 300px;\r\n }\r\n }\r\n .react-datepicker__day--outside-month {\r\n opacity: 0.3;\r\n }\r\n .react-datepicker-popper {\r\n z-index: 99;\r\n }\r\n .react-datepicker__header--custom {\r\n background-color: ${(p) => p.theme.colors.white};\r\n border-bottom: 0;\r\n }\r\n .react-datepicker__day-names {\r\n display: flex;\r\n background-color: ${(p) => p.theme.colors.tertiary1};\r\n }\r\n .react-datepicker__week {\r\n display: flex;\r\n }\r\n .react-datepicker__day-name {\r\n flex: 1;\r\n color: ${(p) => p.theme.colors.primary4};\r\n }\r\n .react-datepicker__day {\r\n flex: 1;\r\n height: 36px;\r\n line-height: 36px;\r\n }\r\n`;\r\n","import { Icon } from '../../Icon/Icon';\r\nimport { addMonths, format, subMonths } from 'date-fns';\r\nimport React from 'react';\r\nimport { styled } from '../../../style/theme/themeModule';\r\n\r\ninterface OwnProps {\r\n date: Date;\r\n\r\n changeYear(): void;\r\n\r\n changeMonth(): void;\r\n\r\n decreaseMonth(): void;\r\n\r\n increaseMonth(): void;\r\n\r\n prevMonthButtonDisabled: boolean;\r\n nextMonthButtonDisabled: boolean;\r\n}\r\n\r\nexport function DatePickerHeader(props: OwnProps) {\r\n return (\r\n \r\n \r\n \r\n {format(subMonths(props.date, 1), 'MMM')}\r\n \r\n {format(props.date, 'MMMM YYYY')}\r\n \r\n {format(addMonths(props.date, 1), 'MMM')}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst LeftIcon = styled(Icon)`\r\n margin-right: 6px;\r\n`;\r\n\r\nconst RightIcon = styled(Icon)`\r\n margin-left: 6px;\r\n`;\r\n\r\nconst HeaderContainer = styled.div`\r\n padding: 0 10px;\r\n margin-bottom: 6px;\r\n display: flex;\r\n justify-content: space-between;\r\n`;\r\n\r\nconst ChangeMonthButton = styled.div`\r\n width: 34px;\r\n display: flex;\r\n font-size: 12px;\r\n align-items: center;\r\n justify-content: space-between;\r\n cursor: pointer;\r\n color: ${(p) => p.theme.colors.primary1};\r\n`;\r\n\r\nconst DateName = styled.div`\r\n font-size: 22px;\r\n`;\r\n","import React, { RefObject } from 'react';\r\nimport { styled } from '../../../style/theme/themeModule';\r\nimport { Input } from 'reactstrap';\r\nimport { Icon } from '../../Icon/Icon';\r\n\r\ninterface OwnProps {\r\n [key: string]: any;\r\n}\r\n\r\nexport class DatePickerInput extends React.Component {\r\n readonly inputRef: RefObject;\r\n\r\n constructor(props: OwnProps) {\r\n super(props);\r\n this.inputRef = React.createRef();\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n
    this.inputRef.current.props.onFocus()}>\r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nconst CalendarInput = styled(Input)`\r\n padding-right: 30px;\r\n`;\r\n\r\nconst CalendarIcon = styled(Icon)`\r\n color: ${(p) => p.theme.colors.primary1};\r\n cursor: pointer;\r\n position: absolute;\r\n right: 10px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n`;\r\n","import { FieldProps } from 'formik';\r\nimport React from 'react';\r\nimport ReactDatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { InputProps } from '../Input';\r\nimport { withValidation, WithValidationProps } from '../Validation/WithValidation';\r\nimport { DatePickerContainer } from './DatePickerContainer';\r\nimport { DatePickerHeader } from './DatePickerHeader';\r\nimport { DatePickerInput } from './DatePickerInput';\r\n\r\ninterface OwnProps {\r\n id: string;\r\n value?: Date;\r\n placeholder: string;\r\n hasError: boolean;\r\n disabled?: boolean;\r\n closeOnSelect?: boolean;\r\n dateFormat?: string;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n expandedDateInput?: boolean;\r\n onDateChanged?: (date: Date | null) => void;\r\n onBlur?: (e: React.FocusEvent) => void;\r\n filterDate?: (date: Date) => boolean;\r\n isUTCDateRequired?: boolean;\r\n}\r\n\r\nexport type DatePickerProps = (FieldProps) & OwnProps & WithValidationProps;\r\n\r\nfunction Container({\r\n id,\r\n value,\r\n placeholder,\r\n hasError,\r\n form,\r\n disabled,\r\n closeOnSelect,\r\n dateFormat,\r\n minDate,\r\n maxDate,\r\n expandedDateInput,\r\n onBlur,\r\n onDateChanged,\r\n filterDate,\r\n isUTCDateRequired,\r\n}: DatePickerProps) {\r\n const handleBlur = (e: React.FocusEvent) => {\r\n form.setFieldTouched(id);\r\n !!onBlur && onBlur(e);\r\n };\r\n const handleChange = (date: Date | null) => {\r\n const dateNullChecked = date === null ? undefined : date;\r\n const selectedDate = isUTCDateRequired\r\n ? dateNullChecked &&\r\n new Date(\r\n Date.UTC(\r\n dateNullChecked.getFullYear(),\r\n dateNullChecked.getMonth(),\r\n dateNullChecked.getDate(),\r\n dateNullChecked.getHours(),\r\n ),\r\n )\r\n : dateNullChecked;\r\n form.setFieldValue(id, selectedDate);\r\n !!onDateChanged && onDateChanged(date);\r\n };\r\n\r\n return (\r\n \r\n }\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n />\r\n \r\n );\r\n}\r\n\r\nfunction Component(props: InputProps) {\r\n const { field, hasError, ...restProps } = props;\r\n return ;\r\n}\r\n\r\nexport const DatePicker = withValidation(Component);\r\n","// TODO, this small component used in src/pages/Dividend\r\n// And it's very simialr to Disclaimer.tsx and in general is similar to \"Foot Note\" from PDF Layout.\r\n// There is src\\pages\\AccountSettings\\DeliveryPreferences\\components\\FootNote.tsx but I am not sure it's the same design.\r\n// So, consideriung that we don't have common component for FootNote, these both can be refactored in future.\r\n// Searchoing css class \"sol-foot-note\" will help to find all places.\r\nimport { styled } from '../../style/theme/themeModule';\r\n\r\nexport const FieldDescription = styled.div`\r\n margin-top: 20px;\r\n color: ${(p) => p.theme.colors.primary4};\r\n`;\r\n","import { FormikProps } from 'formik';\r\nimport React from 'react';\r\nimport { FormControl } from '.';\r\nimport { BaseFormControlProps } from './FormControl';\r\nimport { SelectOption } from './Select/select.model';\r\n\r\nexport interface FormControlItem extends BaseFormControlProps {\r\n show?: (values: V) => boolean;\r\n customElement?: (\r\n values: V,\r\n field: FormControlItem,\r\n formProps: FormikProps,\r\n ) => JSX.Element | null;\r\n onBlur?: (formProps: FormikProps) => (e: React.FocusEvent) => void;\r\n disabled?: (values: V) => boolean;\r\n onSelect?: (val: SelectOption) => void;\r\n}\r\n\r\ninterface OwnProps {\r\n formProps: FormikProps;\r\n fields: FormControlItem[];\r\n}\r\n\r\nexport function DynamicForm({ formProps, fields }: OwnProps) {\r\n return (\r\n <>\r\n {fields\r\n .filter((field) => (field.show ? field.show(formProps.values) : true))\r\n .map((field) =>\r\n field.customElement ? renderCustomElement(field) : renderFormControl(field),\r\n )}\r\n \r\n );\r\n\r\n function renderFormControl(field: FormControlItem) {\r\n const {\r\n formKey,\r\n label,\r\n type,\r\n options,\r\n disabled,\r\n icon,\r\n labelIconWithTooltip,\r\n required,\r\n placeholder,\r\n onBlur,\r\n onSelect,\r\n style,\r\n description,\r\n maxLength,\r\n } = field;\r\n return (\r\n \r\n );\r\n }\r\n\r\n function renderCustomElement(field: FormControlItem) {\r\n return (\r\n \r\n {field.customElement!(formProps.values, field, formProps)}\r\n \r\n );\r\n }\r\n}\r\n","export { Radio } from './ChoiceGroup/Radio';\r\nexport { RadioGroup } from './ChoiceGroup/RadioGroup';\r\nexport { RadioButtonGroup } from './ChoiceGroup/RadioButtonGroup';\r\nexport { Checkbox } from './ChoiceGroup/Checkbox';\r\nexport { CheckboxGroup } from './ChoiceGroup/CheckboxGroup';\r\nexport { Button } from './Button';\r\nexport { FormActions } from './FormActions';\r\nexport { FormGroup } from './FormGroup';\r\nexport { Input } from './Input';\r\nexport { GroupLabel } from './GroupLabel';\r\nexport { Label } from './Label';\r\nexport { LabeledValue } from './LabeledValue/LabeledValue';\r\nexport { ReadOnlyField } from './ReadOnlyField';\r\nexport { InputMask } from './InputMask';\r\nexport { DatePicker } from './DatePicker/DatePicker';\r\nexport { FormControl } from './FormControl';\r\nexport { FieldDescription } from './FieldDescription';\r\nexport { LabelIconWithTooltip } from './LabelIconWithTooltip';\r\nexport { DynamicForm } from './DynamicForm';\r\nexport * from './WrappedField';\r\n","import { useContext } from 'react';\r\nimport { ReactReduxContext } from 'react-redux';\r\nimport { FormikProps } from 'formik';\r\nimport { FormControlItem } from '../../../lib/Form/DynamicForm';\r\nimport { isFalse, isTrue } from '../../../lib/Form/Validation/validation.utils';\r\nimport { DividendPlanFormValues } from '../components/Plan/DividendPlanForm';\r\nimport { SecondaryAddress } from './../components/Payment/helpers/dividendPaymentForm.model';\r\nimport {\r\n DividendDripDetails,\r\n DividendReinvestment,\r\n NewSecondaryAddressDetails,\r\n PartialReinvestmentType,\r\n PlanUpdate,\r\n} from './dividend.model';\r\nimport { Translate, DividendCmsData } from '../../../containers/CmsData';\r\nimport { DividendStep, Step } from '../store/dividend.model';\r\n\r\nexport function getDividendReinvestmentLabel(\r\n dividendReinvestment: DividendReinvestment,\r\n getLabel?: Translate,\r\n) {\r\n switch (dividendReinvestment) {\r\n case DividendReinvestment.RD:\r\n return getLabel ? getLabel('c220DividendFullLabel') : 'Full';\r\n case DividendReinvestment.RX:\r\n case DividendReinvestment.RP:\r\n case DividendReinvestment.PS:\r\n case DividendReinvestment.RVY:\r\n case DividendReinvestment.RV:\r\n return getLabel ? getLabel('c221DividendPartialLabel') : 'Partial';\r\n case DividendReinvestment.PD:\r\n case DividendReinvestment.RP0:\r\n return getLabel ? getLabel('c222DividendNoneLabel') : 'None';\r\n }\r\n}\r\n\r\nexport function getDividendPartialTypeLabel(\r\n planUpdate: PlanUpdate,\r\n getLabel: Translate,\r\n) {\r\n switch (planUpdate.reinvestmentOption) {\r\n case DividendReinvestment.RX:\r\n return `${getLabel('c231DividendPercentageLabel')} ${planUpdate.reinvestmentPercent}%`;\r\n case DividendReinvestment.RP:\r\n return `${getLabel('c232DividendQuantityOfSharesLabel')} ${planUpdate.reinvestmentValue}`;\r\n case DividendReinvestment.PS:\r\n return `${getLabel('c233DividendQuantityToCashLabel')} ${planUpdate.reinvestmentValue}`;\r\n case DividendReinvestment.RVY:\r\n return `${getLabel('c234DividendReinvestPlanSharesLabel')}`;\r\n }\r\n}\r\n\r\nexport function isNewUserManagingDividends(details: DividendDripDetails): boolean {\r\n return details.currentReinvestmentOption === DividendReinvestment.PD;\r\n}\r\n\r\nexport function isFullDividendsReinvestment(details: DividendDripDetails): boolean {\r\n return details.currentReinvestmentOption === DividendReinvestment.RD;\r\n}\r\n\r\nexport function isDividendManagementAllowed(details: DividendDripDetails): boolean {\r\n const {\r\n paymentOptions,\r\n checkAllowedSOL,\r\n allowDrip,\r\n allowDRIPEnrollmentOnline,\r\n reinvestmentOptionsAvailable,\r\n withdrawalTerminationIndicator,\r\n } = details;\r\n\r\n const hasOptions = !!paymentOptions && paymentOptions.length > 0;\r\n\r\n const otherFlags =\r\n allowDrip ||\r\n allowDRIPEnrollmentOnline ||\r\n (reinvestmentOptionsAvailable && withdrawalTerminationIndicator);\r\n\r\n const newValue = hasOptions || checkAllowedSOL || otherFlags;\r\n\r\n return newValue;\r\n}\r\n\r\n/**\r\n * Helper function to verify if Dividends Reinvestment is Allowed\r\n *\r\n * @param details\r\n *\r\n * @description\r\n * More about this function usage and influence in TFS bug #119125\r\n * TFS #89331 bug initially brought restrictions to flow\r\n */\r\nexport function isDividendsReinvestmentAllowed(details: DividendDripDetails): boolean {\r\n const {\r\n paymentOptions,\r\n allowDrip,\r\n allowDRIPEnrollmentOnline,\r\n reinvestmentOptionsAvailable,\r\n withdrawalTerminationIndicator,\r\n } = details;\r\n\r\n const hasOptions = !!paymentOptions && paymentOptions.length > 0;\r\n\r\n return (\r\n hasOptions &&\r\n allowDrip &&\r\n allowDRIPEnrollmentOnline &&\r\n (reinvestmentOptionsAvailable || withdrawalTerminationIndicator)\r\n );\r\n}\r\n\r\nfunction isCashOrSharesPartialReinvestmentType(formValues: DividendPlanFormValues) {\r\n const { partialReinvestmentType } = formValues;\r\n return (\r\n partialReinvestmentType &&\r\n (partialReinvestmentType === PartialReinvestmentType.Cash ||\r\n partialReinvestmentType === PartialReinvestmentType.Shares)\r\n );\r\n}\r\n\r\nfunction isPartialReinvestmentSelected(formValues: DividendPlanFormValues) {\r\n const { reinvestDividends, reinvestAllShares } = formValues;\r\n return isTrue(reinvestDividends) && (isFalse(reinvestAllShares) || !reinvestAllShares);\r\n}\r\n\r\nexport function isPartialReinvestmentWithZeroBalances(\r\n dripDetails: DividendDripDetails,\r\n formValues: DividendPlanFormValues,\r\n): boolean {\r\n if (!isPartialReinvestmentSelected(formValues)) {\r\n return false;\r\n }\r\n\r\n const { numberOfCertificateShares, numberOfDRSShares, numberOfPlanShares } = dripDetails;\r\n const noShares = !numberOfCertificateShares && !numberOfDRSShares;\r\n const noSharesAtAll = noShares || (noShares && !numberOfPlanShares);\r\n\r\n return !!(isCashOrSharesPartialReinvestmentType(formValues) && noSharesAtAll);\r\n}\r\n\r\nexport function isFormValid(fields: FormControlItem[], formProps: FormikProps) {\r\n const { values, errors } = formProps;\r\n\r\n return fields\r\n .filter((field) => (field.show ? field.show(values) : true))\r\n .every((field) => {\r\n const hasError = (errors as any)[field.formKey];\r\n return !hasError;\r\n });\r\n}\r\n\r\nexport function getField(fields: FormControlItem[], formKey: any) {\r\n return fields.find((field) => field.formKey === formKey) as FormControlItem;\r\n}\r\n\r\nexport function getSecondaryAddressRequestData(data: SecondaryAddress): NewSecondaryAddressDetails {\r\n const secondaryAddressResponse: NewSecondaryAddressDetails = {\r\n addressLines: [\r\n data.addressLine1,\r\n data.addressLine2,\r\n data.addressLine3,\r\n data.addressLine4,\r\n ].filter((l) => !!l.length),\r\n countryCode: data.countryCode,\r\n city: data.city,\r\n state: data.state || null,\r\n zipCode: {\r\n primary: data.zipCode,\r\n optional: data.zipCodeOptional || null,\r\n },\r\n };\r\n return secondaryAddressResponse;\r\n}\r\n\r\nexport function getSteps(cmsData: DividendCmsData): Step[] {\r\n return [\r\n { key: DividendStep.SelectCompany, label: cmsData.c10ScreenHeading },\r\n { key: DividendStep.Details, label: cmsData.c10DividendDetailsPageTitle },\r\n { key: DividendStep.Plan, label: cmsData.c10DividendStepPlanPageTitle },\r\n { key: DividendStep.Payment, label: cmsData.c10DividendStepPaymentPageTitle },\r\n { key: DividendStep.Confirm, label: cmsData.c10DividendStepConfirmPageTitle },\r\n { key: DividendStep.Summary, label: cmsData.c10DividendSummaryPageTitle },\r\n ];\r\n}\r\n\r\nexport const mapSteps = (steps: Step[], activeStep: string) => {\r\n const stepsInStepper = steps.filter((step) => !!step.label);\r\n const activeStepIndex = stepsInStepper.findIndex((step) => step.key === activeStep) + 1;\r\n const stepLabels = stepsInStepper.map((step) => step.label!);\r\n const showStepper = activeStepIndex > 0;\r\n\r\n return { stepLabels, activeStepIndex, showStepper };\r\n};\r\n\r\n// Workaround for lack of hooks from older redux package, TODO: replace when package is upgraded.\r\nexport const useSelector = (selector: any) => {\r\n const { store } = useContext(ReactReduxContext);\r\n const state = store.getState();\r\n return selector(state);\r\n};\r\n\r\n// Workaround for lack of hooks from older redux package, TODO: replace when package is upgraded.\r\nexport const useDispatch = () => {\r\n const { store } = useContext(ReactReduxContext);\r\n return store.dispatch;\r\n};\r\n","import { ApiValidationError } from '../../../lib/Form/Validation/validation.model';\r\nimport { createAction } from '../../../store/reduxBoilerplate';\r\nimport {\r\n DividendStep,\r\n ExternallyValidatedPaymentField,\r\n LoadDividendDetailsResponse,\r\n LoadSetupDetailsResponse,\r\n PersistedDividendForm,\r\n UpdateDividendRequest,\r\n ValidatePaymentFieldFormatResponse,\r\n} from './dividend.model';\r\n\r\nexport enum DividendsActionTypes {\r\n LOAD_DETAILS = '[Dividends] LOAD_DETAILS',\r\n LOAD_DETAILS_DONE = '[Dividends] LOAD_DETAILS_DONE',\r\n LOAD_DETAILS_FAIL = '[Dividends] LOAD_DETAILS_FAIL',\r\n\r\n LOAD_SETUP_DETAILS = '[Dividends] LOAD_SETUP_DETAILS',\r\n LOAD_SETUP_DETAILS_DONE = '[Dividends] LOAD_SETUP_DETAILS_DONE',\r\n LOAD_SETUP_DETAILS_FAIL = '[Dividends] LOAD_SETUP_DETAILS_FAIL',\r\n\r\n VALIDATE_PAYMENT_FIELD_FORMAT = '[Dividends] VALIDATE_PAYMENT_FIELD_FORMAT',\r\n VALIDATE_PAYMENT_FIELD_FORMAT_DONE = '[Dividends] VALIDATE_PAYMENT_FIELD_FORMAT_DONE',\r\n VALIDATE_PAYMENT_FIELD_FORMAT_FAIL = '[Dividends] VALIDATE_PAYMENT_FIELD_FORMAT_FAIL',\r\n\r\n SET_ACTIVE_STEP = '[Dividends] SET_ACTIVE_STEP',\r\n SET_PAYMENT_SKIPPED = '[Dividends] SET_PAYMENT_SKIPPED',\r\n\r\n SET_PERSISTED_FORM_VALID_STATUS = '[Dividends] SET_PERSISTED_FORM_VALID_STATUS',\r\n\r\n SECONDARY_ADDRESS_GET_PREVIEW = '[Dividends] SECONDARY_ADDRESS_GET_PREVIEW',\r\n SECONDARY_ADDRESS_UPDATE_PREVIEW = '[Dividends] SECONDARY_ADDRESS_UPDATE_PREVIEW',\r\n SECONDARY_ADDRESS_SET_INQUIRY = '[Dividends] SECONDARY_ADDRESS_SET_INQUIRY',\r\n\r\n DIVIDENDS_UPDATE_SET_INQUIRY = '[Dividends] DIVIDENDS_UPDATE_SET_INQUIRY',\r\n\r\n UPDATE = '[Dividends] UPDATE',\r\n UPDATE_DONE = '[Dividends] UPDATE_DONE',\r\n UPDATE_FAIL = '[Dividends] UPDATE_FAIL',\r\n\r\n RESET = '[Dividends] RESET',\r\n}\r\n\r\nconst AT = DividendsActionTypes;\r\n\r\nexport const dividendSecondaryAddressActions = {\r\n getPreview: (accountNumber: string) =>\r\n createAction(AT.SECONDARY_ADDRESS_GET_PREVIEW, accountNumber),\r\n updatePreview: (payload: string[]) => createAction(AT.SECONDARY_ADDRESS_UPDATE_PREVIEW, payload),\r\n};\r\n\r\nexport const dividendActions = {\r\n loadDetails: (issueNumber: string, accountNumber: number) =>\r\n createAction(AT.LOAD_DETAILS, { issueNumber, accountNumber }),\r\n\r\n loadDetailsDone: (dripDetails: LoadDividendDetailsResponse) =>\r\n createAction(AT.LOAD_DETAILS_DONE, { dripDetails }),\r\n\r\n loadDetailsFail: () => createAction(AT.LOAD_DETAILS_FAIL),\r\n\r\n loadSetupDetails: (userRegionCode: string) =>\r\n createAction(AT.LOAD_SETUP_DETAILS, { userRegionCode }),\r\n\r\n loadSetupDetailsDone: (setupDetails: LoadSetupDetailsResponse) =>\r\n createAction(AT.LOAD_SETUP_DETAILS_DONE, { setupDetails }),\r\n\r\n loadSetupDetailsFail: () => createAction(AT.LOAD_SETUP_DETAILS_FAIL),\r\n\r\n validatePaymentFieldFormat: (\r\n field: ExternallyValidatedPaymentField,\r\n value: string,\r\n format: string,\r\n updateFn: (value: string) => void,\r\n setErrorFn: (field: ExternallyValidatedPaymentField) => void,\r\n ) =>\r\n createAction(AT.VALIDATE_PAYMENT_FIELD_FORMAT, { field, value, format, updateFn, setErrorFn }),\r\n\r\n validatePaymentFieldFormatDone: (\r\n field: ExternallyValidatedPaymentField,\r\n result: ValidatePaymentFieldFormatResponse,\r\n ) => createAction(AT.VALIDATE_PAYMENT_FIELD_FORMAT_DONE, { field, result }),\r\n\r\n validatePaymentFieldFormatFail: (field: ExternallyValidatedPaymentField) =>\r\n createAction(AT.VALIDATE_PAYMENT_FIELD_FORMAT_FAIL, { field }),\r\n\r\n setActiveStep: (step: DividendStep) => createAction(AT.SET_ACTIVE_STEP, { step }),\r\n setPaymentSkipped: (skipped: boolean) => createAction(AT.SET_PAYMENT_SKIPPED, { skipped }),\r\n\r\n setPersistedFormValidStatus: (key: PersistedDividendForm, valid: boolean) =>\r\n createAction(AT.SET_PERSISTED_FORM_VALID_STATUS, { key, valid }),\r\n\r\n setSecondaryAddressInquiryMode: (inquiryMode: boolean) =>\r\n createAction(AT.SECONDARY_ADDRESS_SET_INQUIRY, { inquiryMode }),\r\n\r\n setUpdateDividendsInquiryMode: (inquiryMode: boolean) =>\r\n createAction(AT.DIVIDENDS_UPDATE_SET_INQUIRY, { inquiryMode }),\r\n\r\n update: (issueNumber: string, accountNumber: number) =>\r\n createAction(AT.UPDATE, { issueNumber, accountNumber }),\r\n\r\n updateDone: (requestData: UpdateDividendRequest) => createAction(AT.UPDATE_DONE, { requestData }),\r\n\r\n updateFail: (errors?: ApiValidationError[]) => createAction(AT.UPDATE_FAIL, { errors }),\r\n\r\n resetDetails: () => createAction(AT.RESET),\r\n};\r\n","import React from 'react';\r\nimport { FieldProps } from 'formik';\r\nimport { styled, Theme } from '../../../style/theme/themeModule';\r\nimport { Input } from '../Input';\r\nimport { withValidation, WithValidationProps } from '../Validation/WithValidation';\r\nimport { ChoiceGroupOption } from './RadioGroup';\r\n\r\nexport interface RadioButtonStyle {\r\n inputStyle?: 'circle';\r\n}\r\n\r\ninterface OwnProps extends RadioButtonStyle {\r\n option: ChoiceGroupOption;\r\n id?: string;\r\n className?: string;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface OwnState {\r\n focused: boolean;\r\n}\r\n\r\ntype Props = (FieldProps) & OwnProps & (WithValidationProps);\r\n\r\nclass Component extends React.Component {\r\n state: OwnState = {\r\n focused: false,\r\n };\r\n\r\n onFocus = () => {\r\n this.setState({ focused: true });\r\n };\r\n\r\n onBlur = () => {\r\n this.setState({ focused: false });\r\n };\r\n\r\n render() {\r\n const {\r\n option,\r\n field,\r\n id,\r\n className,\r\n disabled,\r\n hasError,\r\n inputStyle,\r\n ...restProps\r\n } = this.props;\r\n\r\n const { value } = restProps as any;\r\n const idValue = `radio-${field.name}-${value}-id`;\r\n const idLabelValue = `radio-label-${field.name}-${value}-id`;\r\n const active = String(option.key) === field.value;\r\n\r\n // Note: so far used only in one place: src\\pages\\EmailAddressMismatch\\EmailAddress\\EmailAddress.tsx\r\n if (inputStyle && inputStyle === 'circle') {\r\n return (\r\n \r\n \r\n {option.value}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {option.value}\r\n {/* If I move RadioButtonValue inside of RadioButtonLabel it works OK - no accessibility warnings */}\r\n {/* But then need to change CSS around component, and it looks complicated for now. */}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport const RadioButton = withValidation(Component);\r\n\r\nexport interface ContainerProps extends Theme {\r\n active?: boolean;\r\n focused?: boolean;\r\n hasError?: boolean;\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const Container = styled.div`\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 38px;\r\n margin-left: -1px;\r\n padding: 0 20px;\r\n overflow: hidden;\r\n transition: all 0.15s ease-in-out;\r\n\r\n ${(p: ContainerProps) => `border-radius: ${p.theme.button.borderRadius}px;`}\r\n\r\n ${(p: ContainerProps) => p.theme.media.tablet.andUp} {\r\n min-width: 200px;\r\n }\r\n\r\n ${(p: ContainerProps) => p.theme.media.desktop.andUp} {\r\n min-width: 275px;\r\n }\r\n\r\n border: 1px solid ${(p: ContainerProps) => p.theme.colors.primary3};\r\n background: ${(p) => p.theme.colors.white};\r\n color: ${(p) => p.theme.colors.body};\r\n\r\n & {\r\n ${(p: ContainerProps) =>\r\n p.active && `background: ${p.theme.colors.primary4}; color: ${p.theme.colors.white}`};\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2), 0 1px 3px 0 rgba(0, 0, 0, 0.1);\r\n }\r\n\r\n && {\r\n ${(p: ContainerProps) => p.hasError && `border-color: ${p.theme.colors.error};`}\r\n\r\n ${(p: ContainerProps) => p.disabled && `opacity: 0.5;`}\r\n\r\n &:focus {\r\n box-shadow: none;\r\n }\r\n\r\n ${(p: ContainerProps) =>\r\n p.focused && `border-color: ${p.theme.input.focusColor}; box-shadow: none;`}\r\n }\r\n`;\r\n\r\n// TODO - refactor considering CheckBox instances. This component imported also in ./DefaultRadioButton.tsx\r\nexport const RadioButtonValue = styled.span`\r\n display: block;\r\n text-align: center;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n /* margin-top: 8px; I can add space on top but after click it changes. TODO - research more. */\r\n`;\r\n\r\n// TODO - refactor considering CheckBox instances. This component imported also in ./DefaultRadioButton.tsx\r\nexport const RadioButtonLabel = styled.label`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n margin: 0;\r\n z-index: 9;\r\n cursor: pointer;\r\n\r\n input {\r\n opacity: 0;\r\n }\r\n`;\r\n\r\n// TODO when refactoring above components consider these notes:\r\n// - Usage of lib/Form/Label for helps to fix Accessibility but breaks RadioButton design layout.\r\n// - I tried to re-work using proper HTML structure but it requires more refactoring and testing.\r\n\r\nexport const CircleRadioButtonLabel = styled.label`\r\n position: relative;\r\n display: block;\r\n padding-left: 30px;\r\n padding-right: 5px;\r\n\r\n input {\r\n height: 20px;\r\n width: 20px;\r\n margin: 0;\r\n left: 0;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n }\r\n`;\r\n","import { FormikValues } from 'formik';\r\nimport { object, reach, string } from 'yup';\r\nimport {\r\n CmsDataPage,\r\n DividendCmsData,\r\n Translate,\r\n AccountSettingsCmsData,\r\n} from '../../../../../containers/CmsData/store/cmsData.model';\r\nimport { logWarning } from '../../../../../helpers/logging';\r\nimport { FormControlItem } from '../../../../../lib/Form/DynamicForm';\r\nimport { isTrue, match, isFalse } from '../../../../../lib/Form/Validation/validation.utils';\r\nimport {\r\n BankAccountType,\r\n PaymentMethodType,\r\n} from '../../../../../shared/DataStructures/BankAccount';\r\nimport { AddressCountry } from '../../../../AccountSettings/Address/AddressForm';\r\nimport { SpecialCountries } from '../../../../AccountSettings/shared/accountSettings.enums';\r\nimport {\r\n DividendDripDetails,\r\n DividendStep,\r\n ExternallyValidatedPaymentField,\r\n ExternallyValidatedPaymentFieldConfig,\r\n ExternallyValidatedPaymentFields,\r\n InternationalACHSetupDetails,\r\n PaymentMethod,\r\n} from '../../../store/dividend.model';\r\nimport { DividendDetailsFormValues } from '../../Details/DividendDetailsForm';\r\nimport { getDividendDetailsNextStep } from '../../Details/helpers/dividendDetailsForm.utils';\r\nimport { DIVIDEND_PAYMENT_FORM_KEYS as FORM_KEYS } from './dividendPaymentForm.constants';\r\nimport { DividendPaymentFormValues, SecondaryAddressFormAction } from './dividendPaymentForm.model';\r\nimport { getWireTransferPaymentFormValidationSchemaDefinition } from '../../../../../lib/FormPremades/WireTransferPayment/WireTransferPaymentFormValidation';\r\nimport { FormBoolean } from '../../../../../lib/Form/Validation/validation.model';\r\nimport { showIBAN } from './dividendPaymentForm.builder';\r\nimport { NewBankAccount } from '../../../../Shares/Sell/models';\r\nimport { BeneficiaryDetails } from '../../../../Shares/Sell/Steps/ConfirmationStep/api.models';\r\nimport { WireTransferCountryConfig } from '../../../../../lib/FormPremades/WireTransferPayment';\r\nimport { isIssueOfferOnlyFullReinvestment } from '../../Plan/helpers/dividendPlanForm.utils';\r\nimport { isNewUserManagingDividends } from '../../../store/dividend.utils';\r\n\r\nconst bankAccountNumberRegex = /^[\\d]{1,17}$/;\r\nconst bankNameRegex = /^[a-zA-Z0-9\\s\\-.&,'()"]{1,20}$/;\r\nconst abaRoutingNumberRegex = new RegExp('[0-3][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]');\r\nconst usZipCodeRegex = new RegExp('^[0-9]{5}$');\r\nconst usZipCodeOptionalMinLengthRegex = new RegExp('.{4}$');\r\nconst usZipCodeOptionalRegex = new RegExp('^[0-9]{1,4}$');\r\nconst canadaPostalCodeRegex = new RegExp(\r\n '^[abceghjklmnprstvxyABCEGHJKLMNPRSTVXY][0-9][abceghjklmnprstvwxyzABCEGHJKLMNPRSTVWXYZ] [0-9][abceghjklmnprstvwxyzABCEGHJKLMNPRSTVWXYZ][0-9]$',\r\n);\r\nconst worldZipCodeRegex = new RegExp('^[a-zA-Z0-9]{1,10}$');\r\nconst cityStateRegex = new RegExp('^[a-zA-Z0-9 ]+$');\r\nconst addressLineRegex = new RegExp('^[a-zA-Z0-9-/ ]+$');\r\n\r\nexport function getDividendPaymentFormDefaultValues(\r\n details: DividendDripDetails,\r\n): DividendPaymentFormValues {\r\n return {\r\n paymentMethod: '' as PaymentMethod,\r\n paymentMethodType: '' as PaymentMethodType,\r\n createNewAccount: details.currentBankAccount ? 'false' : '',\r\n bankAccountNumber: getBankAccountNumber(details),\r\n\r\n newDirectDepositUSBankAccountNumber: '',\r\n newDirectDepositUSBankName: '',\r\n newDirectDepositUSRoutingNumber: '',\r\n newDirectDepositUSBankAccountType: '' as BankAccountType,\r\n\r\n newDirectDepositINTBankCountry: '',\r\n newDirectDepositINTBankAccountNumber: '',\r\n newDirectDepositINTIBAN: '',\r\n newDirectDepositINTRoutingNumber: '',\r\n newDirectDepositINTSwiftBicCode: '',\r\n newDirectDepositINTBankName: '',\r\n newDirectDepositINTBankCity: '',\r\n\r\n useSecondaryAddress: '',\r\n secondaryAddressFormAction: '',\r\n secondaryAddress: {\r\n countryCode: '',\r\n addressLine1: '',\r\n addressLine2: '',\r\n addressLine3: '',\r\n addressLine4: '',\r\n city: '',\r\n state: '',\r\n zipCode: '',\r\n zipCodeOptional: '',\r\n },\r\n\r\n wireTransferData: {\r\n currency: '',\r\n bankAccountNumber: '',\r\n bankAccountType: BankAccountType.None,\r\n bankCountryCode: '',\r\n bankCity: '',\r\n bankName: '',\r\n bankSwiftBicCode: '',\r\n bankInternationalRoutingCode: '',\r\n beneficiaryAddress1: '',\r\n beneficiaryAddress2: '',\r\n beneficiaryCity: '',\r\n beneficiaryCountry: '',\r\n beneficiaryEmailAddress: '',\r\n beneficiaryName: '',\r\n beneficiaryStateProvince: '',\r\n beneficiaryTaxID: '',\r\n beneficiaryTelephoneNumber: '',\r\n },\r\n };\r\n}\r\n\r\nexport function getDividendPaymentFormValidationSchema(\r\n cmsLabel: (id: string) => string,\r\n secondaryAddress: string[],\r\n dripDetails: DividendDripDetails,\r\n wireTransferCountries: WireTransferCountryConfig[],\r\n setupDetails?: InternationalACHSetupDetails[],\r\n countries?: AddressCountry[],\r\n) {\r\n const getLabel: Translate = (key) => cmsLabel(`${CmsDataPage.Dividend}.${key}`);\r\n\r\n const getReinvestDividendsSchema = () => {\r\n const { reinvestmentOptions } = dripDetails;\r\n const issueOfferOnlyFullReinvestment = isIssueOfferOnlyFullReinvestment(reinvestmentOptions);\r\n const newUserManagingDividends = isNewUserManagingDividends(dripDetails);\r\n\r\n if (\r\n !issueOfferOnlyFullReinvestment ||\r\n (issueOfferOnlyFullReinvestment && newUserManagingDividends)\r\n ) {\r\n return string().required(getLabel('e1064DividendReinvestmentChoiceNotSelected'));\r\n }\r\n\r\n return string().notRequired();\r\n };\r\n\r\n return object().shape({\r\n [FORM_KEYS.paymentMethod]: getReinvestDividendsSchema(),\r\n ...directDepositValidationScheme(getLabel, dripDetails, setupDetails),\r\n ...checkValidationScheme(cmsLabel, secondaryAddress, countries),\r\n ...wireTransferValidationScheme(wireTransferCountries, getLabel),\r\n });\r\n}\r\n\r\nconst isUsaDirectDeposit = (method: PaymentMethod, type: PaymentMethodType) => {\r\n return method === PaymentMethod.DirectDeposit && type === PaymentMethodType.US;\r\n};\r\n\r\nconst isUsaDirectDepositConsideringNewAccount = (\r\n method: PaymentMethod,\r\n type: PaymentMethodType,\r\n createNewAccount: FormBoolean,\r\n dripDetails: DividendDripDetails,\r\n) => {\r\n const isUsDirectDeposit = isUsaDirectDeposit(method, type);\r\n\r\n // If createNewAccount is either string value 'true' or 'false' we check for \"truthy\" value.\r\n // Because we ned to avoid undefined and '' (empty) value.\r\n // TODO research if we really need \"string\" to really on when we have boolean-like flaks from backend.\r\n if (!!createNewAccount) {\r\n return isUsDirectDeposit && (isTrue(createNewAccount) || !hasUSAccount(dripDetails));\r\n }\r\n return isUsDirectDeposit;\r\n};\r\n\r\nconst isInternationalDirectDeposit = (method: PaymentMethod, type: PaymentMethodType) =>\r\n method === PaymentMethod.DirectDeposit && type === PaymentMethodType.International;\r\n\r\nfunction directDepositValidationScheme(\r\n getLabel: Translate,\r\n dripDetails: DividendDripDetails,\r\n setupDetails?: InternationalACHSetupDetails[],\r\n) {\r\n return {\r\n [FORM_KEYS.paymentMethodType]: string().when([FORM_KEYS.paymentMethod], {\r\n is: (val: PaymentMethod) => val === PaymentMethod.DirectDeposit,\r\n then: string().required(),\r\n else: string().notRequired(),\r\n }),\r\n [FORM_KEYS.newDirectDepositUSBankAccountNumber]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType, FORM_KEYS.createNewAccount],\r\n {\r\n is: (method, type, createNewAcc) =>\r\n isUsaDirectDepositConsideringNewAccount(method, type, createNewAcc, dripDetails),\r\n then: string()\r\n .required(getLabel('e1067BankAccountNumberRequired'))\r\n .max(17, getLabel('e1077AuthenticateUSBankAccountNumberFormat'))\r\n .matches(bankAccountNumberRegex, {\r\n excludeEmptyString: true,\r\n message: getLabel('e1077AuthenticateUSBankAccountNumberFormat'),\r\n }),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositUSBankName]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType, FORM_KEYS.createNewAccount],\r\n {\r\n is: (method, type, createNewAcc) =>\r\n isUsaDirectDepositConsideringNewAccount(method, type, createNewAcc, dripDetails),\r\n then: string()\r\n .required(getLabel('e1068BankAccountNameRequired'))\r\n .max(20, getLabel('e1078AuthenticateBankNameFormat'))\r\n .matches(bankNameRegex, {\r\n excludeEmptyString: true,\r\n message: getLabel('e1078AuthenticateBankNameFormat'),\r\n }),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositUSRoutingNumber]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType, FORM_KEYS.createNewAccount],\r\n {\r\n is: (method, type, createNewAcc) =>\r\n isUsaDirectDepositConsideringNewAccount(method, type, createNewAcc, dripDetails),\r\n then: string()\r\n .required(getLabel('e1069RoutingNumberRequired'))\r\n .max(9, getLabel('e1079AuthenticateRoutingNumberFormat'))\r\n .matches(abaRoutingNumberRegex, {\r\n excludeEmptyString: true,\r\n message: getLabel('e1079AuthenticateRoutingNumberFormat'),\r\n }),\r\n else: string().notRequired,\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositUSBankAccountType]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType, FORM_KEYS.createNewAccount],\r\n {\r\n is: (method, type, createNewAcc) =>\r\n isUsaDirectDepositConsideringNewAccount(method, type, createNewAcc, dripDetails),\r\n then: string().required(getLabel('e1070SelectAccountTypeRequired')),\r\n else: string(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositINTBankCountry]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType],\r\n {\r\n is: isInternationalDirectDeposit,\r\n then: string().required(getLabel('e1071SelectCountryRequired')),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositINTBankAccountNumber]: string().when(\r\n [\r\n FORM_KEYS.paymentMethod,\r\n FORM_KEYS.paymentMethodType,\r\n FORM_KEYS.newDirectDepositINTBankCountry,\r\n ],\r\n {\r\n is: (method: PaymentMethod, type: PaymentMethodType, country: string) => {\r\n return isInternationalDirectDeposit(method, type) && !showIBAN(country, setupDetails);\r\n },\r\n then: string().required(getLabel('e1067BankAccountNumberRequired')),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositINTIBAN]: string().when(\r\n [\r\n FORM_KEYS.paymentMethod,\r\n FORM_KEYS.paymentMethodType,\r\n FORM_KEYS.newDirectDepositINTBankCountry,\r\n ],\r\n {\r\n is: (method: PaymentMethod, type: PaymentMethodType, country: string) => {\r\n return isInternationalDirectDeposit(method, type) && showIBAN(country, setupDetails);\r\n },\r\n then: string().required(getLabel('e1072IBANnumberRequired')),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositINTRoutingNumber]: string().when(\r\n [\r\n FORM_KEYS.paymentMethod,\r\n FORM_KEYS.paymentMethodType,\r\n FORM_KEYS.newDirectDepositINTBankCountry,\r\n ],\r\n {\r\n is: (method: PaymentMethod, type: PaymentMethodType, country: string) => {\r\n return isInternationalDirectDeposit(method, type) && !showIBAN(country, setupDetails);\r\n },\r\n then: string().required(getLabel('e1073RoutingNumberRequired')),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositINTSwiftBicCode]: string().when(\r\n [\r\n FORM_KEYS.paymentMethod,\r\n FORM_KEYS.paymentMethodType,\r\n FORM_KEYS.newDirectDepositINTBankCountry,\r\n ],\r\n {\r\n is: (method: PaymentMethod, type: PaymentMethodType, country: string) => {\r\n return isInternationalDirectDeposit(method, type) && showIBAN(country, setupDetails);\r\n },\r\n then: string().required(getLabel('e1074SWIFTrequired')),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositINTBankName]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType],\r\n {\r\n is: isInternationalDirectDeposit,\r\n then: string()\r\n .required(getLabel('e1068BankAccountNameRequired'))\r\n .max(50, getLabel('e1084SWIFTallowedFormat'))\r\n .matches(/^[a-zA-Z\\d\\s\\- .&,'()"]{1,50}$/, {\r\n excludeEmptyString: true,\r\n message: getLabel('e1084SWIFTallowedFormat'),\r\n }),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.newDirectDepositINTBankCity]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType],\r\n {\r\n is: isInternationalDirectDeposit,\r\n then: string()\r\n .required(getLabel('e1075BankCityRequired'))\r\n .max(20, getLabel('e1085BankCityAllowedFormat'))\r\n .test(match(/^[a-zA-Z\\d\\s]{1,20}$/, getLabel('e1085BankCityAllowedFormat'))),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.createNewAccount]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType],\r\n {\r\n is: (method: PaymentMethod, type: PaymentMethodType) =>\r\n isUsaDirectDeposit(method, type) && hasUSAccount(dripDetails),\r\n then: string().required(),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n [FORM_KEYS.bankAccountNumber]: string().when(\r\n [FORM_KEYS.paymentMethod, FORM_KEYS.paymentMethodType, FORM_KEYS.createNewAccount],\r\n {\r\n is: (method: PaymentMethod, type: PaymentMethodType, newAccount: FormBoolean) =>\r\n isUsaDirectDeposit(method, type) && hasUSAccount(dripDetails) && isFalse(newAccount),\r\n // Here might be same issue with newAccount. TODO in future - test and fix if needed.\r\n then: string().required(getLabel('e1067BankAccountNumberRequired')),\r\n else: string().notRequired(),\r\n },\r\n ),\r\n };\r\n}\r\n\r\nfunction checkValidationScheme(\r\n cmsLabel: (id: string) => string,\r\n secondaryAddress: string[],\r\n countries?: AddressCountry[],\r\n) {\r\n return {\r\n [FORM_KEYS.useSecondaryAddress]: string().when([FORM_KEYS.paymentMethod], {\r\n is: (val: PaymentMethod) => val === PaymentMethod.Check && !secondaryAddress.length,\r\n then: string().required(),\r\n else: string().notRequired(),\r\n }),\r\n [FORM_KEYS.secondaryAddressFormAction]: string().when([FORM_KEYS.paymentMethod], {\r\n is: (val: PaymentMethod) => val === PaymentMethod.Check && !!secondaryAddress.length,\r\n then: string().required(),\r\n else: string().notRequired(),\r\n }),\r\n [FORM_KEYS.secondaryAddressData]: object().when(\r\n [FORM_KEYS.useSecondaryAddress, FORM_KEYS.secondaryAddressFormAction],\r\n {\r\n is: (newAddress: FormBoolean, addressActions: SecondaryAddressFormAction) =>\r\n isTrue(newAddress) || addressActions === SecondaryAddressFormAction.Change,\r\n then: object().shape({\r\n ...secondaryAddressValidation(cmsLabel, countries),\r\n }),\r\n },\r\n ),\r\n };\r\n}\r\n\r\nfunction wireTransferValidationScheme(\r\n wireTransferCountries: WireTransferCountryConfig[],\r\n _t: Translate,\r\n) {\r\n return {\r\n [FORM_KEYS.wireTransferData]: object().when([FORM_KEYS.paymentMethod], {\r\n is: (val: PaymentMethod) => val === PaymentMethod.WireTransfer,\r\n then: object().shape({\r\n ...getWireTransferPaymentFormValidationSchemaDefinition(\r\n mapWireTransferValidationLabels(_t),\r\n wireTransferCountries,\r\n ),\r\n }),\r\n }),\r\n };\r\n}\r\n\r\nconst secondaryAddressValidation = (\r\n cmsLabel: (id: string) => string,\r\n countries?: AddressCountry[],\r\n) => {\r\n const getDividendsLabel: Translate = (key) =>\r\n cmsLabel(`${CmsDataPage.Dividend}.${key}`);\r\n const getAccSettingsLabel: Translate = (key) =>\r\n cmsLabel(`${CmsDataPage.AccountSettings}.${key}`);\r\n let zipNotPostal = false;\r\n\r\n return {\r\n [FORM_KEYS.secondaryAddress.countryCode]: string()\r\n .default(null)\r\n .required(getDividendsLabel('e1123CountryRequired')),\r\n [FORM_KEYS.secondaryAddress.addressLine1]: string()\r\n .max(39, getAccSettingsLabel(`e1573TooLong`))\r\n .matches(addressLineRegex, {\r\n message: getDividendsLabel('e1136AddressLineInvalid'),\r\n excludeEmptyString: true,\r\n })\r\n .required(getDividendsLabel('e1135AddressLine1Blank')),\r\n [FORM_KEYS.secondaryAddress.addressLine2]: string()\r\n .max(39, getAccSettingsLabel(`e1573TooLong`))\r\n .matches(addressLineRegex, {\r\n message: getDividendsLabel('e1136AddressLineInvalid'),\r\n excludeEmptyString: true,\r\n }),\r\n [FORM_KEYS.secondaryAddress.addressLine3]: string()\r\n .max(39, getAccSettingsLabel(`e1573TooLong`))\r\n .matches(addressLineRegex, {\r\n message: getDividendsLabel('e1136AddressLineInvalid'),\r\n excludeEmptyString: true,\r\n }),\r\n [FORM_KEYS.secondaryAddress.addressLine4]: string()\r\n .max(39, getAccSettingsLabel(`e1573TooLong`))\r\n .matches(addressLineRegex, {\r\n message: getDividendsLabel('e1136AddressLineInvalid'),\r\n excludeEmptyString: true,\r\n }),\r\n [FORM_KEYS.secondaryAddress.city]: string()\r\n .max(14, getAccSettingsLabel(`e1573TooLong`))\r\n .when(FORM_KEYS.secondaryAddress.countryCode, {\r\n is: (val: string) => val === SpecialCountries.CANADA || val === SpecialCountries.USA,\r\n then: string().max(25, getAccSettingsLabel(`e1573TooLong`)),\r\n })\r\n .matches(cityStateRegex, {\r\n message: getDividendsLabel('e1141CityInvalid'),\r\n excludeEmptyString: true,\r\n })\r\n .required(getDividendsLabel('e1137CityRequired')),\r\n [FORM_KEYS.secondaryAddress.state]: string()\r\n .matches(cityStateRegex, {\r\n message: getDividendsLabel('e1142StateProvinceInvalid'),\r\n excludeEmptyString: true,\r\n })\r\n .max(14, getAccSettingsLabel(`e1573TooLong`))\r\n .when(FORM_KEYS.secondaryAddress.countryCode, {\r\n is: (val: string) => val === SpecialCountries.CANADA || val === SpecialCountries.USA,\r\n then: string().required(getDividendsLabel('e1140StateProvinceRequired')),\r\n otherwise: string().notRequired(),\r\n }),\r\n [FORM_KEYS.secondaryAddress.zipCode]: string()\r\n .max(10, getAccSettingsLabel(`e1573TooLong`))\r\n .when(FORM_KEYS.secondaryAddress.countryCode, {\r\n is: (val: string) => {\r\n if (val === SpecialCountries.USA) {\r\n zipNotPostal = true;\r\n return true;\r\n }\r\n if (!countries) {\r\n return false;\r\n }\r\n const selectedCountry = countries.find((c) => c.value === val);\r\n return !!selectedCountry ? selectedCountry.isPostalCodeMandatory : false;\r\n },\r\n then: () =>\r\n string()\r\n .min(4, getAccSettingsLabel(`e1572TooShort`))\r\n .required(\r\n getDividendsLabel(zipNotPostal ? 'e1145ZipCodeRequired' : 'e1143PostalCodeRequired'),\r\n ),\r\n otherwise: string().notRequired(),\r\n })\r\n .when(FORM_KEYS.secondaryAddress.countryCode, {\r\n is: (val: string) => val === SpecialCountries.USA,\r\n then: string().matches(usZipCodeRegex, getDividendsLabel('e1146ZipCodeInvalid')),\r\n })\r\n .when(FORM_KEYS.secondaryAddress.countryCode, {\r\n is: (val: string) => val === SpecialCountries.CANADA,\r\n then: string().matches(canadaPostalCodeRegex, getDividendsLabel('e1144PostalCodeInvalid')),\r\n })\r\n .when(FORM_KEYS.secondaryAddress.countryCode, {\r\n is: (val: string) => val !== SpecialCountries.USA && val !== SpecialCountries.CANADA,\r\n then: string().matches(worldZipCodeRegex, {\r\n message: getDividendsLabel('e1144PostalCodeInvalid'),\r\n excludeEmptyString: true,\r\n }),\r\n }),\r\n [FORM_KEYS.secondaryAddress.zipCodeOptional]: string()\r\n .nullable()\r\n .max(4, getAccSettingsLabel(`e1573TooLong`))\r\n .matches(usZipCodeOptionalMinLengthRegex, {\r\n message: getAccSettingsLabel(`e1572TooShort`),\r\n excludeEmptyString: true,\r\n })\r\n .matches(usZipCodeOptionalRegex, {\r\n message: getDividendsLabel('e1146ZipCodeInvalid'),\r\n excludeEmptyString: true,\r\n }),\r\n };\r\n};\r\n\r\nexport const showBankAccountFields = {\r\n newDirectDepositUS: (values: DividendPaymentFormValues, dripDetails: DividendDripDetails) => {\r\n if (!values) {\r\n return false;\r\n }\r\n return (\r\n values.paymentMethod === PaymentMethod.DirectDeposit &&\r\n values.paymentMethodType === PaymentMethodType.US &&\r\n (!hasUSAccount(dripDetails) || isTrue(values.createNewAccount))\r\n );\r\n },\r\n newDirectDepositInt: (values: DividendPaymentFormValues) => {\r\n if (!values) {\r\n return false;\r\n }\r\n return (\r\n values.paymentMethod === PaymentMethod.DirectDeposit &&\r\n values.paymentMethodType === PaymentMethodType.International\r\n );\r\n },\r\n newWireTransfer: (values: DividendPaymentFormValues) => {\r\n if (!values) {\r\n return false;\r\n }\r\n return values.paymentMethod === PaymentMethod.WireTransfer;\r\n },\r\n};\r\n\r\nexport function hasUSAccount(dripDetails: DividendDripDetails) {\r\n return (\r\n !!dripDetails.currentBankAccount &&\r\n !!dripDetails.currentBankAccount.bankAccountNumber &&\r\n !!dripDetails.usBankAccounts &&\r\n !!dripDetails.usBankAccounts.length\r\n );\r\n}\r\n\r\nexport function isFieldExternallyValidated(formKey: string) {\r\n const validatedKeys = Object.keys(ExternallyValidatedPaymentField).map(\r\n (key) => ExternallyValidatedPaymentField[key as any], // why has this been cast to any?\r\n );\r\n return validatedKeys.includes(formKey);\r\n}\r\n\r\nexport function getExternallyValidatedFieldConfig(\r\n externallyValidatedPaymentFields: ExternallyValidatedPaymentFields,\r\n formKey: string,\r\n) {\r\n return ((externallyValidatedPaymentFields as any)[formKey] ||\r\n {}) as ExternallyValidatedPaymentFieldConfig;\r\n}\r\n\r\nexport function getExternallyValidatedFieldValidationFormat(\r\n selectedSetupDetails: InternationalACHSetupDetails,\r\n field: ExternallyValidatedPaymentField,\r\n) {\r\n switch (field) {\r\n case ExternallyValidatedPaymentField.NewDirectDepositINTBankAccountNumber:\r\n case ExternallyValidatedPaymentField.NewDirectDepositINTIBAN:\r\n return selectedSetupDetails.accountNumberFormat;\r\n default:\r\n return selectedSetupDetails.bankCodeFormat;\r\n }\r\n}\r\n\r\nexport function getExternallyValidatedFieldValidationError(\r\n field: ExternallyValidatedPaymentField,\r\n cmsLabel: (id: string) => string,\r\n) {\r\n switch (field) {\r\n case ExternallyValidatedPaymentField.NewDirectDepositINTBankAccountNumber:\r\n return cmsLabel('dividends.e1080AuthenticateBankAccountNumberFormat');\r\n case ExternallyValidatedPaymentField.NewDirectDepositINTIBAN:\r\n return cmsLabel('dividends.e1081BankAccountNumberIncorrectFormat');\r\n case ExternallyValidatedPaymentField.NewDirectDepositINTRoutingNumber:\r\n return cmsLabel('dividends.e1082AuthenticateRoutingNumberFormat');\r\n case ExternallyValidatedPaymentField.NewDirectDepositINTSwiftBicCode:\r\n return cmsLabel('dividends.e1083SWIFTIncorrectFormat');\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nexport function getBeneficiaryBankSwiftCode(paymentFormValues: DividendPaymentFormValues) {\r\n if (showBankAccountFields.newWireTransfer(paymentFormValues)) {\r\n return paymentFormValues.wireTransferData.bankSwiftBicCode;\r\n }\r\n\r\n if (showBankAccountFields.newDirectDepositInt(paymentFormValues)) {\r\n return paymentFormValues.newDirectDepositINTSwiftBicCode;\r\n }\r\n\r\n return;\r\n}\r\n\r\nexport function getInternationalRoutingCode(paymentFormValues: DividendPaymentFormValues) {\r\n if (showBankAccountFields.newWireTransfer(paymentFormValues)) {\r\n return paymentFormValues.wireTransferData.bankInternationalRoutingCode;\r\n }\r\n\r\n return;\r\n}\r\n\r\nexport function getBeneficiaryBankDetails(\r\n paymentFormValues: DividendPaymentFormValues,\r\n): BeneficiaryDetails | undefined {\r\n if (!showBankAccountFields.newWireTransfer(paymentFormValues)) {\r\n return;\r\n }\r\n\r\n const { wireTransferData } = paymentFormValues;\r\n\r\n return {\r\n name: wireTransferData.beneficiaryName,\r\n addressLine1: wireTransferData.beneficiaryAddress1,\r\n addressLine2: wireTransferData.beneficiaryAddress2,\r\n city: wireTransferData.beneficiaryCity,\r\n state: wireTransferData.beneficiaryStateProvince,\r\n country: wireTransferData.beneficiaryCountry,\r\n taxId: wireTransferData.beneficiaryTaxID,\r\n email: wireTransferData.beneficiaryEmailAddress,\r\n phone: wireTransferData.beneficiaryTelephoneNumber,\r\n };\r\n}\r\n\r\nexport function getNewBankAccount(\r\n paymentFormValues: DividendPaymentFormValues,\r\n dripDetails: DividendDripDetails,\r\n setupDetails?: InternationalACHSetupDetails[],\r\n): Partial | undefined {\r\n if (showBankAccountFields.newDirectDepositUS(paymentFormValues, dripDetails)) {\r\n return {\r\n accountNumber: paymentFormValues.newDirectDepositUSBankAccountNumber,\r\n bankName: paymentFormValues.newDirectDepositUSBankName,\r\n routingNumber: paymentFormValues.newDirectDepositUSRoutingNumber,\r\n accountType: paymentFormValues.newDirectDepositUSBankAccountType,\r\n };\r\n }\r\n\r\n if (showBankAccountFields.newDirectDepositInt(paymentFormValues)) {\r\n const selectedSetupDetails = getSelectedSetupDetailByCountry(\r\n setupDetails,\r\n paymentFormValues.newDirectDepositINTBankCountry,\r\n )!;\r\n\r\n return {\r\n accountNumber: paymentFormValues.newDirectDepositINTBankAccountNumber\r\n ? paymentFormValues.newDirectDepositINTBankAccountNumber\r\n : paymentFormValues.newDirectDepositINTIBAN,\r\n bankName: paymentFormValues.newDirectDepositINTBankName,\r\n bankCity: paymentFormValues.newDirectDepositINTBankCity,\r\n routingNumber: paymentFormValues.newDirectDepositINTRoutingNumber\r\n ? paymentFormValues.newDirectDepositINTRoutingNumber\r\n : paymentFormValues.newDirectDepositINTSwiftBicCode,\r\n countryCode: selectedSetupDetails.country.code,\r\n currency: selectedSetupDetails.currency,\r\n };\r\n }\r\n\r\n if (showBankAccountFields.newWireTransfer(paymentFormValues)) {\r\n const { wireTransferData } = paymentFormValues;\r\n\r\n return {\r\n accountNumber: wireTransferData.bankAccountNumber,\r\n bankName: wireTransferData.bankName,\r\n bankCity: wireTransferData.bankCity,\r\n routingNumber: wireTransferData.bankInternationalRoutingCode,\r\n accountType: wireTransferData.bankAccountType,\r\n countryCode: wireTransferData.bankCountryCode,\r\n currency: wireTransferData.currency,\r\n };\r\n }\r\n\r\n return getSelectedBankAccount(paymentFormValues, dripDetails);\r\n}\r\n\r\nexport function getSelectedBankAccount(\r\n values: DividendPaymentFormValues,\r\n dripDetails: DividendDripDetails,\r\n): NewBankAccount | undefined {\r\n const bankAccount = (dripDetails.usBankAccounts || []).find((account) => {\r\n return account && values && account.bankAccountNumber === values.bankAccountNumber;\r\n })!;\r\n\r\n if (!bankAccount) {\r\n return;\r\n }\r\n\r\n return {\r\n accountNumber: bankAccount.bankAccountNumber,\r\n bankName: bankAccount.bankName,\r\n bankCity: bankAccount.bankCity || '',\r\n routingNumber: bankAccount.routingNumber,\r\n accountType: bankAccount.bankAccountType,\r\n country: bankAccount.destinationCountry.name || '',\r\n countryCode: bankAccount.destinationCountry.code,\r\n currency: bankAccount.currency || '',\r\n };\r\n}\r\n\r\nexport function getSelectedSetupDetailByCountry(\r\n setupDetails?: InternationalACHSetupDetails[],\r\n countryCode?: string,\r\n) {\r\n return countryCode\r\n ? (setupDetails || []).find((detail) => detail.country.code === countryCode)\r\n : undefined;\r\n}\r\n\r\nexport function hasExternalErrors(\r\n fields: FormControlItem[],\r\n values: FormikValues,\r\n externallyValidatedPaymentFields: ExternallyValidatedPaymentFields,\r\n) {\r\n return fields\r\n .filter((field) => (field.show ? field.show(values) : true))\r\n .some((field) => {\r\n let hasExternalError = false;\r\n const externalValidationRequired = isFieldExternallyValidated(field.formKey);\r\n\r\n if (externalValidationRequired) {\r\n const config = getExternallyValidatedFieldConfig(\r\n externallyValidatedPaymentFields,\r\n field.formKey,\r\n );\r\n hasExternalError = !config.valid;\r\n }\r\n return hasExternalError;\r\n });\r\n}\r\n\r\nexport function getDividendPaymentFormBackStep(\r\n dripDetails: DividendDripDetails,\r\n detailsFormValues: DividendDetailsFormValues,\r\n): DividendStep {\r\n const dividendDetailsFormNextStep = getDividendDetailsNextStep(dripDetails, detailsFormValues)\r\n .firstStep;\r\n return dividendDetailsFormNextStep === DividendStep.Plan\r\n ? DividendStep.Plan\r\n : DividendStep.Details;\r\n}\r\n\r\nfunction getBankAccountNumber(details: DividendDripDetails) {\r\n const { currentBankAccount, usBankAccounts } = details;\r\n\r\n if (!currentBankAccount) {\r\n return '';\r\n }\r\n\r\n const found = (usBankAccounts || []).find(\r\n ({ bankAccountNumber }) => bankAccountNumber === currentBankAccount.bankAccountNumber,\r\n );\r\n\r\n if (!found) {\r\n logWarning(\r\n 'Current bankAccountNumber not found in usBankAccounts!',\r\n currentBankAccount.bankAccountNumber,\r\n );\r\n return '';\r\n }\r\n\r\n return currentBankAccount.bankAccountNumber;\r\n}\r\n\r\nexport const isRequiredField = (\r\n fieldName: string,\r\n cmsLabel: (id: string) => string,\r\n context?: object,\r\n countries?: AddressCountry[],\r\n) => {\r\n try {\r\n return !!reach(\r\n getDividendPaymentFormValidationSchema(\r\n cmsLabel,\r\n [],\r\n {} as DividendDripDetails,\r\n [],\r\n undefined,\r\n countries,\r\n ),\r\n fieldName,\r\n undefined,\r\n context,\r\n )\r\n .describe()\r\n .tests.find((rule) => rule.name === 'required');\r\n } catch (e) {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isSecondaryAddressFieldRequired = (\r\n fieldName: string,\r\n cmsLabel: (id: string) => string,\r\n context?: object,\r\n countries?: AddressCountry[],\r\n) => {\r\n try {\r\n const field = fieldName.split('.')[1] || '';\r\n const addressValidationSchema = object().shape({\r\n ...secondaryAddressValidation(cmsLabel, countries),\r\n });\r\n return !!reach(addressValidationSchema, field, undefined, context)\r\n .describe()\r\n .tests.find((rule) => rule.name === 'required');\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nfunction mapWireTransferValidationLabels(_t: Translate) {\r\n return {\r\n currencyRequiredMessage: _t('e1124CurrencyRequired'),\r\n bankAccountNumberRequiredMessage: _t('e1117BankAccountNumberCreditRequired'),\r\n bankAccountNumberFormatMessage: _t('e1118BankAccountNumberCreditAllowedFormat'),\r\n bankAccountTypeRequiredMessage: _t('e1106BankAccountTypeRequired'),\r\n bankCityFormatMessage: _t('e1113BankCityAllowedFormat'),\r\n bankCityRequiredMessage: _t('e1112BankCityRequired'),\r\n bankCountryCodeRequiredMessage: _t('e1123CountryRequired'),\r\n bankInternationalRoutingCodeFormatMessage: _t('e1116RoutingNumberRequiredAllowedFormat'),\r\n bankInternationalRoutingCodeRequiredMessage: _t('e1115RoutingNumberRequired'),\r\n bankNameRequiredMessage: _t('e1110BankNameRequired'),\r\n bankNameFormatMessage: _t('e1111BankNameAllowedFormat'),\r\n bankSwiftBicCodeRequiredMessage: _t('e1108BankSwiftBicCodeRequired'),\r\n bankSwiftBicCodeFormatMessage: _t('e1109BankSwiftBicCodeAllowedFormat'),\r\n beneficiaryAddress1RequiredMessage: _t('e1601BeneficiaryAddressRequired'),\r\n beneficiaryAddress1FormatMessage: _t('e1602BeneficiaryAddressAllowedFormat'),\r\n beneficiaryAddress2FormatMessage: _t('e1602BeneficiaryAddressAllowedFormat'),\r\n beneficiaryCityRequiredMessage: _t('e1121HolderCityRequired'),\r\n beneficiaryCityFormatMessage: _t('e1122HolderCityAllowedFormat'),\r\n beneficiaryCountryRequiredMessage: _t('e1123CountryRequired'),\r\n beneficiaryEmailAddressRequiredMessage: _t('e1607BeneficiaryEmailAddressRequired'),\r\n beneficiaryEmailAddressFormatMessage: _t('e1608BeneficiaryEmailAddressAllowedFormat'),\r\n beneficiaryNameRequiredMessage: _t('e1119BankAccountNameCreditRequired'),\r\n beneficiaryNameFormatMessage: _t('e1120BankAccountNameCreditAllowedFormat'),\r\n beneficiaryStateProvinceRequiredMessage: _t('e1603BeneficiaryStateProvinceRequired'),\r\n beneficiaryStateProvinceFormatMessage: _t('e1604BeneficiaryStateProvinceAllowedFormat'),\r\n beneficiaryTaxIDRequiredMessage: _t('e1605BeneficiaryTaxIdRequired'),\r\n beneficiaryTaxIDFormatMessage: _t('e1606BeneficiaryTaxIdAllowedFormat'),\r\n beneficiaryTelephoneNumberRequiredMessage: _t('e1609BeneficiaryTelephoneNumberRequired'),\r\n beneficiaryTelephoneNumberFormatMessage: _t('e1610BeneficiaryTelephoneNumberAllowedFormat'),\r\n };\r\n}\r\n","import { useApiGet } from '../../../api/api.hooks';\r\nimport { AlertsResponseItem, mapAlertResponseItemToAlertFactory } from './models';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { AlertsAndMessagesCmsData } from '../../../containers/CmsData/store/cmsData.model';\r\n\r\nexport function useAlerts(cmsData: AlertsAndMessagesCmsData) {\r\n const alerts = useApiGet(APP_CONFIG.api.messages.unreadAlertsList);\r\n const alertList =\r\n !!alerts.data && !!cmsData && alerts.data.map(mapAlertResponseItemToAlertFactory(cmsData));\r\n\r\n return { ...alerts, alertList: alertList };\r\n}\r\n","export * from './Country.hooks';\r\nexport * from './Country.model';\r\n","import { APP_CONFIG } from '../../../config';\r\nimport { Country } from './Country.model';\r\nimport { useApiGet } from '../../../api/api.hooks';\r\n\r\nexport function useCountries(){\r\n return useApiGet(APP_CONFIG.api.accountAddress.countries);\r\n}\r\n","export * from './InternationalACHSetupDetails.hooks';\r\nexport * from './InternationalACHSetupDetails.model';\r\n","import { useApiGet } from '../../../api/api.hooks';\r\nimport { InternationalACHSetupDetails } from '../../../pages/Dividend/store/dividend.model';\r\nimport { APP_CONFIG } from '../../../config';\r\n\r\nexport function useInternationalACHSetupDetails(regionCode: string) {\r\n const url = APP_CONFIG.api.dividends.loadSetupDetails(regionCode);\r\n return useApiGet(url);\r\n}\r\n","import { ApiValidationError } from '../../../lib/Form/Validation/validation.model';\r\nimport { BankAccount, PaymentMethodType } from '../../../shared/DataStructures';\r\nimport { GetActionTypes } from '../../../store/reduxBoilerplate';\r\nimport { ProgressTypeEnum } from '../../../store/rootModel';\r\nimport { dividendActions, dividendSecondaryAddressActions } from './dividend.actions';\r\nimport { NewBankAccount } from '../../Shares/Sell/models';\r\nimport { BeneficiaryDetails } from '../../Shares/Sell/Steps/ConfirmationStep/api.models';\r\n\r\nexport type DividendAction = GetActionTypes<\r\n typeof dividendActions & typeof dividendSecondaryAddressActions\r\n>;\r\nexport type GetDividendAction = ReturnType<\r\n typeof dividendActions[T]\r\n>;\r\n\r\nexport type DividendAddressAction = GetActionTypes;\r\nexport type GetDividendAddressAction<\r\n T extends keyof typeof dividendSecondaryAddressActions\r\n> = ReturnType;\r\n\r\nexport interface DividendsState {\r\n readonly updateProgressType?: ProgressTypeEnum;\r\n readonly dividendDetails?: DividendDripDetails;\r\n readonly activeStep: DividendStep;\r\n readonly loadingSetupDetails?: ProgressTypeEnum;\r\n readonly setupDetails?: InternationalACHSetupDetails[];\r\n readonly loadingWireTransferCountries?: ProgressTypeEnum;\r\n readonly wireTransferCountries?: Country[];\r\n readonly loadingWireTransferCurrencies?: ProgressTypeEnum;\r\n readonly wireTransferCurrencies?: Currency[];\r\n readonly externallyValidatedPaymentFields: ExternallyValidatedPaymentFields;\r\n readonly persistedFormsValidStatusMap?: { [key in PersistedDividendForm]?: boolean };\r\n readonly secondaryAddressPreview: string[];\r\n readonly errors?: ApiValidationError[];\r\n readonly secondaryAddressInquiryMode?: boolean;\r\n readonly dividendsUpdateInquiryMode?: boolean;\r\n readonly skippedPaymentStep?: boolean;\r\n}\r\n\r\nexport interface Step {\r\n key: DividendStep;\r\n label?: string;\r\n}\r\n\r\nexport enum DividendStep {\r\n SelectCompany = 'SelectCompany',\r\n Details = 'Details',\r\n Plan = 'Plan',\r\n Payment = 'Payment',\r\n Confirm = 'Confirm',\r\n Summary = 'Summary',\r\n}\r\n\r\nexport enum PersistedDividendForm {\r\n SelectCompany = 'SelectCompany',\r\n Details = 'DividendDetails',\r\n Plan = 'DividendPlan',\r\n Payment = 'DividendPayment',\r\n}\r\n\r\nexport enum PartialReinvestmentType {\r\n Percentage = 'Percentage',\r\n Shares = 'Shares',\r\n Cash = 'Cash',\r\n Reinvest = 'Reinvest',\r\n}\r\n\r\nexport interface DividendDripDetails {\r\n companyName: string;\r\n accountNumber: number;\r\n userRegionCode: string;\r\n securityType: string;\r\n currentPaymentMethod: PaymentMethod;\r\n currentReinvestmentOption: DividendReinvestment;\r\n reinvestmentPercent: number;\r\n reinvestmentValue: number;\r\n paymentBrochureLink: string;\r\n withdrawalTerminationIndicator: boolean;\r\n allowCreditACHForDividends: boolean;\r\n allowWireTransfer: boolean;\r\n allowDrip: boolean;\r\n allowDRIPEnrollmentOnline: boolean;\r\n reinvestmentOptionsAvailable: boolean;\r\n checkAllowedSOL: boolean;\r\n numberOfPlanShares: number;\r\n numberOfDRSShares: number;\r\n numberOfCertificateShares: number;\r\n reinvestmentOptions: ReinvestmentOption[];\r\n issuedUnissuedIndicators: IssuedUnissuedIndicator[];\r\n paymentOptions?: PaymentOption[] | null; // null value comes from backend, when DD and WT disabled, and Only Check payment. But it's checkAllowedSOL flag for.\r\n currentBankAccount: BankAccount;\r\n usBankAccounts?: BankAccount[];\r\n dividendPaying: boolean;\r\n dividendRate?: string;\r\n netDividendProceeds?: number;\r\n}\r\n\r\nexport interface InternationalACHSetupDetails {\r\n accountNumberFormat: string;\r\n bankCodeFormat: string;\r\n country: Country;\r\n iBAN: string;\r\n currency: string;\r\n regionCode: string;\r\n}\r\n\r\nexport interface Currency {\r\n code: string;\r\n name: string;\r\n}\r\n\r\nexport interface ReinvestmentOption {\r\n reinvestmentType: ReinvestmentType;\r\n fieldName: string;\r\n}\r\n\r\nexport interface IssuedUnissuedIndicator {\r\n indicator: string;\r\n indicatorValue: 'Y' | 'N';\r\n}\r\n\r\nexport interface PaymentOption {\r\n paymentOption: PaymentMethod;\r\n paymentOptionType: PaymentMethodType;\r\n}\r\n\r\nexport interface Country {\r\n code: string;\r\n name: string;\r\n irsCountryCode: string;\r\n isPostalCodeMandatory: boolean;\r\n}\r\n\r\nexport enum DividendReinvestment {\r\n RD = 'RD',\r\n RX = 'RX',\r\n RP = 'RP',\r\n RP0 = 'RP0',\r\n PS = 'PS',\r\n RV = 'RV',\r\n RVY = 'RVY',\r\n RVN = 'RVN',\r\n PD = 'PD',\r\n}\r\n\r\nexport enum PaymentMethod {\r\n Check = 'Check',\r\n WireTransfer = 'Wire Transfer',\r\n DirectDeposit = 'Direct Deposit',\r\n None = 'None',\r\n Both = 'Both',\r\n CurrentPaymentC = 'C',\r\n CurrentPaymentH = 'H',\r\n CurrentPaymentT = 'T',\r\n}\r\n\r\n/* Codes Description \r\nPD: If dividend paying Issue, Dividend will be paid in cash by check/ACH/wire transfer. (Not a participant in a plan.) \r\nRP0: All certificated, DRS shares and/or Plan shares will be paid in cash. (no reinvestment) \r\nRD: All certificated, DRS shares and/or Plan shares are reinvested – full reinvestment, there is no payment option as all shares will be reinvested \r\nRXY: User specified percentage of certificated and/or DRS shares will be reinvested, the remaining certificated and/or DRS shares will be paid in cash. All of the Plan shares will reinvest. \r\nRXN: User specified percentage of certificated, DRS shares and/or Plan shares will be reinvested. The remaining shares will be paid in cash. \r\nRPY: User specified number of certificated and/or DRS shares will be reinvested, the remaining certificated and/or DRS shares will be paid in cash. All of the Plan shares will reinvest. \r\nRPN: User specified number of certificated, DRS shares and/or Plan shares will be reinvested. The remaining shares will be paid in cash. \r\nPSY: User specified number of certificated and/or DRS shares will be paid in cash, the remaining certificated and/or DRS shares will be reinvested. All of the Plan shares will reinvest. \r\nPSN: User specified number of certificated, DRS shares and/or Plan shares will be paid in cash. The remaining shares will be reinvested. \r\nRVY: All certificated and/or DRS shares will be paid. All plan shares will reinvest. User can optionally specify one off purchases under this plan option, i.e. optional cash. \r\nRVN: All certificated, DRS shares and/or Plan shares will be paid. User can optionally specify one off purchases under this plan option, i.e. optional cash. \r\n*/\r\nexport enum ReinvestmentType {\r\n RD = 'RD', // Full reinvestment\r\n PD = 'PD',\r\n RXN = 'RXN',\r\n RXY = 'RXY',\r\n RPN = 'RPN',\r\n RPY = 'RPY',\r\n PSN = 'PSN',\r\n PSY = 'PSY',\r\n RVY = 'RVY',\r\n RVN = 'RVN',\r\n RP0 = 'RP0', // Optional cash with no reinvestment\r\n}\r\n\r\nexport type ExternallyValidatedPaymentFields = {\r\n [X in ExternallyValidatedPaymentField]?: ExternallyValidatedPaymentFieldConfig;\r\n};\r\n\r\nexport interface ExternallyValidatedPaymentFieldConfig {\r\n valid?: boolean;\r\n loading?: ProgressTypeEnum;\r\n}\r\n\r\nexport enum ExternallyValidatedPaymentField {\r\n NewDirectDepositINTBankAccountNumber = 'newDirectDepositINTBankAccountNumber',\r\n NewDirectDepositINTIBAN = 'newDirectDepositINTIBAN',\r\n NewDirectDepositINTRoutingNumber = 'newDirectDepositINTRoutingNumber',\r\n NewDirectDepositINTSwiftBicCode = 'newDirectDepositINTSwiftBicCode',\r\n}\r\n\r\nexport interface DividendCardProps {\r\n plan: DividendCardPlanProps;\r\n}\r\n\r\ninterface DividendCardPlanProps {\r\n accountNumber: string;\r\n securityType: string;\r\n paymentMethod: PaymentMethod;\r\n dividendReinvestment: DividendReinvestment;\r\n paymentBrochureLink: string;\r\n}\r\n\r\nexport type LoadDividendDetailsResponse = DividendDripDetails;\r\n\r\nexport type LoadSetupDetailsResponse = InternationalACHSetupDetails[];\r\n\r\nexport interface ValidatePaymentFieldFormatRequest {\r\n input: string;\r\n format: string;\r\n}\r\n\r\nexport interface ValidatePaymentFieldFormatResponse {\r\n valid: boolean;\r\n paddedValue?: string;\r\n}\r\n\r\nexport interface UpdateDividendRequest {\r\n planUpdate?: PlanUpdate | null;\r\n paymentUpdate?: PaymentUpdate | null;\r\n}\r\n\r\nexport interface PlanUpdate {\r\n reinvestmentOption?: DividendReinvestment;\r\n reinvestmentPercent?: string;\r\n reinvestmentValue?: string;\r\n quantityToCash?: string;\r\n}\r\n\r\nexport interface PaymentUpdate {\r\n dividendPaymentOption: PaymentOption;\r\n isNewBankAccount: boolean;\r\n bankAccount?: Partial;\r\n dividendBankAccount?: Partial;\r\n beneficiaryBankSwiftCode?: string;\r\n internationalRoutingCode?: string;\r\n beneficiaryDetails?: BeneficiaryDetails;\r\n}\r\n\r\nexport interface NewSecondaryAddressDetails {\r\n addressLines: string[];\r\n countryCode: string;\r\n city: string;\r\n state: string | null;\r\n zipCode: {\r\n primary: string;\r\n optional: string | null;\r\n };\r\n}\r\n","import { css, Theme } from './themeModule';\r\nimport { THEME_CONSTANTS, ThemeType } from './theme';\r\nimport { Colors } from './branding';\r\n\r\nexport const hexToRgbA = (hex: string, alpha = 1) => {\r\n const validAlpha = alpha >= 0 && alpha <= 1;\r\n if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex) && validAlpha) {\r\n const p = hex.substring(1).split('');\r\n const n = parseInt(\r\n '0x' + (p.length === 3 ? [p[0], p[0], p[1], p[1], p[2], p[2]].join('') : p.join('')),\r\n 16,\r\n );\r\n return `rgba(${[(n >> 16) & 255, (n >> 8) & 255, n & 255].join(',')},${alpha})`;\r\n }\r\n throw new Error('Bad Hex.');\r\n};\r\n\r\nexport const px = (num: number) => (num !== 0 ? `${num}px` : '0');\r\n\r\n// Note\r\n// Below components implemented using css() cause an issue \"No overload matches this call.\", at least in VStudio\r\n// Here are issues on GitHub, but looks like TypeScript upgrade to 3.7 might fix it.\r\n// https://github.com/microsoft/TypeScript/issues/34796\r\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/40209\r\n// https://github.com/vuejs/vue-class-component/issues/374\r\n// https://github.com/emotion-js/emotion/issues/1640\r\n\r\nexport const VisibleOnlyTablet = css`\r\n margin-bottom: 10px;\r\n ${(p) => p.theme.media.mobile.andDown} {\r\n display: none;\r\n }\r\n ${(p) => p.theme.media.desktop.andUp} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const VisibleOnlyDesktop = css`\r\n ${(p) => p.theme.media.tablet.andDown} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const VisibleOnlyMobile = css`\r\n ${(p) => p.theme.media.tablet.andUp} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const HiddenOnlyDesktop = css`\r\n ${(p) => p.theme.media.desktop.andUp} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const HiddenOnlyMobile = css`\r\n ${(p) => p.theme.media.mobile.andDown} {\r\n display: none;\r\n }\r\n`;\r\n\r\nexport const animateOnHighlight = (highlight: boolean) => css`\r\n transition: background-color 1s;\r\n ${(p) => highlight && `background: ${p.theme.colors.highlight} !important;`}\r\n`;\r\n\r\ntype ThemeTypeSelector = (theme: ThemeType) => T;\r\n\r\nexport const pickFromTheme = (selector: ThemeTypeSelector) => (props: Theme) =>\r\n selector(props.theme);\r\n\r\ntype ColorSelector = (colors: Colors) => string;\r\n\r\nexport const pickColor = (colorSelector: ColorSelector) =>\r\n pickFromTheme((theme) => colorSelector(theme.colors));\r\n\r\nexport type WindowMedia = 'mobile' | 'tablet' | 'desktop';\r\n\r\nexport function getWindowMedia(): WindowMedia {\r\n const media = THEME_CONSTANTS.MEDIA;\r\n if (window.innerWidth < media.TABLET) {\r\n return 'mobile';\r\n }\r\n\r\n if (window.innerWidth >= media.TABLET && window.innerWidth < media.DESKTOP) {\r\n return 'tablet';\r\n }\r\n\r\n return 'desktop';\r\n}\r\n","import React from 'react';\r\nimport { CardBody } from 'reactstrap';\r\nimport { styled, Theme } from '../../style/theme/themeModule';\r\nimport { Spinner } from '../Spinner/Spinner';\r\nimport { ProgressTypeEnum } from '../../store/rootModel';\r\nimport { LoadFailedMessage } from '../LoadFailedMessage/LoadFailedMessage';\r\n\r\ninterface OwnProps extends React.HTMLAttributes {\r\n noPadding?: boolean;\r\n progressType?: ProgressTypeEnum;\r\n compact?: boolean;\r\n}\r\n\r\nexport function Content(props: OwnProps) {\r\n const { progressType, compact, children } = props;\r\n\r\n return (\r\n \r\n {renderInnerContent()}\r\n \r\n );\r\n\r\n function renderInnerContent() {\r\n if (progressType === ProgressTypeEnum.Loading) {\r\n return ;\r\n }\r\n\r\n if (progressType === ProgressTypeEnum.LoadFailed) {\r\n return ;\r\n }\r\n\r\n return children;\r\n }\r\n}\r\n\r\ninterface ContainerProps extends Theme {\r\n noPadding?: boolean;\r\n progressType?: ProgressTypeEnum;\r\n compact?: boolean;\r\n}\r\n\r\nconst Container = styled(({ noPadding, compact, progressType, ...rest }: OwnProps) => (\r\n \r\n))`\r\n && {\r\n ${(p: ContainerProps) => (p.compact ? `padding: 10px` : `padding: ${getPadding(p)}`)};\r\n }\r\n`;\r\n\r\nconst LoadingSpinner = styled(Spinner)`\r\n margin-top: 0;\r\n`;\r\n\r\nfunction getPadding(p: ContainerProps) {\r\n if (showPredefinedContent(p)) {\r\n return `padding: 30px 0`;\r\n }\r\n\r\n return p.noPadding ? `0` : `1.25rem`;\r\n}\r\n\r\nfunction showPredefinedContent({ progressType }: ContainerProps) {\r\n return [ProgressTypeEnum.Loading, ProgressTypeEnum.LoadFailed].some((x) => x === progressType);\r\n}\r\n","export function mapValidationFormatStringToRegExp(code: string): RegExp {\r\n const replacements: [RegExp, string][] = [\r\n [/Z/g, '[0-9]'],\r\n [/A/g, '[a-zA-Z]'],\r\n [/B/g, ''],\r\n [/N/g, '[0-9]'],\r\n [/X/g, '[a-zA-Z0-9]'],\r\n [/F/g, '[a-zA-Z0-9]'],\r\n [/D/g, '[0-9]?'],\r\n ];\r\n\r\n let regExpString = code;\r\n replacements.forEach((r) => (regExpString = regExpString.replace(r[0], r[1])));\r\n return new RegExp('^' + regExpString + '$');\r\n}\r\n","export * from './WireTransferPaymentTypes';\r\nexport * from './WireTransferPaymentForm';\r\n","import {\r\n FormValues,\r\n PreferenceUpdateItem,\r\n ProxyDeliveryData,\r\n ProxyDeliveryUpdateRequest,\r\n} from './model';\r\n\r\nexport const mapToUpdateRequest = (formValues: FormValues): ProxyDeliveryUpdateRequest => {\r\n const keys: (keyof FormValues)[] = Object.keys(formValues).map((key) =>\r\n Number(key),\r\n ) as (keyof FormValues)[];\r\n return {\r\n preferences: keys.reduce((p: PreferenceUpdateItem[], accountNumber) => {\r\n const itemArray: PreferenceUpdateItem[] = formValues[accountNumber as keyof FormValues].map(\r\n (item) => ({\r\n accountNumber: Number(accountNumber),\r\n issueNumber: item.issueNumber,\r\n deliveryPreference: item.deliveryPreference,\r\n proxyEmailAddress: item.proxyEmailAddress,\r\n }),\r\n );\r\n return [...p, ...itemArray];\r\n }, []),\r\n };\r\n};\r\n\r\nexport function updateProxyDeliveryData(\r\n state: ProxyDeliveryData,\r\n update: ProxyDeliveryUpdateRequest,\r\n): ProxyDeliveryData {\r\n return {\r\n ...state,\r\n accounts: state.accounts.map((account) => ({\r\n ...account,\r\n companies: account.companies.map((company) => {\r\n const item = update.preferences.find(\r\n (i) => i.accountNumber === account.accountNumber && i.issueNumber === company.issueNumber,\r\n );\r\n return {\r\n ...company,\r\n proxyEmailAddress: item!.proxyEmailAddress,\r\n deliveryPreference: item!.deliveryPreference,\r\n };\r\n }),\r\n })),\r\n };\r\n}\r\n","import React, { useEffect, useCallback } from 'react';\r\nimport { RootState } from '../../store/rootModel';\r\nimport { connect, DispatchProp } from 'react-redux';\r\nimport { unreadMessagesActions } from './store/unreadMessages.actions';\r\nimport { UnreadRoundel } from './../UnreadRoundel/UnreadRoundel';\r\n\r\ninterface OwnProps {\r\n wrapper?: string;\r\n}\r\n\r\nconst mapStateToProps = (state: RootState) => ({\r\n data: state.unreadMessages.data,\r\n started: state.unreadMessages.started,\r\n});\r\n\r\nfunction Component({\r\n data,\r\n started,\r\n dispatch,\r\n wrapper = 'div',\r\n}: ReturnType & DispatchProp & OwnProps) {\r\n const counter = data ? data.inboxMessageCount + data.companyMessageCount : 0;\r\n\r\n const init = useCallback(() => dispatch(unreadMessagesActions.init()), [dispatch]);\r\n\r\n useEffect(() => {\r\n !started && init();\r\n }, [started, init]);\r\n\r\n return counter > 0 ? renderComponent() : null;\r\n\r\n function renderComponent() {\r\n if (wrapper === 'roundel') {\r\n return {counter};\r\n }\r\n return (\r\n
    \r\n {counter}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport const UnreadMessagesBadge = connect(mapStateToProps)(Component);\r\n","import React, { useCallback, useEffect } from 'react';\r\nimport { RootState } from '../../store/rootModel';\r\nimport { connect, DispatchProp } from 'react-redux';\r\nimport { unreadAlertsActions } from './store/unreadAlerts.actions';\r\nimport { UnreadRoundel } from './../UnreadRoundel/UnreadRoundel';\r\n\r\ninterface OwnProps {\r\n wrapper?: string;\r\n}\r\n\r\nconst mapStateToProps = (state: RootState) => ({\r\n data: state.unreadAlerts.data,\r\n started: state.unreadAlerts.started,\r\n});\r\n\r\nexport function Component({\r\n data,\r\n started,\r\n dispatch,\r\n wrapper = 'div',\r\n}: ReturnType & DispatchProp & OwnProps) {\r\n const init = useCallback(() => dispatch(unreadAlertsActions.init()), [dispatch]);\r\n\r\n useEffect(() => {\r\n !started && init();\r\n }, [started, init]);\r\n\r\n return data && data > 0 ? renderComponent() : null;\r\n\r\n function renderComponent() {\r\n if (wrapper === 'roundel') {\r\n return {data};\r\n }\r\n return (\r\n
    \r\n {data}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport const UnreadAlertsBadge = connect(mapStateToProps)(Component);\r\n","import { WireTransferCountryConfig, WireTransferPayment } from './WireTransferPaymentTypes';\r\nimport { FormikContext } from 'formik';\r\n\r\nexport function getWireTransferFormValues(\r\n formik: FormikContext,\r\n fieldPrefix: string,\r\n) {\r\n const wireTransferValues = fieldPrefix\r\n ? formik.values[fieldPrefix.replace('.', '') as keyof WireTransferPayment]\r\n : formik.values;\r\n return wireTransferValues as WireTransferPayment;\r\n}\r\n\r\nexport function getSelectedCountry(\r\n bankCountryCode: string,\r\n wireTransferConfig: WireTransferCountryConfig[],\r\n) {\r\n if (!bankCountryCode) {\r\n return false;\r\n }\r\n\r\n return wireTransferConfig.find((c) => c.code === bankCountryCode);\r\n}\r\n\r\nexport function getBankInfoCodesFormats(\r\n { bankCountryCode }: WireTransferPayment,\r\n wireTransferConfig: WireTransferCountryConfig[],\r\n) {\r\n const country = getSelectedCountry(bankCountryCode, wireTransferConfig);\r\n\r\n if (!country) {\r\n return;\r\n }\r\n\r\n const { bankAccountNumberFormat, bankRoutingCodeFormat, bankSwiftCodeFormat } = country;\r\n return { bankAccountNumberFormat, bankRoutingCodeFormat, bankSwiftCodeFormat };\r\n}\r\n\r\nexport function getIsThresholdMet(\r\n paymentAmount: number | null | undefined,\r\n minimumThreshold: number,\r\n) {\r\n if (!paymentAmount) {\r\n return true;\r\n }\r\n\r\n return paymentAmount >= minimumThreshold;\r\n}\r\n\r\nexport function getIsPreAmbleComplete(\r\n formikContext: FormikContext,\r\n objectKey?: string,\r\n) {\r\n const { bankCountryCode, currency } = getWireTransferValues(formikContext, objectKey);\r\n return !!bankCountryCode && !!currency;\r\n}\r\n\r\nexport function getWireTransferValues(\r\n formik: FormikContext,\r\n objectKey?: string,\r\n): WireTransferPayment {\r\n return objectKey ? (formik.values[objectKey] as WireTransferPayment) : formik.values;\r\n}\r\n\r\nexport function getCountryCode(\r\n formik: FormikContext,\r\n objectKey?: string,\r\n): string {\r\n return getWireTransferValues(formik, objectKey)['bankCountryCode'];\r\n}\r\n\r\nexport function resetWireTransferForm(\r\n formik: FormikContext,\r\n fieldPrefix: string,\r\n) {\r\n const fieldsToReset = [\r\n 'currency',\r\n 'bankAccountNumber',\r\n 'bankAccountType',\r\n 'bankCity',\r\n 'bankName',\r\n 'bankSwiftBicCode',\r\n 'bankInternationalRoutingCode',\r\n 'beneficiaryAddress1',\r\n 'beneficiaryAddress2',\r\n 'beneficiaryCity',\r\n 'beneficiaryCountry',\r\n 'beneficiaryEmailAddress',\r\n 'beneficiaryName',\r\n 'beneficiaryStateProvince',\r\n 'beneficiaryTaxID',\r\n 'beneficiaryTelephoneNumber',\r\n ];\r\n\r\n fieldsToReset.forEach((field) => {\r\n formik.setFieldValue(`${fieldPrefix}${field}`, '');\r\n formik.setFieldTouched(`${fieldPrefix}${field}`, false);\r\n });\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { connect } from 'formik';\r\nimport {\r\n BankAccount,\r\n WireTransferCountryConfig,\r\n WireTransferPayment,\r\n} from '../WireTransferPaymentTypes';\r\nimport { FormGroupSelect } from '../../../Form/WrappedField';\r\nimport { SelectOption } from '../../../Form/Select/Select';\r\nimport { FormConnectProps } from '../../FormikShared';\r\nimport { resetWireTransferForm } from '../WireTransferPaymentUtils';\r\n\r\ninterface OwnProps {\r\n fieldPrefix: string;\r\n config: WireTransferCountryConfig[];\r\n setThreshold: (treshold: number) => void;\r\n labels: WireTransferPaymentPreAmbleFormTranslations;\r\n isPreAmbleValidOnInit: boolean;\r\n setIsPreAmbleValid: (isValid: boolean) => void;\r\n}\r\nexport interface WireTransferPaymentPreAmbleFormTranslations {\r\n bankInfoTitle: string;\r\n thresholdNotMetWarningLabel: string;\r\n thresholdNotMetDividendInfoLabel?: string;\r\n countryLabel: string;\r\n countryPlaceholder: string;\r\n currencyLabel: string;\r\n currencyPlaceholder: string;\r\n}\r\ntype Props = OwnProps;\r\nfunction Component({\r\n formik,\r\n fieldPrefix,\r\n config,\r\n setThreshold,\r\n labels,\r\n isPreAmbleValidOnInit,\r\n setIsPreAmbleValid,\r\n}: Props & FormConnectProps) {\r\n const wireTransferValues = fieldPrefix\r\n ? formik.values[fieldPrefix.replace('.', '') as keyof BankAccount]\r\n : formik.values;\r\n const [isValid, setIsValid] = useState(isPreAmbleValidOnInit);\r\n const bankCountryCode = (wireTransferValues as BankAccount).bankCountryCode;\r\n const countryChoices = getCountryChoices(config);\r\n const currencyChoices = getCurrencyChoices(config, bankCountryCode);\r\n\r\n useEffect(() => {\r\n let mounted = true;\r\n\r\n if (mounted) {\r\n setIsPreAmbleValid(isValid);\r\n }\r\n\r\n return () => {\r\n mounted = false;\r\n };\r\n }, [isValid, setIsPreAmbleValid]);\r\n\r\n return (\r\n <>\r\n \r\n options={countryChoices}\r\n label={labels.countryLabel}\r\n placeholder={labels.countryPlaceholder}\r\n formProps={formik}\r\n fieldKey={`${fieldPrefix}bankCountryCode` as keyof BankAccount}\r\n onSelect={() => {\r\n setIsValid(false);\r\n resetWireTransferForm(formik, fieldPrefix);\r\n }}\r\n />\r\n\r\n \r\n options={currencyChoices}\r\n label={labels.currencyLabel}\r\n placeholder={labels.currencyPlaceholder}\r\n formProps={formik}\r\n disabled={!bankCountryCode}\r\n fieldKey={`${fieldPrefix}currency` as keyof BankAccount}\r\n onSelect={(code) => {\r\n setTresholdFromCurrency(code);\r\n setIsValid(true);\r\n }}\r\n />\r\n \r\n );\r\n\r\n function setTresholdFromCurrency(currencyCode: string) {\r\n const currentCountry = config.find((c) => c.code === bankCountryCode);\r\n const currencies = currentCountry ? currentCountry.currencies : [];\r\n const selectedCurrency = currencies.find((c) => c.code === currencyCode);\r\n if (selectedCurrency) {\r\n setThreshold(selectedCurrency.minimumThreshold);\r\n }\r\n }\r\n}\r\n\r\nfunction getCountryChoices(countries: WireTransferCountryConfig[]): SelectOption[] {\r\n return countries\r\n .map((c) => ({ value: c.code, label: c.name } as SelectOption))\r\n .sort(function(a, b) {\r\n var nameA = a.label.toLowerCase(),\r\n nameB = b.label.toLowerCase();\r\n if (nameA < nameB)\r\n //sort string ascending\r\n return -1;\r\n if (nameA > nameB) return 1;\r\n return 0; //default return value (no sorting)\r\n });\r\n}\r\n\r\nfunction getCurrencyChoices(\r\n countries: WireTransferCountryConfig[],\r\n selectedCountry: string,\r\n): SelectOption[] {\r\n const currentCountry = countries.find((c) => c.code === selectedCountry);\r\n return (currentCountry ? currentCountry.currencies : []).map(\r\n (c) => ({ label: c.name, value: c.code } as SelectOption),\r\n );\r\n}\r\n\r\nexport const WireTransferPaymentPreAmbleForm = connect(Component);\r\n","import React, { useState } from 'react';\r\nimport { connect } from 'formik';\r\nimport { BankAccount, WireTransferPayment, BankCodesFormats } from '../WireTransferPaymentTypes';\r\nimport { FormGroupInput, FormGroupSelect } from '../../../Form/WrappedField';\r\nimport { FormConnectProps } from '../../FormikShared';\r\nimport { SelectOption } from '../../../Form/Select/Select';\r\nimport { BankAccountType } from '../../../../shared/DataStructures/BankAccount';\r\nimport { useApiRequestWithResponse } from '../../../../api/api.hooks';\r\nimport { APP_CONFIG } from '../../../../config';\r\nimport {\r\n ValidatePaymentFieldFormatRequest,\r\n ValidatePaymentFieldFormatResponse,\r\n} from '../../../../pages/Dividend/store/dividend.model';\r\n\r\ntype BankInfoCodesField = 'account' | 'swift' | 'routing';\r\n\r\ninterface OwnProps {\r\n fieldPrefix: string;\r\n formValues: WireTransferPayment;\r\n hideIRCField?: boolean;\r\n bankCodesFormats?: BankCodesFormats;\r\n labels: BankDetailsFormTranslations;\r\n}\r\n\r\nexport interface BankDetailsFormTranslations {\r\n bankNameLabel: string;\r\n bankCityLabel: string;\r\n bankSwiftBicCodeLabel: string;\r\n bankInternationalRoutingCodeLabel: string;\r\n bankAccountNumberLabel: string;\r\n bankAccountTypeLabel: string;\r\n bankAccountTypeSavingsLabel: string;\r\n bankAccountTypeCheckingLabel: string;\r\n}\r\n\r\ntype Props = OwnProps;\r\n\r\nfunction Component({\r\n formik,\r\n formValues,\r\n fieldPrefix,\r\n hideIRCField,\r\n bankCodesFormats,\r\n labels,\r\n}: Props & FormConnectProps) {\r\n const [fieldsValidating, setFieldsValidating] = useState({\r\n account: false,\r\n swift: false,\r\n routing: false,\r\n });\r\n\r\n const [validateCode] = useApiRequestWithResponse(\r\n APP_CONFIG.api.dividends.validatePaymentFieldFormat(),\r\n 'post',\r\n );\r\n\r\n const accountTypeOptions = React.useMemo(\r\n () =>\r\n getBankAccountTypes(labels.bankAccountTypeSavingsLabel, labels.bankAccountTypeCheckingLabel),\r\n [labels.bankAccountTypeSavingsLabel, labels.bankAccountTypeCheckingLabel],\r\n );\r\n\r\n return (\r\n <>\r\n \r\n fieldKey={`${fieldPrefix}bankName` as keyof BankAccount}\r\n label={labels.bankNameLabel}\r\n formProps={formik}\r\n required={true}\r\n />\r\n\r\n \r\n fieldKey={`${fieldPrefix}bankCity` as keyof BankAccount}\r\n label={labels.bankCityLabel}\r\n formProps={formik}\r\n required={true}\r\n />\r\n\r\n \r\n fieldKey={`${fieldPrefix}bankSwiftBicCode` as keyof BankAccount}\r\n label={labels.bankSwiftBicCodeLabel}\r\n formProps={formik}\r\n onBlur={() =>\r\n bankCodesFormats &&\r\n validateBankInfoCodeField(\r\n formValues.bankSwiftBicCode,\r\n bankCodesFormats.bankSwiftCodeFormat,\r\n 'swift',\r\n )\r\n }\r\n onChange={(e) => setFieldValidatingStatus(e, 'swift')}\r\n noValidation={fieldsValidating.swift}\r\n required={true}\r\n />\r\n\r\n {!hideIRCField && (\r\n \r\n fieldKey={`${fieldPrefix}bankInternationalRoutingCode` as keyof BankAccount}\r\n label={labels.bankInternationalRoutingCodeLabel}\r\n formProps={formik}\r\n onBlur={() =>\r\n bankCodesFormats &&\r\n validateBankInfoCodeField(\r\n formValues.bankInternationalRoutingCode,\r\n bankCodesFormats.bankRoutingCodeFormat,\r\n 'routing',\r\n )\r\n }\r\n onChange={(e) => setFieldValidatingStatus(e, 'routing')}\r\n noValidation={fieldsValidating.routing}\r\n required={true}\r\n />\r\n )}\r\n\r\n \r\n fieldKey={`${fieldPrefix}bankAccountNumber` as keyof BankAccount}\r\n label={labels.bankAccountNumberLabel}\r\n formProps={formik}\r\n onBlur={() =>\r\n bankCodesFormats &&\r\n validateBankInfoCodeField(\r\n formValues.bankAccountNumber,\r\n bankCodesFormats.bankAccountNumberFormat,\r\n 'account',\r\n )\r\n }\r\n onChange={(e) => setFieldValidatingStatus(e, 'account')}\r\n noValidation={fieldsValidating.account}\r\n required={true}\r\n />\r\n\r\n \r\n options={accountTypeOptions}\r\n fieldKey={`${fieldPrefix}bankAccountType` as keyof BankAccount}\r\n label={labels.bankAccountTypeLabel}\r\n formProps={formik}\r\n required={true}\r\n />\r\n \r\n );\r\n\r\n function hasFieldChanged(value: string, fieldType: BankInfoCodesField) {\r\n const { bankSwiftBicCode, bankInternationalRoutingCode, bankAccountNumber } = formValues;\r\n const swiftChanged = fieldType === 'swift' && value !== bankSwiftBicCode;\r\n const routingChanged = fieldType === 'routing' && value !== bankInternationalRoutingCode;\r\n const accountChanged = fieldType === 'account' && value !== bankAccountNumber;\r\n\r\n return swiftChanged || routingChanged || accountChanged;\r\n }\r\n\r\n function setFieldValidatingStatus(\r\n { target: { value } }: React.ChangeEvent,\r\n fieldType: BankInfoCodesField,\r\n ) {\r\n if (hasFieldChanged(value, fieldType)) {\r\n !fieldsValidating[fieldType] &&\r\n setFieldsValidating({ ...fieldsValidating, [fieldType]: true });\r\n } else {\r\n fieldsValidating[fieldType] &&\r\n setFieldsValidating({ ...fieldsValidating, [fieldType]: false });\r\n }\r\n }\r\n\r\n async function validateBankInfoCodeField(\r\n value: string,\r\n format: string,\r\n fieldType: BankInfoCodesField,\r\n ) {\r\n if (!value || !format) {\r\n setFieldsValidating({ ...fieldsValidating, [fieldType]: false });\r\n return;\r\n }\r\n setFieldsValidating({ ...fieldsValidating, [fieldType]: true });\r\n\r\n try {\r\n const request: ValidatePaymentFieldFormatRequest = {\r\n input: value,\r\n format,\r\n };\r\n const response = await validateCode(request);\r\n\r\n if (!response || !response.data) {\r\n setFieldsValidating({ ...fieldsValidating, [fieldType]: false });\r\n return;\r\n }\r\n\r\n const { paddedValue, valid } = response.data;\r\n\r\n if (valid && paddedValue !== value) {\r\n updateBankInfoCodeField(fieldType, paddedValue || value);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n\r\n setFieldsValidating({ ...fieldsValidating, [fieldType]: false });\r\n }\r\n\r\n function updateBankInfoCodeField(fieldType: BankInfoCodesField, value: string) {\r\n const fieldName = fieldPrefix\r\n ? `${fieldPrefix}${formattedFieldName(fieldType)}`\r\n : formattedFieldName(fieldType);\r\n formik.setFieldValue(fieldName, value);\r\n }\r\n}\r\n\r\nfunction formattedFieldName(fieldType: BankInfoCodesField) {\r\n switch (fieldType) {\r\n case 'account':\r\n return 'bankAccountNumber';\r\n case 'routing':\r\n return 'bankInternationalRoutingCode';\r\n case 'swift':\r\n return 'bankSwiftBicCode';\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nfunction getBankAccountTypes(savingsLabel: string, checkingLabel: string): SelectOption[] {\r\n return [\r\n { value: BankAccountType.Savings, label: savingsLabel },\r\n { value: BankAccountType.Checking, label: checkingLabel },\r\n ];\r\n}\r\n\r\nexport const BankDetailsForm = connect(Component);\r\n","import React from 'react';\r\nimport { BeneficiaryPayment } from '../WireTransferPaymentTypes';\r\nimport { FormGroupInput, FormGroupSelect } from '../../../Form/WrappedField';\r\nimport { FormConnectProps } from '../../FormikShared';\r\nimport { connect } from 'formik';\r\nimport { Country } from '../../../../shared/DataStructures/Country';\r\nimport { SelectOption } from '../../../Form/Select/Select';\r\n\r\ninterface OwnProps {\r\n fieldPrefix: string;\r\n beneficiaryCountries: Country[];\r\n labels: OwnTranslations;\r\n}\r\ninterface OwnTranslations {\r\n beneficiaryNameLabel: string;\r\n beneficiaryAddress1Label: string;\r\n beneficiaryAddress2Label: string;\r\n beneficiaryCityLabel: string;\r\n beneficiaryStateProvinceLabel: string;\r\n beneficiaryCountryLabel: string;\r\n beneficiaryTaxIDLabel: string;\r\n beneficiaryEmailAddressLabel: string;\r\n beneficiaryTelephoneNumberLabel: string;\r\n}\r\ntype Props = OwnProps;\r\nfunction Component({\r\n formik,\r\n fieldPrefix,\r\n beneficiaryCountries,\r\n labels,\r\n}: Props & FormConnectProps) {\r\n const countryChoices = React.useMemo(() => getCountryChoices(beneficiaryCountries), [\r\n beneficiaryCountries,\r\n ]);\r\n\r\n return (\r\n <>\r\n {formInputs().map((input) => {\r\n if (input.type === 'input') {\r\n return (\r\n \r\n key={input.fieldKey}\r\n fieldKey={input.fieldKey}\r\n label={input.label}\r\n formProps={formik}\r\n {...input.props}\r\n required={input.required}\r\n />\r\n );\r\n } else {\r\n return (\r\n \r\n key={input.fieldKey}\r\n options={input.options ? input.options : []}\r\n fieldKey={input.fieldKey}\r\n label={input.label}\r\n formProps={formik}\r\n {...input.props}\r\n required={input.required}\r\n />\r\n );\r\n }\r\n })}\r\n \r\n );\r\n\r\n function formInputs() {\r\n return [\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryName` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryNameLabel,\r\n type: 'input',\r\n required: true,\r\n },\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryAddress1` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryAddress1Label,\r\n type: 'input',\r\n required: true,\r\n },\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryAddress2` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryAddress2Label,\r\n type: 'input',\r\n required: false,\r\n },\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryCity` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryCityLabel,\r\n type: 'input',\r\n required: true,\r\n },\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryStateProvince` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryStateProvinceLabel,\r\n type: 'input',\r\n required: true,\r\n },\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryCountry` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryCountryLabel,\r\n type: 'select',\r\n options: countryChoices,\r\n required: true,\r\n },\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryTaxID` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryTaxIDLabel,\r\n type: 'input',\r\n required: true,\r\n },\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryEmailAddress` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryEmailAddressLabel,\r\n type: 'input',\r\n required: true,\r\n },\r\n {\r\n fieldKey: `${fieldPrefix}beneficiaryTelephoneNumber` as keyof BeneficiaryPayment,\r\n label: labels.beneficiaryTelephoneNumberLabel,\r\n type: 'input',\r\n required: true,\r\n props: [\r\n {\r\n maxLength: 15,\r\n },\r\n ],\r\n },\r\n ];\r\n }\r\n}\r\n\r\nfunction getCountryChoices(countries: Country[]): SelectOption[] {\r\n return countries\r\n .map((c) => ({ value: c.code, label: c!.name } as SelectOption))\r\n .sort((a, b) => (a.label < b.label ? -1 : a.label > b.label ? 1 : 0));\r\n}\r\n\r\nexport type BeneficiaryPaymentFormTranslations = OwnTranslations;\r\n\r\nexport const BeneficiaryPaymentForm = connect(Component);\r\n","import React, { useState } from 'react';\r\nimport { WireTransferCountryConfig, WireTransferPayment } from './WireTransferPaymentTypes';\r\nimport { connect } from 'formik';\r\nimport {\r\n WireTransferPaymentPreAmbleForm,\r\n WireTransferPaymentPreAmbleFormTranslations,\r\n} from './FieldGroups/WireTransferPaymentPreAmbleForm';\r\nimport { Alert } from '../../Alert/Alert';\r\nimport { BankDetailsForm, BankDetailsFormTranslations } from './FieldGroups/BankDetailsForm';\r\nimport {\r\n BeneficiaryPaymentForm,\r\n BeneficiaryPaymentFormTranslations,\r\n} from './FieldGroups/BeneficiaryPaymentForm';\r\nimport { FormConnectProps } from '../FormikShared';\r\nimport { Country } from '../../../shared/DataStructures/Country';\r\nimport { BankInfo } from '../../../shared/BankInfo/BankInfo';\r\nimport {\r\n getIsThresholdMet,\r\n getIsPreAmbleComplete,\r\n getWireTransferFormValues,\r\n getBankInfoCodesFormats,\r\n getCountryCode,\r\n} from './WireTransferPaymentUtils';\r\n\r\ninterface OwnProps {\r\n paymentAmount: number | null | undefined;\r\n beneficiaryCountries: Country[];\r\n wireTransferConfig: WireTransferCountryConfig[];\r\n formDataObjectKey?: string;\r\n hideFieldsMissingValidationConfig?: boolean;\r\n labels: BankDetailsFormTranslations &\r\n WireTransferPaymentPreAmbleFormTranslations &\r\n BeneficiaryPaymentFormTranslations;\r\n}\r\n\r\ntype OuterProps = OwnProps;\r\n\r\nfunction Component({\r\n formik,\r\n formDataObjectKey,\r\n beneficiaryCountries,\r\n wireTransferConfig,\r\n paymentAmount,\r\n hideFieldsMissingValidationConfig,\r\n labels,\r\n}: OuterProps & FormConnectProps) {\r\n const fieldPrefix = !!formDataObjectKey ? `${formDataObjectKey}.` : '';\r\n const [minimumThreshold, setMinimumThreshold] = useState(0);\r\n const [isPreAmbleValid, setIsPreAmbleValid] = useState(\r\n getIsPreAmbleComplete(formik, formDataObjectKey),\r\n );\r\n const thresholdMet = getIsThresholdMet(paymentAmount, minimumThreshold);\r\n const wireTransferFormValues = getWireTransferFormValues(formik, fieldPrefix);\r\n const bankCodesFormats = getBankInfoCodesFormats(wireTransferFormValues, wireTransferConfig);\r\n\r\n const isRoutingCodeDefined = bankCodesFormats && bankCodesFormats.bankRoutingCodeFormat;\r\n const hideIRCField =\r\n (minimumThreshold === 0 && !isRoutingCodeDefined) ||\r\n (minimumThreshold > 0 &&\r\n paymentAmount !== null &&\r\n paymentAmount !== undefined &&\r\n paymentAmount >= minimumThreshold &&\r\n !isRoutingCodeDefined) ||\r\n (hideFieldsMissingValidationConfig && minimumThreshold > 0 && !isRoutingCodeDefined);\r\n\r\n return (\r\n <>\r\n setMinimumThreshold(threshold)}\r\n labels={wireTransferPreAmbleLabels()}\r\n isPreAmbleValidOnInit={isPreAmbleValid}\r\n setIsPreAmbleValid={(isValid) =>\r\n setIsPreAmbleValid(isValid && getIsPreAmbleComplete(formik, formDataObjectKey))\r\n }\r\n />\r\n\r\n {isPreAmbleValid && !thresholdMet && (\r\n \r\n \r\n \r\n )}\r\n\r\n {isPreAmbleValid && labels.thresholdNotMetDividendInfoLabel && minimumThreshold > 0 && (\r\n \r\n \r\n \r\n )}\r\n\r\n {isPreAmbleValid && thresholdMet && (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n function wireTransferPreAmbleLabels() {\r\n return {\r\n bankInfoTitle: labels.bankInfoTitle,\r\n thresholdNotMetWarningLabel: labels.thresholdNotMetWarningLabel,\r\n thresholdNotMetDividendInfoLabel: labels.thresholdNotMetDividendInfoLabel,\r\n countryLabel: labels.countryLabel,\r\n countryPlaceholder: labels.countryPlaceholder,\r\n currencyLabel: labels.currencyLabel,\r\n currencyPlaceholder: labels.currencyPlaceholder,\r\n };\r\n }\r\n\r\n function bankDetailsLabels() {\r\n return {\r\n bankNameLabel: labels.bankNameLabel,\r\n bankCityLabel: labels.bankCityLabel,\r\n bankSwiftBicCodeLabel: labels.bankSwiftBicCodeLabel,\r\n bankInternationalRoutingCodeLabel: labels.bankInternationalRoutingCodeLabel,\r\n bankAccountNumberLabel: labels.bankAccountNumberLabel,\r\n bankAccountTypeLabel: labels.bankAccountTypeLabel,\r\n bankAccountTypeSavingsLabel: labels.bankAccountTypeSavingsLabel,\r\n bankAccountTypeCheckingLabel: labels.bankAccountTypeCheckingLabel,\r\n };\r\n }\r\n\r\n function beneficiaryFormLabels() {\r\n return {\r\n beneficiaryNameLabel: labels.beneficiaryNameLabel,\r\n beneficiaryAddress1Label: labels.beneficiaryAddress1Label,\r\n beneficiaryAddress2Label: labels.beneficiaryAddress2Label,\r\n beneficiaryCityLabel: labels.beneficiaryCityLabel,\r\n beneficiaryStateProvinceLabel: labels.beneficiaryStateProvinceLabel,\r\n beneficiaryCountryLabel: labels.beneficiaryCountryLabel,\r\n beneficiaryTaxIDLabel: labels.beneficiaryTaxIDLabel,\r\n beneficiaryEmailAddressLabel: labels.beneficiaryEmailAddressLabel,\r\n beneficiaryTelephoneNumberLabel: labels.beneficiaryTelephoneNumberLabel,\r\n };\r\n }\r\n}\r\n\r\nexport const WireTransferPaymentForm = connect(Component);\r\n","import { ObjectSchemaDefinition, string } from 'yup';\r\nimport { BeneficiaryPayment } from '../WireTransferPaymentTypes';\r\n\r\nconst BEN_NAME_MAX_LENGTH = 35;\r\nconst BEN_ADDRESS1_MAX_LENGTH = 35;\r\nconst BEN_ADDRESS2_MAX_LENGTH = 35;\r\nconst BEN_CITY_MAX_LENGTH = 35;\r\nconst BEN_STATE_PROVINCE_MAX_LENGTH = 35;\r\nconst BEN_TAX_ID_MAX_LENGTH = 35;\r\nconst BEN_EMAIL_MAX_LENGTH = 100;\r\nconst BEN_PHONE_MAX_LENGTH = 35;\r\n\r\nconst BEN_PHONE_NUMBER_REGEXP = /^\\d{1,30}$/;\r\nconst BANK_ACCOUNT_NAME_REGEXP = /^[a-zA-Z\\d\\s\\-.&,'\"()"]{1,35}$/;\r\nconst BEN_ADDRESS_REGEXP = /^[\\s\\w\\-/]{0,35}$/;\r\nconst BEN_CITY_REGEXP = /^[\\da-zA-Z\\s]{1,30}$/;\r\nconst BEN_STATE_PROVINCE_REGEXP = /^[\\s\\w]{1,3}$/;\r\nconst BEN_TAX_ID_REGEXP = /^\\w{1,35}$/;\r\nconst BEN_EMAIL_REGEXP = /[a-zA-Z0-9!#$%^&_-]+(?:\\.[a-zA-Z0-9!#$%^&_-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?/;\r\n\r\nexport interface BeneficiaryPaymentFormValidationTranslations {\r\n beneficiaryNameRequiredMessage: string;\r\n beneficiaryNameFormatMessage: string;\r\n beneficiaryAddress1RequiredMessage: string;\r\n beneficiaryAddress1FormatMessage: string;\r\n beneficiaryAddress2FormatMessage: string;\r\n beneficiaryCityRequiredMessage: string;\r\n beneficiaryCityFormatMessage: string;\r\n beneficiaryStateProvinceRequiredMessage: string;\r\n beneficiaryStateProvinceFormatMessage: string;\r\n beneficiaryCountryRequiredMessage: string;\r\n beneficiaryTaxIDRequiredMessage: string;\r\n beneficiaryTaxIDFormatMessage: string;\r\n beneficiaryEmailAddressRequiredMessage: string;\r\n beneficiaryEmailAddressFormatMessage: string;\r\n beneficiaryTelephoneNumberRequiredMessage: string;\r\n beneficiaryTelephoneNumberFormatMessage: string;\r\n}\r\nexport function getBeneficiaryPaymentFormValidationSchemaDefinition(\r\n t: BeneficiaryPaymentFormValidationTranslations,\r\n): ObjectSchemaDefinition {\r\n return {\r\n beneficiaryName: string()\r\n .required(t.beneficiaryNameRequiredMessage)\r\n .max(BEN_NAME_MAX_LENGTH, t.beneficiaryNameFormatMessage)\r\n .matches(BANK_ACCOUNT_NAME_REGEXP, {\r\n message: t.beneficiaryNameFormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n beneficiaryAddress1: string()\r\n .required(t.beneficiaryAddress1RequiredMessage)\r\n .max(BEN_ADDRESS1_MAX_LENGTH, t.beneficiaryAddress1FormatMessage)\r\n .matches(BEN_ADDRESS_REGEXP, {\r\n message: t.beneficiaryAddress1FormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n beneficiaryAddress2: string()\r\n .max(BEN_ADDRESS2_MAX_LENGTH, t.beneficiaryAddress2FormatMessage)\r\n .matches(BEN_ADDRESS_REGEXP, {\r\n message: t.beneficiaryAddress2FormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n beneficiaryCity: string()\r\n .required(t.beneficiaryCityRequiredMessage)\r\n .max(BEN_CITY_MAX_LENGTH, t.beneficiaryCityFormatMessage)\r\n .matches(BEN_CITY_REGEXP, {\r\n message: t.beneficiaryCityFormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n beneficiaryCountry: string().required(t.beneficiaryCountryRequiredMessage),\r\n beneficiaryEmailAddress: string()\r\n .required(t.beneficiaryEmailAddressRequiredMessage)\r\n .max(BEN_EMAIL_MAX_LENGTH, t.beneficiaryEmailAddressFormatMessage)\r\n .matches(BEN_EMAIL_REGEXP, {\r\n message: t.beneficiaryEmailAddressFormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n beneficiaryStateProvince: string()\r\n .required(t.beneficiaryStateProvinceRequiredMessage)\r\n .max(BEN_STATE_PROVINCE_MAX_LENGTH, t.beneficiaryStateProvinceFormatMessage)\r\n .matches(BEN_STATE_PROVINCE_REGEXP, {\r\n message: t.beneficiaryStateProvinceFormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n beneficiaryTaxID: string()\r\n .required(t.beneficiaryTaxIDRequiredMessage)\r\n .max(BEN_TAX_ID_MAX_LENGTH, t.beneficiaryTaxIDFormatMessage)\r\n .matches(BEN_TAX_ID_REGEXP, {\r\n message: t.beneficiaryTaxIDFormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n beneficiaryTelephoneNumber: string()\r\n .required(t.beneficiaryTelephoneNumberRequiredMessage)\r\n .max(BEN_PHONE_MAX_LENGTH, t.beneficiaryTelephoneNumberFormatMessage)\r\n .matches(BEN_PHONE_NUMBER_REGEXP, {\r\n message: t.beneficiaryTelephoneNumberFormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n };\r\n}\r\n","import { mixed, ObjectSchemaDefinition, string } from 'yup';\r\nimport { BankAccount, WireTransferCountryConfig } from '../WireTransferPaymentTypes';\r\nimport { mapValidationFormatStringToRegExp } from '../../../../shared/RegExp/mapValidationFormatStringToRegExp';\r\nimport { BankAccountType } from '../../../../shared/DataStructures/BankAccount/BankAccount.model';\r\n\r\nconst BANK_NAME_MAX_LENGTH = 20;\r\nconst BANK_CITY_MAX_LENGTH = 20;\r\nconst SWIFT_BIC_MAX_LENGTH = 11;\r\nconst INTL_ROUTING_CODE_MAX_LENGTH = 11;\r\nconst BANK_ACCOUNT_NUMBER_MAX_LENGTH = 35;\r\n\r\nconst BANK_CITY_REGEXP = /^[a-zA-Z0-9\\s]{1,30}$/;\r\n// eslint-disable-next-line\r\nconst BANK_NAME_FORMAT_REGEX = /^[a-zA-Z\\d\\s\\-\\.\\&\\,\\'\\\"\\()\\"]{1,35}$/;\r\n\r\nexport interface BankDetailsFormValidationTranslations {\r\n currencyRequiredMessage: string;\r\n bankCityRequiredMessage: string;\r\n bankCityFormatMessage: string;\r\n bankNameRequiredMessage: string;\r\n bankNameFormatMessage: string;\r\n bankAccountNumberRequiredMessage: string;\r\n bankAccountNumberFormatMessage: string;\r\n bankAccountTypeRequiredMessage: string;\r\n bankCountryCodeRequiredMessage: string;\r\n bankInternationalRoutingCodeRequiredMessage: string;\r\n bankInternationalRoutingCodeFormatMessage: string;\r\n bankSwiftBicCodeRequiredMessage: string;\r\n bankSwiftBicCodeFormatMessage: string;\r\n}\r\nexport function getBankDetailsFormValidationSchemaDefinition(\r\n t: BankDetailsFormValidationTranslations,\r\n wireTransferCountryConfig: WireTransferCountryConfig[],\r\n): ObjectSchemaDefinition {\r\n return {\r\n currency: string().required(t.currencyRequiredMessage),\r\n bankCity: string()\r\n .required(t.bankCityRequiredMessage)\r\n .max(BANK_CITY_MAX_LENGTH, t.bankCityFormatMessage)\r\n .matches(BANK_CITY_REGEXP, { message: t.bankCityFormatMessage, excludeEmptyString: true }),\r\n bankName: string()\r\n .required(t.bankNameRequiredMessage)\r\n .max(BANK_NAME_MAX_LENGTH, t.bankNameFormatMessage)\r\n .matches(BANK_NAME_FORMAT_REGEX, {\r\n message: t.bankNameFormatMessage,\r\n excludeEmptyString: true,\r\n }),\r\n bankAccountNumber: getRegExpValidation(\r\n BANK_ACCOUNT_NUMBER_MAX_LENGTH,\r\n t.bankAccountNumberRequiredMessage,\r\n t.bankAccountNumberFormatMessage,\r\n t.bankAccountNumberFormatMessage,\r\n wireTransferCountryConfig,\r\n 'account',\r\n ),\r\n bankAccountType: mixed().oneOf(\r\n [BankAccountType.Checking, BankAccountType.Savings],\r\n t.bankAccountTypeRequiredMessage,\r\n ),\r\n bankCountryCode: string().required(t.bankCountryCodeRequiredMessage),\r\n bankInternationalRoutingCode: getRegExpValidation(\r\n INTL_ROUTING_CODE_MAX_LENGTH,\r\n t.bankInternationalRoutingCodeRequiredMessage,\r\n t.bankInternationalRoutingCodeFormatMessage,\r\n t.bankInternationalRoutingCodeFormatMessage,\r\n wireTransferCountryConfig,\r\n 'routing',\r\n ),\r\n bankSwiftBicCode: getRegExpValidation(\r\n SWIFT_BIC_MAX_LENGTH,\r\n t.bankSwiftBicCodeRequiredMessage,\r\n t.bankSwiftBicCodeFormatMessage,\r\n t.bankSwiftBicCodeFormatMessage,\r\n wireTransferCountryConfig,\r\n 'swift',\r\n ),\r\n };\r\n}\r\n\r\nfunction getRegExpValidation(\r\n maxLength: number,\r\n requiredLabel: string,\r\n maxLabel: string,\r\n matchesLabel: string,\r\n wireTransferCountryConfig: WireTransferCountryConfig[],\r\n formatType: 'account' | 'routing' | 'swift',\r\n) {\r\n let format = '';\r\n\r\n return string().when(['bankCountryCode'], {\r\n is: (code: string) => {\r\n const selectedCountry = wireTransferCountryConfig.find((c) => c.code === code);\r\n if (!selectedCountry) {\r\n return false;\r\n }\r\n if (formatType === 'account') {\r\n format = selectedCountry.bankAccountNumberFormat;\r\n }\r\n if (formatType === 'routing') {\r\n format = selectedCountry.bankRoutingCodeFormat;\r\n }\r\n if (formatType === 'swift') {\r\n format = selectedCountry.bankSwiftCodeFormat;\r\n }\r\n\r\n return !!format;\r\n },\r\n then: () =>\r\n string()\r\n .required(requiredLabel)\r\n .max(format.length || maxLength, maxLabel)\r\n .matches(mapValidationFormatStringToRegExp(format), {\r\n message: matchesLabel,\r\n excludeEmptyString: true,\r\n }),\r\n otherwise: string(),\r\n });\r\n}\r\n","import { ObjectSchemaDefinition } from 'yup';\r\nimport { WireTransferPayment, WireTransferCountryConfig } from './WireTransferPaymentTypes';\r\nimport {\r\n BeneficiaryPaymentFormValidationTranslations,\r\n getBeneficiaryPaymentFormValidationSchemaDefinition,\r\n} from './FieldGroups/BeneficiaryPaymentFormValidation';\r\nimport {\r\n BankDetailsFormValidationTranslations,\r\n getBankDetailsFormValidationSchemaDefinition,\r\n} from './FieldGroups/BankDetailsFormValidation';\r\n\r\nexport type WireTransferPaymentFormValidationTranslations = BeneficiaryPaymentFormValidationTranslations &\r\n BankDetailsFormValidationTranslations;\r\n\r\nexport function getWireTransferPaymentFormValidationSchemaDefinition(\r\n t: WireTransferPaymentFormValidationTranslations,\r\n wireTransferCountryConfig: WireTransferCountryConfig[],\r\n): ObjectSchemaDefinition {\r\n return {\r\n ...getBeneficiaryPaymentFormValidationSchemaDefinition(t),\r\n ...getBankDetailsFormValidationSchemaDefinition(t, wireTransferCountryConfig),\r\n };\r\n}\r\n","import { BankAccount } from './BankAccount.model';\r\nimport { APP_CONFIG } from '../../../config';\r\nimport { useApiGet } from '../../../api/api.hooks';\r\n\r\nexport function useBankAccounts(accountNumber: number) {\r\n return useApiGet(APP_CONFIG.api.account.bankAccounts(accountNumber));\r\n}\r\n","export * from './BankAccount.model';\r\nexport * from './BankAccount.hooks';\r\n","import { createAction } from '../../../../store/reduxBoilerplate';\r\nimport { FormValues, ProxyDeliveryData, ProxyDeliveryUpdateRequest } from '../model';\r\n\r\nexport enum ProxyDeliveryPreferencesActionTypes {\r\n LOAD = '[Proxy Delivery Preferences] LOAD',\r\n LOAD_DONE = '[Proxy Delivery Preferences] LOAD_DONE',\r\n LOAD_FAIL = '[Proxy Delivery Preferences] LOAD_FAIL',\r\n\r\n SET_EDIT_MODE_ON = '[Proxy Delivery Preferences] SET_EDIT_MODE_ON',\r\n SET_EDIT_MODE_OFF = '[Proxy Delivery Preferences] SET_EDIT_MODE_OFF',\r\n\r\n SET_CONFIRM_ON = '[Proxy Delivery Preferences] SET_CONFIRM_ON',\r\n SET_CONFIRM_OFF = '[Proxy Delivery Preferences] SET_CONFIRM_OFF',\r\n\r\n CONFIRM = '[Proxy Delivery Preferences] CONFIRM',\r\n CONFIRM_DONE = '[Proxy Delivery Preferences] CONFIRM_DONE',\r\n CONFIRM_FAIL = '[Proxy Delivery Preferences] CONFIRM_FAIL',\r\n}\r\n\r\nconst PDP = ProxyDeliveryPreferencesActionTypes;\r\n\r\nexport const proxyDeliveryPreferencesActions = {\r\n load: () => createAction(PDP.LOAD),\r\n loadDone: (p: ProxyDeliveryData) => createAction(PDP.LOAD_DONE, p),\r\n loadFail: () => createAction(PDP.LOAD_FAIL),\r\n setEditModeOn: () => createAction(PDP.SET_EDIT_MODE_ON),\r\n setEditModeOff: () => createAction(PDP.SET_EDIT_MODE_OFF),\r\n setConfirmOn: (p: FormValues) => createAction(PDP.SET_CONFIRM_ON, p),\r\n setConfirmOff: () => createAction(PDP.SET_CONFIRM_OFF),\r\n confirm: (p: ProxyDeliveryUpdateRequest) => createAction(PDP.CONFIRM, p),\r\n confirmDone: (p: ProxyDeliveryData) => createAction(PDP.CONFIRM_DONE, p),\r\n confirmFail: () => createAction(PDP.CONFIRM_FAIL),\r\n};\r\n","import { ApiService, ERROR_CODE_CANCEL, UrlParams } from './api.service';\r\nimport { useEffect, useState, MutableRefObject, useRef, useCallback } from 'react';\r\nimport axios, { CancelTokenSource } from 'axios';\r\nimport { ApiResponse, ApiValidationError } from '../lib/Form/Validation/validation.model';\r\n\r\nexport type ExecutionStatus = 'Success' | 'Failure' | 'InquiryMode';\r\n\r\nexport type Status = {\r\n [P in keyof T]: T[P];\r\n} & { executionStatus?: ExecutionStatus };\r\n\r\nexport interface ApiHookState {\r\n data: T | null;\r\n error: any;\r\n loading: boolean;\r\n retry: () => void;\r\n}\r\n\r\ninterface ApiRequestHookType {\r\n data: T | null;\r\n error: any;\r\n loading: boolean;\r\n source: any;\r\n}\r\n\r\ntype MethodType = 'get' | 'post' | 'delete' | 'put';\r\n\r\ninterface ApiRequestHookTypeResponse {\r\n data: Status> | null;\r\n error: string[];\r\n loading: boolean;\r\n}\r\n\r\nexport interface ApiRequestResponse {\r\n url: string;\r\n isSuccess: boolean;\r\n data: T | null;\r\n errors?: string[];\r\n}\r\n\r\ninterface ApiPerformRequestHookType extends ApiRequestHookType {\r\n source: CancelTokenSource | undefined;\r\n}\r\n\r\nexport function useApiRequestWithResponse(\r\n url: string,\r\n method: MethodType,\r\n params?: UrlParams,\r\n): [(body?: any) => Promise>>, Status>] {\r\n const [loading, setLoading] = useState(false);\r\n const [data, setData] = useState> | null>(null);\r\n const [error, setError] = useState([]);\r\n const [status, setStatus] = useState(undefined);\r\n\r\n const performRequest = useCallback(\r\n async (body: any = null) => {\r\n let isSuccess: boolean;\r\n let responseContent: T | null = null;\r\n let errors: string[] = [];\r\n let executionStatus: ExecutionStatus | undefined = undefined;\r\n\r\n try {\r\n setLoading(true);\r\n setData(null);\r\n setError([]);\r\n const responseData = await ApiService.request>>({\r\n url,\r\n params,\r\n data: body,\r\n method,\r\n });\r\n setData(responseData);\r\n setStatus(responseData.executionStatus);\r\n\r\n isSuccess = !!(responseData && responseData.success);\r\n responseContent = responseData && responseData.data;\r\n executionStatus = responseData.executionStatus;\r\n if (!isSuccess) {\r\n errors =\r\n (responseData && responseData.errors && responseData.errors.map((e) => e.errorCode)) ||\r\n [];\r\n setError(errors);\r\n }\r\n } catch (e) {\r\n setError(e);\r\n isSuccess = false;\r\n } finally {\r\n setLoading(false);\r\n }\r\n\r\n return { url, isSuccess, errors, data: responseContent, executionStatus };\r\n },\r\n [method, params, url],\r\n );\r\n\r\n return [performRequest, { data, error, loading, executionStatus: status }];\r\n}\r\n\r\nexport function useApiGet(url: string, params?: UrlParams): ApiHookState {\r\n const mounted = useRef(true);\r\n const [tick, setTick] = useState(Symbol(''));\r\n const { loading, data, error, source } = usePerformRequestWithTick(mounted, tick, url, params);\r\n\r\n // Set mounted ref to null for the state not to update after component is unmounted;\r\n mounted.current = useCancelRequestOnUnMount(source, mounted);\r\n\r\n return { data, error, loading, retry: () => setTick(Symbol('t')) };\r\n}\r\n\r\nexport function useApiRequest(\r\n url: string,\r\n method: MethodType,\r\n params?: UrlParams,\r\n): [(body?: any) => Promise, ApiRequestHookType] {\r\n const mounted = useRef(true);\r\n const [performRequest, { loading, data, error, source }] = usePerformRequest(\r\n mounted,\r\n method,\r\n url,\r\n params,\r\n );\r\n\r\n mounted.current = useCancelRequestOnUnMount(source, mounted);\r\n return [performRequest, { data, error, loading, source }];\r\n}\r\n\r\nfunction useCancelRequestOnUnMount(\r\n source: CancelTokenSource | undefined,\r\n mounted: MutableRefObject,\r\n): boolean {\r\n useEffect(() => {\r\n return () => {\r\n source && ApiService.cancelRequest(source);\r\n mounted.current = false;\r\n };\r\n }, [source, mounted]);\r\n\r\n return mounted.current;\r\n}\r\n\r\nfunction usePerformRequestWithTick(\r\n mounted: MutableRefObject,\r\n tick: Symbol,\r\n url: string,\r\n params?: UrlParams,\r\n): ApiPerformRequestHookType {\r\n const [data, setData] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [error, setError] = useState(null);\r\n const source = useRef(undefined);\r\n\r\n useEffect(() => {\r\n let viewMounted = true;\r\n\r\n const removeSource = () => {\r\n if (mounted.current) source.current = undefined;\r\n };\r\n\r\n if (source.current) {\r\n ApiService.cancelRequest(source.current);\r\n }\r\n if (mounted.current) {\r\n setLoading(true);\r\n setData(null);\r\n setError(null);\r\n }\r\n\r\n const newSource = axios.CancelToken.source();\r\n\r\n ApiService.get>(url, params, newSource.token)\r\n .then((response) => {\r\n if (viewMounted) {\r\n removeSource();\r\n if (response.success) {\r\n setData(response.data);\r\n setLoading(false);\r\n } else {\r\n setError(response.errors);\r\n setLoading(false);\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n if (viewMounted) {\r\n removeSource();\r\n if (error.code !== ERROR_CODE_CANCEL) {\r\n setError(error);\r\n setLoading(false);\r\n }\r\n }\r\n });\r\n return () => {\r\n viewMounted = false;\r\n ApiService.cancelRequest(newSource);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [url, JSON.stringify(params), tick, mounted]);\r\n\r\n return { loading, data, error, source: source.current };\r\n}\r\n\r\nfunction usePerformRequest(\r\n mounted: MutableRefObject,\r\n method: MethodType,\r\n url: string,\r\n params?: UrlParams,\r\n): [(body?: any) => Promise, ApiPerformRequestHookType] {\r\n const [loading, setLoading] = useState(false);\r\n const [data, setData] = useState(null);\r\n const [error, setError] = useState(null);\r\n const [source, setSource] = useState(undefined);\r\n\r\n const removeSource = () => mounted.current && setSource(undefined);\r\n\r\n const performRequest = async (body: any = null) => {\r\n let isSuccess: boolean;\r\n if (source) {\r\n ApiService.cancelRequest(source);\r\n }\r\n\r\n if (mounted.current) {\r\n setLoading(true);\r\n setData(null);\r\n setError(null);\r\n }\r\n\r\n const newSource = axios.CancelToken.source();\r\n setSource(newSource);\r\n\r\n try {\r\n setLoading(true);\r\n setData(null);\r\n setError(null);\r\n\r\n const response = await ApiService.request>({\r\n url,\r\n params,\r\n data: body,\r\n method,\r\n });\r\n\r\n if (response.data) {\r\n setData(response.data);\r\n }\r\n\r\n if (response.errors) {\r\n setError(response.errors);\r\n }\r\n\r\n if (response.success && !response.errors && !response.data) {\r\n setData({ success: true });\r\n }\r\n\r\n isSuccess = response.success;\r\n } catch (e) {\r\n e.message = 'Something went wrong when processing your request. Please try again later.';\r\n setError(e);\r\n\r\n isSuccess = false;\r\n } finally {\r\n setLoading(false);\r\n }\r\n\r\n ApiService.cancelRequest(newSource);\r\n removeSource();\r\n return isSuccess;\r\n };\r\n\r\n return [performRequest, { loading, data, error, source }];\r\n}\r\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React from 'react';\r\nimport { styled } from '../../style';\r\nimport { IconName, IconProp } from './IconsProvider';\r\n\r\ninterface OwnProps {\r\n name: IconName | IconProp; // remain using IconName to be compatible with other places for now.\r\n className?: string;\r\n color?: string;\r\n size?: number;\r\n}\r\n\r\nexport const Icon = ({ name, className, color, size }: OwnProps) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Container = styled(FontAwesomeIcon)`\r\n position: relative;\r\n`;\r\n","import { createAction } from '../../../../store/reduxBoilerplate';\r\nimport { UpdateRequest, DeliveryPreferencesFormData, DeliveryData } from '../model';\r\nimport { ModalProps } from '../../../../lib/Modal/store/model';\r\n\r\nexport enum DeliveryPreferencesActionTypes {\r\n LOAD = '[Delivery Preferences] LOAD',\r\n LOAD_DONE = '[Delivery Preferences] LOAD_DONE',\r\n LOAD_FAIL = '[Delivery Preferences] LOAD_FAIL',\r\n\r\n SET_EDIT_MODE = '[Delivery Preferences] SET_EDIT_MODE',\r\n UNSET_EDIT_MODE = '[Delivery Preferences] UNSET_EDIT_MODE',\r\n\r\n SET_CONFIRM_ON = '[Delivery Preferences] SET_CONFIRM_ON',\r\n SET_CONFIRM_OFF = '[Delivery Preferences] SET_CONFIRM_OFF',\r\n CONFIRM = '[Delivery Preferences] CONFIRM',\r\n CONFIRM_DONE = '[Delivery Preferences] CONFIRM_DONE',\r\n CONFIRM_FAIL = '[Delivery Preferences] CONFIRM_FAIL',\r\n}\r\n\r\nconst DP = DeliveryPreferencesActionTypes;\r\n\r\nexport const deliveryPreferencesActions = {\r\n load: () => createAction(DP.LOAD),\r\n loadDone: (data: DeliveryData) => createAction(DP.LOAD_DONE, data),\r\n loadFail: () => createAction(DP.LOAD_FAIL),\r\n setEditModeOn: () => createAction(DP.SET_EDIT_MODE),\r\n setEditModeOff: () => createAction(DP.UNSET_EDIT_MODE),\r\n setConfirmOn: (data: DeliveryPreferencesFormData) => createAction(DP.SET_CONFIRM_ON, data),\r\n setConfirmOFF: () => createAction(DP.SET_CONFIRM_OFF),\r\n confirm: (data: UpdateRequest, inquiryModalProps: ModalProps) =>\r\n createAction(DP.CONFIRM, { data, inquiryModalProps }),\r\n confirmDone: (data: DeliveryData) => createAction(DP.CONFIRM_DONE, data),\r\n confirmFail: () => createAction(DP.CONFIRM_FAIL),\r\n};\r\n","import { createAction } from '../../../../store/reduxBoilerplate';\r\nimport { TaxCertificationData, CitizenshipCountry } from '../model';\r\n\r\nexport enum TaxCertificationActionTypes {\r\n LOAD = '[Tax Certification] LOAD',\r\n LOAD_DONE = '[Tax Certification] LOAD_DONE',\r\n LOAD_FAIL = '[Tax Certification] LOAD_FAIL',\r\n\r\n LOAD_COUNTRIES = '[Tax Certification] LOAD_COUNTRIES',\r\n LOAD_COUNTRIES_DONE = '[Tax Certification] LOAD_COUNTRIES_DONE',\r\n LOAD_COUNTRIES_FAIL = '[Tax Certification] LOAD_COUNTRIES_FAIL',\r\n}\r\n\r\nconst actionTypes = TaxCertificationActionTypes;\r\n\r\nexport const taxCertificationActions = {\r\n load: () => createAction(actionTypes.LOAD),\r\n loadDone: (p: TaxCertificationData) => createAction(actionTypes.LOAD_DONE, p),\r\n loadFail: () => createAction(actionTypes.LOAD_FAIL),\r\n\r\n loadCountries: () => createAction(actionTypes.LOAD_COUNTRIES),\r\n loadCountriesDone: (data: CitizenshipCountry[]) =>\r\n createAction(actionTypes.LOAD_COUNTRIES_DONE, { data }),\r\n loadCountriesFail: () => createAction(actionTypes.LOAD_COUNTRIES_FAIL),\r\n};\r\n","import React from 'react';\r\nimport { DatePicker } from '..';\r\nimport { FormField } from '../Validation/FormField';\r\nimport { FormGroupDateProps } from './FormGroupFields.model';\r\nimport { FormGroupWrapper } from './FormGroupWrapper';\r\n\r\ninterface OwnProps extends FormGroupDateProps {\r\n isUTCDateRequired?: boolean;\r\n}\r\n\r\nexport function FormGroupDate({\r\n fieldKey,\r\n formProps,\r\n label,\r\n placeholder,\r\n required,\r\n dateFormat,\r\n minDate,\r\n maxDate,\r\n tooltipHeader,\r\n tooltipContent,\r\n isUTCDateRequired,\r\n}: OwnProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { FormField } from '../Validation/FormField';\r\nimport { Input } from '../Input';\r\nimport { FormGroupInputProps } from './FormGroupFields.model';\r\nimport { FormGroupWrapper } from './FormGroupWrapper';\r\n\r\ninterface OwnProps extends FormGroupInputProps {\r\n component?: React.FC;\r\n noValidation?: boolean;\r\n onBlur?: (e: React.FocusEvent) => void;\r\n onChange?: (e: React.ChangeEvent) => void;\r\n}\r\n\r\nexport function FormGroupInput({\r\n component,\r\n formProps,\r\n fieldKey,\r\n type,\r\n required,\r\n label,\r\n placeholder,\r\n maxLength,\r\n onBlur,\r\n onChange,\r\n noValidation,\r\n tooltipHeader,\r\n tooltipContent,\r\n disabled,\r\n}: OwnProps) {\r\n return (\r\n \r\n \r\n type={type || 'text'}\r\n fieldKey={fieldKey}\r\n formProps={formProps}\r\n component={component || Input}\r\n placeholder={placeholder}\r\n onBlur={onBlur}\r\n onChange={onChange as any}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n />\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { styled } from '../../../style/theme/themeModule';\r\nimport { GroupLabel } from '../GroupLabel';\r\nimport { FormGroup } from '../FormGroup';\r\n\r\ninterface OwnProps {\r\n label: string;\r\n}\r\n\r\nexport function FormGroupDisplay({ label, children }: React.PropsWithChildren) {\r\n return (\r\n \r\n {label}\r\n {children}\r\n \r\n );\r\n}\r\n\r\nconst StyledFormGroup = styled(FormGroup)`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n","import React from 'react';\r\nimport { SelectOption } from '../Select/select.model';\r\nimport { FormField } from '../Validation/FormField';\r\nimport { FormikSelect } from '../Select';\r\nimport { FormGroupEditorProps } from './FormGroupFields.model';\r\nimport { FormGroupWrapper } from './FormGroupWrapper';\r\n\r\ninterface OwnProps extends FormGroupEditorProps {\r\n id?: string;\r\n onSelect?: (value: any) => void;\r\n options: SelectOption[];\r\n}\r\n\r\nexport function FormGroupSelect({\r\n id,\r\n disabled,\r\n formProps,\r\n fieldKey,\r\n required,\r\n options,\r\n label,\r\n placeholder,\r\n onSelect,\r\n tooltipHeader,\r\n tooltipContent,\r\n}: OwnProps) {\r\n return (\r\n \r\n \r\n id={id}\r\n fieldKey={fieldKey}\r\n formProps={formProps}\r\n component={FormikSelect}\r\n placeholder={placeholder}\r\n options={options}\r\n disabled={disabled}\r\n onBlur={() => formProps.setFieldTouched(fieldKey, true)}\r\n onSelect={handleSelect}\r\n />\r\n \r\n );\r\n\r\n function handleSelect(selectedOption: SelectOption) {\r\n if (typeof onSelect === 'function') {\r\n onSelect(selectedOption.value);\r\n }\r\n }\r\n}\r\n","import React from 'react';\r\nimport { FormField } from '../Validation/FormField';\r\nimport { FormGroupInputProps } from './FormGroupFields.model';\r\nimport { Checkbox, FormGroup, Label } from '..';\r\nimport { ValidationError } from '../Validation/ValidationError';\r\nimport { LabelIconWithTooltip } from '../LabelIconWithTooltip';\r\n\r\ninterface OwnProps extends FormGroupInputProps {\r\n hideError?: boolean;\r\n tooltipHeader?: string;\r\n tooltipContent?: string;\r\n}\r\n\r\nexport function FormGroupCheckbox({\r\n formProps,\r\n fieldKey,\r\n required,\r\n label,\r\n disabled,\r\n id,\r\n hideError,\r\n tooltipHeader,\r\n tooltipContent,\r\n}: OwnProps) {\r\n const showError = !hideError;\r\n const useTooltip = !!tooltipHeader && !!tooltipContent;\r\n\r\n return (\r\n \r\n \r\n\r\n {!!formProps && !!fieldKey && showError && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n","export { FormGroupDate } from './FormGroupDate';\r\nexport { FormGroupInput } from './FormGroupInput';\r\nexport { FormGroupDisplay } from './FormGroupDisplay';\r\nexport { FormGroupSelect } from './FormGroupSelect';\r\nexport { FormGroupCheckbox } from './FormGroupCheckbox';\r\nexport { FormGroupRadioGroup } from './FormGroupRadioGroup';\r\nexport { FormGroupInputMask } from './FormGroupInputMask';\r\n","export enum SpecialCountries {\r\n USA = 'L1',\r\n CANADA = '33',\r\n}\r\n\r\nexport enum TaxCertificationTypes {\r\n Individual = 'Individual',\r\n Corporation = 'Corporation',\r\n}\r\n\r\n// TOOD research how to cast in TypeScript from BINARY to boolean and then if possible reuse\r\nexport enum BINARY {\r\n No = '0',\r\n Yes = '1',\r\n}\r\n"],"sourceRoot":""}