{"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","pages/AccountSettings/DeliveryPreferences/model.ts","lib/Form/Validation/WithValidation.tsx","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","lib/Alert/Alert.tsx","style/style.constants.tsx","store/rootModel.ts","lib/Form/Button.tsx","pages/Dividend/components/Details/DividendDetailsForm.tsx","pages/Dividend/components/Payment/helpers/dividendPaymentForm.constants.tsx","containers/CmsData/store lazy /^.*$/ groupOptions: {} namespace object","lib/Form/Label.tsx","lib/Form/FormGroup.tsx","serviceWorker.ts","style/StylesProvider/StylesProvider.tsx","lib/Icon/IconsProvider.tsx","containers/Format/store/actions.ts","containers/Format/store/selectors.ts","pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.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/ProxyDeliveryPreferences/store/proxyDeliveryPreferences.actions.ts","pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.reducer.ts","containers/Animation/store/animation.actions.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/utils.ts","pages/AccountSettings/DeliveryPreferences/store/deliveryPreferences.sagas.ts","pages/Dividend/store/dividend.sagas.ts","pages/AccountSettings/ProxyDeliveryPreferences/utils.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","shared/DataStructures/BankAccount/BankAccount.model.tsx","style/theme/theme.ts","pages/Dividend/components/Details/helpers/dividendDetailsForm.utils.tsx","pages/Shares/Sell/models/SellSharesSelectors.ts","lib/Spinner/Spinner.tsx","containers/CmsData/index.tsx","pages/AccountSettings/Address/store/address.actions.ts","pages/Dividend/components/Payment/helpers/dividendPaymentForm.model.tsx","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","pages/Shares/Shared/utils.ts","api/api.utils.ts","api/api.service.constants.ts","api/api.service.ts","lib/Modal/Templates/Modal.Basic.tsx","lib/Modal/Templates/Modal.Agreement.tsx","lib/Modal/Templates/Modal.Info.tsx","lib/Modal/Modal.Root.tsx","containers/CmsData/store/cmsData.hooks.tsx","pages/AccountSettings/Address/store/address.enums.ts","lib/Form/Validation/validation.utils.ts","routing/routes.ts","pages/Shares/Sell/models/SellSharesTypes.ts","pages/TermsAndConditions/model.ts","pages/Shares/Sell/models/SellSharesHooks.ts","containers/CmsData/CmsDataProvider.tsx","style/theme/defaultColors.ts","style/theme/defaultTypography.ts","style/theme/branding.ts","pages/AccountSettings/AccountProfile/store/accountProfile.actions.ts","pages/Dividend/components/Payment/DividendPaymentSecondaryAddress.tsx","pages/Dividend/components/Payment/DividendPaymentOnlyOption.tsx","pages/Dividend/components/Payment/helpers/dividendPaymentForm.builder.tsx","pages/Shares/Buy/model/steps.ts","lib/LoadFailedMessage/LoadFailedMessage.tsx","style/theme/hooks.ts","lib/Typography/index.tsx","lib/ActionLink/ActionLink.tsx","lib/LoadHandler/IncompleteLoadContainer.tsx","lib/LoadHandler/LoadHandler.tsx","lib/LoadHandler/index.tsx","lib/Form/Select/FormikSelect.tsx","lib/Form/Select/index.tsx","config.ts","lib/Form/Select/select.constants.ts","lib/Form/Select/select.styles.tsx","lib/Form/Select/SelectArrow.tsx","lib/Form/Select/BaseSelect.tsx","lib/SimpleSpinner/SimpleSpinner.tsx","lib/Form/ChoiceGroup/Checkbox.tsx","lib/Form/InputMask.tsx","containers/FormPersist/store/formPersist.actions.ts","pages/Dividend/store/dividend.selectors.ts","containers/CmsData/store/cmsData.model.ts","pages/Dividend/store/dividend.constants.ts","pages/Shares/Sell/Steps/SaleOrderDetailsStep/SaleOrderDetails.model.tsx","containers/CmsData/store/cmsData.mapper.ts","containers/CmsData/store/cmsData.constants.ts","lib/Form/GroupLabel.tsx","shared/Data/Array.tsx","shared/BankInfo/BankInfoDisplay.tsx","shared/BankInfo/BankInfo.tsx","shared/BankInfo/BankInfoEffects.tsx","lib/Form/InputIconContainer.tsx","lib/Form/FormControl.tsx","routing/api.ts","shared/DataStructures/index.tsx","routing/__mock__/api.mock.ts","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","pages/Shares/Sell/Steps/SelectCompanyStep/SelectCompany.models.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","lib/Panel/Footer.tsx","pages/Portfolio/store/actions.ts","lib/CollapsibleHelp/index.tsx","pages/Shares/Buy/model/company.ts","lib/Tooltip/Tooltip.tsx","lib/Form/FormActions.tsx","pages/Dividend/components/shared/DividendFormActions.tsx","lib/Typography/Typography.tsx","pages/Dividend/components/Plan/helpers/dividendPlanForm.constants.tsx","lib/CollapsibleHelp/CollapsibleHelp.tsx","lib/Grid/Grid/Grid.tsx","lib/Grid/Row/Row.tsx","pages/Shares/Buy/Steps/SelectCompany/utils.ts","pages/Dividend/components/shared/DividendFormValidStatusEffect.tsx","shared/BankInfo/AccountNumberObfuscationHelper.ts","pages/Shares/Sell/models/SellSharesContext.tsx","containers/FormPersist/FormPersist.tsx","pages/AccountSettings/Address/store/__mock__/address.commons.mock.ts","lib/Grid/Col/Col.tsx","lib/Modal/Templates/Modal.Confirm.tsx","lib/Form/Select/ControlledSelect.tsx","lib/Form/WrappedField/FormGroupRadioGroup.tsx","lib/Panel/Divider.tsx","lib/Form/PercentageInput/index.tsx","pages/Dividend/components/Plan/helpers/dividendPlanForm.builder.tsx","shared/Data/index.tsx","store/reduxBoilerplate.ts","lib/Modal/store/actions.ts","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","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","lib/Form/ChoiceGroup/RadioButton.tsx","lib/Panel/Content.tsx","shared/RegExp/mapValidationFormatStringToRegExp.ts","lib/FormPremades/WireTransferPayment/index.tsx","pages/Dividend/store/dividend.model.ts","style/theme/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","routing/routing.utils.ts","shared/DataStructures/BankAccount/BankAccount.hooks.tsx","shared/DataStructures/BankAccount/index.tsx","api/api.hooks.ts","lib/Icon/Icon.tsx","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/TaxCertification/store/taxCertification.actions.ts","pages/AccountSettings/shared/accountSettings.enums.ts"],"names":["Input","withValidation","props","field","hasError","restProps","Object","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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__","_routing_utils__WEBPACK_IMPORTED_MODULE_2__","accountNumber","issueNumber","activeTab","ROUTES","securityOverview","replace","toString","dividends","getKeyValueAndStoreOriginalValue","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","DeliveryTypes","FORM_KEYS","getValidationSchema","_t","_object$shape","_object$shape2","object","shape","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","WrappedComponent","form","hasVisibleError","errors","touched","AlertType","mapAlertResponseItemToAlertFactory","cmsData","response","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","Alert","color","dismissible","fullWidth","onClose","small","noVerticalMargin","hideEmpty","react_default","data-testid","toggle","UncontrolledAlert","div","ProgressTypeEnum","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","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","./__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","Label","forChoice","check","fontWeight","normal","FormGroup","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","DeliveryPreferencesActionTypes","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","ProxyDeliveryPreferencesActionTypes","DP","deliveryPreferencesActions","load","loadDone","loadFail","setEditModeOn","setEditModeOff","setConfirmOn","SET_CONFIRM_ON","setConfirmOFF","SET_CONFIRM_OFF","confirm","inquiryModalProps","CONFIRM","confirmDone","CONFIRM_DONE","confirmFail","CONFIRM_FAIL","editMode","displayConfirm","confirming","deliveryPreferencesReducer","AnimationActionTypes","PDP","proxyDeliveryPreferencesActions","SET_EDIT_MODE_ON","SET_EDIT_MODE_OFF","setConfirmOff","proxyDeliveryPreferencesReducer","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","_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","confirmPrimaryAddressDone","closeModal","confirmPrimaryAddressFail","openModal","ModalComponents","INFO_MODAL","_marked12","_context13","delay","unsetRecentlyClosedForm","_marked13","_action$payload6","_response11","_context14","secondaryAddressGet","loadSecondaryAddressDone","loadSecondaryAddressFail","_marked14","updateDeliveryData","item","preferences","deliveryPreferencesSaga","loadDeliveryPreferencesData","updatePreferencesData","deliveryPreferences_sagas_marked","deliveryPreferences_sagas_marked2","select","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","updateProxyDeliveryData","company","proxyEmailAddress","deliveryPreference","proxyDeliveryPreferencesSaga","loadProxyDeliveryPreferencesData","updateProxyDeliveryPreferences","proxyDeliveryPreferences_sagas_marked","proxyDeliveryPreferences_sagas_marked2","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","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","PortfolioRedirect","Portfolio","_ref10","BuyShares","_ref11","DsppPage","_ref12","EsppPage","_ref13","AccountSettings","_ref14","AccountSettingsRedirect","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","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","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","recentAdressChange","drsTotalWithReserved","planTotalWithReserved","drsAvailableForSale","planAvailableForSale","certificateAvailableForSale","drsNumberOfShares","planNumberOfShares","allowSaleOfDrs","allowDrsSalesSol","allowSaleOfPlanShares","allowPlanSalesSol","drsFractionalSaleAllowed","planFractionalSaleAllowed","allowSaleReceiptsByACH","allowSaleReceiptsByInternationalACH","allowSaleReceiptsByWireTransfer","salePaymentType","SalePaymentType","sellAllPlanSharesTerminatesAccount","recentDRSSale","recentPlanSale","hideWireTransferFees","hideDirectDepositFees","showDisclaimer","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","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","checkIfUserHasSLOrLO","pendingSales","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","LabelIconWithTooltip","_Tooltip_Tooltip__WEBPACK_IMPORTED_MODULE_2__","effect","place","content","inline","TooltipIcon","grey","Modal","_React$Component","_this","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","isOpen","backdrop","keyboard","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_6__","submit","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_7__","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","xMark","isMobile","_this$state","closeBtn","react__WEBPACK_IMPORTED_MODULE_8___default","_Form__WEBPACK_IMPORTED_MODULE_15__","xMarkClose","cursor","marginRight","ModalContainer","onClosed","reactstrap__WEBPACK_IMPORTED_MODULE_9__","close","marginTop","_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","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","fiscalNumberRegex","fiscalPriceRegex","wholeNumberRegex","nonDigitRegex","validatePhoneNumber","phone","strippedPhone","isFiscalNumberCorrect","test","testValue","trim","isFiscalPriceCorrect","getCanSellPlanShares","getCanSellDRSShares","getPlanAvailableForSale","getDrsAvailableForSale","getIsDRSSale","getIsPlanSale","SaleType","MarketOrder","BatchOrder","getIsDelayedSale","LimitOrder","StopLossOrder","getTotalShareCount","share","isNaN","toLocaleString","maximumFractionDigits","minimumFractionDigits","accountList","_Array$prototype","prototype","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_loop","x","_iterator","Symbol","iterator","done","err","return","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","_requestToNewApi","_ref$method","makeRequest","statusCode","logRequestErrors","returnError","_x14","_request","_ref2$method","_x15","_makeRequest","requestNumber","toUpperCase","resolveHeaders","withCredentials","resolveHost","_x16","_x17","_x18","_x19","_x20","apiProxyConfig","isBasicAuth","baseURL","auth","statusText","BasicModal","objectWithoutProperties","Modal_Wrapper","AgreementModal","alertText","onAfterSubmitClick","recentlySubmitted","checkboxLabel","checkboxId","onAfterSubmitText","onAfterCancelText","linkText","linkUrl","linkTarget","agreementRead","setAgreementRead","taCContainerRef","abs","scrollHeight","clientHeight","centered","Typography","RedLine","BrochureLinkContainer","ActionLink","open","underlined","TaCContainer","ref","onScroll","event","scrollTop","formik_esm","agree","boolean","formikProps","Form","onAfterSubmit","submitted","secondary4","hr","_templateObject3","_templateObject4","InfoModal","Grid","FormActions","FormButton","Modal_Info_templateObject","pickColor","Modal_Info_templateObject2","Modal_Info_templateObject3","MODAL_COMPONENTS","_MODAL_COMPONENTS","BASIC_MODAL","CONFIRMATION_MODAL","ConfirmModal","AGREEMENT_MODAL","ModalRoot","SpecificModal","useCmsDataLoader","_len","pages","_key","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","args","EXTERNAL_ROUTES","_api__WEBPACK_IMPORTED_MODULE_0__","DEFAULT_ROUTES","createRoute","routeCreator","basicRouteCreator","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","initialNewBankAccount","initialBankDetails","AutoSellType","autoSellConfigInitialValues","_shared_DataStructures_BankAccount__WEBPACK_IMPORTED_MODULE_0__","payoutType","accountToUse","Existing","isDomesticBank","wireTransfer","planAutoSellType","planAutoSellDate","drsAutoSellType","drsAutoSellDate","cmsPageName","CmsDataPage","AuthenticatedSell","useSellSharesCmsData","cmsDataLoading","Dividend","_useCmsData","useTranslate","_useCmsData2","_thtml","_e","_eMany","useWireTransferTranslate","_twt","useSellSharesAlerts","useAlerts","getAlerts","alertList","taxCertifiedAlerts","onPerformAction","useSellSharesAccountsApi","useApiGet","useSellSharesValidationApi","useApiRequestWithResponse","useSellSharesSubmitApi","useWireTransferBeneficiaryCountriesApi","usePendingSalesApi","createContext","CmsDataProvider","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__","cmsContextValue","useMemo","Provider","DEFAULT_COLORS","secondary1","secondary2","secondary3","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","DividendPaymentSecondaryAddress","title","line","idx","DividendPaymentOnlyOption","labelToDisplay","FormControl","DividendPaymentOnlyOption_templateObject","getDividendPaymentFormFields","onExternallyValidatedPaymentFieldBlur","wireTransferCountryConfig","beneficiaryCountries","isDsppFullReinvestment","dsppFullInvestment","Check","paymentOption","pos","arr","mapObj","_","getPaymentOptions","directPaymentMethodTypeOptions","paymentOptionType","US","International","getPaymentMethodTypeOptions","DirectDeposit","createNewAccountOptions","getCreateNewAccountOptions","bankAccountOptions","usBankAccounts","getObfuscatedBankAccountNumber","getBankAccountOptions","directDepositINTCountriesOptions","sort","sortBy","getDirectDepositINTCountriesOptions","accountTypeOptions","getAccountTypeOptions","formFields","onlyFullReinvestmentAllowed","customElement","DividendPaymentOnlyOption_DividendPaymentOnlyOption","NoChange","shouldShowCreateNewAccount","bankAccount","ReadOnlyFieldsRow","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","BuyStep","LoadFailedMessage","onRetry","MessageBox","Text","_ActionLink_ActionLink__WEBPACK_IMPORTED_MODULE_3__","span","useWindowMedia","getWindowMedia","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","_Typography__WEBPACK_IMPORTED_MODULE_0__","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","FormikSelect","onSelect","BaseSelect","query_string__WEBPACK_IMPORTED_MODULE_0__","_routing_routing_utils__WEBPACK_IMPORTED_MODULE_1__","apiPrefixed","apiFilePrefixed","newApi","features","lostCertificates","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","getOriginalValueFromStorage","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","SELECT_CLASS_NAME_PREFIX","getSelectStyle","baseStyles","secondaryStyles","MENU_BOX_SHADOW","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","SimpleSpinner","invert","spin","IconContainer","CheckboxInputStyle","CheckboxInput","CheckIcon","_templateObject5","Checkbox","dataTestId","_i","_Object$entries","entries","fieldName","InputMask","react_text_mask__WEBPACK_IMPORTED_MODULE_3___default","maskProps","_Input__WEBPACK_IMPORTED_MODULE_4__","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","_dividend_model__WEBPACK_IMPORTED_MODULE_0__","REINVESTMENT_TYPES_MAP","FULL","ALLOWED","NOT_ALLOWED","DEFAULT_REINVESTMENT","availableOptions","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","GroupLabel","sel","item1","item2","s1","s2","normalize","list","idSelector","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_1__","BankInfoDisplay","bankInfoText","t","CollapsibleHelp","bankInfoTexts","noContentBehavior","noContentMessage","getText","contentUnavailableMessage","InputIconContainer","SuccessIcon","centeredIcon","FormControl_FormControl","maxLength","renderRadioButtonGroup","getType","getComponent","setFieldTouched","renderInput","isLoaded","REACT_APP_ON_TEST","ROUTES_MOCK_DATA","getRouting","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","setIsLoading","setRouting","finally","_BankAccount__WEBPACK_IMPORTED_MODULE_0__","_Country__WEBPACK_IMPORTED_MODULE_1__","_InternationalACHSetupDetails__WEBPACK_IMPORTED_MODULE_2__","_config__WEBPACK_IMPORTED_MODULE_0__","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","fontSize","HelpText","SelectCompanyFormValidationSchema","mapSellJourneyToInitialValues","getNewAccountModel","companyHasSaleableShares","isShareSaleable","isSellAvailable","saleOrderShares","isDRSAllowedAndHasPlanShares","isPlanAllowedAndHasDRSShares","isSloOrLoSalePending","isRecentPlanSale","isRecentDRSSale","isRecentSaleOrAddressChange","yup__WEBPACK_IMPORTED_MODULE_0__","_Shared_utils__WEBPACK_IMPORTED_MODULE_1__","isSaleable","companyIdIssueNumber","issue","companyList","model","selectedCompany","isAccountSaleable","accountHasSaleableShares","isCompanySaleable","isIssueSaleable","matchingCompany","isOnlyDRSAllowedAndHasPlanShares","issueToSelect","matchingIssue","isOnlyPlanAllowedAndHasDRSShares","skipQuantityCheck","canSellPlan","canSellDRS","filteredShare","isSharesSaleable","saleOrderCompanies","isDrsSloOrLoSalePending","isPlanloOrLoSalePending","_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","globalEventOff","ReactTooltip","DEFAULT_PROPS","fullProps","cancelDisabled","backDisabled","marginBottom","isFormSubmit","CancelButtonContainer","ActionButton","SubmitButtonContainer","flexGrow","allowShrinkIndefinitely","SubmitButton","_templateObject6","DividendFormActions","customMarginTop","_lib_Panel_Panel__WEBPACK_IMPORTED_MODULE_4__","insidePanelContent","Actions","zeroBalanceInformation","defaultOpened","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_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","reactstrap__WEBPACK_IMPORTED_MODULE_1__","Row","getCompany","comp","getCurrentSecurityTypes","getSecurityTypeByIssueNumber","security","foundSecurity","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","visibleDigits","extracted","exec","_extracted","maskable","showable","SellJourneyInitialData","agreesToTerms","SellJourneyMetaDataInitialState","totalSharesToSell","userHasSLOrLO","getBookLots","isPendingDrsSloOrLoSale","isPendingPlanSloOrLoSale","SellJourneyContext","SellJourneyUpdate","updateMetaData","SellJourneyContextProvider","setData","_React$useState3","_React$useState4","setMetaData","contextState","internationalCurrency","newData","newMetaData","_lib_LoadHandler__WEBPACK_IMPORTED_MODULE_3__","useSellSharesJourney","useSellSharesState","useSellSharesUpdate","FormPersist","_store_formPersist_actions__WEBPACK_IMPORTED_MODULE_2__","_lib_Form_FormEffect__WEBPACK_IMPORTED_MODULE_3__","_store_formPersist_utils__WEBPACK_IMPORTED_MODULE_4__","xs","xl","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__","H_EQShared_AgentPools_A9_work_2502_s_App_EQ_SOL_UI_LEGACY_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","_Modal_Wrapper__WEBPACK_IMPORTED_MODULE_7__","_Form__WEBPACK_IMPORTED_MODULE_8__","ControlledSelect","_BaseSelect__WEBPACK_IMPORTED_MODULE_2__","FormGroupRadioGroup","_FormGroupWrapper__WEBPACK_IMPORTED_MODULE_4__","RadioButtons","getMargin","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","Data_Array","createReactReducer","immer__WEBPACK_IMPORTED_MODULE_0__","fn","produce","OPEN_MODAL","CLOSE_MODAL","UPDATE_MODAL_PROP","_Modal_Root__WEBPACK_IMPORTED_MODULE_1__","RadioInput","RadioIcon","selected","CheckboxGroup","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","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__","focused","idValue","idLabelValue","active","CircleRadioButtonLabel","htmlFor","_Input__WEBPACK_IMPORTED_MODULE_9__","checked","RadioButtonValue","RadioButtonLabel","LoadingSpinner","_LoadFailedMessage_LoadFailedMessage__WEBPACK_IMPORTED_MODULE_7__","renderInnerContent","noPadding","showPredefinedContent","getPadding","mapValidationFormatStringToRegExp","regExpString","_WireTransferPaymentTypes__WEBPACK_IMPORTED_MODULE_0__","_WireTransferPaymentForm__WEBPACK_IMPORTED_MODULE_1__","hex","alpha","validAlpha","substring","parseInt","num","HiddenOnlyDesktop","animateOnHighlight","pickFromTheme","colorSelector","_store_unreadMessages_actions__WEBPACK_IMPORTED_MODULE_2__","_UnreadRoundel_UnreadRoundel__WEBPACK_IMPORTED_MODULE_3__","_ref$wrapper","wrapper","counter","getFontSize","_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","sessionStorage","getItem","formattedName","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","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","getParam","openNewTab","navigateExternal","connected_react_router__WEBPACK_IMPORTED_MODULE_0__","uuid__WEBPACK_IMPORTED_MODULE_2__","uuid_by_string__WEBPACK_IMPORTED_MODULE_3__","uuid_by_string__WEBPACK_IMPORTED_MODULE_3___default","param","matchingString","defaultValue","createMatchSelector","matchSelector","storageValue","localStorage","origin","salt","getUuid","keyValue","uuidv5","setItem","useBankAccounts","BankAccount_model","useNewApiRequestWithResponse","_useState5","_useState6","setError","_useState7","_useState8","setStatusCode","isSuccess","responseContent","responseData","_args","requestToNewApi","finish","_useState9","_useState10","_useState11","_useState12","_useState13","_useState14","_useState15","_useState16","_args2","useRef","_useState17","_useState18","tick","setTick","_usePerformRequestWit","_useState19","_useState20","_useState21","_useState22","_useState23","_useState24","viewMounted","removeSource","cancelRequest","newSource","catch","usePerformRequestWithTick","useCancelRequestOnUnMount","useApiRequest","_usePerformRequest","_useState25","_useState26","_useState27","_useState28","_useState29","_useState30","_useState31","_useState32","setSource","_args3","usePerformRequest","_usePerformRequest2","performRequest","_usePerformRequest2$","FontAwesomeIcon","FormGroupDate","FormGroupInput","FormGroupDisplay","FormGroupSelect","selectedOption","FormGroupCheckbox","hideError","showError","actionTypes","TaxCertificationTypes"],"mappings":"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","file":"scripts/react/main.b593b7b4.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\nimport { getKeyValueAndStoreOriginalValue } from './routing.utils';\r\n\r\nexport const securityOverviewPath = (\r\n accountNumber: string | number,\r\n issueNumber: string,\r\n activeTab?: string,\r\n) => {\r\n return ROUTES.securityOverview\r\n .replace(':accountNumber', `${accountNumber.toString()}`)\r\n .replace(':issueNumber', issueNumber)\r\n .replace(':activeTab?', activeTab || '');\r\n}\r\n\r\n\r\nexport const dividendPath = (\r\n accountNumber: number,\r\n issueNumber: string\r\n) => {\r\n return ROUTES.dividends\r\n .replace(':accountNumber?', `${getKeyValueAndStoreOriginalValue(accountNumber.toString())}`)\r\n .replace(':issueNumber?', issueNumber);\r\n}\r\n\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: string,\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 { 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 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 { 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 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 { 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 { 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","var map = {\n\t\"./__mock__/SignOn/recoverUsername.cmsData.mock\": [\n\t\t747,\n\t\t21\n\t],\n\t\"./__mock__/SignOn/recoverUsername.cmsData.mock.tsx\": [\n\t\t747,\n\t\t21\n\t],\n\t\"./__mock__/accountSettings.cmsData.mock\": [\n\t\t745,\n\t\t3\n\t],\n\t\"./__mock__/accountSettings.cmsData.mock.ts\": [\n\t\t745,\n\t\t3\n\t],\n\t\"./__mock__/alertsAndMessages.cmsData.mock\": [\n\t\t736,\n\t\t11\n\t],\n\t\"./__mock__/alertsAndMessages.cmsData.mock.ts\": [\n\t\t736,\n\t\t11\n\t],\n\t\"./__mock__/all.cmsData.mock\": [\n\t\t748,\n\t\t4,\n\t\t3,\n\t\t9\n\t],\n\t\"./__mock__/all.cmsData.mock.ts\": [\n\t\t748,\n\t\t4,\n\t\t3,\n\t\t9\n\t],\n\t\"./__mock__/authenticatedBuy.cmsData.mock\": [\n\t\t749,\n\t\t22\n\t],\n\t\"./__mock__/authenticatedBuy.cmsData.mock.ts\": [\n\t\t749,\n\t\t22\n\t],\n\t\"./__mock__/authenticatedSell.cmsData.mock\": [\n\t\t750,\n\t\t23\n\t],\n\t\"./__mock__/authenticatedSell.cmsData.mock.ts\": [\n\t\t750,\n\t\t23\n\t],\n\t\"./__mock__/brokerInstructions.cmsData.mock\": [\n\t\t737,\n\t\t24\n\t],\n\t\"./__mock__/brokerInstructions.cmsData.mock.ts\": [\n\t\t737,\n\t\t24\n\t],\n\t\"./__mock__/checks.cmsData.mock\": [\n\t\t751,\n\t\t12\n\t],\n\t\"./__mock__/checks.cmsData.mock.ts\": [\n\t\t751,\n\t\t12\n\t],\n\t\"./__mock__/commonErrorMessages.cmsData.mock\": [\n\t\t738,\n\t\t25\n\t],\n\t\"./__mock__/commonErrorMessages.cmsData.mock.ts\": [\n\t\t738,\n\t\t25\n\t],\n\t\"./__mock__/companyPlans.cmsData.mock\": [\n\t\t752,\n\t\t13\n\t],\n\t\"./__mock__/companyPlans.cmsData.mock.ts\": [\n\t\t752,\n\t\t13\n\t],\n\t\"./__mock__/components.cmsData.mock\": [\n\t\t744,\n\t\t26\n\t],\n\t\"./__mock__/components.cmsData.mock.ts\": [\n\t\t744,\n\t\t26\n\t],\n\t\"./__mock__/contact.cmsData.mock\": [\n\t\t753,\n\t\t14\n\t],\n\t\"./__mock__/contact.cmsData.mock.ts\": [\n\t\t753,\n\t\t14\n\t],\n\t\"./__mock__/countryGlossary.cmsData.mock\": [\n\t\t754,\n\t\t27\n\t],\n\t\"./__mock__/countryGlossary.cmsData.mock.ts\": [\n\t\t754,\n\t\t27\n\t],\n\t\"./__mock__/dashboard.cmsData.mock\": [\n\t\t739,\n\t\t15\n\t],\n\t\"./__mock__/dashboard.cmsData.mock.ts\": [\n\t\t739,\n\t\t15\n\t],\n\t\"./__mock__/dividend.cmsData.mock\": [\n\t\t740,\n\t\t28\n\t],\n\t\"./__mock__/dividend.cmsData.mock.ts\": [\n\t\t740,\n\t\t28\n\t],\n\t\"./__mock__/documentsAndForms.cmsData.mock\": [\n\t\t755,\n\t\t29\n\t],\n\t\"./__mock__/documentsAndForms.cmsData.mock.ts\": [\n\t\t755,\n\t\t29\n\t],\n\t\"./__mock__/emailAddressMismatch.cmsData.mock\": [\n\t\t756,\n\t\t30\n\t],\n\t\"./__mock__/emailAddressMismatch.cmsData.mock.ts\": [\n\t\t756,\n\t\t30\n\t],\n\t\"./__mock__/espp.cmsData.mock\": [\n\t\t757,\n\t\t16\n\t],\n\t\"./__mock__/espp.cmsData.mock.ts\": [\n\t\t757,\n\t\t16\n\t],\n\t\"./__mock__/glossary.cmsData.mock\": [\n\t\t746,\n\t\t4\n\t],\n\t\"./__mock__/glossary.cmsData.mock.ts\": [\n\t\t746,\n\t\t4\n\t],\n\t\"./__mock__/internationalPaymentsHelp.cmsData.mock\": [\n\t\t758,\n\t\t31\n\t],\n\t\"./__mock__/internationalPaymentsHelp.cmsData.mock.ts\": [\n\t\t758,\n\t\t31\n\t],\n\t\"./__mock__/login.cmsData.mock\": [\n\t\t741,\n\t\t32\n\t],\n\t\"./__mock__/login.cmsData.mock.ts\": [\n\t\t741,\n\t\t32\n\t],\n\t\"./__mock__/marketData.cmsData.mock\": [\n\t\t759,\n\t\t17\n\t],\n\t\"./__mock__/marketData.cmsData.mock.ts\": [\n\t\t759,\n\t\t17\n\t],\n\t\"./__mock__/portfolio.cmsData.mock\": [\n\t\t742,\n\t\t18\n\t],\n\t\"./__mock__/portfolio.cmsData.mock.ts\": [\n\t\t742,\n\t\t18\n\t],\n\t\"./__mock__/securityOverview.cmsData.mock\": [\n\t\t743,\n\t\t19\n\t],\n\t\"./__mock__/securityOverview.cmsData.mock.ts\": [\n\t\t743,\n\t\t19\n\t],\n\t\"./__mock__/shared.cmsData.mock\": [\n\t\t732,\n\t\t33\n\t],\n\t\"./__mock__/shared.cmsData.mock.ts\": [\n\t\t732,\n\t\t33\n\t],\n\t\"./__mock__/signOnIssues.cmsData.mock\": [\n\t\t760,\n\t\t34\n\t],\n\t\"./__mock__/signOnIssues.cmsData.mock.tsx\": [\n\t\t760,\n\t\t34\n\t],\n\t\"./__mock__/signUp.cmsData.mock\": [\n\t\t761,\n\t\t35\n\t],\n\t\"./__mock__/signUp.cmsData.mock.ts\": [\n\t\t761,\n\t\t35\n\t],\n\t\"./__mock__/termsAndConditions.cmsData.mock\": [\n\t\t762,\n\t\t36\n\t],\n\t\"./__mock__/termsAndConditions.cmsData.mock.ts\": [\n\t\t762,\n\t\t36\n\t],\n\t\"./__mock__/wfsso.cmsData.mock\": [\n\t\t763,\n\t\t37\n\t],\n\t\"./__mock__/wfsso.cmsData.mock.ts\": [\n\t\t763,\n\t\t37\n\t],\n\t\"./__test__/cmsData.hooks.test\": [\n\t\t764,\n\t\t38\n\t],\n\t\"./__test__/cmsData.hooks.test.ts\": [\n\t\t764,\n\t\t38\n\t],\n\t\"./__test__/cmsData.utils.test\": [\n\t\t765,\n\t\t20\n\t],\n\t\"./__test__/cmsData.utils.test.tsx\": [\n\t\t765,\n\t\t20\n\t],\n\t\"./__test__/cmsDataTesting.utils\": [\n\t\t766,\n\t\t39\n\t],\n\t\"./__test__/cmsDataTesting.utils.tsx\": [\n\t\t766,\n\t\t39\n\t],\n\t\"./cmsData.actions\": [\n\t\t767,\n\t\t40\n\t],\n\t\"./cmsData.actions.ts\": [\n\t\t767,\n\t\t40\n\t],\n\t\"./cmsData.constants\": [\n\t\t358\n\t],\n\t\"./cmsData.constants.ts\": [\n\t\t358\n\t],\n\t\"./cmsData.hooks\": [\n\t\t240\n\t],\n\t\"./cmsData.hooks.factory\": [\n\t\t735,\n\t\t41\n\t],\n\t\"./cmsData.hooks.factory.tsx\": [\n\t\t735,\n\t\t41\n\t],\n\t\"./cmsData.hooks.tsx\": [\n\t\t240\n\t],\n\t\"./cmsData.mapper\": [\n\t\t357\n\t],\n\t\"./cmsData.mapper.ts\": [\n\t\t357\n\t],\n\t\"./cmsData.model\": [\n\t\t35\n\t],\n\t\"./cmsData.model.ts\": [\n\t\t35\n\t],\n\t\"./cmsData.utils\": [\n\t\t731,\n\t\t42\n\t],\n\t\"./cmsData.utils.tsx\": [\n\t\t731,\n\t\t42\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 = 1501;\nmodule.exports = webpackAsyncContext;","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","// 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\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 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 { 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 { 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 { 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 { 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 { 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","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 {\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 { 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/PortfolioRedirect').then(({ PortfolioRedirect }) => ({ default: PortfolioRedirect })),\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/AccountSettingsRedirect').then(({ AccountSettingsRedirect }) => ({ default: AccountSettingsRedirect })),\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 issueNumber: '123456',\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 issueNumber: '123456',\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 recentAdressChange: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentAdressChange: false,\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 recentAdressChange: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 recentDRSSale: false,\r\n recentPlanSale: false,\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 hideWireTransferFees: false,\r\n hideDirectDepositFees: false,\r\n showDisclaimer: false,\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 { 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 = '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 { 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 { 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","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\nimport { PendingSaleItem } from '../../../PendingSales/model/types';\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\r\nexport function checkIfUserHasSLOrLO(data: SellJourney, pendingSales: PendingSaleItem[]) {\r\n return (\r\n pendingSales.filter(\r\n (p) => p.issueNumber === data.issueNumber && p.accountNumber === data.accountNumber\r\n ).length > 0\r\n );\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 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\nimport { ButtonSpinner } from '../../../pages/AlertsAndMessages/Message/Message';\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 xMark,\r\n isMobile,\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 const buttonPath =\r\n 'M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z';\r\n const xMarkClose = (\r\n \r\n \r\n \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","import { SaleType, SellShare, ShareType, SellAccount, SellCompany } from '../Sell/models';\r\n\r\nconst fiscalNumberRegex = /^[0-9]*(\\.[0-9]{1,3})?$/;\r\nconst fiscalPriceRegex = /^[0-9]*(\\.[0-9]{1,2})?$/;\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 isFiscalPriceCorrect(allowFractional: boolean) {\r\n const test = allowFractional ? fiscalPriceRegex : 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 !securityType.recentPlanSale\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 !securityType.recentDRSSale\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\r\nexport function getTotalShareCount(share?: SellShare) {\r\n if (!share) {\r\n return '0.000';\r\n }\r\n\r\n const planShareCount = isNaN(share.planNumberOfShares) ? 0 : share.planNumberOfShares,\r\n drsShareCount = isNaN(share.drsNumberOfShares) ? 0 : share.drsNumberOfShares;\r\n\r\n const totalShareCount = planShareCount + drsShareCount;\r\n\r\n return totalShareCount.toLocaleString('en-US', {\r\n maximumFractionDigits: 3,\r\n minimumFractionDigits: 3,\r\n });\r\n}\r\n\r\nexport function getCompanies(accountList: SellAccount[]) {\r\n const companies: SellCompany[] = Array.prototype.concat(...accountList.map((a) => a.companies));\r\n let result: SellCompany[] = [];\r\n for (const c of companies) {\r\n if (!result.some((x) => x.companyId === c.companyId)) result.push(c);\r\n }\r\n return result;\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 requestToNewApi({\r\n url,\r\n method = 'get',\r\n data,\r\n params,\r\n cancelToken,\r\n }: OwnRequestProps): Promise<{ data: T; statusCode: number }> {\r\n try {\r\n const response = await ApiService.makeRequest(method, url, data, params, cancelToken);\r\n\r\n return { data: response.data, statusCode: response.status };\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 ApiService.logRequestErrors(e, method, url, data, params);\r\n\r\n throw ApiService.returnError(e);\r\n }\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 response = await ApiService.makeRequest(method, url, data, params, cancelToken);\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 ApiService.logRequestErrors(e, method, url, data, params);\r\n\r\n throw ApiService.returnError(e);\r\n }\r\n }\r\n\r\n private static async makeRequest(\r\n method: string,\r\n url: string,\r\n data: any,\r\n params: UrlParams | undefined,\r\n cancelToken: CancelToken | undefined\r\n ) {\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 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 return response;\r\n }\r\n\r\n private static logRequestErrors(\r\n e: unknown,\r\n method: string,\r\n url: string,\r\n data: any,\r\n params: UrlParams | undefined\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\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\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 xMark?: boolean;\r\n isMobile?: 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 xMark,\r\n isMobile,\r\n ...rest\r\n}: ModalContainerProps) {\r\n return (\r\n dispatch(modalActions.closeModal())}\r\n onSubmitClick={() => onSubmitClick}\r\n xMark={xMark}\r\n isMobile={isMobile}\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 { 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","export enum AddressFormEnum {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n seasonal = 'seasonal',\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","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\nimport { PendingSaleItem } from '../../../PendingSales/model/types';\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 recentAdressChange: boolean;\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 recentDRSSale: boolean;\r\n recentPlanSale: 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 hideWireTransferFees: boolean;\r\n hideDirectDepositFees: boolean;\r\n showDisclaimer: boolean;\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 userHasSLOrLO: boolean;\r\n getBookLots: (autoSellPrice?: number) => ShareTransaction[];\r\n isPendingDrsSloOrLoSale: boolean;\r\n isPendingPlanSloOrLoSale: boolean;\r\n pendingSales: PendingSaleItem[];\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 { 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\nimport { PendingSaleItem } from '../../../PendingSales/model/types';\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\r\nexport function usePendingSalesApi() {\r\n return useApiGet(APP_CONFIG.api.securityOverview.sales.getPendingSales);\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","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","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 { 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 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 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","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","export { Typography } from './Typography';\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 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","import { stringify } from 'query-string';\r\nimport { PortfolioSortOptions } from './pages/Portfolio/store/model';\r\nimport { OldAgreementType } from './pages/TermsAndConditions/model';\r\nimport { getOriginalValueFromStorage } from './routing/routing.utils';\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 newApi: {\r\n features: 'umbraco/api/spcore/api/v1/features',\r\n lostCertificates: (accountNumber: string, issueNumber: string) =>\r\n `umbraco/api/spcore/api/v1/certificates/lost?accountNumber=${accountNumber}&issueNumber=${issueNumber}`,\r\n },\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}${\r\n 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(\r\n `dripdetails/accountNumber/${accountNumber.toString()}/issuenumber/${issueNumber}`\r\n ),\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(\r\n `dripdetails/accountNumber/${accountNumber.toString()}/issuenumber/${issueNumber}`\r\n ),\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(\r\n `account/transactions/${getOriginalValueFromStorage(\r\n accountNumber\r\n )}/${issueNumber}/${type}`\r\n )\r\n : apiPrefixed(\r\n `account/transactions/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}`\r\n );\r\n },\r\n downloadTransactions: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(\r\n `account/transactions/download/${getOriginalValueFromStorage(\r\n accountNumber\r\n )}/${issueNumber}`\r\n ),\r\n getInfo: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(\r\n `account/transactionsinfo/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}`\r\n ),\r\n getPlans: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(`planshares/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}`),\r\n getPlansInfo: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(\r\n `planshares/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}/info`\r\n ),\r\n downloadPlans: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(\r\n `PlanShares/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}/download`\r\n ),\r\n },\r\n details: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(\r\n `account/securitydetails/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}`\r\n ),\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(\r\n `accounts/saleProceeds/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}`\r\n ),\r\n getSummary: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(\r\n `accounts/saleProceedsSummary/${getOriginalValueFromStorage(\r\n accountNumber\r\n )}/${issueNumber}`\r\n ),\r\n download: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(\r\n `accounts/saleProceeds/${getOriginalValueFromStorage(\r\n accountNumber\r\n )}/${issueNumber}/download`\r\n ),\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(\r\n `account/${getOriginalValueFromStorage(\r\n accountNumber\r\n )}/issues/${issueNumber}/dividend-proceeds-summary`\r\n ),\r\n download: (accountNumber: string, issueNumber: string) =>\r\n apiFilePrefixed(\r\n `account/dividendProceeds/${getOriginalValueFromStorage(\r\n accountNumber\r\n )}/${issueNumber}/download`\r\n ),\r\n },\r\n costBasis: {\r\n summary: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(\r\n `account/costBasis/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}/summary`\r\n ),\r\n taxLots: (accountNumber: string, issueNumber: string) =>\r\n apiPrefixed(\r\n `account/costBasis/${getOriginalValueFromStorage(accountNumber)}/${issueNumber}/taxLots`\r\n ),\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(\r\n `account/costBasis/${getOriginalValueFromStorage(\r\n accountNumber\r\n )}/${issueNumber}/download`\r\n ),\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","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\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 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 { 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 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 { 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 { 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 { 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 {\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 { 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","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 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 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 { 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","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","export * from './BankAccount';\r\nexport * from './Country';\r\nexport * from './InternationalACHSetupDetails';\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","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 fontSize?: string;\r\n}\r\n\r\nexport function UnreadRoundel({ children, fontSize }: 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","import { SellAccount, SellCompany, SellJourney, SellShare } from '../../models';\r\nimport { SellSharesCmsData, Translate } from '../../../../../containers/CmsData';\r\nimport { boolean, number, object, string } from 'yup';\r\nimport { getCompanies } from '../../../Shared/utils';\r\nimport { PendingSaleItem } from '../../../../PendingSales/model/types';\r\n\r\nexport interface SelectCompanyFormData {\r\n accountNumber?: number;\r\n companyId?: number;\r\n issueNumber?: string;\r\n companyIdIssueNumber?: string;\r\n\r\n isAccountSaleable?: boolean;\r\n isCompanySaleable?: boolean;\r\n isIssueSaleable?: boolean;\r\n isSaleable?: boolean;\r\n isOnlyDRSAllowedAndHasPlanShares?: boolean;\r\n isOnlyPlanAllowedAndHasDRSShares?: boolean;\r\n\r\n selectedAccount?: SellAccount;\r\n selectedCompany?: SellCompany;\r\n selectedIssue?: SellShare;\r\n}\r\n\r\nexport interface CompanyIssue {\r\n companyId: number;\r\n issueNumber: string;\r\n}\r\n\r\nexport function SelectCompanyFormValidationSchema(_t: Translate) {\r\n return object({\r\n accountNumber: number().required(''),\r\n companyId: number().required(_t('selectCompanyCompanyRequired')),\r\n issueNumber: string().required(_t('selectCompanySecurityTypeRequired')),\r\n isSaleable: boolean().test('must-be-true', 'dummy', (v) => v === true),\r\n companyIdIssueNumber: string(),\r\n });\r\n}\r\n\r\nexport function mapSellJourneyToInitialValues(\r\n accountList: SellAccount[],\r\n journey: SellJourney\r\n): SelectCompanyFormData {\r\n return getNewAccountModel(accountList, journey);\r\n}\r\n\r\nexport function getNewAccountModel(\r\n accountList: SellAccount[],\r\n values: SelectCompanyFormData\r\n): SelectCompanyFormData {\r\n let account = accountList.find((a) => a.accountNumber === values.accountNumber);\r\n account = account ? account : accountList.length == 1 ? accountList[0] : undefined;\r\n\r\n let company: SellCompany | undefined;\r\n if (account) {\r\n company = account.companies.find((a) => a.companyId === values.companyId);\r\n } else {\r\n const companyList = getCompanies(accountList);\r\n company = companyList.find((a) => a.companyId === values.companyId);\r\n company = company ? company : companyList.length == 1 ? companyList[0] : undefined;\r\n }\r\n\r\n let issue: SellShare | undefined;\r\n if (company) {\r\n issue = company.shares.find((s) => s.issueNumber === values.issueNumber);\r\n }\r\n\r\n const model: SelectCompanyFormData = {\r\n accountNumber: account ? account.accountNumber : undefined,\r\n companyId: company ? company.companyId : undefined,\r\n issueNumber: issue ? issue.issueNumber : undefined,\r\n companyIdIssueNumber: JSON.stringify({\r\n companyId: company ? company.companyId : undefined,\r\n issueNumber: issue ? issue.issueNumber : undefined,\r\n } as CompanyIssue),\r\n selectedAccount: account,\r\n selectedCompany: company,\r\n selectedIssue: issue,\r\n isAccountSaleable: account ? accountHasSaleableShares(account) : undefined,\r\n isCompanySaleable: false,\r\n isIssueSaleable: false,\r\n };\r\n if (company) {\r\n const matchingCompany = company;\r\n\r\n if (matchingCompany) {\r\n let eligibleShares = matchingCompany.shares.filter((o) => isShareSaleable(o, true));\r\n model.companyId = (matchingCompany && matchingCompany.companyId) || 0;\r\n model.selectedCompany = matchingCompany || undefined;\r\n model.isCompanySaleable = companyHasSaleableShares(matchingCompany);\r\n model.isOnlyDRSAllowedAndHasPlanShares = isDRSAllowedAndHasPlanShares(matchingCompany);\r\n model.isOnlyDRSAllowedAndHasPlanShares = isPlanAllowedAndHasDRSShares(matchingCompany);\r\n\r\n const companyHasSingleIssue = eligibleShares.length === 1;\r\n const issueToSelect = companyHasSingleIssue\r\n ? eligibleShares[0].issueNumber\r\n : values.issueNumber;\r\n\r\n if (!!issueToSelect && eligibleShares) {\r\n const matchingIssue = eligibleShares.find((s) => s.issueNumber === issueToSelect);\r\n if (matchingIssue) {\r\n model.issueNumber = matchingIssue.issueNumber;\r\n model.selectedIssue = matchingIssue;\r\n model.isIssueSaleable = isShareSaleable(matchingIssue);\r\n }\r\n }\r\n }\r\n }\r\n model.isSaleable =\r\n model.isAccountSaleable &&\r\n model.isCompanySaleable &&\r\n model.isIssueSaleable &&\r\n !model.isOnlyDRSAllowedAndHasPlanShares &&\r\n !model.isOnlyPlanAllowedAndHasDRSShares;\r\n return model;\r\n}\r\n\r\nexport function accountHasSaleableShares(\r\n { companies }: SellAccount,\r\n skipQuantityCheck: boolean = false\r\n) {\r\n return companies.some((company) => companyHasSaleableShares(company, skipQuantityCheck));\r\n}\r\n\r\nexport function companyHasSaleableShares(\r\n { shares }: SellCompany,\r\n skipQuantityCheck: boolean = false\r\n) {\r\n return shares.some((share) => isShareSaleable(share, skipQuantityCheck));\r\n}\r\n\r\nexport function isShareSaleable(share: SellShare, skipQuantityCheck: boolean = false) {\r\n return canSellPlan(share, skipQuantityCheck) || canSellDRS(share, skipQuantityCheck);\r\n}\r\n\r\nexport function isSellAvailable(shares: SellShare[], issueNumber: string) {\r\n const filteredShare = shares.find((share) => share.issueNumber === issueNumber);\r\n const isSharesSaleable = filteredShare ? isShareSaleable(filteredShare) : false;\r\n\r\n return (\r\n shares.reduce((p, c) => p + c.drsAvailableForSale + c.planAvailableForSale, 0) > 0 &&\r\n isSharesSaleable\r\n );\r\n}\r\n\r\nexport function saleOrderShares(saleOrderCompanies: SellCompany[], name: string) {\r\n const company = saleOrderCompanies && saleOrderCompanies.find((c) => c.name === name);\r\n return !!company ? company.shares : [];\r\n}\r\n\r\nexport function canSellPlan(\r\n { allowSaleOfPlanShares, allowPlanSalesSol, planAvailableForSale }: SellShare,\r\n skipQuantityCheck: boolean = false\r\n) {\r\n return (\r\n allowSaleOfPlanShares && allowPlanSalesSol && (skipQuantityCheck || planAvailableForSale > 0)\r\n );\r\n}\r\n\r\nexport function canSellDRS(\r\n { allowSaleOfDrs, allowDrsSalesSol, drsAvailableForSale }: SellShare,\r\n skipQuantityCheck: boolean = false\r\n) {\r\n return allowSaleOfDrs && allowDrsSalesSol && (skipQuantityCheck || drsAvailableForSale > 0);\r\n}\r\n\r\nexport function isDRSAllowedAndHasPlanShares(\r\n { shares }: SellCompany,\r\n skipQuantityCheck: boolean = false\r\n) {\r\n return shares.some(\r\n (share) =>\r\n share.allowSaleOfDrs &&\r\n share.allowDrsSalesSol &&\r\n (!share.allowSaleOfPlanShares || (share.allowSaleOfPlanShares && !share.allowPlanSalesSol)) &&\r\n (skipQuantityCheck || (share.planAvailableForSale > 0 && share.drsAvailableForSale <= 0))\r\n );\r\n}\r\n\r\nexport function isPlanAllowedAndHasDRSShares(\r\n { shares }: SellCompany,\r\n skipQuantityCheck: boolean = false\r\n) {\r\n return shares.some(\r\n (share) =>\r\n share.allowSaleOfPlanShares &&\r\n share.allowPlanSalesSol &&\r\n (!share.allowSaleOfDrs || (share.allowSaleOfDrs && !share.allowDrsSalesSol)) &&\r\n (skipQuantityCheck || (share.drsAvailableForSale > 0 && share.planAvailableForSale <= 0))\r\n );\r\n}\r\nexport function isSloOrLoSalePending(accountNumber: number, issueNumber: string, pendingSales: PendingSaleItem[], shareType: string) {\r\n return !!pendingSales.find(x => x.accountNumber === accountNumber && x.issueNumber === issueNumber && x.shareType === shareType);\r\n}\r\n\r\nexport function isRecentPlanSale(share: SellShare, isSloOrLoSalePending: boolean) {\r\n return (share.allowSaleOfPlanShares && share.allowPlanSalesSol && share.recentPlanSale) || isSloOrLoSalePending;\r\n}\r\n\r\nexport function isRecentDRSSale(share: SellShare, isDrsSloOrLoSalePending: boolean) {\r\n return (share.allowSaleOfDrs && share.allowDrsSalesSol && share.recentDRSSale) || isDrsSloOrLoSalePending;\r\n}\r\n\r\nexport function isRecentSaleOrAddressChange(share: SellShare, recentAdressChange: boolean, isDrsSloOrLoSalePending: boolean, isPlanloOrLoSalePending: boolean) {\r\n return (\r\n (isRecentPlanSale(share, isPlanloOrLoSalePending) && isRecentDRSSale(share, isDrsSloOrLoSalePending)) ||\r\n (share.recentPlanSale && !share.drsAvailableForSale) ||\r\n (share.recentDRSSale && !share.planAvailableForSale) ||\r\n recentAdressChange\r\n );\r\n}\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 issueNumber: string;\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 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","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","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 { 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","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, { 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","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 { 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","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 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 { 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 { 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","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 { 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 checkIfUserHasSLOrLO,\r\n getBookLotsFactory,\r\n getInternationalCurrency,\r\n getSelectedAccount,\r\n getSelectedCompany,\r\n getSelectedSecurityType,\r\n getSellAmount,\r\n} from './SellSharesSelectors';\r\nimport { usePendingSalesApi, useSellSharesAccountsApi } from './SellSharesHooks';\r\nimport { isSloOrLoSalePending } from '../Steps/SelectCompanyStep/SelectCompany.models';\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 userHasSLOrLO: false,\r\n getBookLots: () => [],\r\n isPendingDrsSloOrLoSale: false,\r\n isPendingPlanSloOrLoSale: false,\r\n pendingSales: []\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 pendingSales = usePendingSalesApi();\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 userHasSLOrLO: checkIfUserHasSLOrLO(data, pendingSales.data ? pendingSales.data : []),\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 isPendingDrsSloOrLoSale: isSloOrLoSalePending(data.accountNumber, data.issueNumber, pendingSales.data ? pendingSales.data : [], 'DRS'),\r\n isPendingPlanSloOrLoSale: isSloOrLoSalePending(data.accountNumber, data.issueNumber, pendingSales.data ? pendingSales.data : [], 'Plan'),\r\n pendingSales: pendingSales.data ? pendingSales.data : []\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 } 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 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","// 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 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","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 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","// 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 @media print {\r\n display: none;\r\n }\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","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","export * from './Array';\r\nexport * from './Object';\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 { 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 { 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 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 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 { 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 beneficiaryName: 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, { 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 getFontSize(number?: number) {\r\n if (!number || number < 100)\r\n return undefined;\r\n return number < 1000 ? 'x-small' : 'xx-small';\r\n }\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 getFontSize(number?: number) {\r\n if (!number || number < 100)\r\n return undefined;\r\n return number < 1000 ? 'x-small' : 'xx-small';\r\n }\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, { useEffect } 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 const beneficiaryName = sessionStorage.getItem('beneficiaryName');\r\n useEffect(() => {\r\n if (beneficiaryName) {\r\n const formattedName =\r\n beneficiaryName.length > 35 ? beneficiaryName.substring(0, 35) : beneficiaryName;\r\n formik.setFieldValue(`${fieldPrefix}beneficiaryName`, formattedName);\r\n }\r\n }, [beneficiaryName]);\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 if (input.type === 'disabled') {\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 disabled\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: 'disabled',\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 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 { createMatchSelector, RouterState } from 'connected-react-router';\r\nimport { EXTERNAL_ROUTES } from './routes';\r\nimport { v5 as uuidv5 } from 'uuid';\r\nimport getUuid from 'uuid-by-string';\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\r\nfunction redirectUserToPortfolio() {\r\n navigateWithRefresh(`${window.location.origin}/transactional/authenticated/newsol/portfolio`);\r\n}\r\n\r\nexport function getOriginalValueFromStorage(value: string | number) {\r\n let storageValue = localStorage.getItem(value.toString().trim());\r\n if (storageValue === null) redirectUserToPortfolio();\r\n\r\n return JSON.parse(storageValue!);\r\n}\r\n\r\nexport const getKeyValueAndStoreOriginalValue = (value: string) => {\r\n const salt = getUuid(value.slice(-5));\r\n const keyValue = uuidv5(value, salt);\r\n if (localStorage.getItem(keyValue) !== null) return keyValue;\r\n\r\n localStorage.setItem(keyValue, JSON.stringify(value));\r\n return keyValue;\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 { 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\ninterface NewApiRequestHookTypeResponse {\r\n data: Status | null;\r\n error: string[];\r\n loading: boolean;\r\n statusCode: number | undefined;\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 useNewApiRequestWithResponse(\r\n url: string,\r\n method: MethodType,\r\n params?: UrlParams\r\n): [\r\n (body?: any) => Promise>>,\r\n Status>\r\n] {\r\n const [loading, setLoading] = useState(false);\r\n const [data, setData] = useState | null>(null);\r\n const [error, setError] = useState([]);\r\n const [statusCode, setStatusCode] = useState(0);\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\r\n try {\r\n setLoading(true);\r\n setData(null);\r\n setError([]);\r\n const response = await ApiService.requestToNewApi>({\r\n url,\r\n params,\r\n data: body,\r\n method,\r\n });\r\n\r\n const responseData = response.data;\r\n setData(responseData);\r\n setStatusCode(response.statusCode);\r\n\r\n isSuccess = !!responseData;\r\n responseContent = responseData;\r\n } catch (e) {\r\n setError(e);\r\n isSuccess = false;\r\n } finally {\r\n setLoading(false);\r\n }\r\n return { url, isSuccess, errors, data: responseContent };\r\n },\r\n [method, params, url]\r\n );\r\n\r\n return [performRequest, { data, error, loading, statusCode }];\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 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","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","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":""}