{"version":3,"sources":["HeaderPortal.tsx","FooterPortal.tsx","index.tsx","app/configuration/RuntimeConfigurationProvider.ts","app/configuration/Localization.ts","common/services/alertService/Interfaces.ts","common/constants/messageConstants.ts","common/constants/alertConstants.ts","common/slices/emptyApi.ts","common/Auth.tsx","common/services/sessionService/SessionService.ts","common/constants/globalDeliveryPreferencesConstants.ts","app/msalInstance.ts","common/components/SolThemeProvider.tsx","common/slices/users/userSlice.ts","app/store.ts","routing/RoutingConstants.ts","common/slices/messages/messagesSlice.ts","app/configuration/MVCApp.ts","app/apiClient.ts","common/services/alertService/AlertsService.ts","common/slices/alerts/alertsSlice.ts","common/utils/urlUtils.ts","common/slices/accountManagement/accountManagementSlice.ts","common/slices/messages/messageDetailSlice.ts","common/slices/messages/messagesSelectors.ts","common/slices/featureFlags/faetureFlagsSlice.ts","common/hooks/featureFlags/useFeatureFlags.ts","common/slices/addressFormat/addressFormatSlice.ts","pages/messages/messagesPageSlice.ts","common/slices/alerts/alertsSelectors.ts","common/slices/agreements/agreementsSlice.ts","pages/portfolio/portfolioSlice.ts","common/slices/accountsInformation/companies/accountsCompaniesSlice.ts","common/slices/utils.ts","common/slices/registration/registrationSlice.ts","app/configuration/environmentConfigurationProvider.ts","app/configuration/globalVarsConfigurationProvider.ts","app/configuration/msalConfigurationProvider.ts","app/configuration.ts","common/components/Header/companies/CompaniesHeader.styles.ts","common/components/Header/companies/BpHeaderContent.tsx","common/components/Header/companies/ComcastHeaderContent.tsx","common/components/Factories/Companies.styles.ts","common/components/Header/Header.styles.ts","common/components/Header/Header.tsx","common/components/Factories/CompaniesComponentsFactory.tsx","common/components/Footer/Footer.tsx"],"names":["HeaderPortal","container","flags","useFutureFlags","ReactDOM","createPortal","features","Header","FooterPortal","Footer","App","React","lazy","root","document","getElementById","header","footer","configuration","IsStandalone","MVCApp","setBaseUrl","initLocalization","render","StrictMode","fallback","store","instance","msalInstance","Auth","SolThemeProvider","baseMediaUrl","DesignSystemMediaBaseUrl","RuntimeConfigurationProvider","getConfiguration","currentConfiguration","configurationProviders","buildConfiguration","Error","reduce","provider","getCurrentLocalesVersionAndUpdateLocalStorage","axios","get","LocalesBaseUrl","then","res","data","localStorage","setItem","JSON","stringify","UpdateLocalStorageWithLatestMetadata","localesJson","getItem","metadataObject","parse","version","split","metadataDate","metadataIncrement","LocalesVersion","confDate","confIncrement","Number","DetermineLocalesVersionBasedOnMetadaAndConfig","getLocalizationFilesPath","base","decorateWithLocalMediaBaseUrl","url","replace","MediaBaseUrl","decorateWithDesignSystemMediaBaseUrl","userLocale","navigator","languages","length","userLanguage","language","browserLanguage","userLocaleObject","locales","substring","i18n","use","HttpApi","initReactI18next","init","lng","fallbackLng","interpolation","escapeValue","defaultNS","returnObjects","ns","debug","UseLocalizationDebug","backend","loadPath","AlertType","MARKED_MESSAGES_IDS","ADD_READ_MESSAGE","MESSAGES_LOAD","MESSAGES","CONTACT_QUESTIONS","PRIVACY_INFORMATION_REQUEST","MESSAGES_ACCOUNTS","MESSAGE_NEW","ADD_READ_ALERTS","MARKED_ALERTS","ALERTS_LOAD","ALERTS","ADD_RESOLVED_ALERTS","MARKED_RESOLVED_ALERTS","emptyApi","createApi","reducerPath","baseQuery","fetchBaseQuery","endpoints","AuthContext","createContext","signIn","signOut","signUp","profileSettings","isAuthenticated","isPerusal","allowESPPManagement","progressStatus","ProgressStatus","None","useAuth","useContext","AuthProvider","children","authContext","useMsal","inProgress","accounts","loginRedirect","logoutRedirect","queryParameters","authenticationScheme","AuthenticationScheme","BEARER","authority","Adb2c","authorityRegister","extraQueryParameters","authoritySettings","redirectUri","settingsRedirectUrl","useIsAuthenticated","account","getMsalAuthContext","t","useTranslation","window","location","href","AuthenticatedBase","params","URLSearchParams","toString","isPerusalUser","localAccountId","userId","username","getMvcAuthContext","Provider","value","SessionService","action","type","readMsgIds","getState","messages","markedMessagesIds","sessionStorage","readAlertsTypes","alerts","readItemsTypes","alertResolved","payload","Date","toLocaleString","key","serializedState","error","sessionStoreMiddleware","next","result","handleAction","PublicClientApplication","Msal","solTheme","theme","eqMainTheme","typography","link5","linkBase","fontSize","customs","components","MuiCssBaseline","styleOverrides","p","margin","MuiTooltip","tooltip","backgroundColor","color","MuiScopedCssBaseline","body","minHeight","a","button","outline","outlineColor","MuiModal","textDecoration","MuiDatePicker","defaultProps","PaperProps","sx","external","bp","palette","primary","main","comcast","merge","getSolTheme","undefined","fetchUserDetailsById","createAsyncThunk","apiClient","users_GetDetails","response","userName","userSlice","createSlice","name","initialState","isLoading","isError","reducers","extraReducers","builder","addCase","fulfilled","state","rejected","pending","pagesReducer","combineReducers","portfolio","portfolioPageReducer","messagesPageReducer","accountManagement","accountManagementPageReducer","rootReducer","alertsReducer","messagesReducer","messageDetails","messageDetailReducer","accountsCompanies","accountsCompaniesReducer","registration","registrationReducer","reducer","agreementsReducer","addressFormatReducer","userReducer","configureStore","middleware","getDefaultMiddleware","serializableCheck","ignoredActionPaths","concat","useAppDispatch","useDispatch","RoutingPaths","registerPaths","register","onlineRegistration","externalRegister","registerDspp","registerDsppContinue","fetchMessagesByUserId","message_GetMessages","fetchContactQuestionsByUserId","message_GetContactQuestions","fetchNewMessageAccountsByUserId","accountsInformation_GetAccountsCompanies","newMessageSend","request","message_ActionCreateNewMessage","newMessage","messagesSlice","list","isSuccess","contactQuestions","deleteMessages","ids","filter","i","indexOf","messageId","addReadMessage","clearSuccessMessage","updateReadStatus","id","map","content","unread","loadFromSession","questions","Object","keys","question","actions","pathname","startsWith","BaseUrl","UnauthenticatedBase","axiosInstance","create","transformResponse","ApiBaseUrl","SPCoreClient","isLoggedIn","getAllAccounts","interceptors","requestConfig","isNewApi","includes","isNewApiDev","Promise","resolve","scopes","apiPermissions","forceRefresh","acquireTokenSilent","tokenResponse","headers","Authorization","accessToken","AlertsService","alertsTranslations","this","alerts_GetAlerts","loadNamespaces","al","buildAlert","apiAlert","alertType","AccountReCertification","accountName","accountNumber","taxCertExpiring","description","label","CNotice","cNotice","moreInfoLabel","lessInfoLabel","FirstBNotice","firstBNotice","OutstandingChecks","outstandingChecks","SecondBNotice","secondBNotice","TaxCertified","taxIdUncertified","UndeliverableAddress","undeliverableAddress","fetchAlertsByUserId","AlertService","getAll","alertsSlice","all","addReadAlert","resolveAlert","isNewSol","getUrl","fetchAccounts","accountsInformation_GetAccounts","getPrimaryAddressPreview","userAddress","primaryAddress_GetPreview","getSeasonalAddressPreview","seasonalAddress_GetPreview","isPrimaryAddressBatchPending","primaryAddress_IsPrimaryAddressBatchPending","isSeasonalAddressBatchPending","seasonalAddress_IsSeasonalAddressBatchPending","changePrimaryAccountAddress","accountId","addressLines","city","countryCode","primaryZipCode","primaryAddress_Update","zipCode","changeSeasonalAccountAddress","start","end","isRecurring","isActive","seasonalAddress_Update","createSeasonalAccountAddress","seasonalAddress_Create","deleteSeasonalAddress","seasonalAddress_Delete","fetchPrimaryAddressPreview","fetchSeasonalAddressPreview","checkIsPrimaryAddressBatchPending","checkIsSeasonalAddressBatchPending","rejectionPrimaryAddressReducer","isUpdatingPrimaryAddress","isUpdatingPrimaryAddressError","rejectionSeasonalAddressReducer","isUpdatingSeasonalAddress","isUpdatingSeasonalAddressError","pendingSeasonalAddressReducer","accountManagementSlice","isAddressPreviedLoading","redirectUrl","updateRedirectUrl","fulfilledPrimaryAddressReducer","pendingPrimaryAddressReducer","fulfilledSeasonalAddressReducer","arg","meta","properAccount","x","accIndex","findIndex","modifiedList","splice","seasonalAddress","matchingAccount","find","address","isUndeliverableAddress","fullAddressLines","messageDelete","message_DeleteMessages","messageDeleteRequest","messageReply","message_ActionReplyToMessage","messageBody","messageUpdateUnread","message_UpdateReadStatus","updateReadStatusRequest","messageAttachements","message_GetAttachments","attachments","messageDetailSlice","isReplyMessageSuccess","isDeleteMessageSuccess","clearDetailSuccessMessage","contactQuestionsSelector","contactQuestionsLoadingSelector","contactQuestionsErrorSelector","messageAccountsSelector","messageAccountsLoadingSelector","messageAccountsErrorSelector","messageSendErrorSelector","messageSendLoadingSelector","messageSendSuccessSelector","allMessagesSelector","messagesLoadingSelector","messagesErrorSelector","unreadMessagesSelector","hasUnreadMessagesSelector","unreadSessionMessagesSelector","unreadMessages","msg","unreadSessionCompanyMessagesSelector","createSelector","unreadSessionMessages","isCompanyMessage","unreadMessagesCountSelector","getFeatureFlags","features_GetFeatures","catch","reason","useGetFeatureFlagsQuery","injectEndpoints","build","query","queryFn","overrideExisting","FeatureFlags","BUY","ACCOUNT_BALANCE","IDV","useFeatureFlags","cacheKey","isFetching","useState","cachedFlags","setFlags","useEffect","isLoaded","addressFormat","getFormat","registrationCode","addressFormat_GetFormat","getFormatAnonymous","addressFormat_GetFormatForCountry","fetchAddressFormat","addressFormatSlice","messagesPageSlice","selectedIds","filters","setSelectedId","index","push","setSelectedIds","setUnreadFilter","allAlertsSelector","unreadAlertsSelector","groupedAlerts","uniqBy","groupedAlertsSelector","hasUnreadAlertsSelector","alertsLoadingSelector","onlineAccess","esign","fetchOnlineAccessAgreement","agreement_GetHtml","AgreementType","OnlineAccess","fetchEsignConsent","ESign","agreementssSlice","html","fetchPortfolioExcel","portfolio_DownloadPortfolioExcel","applyZeroFilter","portfolioSlice","isModalOpened","applyZeroBalanceFilter","excelFileData","setPortfolioModal","toggleFilter","fileData","fetchPortfolioByUserId","portfolio_GetPortfolio","fetchDividendsByUserId","portfolio_GetDividends","accountsCompaniesSlice","isMarketPricingAvailable","totalValue","createApiThunk","apiCall","rejectWithValue","correlationId","isRecoveryLoading","recoveryResponse","isValidationSuccess","validationStatus","SosUserAuthResponseCode","GeneralError","cache","fetchRegistration","registrationCache_Create","fetchRecovery","req","recovery_RecoverAuthenticationId","fetchValidateAuthenticationId","registrationValidation_ValidateUserByAuthenticationId","fetchValidateSSN","registrationValidation_ValidateUserBySocialSecurityNumber","fetchValidateEmployeeNumber","registrationValidation_ValidateUserByEmployeeNumber","resetRegistrationReducer","_","registrationSlice","resetRegistrationRedirectUrl","status","errorCode","title","errorMessage","detail","validationCode","Success","isWaitingOnSsnVerification","validateCompanyAndAccountNumber","registrationValidation_ValidateCompanyNameAndAccountNumber","registrationApi","mutation","useValidateCompanyAndAccountNumberMutation","environmentConfigurationProvider","process","LogosUrl","clientId","knownAuthorities","loginRedirectUrl","logoutRedirectUrl","tainaCertificationUrl","overrideValueFromGlobalVars","currentValue","globalVarValue","isArray","globalVarsConfigurationProvider","globalConfig","REACT_APP_VARIABLES","ClientId","Authority","AuthorityRegister","AuthoritySettings","KnownAuthorities","LoginRedirectUrl","LogoutRedirectUrl","SettingsRedirectUrl","ApiPermissions","TainaCertificationUrl","msalConfigurationProvider","auth","postLogoutRedirectUri","cacheLocation","storeAuthStateInCookie","configurationProvider","headerCotnainer","display","flexDirection","headerDivider","marginX","border","borderColor","BpHeaderContent","image","Box","styles","Divider","orientation","flexItem","src","alt","ComcastHeaderContent","backToLogin","textAlign","marginLeft","Spacings","small2","dispatch","useLocation","isMobile","useMediaQuery","breakpoints","down","path","companiesData","company","toLowerCase","logo","CompaniesComponentsFactory","companyHeader","companyStyles","hasMessages","useSelector","hasAlerts","useFeatures","headerData","isRegisterPath","isDsppContinue","accountLinks","slice","onClick","urlGenerator","isExternal","externalUrl","featureFilter","link","disableOnFeature","enableOnFeature","urlArrayGenerator","array","item","el","subLinks","sub","logoData","decoratedLinks","aL","iconUrl","disabled","decoratedMobileLinks","mobileAccountLinks","isCompanyPage","buttonsSettings","loginLink","onLoginClick","e","preventDefault","loginExternal","registerLink","registerExternal","goToLoginText","Typography","variant","to","themeVariant","ThemeVariant","light","notifications","hasNotifications","menuElements","hideLoginRegister","additionalContent","hideMobileMenu","width","pr","fontFamily","fonts","Heavy","textDecorationColor","footerCopyright","copyrightText","getFullYear","logoUrl","footerColumn","links","linkItem","authenticatedLink"],"mappings":"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","file":"scripts/reactNew/main.66becbf4.chunk.js","sourcesContent":["import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { FlagsProvider } from 'flagged';\r\nimport Header from './common/components/Header';\r\nimport useFutureFlags from './common/hooks/featureFlags/useFeatureFlags';\r\n\r\ninterface Props {\r\n container: HTMLElement;\r\n}\r\n\r\nconst HeaderPortal = ({ container }: Props) => {\r\n const { flags } = useFutureFlags();\r\n return container\r\n ? ReactDOM.createPortal(\r\n \r\n \r\n ,\r\n container\r\n )\r\n : null;\r\n};\r\n\r\nexport default HeaderPortal;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport Footer from './common/components/Footer';\r\n\r\ninterface Props {\r\n container: HTMLElement;\r\n}\r\n\r\nconst FooterPortal = ({ container }: Props) =>\r\n container ? ReactDOM.createPortal(, container) : null;\r\nexport default FooterPortal;\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport React, { Suspense } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { MsalProvider } from '@azure/msal-react';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { HelmetProvider } from 'react-helmet-async';\r\nimport { Provider } from 'react-redux';\r\nimport { AuthProvider } from './common/Auth';\r\nimport MVCApp from './app/configuration/MVCApp';\r\nimport initLocalization from './app/configuration/Localization';\r\n// import reportWebVitals from './reportWebVitals';\r\nimport configuration from './app/configuration';\r\nimport msalInstance from './app/msalInstance';\r\nimport HeaderPortal from './HeaderPortal';\r\nimport FooterPortal from './FooterPortal';\r\nimport { store } from './app/store';\r\nimport SolThemeProvider from './common/components/SolThemeProvider';\r\n\r\nconst App = React.lazy(() => import('./App'));\r\n\r\nconst APP_BOOTSTRAP_ROOT = 'root-react-new';\r\nconst HEADER_PORTAL_ID = 'header-portal-react-new';\r\nconst FOOTER_PORTAL_ID = 'footer-portal-react-new';\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\nif (!configuration.IsStandalone) {\r\n MVCApp.setBaseUrl();\r\n}\r\n\r\ninitLocalization(configuration);\r\n\r\nif (root !== null) {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n {configuration.IsStandalone && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!configuration.IsStandalone && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ,\r\n root\r\n );\r\n}\r\n\r\n// Temporary code for transition period with old app\r\nif (root === null && header !== null && footer !== null) {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n {configuration.IsStandalone && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!configuration.IsStandalone && (\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 header\r\n );\r\n}\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\n// eslint-disable-next-line no-console\r\n// reportWebVitals(console.log);\r\n","import {\r\n AppConfigurationProvider,\r\n Configuration,\r\n ConfigurationProvider,\r\n} from './Interfaces';\r\n\r\nexport default class RuntimeConfigurationProvider\r\n implements AppConfigurationProvider\r\n{\r\n static currentConfiguration: Configuration;\r\n\r\n static configurationProviders: ConfigurationProvider[] = [];\r\n\r\n static buildConfiguration = () => {\r\n if (RuntimeConfigurationProvider.currentConfiguration) {\r\n throw new Error('Configuration already initialized');\r\n }\r\n RuntimeConfigurationProvider.currentConfiguration =\r\n RuntimeConfigurationProvider.configurationProviders.reduce(\r\n (configuration, provider) => provider(configuration),\r\n {} as Configuration\r\n );\r\n };\r\n\r\n getConfiguration = () => RuntimeConfigurationProvider.currentConfiguration;\r\n}\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport HttpApi from 'i18next-http-backend';\r\nimport axios from 'axios';\r\nimport * as locales from 'date-fns/locale';\r\nimport { Configuration } from './Interfaces';\r\nimport common from '../../../locales/en/common.json';\r\nimport messages from '../../../locales/en/messages.json';\r\nimport alerts from '../../../locales/en/alerts.json';\r\nimport accountManagement from '../../../locales/en/accountManagement.json';\r\nimport RuntimeConfigurationProvider from './RuntimeConfigurationProvider';\r\nimport registration from '../../../locales/en/pages/registration.json';\r\nimport validations from '../../../locales/en/validations.json';\r\nimport portfolio from '../../../locales/en/pages/portfolio.json';\r\nimport esignConsent from '../../../locales/en/pages/esignConsent.json';\r\nimport onlineAccessAgreement from '../../../locales/en/pages/onlineAccessAgreement.json';\r\nimport onlineRegistration from '../../../locales/en/pages/onlineRegistration.json';\r\nimport investmentPlans from '../../../locales/en/pages/dspp/investmentPlans.json';\r\nimport companyDetails from '../../../locales/en/pages/dspp/companyDetails.json';\r\nimport dsppVerify from '../../../locales/en/pages/dspp/verify.json';\r\nimport taxCertCheck from '../../../locales/en/pages/dspp/taxCertCheck.json';\r\nimport dividendPaymentMethod from '../../../locales/en/pages/dspp/dividendPaymentMethod.json';\r\nimport yourInvestment from '../../../locales/en/pages/dspp/yourInvestment.json';\r\nimport taxCertificationForm from '../../../locales/en/components/taxCertificationForm.json';\r\nimport taxCertificationDialog from '../../../locales/en/components/taxCertificationDialog.json';\r\nimport payment from '../../../locales/en/pages/dspp/payment.json';\r\nimport registrationDetails from '../../../locales/en/components/registrationDetails.json';\r\nimport bankInfo from '../../../locales/en/bankInfo.json';\r\nimport dividendReinvestment from '../../../locales/en/pages/dspp/dividendReinvestment.json';\r\nimport reviewCommon from '../../../locales/en/components/review.json';\r\nimport dsppReview from '../../../locales/en/pages/dspp/review.json';\r\nimport summary from '../../../locales/en/pages/dspp/summary.json';\r\nimport buySummary from '../../../locales/en/pages/buy/summary.json';\r\nimport stopLossAndLimitOrders from '../../../locales/en/pages/stopLossAndLimitOrders.json';\r\nimport dividends from '../../../locales/en/pages/dividends.json';\r\nimport accountDocuments from '../../../locales/en/pages/accountDocuments.json';\r\nimport balanceSummary from '../../../locales/en/pages/accountBalance/balanceSummary.json';\r\nimport verifySSN from '../../../locales/en/pages/verifySSN.json';\r\nimport buyWizard from '../../../locales/en/pages/buy/buyWizard.json';\r\nimport buyCompanyDetails from '../../../locales/en/pages/buy/companyDetails.json';\r\nimport buyInvestmentPlans from '../../../locales/en/pages/buy/investmentPlans.json';\r\nimport buyReview from '../../../locales/en/pages/buy/review.json';\r\nimport buySelectAccount from '../../../locales/en/pages/buy/selectAccount.json';\r\nimport buyTexVerification from '../../../locales/en/pages/buy/taxVerification.json';\r\nimport companyComponents from '../../../locales/en/components/companies.json';\r\nimport CancelDialog from '../../../locales/en/components/cancelDialog.json';\r\nimport RedirectDialog from '../../../locales/en/components/redirectDialog.json';\r\nimport taxCertificationDspp from '../../../locales/en/pages/dspp/taxCertificationDspp.json';\r\nimport taxCertificationBuy from '../../../locales/en/pages/buy/taxCertificationBuy.json';\r\nimport taxCertificationTrustForm from '../../../locales/en/pages/dspp/taxCertificationTrustFormData.json';\r\nimport registrationSummary from '../../../locales/en/pages/buy/registrationSummary.json';\r\nimport investmentDetailsForms from '../../../locales/en/components/investmentDetailsForms.json';\r\nimport investmentDetails from '../../../locales/en/pages/buy/investmentDetails.json';\r\nimport investmentEdit from '../../../locales/en/pages/buy/investmentEdit.json';\r\nimport paymentDetails from '../../../locales/en/pages/buy/paymentDetails.json';\r\nimport buyRegistrationDetails from '../../../locales/en/pages/buy/registrationDetails.json';\r\nimport eDeliveryPreferences from '../../../locales/en/pages/buy/eDeliveryPreferences.json';\r\nimport accountBalanceReports from '../../../locales/en/pages/accountBalance/accountBalanceReports.json';\r\n\r\ndeclare module 'react-i18next' {\r\n interface CustomResources {\r\n common: typeof common;\r\n messages: typeof messages;\r\n alerts: typeof alerts;\r\n accountManagement: typeof accountManagement;\r\n validations: typeof validations;\r\n bankInfo: typeof bankInfo;\r\n 'pages/portfolio': typeof portfolio;\r\n 'pages/registration': typeof registration;\r\n 'components/registrationDetails': typeof registrationDetails;\r\n 'pages/dspp/investmentPlans': typeof investmentPlans;\r\n 'pages/dspp/dividendReinvestment': typeof dividendReinvestment;\r\n 'pages/dspp/companyDetails': typeof companyDetails;\r\n 'pages/dspp/verify': typeof dsppVerify;\r\n 'pages/dspp/taxCertCheck': typeof taxCertCheck;\r\n 'pages/dspp/dividendPaymentMethod': typeof dividendPaymentMethod;\r\n 'pages/dspp/yourInvestment': typeof yourInvestment;\r\n 'components/taxCertificationForm': typeof taxCertificationForm;\r\n 'components/taxCertificationDialog': typeof taxCertificationDialog;\r\n 'pages/dspp/payment': typeof payment;\r\n 'pages/esignConsent': typeof esignConsent;\r\n 'pages/onlineAccessAgreement': typeof onlineAccessAgreement;\r\n 'pages/onlineRegistration': typeof onlineRegistration;\r\n 'components/review': typeof reviewCommon;\r\n 'pages/dspp/review': typeof dsppReview;\r\n 'pages/dspp/summary': typeof summary;\r\n 'pages/buy/summary': typeof buySummary;\r\n 'pages/stopLossAndLimitOrders': typeof stopLossAndLimitOrders;\r\n 'pages/dividends': typeof dividends;\r\n 'pages/accountDocuments': typeof accountDocuments;\r\n 'pages/accountBalance/accountBalanceReports': typeof accountBalanceReports;\r\n 'pages/accountBalance/balanceSummary': typeof balanceSummary;\r\n 'pages/verifySSN': typeof verifySSN;\r\n 'pages/buy/companyDetails': typeof buyCompanyDetails;\r\n 'pages/buy/investmentPlans': typeof buyInvestmentPlans;\r\n 'pages/buy/review': typeof buyReview;\r\n 'pages/buy/buyWizard': typeof buyWizard;\r\n 'pages/buy/selectAccount': typeof buySelectAccount;\r\n 'pages/buy/taxVerification': typeof buyTexVerification;\r\n 'pages/buy/taxCertificationBuy': typeof taxCertificationBuy;\r\n 'pages/buy/registrationSummary': typeof registrationSummary;\r\n 'pages/buy/investmentDetails': typeof investmentDetails;\r\n 'pages/buy/investmentEdit': typeof investmentEdit;\r\n 'pages/buy/paymentDetails': typeof paymentDetails;\r\n 'pages/buy/registrationDetails': typeof buyRegistrationDetails;\r\n 'pages/buy/eDeliveryPreferences': typeof eDeliveryPreferences;\r\n 'pages/dspp/taxCertificationDspp': typeof taxCertificationDspp;\r\n 'pages/dspp/taxCertificationTrustFormData': typeof taxCertificationTrustForm;\r\n 'components/companies': typeof companyComponents;\r\n 'components/cancelDialog': typeof CancelDialog;\r\n 'components/redirectDialog': typeof RedirectDialog;\r\n 'components/investmentDetailsForms': typeof investmentDetailsForms;\r\n }\r\n\r\n type CountryStatesKeys = Exclude;\r\n type CountryStatesResources = Record<\r\n CountryStatesKeys,\r\n { states: { name: string; code: string }[] }\r\n >;\r\n\r\n interface CustomTypeOptions {\r\n defaultNS: 'common';\r\n resources: CustomResources & CountryStatesResources;\r\n }\r\n}\r\n\r\nconst UpdateLocalStorageWithLatestMetadata = (configuration: Configuration) => {\r\n axios\r\n .get(`${configuration.LocalesBaseUrl}/locales-metadata.json`)\r\n .then((res) => {\r\n if (res.data) {\r\n localStorage.setItem('locales-metadata', JSON.stringify(res.data));\r\n }\r\n });\r\n};\r\n\r\nconst DetermineLocalesVersionBasedOnMetadaAndConfig = (\r\n configuration: Configuration\r\n) => {\r\n const localesJson = localStorage.getItem('locales-metadata');\r\n if (localesJson) {\r\n const metadataObject = JSON.parse(localesJson);\r\n const [metadataDate, metadataIncrement] = metadataObject.version.split('.');\r\n const [confDate, confIncrement] = (\r\n configuration.LocalesVersion || '0.0'\r\n ).split('.');\r\n if (metadataDate === confDate) {\r\n return Number(metadataIncrement) > Number(confIncrement)\r\n ? metadataObject.version\r\n : configuration.LocalesVersion;\r\n }\r\n if (metadataDate > confDate) {\r\n return metadataObject.version;\r\n }\r\n return configuration.LocalesVersion;\r\n }\r\n return configuration.LocalesVersion;\r\n};\r\n\r\nconst getCurrentLocalesVersionAndUpdateLocalStorage = (\r\n configuration: Configuration\r\n) => {\r\n UpdateLocalStorageWithLatestMetadata(configuration);\r\n return DetermineLocalesVersionBasedOnMetadaAndConfig(configuration);\r\n};\r\n\r\nconst getLocalizationFilesPath = (configuration: Configuration) => {\r\n const base = configuration.LocalesBaseUrl;\r\n const version = configuration.LocalesVersion\r\n ? `/${getCurrentLocalesVersionAndUpdateLocalStorage(configuration)}`\r\n : '';\r\n\r\n return `${base}${version}/{{lng}}/{{ns}}.json`;\r\n};\r\n\r\nexport const getI18nOptions = () => ({\r\n lng: 'en',\r\n fallbackLng: 'en',\r\n interpolation: { escapeValue: false },\r\n defaultNS: 'common',\r\n returnObjects: true,\r\n ns: ['common'],\r\n});\r\n\r\nconst initLocalization = (configuration: Configuration) => {\r\n i18n\r\n .use(HttpApi)\r\n .use(initReactI18next)\r\n .init({\r\n ...getI18nOptions(),\r\n debug: configuration.UseLocalizationDebug,\r\n backend: {\r\n loadPath: getLocalizationFilesPath(configuration),\r\n },\r\n });\r\n};\r\n\r\nexport const decorateWithLocalMediaBaseUrl = (url: string) => {\r\n const configuration = new RuntimeConfigurationProvider().getConfiguration();\r\n return url.replace('$(LOCAL_MEDIA_URL)', configuration.MediaBaseUrl || '');\r\n};\r\n\r\nexport const decorateWithDesignSystemMediaBaseUrl = (url: string) => {\r\n const configuration = new RuntimeConfigurationProvider().getConfiguration();\r\n return url.replace(\r\n '$(DESIGN_SYSTEM_MEDIA_URL)',\r\n configuration.DesignSystemMediaBaseUrl || ''\r\n );\r\n};\r\n\r\nexport const userLocale: string =\r\n navigator.languages && navigator.languages.length\r\n ? navigator.languages[0]\r\n : // @ts-ignore // doesn't recognise IE navigator fields\r\n navigator.userLanguage ||\r\n navigator.language ||\r\n // @ts-ignore // doesn't recognise IE navigator fields\r\n navigator.browserLanguage ||\r\n 'en-US';\r\n\r\nexport const userLocaleObject =\r\n // @ts-ignore // dynamic locales loader\r\n locales[userLocale.replace('-', '')] ||\r\n // @ts-ignore // dynamic locales loader\r\n locales[userLocale.substring(0, 2)] ||\r\n locales.enUS;\r\n\r\nexport default initLocalization;\r\n","export enum AlertType {\r\n None = 'None',\r\n OutstandingChecks = 'OutstandingChecks',\r\n UndeliverableAddress = 'UndeliverableAddress',\r\n TaxCertified = 'TaxCertified',\r\n FirstBNotice = 'FirstBNotice',\r\n SecondBNotice = 'SecondBNotice',\r\n CNotice = 'CNotice',\r\n AccountReCertification = 'AccountReCertification',\r\n}\r\n\r\nexport interface Alert {\r\n type: AlertType;\r\n accountName?: string;\r\n accountNumber?: number;\r\n description: string;\r\n action: string;\r\n content?: string;\r\n moreInfoLabel?: string;\r\n lessInfoLabel?: string;\r\n}\r\n\r\nexport interface AlertDescription {\r\n label: string;\r\n action: string;\r\n content: string;\r\n moreInfoLabel: string;\r\n lessInfoLabel: string;\r\n}\r\n\r\nexport interface AlertsLocalization {\r\n undeliverableAddress: AlertDescription;\r\n outstandingChecks: AlertDescription;\r\n firstBNotice: AlertDescription;\r\n secondBNotice: AlertDescription;\r\n cNotice: AlertDescription;\r\n taxCertExpiring: AlertDescription;\r\n taxIdUncertified: AlertDescription;\r\n}\r\n","const MARKED_MESSAGES_IDS = 'markedMessagesIds';\r\nconst ADD_READ_MESSAGE = 'messages/addReadMessage';\r\nconst MESSAGES_LOAD = 'messages/load';\r\nconst MESSAGES = 'messages';\r\nconst CONTACT_QUESTIONS = 'messages/contact-us/contact-questions';\r\nconst PRIVACY_INFORMATION_REQUEST = 'Privacy Information Request';\r\nconst MESSAGES_ACCOUNTS = 'messages/contact-us/accounts';\r\nconst MESSAGE_NEW = 'messages/contact-us/new-message';\r\nexport {\r\n MARKED_MESSAGES_IDS,\r\n MESSAGES_LOAD,\r\n MESSAGES,\r\n ADD_READ_MESSAGE,\r\n PRIVACY_INFORMATION_REQUEST,\r\n CONTACT_QUESTIONS,\r\n MESSAGES_ACCOUNTS,\r\n MESSAGE_NEW,\r\n};\r\n","const ADD_READ_ALERTS = 'alerts/addReadAlert';\r\nconst MARKED_ALERTS = 'markedAlerts';\r\nconst ALERTS_LOAD = 'alerts/load';\r\nconst ALERTS = 'alerts';\r\nconst ADD_RESOLVED_ALERTS = 'alerts/resolveAlert';\r\nconst MARKED_RESOLVED_ALERTS = 'resolvedAlerts';\r\nexport {\r\n MARKED_ALERTS,\r\n ALERTS_LOAD,\r\n ALERTS,\r\n ADD_READ_ALERTS,\r\n ADD_RESOLVED_ALERTS,\r\n MARKED_RESOLVED_ALERTS,\r\n};\r\n","import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/dist/query/react';\r\n\r\n// initialize an empty api service that we'll inject endpoints into later as needed\r\nconst emptyApi = createApi({\r\n reducerPath: 'coreApi',\r\n baseQuery: fetchBaseQuery(),\r\n endpoints: () => ({}),\r\n});\r\n\r\nexport default emptyApi;\r\n","import React, { createContext, useContext } from 'react';\r\nimport { useIsAuthenticated, useMsal } from '@azure/msal-react';\r\nimport { InteractionStatus as ProgressStatus } from '@azure/msal-browser/dist/utils/BrowserConstants';\r\nimport { RedirectRequest } from '@azure/msal-browser/dist/request/RedirectRequest';\r\nimport { AuthenticationScheme } from '@azure/msal-browser/dist';\r\nimport { useTranslation } from 'react-i18next';\r\nimport RuntimeConfigurationProvider from '../app/configuration/RuntimeConfigurationProvider';\r\nimport MVCApp from '../app/configuration/MVCApp';\r\nimport { Configuration } from '../app/configuration/Interfaces';\r\n\r\nexport { InteractionStatus as ProgressStatus } from '@azure/msal-browser/dist/utils/BrowserConstants';\r\n\r\nexport type QueryParameters = {\r\n [key: string]: string;\r\n};\r\n\r\nexport type AuthContextType = {\r\n signIn: () => void;\r\n signOut: () => void;\r\n signUp: (queryParameters?: QueryParameters) => void;\r\n profileSettings: () => void;\r\n isAuthenticated: boolean;\r\n isPerusal: boolean;\r\n progressStatus: ProgressStatus;\r\n account?: Account;\r\n allowESPPManagement: boolean;\r\n};\r\n\r\ntype Account = {\r\n localAccountId: string;\r\n username: string;\r\n};\r\n\r\nconst AuthContext = createContext({\r\n signIn: () => {\r\n // sign in logic is set up by provider\r\n },\r\n signOut: () => {\r\n // sign out logic is set up by provider\r\n },\r\n signUp: () => {\r\n // sign out logic is set up by provider\r\n },\r\n profileSettings: () => {\r\n // profile settings logic is set up by provider\r\n },\r\n isAuthenticated: false,\r\n isPerusal: false,\r\n allowESPPManagement: false,\r\n progressStatus: ProgressStatus.None,\r\n});\r\n\r\nexport const useAuth = () => useContext(AuthContext);\r\n\r\nconst getMsalAuthContext = (configuration: Configuration): AuthContextType => {\r\n const { instance, inProgress, accounts } = useMsal();\r\n return {\r\n signIn: () => instance.loginRedirect(),\r\n signOut: () => instance.logoutRedirect(),\r\n signUp: (queryParameters?: QueryParameters) =>\r\n instance.loginRedirect({\r\n authenticationScheme: AuthenticationScheme.BEARER,\r\n authority: configuration?.Adb2c?.authorityRegister,\r\n extraQueryParameters: queryParameters,\r\n } as RedirectRequest),\r\n profileSettings: () =>\r\n instance.loginRedirect({\r\n authenticationScheme: AuthenticationScheme.BEARER,\r\n authority: configuration?.Adb2c?.authoritySettings,\r\n redirectUri: configuration?.Adb2c?.settingsRedirectUrl,\r\n } as RedirectRequest),\r\n isAuthenticated: useIsAuthenticated(),\r\n isPerusal: false,\r\n allowESPPManagement: false,\r\n progressStatus: inProgress,\r\n account: accounts[0],\r\n };\r\n};\r\n\r\nconst getMvcAuthContext = (): AuthContextType => {\r\n const { t } = useTranslation();\r\n return {\r\n signIn: () => {\r\n window.location.href = MVCApp.AuthenticatedBase;\r\n },\r\n signOut: () => {\r\n window.location.href = t('logoutUrl');\r\n },\r\n signUp: (queryParameters?: QueryParameters) => {\r\n const params = new URLSearchParams(queryParameters);\r\n window.location.href = `${t('signupUrl')}?${params.toString()}`;\r\n },\r\n profileSettings: () => {\r\n window.location.href = t('profileSettingsUrl');\r\n },\r\n isAuthenticated: (window as any).isAuthenticated,\r\n isPerusal: (window as any).isPerusalUser,\r\n allowESPPManagement: (window as any).allowESPPManagement,\r\n progressStatus: ProgressStatus.None,\r\n account: {\r\n localAccountId: (window as any).userId,\r\n username: (window as any).username,\r\n },\r\n };\r\n};\r\n\r\nexport const AuthProvider: React.FC = ({ children }) => {\r\n const configuration = new RuntimeConfigurationProvider().getConfiguration();\r\n\r\n const authContext = configuration.IsStandalone\r\n ? getMsalAuthContext(configuration)\r\n : getMvcAuthContext();\r\n\r\n return (\r\n {children}\r\n );\r\n};\r\n","import { Middleware } from '@reduxjs/toolkit';\r\nimport {\r\n MARKED_MESSAGES_IDS,\r\n ADD_READ_MESSAGE,\r\n} from '../../constants/messageConstants';\r\nimport {\r\n ADD_READ_ALERTS,\r\n MARKED_ALERTS,\r\n ADD_RESOLVED_ALERTS,\r\n MARKED_RESOLVED_ALERTS,\r\n} from '../../constants/alertConstants';\r\nimport {\r\n ADD_GLOBAL_DELIVERY_PREFERENCES_TO_SESSION_STORAGE,\r\n GLOBAL_DELIVERY_PREFERENCES_SESSION_STORAGE_KEY,\r\n} from '../../constants/globalDeliveryPreferencesConstants';\r\n\r\nabstract class SessionService {\r\n public static handleAction(store: any, action: any) {\r\n switch (action.type) {\r\n case ADD_READ_MESSAGE: {\r\n const readMsgIds = store.getState().messages.messages.markedMessagesIds;\r\n sessionStorage.setItem(MARKED_MESSAGES_IDS, JSON.stringify(readMsgIds));\r\n break;\r\n }\r\n case ADD_READ_ALERTS: {\r\n const readAlertsTypes = store.getState().alerts.readItemsTypes;\r\n sessionStorage.setItem(MARKED_ALERTS, JSON.stringify(readAlertsTypes));\r\n break;\r\n }\r\n case ADD_RESOLVED_ALERTS: {\r\n const readAlertsTypes = store.getState().alerts.alertResolved;\r\n sessionStorage.setItem(\r\n MARKED_RESOLVED_ALERTS,\r\n JSON.stringify(readAlertsTypes)\r\n );\r\n break;\r\n }\r\n case ADD_GLOBAL_DELIVERY_PREFERENCES_TO_SESSION_STORAGE: {\r\n sessionStorage.setItem(\r\n `${GLOBAL_DELIVERY_PREFERENCES_SESSION_STORAGE_KEY}-${action.payload}`,\r\n JSON.stringify({ Date: new Date().toLocaleString() })\r\n );\r\n break;\r\n }\r\n default: {\r\n //\r\n }\r\n }\r\n }\r\n\r\n public static loadFromSession(key: string) {\r\n try {\r\n const serializedState = sessionStorage.getItem(key);\r\n\r\n if (serializedState === null) {\r\n return undefined;\r\n }\r\n\r\n return JSON.parse(serializedState);\r\n } catch (error) {\r\n return undefined;\r\n }\r\n }\r\n}\r\n\r\nexport const sessionStoreMiddleware: Middleware =\r\n (store) => (next) => (action) => {\r\n const result = next(action);\r\n SessionService.handleAction(store, action);\r\n return result;\r\n };\r\n\r\nexport default SessionService;\r\n","const ADD_GLOBAL_DELIVERY_PREFERENCES_TO_SESSION_STORAGE =\r\n 'globalDeliveryPreferences/setAsConfirmed';\r\nconst GLOBAL_DELIVERY_PREFERENCES_SESSION_STORAGE_KEY = 'eDeliveryPreferences';\r\n\r\nexport {\r\n ADD_GLOBAL_DELIVERY_PREFERENCES_TO_SESSION_STORAGE,\r\n GLOBAL_DELIVERY_PREFERENCES_SESSION_STORAGE_KEY,\r\n};\r\n","import { PublicClientApplication } from '@azure/msal-browser/dist/app/PublicClientApplication';\r\nimport configuration from './configuration';\r\nimport { MsalConfiguration } from './configuration/Interfaces';\r\n\r\nexport default configuration.IsStandalone\r\n ? new PublicClientApplication((configuration as MsalConfiguration).Msal)\r\n : ({} as any as PublicClientApplication);\r\n","import React from 'react';\r\nimport { CssBaseline, ScopedCssBaseline } from '@mui/material';\r\nimport { ThemeProvider } from '@mui/material/styles';\r\nimport eqMainTheme, {\r\n EqMainThemeType,\r\n} from '@eq/design-system/themes/eqMainTheme';\r\nimport merge from 'lodash/merge';\r\nimport configuration from '../../app/configuration';\r\n\r\ndeclare module '@mui/material/styles' {\r\n interface Theme {\r\n external: {\r\n bp: {\r\n palette: {\r\n primary: {\r\n main: string;\r\n };\r\n };\r\n };\r\n comcast: {\r\n palette: {\r\n primary: {\r\n main: string;\r\n };\r\n };\r\n };\r\n };\r\n }\r\n\r\n interface ThemeOptions {\r\n external: {\r\n bp: {\r\n palette: {\r\n primary: {\r\n main: string;\r\n };\r\n };\r\n };\r\n comcast: {\r\n palette: {\r\n primary: {\r\n main: string;\r\n };\r\n };\r\n };\r\n };\r\n }\r\n}\r\n\r\nexport const getSolTheme = () => {\r\n const theme = eqMainTheme as EqMainThemeType;\r\n const { fontSize, ...linkBase } = theme.typography.link5;\r\n const customs = {\r\n components: {\r\n MuiCssBaseline: {\r\n styleOverrides: {\r\n p: {\r\n margin: 0,\r\n },\r\n },\r\n },\r\n MuiTooltip: {\r\n styleOverrides: {\r\n tooltip: {\r\n backgroundColor: '#19316F',\r\n '& .MuiTooltip-arrow': {\r\n color: '#19316F',\r\n },\r\n },\r\n },\r\n },\r\n MuiScopedCssBaseline: {\r\n styleOverrides: {\r\n root: {\r\n ...(theme.components!.MuiCssBaseline!.styleOverrides as any),\r\n ...(theme.components!.MuiCssBaseline!.styleOverrides as any).body,\r\n color: 'black',\r\n '&:empty': {\r\n minHeight: 0,\r\n },\r\n '*::selection': {\r\n backgroundColor: '#D8E3FF',\r\n },\r\n a: {\r\n ...linkBase,\r\n },\r\n button: {\r\n '&:focus-visible': {\r\n outline: '5px auto',\r\n outlineColor: 'black',\r\n },\r\n '&:focus:not(:focus-visible)': {\r\n outline: 'none',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n MuiModal: {\r\n styleOverrides: {\r\n root: {\r\n ...(theme.components!.MuiCssBaseline!.styleOverrides as any).body,\r\n a: {\r\n ...linkBase,\r\n '&.MuiMenuItem-root': {\r\n color: 'black',\r\n textDecoration: 'none',\r\n },\r\n },\r\n '&.MuiDrawer-root a': {\r\n color: 'black',\r\n textDecoration: 'none',\r\n },\r\n button: {\r\n '&:focus-visible': {\r\n outline: '5px auto',\r\n outlineColor: 'black',\r\n },\r\n '&:focus:not(:focus-visible)': {\r\n outline: 'none',\r\n },\r\n },\r\n '.PrivatePickersYear-root button': { fontSize: '1rem' },\r\n },\r\n },\r\n },\r\n MuiDatePicker: {\r\n defaultProps: {\r\n PaperProps: {\r\n sx: {\r\n '.PrivatePickersYear-root button': { fontSize: '1rem' },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n external: {\r\n bp: {\r\n palette: {\r\n primary: {\r\n main: '#009B00',\r\n },\r\n },\r\n },\r\n comcast: {\r\n palette: {\r\n primary: {\r\n main: '#0088D2',\r\n },\r\n },\r\n },\r\n },\r\n };\r\n\r\n return merge(theme, customs) as EqMainThemeType & typeof customs;\r\n};\r\n\r\nexport const solTheme = getSolTheme();\r\nexport type SolTheme = typeof solTheme;\r\n\r\nconst SolThemeProvider = ({\r\n children,\r\n baseMediaUrl = undefined,\r\n}: {\r\n children: React.ReactNode;\r\n baseMediaUrl?: string;\r\n}) => {\r\n if (baseMediaUrl) {\r\n solTheme.baseMediaUrl = baseMediaUrl;\r\n }\r\n\r\n return (\r\n \r\n {configuration.IsStandalone && }\r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default SolThemeProvider;\r\n","import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport apiClient from '../../../app/apiClient';\r\n\r\nexport type RegistrationSliceState = {\r\n isLoading: boolean;\r\n isError: boolean;\r\n username: string;\r\n};\r\n\r\nexport const initialState: RegistrationSliceState = {\r\n isLoading: false,\r\n isError: false,\r\n username: '',\r\n};\r\n\r\nexport const fetchUserDetailsById = createAsyncThunk(\r\n 'users/getDetails',\r\n async () => {\r\n const response = await apiClient.users_GetDetails();\r\n\r\n return response.userName;\r\n }\r\n);\r\n\r\nconst userSlice = createSlice({\r\n name: 'users',\r\n initialState,\r\n reducers: {},\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchUserDetailsById.fulfilled, (state, action) => ({\r\n ...state,\r\n isLoading: false,\r\n isError: false,\r\n username: action.payload || '',\r\n }));\r\n builder.addCase(fetchUserDetailsById.rejected, (state) => ({\r\n ...state,\r\n isLoading: false,\r\n isError: true,\r\n }));\r\n builder.addCase(fetchUserDetailsById.pending, (state) => ({\r\n ...state,\r\n isLoading: true,\r\n isError: false,\r\n }));\r\n },\r\n});\r\n\r\nexport default userSlice.reducer;\r\n","import {\r\n configureStore,\r\n combineReducers,\r\n PreloadedState,\r\n} from '@reduxjs/toolkit';\r\nimport { useDispatch } from 'react-redux';\r\nimport alertsReducer from '../common/slices/alerts/alertsSlice';\r\nimport { sessionStoreMiddleware } from '../common/services/sessionService/SessionService';\r\nimport addressFormatReducer from '../common/slices/addressFormat/addressFormatSlice';\r\nimport messagesReducer from '../common/slices/messages/messagesSlice';\r\nimport portfolioPageReducer from '../pages/portfolio/portfolioSlice';\r\nimport messagesPageReducer from '../pages/messages/messagesPageSlice';\r\nimport accountManagementPageReducer from '../common/slices/accountManagement/accountManagementSlice';\r\nimport messageDetailReducer from '../common/slices/messages/messageDetailSlice';\r\nimport accountsCompaniesReducer from '../common/slices/accountsInformation/companies/accountsCompaniesSlice';\r\nimport agreementsReducer from '../common/slices/agreements/agreementsSlice';\r\nimport registrationReducer from '../common/slices/registration/registrationSlice';\r\nimport userReducer from '../common/slices/users/userSlice';\r\nimport emptyApi from '../common/slices/emptyApi';\r\n\r\nconst pagesReducer = combineReducers({\r\n portfolio: portfolioPageReducer,\r\n messages: messagesPageReducer,\r\n accountManagement: accountManagementPageReducer,\r\n});\r\n\r\nconst rootReducer = combineReducers({\r\n alerts: alertsReducer,\r\n messages: messagesReducer,\r\n messageDetails: messageDetailReducer,\r\n accountsCompanies: accountsCompaniesReducer,\r\n registration: registrationReducer,\r\n [emptyApi.reducerPath]: emptyApi.reducer,\r\n pages: pagesReducer,\r\n agreements: agreementsReducer,\r\n addressFormat: addressFormatReducer,\r\n user: userReducer,\r\n});\r\n\r\nexport const store = configureStore({\r\n reducer: rootReducer,\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: {\r\n ignoredActionPaths: [\r\n 'meta.arg',\r\n 'meta.baseQueryMeta',\r\n 'payload.timestamp',\r\n ],\r\n },\r\n }).concat(sessionStoreMiddleware, emptyApi.middleware),\r\n});\r\n\r\nexport const setupStore = (preloadedState?: PreloadedState) => {\r\n if (JSON.stringify(preloadedState) !== '{}') {\r\n return configureStore({\r\n reducer: rootReducer,\r\n preloadedState,\r\n });\r\n }\r\n return store;\r\n};\r\n\r\nexport type RootState = ReturnType;\r\nexport type AppStore = ReturnType;\r\nexport type AppDispatch = typeof store.dispatch;\r\nexport const useAppDispatch = () => useDispatch();\r\n","enum RoutingPaths {\r\n root = '/',\r\n bp = '/bp',\r\n comcast = '/comcast',\r\n messages = '/messages',\r\n messageDetail = '/messages/:messageId',\r\n contactUs = '/messages/contact-us',\r\n stopLossAndLimitOrders = '/stop-loss-and-limit-orders',\r\n portfolio = '/portfolio',\r\n accountDocuments = '/account-documents',\r\n shareBalance = '/share-balance',\r\n accountBalanceReports = '/account-balance-reports',\r\n historicalAccountBalance = '/account-balance-reports/historical-share-balance',\r\n currentAccountBalance = '/account-balance-reports/current-share-balance',\r\n dividends = '/dividends',\r\n accountManagement = '/account-management',\r\n alerts = '/alerts',\r\n register = '/register',\r\n registerDspp = '/register/dspp',\r\n registerDsppContinue = '/register/dspp/continue',\r\n externalRegister = '/external/register',\r\n resetProfileVerify = '/reset-profile/verify',\r\n onlineRegistration = '/register/onlineRegistration',\r\n accountInformation = '/account-management/account-information',\r\n eDeliveryPreferences = '/account-management/delivery-preferences',\r\n proxyPreferences = '/account-management/proxy-preferences',\r\n accountInformationRedirect = 'account-information',\r\n buy = 'buy',\r\n}\r\n\r\nexport const registerPaths = [\r\n RoutingPaths.register,\r\n RoutingPaths.onlineRegistration,\r\n RoutingPaths.externalRegister,\r\n RoutingPaths.registerDspp,\r\n RoutingPaths.registerDsppContinue,\r\n];\r\n\r\nexport default RoutingPaths;\r\n","/* eslint-disable no-param-reassign */\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport apiClient from '../../../app/apiClient';\r\nimport SessionService from '../../services/sessionService/SessionService';\r\nimport {\r\n MARKED_MESSAGES_IDS,\r\n MESSAGES_LOAD,\r\n MESSAGES,\r\n CONTACT_QUESTIONS,\r\n MESSAGES_ACCOUNTS,\r\n MESSAGE_NEW,\r\n} from '../../constants/messageConstants';\r\nimport { IContactQuestion } from '../../../pages/messages/Interfaces';\r\nimport {\r\n IMessageAccounts,\r\n IMessageContactQuestions,\r\n IMessages,\r\n INewMessage,\r\n} from './interfaces';\r\n\r\ntype SliceState = {\r\n newMessage: INewMessage;\r\n accounts: IMessageAccounts;\r\n messages: IMessages;\r\n contactQuestions: IMessageContactQuestions;\r\n};\r\n\r\nconst initialState: SliceState = {\r\n messages: {\r\n list: [],\r\n markedMessagesIds: [],\r\n isError: false,\r\n isLoading: false,\r\n },\r\n accounts: {\r\n list: [],\r\n isError: false,\r\n isLoading: false,\r\n },\r\n newMessage: {\r\n isLoading: false,\r\n isError: false,\r\n isSuccess: false,\r\n },\r\n contactQuestions: {\r\n list: [],\r\n isError: false,\r\n isLoading: false,\r\n },\r\n};\r\n\r\nexport const fetchMessagesByUserId = createAsyncThunk(\r\n MESSAGES_LOAD,\r\n async () => {\r\n const response = await apiClient.message_GetMessages();\r\n return response.messages;\r\n }\r\n);\r\nexport const fetchContactQuestionsByUserId = createAsyncThunk(\r\n CONTACT_QUESTIONS,\r\n async () => apiClient.message_GetContactQuestions()\r\n);\r\nexport const fetchNewMessageAccountsByUserId = createAsyncThunk(\r\n MESSAGES_ACCOUNTS,\r\n async () => {\r\n const response = await apiClient.accountsInformation_GetAccountsCompanies();\r\n return response.accounts;\r\n }\r\n);\r\n\r\nexport const newMessageSend = createAsyncThunk(\r\n MESSAGE_NEW,\r\n async (request: any) => {\r\n try {\r\n await apiClient.message_ActionCreateNewMessage(request.newMessage);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n);\r\nconst messagesSlice = createSlice({\r\n name: MESSAGES,\r\n initialState,\r\n reducers: {\r\n deleteMessages(state, action) {\r\n const ids = action.payload as number[];\r\n state.messages.list = state.messages.list.filter(\r\n (i) => ids.indexOf(i.messageId || 0) < 0\r\n );\r\n },\r\n addReadMessage: (state, action) => {\r\n state.messages.markedMessagesIds = [\r\n ...state.messages.markedMessagesIds,\r\n action.payload,\r\n ];\r\n },\r\n clearSuccessMessage: (state, action) => {\r\n state.newMessage.isSuccess = action.payload;\r\n },\r\n updateReadStatus: (state, action) => {\r\n const id = action.payload as number;\r\n state.messages = {\r\n ...state.messages,\r\n list: state.messages.list.map((content) =>\r\n content.messageId === id ? { ...content, unread: false } : content\r\n ),\r\n };\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(fetchMessagesByUserId.pending, (state) => {\r\n state.messages.isLoading = true;\r\n state.messages.isError = false;\r\n state.messages.list = [];\r\n })\r\n .addCase(fetchMessagesByUserId.fulfilled, (state, action) => {\r\n state.messages.isLoading = false;\r\n state.messages.isError = false;\r\n state.messages.list = action.payload || [];\r\n state.messages.markedMessagesIds =\r\n SessionService.loadFromSession(MARKED_MESSAGES_IDS) || [];\r\n })\r\n .addCase(fetchMessagesByUserId.rejected, (state) => {\r\n state.messages.isLoading = false;\r\n state.messages.isError = true;\r\n state.messages.list = [];\r\n })\r\n .addCase(fetchContactQuestionsByUserId.fulfilled, (state, action) => {\r\n const questions = action.payload;\r\n state.contactQuestions.isLoading = false;\r\n state.contactQuestions.isError = false;\r\n state.contactQuestions.list = Object.keys(questions).map((i) => ({\r\n id: i,\r\n question: questions[i],\r\n })) as IContactQuestion[];\r\n })\r\n .addCase(fetchContactQuestionsByUserId.pending, (state) => {\r\n state.contactQuestions.isLoading = true;\r\n state.contactQuestions.isError = false;\r\n state.contactQuestions.list = [];\r\n })\r\n .addCase(fetchContactQuestionsByUserId.rejected, (state) => {\r\n state.contactQuestions.isLoading = false;\r\n state.contactQuestions.isError = true;\r\n state.contactQuestions.list = [];\r\n })\r\n .addCase(fetchNewMessageAccountsByUserId.fulfilled, (state, action) => {\r\n state.accounts.isLoading = false;\r\n state.accounts.isError = false;\r\n state.accounts.list = action.payload || [];\r\n })\r\n .addCase(fetchNewMessageAccountsByUserId.pending, (state) => {\r\n state.accounts.isLoading = true;\r\n state.accounts.isError = false;\r\n state.accounts.list = [];\r\n })\r\n .addCase(fetchNewMessageAccountsByUserId.rejected, (state) => {\r\n state.accounts.isLoading = false;\r\n state.accounts.isError = true;\r\n state.accounts.list = [];\r\n })\r\n .addCase(newMessageSend.fulfilled, (state) => {\r\n state.newMessage.isLoading = false;\r\n state.newMessage.isError = false;\r\n state.newMessage.isSuccess = true;\r\n })\r\n .addCase(newMessageSend.rejected, (state) => {\r\n state.newMessage.isLoading = false;\r\n state.newMessage.isError = true;\r\n })\r\n .addCase(newMessageSend.pending, (state) => {\r\n state.newMessage.isLoading = true;\r\n state.newMessage.isError = false;\r\n });\r\n },\r\n});\r\nconst { actions, reducer } = messagesSlice;\r\nexport const {\r\n deleteMessages,\r\n addReadMessage,\r\n clearSuccessMessage,\r\n updateReadStatus,\r\n} = actions;\r\nexport default reducer;\r\n","export default class MVCApp {\r\n static readonly UnauthenticatedBase = '/transactional/anonymous/newsol';\r\n\r\n static readonly AuthenticatedBase = '/transactional/authenticated/newsol';\r\n\r\n static BaseUrl: string;\r\n\r\n static setBaseUrl() {\r\n if (window.location.pathname.startsWith(MVCApp.AuthenticatedBase)) {\r\n MVCApp.BaseUrl = MVCApp.AuthenticatedBase;\r\n } else {\r\n MVCApp.BaseUrl = MVCApp.UnauthenticatedBase;\r\n }\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { SPCoreClient } from '@equs/sp-api-client/dist';\r\nimport RuntimeConfigurationProvider from './configuration/RuntimeConfigurationProvider';\r\nimport msalInstance from './msalInstance';\r\nimport configuration from './configuration';\r\n\r\nconst axiosInstance = axios.create({\r\n transformResponse: (data) => data, // tell axios to not parse json\r\n});\r\n\r\nconst { ApiBaseUrl } = new RuntimeConfigurationProvider().getConfiguration();\r\nconst apiClient = new SPCoreClient(ApiBaseUrl, axiosInstance);\r\n\r\nif (configuration.IsStandalone) {\r\n const isLoggedIn = !!msalInstance.getAllAccounts()[0];\r\n\r\n axiosInstance.interceptors.request.use((requestConfig) => {\r\n const isNewApi = requestConfig.url?.includes('/umbraco/api/spcore');\r\n const isNewApiDev =\r\n requestConfig.url?.includes('/api_backend') ||\r\n requestConfig.url?.includes('localhost');\r\n\r\n if (!isNewApi && !isNewApiDev) {\r\n return requestConfig;\r\n }\r\n\r\n if (!isLoggedIn || ApiBaseUrl === undefined) return requestConfig;\r\n\r\n return new Promise((resolve) => {\r\n const request = {\r\n scopes: configuration.Adb2c?.apiPermissions || [],\r\n account: msalInstance.getAllAccounts()[0],\r\n forceRefresh: false,\r\n };\r\n msalInstance.acquireTokenSilent(request).then((tokenResponse) => {\r\n if (\r\n requestConfig.url &&\r\n ApiBaseUrl &&\r\n requestConfig.url.startsWith(ApiBaseUrl)\r\n ) {\r\n // eslint-disable-next-line no-param-reassign\r\n requestConfig.headers.Authorization = `Bearer ${tokenResponse.accessToken}`;\r\n }\r\n\r\n resolve(requestConfig);\r\n });\r\n });\r\n });\r\n}\r\n\r\nexport default apiClient;\r\n","import { Alert as ApiAlert } from '@equs/sp-api-client/dist';\r\nimport i18n from 'i18next';\r\nimport apiClient from '../../../app/apiClient';\r\nimport { Alert, AlertsLocalization, AlertType } from './Interfaces';\r\n\r\nclass AlertsService {\r\n alertsTranslations: AlertsLocalization;\r\n\r\n constructor() {\r\n this.alertsTranslations = {} as AlertsLocalization;\r\n }\r\n\r\n async getAll(): Promise {\r\n const { alerts } = await apiClient.alerts_GetAlerts();\r\n await i18n.loadNamespaces('alerts');\r\n this.alertsTranslations = i18n.t('types', {\r\n ns: 'alerts',\r\n returnObjects: true,\r\n });\r\n\r\n return !alerts?.length ? [] : alerts.map((al) => this.buildAlert(al));\r\n }\r\n\r\n private buildAlert(apiAlert: ApiAlert): Alert {\r\n const alertType = apiAlert.alertType as unknown as AlertType;\r\n switch (alertType) {\r\n case AlertType.AccountReCertification:\r\n return {\r\n type: alertType,\r\n accountName: apiAlert.accountName,\r\n accountNumber: apiAlert.accountNumber,\r\n action: this.alertsTranslations.taxCertExpiring.action,\r\n description: this.alertsTranslations.taxCertExpiring.label,\r\n };\r\n case AlertType.CNotice:\r\n return {\r\n type: alertType,\r\n accountName: apiAlert.accountName,\r\n accountNumber: apiAlert.accountNumber,\r\n action: this.alertsTranslations.cNotice.action,\r\n description: this.alertsTranslations.cNotice.label,\r\n content: this.alertsTranslations.cNotice.content,\r\n moreInfoLabel: this.alertsTranslations.cNotice.moreInfoLabel,\r\n lessInfoLabel: this.alertsTranslations.cNotice.lessInfoLabel,\r\n };\r\n case AlertType.FirstBNotice:\r\n return {\r\n type: alertType,\r\n accountName: apiAlert.accountName,\r\n accountNumber: apiAlert.accountNumber,\r\n action: this.alertsTranslations.firstBNotice.action,\r\n description: this.alertsTranslations.firstBNotice.label,\r\n };\r\n case AlertType.OutstandingChecks:\r\n return {\r\n type: alertType,\r\n accountName: apiAlert.accountName,\r\n accountNumber: apiAlert.accountNumber,\r\n action: this.alertsTranslations.outstandingChecks.action,\r\n description: this.alertsTranslations.outstandingChecks.label,\r\n };\r\n case AlertType.SecondBNotice:\r\n return {\r\n type: alertType,\r\n accountName: apiAlert.accountName,\r\n accountNumber: apiAlert.accountNumber,\r\n action: this.alertsTranslations.secondBNotice.action,\r\n description: this.alertsTranslations.secondBNotice.label,\r\n content: this.alertsTranslations.secondBNotice.content,\r\n moreInfoLabel: this.alertsTranslations.secondBNotice.moreInfoLabel,\r\n lessInfoLabel: this.alertsTranslations.secondBNotice.lessInfoLabel,\r\n };\r\n case AlertType.TaxCertified:\r\n return {\r\n type: alertType,\r\n accountName: apiAlert.accountName,\r\n accountNumber: apiAlert.accountNumber,\r\n action: this.alertsTranslations.taxIdUncertified.action,\r\n description: this.alertsTranslations.taxIdUncertified.label,\r\n };\r\n case AlertType.UndeliverableAddress:\r\n return {\r\n type: alertType,\r\n accountName: apiAlert.accountName,\r\n accountNumber: apiAlert.accountNumber,\r\n action: this.alertsTranslations.undeliverableAddress.action,\r\n description: this.alertsTranslations.undeliverableAddress.label,\r\n };\r\n default:\r\n return {} as Alert;\r\n }\r\n }\r\n}\r\n\r\nexport default AlertsService;\r\n","/* eslint-disable no-param-reassign */\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport AlertService from '../../services/alertService/AlertsService';\r\nimport { Alert } from '../../services/alertService/Interfaces';\r\nimport SessionService from '../../services/sessionService/SessionService';\r\nimport {\r\n MARKED_ALERTS,\r\n ALERTS_LOAD,\r\n ALERTS,\r\n MARKED_RESOLVED_ALERTS,\r\n} from '../../constants/alertConstants';\r\n\r\nexport type SliceState = {\r\n isLoading: boolean;\r\n readItemsTypes: string[];\r\n all: Alert[];\r\n alertResolved: number[];\r\n};\r\n\r\nconst initialState: SliceState = {\r\n isLoading: false,\r\n readItemsTypes: [],\r\n all: [],\r\n alertResolved: [],\r\n};\r\n\r\nexport const fetchAlertsByUserId = createAsyncThunk(ALERTS_LOAD, async () =>\r\n new AlertService().getAll()\r\n);\r\n\r\nconst alertsSlice = createSlice({\r\n name: ALERTS,\r\n initialState,\r\n reducers: {\r\n addReadAlert: (state, action) => {\r\n state.readItemsTypes = [...state.readItemsTypes, action.payload];\r\n },\r\n resolveAlert: (state, action) => {\r\n state.alertResolved = [...state.alertResolved, action.payload];\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchAlertsByUserId.pending, (state) => {\r\n state.all = [];\r\n state.isLoading = true;\r\n });\r\n builder.addCase(fetchAlertsByUserId.fulfilled, (state, action) => {\r\n state.isLoading = false;\r\n state.all = action.payload || [];\r\n state.readItemsTypes =\r\n SessionService.loadFromSession(MARKED_ALERTS) || [];\r\n state.alertResolved =\r\n SessionService.loadFromSession(MARKED_RESOLVED_ALERTS) || [];\r\n });\r\n builder.addCase(fetchAlertsByUserId.rejected, (state) => {\r\n state.isLoading = false;\r\n });\r\n },\r\n});\r\nconst { actions, reducer } = alertsSlice;\r\nexport const { addReadAlert, resolveAlert } = actions;\r\nexport default reducer;\r\n","import configuration from '../../app/configuration';\r\n\r\nconst isNewSol =\r\n window.location.pathname.includes('newsol') || configuration.IsStandalone;\r\n\r\nconst getUrl = (url?: string) =>\r\n url?.length\r\n ? `${\r\n configuration.IsStandalone ||\r\n url?.startsWith('/transactional/') ||\r\n url?.startsWith('/umbraco/') ||\r\n url?.startsWith('/help') ||\r\n isNewSol\r\n ? ''\r\n : '/transactional/authenticated/newsol'\r\n }${url}`\r\n : '';\r\n\r\nexport { isNewSol, getUrl };\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable no-param-reassign */\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport {\r\n UserAccountAddress,\r\n UserAccountInformation,\r\n UserAccountSeasonalAddress,\r\n ZipCode,\r\n} from '@equs/sp-api-client';\r\nimport apiClient from '../../../app/apiClient';\r\nimport {\r\n ChangePrimaryAccountAddress,\r\n ChangeSeasonalAccountAddress,\r\n CheckIsAddressPending,\r\n} from './Interfaces';\r\n\r\ntype SliceState = {\r\n isLoading: boolean;\r\n isError: boolean;\r\n isUpdatingPrimaryAddress: boolean;\r\n isUpdatingPrimaryAddressError: boolean;\r\n isUpdatingSeasonalAddress: boolean;\r\n isUpdatingSeasonalAddressError: boolean;\r\n isSeasonalAddressBatchPending: boolean;\r\n isPrimaryAddressBatchPending: boolean;\r\n isAddressPreviedLoading: boolean;\r\n list: UserAccountInformation[];\r\n redirectUrl: string;\r\n};\r\n\r\nconst initialState: SliceState = {\r\n isLoading: false,\r\n isError: false,\r\n isUpdatingPrimaryAddress: false,\r\n isUpdatingPrimaryAddressError: false,\r\n isUpdatingSeasonalAddress: false,\r\n isUpdatingSeasonalAddressError: false,\r\n isSeasonalAddressBatchPending: false,\r\n isPrimaryAddressBatchPending: false,\r\n isAddressPreviedLoading: false,\r\n list: [],\r\n redirectUrl: '',\r\n};\r\n\r\nexport const fetchAccounts = createAsyncThunk(\r\n 'accountManagement/address/load',\r\n async () => {\r\n const { accounts } = await apiClient.accountsInformation_GetAccounts();\r\n return accounts ?? [];\r\n }\r\n);\r\n\r\nconst getPrimaryAddressPreview = async (\r\n userId: string,\r\n accountNumber: number,\r\n userAddress: UserAccountAddress\r\n): Promise =>\r\n apiClient.primaryAddress_GetPreview(userId, accountNumber, userAddress);\r\n\r\nconst getSeasonalAddressPreview = async (\r\n userId: string,\r\n accountNumber: number,\r\n userAddress: UserAccountSeasonalAddress\r\n): Promise =>\r\n apiClient.seasonalAddress_GetPreview(userId, accountNumber, userAddress);\r\n\r\nconst isPrimaryAddressBatchPending = async (\r\n userId: string,\r\n accountNumber: number\r\n): Promise =>\r\n apiClient.primaryAddress_IsPrimaryAddressBatchPending(userId, accountNumber);\r\n\r\nconst isSeasonalAddressBatchPending = async (\r\n userId: string,\r\n accountNumber: number\r\n): Promise =>\r\n apiClient.seasonalAddress_IsSeasonalAddressBatchPending(\r\n userId,\r\n accountNumber\r\n );\r\n\r\nexport const changePrimaryAccountAddress = createAsyncThunk(\r\n 'accountManagement/primaryAddress/update',\r\n async ({\r\n userId,\r\n accountId,\r\n addressLines,\r\n city,\r\n countryCode,\r\n state,\r\n primaryZipCode,\r\n }: ChangePrimaryAccountAddress) => {\r\n await apiClient.primaryAddress_Update(userId!, accountId!, {\r\n addressLines,\r\n city,\r\n countryCode,\r\n state,\r\n zipCode: { primary: primaryZipCode } as ZipCode,\r\n } as UserAccountAddress);\r\n }\r\n);\r\n\r\nexport const changeSeasonalAccountAddress = createAsyncThunk(\r\n 'accountManagement/seasonalAddress/update',\r\n async ({\r\n userId,\r\n accountId,\r\n addressLines,\r\n state,\r\n city,\r\n countryCode,\r\n primaryZipCode,\r\n start,\r\n end,\r\n isRecurring,\r\n isActive,\r\n }: ChangeSeasonalAccountAddress) => {\r\n await apiClient.seasonalAddress_Update(userId!, accountId!, {\r\n addressLines,\r\n city,\r\n countryCode,\r\n zipCode: { primary: primaryZipCode } as ZipCode,\r\n start: new Date(start!),\r\n end: new Date(end!),\r\n state,\r\n isRecurring,\r\n isActive,\r\n } as UserAccountSeasonalAddress);\r\n }\r\n);\r\n\r\nexport const createSeasonalAccountAddress = createAsyncThunk(\r\n 'accountManagement/seasonalAddress/create',\r\n async ({\r\n userId,\r\n accountId,\r\n addressLines,\r\n state,\r\n city,\r\n countryCode,\r\n primaryZipCode,\r\n start,\r\n end,\r\n isRecurring,\r\n isActive,\r\n }: ChangeSeasonalAccountAddress) => {\r\n await apiClient.seasonalAddress_Create(userId!, accountId!, {\r\n addressLines,\r\n city,\r\n countryCode,\r\n zipCode: { primary: primaryZipCode } as ZipCode,\r\n start: new Date(start!),\r\n end: new Date(end!),\r\n state,\r\n isRecurring,\r\n isActive,\r\n } as UserAccountSeasonalAddress);\r\n }\r\n);\r\n\r\nexport const deleteSeasonalAddress = createAsyncThunk(\r\n 'accountManagament/seasonalAddress/delete',\r\n async ({ accountId, accountNumber }: any) => {\r\n await apiClient.seasonalAddress_Delete(accountId, accountNumber);\r\n }\r\n);\r\n\r\nexport const fetchPrimaryAddressPreview = createAsyncThunk(\r\n 'accountManagament/primaryAddress/preview',\r\n async ({\r\n userId,\r\n accountId,\r\n addressLines,\r\n state,\r\n city,\r\n countryCode,\r\n primaryZipCode,\r\n }: ChangePrimaryAccountAddress) =>\r\n getPrimaryAddressPreview(userId!, accountId!, {\r\n addressLines,\r\n city,\r\n countryCode,\r\n state,\r\n zipCode: { primary: primaryZipCode } as ZipCode,\r\n } as UserAccountAddress)\r\n);\r\n\r\nexport const fetchSeasonalAddressPreview = createAsyncThunk(\r\n 'accountManagement/seasonalAddress/preview',\r\n async ({\r\n userId,\r\n accountId,\r\n addressLines,\r\n city,\r\n state,\r\n countryCode,\r\n primaryZipCode,\r\n start,\r\n end,\r\n isRecurring,\r\n isActive,\r\n }: ChangeSeasonalAccountAddress) =>\r\n getSeasonalAddressPreview(userId!, accountId!, {\r\n addressLines,\r\n city,\r\n countryCode,\r\n zipCode: { primary: primaryZipCode } as ZipCode,\r\n start: new Date(start!),\r\n end: new Date(end!),\r\n state,\r\n isRecurring,\r\n isActive,\r\n } as UserAccountSeasonalAddress)\r\n);\r\n\r\nexport const checkIsPrimaryAddressBatchPending = createAsyncThunk(\r\n 'accountManagement/primaryAddress/is-primary-addres-batch-pendning',\r\n async ({ userId, accountId }: CheckIsAddressPending) =>\r\n isPrimaryAddressBatchPending(userId, accountId)\r\n);\r\n\r\nexport const checkIsSeasonalAddressBatchPending = createAsyncThunk(\r\n 'accountManagement/seasonalAddress/is-seasonal-addres-batch-pendning',\r\n async ({ userId, accountId }: CheckIsAddressPending) =>\r\n isSeasonalAddressBatchPending(userId, accountId)\r\n);\r\n\r\nconst fulfilledPrimaryAddressReducer = (state: SliceState) => {\r\n state.isUpdatingPrimaryAddress = false;\r\n state.isUpdatingPrimaryAddressError = false;\r\n};\r\n\r\nconst rejectionPrimaryAddressReducer = (state: SliceState) => {\r\n state.isUpdatingPrimaryAddress = false;\r\n state.isUpdatingPrimaryAddressError = true;\r\n};\r\n\r\nconst pendingPrimaryAddressReducer = (state: SliceState) => {\r\n state.isUpdatingPrimaryAddress = true;\r\n state.isUpdatingPrimaryAddressError = false;\r\n};\r\n\r\nconst fulfilledSeasonalAddressReducer = (state: SliceState) => {\r\n state.isUpdatingSeasonalAddress = false;\r\n state.isUpdatingSeasonalAddressError = false;\r\n};\r\n\r\nconst rejectionSeasonalAddressReducer = (state: SliceState) => {\r\n state.isUpdatingSeasonalAddress = false;\r\n state.isUpdatingSeasonalAddressError = true;\r\n};\r\n\r\nconst pendingSeasonalAddressReducer = (state: SliceState) => {\r\n state.isUpdatingSeasonalAddress = true;\r\n state.isUpdatingSeasonalAddressError = false;\r\n};\r\n\r\nconst accountManagementSlice = createSlice({\r\n name: 'accountManagement',\r\n initialState,\r\n reducers: {\r\n updateRedirectUrl: (state, action) => {\r\n state.redirectUrl = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchAccounts.fulfilled, (state, action) => {\r\n state.isLoading = false;\r\n state.isError = false;\r\n state.list = action.payload || [];\r\n });\r\n builder.addCase(fetchAccounts.pending, (state, action) => {\r\n state.isLoading = true;\r\n state.isError = false;\r\n });\r\n builder.addCase(fetchAccounts.rejected, (state, action) => {\r\n state.isLoading = false;\r\n state.isError = true;\r\n });\r\n builder.addCase(changePrimaryAccountAddress.fulfilled, (state) => {\r\n fulfilledPrimaryAddressReducer(state);\r\n });\r\n builder.addCase(changePrimaryAccountAddress.rejected, (state) => {\r\n rejectionPrimaryAddressReducer(state);\r\n });\r\n builder.addCase(changePrimaryAccountAddress.pending, (state) => {\r\n pendingPrimaryAddressReducer(state);\r\n });\r\n builder.addCase(changeSeasonalAccountAddress.fulfilled, (state) => {\r\n fulfilledSeasonalAddressReducer(state);\r\n });\r\n builder.addCase(changeSeasonalAccountAddress.rejected, (state) => {\r\n rejectionSeasonalAddressReducer(state);\r\n });\r\n builder.addCase(changeSeasonalAccountAddress.pending, (state) => {\r\n pendingSeasonalAddressReducer(state);\r\n });\r\n builder.addCase(createSeasonalAccountAddress.rejected, (state) => {\r\n rejectionSeasonalAddressReducer(state);\r\n });\r\n builder.addCase(createSeasonalAccountAddress.pending, (state) => {\r\n pendingSeasonalAddressReducer(state);\r\n });\r\n builder.addCase(deleteSeasonalAddress.rejected, (state) => {\r\n rejectionSeasonalAddressReducer(state);\r\n });\r\n builder.addCase(deleteSeasonalAddress.fulfilled, (state, action) => {\r\n const { arg } = action.meta;\r\n const properAccount = state.list.filter(\r\n (x) => x.accountNumber === arg.accountNumber\r\n )[0];\r\n const accIndex = state.list.findIndex(\r\n (x) => x.accountNumber === arg.accountNumber\r\n );\r\n\r\n const modifiedList = [\r\n ...state.list.filter((x) => x.accountNumber !== arg.accountNumber),\r\n ];\r\n modifiedList.splice(accIndex, 0, {\r\n ...properAccount,\r\n seasonalAddress: undefined,\r\n });\r\n\r\n return {\r\n ...state,\r\n isUpdatingSeasonalAddress: false,\r\n isUpdatingSeasonalAddressError: false,\r\n list: modifiedList,\r\n };\r\n });\r\n builder.addCase(deleteSeasonalAddress.pending, (state) => {\r\n pendingSeasonalAddressReducer(state);\r\n });\r\n builder.addCase(fetchPrimaryAddressPreview.pending, (state) => {\r\n state.isAddressPreviedLoading = true;\r\n });\r\n builder.addCase(fetchPrimaryAddressPreview.fulfilled, (state, action) => {\r\n const { arg } = action.meta;\r\n const matchingAccount = state.list.find(\r\n (x) => x.accountNumber === arg.accountId\r\n );\r\n if (matchingAccount && matchingAccount?.address) {\r\n matchingAccount.address.isUndeliverableAddress =\r\n action.payload.isUndeliverableAddress;\r\n matchingAccount.address.fullAddressLines =\r\n action.payload.fullAddressLines;\r\n matchingAccount.address.city = arg.city;\r\n matchingAccount.address.countryCode = arg.countryCode;\r\n matchingAccount.address.state = arg.state;\r\n if (matchingAccount.address.zipCode) {\r\n matchingAccount.address.zipCode.primary = arg.primaryZipCode;\r\n }\r\n matchingAccount.address.addressLines = action.payload.addressLines;\r\n }\r\n state.isAddressPreviedLoading = false;\r\n });\r\n builder.addCase(fetchPrimaryAddressPreview.rejected, (state) => {\r\n rejectionPrimaryAddressReducer(state);\r\n });\r\n builder.addCase(\r\n checkIsPrimaryAddressBatchPending.fulfilled,\r\n (state, action) => {\r\n state.isPrimaryAddressBatchPending = action.payload;\r\n }\r\n );\r\n builder.addCase(checkIsPrimaryAddressBatchPending.rejected, (state) => {\r\n state.isPrimaryAddressBatchPending = false;\r\n });\r\n builder.addCase(\r\n checkIsSeasonalAddressBatchPending.fulfilled,\r\n (state, action) => {\r\n state.isSeasonalAddressBatchPending = action.payload;\r\n }\r\n );\r\n builder.addCase(checkIsSeasonalAddressBatchPending.rejected, (state) => {\r\n state.isSeasonalAddressBatchPending = false;\r\n });\r\n builder.addCase(fetchSeasonalAddressPreview.pending, (state) => {\r\n pendingSeasonalAddressReducer(state);\r\n });\r\n builder.addCase(fetchSeasonalAddressPreview.fulfilled, (state, action) => {\r\n const { arg } = action.meta;\r\n const matchingAccount = state.list.find(\r\n (x) => x.accountNumber === arg.accountId\r\n );\r\n\r\n if (matchingAccount && matchingAccount?.seasonalAddress === undefined) {\r\n matchingAccount.seasonalAddress = {};\r\n }\r\n if (matchingAccount && matchingAccount?.seasonalAddress) {\r\n matchingAccount.seasonalAddress.city = arg.city;\r\n matchingAccount.seasonalAddress.countryCode = arg.countryCode;\r\n matchingAccount.seasonalAddress.isActive = arg.isActive;\r\n matchingAccount.seasonalAddress.end = arg.end;\r\n matchingAccount.seasonalAddress.start = arg.start;\r\n matchingAccount.seasonalAddress.state = arg.state;\r\n if (matchingAccount.seasonalAddress.zipCode) {\r\n matchingAccount.seasonalAddress.zipCode.primary = arg.primaryZipCode;\r\n }\r\n matchingAccount.seasonalAddress.isRecurring = arg.isRecurring;\r\n matchingAccount.seasonalAddress.addressLines =\r\n action.payload?.addressLines;\r\n }\r\n\r\n state.isUpdatingSeasonalAddress = false;\r\n state.isUpdatingSeasonalAddressError = false;\r\n });\r\n builder.addCase(fetchSeasonalAddressPreview.rejected, (state) => {\r\n rejectionSeasonalAddressReducer(state);\r\n });\r\n },\r\n});\r\n\r\nconst { actions, reducer } = accountManagementSlice;\r\nexport const { updateRedirectUrl } = actions;\r\nexport default reducer;\r\n","/* eslint-disable no-param-reassign */\r\nimport { Attachment } from '@equs/sp-api-client/dist';\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\n/* eslint-disable no-param-reassign */\r\nimport apiClient from '../../../app/apiClient';\r\n\r\ntype SliceState = {\r\n attachments?: Attachment[];\r\n isError: boolean;\r\n isLoading: boolean;\r\n isReplyMessageSuccess: boolean;\r\n isDeleteMessageSuccess: boolean;\r\n};\r\n\r\nconst initialState: SliceState = {\r\n attachments: [],\r\n isError: false,\r\n isLoading: false,\r\n isReplyMessageSuccess: false,\r\n isDeleteMessageSuccess: false,\r\n};\r\n\r\nexport const messageDelete = createAsyncThunk(\r\n 'messages/delete',\r\n async (request: any) => {\r\n try {\r\n await apiClient.message_DeleteMessages(request.messageDeleteRequest);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n);\r\nexport const messageReply = createAsyncThunk(\r\n 'messages/reply',\r\n async (request: any) => {\r\n try {\r\n await apiClient.message_ActionReplyToMessage(\r\n request.messageId,\r\n request.messageBody\r\n );\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n);\r\nexport const messageUpdateUnread = createAsyncThunk(\r\n 'messages/update',\r\n async (request: any) => {\r\n try {\r\n await apiClient.message_UpdateReadStatus(request.updateReadStatusRequest);\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n);\r\nexport const messageAttachements = createAsyncThunk(\r\n 'messages/attachments',\r\n async (request: any) => {\r\n const response = await apiClient.message_GetAttachments(request.messageId);\r\n return response.attachments;\r\n }\r\n);\r\nconst messageDetailSlice = createSlice({\r\n name: 'messages',\r\n initialState,\r\n reducers: {\r\n clearDetailSuccessMessage: (state, action) => {\r\n state.isDeleteMessageSuccess = action.payload;\r\n state.isReplyMessageSuccess = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(messageDelete.fulfilled, (state) => {\r\n state.isError = false;\r\n state.isLoading = false;\r\n state.isDeleteMessageSuccess = true;\r\n })\r\n .addCase(messageDelete.pending, (state) => {\r\n state.isError = false;\r\n state.isLoading = true;\r\n })\r\n .addCase(messageDelete.rejected, (state) => {\r\n state.isError = true;\r\n state.isLoading = false;\r\n })\r\n .addCase(messageReply.rejected, (state) => {\r\n state.isError = true;\r\n state.isLoading = false;\r\n })\r\n .addCase(messageReply.pending, (state) => {\r\n state.isError = false;\r\n state.isLoading = true;\r\n })\r\n .addCase(messageReply.fulfilled, (state) => {\r\n state.isError = false;\r\n state.isLoading = false;\r\n state.isReplyMessageSuccess = true;\r\n })\r\n .addCase(messageUpdateUnread.fulfilled, (state) => {\r\n state.isError = false;\r\n state.isLoading = false;\r\n })\r\n .addCase(messageUpdateUnread.rejected, (state) => {\r\n state.isError = true;\r\n state.isLoading = false;\r\n })\r\n .addCase(messageUpdateUnread.pending, (state) => {\r\n state.isError = false;\r\n state.isLoading = true;\r\n })\r\n .addCase(messageAttachements.fulfilled, (state, action) => {\r\n state.attachments = action.payload || [];\r\n state.isLoading = false;\r\n state.isError = false;\r\n })\r\n .addCase(messageAttachements.rejected, (state) => {\r\n state.attachments = [];\r\n state.isLoading = false;\r\n state.isError = true;\r\n })\r\n .addCase(messageAttachements.pending, (state) => {\r\n state.attachments = [];\r\n state.isLoading = true;\r\n state.isError = false;\r\n });\r\n },\r\n});\r\nconst { actions, reducer } = messageDetailSlice;\r\nexport const { clearDetailSuccessMessage } = actions;\r\nexport default reducer;\r\n","import { createSelector } from '@reduxjs/toolkit';\r\nimport { RootState } from '../../../app/store';\r\n\r\nexport const contactQuestionsSelector = (state: RootState) =>\r\n state.messages.contactQuestions.list;\r\nexport const contactQuestionsLoadingSelector = (state: RootState) =>\r\n !!state.messages.contactQuestions.isLoading;\r\nexport const contactQuestionsErrorSelector = (state: RootState) =>\r\n !!state.messages.contactQuestions.isError;\r\n\r\nexport const messageAccountsSelector = (state: RootState) =>\r\n state.messages.accounts.list;\r\nexport const messageAccountsLoadingSelector = (state: RootState) =>\r\n !!state.messages.accounts.isLoading;\r\nexport const messageAccountsErrorSelector = (state: RootState) =>\r\n !!state.messages.accounts.isError;\r\n\r\nexport const messageSendErrorSelector = (state: RootState) =>\r\n !!state.messages.newMessage?.isError;\r\nexport const messageSendLoadingSelector = (state: RootState) =>\r\n !!state.messages.newMessage?.isLoading;\r\nexport const messageSendSuccessSelector = (state: RootState) =>\r\n state.messages.newMessage.isSuccess;\r\n\r\nexport const allMessagesSelector = (state: RootState) =>\r\n state.messages.messages.list;\r\nexport const messagesLoadingSelector = (state: RootState) =>\r\n !!state.messages.messages.isLoading;\r\nexport const messagesErrorSelector = (state: RootState) =>\r\n !!state.messages.messages.isError;\r\nexport const hasMessagesSelector = (state: RootState) =>\r\n !!state.messages.messages.list.length;\r\n\r\nexport const unreadMessagesSelector = (state: RootState) =>\r\n state.messages.messages.list?.filter((i) => i.unread);\r\n\r\nexport const hasUnreadMessagesSelector = (state: RootState) =>\r\n !!state.messages.messages.list?.filter((i) => i.unread).length;\r\n\r\nexport const unreadSessionMessagesSelector = (state: RootState) => {\r\n const unreadMessages = unreadMessagesSelector(state);\r\n return unreadMessages?.filter(\r\n (msg) =>\r\n !state.messages.messages.markedMessagesIds?.includes(msg.messageId || 0)\r\n );\r\n};\r\n\r\nexport const unreadSessionCompanyMessagesSelector = createSelector(\r\n unreadSessionMessagesSelector,\r\n (unreadSessionMessages) =>\r\n unreadSessionMessages?.filter((msg) => !!msg.isCompanyMessage)\r\n);\r\n\r\nexport const unreadMessagesCountSelector = (state: RootState) =>\r\n state.messages.messages.list?.filter((i) => i.unread).length;\r\n\r\nexport default {\r\n messagesLoadingSelector,\r\n messagesErrorSelector,\r\n hasMessagesSelector,\r\n allMessagesSelector,\r\n unreadMessagesSelector,\r\n unreadMessagesCountSelector,\r\n unreadSessionMessagesSelector,\r\n\r\n messageAccountsSelector,\r\n messageAccountsLoadingSelector,\r\n messageAccountsErrorSelector,\r\n\r\n contactQuestionsSelector,\r\n contactQuestionsLoadingSelector,\r\n contactQuestionsErrorSelector,\r\n\r\n messageSendLoadingSelector,\r\n messageSendErrorSelector,\r\n messageSendSuccessSelector,\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport apiClient from '../../../app/apiClient';\r\nimport emptyApi from '../emptyApi';\r\n\r\nexport type FeatureFlag = {\r\n [key: string]: boolean;\r\n};\r\n\r\nconst getFeatureFlags = async () =>\r\n apiClient\r\n .features_GetFeatures()\r\n .then((response) => ({ data: response }))\r\n .catch((reason) => ({\r\n error: reason,\r\n data: {} as FeatureFlag,\r\n }));\r\n\r\nexport const featureFlagsApi = emptyApi.injectEndpoints({\r\n endpoints: (build) => ({\r\n getFeatureFlags: build.query({\r\n queryFn: getFeatureFlags,\r\n }),\r\n }),\r\n overrideExisting: false,\r\n});\r\n\r\nexport const { useGetFeatureFlagsQuery } = featureFlagsApi;\r\n","/* eslint-disable */\r\nimport { useEffect, useState } from 'react';\r\nimport { useGetFeatureFlagsQuery } from '../../slices/featureFlags/faetureFlagsSlice';\r\n\r\nconst FeatureFlags = {\r\n BUY: 'buy',\r\n ACCOUNT_BALANCE: 'accountBalance',\r\n IDV: 'idv',\r\n};\r\n\r\nfunction useFeatureFlags() {\r\n const cacheKey = 'cached-feature-flags';\r\n\r\n const { data, isFetching } = useGetFeatureFlagsQuery();\r\n const [flags, setFlags] = useState(() => {\r\n const cachedFlags = localStorage.getItem(cacheKey);\r\n return cachedFlags ? JSON.parse(cachedFlags) : undefined;\r\n });\r\n\r\n useEffect(() => {\r\n if (!isFetching && data) {\r\n localStorage.setItem(cacheKey, JSON.stringify(data));\r\n setFlags(data);\r\n }\r\n }, [isFetching]);\r\n\r\n return {\r\n flags,\r\n isLoaded: flags || !isFetching,\r\n };\r\n}\r\n\r\nexport default useFeatureFlags;\r\n\r\nexport { FeatureFlags };\r\n","/* eslint-disable no-param-reassign */\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport { AddressFormat } from '@equs/sp-api-client';\r\nimport apiClient from '../../../app/apiClient';\r\nimport { GetAddressFormat } from './Interfaces';\r\n\r\nexport type AddressFormatSliceState = {\r\n isLoading: boolean;\r\n addressFormat?: AddressFormat;\r\n};\r\n\r\nconst initialState: AddressFormatSliceState = {\r\n isLoading: false,\r\n addressFormat: undefined,\r\n};\r\n\r\nconst getFormat = async (\r\n userId: string,\r\n countryCode: string,\r\n accountNumber: number,\r\n registrationCode: string\r\n): Promise =>\r\n apiClient.addressFormat_GetFormat(\r\n userId,\r\n countryCode,\r\n accountNumber,\r\n registrationCode\r\n );\r\n\r\nconst getFormatAnonymous = async (\r\n countryCode: string,\r\n registrationCode: string\r\n): Promise =>\r\n apiClient.addressFormat_GetFormatForCountry(countryCode, registrationCode);\r\n\r\nexport const fetchAddressFormat = createAsyncThunk(\r\n 'addressFormat/load',\r\n async ({\r\n userId,\r\n countryCode,\r\n accountNumber,\r\n registrationCode,\r\n }: GetAddressFormat) => {\r\n if (!userId?.length && !accountNumber) {\r\n return getFormatAnonymous(countryCode!, registrationCode!);\r\n }\r\n return getFormat(userId!, countryCode!, accountNumber!, registrationCode!);\r\n }\r\n);\r\n\r\nconst addressFormatSlice = createSlice({\r\n name: 'addressFormat',\r\n initialState,\r\n reducers: {},\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchAddressFormat.fulfilled, (state, action) => {\r\n state.isLoading = false;\r\n state.addressFormat = action.payload;\r\n });\r\n builder.addCase(fetchAddressFormat.pending, (state) => {\r\n state.isLoading = true;\r\n });\r\n },\r\n});\r\nexport default addressFormatSlice.reducer;\r\n","/* eslint-disable no-param-reassign */\r\nimport { createSlice } from '@reduxjs/toolkit';\r\n\r\ntype SliceState = {\r\n selectedIds: number[];\r\n filters: {\r\n unread: boolean;\r\n };\r\n};\r\nconst initialState: SliceState = {\r\n selectedIds: [],\r\n filters: {\r\n unread: false,\r\n },\r\n};\r\n\r\nconst messagesPageSlice = createSlice({\r\n name: 'messages-page',\r\n initialState,\r\n reducers: {\r\n setSelectedId(state, action) {\r\n const { id, value } = action.payload;\r\n let index = state.selectedIds.indexOf(id);\r\n if (value && index < 0) {\r\n state.selectedIds.push(id);\r\n }\r\n if (!value && index >= 0) {\r\n do {\r\n state.selectedIds.splice(index, 1);\r\n index = state.selectedIds.indexOf(id);\r\n } while (index > -1);\r\n }\r\n },\r\n setSelectedIds(state, action) {\r\n state.selectedIds = action.payload;\r\n },\r\n setUnreadFilter(state, action) {\r\n state.filters.unread = action.payload;\r\n },\r\n },\r\n});\r\nconst { actions, reducer } = messagesPageSlice;\r\nexport const { setSelectedId, setSelectedIds, setUnreadFilter } = actions;\r\nexport default reducer;\r\n","import uniqBy from 'lodash/uniqBy';\r\nimport { RootState } from '../../../app/store';\r\nimport { AlertType } from '../../services/alertService/Interfaces';\r\n\r\nexport const allAlertsSelector = (state: RootState) =>\r\n state.alerts?.all.filter(\r\n (\r\n al // this is done to instantly know if alert is resolved. Without it, considering SOS cache, alerts are updated after some time and it's still displaying in alerts and portfolio\r\n ) =>\r\n al.type === AlertType.UndeliverableAddress\r\n ? !state.alerts?.alertResolved?.includes(Number(al.accountNumber))\r\n : al\r\n );\r\nexport const hasAlertsSelector = (state: RootState) =>\r\n !!allAlertsSelector(state).length;\r\nexport const groupedAlertsSelector = (state: RootState) =>\r\n uniqBy(state.alerts?.all, 'type');\r\nexport const unreadAlertsSelector = (state: RootState) => {\r\n const groupedAlerts = groupedAlertsSelector(state);\r\n return groupedAlerts\r\n ?.filter((al) => !state.alerts?.readItemsTypes?.includes(al.type))\r\n .filter((al) =>\r\n al.type === AlertType.UndeliverableAddress\r\n ? !state.alerts?.alertResolved?.includes(Number(al.accountNumber))\r\n : al\r\n );\r\n};\r\nexport const hasUnreadAlertsSelector = (state: RootState) =>\r\n !!unreadAlertsSelector(state).length;\r\nexport const alertsLoadingSelector = (state: RootState) =>\r\n !!state.alerts?.isLoading;\r\n","/* eslint-disable no-param-reassign */\r\nimport { AgreementType } from '@equs/sp-api-client';\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport apiClient from '../../../app/apiClient';\r\n\r\nexport type AgreementsSliceState = {\r\n isLoading: boolean;\r\n onlineAccess?: string;\r\n esign?: string;\r\n};\r\n\r\nconst initialState: AgreementsSliceState = {\r\n isLoading: false,\r\n onlineAccess: undefined,\r\n esign: undefined,\r\n};\r\n\r\nexport const fetchOnlineAccessAgreement = createAsyncThunk(\r\n 'agreements/onlineAccess',\r\n async () => {\r\n const result = await apiClient.agreement_GetHtml(\r\n AgreementType.OnlineAccess\r\n );\r\n return result;\r\n }\r\n);\r\n\r\nexport const fetchEsignConsent = createAsyncThunk(\r\n 'agreements/esign',\r\n async () => {\r\n const result = await apiClient.agreement_GetHtml(AgreementType.ESign);\r\n return result;\r\n }\r\n);\r\n\r\nconst agreementssSlice = createSlice({\r\n name: 'agreements',\r\n initialState,\r\n reducers: {},\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchOnlineAccessAgreement.pending, (state) => {\r\n state.isLoading = true;\r\n });\r\n builder.addCase(fetchOnlineAccessAgreement.fulfilled, (state, action) => ({\r\n isLoading: false,\r\n onlineAccess: action.payload.html,\r\n }));\r\n builder.addCase(fetchOnlineAccessAgreement.rejected, (state) => {\r\n state.isLoading = false;\r\n });\r\n\r\n builder.addCase(fetchEsignConsent.pending, (state) => {\r\n state.isLoading = true;\r\n });\r\n builder.addCase(fetchEsignConsent.fulfilled, (state, action) => ({\r\n isLoading: false,\r\n esign: action.payload.html,\r\n }));\r\n builder.addCase(fetchEsignConsent.rejected, (state) => {\r\n state.isLoading = false;\r\n });\r\n },\r\n});\r\n\r\nexport default agreementssSlice.reducer;\r\n","/* eslint-disable no-param-reassign */\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport apiClient from '../../app/apiClient';\r\n\r\ntype SliceState = {\r\n isModalOpened: boolean;\r\n applyZeroBalanceFilter: boolean;\r\n excelFileData: string;\r\n};\r\nconst initialState: SliceState = {\r\n isModalOpened: false,\r\n applyZeroBalanceFilter: false,\r\n excelFileData: '',\r\n};\r\n\r\nexport const fetchPortfolioExcel = createAsyncThunk(\r\n 'portfolio/exportXls',\r\n async (request: any) => {\r\n const response = await apiClient.portfolio_DownloadPortfolioExcel(\r\n request.applyZeroFilter\r\n );\r\n\r\n return response;\r\n }\r\n);\r\n\r\nconst portfolioSlice = createSlice({\r\n name: 'portfolio',\r\n initialState,\r\n reducers: {\r\n setPortfolioModal(state, action) {\r\n state.isModalOpened = action.payload;\r\n },\r\n toggleFilter(state, action) {\r\n state.applyZeroBalanceFilter = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchPortfolioExcel.fulfilled, (state, action) => {\r\n state.excelFileData = action.payload.fileData!;\r\n });\r\n },\r\n});\r\n\r\nconst { actions, reducer } = portfolioSlice;\r\nexport const { setPortfolioModal, toggleFilter } = actions;\r\nexport default reducer;\r\n","/* eslint-disable no-param-reassign */\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport { UserPortfolioSummaryResponse } from '@equs/sp-api-client';\r\nimport apiClient from '../../../../app/apiClient';\r\n\r\nexport type AccountsCompaniesSliceState = {\r\n isLoading: boolean;\r\n isError: boolean;\r\n portfolio: UserPortfolioSummaryResponse;\r\n};\r\n\r\nconst initialState: AccountsCompaniesSliceState = {\r\n isLoading: false,\r\n isError: false,\r\n portfolio: {\r\n accounts: [],\r\n isMarketPricingAvailable: false,\r\n totalValue: 0,\r\n },\r\n};\r\nexport const fetchPortfolioByUserId = createAsyncThunk(\r\n 'account-Management/portfolio',\r\n async (request: any) => {\r\n const response = await apiClient.portfolio_GetPortfolio(\r\n request.applyZeroFilter\r\n );\r\n return response;\r\n }\r\n);\r\nexport const fetchDividendsByUserId = createAsyncThunk(\r\n 'account-Management/portfolio',\r\n async () => {\r\n const response = await apiClient.portfolio_GetDividends();\r\n return response;\r\n }\r\n);\r\n\r\nconst accountsCompaniesSlice = createSlice({\r\n name: 'accountManagement',\r\n initialState,\r\n reducers: {},\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchPortfolioByUserId.fulfilled, (state, action) => ({\r\n ...state,\r\n isLoading: false,\r\n isError: false,\r\n\r\n portfolio: action.payload,\r\n }));\r\n builder.addCase(fetchPortfolioByUserId.rejected, (state) => ({\r\n ...state,\r\n isLoading: false,\r\n isError: true,\r\n }));\r\n builder.addCase(fetchPortfolioByUserId.pending, (state) => ({\r\n ...state,\r\n isLoading: true,\r\n isError: false,\r\n }));\r\n },\r\n});\r\n\r\nexport default accountsCompaniesSlice.reducer;\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { ValidateErrorResponse } from '../interfaces/Errors';\r\n\r\nconst createApiThunk = (\r\n url: string,\r\n apiCall: (request: TRequest) => Promise\r\n) =>\r\n createAsyncThunk(url, async (request: TRequest, { rejectWithValue }) => {\r\n try {\r\n const response = await apiCall(request);\r\n return response;\r\n } catch (err) {\r\n return rejectWithValue(err as ValidateErrorResponse);\r\n }\r\n });\r\n\r\nexport default createApiThunk;\r\n","/* eslint-disable no-param-reassign */\r\nimport {\r\n RegistrationDataDto,\r\n ValidateUserAuthResponse,\r\n SosUserAuthResponseCode,\r\n ValidateCompanyNameAndAccountNumberRequest,\r\n} from '@equs/sp-api-client';\r\nimport { ValidateCompanyNameAndAccountNumberResponse } from '@equs/sp-api-client/ApiClient';\r\nimport { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport apiClient from '../../../app/apiClient';\r\nimport { ValidateErrorResponse } from '../../interfaces/Errors';\r\nimport createApiThunk from '../utils';\r\nimport emptyApi from '../emptyApi';\r\n\r\nexport type RegistrationSliceState = {\r\n isLoading: boolean;\r\n correlationId: string;\r\n redirectUrl?: string;\r\n isWaitingOnSsnVerification?: boolean;\r\n isRecoveryLoading: boolean;\r\n recoveryResponse?: AccountRecoveryResponse;\r\n isError: boolean;\r\n isValidationSuccess: boolean;\r\n validationStatus: SosUserAuthResponseCode;\r\n cache: RegistrationDataDto;\r\n};\r\n\r\nexport type AccountRecoveryResponse = {\r\n authenticationId?: string | undefined;\r\n isEmailAvailable?: boolean;\r\n isError?: boolean;\r\n errorCode?: number;\r\n errorMessage?: string | undefined;\r\n status?: string | undefined;\r\n message?: string | undefined;\r\n code?: number;\r\n};\r\n\r\nexport const initialState: RegistrationSliceState = {\r\n isLoading: false,\r\n correlationId: '',\r\n isRecoveryLoading: false,\r\n recoveryResponse: undefined,\r\n isError: false,\r\n isValidationSuccess: false,\r\n validationStatus: SosUserAuthResponseCode.GeneralError,\r\n cache: {\r\n payload: '',\r\n } as any as RegistrationDataDto,\r\n};\r\n\r\nexport const fetchRegistration = createAsyncThunk(\r\n 'registration/load',\r\n async (request: RegistrationDataDto) => {\r\n const response = await apiClient.registrationCache_Create(request);\r\n return response.correlationId;\r\n }\r\n);\r\n\r\nexport const fetchRecovery = createApiThunk(\r\n 'registration/recovery',\r\n (req: any) => apiClient.recovery_RecoverAuthenticationId(req)\r\n);\r\n\r\nexport const fetchValidateAuthenticationId = createApiThunk(\r\n 'registration/validate-authenticationId',\r\n (req: any) =>\r\n apiClient.registrationValidation_ValidateUserByAuthenticationId(req)\r\n);\r\n\r\nexport const fetchValidateSSN = createApiThunk(\r\n 'registration/validate-ssn',\r\n (req: any) =>\r\n apiClient.registrationValidation_ValidateUserBySocialSecurityNumber(req)\r\n);\r\n\r\nexport const fetchValidateEmployeeNumber = createApiThunk(\r\n 'registration/validate-employyee-number',\r\n (req: any) =>\r\n apiClient.registrationValidation_ValidateUserByEmployeeNumber(req)\r\n);\r\n\r\nexport const resetRegistrationReducer = createAsyncThunk(\r\n 'registration/reset',\r\n async (_, { rejectWithValue }) =>\r\n new Promise((resolve) => resolve(rejectWithValue(null)))\r\n);\r\n\r\nconst registrationSlice = createSlice({\r\n name: 'registration',\r\n initialState,\r\n reducers: {\r\n resetRegistrationRedirectUrl: (state) => {\r\n state.redirectUrl = '';\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(fetchRegistration.pending, (state) => {\r\n state.isLoading = true;\r\n });\r\n builder.addCase(fetchRegistration.fulfilled, (state, action) => {\r\n state.isLoading = false;\r\n state.correlationId = action.payload || '';\r\n });\r\n builder.addCase(fetchRegistration.rejected, (state) => {\r\n state.isLoading = false;\r\n });\r\n builder.addCase(fetchRecovery.pending, (state) => {\r\n state.isRecoveryLoading = true;\r\n });\r\n builder.addCase(fetchRecovery.fulfilled, (state, action) => {\r\n state.isRecoveryLoading = false;\r\n state.recoveryResponse = action.payload as AccountRecoveryResponse;\r\n });\r\n builder.addCase(fetchRecovery.rejected, (state, action) => {\r\n const error = action.payload as ValidateErrorResponse;\r\n state.isRecoveryLoading = false;\r\n state.recoveryResponse = {\r\n status: error?.status?.toString(),\r\n errorCode: error?.title,\r\n isError: true,\r\n errorMessage:\r\n error?.detail && error?.detail?.length > 0 && error?.detail[0],\r\n error: error?.detail,\r\n } as AccountRecoveryResponse;\r\n });\r\n builder.addCase(fetchValidateAuthenticationId.pending, (state) => {\r\n state.isLoading = true;\r\n state.isError = false;\r\n });\r\n builder.addCase(\r\n fetchValidateAuthenticationId.fulfilled,\r\n (state, action) => {\r\n const { validationCode, correlationId } =\r\n action.payload as ValidateUserAuthResponse;\r\n state.isLoading = false;\r\n state.isError = validationCode !== SosUserAuthResponseCode.Success;\r\n state.isValidationSuccess =\r\n validationCode === SosUserAuthResponseCode.Success;\r\n state.validationStatus =\r\n validationCode || SosUserAuthResponseCode.GeneralError;\r\n state.correlationId = correlationId || '';\r\n }\r\n );\r\n builder.addCase(fetchValidateAuthenticationId.rejected, (state) => {\r\n state.isLoading = false;\r\n state.isError = true;\r\n state.isValidationSuccess = false;\r\n state.validationStatus = SosUserAuthResponseCode.GeneralError;\r\n });\r\n builder.addCase(fetchValidateEmployeeNumber.pending, (state) => {\r\n state.isLoading = true;\r\n state.isError = false;\r\n });\r\n\r\n builder.addCase(fetchValidateEmployeeNumber.fulfilled, (state, action) => {\r\n const { validationCode, correlationId } =\r\n action.payload as ValidateUserAuthResponse;\r\n state.isLoading = false;\r\n state.isError = validationCode !== SosUserAuthResponseCode.Success;\r\n state.isValidationSuccess =\r\n validationCode === SosUserAuthResponseCode.Success;\r\n state.validationStatus =\r\n validationCode || SosUserAuthResponseCode.GeneralError;\r\n state.correlationId = correlationId || '';\r\n });\r\n builder.addCase(fetchValidateEmployeeNumber.rejected, (state) => {\r\n state.isLoading = false;\r\n state.isError = true;\r\n state.isValidationSuccess = false;\r\n state.validationStatus = SosUserAuthResponseCode.GeneralError;\r\n });\r\n builder.addCase(fetchValidateSSN.pending, (state) => {\r\n state.isLoading = true;\r\n state.isError = false;\r\n state.redirectUrl = '';\r\n state.correlationId = '';\r\n state.isWaitingOnSsnVerification = true;\r\n });\r\n builder.addCase(fetchValidateSSN.fulfilled, (state, action) => {\r\n const { validationCode, correlationId, redirectUrl } =\r\n action.payload as ValidateUserAuthResponse;\r\n state.isLoading = false;\r\n state.isError = validationCode !== SosUserAuthResponseCode.Success;\r\n state.isValidationSuccess =\r\n validationCode === SosUserAuthResponseCode.Success;\r\n state.validationStatus =\r\n validationCode || SosUserAuthResponseCode.GeneralError;\r\n state.correlationId = correlationId || '';\r\n state.redirectUrl = redirectUrl || '';\r\n state.isWaitingOnSsnVerification = false;\r\n });\r\n builder.addCase(fetchValidateSSN.rejected, (state) => {\r\n state.isLoading = false;\r\n state.isError = true;\r\n state.isValidationSuccess = false;\r\n state.validationStatus = SosUserAuthResponseCode.GeneralError;\r\n state.isWaitingOnSsnVerification = false;\r\n });\r\n builder.addCase(resetRegistrationReducer.pending, (state) => {\r\n state.isLoading = true;\r\n state.isError = false;\r\n });\r\n builder.addCase(resetRegistrationReducer.rejected, (state) => {\r\n state.isLoading = false;\r\n state.isError = false;\r\n });\r\n },\r\n});\r\n\r\nexport default registrationSlice.reducer;\r\n\r\nexport const validateCompanyAndAccountNumber = async (\r\n request: ValidateCompanyNameAndAccountNumberRequest\r\n) =>\r\n apiClient\r\n .registrationValidation_ValidateCompanyNameAndAccountNumber(request)\r\n .then((response: ValidateCompanyNameAndAccountNumberResponse) => ({\r\n data: response,\r\n }));\r\n\r\nexport const registrationApi = emptyApi.injectEndpoints({\r\n endpoints: (build) => ({\r\n validateCompanyAndAccountNumber: build.mutation<\r\n ValidateCompanyNameAndAccountNumberResponse,\r\n ValidateCompanyNameAndAccountNumberRequest\r\n >({\r\n queryFn: validateCompanyAndAccountNumber,\r\n }),\r\n }),\r\n overrideExisting: false,\r\n});\r\n\r\nexport const { resetRegistrationRedirectUrl } = registrationSlice.actions;\r\nexport const { useValidateCompanyAndAccountNumberMutation } = registrationApi;\r\n","import { Configuration, ConfigurationProvider } from './Interfaces';\r\n\r\nconst environmentConfigurationProvider: ConfigurationProvider = (\r\n configuration = {}\r\n) => {\r\n const IsStandalone = process.env.REACT_APP_STANDALONE === 'true';\r\n const LocalesBaseUrl = process.env.REACT_APP_LOCALES_BASE_URL;\r\n const MediaBaseUrl = process.env.REACT_APP_MEDIA_BASE_URL;\r\n const LocalesVersion = process.env.REACT_APP_LOCALES_VERSION;\r\n const ApiBaseUrl = process.env.REACT_APP_API_BASE_URL;\r\n const DesignSystemMediaBaseUrl =\r\n process.env.REACT_APP_DESIGN_SYSTEM_MEDIA_BASE_URL;\r\n const LogosUrl = process.env.REACT_APP_LOGOS_URL;\r\n const UseLocalizationDebug =\r\n process.env.REACT_APP_LOCALIZATION_DEBUG === 'true';\r\n const Adb2c = {\r\n clientId: process.env.REACT_APP_ADB2C_CLIENT_ID,\r\n authority: process.env.REACT_APP_ADB2C_AUTHORITY,\r\n authorityRegister: process.env.REACT_APP_ADB2C_AUTHORITY_REGISTER,\r\n authoritySettings: process.env.REACT_APP_ADB2C_AUTHORITY_SETTINGS,\r\n knownAuthorities: process.env.REACT_APP_ADB2C_KNOWN_AUTHORITIES,\r\n loginRedirectUrl: process.env.REACT_APP_ADB2C_REDIRECT_URI,\r\n logoutRedirectUrl: process.env.REACT_APP_ADB2C_POST_LOGOUT_REDIRECT_URI,\r\n settingsRedirectUrl: process.env.REACT_APP_ADB2C_SETTINGS_REDIRECT_URI,\r\n apiPermissions: (process.env.REACT_APP_ADB2C_API_PERMISSIONS || '').split(\r\n ' '\r\n ),\r\n tainaCertificationUrl: process.env.REACT_APP_TAINA_CERTIFICATION_URL,\r\n };\r\n\r\n return {\r\n ...configuration,\r\n IsStandalone,\r\n LocalesBaseUrl,\r\n MediaBaseUrl,\r\n LocalesVersion,\r\n ApiBaseUrl,\r\n DesignSystemMediaBaseUrl,\r\n LogosUrl,\r\n UseLocalizationDebug,\r\n Adb2c,\r\n };\r\n};\r\n\r\nexport default environmentConfigurationProvider;\r\n","import { Configuration, ConfigurationProvider } from './Interfaces';\r\n\r\nconst interpolationConst = '$(';\r\n\r\nconst overrideValueFromGlobalVars = (\r\n currentValue: any,\r\n globalVarValue: any,\r\n isArray = false\r\n) => {\r\n if (!globalVarValue) {\r\n return currentValue;\r\n }\r\n\r\n if (globalVarValue.toString().startsWith(interpolationConst)) {\r\n return currentValue;\r\n }\r\n\r\n return isArray ? globalVarValue.split(' ') : globalVarValue;\r\n};\r\n\r\nconst globalVarsConfigurationProvider: ConfigurationProvider = (\r\n configuration = {}\r\n) => {\r\n const globalConfig = (window as any).REACT_APP_VARIABLES;\r\n if (!globalConfig) {\r\n return configuration;\r\n }\r\n\r\n return {\r\n ...configuration,\r\n IsStandalone: overrideValueFromGlobalVars(\r\n configuration.IsStandalone,\r\n globalConfig.IsStandalone\r\n ),\r\n LocalesBaseUrl: overrideValueFromGlobalVars(\r\n configuration.LocalesBaseUrl,\r\n globalConfig.LocalesBaseUrl\r\n ),\r\n MediaBaseUrl: overrideValueFromGlobalVars(\r\n configuration.MediaBaseUrl,\r\n globalConfig.MediaBaseUrl\r\n ),\r\n LocalesVersion: overrideValueFromGlobalVars(\r\n configuration.LocalesVersion,\r\n globalConfig.LocalesVersion\r\n ),\r\n ApiBaseUrl: overrideValueFromGlobalVars(\r\n configuration.ApiBaseUrl,\r\n globalConfig.ApiBaseUrl\r\n ),\r\n DesignSystemMediaBaseUrl: overrideValueFromGlobalVars(\r\n configuration.DesignSystemMediaBaseUrl,\r\n globalConfig.DesignSystemMediaBaseUrl\r\n ),\r\n LogosUrl: overrideValueFromGlobalVars(\r\n configuration.LogosUrl,\r\n globalConfig.LogosUrl\r\n ),\r\n Adb2c: {\r\n clientId: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.clientId,\r\n globalConfig.ClientId\r\n ),\r\n authority: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.authority,\r\n globalConfig.Authority\r\n ),\r\n authorityRegister: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.authorityRegister,\r\n globalConfig.AuthorityRegister\r\n ),\r\n authoritySettings: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.authoritySettings,\r\n globalConfig.AuthoritySettings\r\n ),\r\n knownAuthorities: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.knownAuthorities,\r\n globalConfig.KnownAuthorities\r\n ),\r\n loginRedirectUrl: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.loginRedirectUrl,\r\n globalConfig.LoginRedirectUrl\r\n ),\r\n logoutRedirectUrl: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.logoutRedirectUrl,\r\n globalConfig.LogoutRedirectUrl\r\n ),\r\n settingsRedirectUrl: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.settingsRedirectUrl,\r\n globalConfig.SettingsRedirectUrl\r\n ),\r\n apiPermissions: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.apiPermissions,\r\n globalConfig.ApiPermissions,\r\n true\r\n ),\r\n tainaCertificationUrl: overrideValueFromGlobalVars(\r\n configuration.Adb2c?.tainaCertificationUrl,\r\n globalConfig.TainaCertificationUrl\r\n ),\r\n },\r\n };\r\n};\r\n\r\nexport default globalVarsConfigurationProvider;\r\n","import { ConfigurationProvider, MsalConfiguration } from './Interfaces';\r\n\r\nconst msalConfigurationProvider: ConfigurationProvider = (\r\n configuration = {}\r\n) => {\r\n const Msal = {\r\n auth: {\r\n clientId: configuration?.Adb2c?.clientId || '',\r\n authority: configuration?.Adb2c?.authority || '',\r\n authorityRegister: configuration?.Adb2c?.authorityRegister || '',\r\n authoritySettings: configuration?.Adb2c?.authoritySettings || '',\r\n knownAuthorities: (configuration?.Adb2c?.knownAuthorities || '').split(\r\n ','\r\n ),\r\n redirectUri: configuration?.Adb2c?.loginRedirectUrl || '',\r\n postLogoutRedirectUri: configuration?.Adb2c?.logoutRedirectUrl || '',\r\n settingsRedirectUrl: configuration?.Adb2c?.settingsRedirectUrl || '',\r\n tainaCertificationUrl: configuration?.Adb2c?.tainaCertificationUrl || '',\r\n },\r\n cache: {\r\n cacheLocation: 'sessionStorage',\r\n storeAuthStateInCookie: false,\r\n },\r\n };\r\n\r\n return {\r\n ...configuration,\r\n Msal,\r\n };\r\n};\r\n\r\nexport default msalConfigurationProvider;\r\n","import RuntimeConfigurationProvider from './configuration/RuntimeConfigurationProvider';\r\nimport environmentConfigurationProvider from './configuration/environmentConfigurationProvider';\r\nimport globalVarsConfigurationProvider from './configuration/globalVarsConfigurationProvider';\r\nimport msalConfigurationProvider from './configuration/msalConfigurationProvider';\r\nimport { AppConfigurationProvider } from './configuration/Interfaces';\r\n\r\nRuntimeConfigurationProvider.configurationProviders = [\r\n environmentConfigurationProvider,\r\n globalVarsConfigurationProvider,\r\n msalConfigurationProvider,\r\n];\r\nRuntimeConfigurationProvider.buildConfiguration();\r\n\r\nconst configurationProvider: AppConfigurationProvider =\r\n new RuntimeConfigurationProvider();\r\n\r\nexport default configurationProvider.getConfiguration();\r\n","import { SxProps } from '@mui/system';\r\n\r\nconst headerCotnainer: SxProps = {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n};\r\n\r\nconst headerDivider: SxProps = {\r\n marginX: 4,\r\n border: '1px solid grey',\r\n borderColor: 'grey.400',\r\n};\r\n\r\nexport default {\r\n headerCotnainer,\r\n headerDivider,\r\n};\r\n","import React from 'react';\r\nimport { Box, Divider } from '@mui/material';\r\nimport { LogoSettings } from '@eq/design-system/components/Header';\r\nimport styles from './CompaniesHeader.styles';\r\n\r\nconst BpHeaderContent = ({ url, image }: LogoSettings) => (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n);\r\n\r\nexport default BpHeaderContent;\r\n","import React from 'react';\r\nimport { Box, Divider } from '@mui/material';\r\nimport { LogoSettings } from '@eq/design-system/components/Header';\r\nimport styles from './CompaniesHeader.styles';\r\n\r\nconst ComcastHeaderContent = ({ url, image }: LogoSettings) => (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n);\r\n\r\nexport default ComcastHeaderContent;\r\n","import { SxProps } from '@mui/system';\r\nimport { SolTheme } from '../SolThemeProvider';\r\n\r\nconst bp: SxProps = {\r\n '& #registerButton': {\r\n color: (theme) => theme.external.bp.palette.primary.main,\r\n borderColor: (theme) => theme.external.bp.palette.primary.main,\r\n '&:hover': {\r\n borderColor: (theme) => theme.external.bp.palette.primary.main,\r\n },\r\n },\r\n '& #loginButton': {\r\n color: 'white',\r\n backgroundColor: (theme) => theme.external.bp.palette.primary.main,\r\n borderColor: (theme) => theme.external.bp.palette.primary.main,\r\n border: '1px solid',\r\n '&:hover': {\r\n backgroundColor: 'white',\r\n color: (theme) => theme.external.bp.palette.primary.main,\r\n },\r\n },\r\n};\r\n\r\nconst comcast: SxProps = {\r\n '& #registerButton': {\r\n color: (theme) => theme.external.comcast.palette.primary.main,\r\n borderColor: (theme) => theme.external.comcast.palette.primary.main,\r\n '&:hover': {\r\n borderColor: (theme) => theme.external.comcast.palette.primary.main,\r\n },\r\n },\r\n '& #loginButton': {\r\n color: 'white',\r\n backgroundColor: (theme) => theme.external.comcast.palette.primary.main,\r\n borderColor: (theme) => theme.external.comcast.palette.primary.main,\r\n border: '1px solid',\r\n '&:hover': {\r\n backgroundColor: 'white',\r\n color: (theme) => theme.external.comcast.palette.primary.main,\r\n },\r\n },\r\n};\r\n\r\nexport default {\r\n bp,\r\n comcast,\r\n};\r\n","import { SxProps } from '@mui/system';\r\nimport { Spacings } from '@eq/design-system/themes';\r\n\r\nconst backToLogin: SxProps = {\r\n textAlign: 'right',\r\n '& a': {\r\n typography: 'link5Heavy',\r\n marginLeft: Spacings.small2,\r\n },\r\n};\r\n\r\nexport default {\r\n backToLogin,\r\n};\r\n","import DsHeader, {\r\n HeaderLink,\r\n HeaderProps,\r\n ThemeVariant,\r\n} from '@eq/design-system/components/Header';\r\nimport React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport Box from '@mui/material/Box';\r\nimport Typography from '@mui/material/Typography';\r\nimport { useMediaQuery } from '@mui/material';\r\nimport { SxProps } from '@mui/system';\r\nimport { fonts } from '@eq/design-system/themes/eqMainTheme';\r\nimport { useFeatures } from 'flagged';\r\nimport configuration from '../../../app/configuration';\r\nimport { useAppDispatch } from '../../../app/store';\r\nimport { useAuth } from '../../Auth';\r\nimport { hasUnreadAlertsSelector } from '../../slices/alerts/alertsSelectors';\r\nimport { fetchAlertsByUserId } from '../../slices/alerts/alertsSlice';\r\nimport { hasUnreadMessagesSelector } from '../../slices/messages/messagesSelectors';\r\nimport { fetchMessagesByUserId } from '../../slices/messages/messagesSlice';\r\nimport {\r\n decorateWithDesignSystemMediaBaseUrl,\r\n decorateWithLocalMediaBaseUrl,\r\n} from '../../../app/configuration/Localization';\r\nimport CompaniesComponentsFactory from '../Factories/CompaniesComponentsFactory';\r\nimport RoutingPaths, { registerPaths } from '../../../routing/RoutingConstants';\r\nimport styles from './Header.styles';\r\nimport { solTheme } from '../SolThemeProvider';\r\nimport { isNewSol, getUrl } from '../../utils/urlUtils';\r\n\r\nexport interface FeatureHeaderLink extends HeaderLink {\r\n disableOnFeature?: string | undefined;\r\n enableOnFeature?: string | undefined;\r\n}\r\n\r\nconst Header = ({ sx = {} }: { sx?: SxProps }) => {\r\n const { t } = useTranslation();\r\n const dispatch = useAppDispatch();\r\n const location = useLocation();\r\n const isMobile = useMediaQuery(solTheme.breakpoints.down('sm'));\r\n const [companyHeader, companyStyles] = CompaniesComponentsFactory(\r\n location.pathname\r\n );\r\n const hasMessages = useSelector(hasUnreadMessagesSelector);\r\n const hasAlerts = useSelector(hasUnreadAlertsSelector);\r\n const {\r\n isAuthenticated,\r\n signIn,\r\n signOut,\r\n profileSettings,\r\n isPerusal,\r\n allowESPPManagement,\r\n } = useAuth();\r\n const features = useFeatures();\r\n const headerData = t('header', { returnObjects: true }) as HeaderProps;\r\n const isRegisterPath = (registerPaths as string[]).includes(\r\n location.pathname\r\n );\r\n const isDsppContinue = location.pathname.includes(\r\n RoutingPaths.registerDsppContinue\r\n );\r\n const accountLinks = !configuration.IsStandalone\r\n ? headerData.accountLinks\r\n : [\r\n ...headerData.accountLinks.slice(0, -2),\r\n {\r\n ...headerData.accountLinks[headerData.accountLinks.length - 2],\r\n url: '',\r\n onClick: () => profileSettings(),\r\n },\r\n\r\n {\r\n ...headerData.accountLinks[headerData.accountLinks.length - 1],\r\n url: '',\r\n onClick: () => signOut(),\r\n },\r\n ];\r\n\r\n useEffect(() => {\r\n if (isAuthenticated && !isDsppContinue) {\r\n dispatch(fetchAlertsByUserId());\r\n dispatch(fetchMessagesByUserId());\r\n }\r\n }, [isAuthenticated]);\r\n\r\n const urlGenerator = (url: string | undefined, isExternal?: boolean) => ({\r\n url: getUrl(url),\r\n externalUrl: isExternal || !isNewSol,\r\n });\r\n\r\n const featureFilter = (link: FeatureHeaderLink) => {\r\n if (link.disableOnFeature) {\r\n return features[link.disableOnFeature] !== true;\r\n }\r\n if (link.enableOnFeature) {\r\n return features[link.enableOnFeature] === true;\r\n }\r\n return true;\r\n };\r\n\r\n const urlArrayGenerator = (array: Array) => {\r\n const data = array.filter((item: FeatureHeaderLink) => {\r\n if (!allowESPPManagement && item.label === 'Employee Plan') return false;\r\n\r\n return featureFilter(item);\r\n });\r\n\r\n return data.map((el) =>\r\n el.subLinks\r\n ? ({\r\n ...el,\r\n subLinks: el.subLinks?.filter(featureFilter)?.map(\r\n (sub) =>\r\n ({\r\n ...sub,\r\n ...urlGenerator(sub.url, sub.externalUrl),\r\n } as HeaderLink)\r\n ),\r\n } as HeaderLink)\r\n : {\r\n ...el,\r\n ...urlGenerator(el.url, el.externalUrl),\r\n }\r\n );\r\n };\r\n\r\n const logoData = {\r\n ...headerData.logo,\r\n image: decorateWithLocalMediaBaseUrl(headerData.logo.image),\r\n };\r\n const decoratedLinks = accountLinks.map((aL) => ({\r\n ...aL,\r\n iconUrl: decorateWithDesignSystemMediaBaseUrl(aL.iconUrl || ''),\r\n disabled:\r\n aL.url === '/umbraco/surface/ProfileSettingsSurface/Redirect'\r\n ? isPerusal\r\n : false,\r\n }));\r\n const decoratedMobileLinks = headerData.mobileAccountLinks.map((aL) => ({\r\n ...aL,\r\n iconUrl: decorateWithDesignSystemMediaBaseUrl(aL.iconUrl || ''),\r\n disabled:\r\n aL.url === '/umbraco/surface/ProfileSettingsSurface/Redirect'\r\n ? isPerusal\r\n : false,\r\n }));\r\n\r\n const isCompanyPage =\r\n location.pathname.startsWith('/bp') ||\r\n location.pathname.startsWith('/comcast');\r\n\r\n const buttonsSettings = !configuration.IsStandalone\r\n ? {\r\n ...headerData.buttonsSettings,\r\n registerLink: `/transactional/anonymous/newsol${\r\n isCompanyPage ? '/external' : ''\r\n }${headerData.buttonsSettings.registerLink}`,\r\n }\r\n : {\r\n ...headerData.buttonsSettings,\r\n loginLink: '',\r\n onLoginClick: (e: { preventDefault: () => void }) => {\r\n e.preventDefault();\r\n signIn();\r\n },\r\n loginExternal: false,\r\n registerLink: `${isCompanyPage ? '/external' : ''}${\r\n headerData.buttonsSettings.registerLink\r\n }`,\r\n registerExternal: false,\r\n };\r\n\r\n const goToLoginText = (\r\n \r\n {!isMobile && (\r\n \r\n {t('headerAddons.backToLogin')}\r\n \r\n )}\r\n \r\n {t('headerAddons.backToLoginLink')}\r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n {headerData && (\r\n \r\n )}\r\n >\r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { decorateWithLocalMediaBaseUrl } from '../../../app/configuration/Localization';\r\nimport BpHeaderContent from '../Header/companies/BpHeaderContent';\r\nimport ComcastHeaderContent from '../Header/companies/ComcastHeaderContent';\r\nimport { CompaniesItems } from '../Header/Interfaces';\r\nimport styles from './Companies.styles';\r\n\r\nexport default function CompaniesComponentsFactory(path: string) {\r\n const { t } = useTranslation();\r\n const companiesData = t('companies', {\r\n returnObjects: true,\r\n }) as CompaniesItems;\r\n\r\n let company = path;\r\n if (company.toLowerCase().startsWith('/bp')) {\r\n company = 'bp';\r\n } else if (company.toLowerCase().startsWith('/comcast')) {\r\n company = 'comcast';\r\n } else {\r\n company = '';\r\n }\r\n\r\n switch (company) {\r\n case 'bp':\r\n return [\r\n ,\r\n styles.bp as any,\r\n ];\r\n case 'comcast':\r\n return [\r\n ,\r\n styles.comcast as any,\r\n ];\r\n default:\r\n return [<>>, {}];\r\n }\r\n}\r\n","import DsFooter, {\r\n FooterColumnPanelProps,\r\n} from '@eq/design-system/components/Footer';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { SxProps } from '@mui/system';\r\nimport { useAuth } from '../../Auth';\r\nimport { decorateWithDesignSystemMediaBaseUrl } from '../../../app/configuration/Localization';\r\n\r\nconst Footer = ({ sx = {} }: { sx?: SxProps }) => {\r\n const { t } = useTranslation();\r\n const data = t('footer', { returnObjects: true });\r\n const { isAuthenticated } = useAuth();\r\n\r\n const footerCopyright = {\r\n ...data.footerCopyright,\r\n copyrightText: data.footerCopyright.copyrightText.replace(\r\n '{year}',\r\n new Date().getFullYear().toString()\r\n ),\r\n logoUrl: decorateWithDesignSystemMediaBaseUrl(data.footerCopyright.logoUrl),\r\n };\r\n\r\n const footerColumn = data.footerColumn.map(\r\n (item) =>\r\n ({\r\n ...item,\r\n links: item.links.map((linkItem) => ({\r\n ...linkItem,\r\n link:\r\n isAuthenticated && linkItem.authenticatedLink !== undefined\r\n ? linkItem.authenticatedLink\r\n : linkItem.link,\r\n })),\r\n } as FooterColumnPanelProps)\r\n );\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"sourceRoot":""}