{"version":3,"file":"static/js/main-a434fa0a.408f0fea.js","mappings":"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","sources":["components/profile/tabs/email-preferences/tabs/dealer-inventory/useInventoryAlertsChangedState.ts","components/profile/tabs/email-preferences/tabs/portfolio/SinglePortfolioAlertsPopup.tsx","components/profile/tabs/email-preferences/tabs/bwic-monitor/BwicMonitorSecondaryWeeklySummary.tsx","components/profile/tabs/email-preferences/tabs/bwic-monitor/BwicMonitorAlertsSaveButton.tsx","components/profile/tabs/email-preferences/tabs/SaveButton.tsx","components/profile/tabs/email-preferences/tabs/IssuanceMonitorAlertsSection.tsx","components/profile/tabs/email-preferences/tabs/EmailPreferencesTabItem.tsx","components/profile/tabs/email-preferences/tabs/MultiTableHeaderRadioButton.tsx","components/profile/tabs/email-preferences/tabs/clo-managers/clo-managers-im-alerts.columns.tsx","components/profile/tabs/email-preferences/tabs/clo-managers/CloManagerImAlerts.tsx","components/profile/tabs/email-preferences/tabs/dealer-inventory/UnsubscribeInventoryAlertsButton.tsx","components/profile/tabs/email-preferences/tabs/banks/banks-alerts.columns.tsx","components/profile/tabs/email-preferences/tabs/banks/BanksAlertsSection.tsx","components/profile/tabs/email-preferences/EmailPreferencesContent.tsx","components/profile/tabs/email-preferences/tabs/DashboardEmailTab.tsx","components/profile/tabs/email-preferences/tabs/bwic-monitor/BwicMonitorAlertsTab.tsx","components/profile/tabs/email-preferences/tabs/MyBwicsTab.tsx","components/profile/tabs/email-preferences/tabs/IssuanceMonitorTab.tsx","components/profile/tabs/email-preferences/tabs/ArrangerPipelineTab.tsx","components/profile/tabs/email-preferences/tabs/dealer-inventory/DealerInventoryAlertsTab.tsx","components/profile/tabs/email-preferences/tabs/clo-managers/CloManagerTab.tsx","components/profile/tabs/email-preferences/tabs/banks/BanksTab.tsx","components/profile/tabs/email-preferences/SavedFiltersAlerts.tsx","components/ratings/AgencyRatingList.tsx","components/ratings/RatingMappingTable.tsx","components/profile/tabs/email-preferences/tabs/UnsubscribeAllButton.tsx","components/profile/tabs/email-preferences/tabs/dealer-inventory/DealerInventoryAlertsSaveButton.tsx","components/profile/tabs/email-preferences/tabs/portfolio/usePortfolioAlertsChangedState.ts","components/profile/tabs/subscriptions/SubscriptionsTab.ts","components/profile/tabs/email-preferences/tabs/EmailPreferencesRadioGroup.tsx","components/profile/tabs/email-preferences/tabs/bwic-monitor/BwicMonitorAlertsPopup.tsx","components/profile/tabs/email-preferences/tabs/bwic-monitor/BwicMonitorAlertsPreferences.tsx","components/profile/tabs/email-preferences/tabs/portfolio/PortfolioFiltersAlertsHeaderRadioButton.tsx","components/profile/tabs/email-preferences/tabs/portfolio/portfolioFilterAlertsTableColumns.tsx","components/profile/tabs/email-preferences/tabs/portfolio/PortfolioFilterAlertsTable.tsx","components/profile/tabs/email-preferences/tabs/portfolio/UnsubscribePortfolioAlertsButton.tsx","components/profile/tabs/email-preferences/tabs/portfolio/PortfolioTab.tsx","components/profile/tabs/email-preferences/tabs/portfolio/PortfolioAlertsTabs.tsx","components/profile/tabs/email-preferences/tabs/dealer-inventory/DealerInventoryAlertsPopup.tsx","components/profile/tabs/email-preferences/tabs/dealer-inventory/DealerInventoryAlertsPreferences.tsx","components/profile/tabs/email-preferences/tabs/EmailPreferencesTableRating.tsx","components/profile/tabs/email-preferences/tabs/EmailPreferencesTableRatingTitle.tsx","components/profile/tabs/email-preferences/tabs/EmailPreferencesTableSize.tsx","components/profile/tabs/email-preferences/tabs/EmailPreferencesByRating.tsx","components/profile/tabs/email-preferences/tabs/bwic-monitor/BwicMonitorAlertsTable.tsx","components/profile/profile-menu/ProfileMenuSection.tsx","components/profile/profile-menu/ProfileMenuItems.tsx","components/profile/profile-menu/ProfileMenu.tsx","components/profile/tabs/email-preferences/tabs/portfolio/SavePortfolioAlertsButton.tsx","components/profile/tabs/manage/users/RequestUserStatusDetails.tsx","components/profile/tabs/subscriptions/hooks/useSubscriptions.ts","components/profile/tabs/ChangeBloombergEmail.tsx","components/profile/tabs/PersonalInfo.jsx","components/profile/validation/addNewTrader.js","components/profile/tabs/ModalAddEditDepartment.jsx","components/profile/tabs/Company.jsx","components/profile/tabs/PasswordSettings.jsx","components/profile/tabs/manage/header/MenageViewHeader.tsx","components/profile/tabs/manage/content/ManageViewContent.tsx","components/profile/tabs/ModalAddEditTrader.jsx","components/profile/tabs/Traders.tsx","components/profile/tabs/tfa/TwoFactorAuthSettingsSection.tsx","components/profile/tabs/tfa/PhoneEdit.tsx","components/profile/tabs/tfa/SubmitVerificationCodePopup.tsx","components/profile/tabs/tfa/TwoFactorAuthSettings.tsx","components/profile/tabs/subscriptions/ContentSection.tsx","components/profile/tabs/subscriptions/overview/Overview.tsx","components/profile/tabs/subscriptions/plans/LimitedFeaturesPopup.tsx","components/profile/tabs/subscriptions/plans/RequestSubscription.tsx","components/profile/tabs/subscriptions/hooks/useSubscriptionRequest.ts","components/profile/tabs/subscriptions/plans/SubscriptionEndDate.tsx","components/profile/tabs/subscriptions/plans/Plans.tsx","components/profile/tabs/subscriptions/SubscriptionsView.tsx","components/profile/tabs/manage/header/MenageViewHeaderButtons.tsx","components/profile/tabs/manage/ExpandableInfoPanel.tsx","components/profile/tabs/manage/dealers/DealersView.tsx","components/profile/tabs/manage/users/EditUser.tsx","components/profile/tabs/manage/users/UserContextMenu.tsx","components/profile/tabs/manage/users/UserListTableItem.ts","components/profile/tabs/manage/users/UserList.tsx","components/profile/tabs/manage/users/UsersView.tsx","components/profile/tabs/email-preferences/EmailPreferences.tsx","components/profile/tabs/trading-limits/SettlementAgentTabContent.tsx","components/profile/tabs/trading-limits/SettlementAgentLimits.tsx","components/profile/tabs/trading-limits/SettlementAgentContacts.tsx","components/profile/tabs/trading-limits/CompanyLimitInput.tsx","components/profile/tabs/trading-limits/CompanyLimits.tsx","components/profile/tabs/trading-limits/TradingLimitsView.tsx","components/profile/Profile.jsx","components/profile/tabs/email-preferences/tabs/portfolio/PortfolioAlertsPopup.tsx"],"sourcesContent":["import { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { BwicFilterType } from \"../../../../../../types/filters/FilterState\";\r\nimport { PageConfigType } from \"../../../../../../types/page-config/PageConfigType\";\r\nimport { usePageConfig } from \"../../../../../common/pageConfig/usePageConfig\";\r\n\r\nexport function useInventoryAlertsChangedState() {\r\n const { config } = usePageConfig(PageConfigType.DealerInventory, true, BwicFilterType.Inventory);\r\n const savedFiltersEditState = useAppSelector(s => s.manageEmailPreferences.editSavedFiltersPreferences);\r\n const initialPreferences = useAppSelector(s => s.manageEmailPreferences.initialPreferences);\r\n const editPreferences = useAppSelector(s => s.manageEmailPreferences.editPreferences);\r\n\r\n const isFilterAlertsChanged = config?.filters?.some(f =>\r\n savedFiltersEditState[f.referenceName] != null &&\r\n savedFiltersEditState[f.referenceName] !== f.alertOption\r\n );\r\n\r\n const dealerInventoryAlertStateChanged = initialPreferences.dealerInventoryAlertState !== editPreferences.dealerInventoryAlertState;\r\n\r\n return { isFilterAlertsChanged, dealerInventoryAlertStateChanged };\r\n}","import { useState } from \"react\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { Portfolio } from \"../../../../../../types/portfolio/Portfolio\";\r\nimport { Popup, PopupBody, PopupFooter } from \"../../../../../controls\";\r\nimport { portfolioActions } from \"../../../../../../actions/portfolio.actions\";\r\nimport { useAppDispatch } from \"../../../../../../effects/useAppDispatch\";\r\nimport { Link } from \"../../../../../controls/Link\";\r\nimport { routes } from \"../../../../../../constants\";\r\nimport { EmailPreferencesTab } from \"../../EmailPreferencesContent\";\r\nimport { PortfolioAlertsTabs } from \"./PortfolioAlertsTabs\";\r\n\r\ninterface Props {\r\n portfolio: Portfolio;\r\n onClose: () => void;\r\n}\r\n\r\nexport function SinglePortfolioAlertsPopup({ portfolio, onClose }: Props) {\r\n const dispatch = useAppDispatch();\r\n\r\n const [cleansingNoticeAlert, setCleansingNoticeAlert] = useState(portfolio.cleansingNoticeAlert);\r\n const [bwicAlert, setBwicAlert] = useState(portfolio.bwicAlert);\r\n const [inventoryAlert, setInventoryAlert] = useState(portfolio.dealersInventoryAlert);\r\n const [issuanceMonitorAlert, setIssuanceMonitorAlert] = useState(\r\n portfolio.issuanceMonitorAlert,\r\n );\r\n const [outOfRiAlert, setOutOfRiAlert] = useState(portfolio.outOfRiPeriodAlert);\r\n const [outOfNcAlert, setOutOfNcAlert] = useState(portfolio.outOfNcPeriodAlert);\r\n const [rollerDeadlineAlert, setRollerDeadlineAlert] = useState(portfolio.rollerDeadlineAlert);\r\n\r\n const hasChanges =\r\n bwicAlert !== portfolio.bwicAlert ||\r\n inventoryAlert !== portfolio.dealersInventoryAlert ||\r\n cleansingNoticeAlert !== portfolio.cleansingNoticeAlert ||\r\n issuanceMonitorAlert !== portfolio.issuanceMonitorAlert ||\r\n outOfRiAlert !== portfolio.outOfRiPeriodAlert ||\r\n outOfNcAlert !== portfolio.outOfNcPeriodAlert ||\r\n rollerDeadlineAlert !== portfolio.rollerDeadlineAlert;\r\n\r\n const handleSave = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n\r\n if (!hasChanges) {\r\n return;\r\n }\r\n\r\n dispatch(\r\n portfolioActions.updatePortfoliosAlertStatus([\r\n {\r\n portfolioId: portfolio.id,\r\n bwicAlert: bwicAlert === portfolio.bwicAlert ? undefined : bwicAlert,\r\n dealersInventoryAlert:\r\n inventoryAlert === portfolio.dealersInventoryAlert ? undefined : inventoryAlert,\r\n cleansingNoticeAlert: cleansingNoticeAlert === portfolio.cleansingNoticeAlert ? undefined : cleansingNoticeAlert,\r\n issuanceMonitorAlert: issuanceMonitorAlert === portfolio.issuanceMonitorAlert ? undefined : issuanceMonitorAlert,\r\n outOfRiPeriodAlert: outOfRiAlert === portfolio.outOfRiPeriodAlert ? undefined : outOfRiAlert,\r\n outOfNcPeriodAlert: outOfNcAlert === portfolio.outOfNcPeriodAlert ? undefined : outOfNcAlert,\r\n rollerDeadlineAlert: rollerDeadlineAlert === portfolio.rollerDeadlineAlert ? undefined : rollerDeadlineAlert,\r\n },\r\n ]),\r\n );\r\n\r\n onClose();\r\n };\r\n\r\n const handleClose = (e?: React.MouseEvent | MouseEvent) => {\r\n e?.stopPropagation();\r\n onClose();\r\n };\r\n\r\n return (\r\n \r\n Portfolio Alerts {portfolio.name}\r\n \r\n }\r\n onClose={handleClose}\r\n >\r\n \r\n setCleansingNoticeAlert(o === AlertOption.Instant)}\r\n bwicAlert={bwicAlert ? AlertOption.Instant : AlertOption.Never}\r\n onChangeBwicAlert={o => setBwicAlert(o === AlertOption.Instant)}\r\n inventoryAlert={inventoryAlert ? AlertOption.Instant : AlertOption.Never}\r\n onChangeInventoryAlert={o => setInventoryAlert(o === AlertOption.Instant)}\r\n imAlert={issuanceMonitorAlert ? AlertOption.Instant : AlertOption.Never}\r\n onChangeImAlert={(o) => setIssuanceMonitorAlert(o === AlertOption.Instant)}\r\n outOfRiAlert={outOfRiAlert ? AlertOption.Periodic : AlertOption.Never}\r\n onChangeOutOfRiAlert={o => setOutOfRiAlert(o === AlertOption.Periodic)}\r\n outOfNcAlert={outOfNcAlert ? AlertOption.Periodic : AlertOption.Never}\r\n onChangeOutOfNcAlert={o => setOutOfNcAlert(o === AlertOption.Periodic)}\r\n rollerDeadlineAlert={rollerDeadlineAlert ? AlertOption.Instant : AlertOption.Never}\r\n onChangeRollerDeadlineAlert={(o) => setRollerDeadlineAlert(o === AlertOption.Instant)}\r\n />\r\n \r\n\r\n \r\n \r\n Manage Alerts\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { useAppDispatch } from \"../../../../../../effects/useAppDispatch\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { isRequesting } from \"../../../../../../utils\";\r\nimport { EmailPreferencesRadioGroup } from \"../EmailPreferencesRadioGroup\";\r\n\r\nexport function BwicMonitorSecondaryWeeklySummary() {\r\n const dispatch = useAppDispatch();\r\n const alertOption = useAppSelector(s => s.manageEmailPreferences.editPreferences.secondaryWeeklySummaryAlertState);\r\n const isRequestingSavePreferences = useAppSelector(s => isRequesting(s.manageEmailPreferences.requestStateSaveEditPreferences));\r\n\r\n return (\r\n {\r\n const option = selectedOption === AlertOption.Weekly ? AlertOption.Weekly : AlertOption.Never;\r\n dispatch(manageEmailPreferencesActions.setSecondaryWeeklySummaryAlert(option))\r\n }}\r\n requiredFeatures={[SubscriptionFeature.BwicMonitorAlerts]}\r\n />\r\n )\r\n}","import { useMemo } from \"react\";\r\nimport { isEqual } from \"lodash\";\r\nimport cn from 'classnames';\r\nimport { isRequesting } from \"../../../../../../utils/request-state.utils\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { UserConfigFilter } from \"../../../../../../types/user-config/UserConfigFilter\";\r\nimport { RouteLeavingGuard } from \"../../../../../routing\";\r\nimport { useHistory } from \"react-router\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\ninterface Props {\r\n className?: string;\r\n currentFilters?: UserConfigFilter[];\r\n disabled?: boolean;\r\n withLeavingGuard?: boolean;\r\n onSave: (updatedFilters?: UserConfigFilter[]) => void;\r\n}\r\n\r\nexport const BwicMonitorAlertsSaveButton = ({ className, currentFilters, disabled, withLeavingGuard, onSave }: Props) => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const initialPreferences = useAppSelector(s => s.manageEmailPreferences.initialPreferences);\r\n const editPreferences = useAppSelector(s => s.manageEmailPreferences.editPreferences);\r\n const savePreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n const emailPreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateGetPreferences);\r\n const bwicByRatingAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.bwicByRatingAlertState);\r\n const savedFiltersEditState = useAppSelector(s => s.manageEmailPreferences.editSavedFiltersPreferences);\r\n \r\n const isFilterAlertsChanged = currentFilters?.some(f =>\r\n savedFiltersEditState[f.referenceName] != null &&\r\n savedFiltersEditState[f.referenceName] !== f.alertOption\r\n );\r\n\r\n const hasChanges = isFilterAlertsChanged || !isEqual(initialPreferences, editPreferences);\r\n\r\n const isSaveButtonDisabled = useMemo(() => {\r\n const isBwicByRatingAlertStateAtleastOneSelected = editPreferences\r\n .ratingPreference.some(({ isUSD, isEUR }) => isUSD || isEUR);\r\n const someRatingError = editPreferences.ratingPreference\r\n .some(({ isUSD, isEUR, minSize, maxSize }) =>\r\n (isUSD || isEUR) &&\r\n (minSize < constants.emailPreferencesSizeRange.min || maxSize > constants.emailPreferencesSizeRange.max || maxSize < minSize)\r\n );\r\n return !(!someRatingError && hasChanges) || (!isBwicByRatingAlertStateAtleastOneSelected && bwicByRatingAlertState !== AlertOption.Never);\r\n }, [editPreferences, hasChanges, bwicByRatingAlertState]);\r\n\r\n const isDisabled = disabled\r\n || isSaveButtonDisabled\r\n || isRequesting(emailPreferencesRequestState, savePreferencesRequestState);\r\n\r\n const handleSave = () => {\r\n let updatedFilters: UserConfigFilter[] | undefined;\r\n if (isFilterAlertsChanged && currentFilters?.length) {\r\n updatedFilters = currentFilters.map(f => ({\r\n ...f,\r\n alertOption: savedFiltersEditState[f.referenceName] ?? f.alertOption\r\n }));\r\n\r\n }\r\n\r\n onSave(updatedFilters);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n Save\r\n \r\n {\r\n dispatch(manageEmailPreferencesActions.rollbackBWICPipelines())\r\n history.push(pathname);\r\n }}\r\n shouldBlockNavigation={() => withLeavingGuard && hasChanges}\r\n />\r\n \r\n );\r\n}","export const SaveButton = ({ disabled, onClick }: { disabled: boolean, onClick: () => void; }) => (\r\n \r\n)\r\n","import { useDispatch } from \"react-redux\";\r\nimport { StatisticsAlertOption } from \"../../../../../types/amr-pipeline/enums/AlertOption\";\r\nimport { UserConfigFilter } from \"../../../../../types/user-config/UserConfigFilter\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../actions/manage-email-preferences.actions\";\r\nimport { ImEmailAlerts } from \"../../../../amrPipeline/aggregated/email-alerts/issuance-monitor/ImEmailAlerts\";\r\nimport { AlertOption } from \"../../../../../types/email-preferences/EmailPreferences\";\r\ninterface Props {\r\n imAlertState?: AlertOption;\r\n imTransactionAlertState?: AlertOption;\r\n imStatisticAlertState?: StatisticsAlertOption;\r\n imFiltersAlertState?: UserConfigFilter[];\r\n disabled: boolean;\r\n}\r\nexport const IssuanceMonitorAlertsSection = ({\r\n imAlertState,\r\n imTransactionAlertState,\r\n imStatisticAlertState,\r\n imFiltersAlertState,\r\n disabled,\r\n}: Props) => {\r\n const dispatch = useDispatch();\r\n return (\r\n
\r\n \r\n dispatch(\r\n manageEmailPreferencesActions.setIssuanceMonitorSingleAlert(\r\n option\r\n )\r\n )\r\n }\r\n onChangeNewTransactionUpdate={(option) =>\r\n dispatch(\r\n manageEmailPreferencesActions.setIssuanceMonitorNewTransactionAlert(\r\n option\r\n )\r\n )\r\n }\r\n onChangeWeeklyStatistic={(option) =>\r\n dispatch(\r\n manageEmailPreferencesActions.setIssuanceMonitorStatisticsAlert(\r\n option\r\n )\r\n )\r\n }\r\n onChangeFilterAlerts={(filters: UserConfigFilter[]) =>\r\n dispatch(\r\n manageEmailPreferencesActions.setIssuanceMonitorFiltersAlert(\r\n filters\r\n )\r\n )\r\n }\r\n />\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { roles, routes } from '../../../../../constants';\r\nimport { alertOptions } from '../../../../../constants/amr-pipeline/alertOptions';\r\nimport { useAppSelector } from '../../../../../effects/useAppSelector';\r\nimport { StatisticsAlertOption } from '../../../../../types/amr-pipeline/enums/AlertOption';\r\nimport { AlertOption } from '../../../../../types/email-preferences/EmailPreferences';\r\nimport { arrayUtils, isRequesting } from '../../../../../utils';\r\nimport { TabItem } from '../../../../bidding/common/tab-list';\r\nimport { EmailPreferencesTab } from '../EmailPreferencesContent';\r\nimport { user } from '../../../../../user';\r\nimport { usePageConfig } from '../../../../common/pageConfig/usePageConfig';\r\nimport { PageConfigType } from '../../../../../types/page-config/PageConfigType';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { emailPreferencesUtils } from '../../../../../utils/email-preferences.utils';\r\nimport { PortfolioUserConfigFilter, UserConfigFilter } from '../../../../../types/user-config/UserConfigFilter';\r\nimport { hasBankAnalyticsAlertsAccess, hasBankAnalyticsAlertsChangeAccess } from '../../../../../utils/amr-pipeline.utils';\r\n\r\ninterface Props {\r\n tabPath: EmailPreferencesTab,\r\n title: React.ReactNode;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function EmailPreferencesTabItem({ tabPath, title, disabled }: Props) {\r\n const { tab } = useParams<{ tab: string }>();\r\n\r\n const isSellerCollateralManager = user.hasRoles(roles.CollateralManager);\r\n const withImApAccess = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n const withManagerProfileAccess = user.hasFeatures(SubscriptionFeature.ManagerProfileManagerRelatedAlerts);\r\n const withBwicAccess = user.hasFeatures(SubscriptionFeature.BwicMonitorAlerts);\r\n const withDiAccess = user.hasFeatures(SubscriptionFeature.InventoryAlerts);\r\n const withDealerProfileAccess = user.hasFeatures(SubscriptionFeature.DealerProfileEmailAlerts);\r\n const portfolioImAlertsAccess = user.hasAllFeatures(...[\r\n SubscriptionFeature.IssuanceMonitorFullAccess,\r\n SubscriptionFeature.PortfolioAlerts,\r\n ]);\r\n\r\n const userCompany = useAppSelector(s => s.issuanceMonitor.amrPipelineCommon.userCompany);\r\n const banks = useAppSelector(s => s.manageEmailPreferences.banks);\r\n const requestStateGetPreferences = useAppSelector(s => s.manageEmailPreferences.requestStateGetPreferences);\r\n const editPreferences = useAppSelector(s => s.manageEmailPreferences.editPreferences);\r\n const editIssuanceMonitorPreferences = useAppSelector(s => s.manageEmailPreferences.editIssuanceMonitorPreferences);\r\n const editCloManagersPreferences = useAppSelector(s => s.manageEmailPreferences.editCloManagersPreferences);\r\n const editSavedFiltersPreferences = useAppSelector(s => s.manageEmailPreferences.editSavedFiltersPreferences);\r\n const editBanksPreferences = useAppSelector(s => s.manageEmailPreferences.editBanksPreferences);\r\n const editArrangerPipelinePreferences = useAppSelector(s => s.manageEmailPreferences.editArrangerPipelinePreferences);\r\n const portfolioSavedFilterAlerts = useAppSelector(s => s.manageEmailPreferences.portfolioSavedFilterAlerts);\r\n const { config: bwicMonitorPageConfig } = usePageConfig(PageConfigType.BwicMonitorAll, true);\r\n const { config: portfolioPageConfig } = usePageConfig(PageConfigType.Portfolio, true);\r\n const { config: dealerInventoryPageConfig } = usePageConfig(PageConfigType.DealerInventory, true);\r\n\r\n const withAnalyticsAccess = hasBankAnalyticsAlertsAccess(banks, userCompany);\r\n const withAnalyticsChangeAccess = hasBankAnalyticsAlertsChangeAccess(banks, userCompany);\r\n\r\n const getDefaultGlobalAlertStatus = (alerts: Partial<{ alertOption: AlertOption }>[] = []) => {\r\n let status = null;\r\n for (let option of alertOptions) {\r\n if (alerts.every((f) => f.alertOption === option)) {\r\n status = option;\r\n break;\r\n }\r\n }\r\n return status;\r\n };\r\n\r\n const getCloManagerCounters = () => {\r\n const cloManagerAnalyticsValue = editCloManagersPreferences?.cloManagerAnalyticsAlert.value.find(\r\n a => a.companyReferenceName === userCompany?.referenceName,\r\n );\r\n\r\n\r\n const cloManagerAnalyticSectionCounter = Number(\r\n Boolean(\r\n isSellerCollateralManager &&\r\n cloManagerAnalyticsValue &&\r\n cloManagerAnalyticsValue.alertOption !== AlertOption.Never,\r\n )\r\n );\r\n\r\n const cloManagerBwicSectionCounter = Number(\r\n Boolean(editCloManagersPreferences?.cloManagerBwicAlert.value) &&\r\n getDefaultGlobalAlertStatus(\r\n editCloManagersPreferences?.cloManagerBwicAlert!.value,\r\n ) !== AlertOption.Never,\r\n );\r\n\r\n const cloManagerDiSectionCounter = Number(\r\n Boolean(editCloManagersPreferences?.cloManagerDealerInventoryAlert.value) &&\r\n getDefaultGlobalAlertStatus(\r\n editCloManagersPreferences?.cloManagerDealerInventoryAlert!.value,\r\n ) !== AlertOption.Never,\r\n );\r\n\r\n const cloManagerImSectionCounter = Number(\r\n Boolean(editCloManagersPreferences?.cloManagerIssuanceMonitorAlert.value) &&\r\n getDefaultGlobalAlertStatus(\r\n editCloManagersPreferences?.cloManagerIssuanceMonitorAlert!.value,\r\n ) !== AlertOption.Never,\r\n );\r\n\r\n const cloManagerApSectionCounter = Number(\r\n Boolean(editCloManagersPreferences?.cloManagerArrangerPipelineAlert.value) &&\r\n getDefaultGlobalAlertStatus(\r\n editCloManagersPreferences?.cloManagerArrangerPipelineAlert!.value,\r\n ) !== AlertOption.Never,\r\n );\r\n\r\n return [\r\n ...(isSellerCollateralManager ? [withManagerProfileAccess ? cloManagerAnalyticSectionCounter : 0] : []),\r\n ...(withManagerProfileAccess && withImApAccess ? [cloManagerImSectionCounter, cloManagerApSectionCounter] : [0, 0]),\r\n (withBwicAccess ? cloManagerBwicSectionCounter : 0),\r\n (withDiAccess ? cloManagerDiSectionCounter : 0),\r\n ];\r\n }\r\n\r\n const getBanksCounters = () => {\r\n const bankDiSectionCounter = Number(\r\n Boolean(editBanksPreferences?.bankDealerInventoryAlert.value) &&\r\n getDefaultGlobalAlertStatus(\r\n editBanksPreferences?.bankDealerInventoryAlert!.value,\r\n ) !== AlertOption.Never,\r\n );\r\n\r\n const bankImSectionCounter = Number(\r\n Boolean(editBanksPreferences?.bankIssuanceMonitorAlert.value) &&\r\n getDefaultGlobalAlertStatus(\r\n editBanksPreferences?.bankIssuanceMonitorAlert!.value,\r\n ) !== AlertOption.Never,\r\n );\r\n\r\n\r\n const bankApSectionCounter = Number(\r\n Boolean(editBanksPreferences?.bankArrangerPipelineAlert.value) &&\r\n getDefaultGlobalAlertStatus(\r\n editBanksPreferences?.bankArrangerPipelineAlert!.value,\r\n ) !== AlertOption.Never,\r\n );\r\n\r\n const bankCounter = [\r\n withDiAccess ? bankDiSectionCounter : 0,\r\n ...(withDealerProfileAccess && withImApAccess ? [bankImSectionCounter, bankApSectionCounter] : [0, 0]),\r\n ];\r\n\r\n if (withAnalyticsAccess) {\r\n const bankAnalyticsCounter = withAnalyticsChangeAccess\r\n ? Number(\r\n Boolean(editBanksPreferences?.bankAnalyticsAlert.value?.length) &&\r\n editBanksPreferences?.bankAnalyticsAlert.value.find(\r\n a => a.companyReferenceName === userCompany?.referenceName,\r\n )?.alertOption !== AlertOption.Never,\r\n )\r\n : 0;\r\n\r\n bankCounter.unshift(bankAnalyticsCounter);\r\n }\r\n\r\n return bankCounter;\r\n }\r\n\r\n const getBwicMonitorCounters = () => {\r\n const isSavedFiltersAlertOptionActive =\r\n bwicMonitorPageConfig?.filters.some(f => {\r\n const original = f.alertOption;\r\n const changed = editSavedFiltersPreferences[f.referenceName];\r\n const current = changed ?? original;\r\n\r\n return current !== AlertOption.Never\r\n });\r\n\r\n const canUseBwicMonitorAlerts = user.hasFeatures(SubscriptionFeature.BwicMonitorAlerts);\r\n\r\n return [\r\n canUseBwicMonitorAlerts ? Number(editPreferences.bwicByRatingAlertState !== AlertOption.Never) : 0,\r\n canUseBwicMonitorAlerts ? Number(isSavedFiltersAlertOptionActive) : 0,\r\n canUseBwicMonitorAlerts ? Number(editPreferences.secondaryWeeklySummaryAlertState === AlertOption.Weekly) : 0\r\n ];\r\n }\r\n\r\n const getInventoryCounters = () => {\r\n const isSavedFiltersAlertOptionActive =\r\n dealerInventoryPageConfig?.filters.some(f => {\r\n const original = f.alertOption;\r\n const changed = editSavedFiltersPreferences[f.referenceName];\r\n const current = changed ?? original;\r\n\r\n return current !== AlertOption.Never\r\n });\r\n\r\n const canUseInventoryAlerts = user.hasFeatures(SubscriptionFeature.InventoryAlerts);\r\n\r\n return [\r\n canUseInventoryAlerts ? Number(editPreferences.dealerInventoryAlertState !== AlertOption.Never) : 0,\r\n canUseInventoryAlerts ? Number(isSavedFiltersAlertOptionActive) : 0\r\n ];\r\n }\r\n\r\n const getPortfolioCounters = () => {\r\n const getActualFilter = (filter: UserConfigFilter) => {\r\n const original = (filter as PortfolioUserConfigFilter);\r\n const changed = portfolioSavedFilterAlerts[filter.referenceName];\r\n return changed ?? { bwicAlert: original.bwicAlertOption, inventoryAlert: original.dealerInventoryAlertOption };\r\n }\r\n\r\n const isSavedFiltersBwicAlertOptionActive = portfolioPageConfig?.filters.some(f =>\r\n getActualFilter(f).bwicAlert === AlertOption.Instant\r\n );\r\n const isSavedFiltersInventoryAlertOptionActive = portfolioPageConfig?.filters.some(f =>\r\n getActualFilter(f).inventoryAlert === AlertOption.Instant\r\n );\r\n\r\n return [\r\n Number(emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.portfolioBwicAlertState) !== AlertOption.Never),\r\n Number(emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.portfolioDealersInventoryAlertState) !== AlertOption.Never),\r\n Number(portfolioImAlertsAccess && emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.portfolioCleansingNoticeAlertState) !== AlertOption.Never),\r\n Number(portfolioImAlertsAccess && emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.portfolioIssuanceMonitorAlertState) !== AlertOption.Never),\r\n Number(portfolioImAlertsAccess && emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.portfolioOutOfRiPeriodAlertState) !== AlertOption.Never),\r\n Number(portfolioImAlertsAccess && emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.portfolioOutOfNcPeriodAlertState) !== AlertOption.Never),\r\n Number(portfolioImAlertsAccess && emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.portfolioRollerDeadlineAlertState) !== AlertOption.Never),\r\n user.hasFeatures(SubscriptionFeature.PortfolioAlerts) ? Number(isSavedFiltersBwicAlertOptionActive) : 0,\r\n user.hasFeatures(SubscriptionFeature.PortfolioAlerts) ? Number(isSavedFiltersInventoryAlertOptionActive) : 0\r\n ];\r\n }\r\n\r\n const getCounters = () => {\r\n switch (tabPath) {\r\n case EmailPreferencesTab.Dashboard:\r\n return [user.hasFeatures(SubscriptionFeature.CanUseDashboardAlerts)\r\n ? Number(editPreferences.dailyDashboardEmail !== AlertOption.Never)\r\n : 0\r\n ];\r\n case EmailPreferencesTab.BwicMonitor:\r\n return getBwicMonitorCounters();\r\n case EmailPreferencesTab.MyBwics:\r\n return [\r\n Number(emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.newBwicAlertState) !== AlertOption.Never),\r\n Number(emailPreferencesUtils.convertAlertEnabledStateToAlertOption(editPreferences.bwicReminderAlertState) !== AlertOption.Never)\r\n ]\r\n case EmailPreferencesTab.IssuanceMonitor:\r\n const alertsCount = [\r\n Number(Boolean(editIssuanceMonitorPreferences?.imAlertConfig.value.alertOption) && editIssuanceMonitorPreferences?.imAlertConfig.value.alertOption !== AlertOption.Never),\r\n Number(Boolean(editIssuanceMonitorPreferences?.newTransactionAlertConfig.value.alertOption) && editIssuanceMonitorPreferences?.newTransactionAlertConfig.value.alertOption !== AlertOption.Never),\r\n Number(Boolean(editIssuanceMonitorPreferences?.weeklyStatsAlertConfig.value.emailOption) && editIssuanceMonitorPreferences?.weeklyStatsAlertConfig.value.emailOption !== StatisticsAlertOption.Never),\r\n Number(Boolean(editIssuanceMonitorPreferences?.filtersConfig.ImFilter.value) && getDefaultGlobalAlertStatus(editIssuanceMonitorPreferences?.filtersConfig.ImFilter.value) !== AlertOption.Never)\r\n ];\r\n\r\n return withImApAccess ? alertsCount : alertsCount.map(i => 0);\r\n case EmailPreferencesTab.ArrangerPipeline:\r\n return [\r\n withImApAccess\r\n ? Number(Boolean(\r\n editArrangerPipelinePreferences?.apAlertConfig.value.alertOption !== AlertOption.Never\r\n ))\r\n : 0\r\n ];\r\n case EmailPreferencesTab.Portfolio: return getPortfolioCounters();\r\n case EmailPreferencesTab.DealerInventory: return getInventoryCounters();\r\n case EmailPreferencesTab.CloManagers:\r\n return getCloManagerCounters();\r\n case EmailPreferencesTab.Banks:\r\n return getBanksCounters();\r\n default:\r\n return [];\r\n }\r\n }\r\n\r\n const counters = getCounters();\r\n const count = arrayUtils.sum(counters, (item) => item);\r\n\r\n return (\r\n {title} ({count}/{counters.length})}\r\n path={routes.profileNotificationsTab(tabPath)}\r\n disabled={isRequesting(requestStateGetPreferences) || disabled}\r\n />\r\n )\r\n}\r\n","import { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { AlertOption } from '../../../../../types/email-preferences/EmailPreferences';\r\nimport { CompanyAlertsValue } from '../../../../../types/user-config/UserConfig';\r\nimport { UserConfigType } from '../../../../../types/user-config/UserConfigType';\r\nimport { ActionBlocker } from '../../../../access/ActionBlocker';\r\nimport { RadioButton } from '../../../../controls';\r\n\r\ninterface Props {\r\n type: UserConfigType;\r\n option: AlertOption;\r\n allOptions: CompanyAlertsValue[];\r\n onChange: (type: UserConfigType, option: AlertOption) => void;\r\n disabled?: boolean;\r\n feature?: SubscriptionFeature;\r\n features?: SubscriptionFeature[];\r\n}\r\n\r\nexport function MultiTableHeaderRadioButton({\r\n type,\r\n option,\r\n allOptions,\r\n onChange,\r\n disabled,\r\n feature,\r\n features,\r\n}: Props) {\r\n const selected = allOptions?.some(x => x.alertOption === option);\r\n const partially = allOptions?.some(x => x.alertOption !== option);\r\n\r\n const handleClick = () => {\r\n onChange(type, option);\r\n };\r\n\r\n return (\r\n \r\n {blocked => (\r\n {}}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n","import { alertOptionTooltipText } from '../../../../../../constants/amr-pipeline/alertOptions';\r\nimport { alertDescriptions } from '../../../../../../constants/cloManagers/alertDescriptions';\r\nimport { cloImApRequiredFeatures } from '../../../../../../constants/cloManagers/cloImApRequiredFeatures';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { CompanyAlertsValue, SecondaryStatsAlertsValue} from '../../../../../../types/user-config/UserConfig';\r\nimport { UserConfigType } from '../../../../../../types/user-config/UserConfigType';\r\nimport { ActionBlocker } from '../../../../../access/ActionBlocker';\r\nimport EmailInfoTooltip from \"../../../../../common/EmailInfoTooltip\";\r\nimport { ColumnBuilder } from '../../../../../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { IColumnDefinition } from '../../../../../bidding/common/table/types/ColumnDefinition';\r\nimport { OnHoverTooltip } from '../../../../../common';\r\nimport { RadioButton } from '../../../../../controls';\r\nimport { MultiTableHeaderRadioButton } from '../MultiTableHeaderRadioButton';\r\n\r\ninterface ManagerColumns {\r\n legalName: string;\r\n cloManagerImAlerts: CompanyAlertsValue;\r\n cloManagerApAlerts: CompanyAlertsValue;\r\n cloManagerBwicAlerts: SecondaryStatsAlertsValue;\r\n cloManagerDiAlerts: SecondaryStatsAlertsValue;\r\n}\r\n\r\nconst cloManagersImAlertsColumnsDefinition: IColumnDefinition[] =\r\n [\r\n {\r\n columnKey: \"managerName\",\r\n renderColumnHeaderContent: () => \"Manager Name\",\r\n renderColumnContent: (alert) => {\r\n return (\r\n
\r\n \r\n {alert.legalName}\r\n \r\n
\r\n );\r\n },\r\n className: \"data-list-cell-xl\",\r\n sortingField: \"legalName\",\r\n sortingType: \"string\",\r\n stickLeft: true,\r\n },\r\n {\r\n columnKey: \"im-description\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Issuance Monitor{\" \"}\r\n \r\n \r\n ),\r\n renderColumnContent: (alert) => \"\",\r\n className: \"data-list-cell-lg\",\r\n },\r\n {\r\n columnKey: \"im-never\",\r\n renderColumnHeaderContent: ({\r\n cloManagerImAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerImAlerts;\r\n const name = \"im-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerIssuanceMonitorAlert,\r\n companyReferenceName,\r\n AlertOption.Never\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control data-list-cell-xs\",\r\n },\r\n {\r\n columnKey: \"im-daily\",\r\n renderColumnHeaderContent: ({\r\n cloManagerImAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerImAlerts;\r\n const name = \"im-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerIssuanceMonitorAlert,\r\n companyReferenceName,\r\n AlertOption.Daily\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control\",\r\n },\r\n {\r\n columnKey: \"im-instant\",\r\n renderColumnHeaderContent: ({\r\n cloManagerImAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerImAlerts;\r\n const name = \"im-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerIssuanceMonitorAlert,\r\n companyReferenceName,\r\n AlertOption.Instant\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-sm-01 data-list-cell-control data-list-cell-right-border\",\r\n },\r\n ];\r\n\r\nconst cloManagersApAlertsColumnsDefinition: IColumnDefinition[] =\r\n [\r\n {\r\n columnKey: \"ap-description\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Arranger Pipeline{\" \"}\r\n \r\n \r\n ),\r\n renderColumnContent: (alert) => \"\",\r\n className: \"data-list-cell-lg\",\r\n },\r\n {\r\n columnKey: \"ap-never\",\r\n renderColumnHeaderContent: ({\r\n cloManagerApAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerApAlerts;\r\n const name = \"ap-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerArrangerPipelineAlert,\r\n companyReferenceName,\r\n AlertOption.Never\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control data-list-cell-xs\",\r\n },\r\n {\r\n columnKey: \"ap-daily\",\r\n renderColumnHeaderContent: ({\r\n cloManagerApAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerApAlerts;\r\n const name = \"ap-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerArrangerPipelineAlert,\r\n companyReferenceName,\r\n AlertOption.Daily\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control\",\r\n },\r\n {\r\n columnKey: \"ap-instant\",\r\n renderColumnHeaderContent: ({\r\n cloManagerApAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerApAlerts;\r\n const name = \"ap-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerArrangerPipelineAlert,\r\n companyReferenceName,\r\n AlertOption.Instant\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-sm-01 data-list-cell-control\",\r\n },\r\n ];\r\n\r\nconst cloManagersBwicAlertsColumnsDefinition: IColumnDefinition[] = [\r\n {\r\n columnKey: \"bwic-description\",\r\n renderColumnHeaderContent: () => (\r\n \r\n BWIC\r\n \r\n \r\n ),\r\n renderColumnContent: () => \"\",\r\n className: \"data-list-cell-xs-sm\",\r\n },\r\n {\r\n columnKey: \"bwic-never\",\r\n renderColumnHeaderContent: ({\r\n cloManagerBwicAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerBwicAlerts;\r\n const name = \"bwic-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerBwicAlert,\r\n companyReferenceName,\r\n AlertOption.Never\r\n )\r\n }\r\n />\r\n )}\r\n \r\n )\r\n },\r\n className: \"data-list-cell-control\",\r\n },\r\n {\r\n columnKey: \"bwic-instant\",\r\n renderColumnHeaderContent: ({\r\n cloManagerBwicAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerBwicAlerts;\r\n const name = \"bwic-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerBwicAlert,\r\n companyReferenceName,\r\n AlertOption.Instant\r\n )\r\n }\r\n />\r\n )}\r\n \r\n )\r\n },\r\n className: \"data-list-cell-sm data-list-cell-control data-list-cell-right-border\",\r\n },\r\n];\r\n\r\nconst cloManagersDiAlertsColumnsDefinition: IColumnDefinition[] = [\r\n {\r\n columnKey: \"di-description\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Inventory\r\n \r\n \r\n ),\r\n renderColumnContent: () => \"\",\r\n className: \"data-list-cell-sm-01\",\r\n },\r\n {\r\n columnKey: \"di-never\",\r\n renderColumnHeaderContent: ({\r\n cloManagerDealerInventoryAlert,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerDiAlerts;\r\n const name = \"di-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerDealerInventoryAlert,\r\n companyReferenceName,\r\n AlertOption.Never,\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control\",\r\n },\r\n {\r\n columnKey: \"di-instant\",\r\n renderColumnHeaderContent: ({\r\n cloManagerDealerInventoryAlert,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.cloManagerDiAlerts;\r\n const name = \"di-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.cloManagerDealerInventoryAlert,\r\n companyReferenceName,\r\n AlertOption.Instant\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-sm data-list-cell-control data-list-cell-right-border\",\r\n },\r\n];\r\n\r\nexport const cloManagerAlertsColumns = [\r\n ...cloManagersBwicAlertsColumnsDefinition,\r\n ...cloManagersDiAlertsColumnsDefinition,\r\n ...cloManagersImAlertsColumnsDefinition,\r\n ...cloManagersApAlertsColumnsDefinition,\r\n].map((c) => new ColumnBuilder(c));\r\n","import { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { manageEmailPreferencesActions } from '../../../../../../actions/manage-email-preferences.actions';\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { UserConfigType } from '../../../../../../types/user-config/UserConfigType';\r\nimport { Table } from '../../../../../bidding/common/table';\r\nimport { SearchInput, EmptyPlaceholder } from '../../../../../common';\r\nimport { cloManagerAlertsColumns } from './clo-managers-im-alerts.columns';\r\nimport { CompanyAlertsValue, SecondaryStatsAlertsValue } from '../../../../../../types/user-config/UserConfig';\r\n\r\ninterface FilterUpdatesTableProps {\r\n disabled?: boolean;\r\n}\r\n\r\nexport const CloManagerImAlertsSection = ({ disabled }: FilterUpdatesTableProps) => {\r\n const dispatch = useDispatch();\r\n const managers = useAppSelector(s => s.manageEmailPreferences.mangers);\r\n const cloManagerImAlerts = useAppSelector(\r\n s => s.manageEmailPreferences.editCloManagersPreferences?.cloManagerIssuanceMonitorAlert.value,\r\n );\r\n const cloManagerApAlerts = useAppSelector(\r\n s => s.manageEmailPreferences.editCloManagersPreferences?.cloManagerArrangerPipelineAlert.value,\r\n );\r\n const cloManagerBwicAlerts = useAppSelector(\r\n s => s.manageEmailPreferences.editCloManagersPreferences?.cloManagerBwicAlert.value,\r\n );\r\n const cloManagerDealerInventoryAlert = useAppSelector(\r\n s => s.manageEmailPreferences.editCloManagersPreferences?.cloManagerDealerInventoryAlert.value,\r\n );\r\n const alertsList = managers?.map(({referenceName, legalName}) => ({\r\n legalName,\r\n cloManagerImAlerts: cloManagerImAlerts?.find(alert => alert.companyReferenceName === referenceName),\r\n cloManagerApAlerts: cloManagerApAlerts?.find(alert => alert.companyReferenceName === referenceName),\r\n cloManagerBwicAlerts: cloManagerBwicAlerts?.find(alert => alert.companyReferenceName === referenceName),\r\n cloManagerDiAlerts: cloManagerDealerInventoryAlert?.find(alert => alert.companyReferenceName === referenceName),\r\n }));\r\n\r\n const [searchTerm, setSearchTerm] = useState('');\r\n\r\n const getManagers = () => {\r\n return alertsList?.filter(({ legalName }) =>\r\n legalName?.toLocaleLowerCase().includes(searchTerm.toLocaleLowerCase()),\r\n );\r\n };\r\n \r\n const setAlertsOptions = (\r\n type: UserConfigType,\r\n mapCallback: (a: CompanyAlertsValue) => CompanyAlertsValue\r\n ) => {\r\n switch(type) {\r\n case UserConfigType.cloManagerIssuanceMonitorAlert:\r\n dispatch(\r\n manageEmailPreferencesActions.setCloManagersIssuanceMonitorAlert({\r\n type,\r\n value: cloManagerImAlerts!.map(mapCallback),\r\n }),\r\n );\r\n break;\r\n case UserConfigType.cloManagerArrangerPipelineAlert:\r\n dispatch(\r\n manageEmailPreferencesActions.setCloManagersArrangerPipelineAlert({\r\n type,\r\n value: cloManagerApAlerts!.map(mapCallback),\r\n }),\r\n ); \r\n break;\r\n case UserConfigType.cloManagerBwicAlert:\r\n dispatch(\r\n manageEmailPreferencesActions.setCloManagersBwicAlert({\r\n type,\r\n value: cloManagerBwicAlerts!.map(mapCallback) as SecondaryStatsAlertsValue[],\r\n }),\r\n ); \r\n break;\r\n case UserConfigType.cloManagerDealerInventoryAlert:\r\n dispatch(\r\n manageEmailPreferencesActions.setCloManagersDealerInventoryAlert({\r\n type,\r\n value: cloManagerDealerInventoryAlert!.map(mapCallback) as SecondaryStatsAlertsValue[],\r\n }),\r\n ); \r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const onColumnClick = (type: UserConfigType, referenceName: string, alertOption: AlertOption) => {\r\n const mapList = (a: CompanyAlertsValue) => a.companyReferenceName === referenceName ? { ...a, alertOption } : a;\r\n setAlertsOptions(type, mapList);\r\n };\r\n\r\n const onHeaderClick = (type: UserConfigType, option: AlertOption) => {\r\n const mapList = (a: CompanyAlertsValue) => ({ ...a, alertOption: option });\r\n setAlertsOptions(type, mapList);\r\n };\r\n\r\n return (\r\n <>\r\n setSearchTerm('')}\r\n value={searchTerm}\r\n onChange={(searchTerm: string) => setSearchTerm(searchTerm)}\r\n placeholder=\"Search by managers\"\r\n />\r\n {getManagers()?.length ? (\r\n ({\r\n cloManagerImAlerts,\r\n cloManagerApAlerts,\r\n cloManagerBwicAlerts,\r\n cloManagerDealerInventoryAlert,\r\n onHeaderClick,\r\n disabled,\r\n })}\r\n createSecurityCustomArgs={() => ({\r\n onColumnClick,\r\n disabled,\r\n })}\r\n className=\"data-list-striped\"\r\n dataItems={getManagers()}\r\n sticky={true}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { useDispatch } from \"react-redux\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { UnsubscribeAllButton } from \"../UnsubscribeAllButton\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { UserConfigFilter } from \"../../../../../../types/user-config/UserConfigFilter\";\r\n\r\ninterface Props {\r\n disabled?: boolean;\r\n filterAlertsStatuses?: UserConfigFilter[];\r\n}\r\n\r\nexport function UnsubscribeInventoryAlertsButton({ disabled, filterAlertsStatuses }: Props) {\r\n const dispatch = useDispatch();\r\n\r\n const dealerInventoryAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.dealerInventoryAlertState);\r\n const editSavedFiltersPreferences = useAppSelector(s => s.manageEmailPreferences.editSavedFiltersPreferences);\r\n const hasDealerInventoryAlerts = dealerInventoryAlertState !== AlertOption.Never;\r\n const hasActiveFilterAlerts = filterAlertsStatuses?.some(f =>\r\n editSavedFiltersPreferences[f.referenceName]\r\n ? editSavedFiltersPreferences[f.referenceName] !== AlertOption.Never\r\n : f.alertOption !== AlertOption.Never\r\n );\r\n\r\n const handleUnsubscribeAll = () => {\r\n let newFilterAlerts: Record = {};\r\n\r\n filterAlertsStatuses?.forEach(f => {\r\n newFilterAlerts[f.referenceName] = AlertOption.Never;\r\n })\r\n\r\n if (hasActiveFilterAlerts) {\r\n dispatch(manageEmailPreferencesActions.savedFilterAlertOptionChange(newFilterAlerts));\r\n }\r\n if (hasDealerInventoryAlerts) {\r\n dispatch(manageEmailPreferencesActions.setDealerInventoryAlertState(AlertOption.Never));\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n}","import { bankImApRequiredFeatures } from \"../../../../../../constants/banks/bankImApRequiredFeatures\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport {\r\n CompanyAlertsValue,\r\n SecondaryStatsAlertsValue,\r\n} from \"../../../../../../types/user-config/UserConfig\";\r\nimport { UserConfigType } from \"../../../../../../types/user-config/UserConfigType\";\r\nimport { ActionBlocker } from \"../../../../../access/ActionBlocker\";\r\nimport EmailInfoTooltip from \"../../../../../common/EmailInfoTooltip\";\r\nimport { ColumnBuilder } from \"../../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { IColumnDefinition } from \"../../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { OnHoverTooltip } from \"../../../../../common\";\r\nimport { RadioButton } from \"../../../../../controls\";\r\nimport { MultiTableHeaderRadioButton } from \"../MultiTableHeaderRadioButton\";\r\n\r\ninterface BanksColumns {\r\n legalName: string;\r\n bankDealerInventoryAlert: SecondaryStatsAlertsValue;\r\n bankImAlerts: CompanyAlertsValue;\r\n bankApAlerts: CompanyAlertsValue;\r\n}\r\n\r\nconst banksDiAlertsColumnsDefinition: IColumnDefinition[] = [\r\n {\r\n columnKey: \"managerName\",\r\n renderColumnHeaderContent: () => \"Bank Name\",\r\n renderColumnContent: (alert) => {\r\n return (\r\n
\r\n \r\n {alert.legalName}\r\n \r\n
\r\n );\r\n },\r\n className: \"data-list-cell-xl\",\r\n sortingField: \"legalName\",\r\n sortingType: \"string\",\r\n stickLeft: true,\r\n },\r\n {\r\n columnKey: \"di-description\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Inventory\r\n \r\n \r\n ),\r\n renderColumnContent: () => \"\",\r\n className: \"data-list-cell-sm-01\",\r\n },\r\n {\r\n columnKey: \"di-never\",\r\n renderColumnHeaderContent: ({\r\n bankDealerInventoryAlert,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.bankDealerInventoryAlert;\r\n const name = \"di-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.bankDealerInventoryAlert,\r\n companyReferenceName,\r\n AlertOption.Never\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control\",\r\n },\r\n {\r\n columnKey: \"di-instant\",\r\n renderColumnHeaderContent: ({\r\n bankDealerInventoryAlert,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.bankDealerInventoryAlert;\r\n const name = \"di-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.bankDealerInventoryAlert,\r\n companyReferenceName,\r\n AlertOption.Instant\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className:\r\n \"data-list-cell-sm data-list-cell-control data-list-cell-right-border\",\r\n },\r\n];\r\n\r\nconst banksImAlertsColumnsDefinition: IColumnDefinition[] = [\r\n {\r\n columnKey: \"im-description\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Issuance Monitor{\" \"}\r\n \r\n \r\n ),\r\n renderColumnContent: (alert) => \"\",\r\n className: \"data-list-cell-lg\",\r\n },\r\n {\r\n columnKey: \"im-never\",\r\n renderColumnHeaderContent: ({\r\n bankImAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.bankImAlerts;\r\n const name = \"im-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.bankIssuanceMonitorAlert,\r\n companyReferenceName,\r\n AlertOption.Never\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control data-list-cell-xs\",\r\n },\r\n {\r\n columnKey: \"im-daily\",\r\n renderColumnHeaderContent: ({\r\n bankImAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.bankImAlerts;\r\n const name = \"im-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.bankIssuanceMonitorAlert,\r\n companyReferenceName,\r\n AlertOption.Daily\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control\",\r\n },\r\n {\r\n columnKey: \"im-instant\",\r\n renderColumnHeaderContent: ({\r\n bankImAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.bankImAlerts;\r\n const name = \"im-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.bankIssuanceMonitorAlert,\r\n companyReferenceName,\r\n AlertOption.Instant\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className:\r\n \"data-list-cell-sm-01 data-list-cell-control data-list-cell-right-border\",\r\n },\r\n];\r\n\r\nconst banksApAlertsColumnsDefinition: IColumnDefinition[] = [\r\n {\r\n columnKey: \"ap-description\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Arranger Pipeline{\" \"}\r\n \r\n \r\n ),\r\n renderColumnContent: (alert) => \"\",\r\n className: \"data-list-cell-lg\",\r\n },\r\n {\r\n columnKey: \"ap-never\",\r\n renderColumnHeaderContent: ({\r\n bankApAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.bankApAlerts;\r\n const name = \"ap-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.bankArrangerPipelineAlert,\r\n companyReferenceName,\r\n AlertOption.Never\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control data-list-cell-xs\",\r\n },\r\n {\r\n columnKey: \"ap-daily\",\r\n renderColumnHeaderContent: ({\r\n bankApAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.bankApAlerts;\r\n const name = \"ap-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.bankArrangerPipelineAlert,\r\n companyReferenceName,\r\n AlertOption.Daily\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-control\",\r\n },\r\n {\r\n columnKey: \"ap-instant\",\r\n renderColumnHeaderContent: ({\r\n bankApAlerts,\r\n onHeaderClick,\r\n disabled,\r\n }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (alertValue, { disabled, onColumnClick }) => {\r\n const { companyReferenceName, alertOption } =\r\n alertValue.bankApAlerts;\r\n const name = \"ap-\" + companyReferenceName;\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n onColumnClick(\r\n UserConfigType.bankArrangerPipelineAlert,\r\n companyReferenceName,\r\n AlertOption.Instant\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: \"data-list-cell-sm-01 data-list-cell-control\",\r\n },\r\n];\r\n\r\nexport const banksAlertsColumns = [\r\n ...banksDiAlertsColumnsDefinition,\r\n ...banksImAlertsColumnsDefinition,\r\n ...banksApAlertsColumnsDefinition,\r\n].map((c) => new ColumnBuilder(c));\r\n","import { useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { UserConfigType } from \"../../../../../../types/user-config/UserConfigType\";\r\nimport { Table } from \"../../../../../bidding/common/table\";\r\nimport { SearchInput, EmptyPlaceholder } from \"../../../../../common\";\r\nimport {\r\n CompanyAlertsValue,\r\n SecondaryStatsAlertsValue,\r\n} from \"../../../../../../types/user-config/UserConfig\";\r\nimport { banksAlertsColumns } from \"./banks-alerts.columns\";\r\n\r\ninterface FilterUpdatesTableProps {\r\n disabled?: boolean;\r\n}\r\n\r\nexport const BanksAlertsSection = ({ disabled }: FilterUpdatesTableProps) => {\r\n const dispatch = useDispatch();\r\n const banks = useAppSelector((s) => s.manageEmailPreferences.banks);\r\n\r\n const bankImAlerts = useAppSelector(\r\n (s) =>\r\n s.manageEmailPreferences.editBanksPreferences\r\n ?.bankIssuanceMonitorAlert.value\r\n );\r\n const bankApAlerts = useAppSelector(\r\n (s) =>\r\n s.manageEmailPreferences.editBanksPreferences\r\n ?.bankArrangerPipelineAlert.value\r\n );\r\n const bankDealerInventoryAlert = useAppSelector(\r\n (s) =>\r\n s.manageEmailPreferences.editBanksPreferences\r\n ?.bankDealerInventoryAlert.value\r\n );\r\n\r\n const alertsList = banks?.map(({ referenceName, legalName }) => ({\r\n legalName,\r\n bankImAlerts: bankImAlerts?.find(\r\n (alert) => alert.companyReferenceName === referenceName\r\n ),\r\n bankApAlerts: bankApAlerts?.find(\r\n (alert) => alert.companyReferenceName === referenceName\r\n ),\r\n bankDealerInventoryAlert: bankDealerInventoryAlert?.find(\r\n (alert) => alert.companyReferenceName === referenceName\r\n ),\r\n }));\r\n\r\n const [searchTerm, setSearchTerm] = useState(\"\");\r\n\r\n const getBanks = () => {\r\n return alertsList?.filter(({ legalName }) =>\r\n legalName\r\n ?.toLocaleLowerCase()\r\n .includes(searchTerm.toLocaleLowerCase())\r\n );\r\n };\r\n\r\n const setAlertsOptions = (\r\n type: UserConfigType,\r\n mapCallback: (a: CompanyAlertsValue) => CompanyAlertsValue\r\n ) => {\r\n switch (type) {\r\n case UserConfigType.bankDealerInventoryAlert:\r\n dispatch(\r\n manageEmailPreferencesActions.setBanksDealerInventoryAlert({\r\n type,\r\n value: bankDealerInventoryAlert!.map(\r\n mapCallback\r\n ) as SecondaryStatsAlertsValue[],\r\n })\r\n );\r\n break;\r\n case UserConfigType.bankIssuanceMonitorAlert:\r\n dispatch(\r\n manageEmailPreferencesActions.setBanksIssuanceMonitorAlert({\r\n type,\r\n value: bankImAlerts!.map(mapCallback),\r\n })\r\n );\r\n break;\r\n case UserConfigType.bankArrangerPipelineAlert:\r\n dispatch(\r\n manageEmailPreferencesActions.setBanksArrangerPipelineAlert(\r\n {\r\n type,\r\n value: bankApAlerts!.map(mapCallback),\r\n }\r\n )\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const onColumnClick = (\r\n type: UserConfigType,\r\n referenceName: string,\r\n alertOption: AlertOption\r\n ) => {\r\n const mapList = (a: CompanyAlertsValue) =>\r\n a.companyReferenceName === referenceName\r\n ? { ...a, alertOption }\r\n : a;\r\n setAlertsOptions(type, mapList);\r\n };\r\n\r\n const onHeaderClick = (type: UserConfigType, option: AlertOption) => {\r\n const mapList = (a: CompanyAlertsValue) => ({ ...a, alertOption: option });\r\n setAlertsOptions(type, mapList);\r\n };\r\n\r\n return (\r\n <>\r\n setSearchTerm(\"\")}\r\n value={searchTerm}\r\n onChange={(searchTerm: string) => setSearchTerm(searchTerm)}\r\n placeholder=\"Search by banks\"\r\n />\r\n {getBanks()?.length ? (\r\n ({\r\n bankImAlerts,\r\n bankApAlerts,\r\n bankDealerInventoryAlert,\r\n onHeaderClick,\r\n disabled,\r\n })}\r\n createSecurityCustomArgs={() => ({\r\n onColumnClick,\r\n disabled,\r\n })}\r\n className=\"data-list-striped\"\r\n dataItems={getBanks()}\r\n sticky\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Route, Switch, useHistory } from 'react-router';\r\nimport { useParams } from 'react-router-dom';\r\nimport { manageEmailPreferencesActions } from '../../../../actions/manage-email-preferences.actions';\r\nimport { roles, routes } from '../../../../constants';\r\nimport { useAppSelector } from '../../../../effects/useAppSelector';\r\nimport { user } from '../../../../user';\r\nimport { isRequesting, isRequestNone } from '../../../../utils';\r\nimport { TabList } from '../../../bidding/common/tab-list';\r\nimport { Preloader } from '../../../common';\r\nimport { MyBwicsTab } from './tabs/MyBwicsTab';\r\nimport { DashboardEmailTab } from './tabs/DashboardEmailTab';\r\nimport { BwicMonitorAlertsTab } from './tabs/bwic-monitor/BwicMonitorAlertsTab';\r\nimport { IssuanceMonitorTab } from './tabs/IssuanceMonitorTab';\r\nimport { PortfolioTab } from './tabs/portfolio/PortfolioTab';\r\nimport { EmailPreferencesTabItem } from './tabs/EmailPreferencesTabItem';\r\nimport { CloManagerTab } from './tabs/clo-managers/CloManagerTab';\r\nimport { usePageConfig } from '../../../common/pageConfig/usePageConfig';\r\nimport { DealerInventoryAlertsTab } from './tabs/dealer-inventory/DealerInventoryAlertsTab';\r\nimport { BanksTab } from './tabs/banks/BanksTab';\r\nimport { AdaptiveHorizontalSlider } from '../../../common/AdaptiveHorizontalSlider';\r\nimport { ArrangerPipelineTab } from './tabs/ArrangerPipelineTab';\r\n\r\nexport enum EmailPreferencesTab {\r\n Dashboard = 'dashboard',\r\n BwicMonitor = 'bwicMonitor',\r\n MyBwics = 'myBwics',\r\n IssuanceMonitor = 'issuanceMonitor',\r\n DealerInventory = 'dealerInventory',\r\n CloManagers = 'cloManagers',\r\n Portfolio = 'portfolios',\r\n Banks = 'banks',\r\n ArrangerPipeline = 'arrangerPipeline',\r\n}\r\n\r\nconst Tabs = [\r\n {\r\n title: 'Dashboard',\r\n type: EmailPreferencesTab.Dashboard,\r\n component: DashboardEmailTab,\r\n },\r\n {\r\n title: 'BWIC Monitor',\r\n type: EmailPreferencesTab.BwicMonitor,\r\n component: BwicMonitorAlertsTab,\r\n },\r\n {\r\n title: 'My BWICs',\r\n type: EmailPreferencesTab.MyBwics,\r\n component: MyBwicsTab,\r\n },\r\n {\r\n title: 'Issuance Monitor',\r\n type: EmailPreferencesTab.IssuanceMonitor,\r\n component: IssuanceMonitorTab,\r\n },\r\n {\r\n title: 'Arranger Pipeline',\r\n type: EmailPreferencesTab.ArrangerPipeline,\r\n component: ArrangerPipelineTab,\r\n },\r\n {\r\n title: 'Inventory',\r\n type: EmailPreferencesTab.DealerInventory,\r\n component: DealerInventoryAlertsTab,\r\n },\r\n {\r\n title: 'Portfolio',\r\n type: EmailPreferencesTab.Portfolio,\r\n component: PortfolioTab,\r\n },\r\n {\r\n title: 'CLO Managers',\r\n type: EmailPreferencesTab.CloManagers,\r\n component: CloManagerTab,\r\n },\r\n {\r\n title: 'Banks',\r\n type: EmailPreferencesTab.Banks,\r\n component: BanksTab,\r\n },\r\n];\r\n\r\nexport const EmailPreferencesContent = () => {\r\n const dispatch = useDispatch();\r\n const { tab } = useParams<{ tab: string }>();\r\n const history = useHistory();\r\n\r\n const requestStateGetPreferences = useAppSelector(s => s.manageEmailPreferences.requestStateGetPreferences);\r\n const hasPortfolio = useAppSelector(s => s.manageEmailPreferences.editPreferences.hasPortfolio);\r\n const availableTabs = Tabs.filter(({ type }) => {\r\n if (\r\n type === EmailPreferencesTab.IssuanceMonitor ||\r\n type === EmailPreferencesTab.ArrangerPipeline\r\n ) {\r\n return user.hasRoles(...roles.issuanceMonitorAccess());\r\n }\r\n\r\n if (type === EmailPreferencesTab.Portfolio) {\r\n return hasPortfolio && !user.hasSingleRole(roles.SellerAdministrator);\r\n }\r\n\r\n if (type === EmailPreferencesTab.CloManagers) {\r\n return user.hasRoles(...roles.cloManagersAccess());\r\n }\r\n\r\n if (type === EmailPreferencesTab.DealerInventory) {\r\n return user.hasRoles(...roles.seller(), roles.Administrator, roles.Viewer);\r\n }\r\n\r\n if (type === EmailPreferencesTab.Banks) {\r\n return user.hasRoles(...roles.banksAccess());\r\n }\r\n\r\n return true;\r\n });\r\n const selectedTabIndex = availableTabs.findIndex(t => t.type === tab);\r\n\r\n usePageConfig();\r\n\r\n const withIssuanceMonitorAccess = user.hasRoles(...roles.issuanceMonitorAccess());\r\n\r\n useEffect(() => () => {\r\n dispatch(manageEmailPreferencesActions.reset())\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (isRequestNone(requestStateGetPreferences)) {\r\n dispatch(manageEmailPreferencesActions.getInitialDataRequest(withIssuanceMonitorAccess));\r\n }\r\n }, [dispatch, requestStateGetPreferences, withIssuanceMonitorAccess]);\r\n\r\n useEffect(() => {\r\n if (!tab) {\r\n history.replace(routes.profileNotificationsTab(EmailPreferencesTab.Dashboard))\r\n }\r\n }, [history, tab]);\r\n\r\n return (\r\n \r\n \r\n \r\n {availableTabs.map(tab => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n {availableTabs.map(tab => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { isEqual } from 'lodash';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { manageEmailPreferencesActions } from '../../../../../actions/manage-email-preferences.actions';\r\nimport { useAppSelector } from '../../../../../effects/useAppSelector';\r\nimport { AlertOption } from '../../../../../types/email-preferences/EmailPreferences';\r\nimport { isRequesting } from '../../../../../utils';\r\nimport { RouteLeavingGuard } from '../../../../routing';\r\nimport { EmailPreferencesRadioGroup } from './EmailPreferencesRadioGroup';\r\nimport { SaveButton } from './SaveButton';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\n\r\nexport function DashboardEmailTab() {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const dailyDashboardEmail = useAppSelector(s => s.manageEmailPreferences.editPreferences.dailyDashboardEmail);\r\n const initialPreferences = useAppSelector(s => s.manageEmailPreferences.initialPreferences.dailyDashboardEmail);\r\n const isRequestingSavePreferences = useAppSelector(s => isRequesting(s.manageEmailPreferences.requestStateSaveEditPreferences));\r\n\r\n const hasChanges = !isEqual(dailyDashboardEmail, initialPreferences);\r\n\r\n const save = () => dispatch(manageEmailPreferencesActions.saveEmailPreferencesRequest());\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n dispatch(manageEmailPreferencesActions.setCheckedDailyDashboardEmail(alertOption))}\r\n />\r\n {\r\n history.push(pathname);\r\n dispatch(manageEmailPreferencesActions.rollbackDashboardEmails())\r\n }}\r\n shouldBlockNavigation={() => hasChanges}\r\n />\r\n \r\n )\r\n}\r\n","import { useDispatch } from \"react-redux\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { isRequestNone, isRequesting } from \"../../../../../../utils/request-state.utils\";\r\nimport { BwicMonitorAlertsTable } from \"./BwicMonitorAlertsTable\"\r\nimport { PageConfigType } from '../../../../../../types/page-config/PageConfigType';\r\nimport { BwicFilterType } from '../../../../../../types/filters/FilterState';\r\nimport { usePageConfig } from '../../../../../common/pageConfig/usePageConfig';\r\nimport { SavedFiltersAlerts } from '../../SavedFiltersAlerts';\r\nimport { BwicMonitorAlertsSaveButton } from './BwicMonitorAlertsSaveButton';\r\nimport { UserConfigFilter } from '../../../../../../types/user-config/UserConfigFilter';\r\nimport { Preloader } from '../../../../../common/Preloader';\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { textLabels } from \"../../../../../../constants/text-labels\";\r\nimport { BwicMonitorSecondaryWeeklySummary } from \"./BwicMonitorSecondaryWeeklySummary\";\r\n\r\nexport const BwicMonitorAlertsTab = () => {\r\n const dispatch = useDispatch();\r\n\r\n const filter = useAppSelector(s => s.filters.bwicMonitor.filter);\r\n const visibleFilters = useAppSelector(s => s.filters.bwicMonitor.visibleFilters);\r\n const savePreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n\r\n const { config, requestState, saveAlerts, updateRequestState } = usePageConfig(\r\n PageConfigType.BwicMonitorAll,\r\n true,\r\n BwicFilterType.BwicMonitor\r\n );\r\n\r\n const handleSave = (updatedFilters?: UserConfigFilter[]) => {\r\n dispatch(manageEmailPreferencesActions.saveEmailPreferencesRequest());\r\n if (updatedFilters?.length) {\r\n saveAlerts(updatedFilters);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { isEqual } from 'lodash';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { manageEmailPreferencesActions } from '../../../../../actions/manage-email-preferences.actions';\r\nimport { useAppSelector } from '../../../../../effects/useAppSelector';\r\nimport { AlertOption } from '../../../../../types/email-preferences/EmailPreferences';\r\nimport { isRequesting } from '../../../../../utils';\r\nimport { RouteLeavingGuard } from '../../../../routing';\r\nimport { EmailPreferencesRadioGroup } from './EmailPreferencesRadioGroup';\r\nimport { SaveButton } from './SaveButton';\r\nimport { UnsubscribeAllButton } from './UnsubscribeAllButton';\r\nimport { emailPreferencesUtils } from '../../../../../utils/email-preferences.utils';\r\n\r\nexport function MyBwicsTab() {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const isRequestingSavePreferences = useAppSelector(s => isRequesting(s.manageEmailPreferences.requestStateSaveEditPreferences));\r\n const newBwicAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.newBwicAlertState);\r\n const bwicReminderAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.bwicReminderAlertState);\r\n const initialPreferences = useAppSelector(s => s.manageEmailPreferences.initialPreferences);\r\n\r\n const handleNewBwicNotificationsChange = (alertOption: AlertOption) => {\r\n const status = emailPreferencesUtils.convertAlertOptionToAlertEnabledState(alertOption);\r\n dispatch(manageEmailPreferencesActions.setNewBiwicAlerts(status));\r\n };\r\n\r\n const handleBwicReminderNotificationsChange = (alertOption: AlertOption) => {\r\n const status = emailPreferencesUtils.convertAlertOptionToAlertEnabledState(alertOption);\r\n dispatch(manageEmailPreferencesActions.setBiwicReminderAlerts(status));\r\n };\r\n\r\n const hasChanges = !(isEqual(initialPreferences.newBwicAlertState, newBwicAlertState) && isEqual(initialPreferences.bwicReminderAlertState, bwicReminderAlertState));\r\n const isUnsubscribeAllVisible =\r\n emailPreferencesUtils.convertAlertEnabledStateToAlertOption(newBwicAlertState) === AlertOption.Instant &&\r\n emailPreferencesUtils.convertAlertEnabledStateToAlertOption(bwicReminderAlertState) === AlertOption.Instant;\r\n\r\n return (\r\n <>\r\n
\r\n dispatch(manageEmailPreferencesActions.unsubscribeAllBWICsNotifications())}\r\n disabled={isRequestingSavePreferences || !isUnsubscribeAllVisible}\r\n />\r\n dispatch(manageEmailPreferencesActions.saveEmailPreferencesRequest())}\r\n />\r\n
\r\n \r\n \r\n {\r\n dispatch(manageEmailPreferencesActions.rollbackBWICNotifications())\r\n history.push(pathname);\r\n }}\r\n shouldBlockNavigation={() => hasChanges}\r\n />\r\n \r\n )\r\n}\r\n","import { isEqual } from 'lodash';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { manageEmailPreferencesActions } from '../../../../../actions/manage-email-preferences.actions';\r\nimport { useAppSelector } from '../../../../../effects/useAppSelector';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { AlertOption } from '../../../../../types/email-preferences/EmailPreferences';\r\nimport { isRequesting } from '../../../../../utils';\r\nimport { ShowFor } from '../../../../access';\r\nimport { RouteLeavingGuard } from '../../../../routing';\r\nimport { IssuanceMonitorAlertsSection } from './IssuanceMonitorAlertsSection';\r\nimport { SaveButton } from './SaveButton';\r\nimport { UnsubscribeAllButton } from './UnsubscribeAllButton';\r\n\r\nexport function IssuanceMonitorTab() {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const imAlertState = useAppSelector(s => s.manageEmailPreferences.editIssuanceMonitorPreferences?.imAlertConfig.value.alertOption);\r\n const imTransactionAlertState = useAppSelector(s => s.manageEmailPreferences.editIssuanceMonitorPreferences?.newTransactionAlertConfig.value.alertOption);\r\n const imStatisticAlertState = useAppSelector(s => s.manageEmailPreferences.editIssuanceMonitorPreferences?.weeklyStatsAlertConfig.value.emailOption);\r\n const imFiltersAlertState = useAppSelector(s => s.manageEmailPreferences.editIssuanceMonitorPreferences?.filtersConfig.ImFilter.value);\r\n const isRequestingSavePreferences = useAppSelector(s => isRequesting(s.manageEmailPreferences.requestStateSaveIssuanceMonitorPreferences));\r\n const initialIssuanceMonitorPreferences = useAppSelector(s => s.manageEmailPreferences.initialIssuanceMonitorPreferences)\r\n\r\n const hasChanges = !(\r\n isEqual(initialIssuanceMonitorPreferences?.imAlertConfig.value.alertOption, imAlertState) &&\r\n isEqual(initialIssuanceMonitorPreferences?.newTransactionAlertConfig.value.alertOption, imTransactionAlertState) &&\r\n isEqual(initialIssuanceMonitorPreferences?.weeklyStatsAlertConfig.value.emailOption, imStatisticAlertState) &&\r\n isEqual(initialIssuanceMonitorPreferences?.filtersConfig.ImFilter.value, imFiltersAlertState)\r\n );\r\n\r\n const isUnsubscribeAllVisible = [\r\n imAlertState,\r\n imTransactionAlertState,\r\n imStatisticAlertState,\r\n ...(imFiltersAlertState ? imFiltersAlertState.map(filter => filter.alertOption) : [])\r\n ].filter(option => option !== AlertOption.Never).length > 1;\r\n\r\n const handleUnsubscribeAll = () => {\r\n dispatch(manageEmailPreferencesActions.unsubscribeAllIssuanceMonitor())\r\n }\r\n\r\n const save = () => {\r\n dispatch(manageEmailPreferencesActions.saveRequest())\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n dispatch(manageEmailPreferencesActions.rollbackIssuanceMonitor());\r\n history.push(pathname);\r\n }}\r\n shouldBlockNavigation={() => hasChanges}\r\n />\r\n \r\n );\r\n}\r\n","import { useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../actions/manage-email-preferences.actions\";\r\nimport { useAppSelector } from \"../../../../../effects/useAppSelector\";\r\nimport { AlertOption } from \"../../../../../types/email-preferences/EmailPreferences\";\r\nimport { isRequesting } from \"../../../../../utils\";\r\nimport { RouteLeavingGuard } from \"../../../../routing\";\r\nimport { SaveButton } from \"./SaveButton\";\r\nimport { ApEmailAlerts } from \"../../../../amrPipeline/aggregated/email-alerts/arranger-pipeline/ApEmailAlerts\";\r\n\r\nexport function ArrangerPipelineTab() {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const arrangerPipelineState = useAppSelector(\r\n (s) => s.manageEmailPreferences.editArrangerPipelinePreferences\r\n );\r\n const initialArrangerPipelinePreferences = useAppSelector(\r\n (s) => s.manageEmailPreferences.initialArrangerPipelinePreferences\r\n );\r\n const isRequestingSavePreferences = useAppSelector((s) =>\r\n isRequesting(\r\n s.manageEmailPreferences.requestStateSaveIssuanceMonitorPreferences\r\n )\r\n );\r\n\r\n const initialApAlertOption =\r\n initialArrangerPipelinePreferences?.apAlertConfig.value.alertOption ||\r\n AlertOption.Never;\r\n const apAlertOption =\r\n arrangerPipelineState?.apAlertConfig.value.alertOption ||\r\n AlertOption.Never;\r\n\r\n const hasChanges = initialApAlertOption !== apAlertOption;\r\n\r\n const save = () =>\r\n dispatch(manageEmailPreferencesActions.saveArrangerPipelineRequest());\r\n\r\n const handleChangeApAlertOption = (option: AlertOption) =>\r\n dispatch(\r\n manageEmailPreferencesActions.setArrangerPipelineAlert(option)\r\n );\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n \r\n {\r\n dispatch(\r\n manageEmailPreferencesActions.rollbackArrangerPipeline()\r\n );\r\n history.push(pathname);\r\n }}\r\n shouldBlockNavigation={() => hasChanges}\r\n />\r\n \r\n );\r\n}\r\n","import { useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { isRequestNone, isRequesting } from \"../../../../../../utils/request-state.utils\";\r\nimport { PageConfigType } from '../../../../../../types/page-config/PageConfigType';\r\nimport { BwicFilterType } from '../../../../../../types/filters/FilterState';\r\nimport { usePageConfig } from '../../../../../common/pageConfig/usePageConfig';\r\nimport { SavedFiltersAlerts } from '../../SavedFiltersAlerts';\r\nimport { DealerInventoryAlertsSaveButton } from './DealerInventoryAlertsSaveButton';\r\nimport { UserConfigFilter } from '../../../../../../types/user-config/UserConfigFilter';\r\nimport { Preloader } from '../../../../../common/Preloader';\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { EmailPreferencesRadioGroup } from \"../EmailPreferencesRadioGroup\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { FilterColumnsKeys } from \"../../../../../amrPipeline/aggregated/email-alerts/issuance-monitor/filterColumns\";\r\nimport { UnsubscribeInventoryAlertsButton } from \"./UnsubscribeInventoryAlertsButton\";\r\nimport RouteLeavingGuard from \"../../../../../routing/RouteLeavingGuard\";\r\nimport { useInventoryAlertsChangedState } from \"./useInventoryAlertsChangedState\";\r\nimport { ShowFor } from \"../../../../../access\";\r\nimport { textLabels } from \"../../../../../../constants/text-labels\";\r\n\r\nexport const DealerInventoryAlertsTab = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const filter = useAppSelector(s => s.filters.bdInventory.filter);\r\n const visibleFilters = useAppSelector(s => s.filters.bdInventory.visibleFilters);\r\n const savePreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n const dealerInventoryAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.dealerInventoryAlertState);\r\n\r\n const { config, requestState, saveAlerts, updateRequestState } = usePageConfig(\r\n PageConfigType.DealerInventory,\r\n true,\r\n BwicFilterType.Inventory\r\n );\r\n\r\n const { isFilterAlertsChanged, dealerInventoryAlertStateChanged } = useInventoryAlertsChangedState();\r\n\r\n const hasChanges = isFilterAlertsChanged || dealerInventoryAlertStateChanged;\r\n const disabled = isRequestNone(requestState) || isRequesting(requestState, updateRequestState, savePreferencesRequestState);\r\n\r\n const handleSave = (updatedFilters?: UserConfigFilter[]) => {\r\n dispatch(manageEmailPreferencesActions.saveEmailPreferencesRequest());\r\n if (updatedFilters?.length) {\r\n saveAlerts(updatedFilters);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n dispatch(manageEmailPreferencesActions.setDealerInventoryAlertState(alertOption))}\r\n />\r\n \r\n \r\n \r\n {\r\n dispatch(manageEmailPreferencesActions.rollbackInventory())\r\n history.push(pathname);\r\n }}\r\n shouldBlockNavigation={() => hasChanges}\r\n />\r\n \r\n )\r\n}\r\n","import { isEqual } from 'lodash';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { manageEmailPreferencesActions } from '../../../../../../actions/manage-email-preferences.actions';\r\nimport { roles } from '../../../../../../constants';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { UserConfigType } from '../../../../../../types/user-config/UserConfigType';\r\nimport { user } from '../../../../../../user';\r\nimport { isRequesting } from '../../../../../../utils';\r\nimport { Preloader } from '../../../../../common/Preloader';\r\nimport { RouteLeavingGuard } from '../../../../../routing';\r\nimport { EmailPreferencesRadioGroup } from '../EmailPreferencesRadioGroup';\r\nimport { SaveButton } from '../SaveButton';\r\nimport { UnsubscribeAllButton } from '../UnsubscribeAllButton';\r\nimport { CloManagerImAlertsSection } from './CloManagerImAlerts';\r\nimport { ShowFor } from '../../../../../access';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { alertDescriptions } from '../../../../../../constants/cloManagers/alertDescriptions';\r\nimport { cloImApRequiredFeatures } from '../../../../../../constants/cloManagers/cloImApRequiredFeatures';\r\n\r\nexport function CloManagerTab() {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const userCompany = useAppSelector(s => s.issuanceMonitor.amrPipelineCommon.userCompany);\r\n\r\n const editCloManagersPreferences = useAppSelector(s => s.manageEmailPreferences.editCloManagersPreferences);\r\n const isRequestingSavePreferences = useAppSelector(s =>\r\n isRequesting(s.manageEmailPreferences.requestStateSaveIssuanceMonitorPreferences),\r\n );\r\n\r\n const withImApAccess = user.hasAllFeatures(...cloImApRequiredFeatures);\r\n const withBwicAccess = user.hasFeatures(SubscriptionFeature.BwicMonitorAlerts);\r\n const withDiAccess = user.hasFeatures(SubscriptionFeature.InventoryAlerts);\r\n\r\n const cloManagersImAlerts = editCloManagersPreferences?.cloManagerIssuanceMonitorAlert.value || [];\r\n const cloManagersApAlerts = editCloManagersPreferences?.cloManagerArrangerPipelineAlert.value || [];\r\n const cloManagersBwicAlerts = editCloManagersPreferences?.cloManagerBwicAlert.value || [];\r\n const cloManagersDiAlerts = editCloManagersPreferences?.cloManagerDealerInventoryAlert.value || [];\r\n const cloManagersAnalyticAlert = editCloManagersPreferences?.cloManagerAnalyticsAlert.value.find(\r\n c => c.companyReferenceName === userCompany?.referenceName,\r\n );\r\n\r\n const initialCloManagersAlertsPreferences = useAppSelector(\r\n s => s.manageEmailPreferences.initialCloManagersPreferences,\r\n );\r\n\r\n const isSellerCollateralManager = user.hasRoles(roles.CollateralManager);\r\n\r\n const hasChanges = !isEqual(editCloManagersPreferences, initialCloManagersAlertsPreferences);\r\n\r\n const isUnsubscribeAllVisible =\r\n [\r\n ...(isSellerCollateralManager && cloManagersAnalyticAlert ? [cloManagersAnalyticAlert] : []),\r\n ...(withImApAccess ? [...cloManagersImAlerts, ...cloManagersApAlerts] : []),\r\n ...(withBwicAccess ? cloManagersBwicAlerts : []),\r\n ...(withDiAccess ? cloManagersDiAlerts : []),\r\n ].some(alert => alert.alertOption !== AlertOption.Never);\r\n\r\n const handleUnsubscribeAll = () => {\r\n dispatch(manageEmailPreferencesActions.unsubscribeAllCloManagers(userCompany?.referenceName));\r\n };\r\n\r\n const save = () => {\r\n dispatch(manageEmailPreferencesActions.saveRequest());\r\n };\r\n\r\n if (!userCompany) {\r\n return ;\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {isSellerCollateralManager && (\r\n \r\n dispatch(\r\n manageEmailPreferencesActions.setCloManagersAnalyticsAlert({\r\n type: UserConfigType.cloManagerAnalyticsAlert,\r\n value: [\r\n {\r\n ...cloManagersAnalyticAlert!,\r\n companyReferenceName: userCompany.referenceName,\r\n alertOption,\r\n },\r\n ],\r\n }),\r\n )\r\n }\r\n />\r\n )}\r\n
\r\n

Managers Alerts

\r\n \r\n
\r\n {\r\n dispatch(manageEmailPreferencesActions.rollbackCloManagers());\r\n history.push(pathname);\r\n }}\r\n shouldBlockNavigation={() => hasChanges}\r\n />\r\n \r\n );\r\n}\r\n","import { isEqual } from \"lodash\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { UserConfigType } from \"../../../../../../types/user-config/UserConfigType\";\r\nimport { isRequesting } from \"../../../../../../utils\";\r\nimport { Preloader } from \"../../../../../common\";\r\nimport { RouteLeavingGuard } from \"../../../../../routing\";\r\nimport { EmailPreferencesRadioGroup } from \"../EmailPreferencesRadioGroup\";\r\nimport { SaveButton } from \"../SaveButton\";\r\nimport { UnsubscribeAllButton } from \"../UnsubscribeAllButton\";\r\nimport { ShowFor } from \"../../../../../access\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { BanksAlertsSection } from \"./BanksAlertsSection\";\r\nimport { DailyStatsAlertsConfig } from \"../../../../../../types/user-config/UserConfig\";\r\nimport { alertDescriptions } from \"../../../../../../constants/banks/alertDescriptions\";\r\nimport { alertOptionTooltipText } from \"../../../../../../constants/amr-pipeline/alertOptions\";\r\nimport { hasBankAnalyticsAlertsAccess, hasBankAnalyticsAlertsChangeAccess } from \"../../../../../../utils/amr-pipeline.utils\";\r\nimport { user } from \"../../../../../../user\";\r\nimport { bankImApRequiredFeatures } from \"../../../../../../constants/banks/bankImApRequiredFeatures\";\r\n\r\nexport function BanksTab() {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const userCompany = useAppSelector(\r\n (s) => s.issuanceMonitor.amrPipelineCommon.userCompany\r\n );\r\n\r\n const banks = useAppSelector((s) => s.manageEmailPreferences.banks);\r\n\r\n const editBanksPreferences = useAppSelector(\r\n (s) => s.manageEmailPreferences.editBanksPreferences\r\n );\r\n const initialBanksPreferences = useAppSelector(\r\n (s) => s.manageEmailPreferences.initialBanksPreferences\r\n );\r\n const isRequestingSavePreferences = useAppSelector((s) =>\r\n isRequesting(\r\n s.manageEmailPreferences.requestStateSaveIssuanceMonitorPreferences\r\n )\r\n );\r\n\r\n const withAnalyticsAccess = hasBankAnalyticsAlertsAccess(banks, userCompany);\r\n const withAnalyticsChangeAccess = hasBankAnalyticsAlertsChangeAccess(banks, userCompany);\r\n const withDiAccess = user.hasFeatures(SubscriptionFeature.InventoryAlerts);\r\n const withImApAccess = user.hasAllFeatures(...bankImApRequiredFeatures);\r\n\r\n const bankAnalyticsAlert =\r\n editBanksPreferences?.bankAnalyticsAlert.value.find(\r\n (c) => c.companyReferenceName === userCompany?.referenceName\r\n );\r\n const bankDealerInventoryAlert =\r\n editBanksPreferences?.bankDealerInventoryAlert.value || [];\r\n const bankIssuanceMonitorAlert =\r\n editBanksPreferences?.bankIssuanceMonitorAlert.value || [];\r\n const bankArrangerPipelineAlert =\r\n editBanksPreferences?.bankArrangerPipelineAlert.value || [];\r\n\r\n const hasChanges = !isEqual(editBanksPreferences, initialBanksPreferences);\r\n\r\n const isUnsubscribeAllVisible =\r\n [\r\n ...(withAnalyticsChangeAccess && bankAnalyticsAlert ? [bankAnalyticsAlert] : []),\r\n ...(withDiAccess ? bankDealerInventoryAlert : []),\r\n ...(withImApAccess ? bankIssuanceMonitorAlert : []),\r\n ...(withImApAccess ? bankArrangerPipelineAlert : []),\r\n ].some((alert) => alert.alertOption !== AlertOption.Never);\r\n\r\n const handleUnsubscribeAll = () => {\r\n dispatch(\r\n manageEmailPreferencesActions.unsubscribeAllBanks(\r\n userCompany?.referenceName\r\n )\r\n );\r\n };\r\n\r\n const save = () => {\r\n dispatch(\r\n manageEmailPreferencesActions.saveBanksRequest()\r\n );\r\n };\r\n\r\n if (!userCompany) {\r\n return ;\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n {withAnalyticsAccess && (\r\n \r\n dispatch(\r\n manageEmailPreferencesActions.setBanksAnalyticsAlert(\r\n {\r\n type: UserConfigType.bankAnalyticsAlert,\r\n value: [\r\n {\r\n ...bankAnalyticsAlert!,\r\n companyReferenceName:\r\n userCompany.referenceName,\r\n alertOption,\r\n },\r\n ],\r\n } as DailyStatsAlertsConfig\r\n )\r\n )\r\n }\r\n />\r\n )}\r\n\r\n
\r\n

Banks Alerts

\r\n \r\n
\r\n {\r\n dispatch(manageEmailPreferencesActions.rollbackBanks());\r\n history.push(pathname);\r\n }}\r\n shouldBlockNavigation={() => hasChanges}\r\n />\r\n \r\n );\r\n}\r\n","import { BwicFilterType, CommonFilter } from \"../../../../types/filters/FilterState\";\r\nimport { PageConfigType } from \"../../../../types/page-config/PageConfigType\";\r\nimport { FilterUpdatesTable } from \"../../../amrPipeline/aggregated/email-alerts/issuance-monitor/FilterUpdatesTable\";\r\nimport { UserConfigFilter } from \"../../../../types/user-config/UserConfigFilter\";\r\nimport { manageEmailPreferencesActions } from \"../../../../actions/manage-email-preferences.actions\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { apiUtils } from \"../../../../utils\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useAppSelector } from \"../../../../effects/useAppSelector\";\r\nimport { compareStrings } from \"../../../../utils/compare.utils\";\r\nimport { AlertOption } from \"../../../../types/email-preferences/EmailPreferences\";\r\nimport { RequiredFeature } from \"../../../access/RequiredFeature\";\r\nimport { SubscriptionFeature } from \"../../../../types/billing/SubscriptionFeature\";\r\nimport { SubscribeLink } from \"../../../access/BlockedFeatureText\";\r\nimport { FilterColumnsKeys } from \"../../../amrPipeline/aggregated/email-alerts/issuance-monitor/filterColumns\";\r\nimport { EmptyPlaceholder } from \"../../../common\";\r\nimport IconSVG from \"../../../../styles/svg-icons\";\r\n\r\ninterface Props {\r\n filter: CommonFilter;\r\n visibleFilters: string[];\r\n pageConfigType: PageConfigType;\r\n filterType: BwicFilterType;\r\n filterAlertsStatuses?: UserConfigFilter[];\r\n disabled?: boolean;\r\n requiredFeature?: SubscriptionFeature;\r\n description: string;\r\n excludeColumns?: FilterColumnsKeys[];\r\n alertOptionToolitps?: { [key in AlertOption]?: string };\r\n collapsible?: boolean;\r\n isStatusVisibleInTitle?: boolean;\r\n}\r\n\r\nexport const SavedFiltersAlerts = ({\r\n filter,\r\n visibleFilters,\r\n filterAlertsStatuses,\r\n filterType,\r\n disabled,\r\n requiredFeature,\r\n description,\r\n excludeColumns = [],\r\n alertOptionToolitps,\r\n collapsible = false,\r\n isStatusVisibleInTitle = false,\r\n}: Props) => {\r\n const dispatch = useDispatch();\r\n const [collapsed, setCollapsed] = useState(false);\r\n const changedAlertOptions = useAppSelector(s => s.manageEmailPreferences.editSavedFiltersPreferences);\r\n\r\n useEffect(() => {\r\n return () => {\r\n dispatch(manageEmailPreferencesActions.savedFilterAlertOptionsReset());\r\n }\r\n }, [dispatch])\r\n\r\n const mapChangedAlertState = () => (filterAlertsStatuses ?? []).map(f => ({\r\n ...f,\r\n alertOption: changedAlertOptions[f.referenceName] ?? f.alertOption\r\n }))\r\n .sort((a, b) => compareStrings(a.name, b.name))\r\n\r\n const handleFilterAlertStateChange = (updated: UserConfigFilter[]) => {\r\n const updatedState = apiUtils.normalize(updated, x => x.referenceName, x => x.alertOption)\r\n dispatch(manageEmailPreferencesActions.savedFilterAlertOptionChange(updatedState));\r\n }\r\n\r\n const renderEmptyPlaceholder = () => {\r\n return (\r\n to unlock the saved filters.}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n const renderTitle = () => (\r\n

setCollapsed(!collapsed) : undefined} className=\"controls-wrap-title flex-row\">\r\n {\r\n collapsible &&\r\n \r\n \r\n \r\n }\r\n Saved Filters {isStatusVisibleInTitle ? `(${filterAlertsStatuses?.some(f => f.alertOption !== AlertOption.Never) ? 'on' : 'off'})`: null}\r\n

\r\n )\r\n\r\n return (\r\n
\r\n
\r\n {renderTitle()}\r\n
\r\n

{description}

\r\n {\r\n collapsed\r\n ? null\r\n : (filterAlertsStatuses?.length ?\r\n \r\n : renderEmptyPlaceholder())\r\n }\r\n
\r\n )\r\n}","import * as React from 'react';\r\nimport { AgencyRatings } from '../../types/models/rating/AgencyRatings';\r\nimport { Preloader } from '../common';\r\n\r\ninterface AgencyRatingListProps {\r\n ratings?: AgencyRatings\r\n}\r\n\r\nexport function AgencyRatingList({ ratings }: AgencyRatingListProps) {\r\n const values: string[] = [];\r\n\r\n if (ratings) {\r\n values.push(ratings.snP || '-');\r\n values.push(ratings.fitch || '-');\r\n }\r\n\r\n return (\r\n <>\r\n
S&P/Fitch
\r\n
\r\n \r\n {ratings && <>{values.join('/')}}\r\n \r\n
\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { RatingMap } from '../../types/models/rating/RatingMap';\r\n\r\ninterface RatingMappingTableProps {\r\n ratingMappings: RatingMap[]\r\n}\r\n\r\nexport function RatingMappingTable({ ratingMappings }: RatingMappingTableProps) {\r\n const format = (ratings: string[]) =>\r\n ratings\r\n .filter(r => !r.toLowerCase().includes('(exp)')) // don't show Fitch (EXP) ratings\r\n .map(r => r === '/' ? '-/-' : r)\r\n .join('/');\r\n\r\n const renderMap = (map: RatingMap, index: number) =>\r\n \r\n {map.aggregated}\r\n {format(map.moodys)}\r\n {format(map.snP)}\r\n {format(map.fitch)}\r\n \r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ratingMappings.map((m, i) => renderMap(m, i))}\r\n \r\n
RATINGMOODY'SS&PFITCH
\r\n );\r\n}\r\n","interface Props {\r\n onClick: () => void,\r\n disabled?: boolean\r\n}\r\n\r\nexport const UnsubscribeAllButton = ({ onClick, disabled }: Props) => {\r\n return (\r\n \r\n )\r\n}\r\n","import cn from 'classnames';\r\nimport { isRequesting } from \"../../../../../../utils/request-state.utils\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { UserConfigFilter } from \"../../../../../../types/user-config/UserConfigFilter\";\r\nimport { useInventoryAlertsChangedState } from './useInventoryAlertsChangedState';\r\n\r\ninterface Props {\r\n className?: string;\r\n currentFilters?: UserConfigFilter[];\r\n disabled?: boolean;\r\n onSave: (updatedFilters?: UserConfigFilter[]) => void;\r\n}\r\n\r\nexport const DealerInventoryAlertsSaveButton = ({ className, currentFilters, disabled, onSave }: Props) => {\r\n const savedFiltersEditState = useAppSelector(s => s.manageEmailPreferences.editSavedFiltersPreferences);\r\n const savePreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n const emailPreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateGetPreferences);\r\n const { isFilterAlertsChanged, dealerInventoryAlertStateChanged } = useInventoryAlertsChangedState();\r\n\r\n\r\n const isDisabled = disabled\r\n || !(isFilterAlertsChanged || dealerInventoryAlertStateChanged)\r\n || isRequesting(emailPreferencesRequestState, savePreferencesRequestState);\r\n\r\n const handleSave = () => {\r\n let updatedFilters: UserConfigFilter[] | undefined;\r\n if (isFilterAlertsChanged && currentFilters?.length) {\r\n updatedFilters = currentFilters.map(f => ({\r\n ...f,\r\n alertOption: savedFiltersEditState[f.referenceName] ?? f.alertOption\r\n }));\r\n\r\n }\r\n\r\n onSave(updatedFilters);\r\n }\r\n\r\n return (\r\n \r\n Save\r\n \r\n );\r\n}","import { keys } from \"lodash\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { BwicFilterType } from \"../../../../../../types/filters/FilterState\";\r\nimport { PageConfigType } from \"../../../../../../types/page-config/PageConfigType\";\r\nimport { PortfolioUserConfigFilter } from \"../../../../../../types/user-config/UserConfigFilter\";\r\nimport { usePageConfig } from \"../../../../../common/pageConfig/usePageConfig\";\r\n\r\nexport function usePortfolioAlertsChangedState() {\r\n const { config } = usePageConfig(PageConfigType.Portfolio, true, BwicFilterType.Portfolio);\r\n const filtersAlertState = useAppSelector(s => s.manageEmailPreferences.portfolioSavedFilterAlerts);\r\n const portfolioBwicAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioBwicAlertState);\r\n const portfolioCleansingNoticeAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioCleansingNoticeAlertState);\r\n const portfolioInvneotryAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioDealersInventoryAlertState);\r\n const issuanceMonitorAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioIssuanceMonitorAlertState);\r\n const outOfRiAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioOutOfRiPeriodAlertState);\r\n const outOfNcAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioOutOfNcPeriodAlertState);\r\n const rollerDeadlineAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioRollerDeadlineAlertState);\r\n const initialPortfolioBwicAlertState = useAppSelector(s => s.manageEmailPreferences.initialPreferences.portfolioBwicAlertState);\r\n const initialPortfolioCleansingNoticeAlertState = useAppSelector(s => s.manageEmailPreferences.initialPreferences.portfolioCleansingNoticeAlertState);\r\n const initialPortfolioInvnetoryAlertState = useAppSelector(s => s.manageEmailPreferences.initialPreferences.portfolioDealersInventoryAlertState);\r\n const initialIssuanceMonitorAlertState = useAppSelector(s => s.manageEmailPreferences.initialPreferences.portfolioIssuanceMonitorAlertState);\r\n const initialOutOfRiAlertState = useAppSelector(s => s.manageEmailPreferences.initialPreferences.portfolioOutOfRiPeriodAlertState);\r\n const initialOutOfNcAlertState = useAppSelector(s => s.manageEmailPreferences.initialPreferences.portfolioOutOfNcPeriodAlertState);\r\n const initialRollerDeadlineAlertState = useAppSelector(s => s.manageEmailPreferences.initialPreferences.portfolioRollerDeadlineAlertState);\r\n const filters = config?.filters as PortfolioUserConfigFilter[] ?? [];\r\n\r\n const getFilterAlertsChangedFlag = () => {\r\n // filters state has not initialized yet\r\n if(filters.length && !keys(filtersAlertState).length) return false;\r\n\r\n return filters.some(f =>\r\n f.bwicAlertOption !== filtersAlertState[f.referenceName]?.bwicAlert ||\r\n f.dealerInventoryAlertOption !== filtersAlertState[f.referenceName]?.inventoryAlert\r\n );\r\n }\r\n\r\n const hasChanges =\r\n initialPortfolioBwicAlertState !== portfolioBwicAlertState ||\r\n initialPortfolioCleansingNoticeAlertState !== portfolioCleansingNoticeAlertState ||\r\n initialPortfolioInvnetoryAlertState !== portfolioInvneotryAlertState ||\r\n initialIssuanceMonitorAlertState !== issuanceMonitorAlertState ||\r\n initialRollerDeadlineAlertState !== rollerDeadlineAlertState ||\r\n initialOutOfRiAlertState !== outOfRiAlertState ||\r\n initialOutOfNcAlertState !== outOfNcAlertState ||\r\n getFilterAlertsChangedFlag();\r\n\r\n return hasChanges;\r\n}\r\n","export enum SubscriptionsTab {\r\n overview = 'Overview',\r\n plans = 'Plans',\r\n paymentMethod = 'PaymentMethod',\r\n billingInfo = 'BillingInfo',\r\n billingHistory = 'BillingHistory'\r\n}\r\n","import * as React from \"react\";\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { AlertOption } from '../../../../../types/email-preferences/EmailPreferences'\r\nimport { ActionBlocker } from '../../../../access/ActionBlocker';\r\nimport { BlockedFeatureTooltipText } from '../../../../access/BlockedFeatureText';\r\nimport { RadioButton } from '../../../../controls'\r\nimport { InfoTooltip } from \"../../../../common/InfoTooltip\";\r\nimport IconSVG from '../../../../../styles/svg-icons';\r\n\r\ninterface EmailPreferencesRadioGroupProps {\r\n value: AlertOption;\r\n disabled?: boolean;\r\n alertOptions: AlertOption[];\r\n alertOptionInfo?: { [key in AlertOption]?: string }\r\n title: string | JSX.Element;\r\n description?: string;\r\n groupNameIndentifier: string;\r\n onChange: (alertOption: AlertOption) => void\r\n partially?: boolean;\r\n requiredFeature?: SubscriptionFeature;\r\n requiredFeatures?: SubscriptionFeature[];\r\n children?: React.ReactNode;\r\n collapsible?: boolean;\r\n}\r\n\r\nexport const EmailPreferencesRadioGroup = (\r\n {\r\n value,\r\n disabled = false,\r\n alertOptions,\r\n alertOptionInfo,\r\n title,\r\n description,\r\n groupNameIndentifier,\r\n onChange,\r\n partially,\r\n requiredFeature,\r\n requiredFeatures,\r\n children,\r\n collapsible = false\r\n }: EmailPreferencesRadioGroupProps) => {\r\n const [collapsed, setCollapsed] = React.useState(false);\r\n const renderInfoBlock = (alertOption: AlertOption) => {\r\n const info = alertOptionInfo?.[alertOption];\r\n\r\n if (!info) {\r\n return null\r\n }\r\n\r\n return \r\n }\r\n\r\n const renderAlert = (alertOption: AlertOption, blocked?: boolean) => {\r\n const selectedValue = blocked ? AlertOption.Never : value;\r\n return (\r\n onChange(alertOption)}\r\n onChange={() => {}}\r\n partially={partially && alertOption !== AlertOption.Never}\r\n />\r\n );\r\n };\r\n\r\n const renderTitle = () => (\r\n

setCollapsed(!collapsed) : undefined} className=\"controls-wrap-title flex-row\">\r\n {\r\n collapsible &&\r\n \r\n \r\n \r\n }\r\n {title}\r\n

\r\n )\r\n\r\n return (\r\n
\r\n
\r\n {renderTitle()}\r\n
\r\n {alertOptions.map(alertOption =>\r\n
\r\n {requiredFeature || requiredFeatures?.length ? (\r\n }\r\n feature={requiredFeature}\r\n features={requiredFeatures}\r\n requireAllFeatures\r\n >\r\n {blocked => renderAlert(alertOption, blocked)}\r\n \r\n ) : (\r\n renderAlert(alertOption)\r\n )}\r\n {renderInfoBlock(alertOption)}\r\n
\r\n )}\r\n
\r\n
\r\n {!!description &&

{description}

}\r\n {collapsed ? null: children}\r\n
\r\n );\r\n}\r\n","import { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { routes } from '../../../../../../constants/routes';\r\nimport { isRequesting, isRequestNone, isRequestSuccess } from \"../../../../../../utils/request-state.utils\";\r\nimport { Preloader } from \"../../../../../common/Preloader\";\r\nimport { Popup, PopupBody, PopupFooter } from \"../../../../../controls\"\r\nimport { BwicMonitorAlertsTable } from \"./BwicMonitorAlertsTable\";\r\nimport { SavedFiltersAlerts } from \"../../SavedFiltersAlerts\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { usePageConfig } from \"../../../../../common/pageConfig/usePageConfig\";\r\nimport { PageConfigType } from \"../../../../../../types/page-config/PageConfigType\";\r\nimport { BwicFilterType } from \"../../../../../../types/filters/FilterState\";\r\nimport { BwicMonitorAlertsSaveButton } from \"./BwicMonitorAlertsSaveButton\";\r\nimport { EmailPreferencesTab } from \"../../EmailPreferencesContent\";\r\nimport { UserConfigFilter } from \"../../../../../../types/user-config/UserConfigFilter\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { textLabels } from \"../../../../../../constants/text-labels\";\r\nimport { BwicMonitorSecondaryWeeklySummary } from \"./BwicMonitorSecondaryWeeklySummary\";\r\n\r\ninterface BwicMonitorAlertsPopupProps {\r\n onClose: () => void\r\n}\r\n\r\nexport const BwicMonitorAlertsPopup = ({ onClose }: BwicMonitorAlertsPopupProps) => {\r\n const dispatch = useDispatch();\r\n\r\n const requestStateGetPreferences = useAppSelector(s => s.manageEmailPreferences.requestStateGetPreferences);\r\n const requestStateSavePreferences = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n const filter = useAppSelector(s => s.filters.bwicMonitor.filter);\r\n const visibleFilters = useAppSelector(s => s.filters.bwicMonitor.visibleFilters);\r\n\r\n const { config, requestState, updateRequestState, saveAlerts } = usePageConfig(\r\n PageConfigType.BwicMonitorAll,\r\n false,\r\n BwicFilterType.BwicMonitor\r\n );\r\n\r\n const isLoading = isRequesting(\r\n requestStateGetPreferences,\r\n requestStateSavePreferences,\r\n requestState,\r\n updateRequestState\r\n );\r\n\r\n useEffect(() => {\r\n if (isRequestSuccess(requestStateSavePreferences)) {\r\n onClose();\r\n } // eslint-disable-next-line\r\n }, [requestStateSavePreferences])\r\n\r\n useEffect(() => () => {\r\n dispatch(manageEmailPreferencesActions.reset())\r\n }, [dispatch])\r\n\r\n useEffect(() => {\r\n if (isRequestNone(requestStateGetPreferences)) {\r\n dispatch(manageEmailPreferencesActions.getInitialDataRequest());\r\n }\r\n }, [dispatch, requestStateGetPreferences]);\r\n\r\n const handleSave = (updatedFilters?: UserConfigFilter[]) => {\r\n dispatch(manageEmailPreferencesActions.saveEmailPreferencesRequest());\r\n if (updatedFilters?.length) {\r\n saveAlerts(updatedFilters);\r\n }\r\n }\r\n\r\n if(isRequestSuccess(requestStateSavePreferences)) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Manage Alerts\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n","import React, { useState } from 'react';\r\nimport IconSVG from '../../../../../../styles/svg-icons';\r\nimport { BwicMonitorAlertsPopup } from './BwicMonitorAlertsPopup';\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { useEmailPreferences } from '../../../../../../effects/data-accessors/useEmailPreferences';\r\nimport { usePageConfig } from '../../../../../common/pageConfig/usePageConfig';\r\nimport { PageConfigType } from '../../../../../../types/page-config/PageConfigType';\r\nimport { BwicFilterType } from '../../../../../../types/filters/FilterState';\r\n\r\nexport const BwicMonitorAlertsPreferences = () => {\r\n const [showModal, setShowModal] = useState(false);\r\n const isBwicByRatingAlertEnabled = useAppSelector(s => s.entities.emailPreferences.preferences?.bwicByRatingAlertState !== AlertOption.Never);\r\n const isSecondaryWeeklySummaryAlertEnabled = useAppSelector(s => s.entities.emailPreferences.preferences?.secondaryWeeklySummaryAlertState === AlertOption.Weekly);\r\n const { config } = usePageConfig(PageConfigType.BwicMonitorAll, true, BwicFilterType.BwicMonitor);\r\n const isAnyFilterAlertEnabled = config?.filters.some(f => f.alertOption !== AlertOption.Never);\r\n const isAnyAlertEnabled = isBwicByRatingAlertEnabled || isAnyFilterAlertEnabled || isSecondaryWeeklySummaryAlertEnabled;\r\n\r\n useEmailPreferences();\r\n\r\n return (<>\r\n setShowModal(true)}\r\n >\r\n \r\n Alerts\r\n \r\n {showModal && setShowModal(false)} />}\r\n )\r\n}\r\n","import { values } from 'lodash';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { PortfolioSavedFilterAlertsState } from '../../../../../../types/state/ManageEmailPreferencesState';\r\nimport { ActionBlocker } from '../../../../../access/ActionBlocker';\r\nimport { RadioButton } from '../../../../../controls';\r\nimport { PortfolioAlertsTypes } from '../../../../../../types/portfolio/PortfolioAlerts';\r\n\r\ninterface Props {\r\n option: AlertOption;\r\n filterAlertState: PortfolioSavedFilterAlertsState;\r\n type: PortfolioAlertsTypes;\r\n onChange: (alertOption: AlertOption, type: PortfolioAlertsTypes) => void;\r\n disabled?: boolean;\r\n requiredFeature?: SubscriptionFeature;\r\n name?: string;\r\n}\r\nexport function PortfolioFiltersAlertsHeaderRadioButton({\r\n option,\r\n type,\r\n filterAlertState,\r\n onChange,\r\n disabled,\r\n name,\r\n requiredFeature,\r\n}: Props) {\r\n const filterValues = values(filterAlertState);\r\n\r\n const selected = filterValues?.some(x =>\r\n type === PortfolioAlertsTypes.bwicAlert ? x.bwicAlert === option : x.inventoryAlert === option,\r\n );\r\n const partially = filterValues?.some(x =>\r\n type === PortfolioAlertsTypes.bwicAlert ? x.bwicAlert !== option : x.inventoryAlert !== option,\r\n );\r\n\r\n const handleClick = () => {\r\n onChange(option, type);\r\n };\r\n\r\n return (\r\n \r\n {blocked => (\r\n {}}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n","import { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { ActionBlocker } from '../../../../../access/ActionBlocker';\r\nimport EmailInfoTooltip from '../../../../../common/EmailInfoTooltip';\r\nimport { ColumnBuilder } from '../../../../../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { IColumnDefinition } from '../../../../../bidding/common/table/types/ColumnDefinition';\r\nimport { OnHoverTooltip } from '../../../../../common';\r\nimport { RadioButton } from '../../../../../controls';\r\nimport { textLabels } from '../../../../../../constants/text-labels';\r\nimport { PortfolioFiltersAlertsHeaderRadioButton } from './PortfolioFiltersAlertsHeaderRadioButton';\r\nimport { IPortfolioAlertRow } from './PortfolioFilterAlertsTable';\r\nimport { PortfolioAlertsTypes } from '../../../../../../types/portfolio/PortfolioAlerts';\r\n\r\nconst filterName: IColumnDefinition = {\r\n columnKey: 'filterName',\r\n renderColumnHeaderContent: () => 'Filter Name',\r\n renderColumnContent: row => {\r\n const filterNameText = row.title\r\n return (\r\n
\r\n {filterNameText}\r\n
\r\n );\r\n },\r\n className: 'data-list-cell-xl padding-l-0 data-list-cell-right-border data-list-cell-filter-name',\r\n};\r\n\r\nconst portfolioBwicAlerts: IColumnDefinition[] = [\r\n {\r\n columnKey: 'bwicAlert-description',\r\n renderColumnHeaderContent: () => (\r\n \r\n BWIC\r\n \r\n \r\n ),\r\n renderColumnContent: () => '',\r\n className: 'text-center padding-l-0',\r\n },\r\n {\r\n columnKey: 'bwicAlert-never',\r\n renderColumnHeaderContent: ({ filters, onHeaderClick, disabled }) => (\r\n \r\n ),\r\n renderColumnContent: (row, { disabled, onColumnClick }) => {\r\n const name = 'bwicAlert-' + row.filterReferenceName;\r\n return (\r\n \r\n {blocked => (\r\n \r\n onColumnClick(\r\n PortfolioAlertsTypes.bwicAlert,\r\n AlertOption.Never,\r\n row\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: 'data-list-cell-xs padding-l-0 data-list-cell-control',\r\n },\r\n {\r\n columnKey: 'bwicAlert-instant',\r\n renderColumnHeaderContent: ({ filters, onHeaderClick, disabled }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (row, { disabled, onColumnClick }) => {\r\n const name = 'bwicAlert-instant-' + row.filterReferenceName;\r\n return (\r\n \r\n {blocked => (\r\n \r\n onColumnClick(\r\n PortfolioAlertsTypes.bwicAlert,\r\n AlertOption.Instant,\r\n row\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: 'data-list-cell-sm-01 padding-l-0 data-list-cell-control data-list-cell-right-border',\r\n },\r\n];\r\n\r\nconst porfolioInventoryAlerts: IColumnDefinition[] = [\r\n {\r\n columnKey: 'inventoryAlert-description',\r\n renderColumnHeaderContent: () => (\r\n \r\n Inventory\r\n \r\n \r\n ),\r\n renderColumnContent: () => '',\r\n className: 'data-list-cell-sm-01',\r\n },\r\n {\r\n columnKey: 'inventoryAlert-never',\r\n renderColumnHeaderContent: ({ filters, onHeaderClick, disabled }) => (\r\n \r\n ),\r\n renderColumnContent: (row, { disabled, onColumnClick }) => {\r\n const name = 'inventoryAlert-never-' + row.filterReferenceName;\r\n return (\r\n \r\n {blocked => (\r\n \r\n onColumnClick(\r\n PortfolioAlertsTypes.dealersInventoryAlert,\r\n AlertOption.Never,\r\n row\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: 'data-list-cell-xs padding-l-0 data-list-cell-control',\r\n },\r\n {\r\n columnKey: 'inventoryAlert-instant',\r\n renderColumnHeaderContent: ({ filters, onHeaderClick, disabled }) => (\r\n <>\r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (row, { disabled, onColumnClick }) => {\r\n const name = 'inventoryAlert-instant+' + row.filterReferenceName;\r\n return (\r\n \r\n {blocked => (\r\n \r\n onColumnClick(\r\n PortfolioAlertsTypes.dealersInventoryAlert,\r\n AlertOption.Instant,\r\n row\r\n )\r\n }\r\n />\r\n )}\r\n \r\n );\r\n },\r\n className: 'padding-l-0 data-list-cell-control',\r\n },\r\n];\r\n\r\nexport const portfolioFilterAlertsColumns = [\r\n filterName,\r\n ...portfolioBwicAlerts,\r\n ...porfolioInventoryAlerts,\r\n].map(c => new ColumnBuilder(c));\r\n","import { useDispatch } from 'react-redux';\r\nimport { keys } from 'lodash';\r\nimport cn from 'classnames';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { BwicFilterType } from '../../../../../../types/filters/FilterState';\r\nimport { PortfolioUserConfigFilter } from '../../../../../../types/user-config/UserConfigFilter';\r\nimport { ListBuilder } from '../../../../../../utils/ListBuilder';\r\nimport { SavedFilterDetails } from '../../../../../amrPipeline/aggregated/email-alerts/issuance-monitor/SavedFilterDetails';\r\nimport { Table } from '../../../../../bidding/common/table';\r\nimport {\r\n PortfolioAlertsRowType,\r\n} from '../../../../../../types/state/ManageEmailPreferencesState';\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { manageEmailPreferencesActions } from '../../../../../../actions/manage-email-preferences.actions';\r\nimport { useEffect } from 'react';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { user } from '../../../../../../user/user';\r\nimport { roles } from '../../../../../../constants/roles';\r\nimport { SubscribeLink } from '../../../../../access/BlockedFeatureText';\r\nimport { RequiredFeature } from '../../../../../access/RequiredFeature';\r\nimport { portfolioFilterAlertsColumns } from './portfolioFilterAlertsTableColumns';\r\nimport { PortfolioAlertsTypes } from '../../../../../../types/portfolio/PortfolioAlerts';\r\n\r\nexport interface IPortfolioAlertRow {\r\n title: string;\r\n rowType: PortfolioAlertsRowType;\r\n bwicAlert: AlertOption | null; // null if partial;\r\n inventoryAlert: AlertOption | null; // null if partial;\r\n filterReferenceName: string;\r\n disabled?: boolean;\r\n}\r\n\r\ninterface Props {\r\n savedFilters: PortfolioUserConfigFilter[];\r\n disabled?: boolean;\r\n}\r\n\r\nexport const PortfolioFiltersAlertsTable = ({ savedFilters, disabled }: Props) => {\r\n const dispatch = useDispatch();\r\n const filter = useAppSelector(s => s.filters.portfolio.filter);\r\n const filtersAlertState = useAppSelector(s => s.manageEmailPreferences.portfolioSavedFilterAlerts);\r\n const visibleFilters = useAppSelector(s => s.filters.portfolio.visibleFilters);\r\n\r\n const isBd = user.hasRoles(...roles.bd());\r\n\r\n useEffect(() => {\r\n if (savedFilters.length && !keys(filtersAlertState).length) {\r\n dispatch(manageEmailPreferencesActions.initPortfolioFilterAlerts(savedFilters));\r\n }\r\n }, [savedFilters, filtersAlertState, dispatch]);\r\n\r\n const gitFilterRowTitle = (filter: PortfolioUserConfigFilter) => {\r\n const filterCount = keys(filter.filter).length;\r\n const filterWord = filterCount === 1 ? 'filter' : 'filters';\r\n return `${filter.name} (${filterCount} ${filterWord})`;\r\n };\r\n\r\n const getTableRows = () => {\r\n const savedFilterRows: IPortfolioAlertRow[] = savedFilters.map(f => ({\r\n title: gitFilterRowTitle(f),\r\n rowType: PortfolioAlertsRowType.SavedFilter,\r\n bwicAlert: filtersAlertState[f.referenceName]?.bwicAlert ?? AlertOption.Never,\r\n inventoryAlert: filtersAlertState[f.referenceName]?.inventoryAlert ?? AlertOption.Never,\r\n filterReferenceName: f.referenceName,\r\n }));\r\n\r\n return new ListBuilder().add(...savedFilterRows).result();\r\n };\r\n\r\n const onColumnClick = (type: PortfolioAlertsTypes, alertOption: AlertOption, row: IPortfolioAlertRow) => {\r\n type === PortfolioAlertsTypes.bwicAlert\r\n ? dispatch(\r\n manageEmailPreferencesActions.portfolioSavedFilterAlertChange(\r\n row.filterReferenceName!,\r\n alertOption,\r\n row.inventoryAlert,\r\n ),\r\n )\r\n : dispatch(\r\n manageEmailPreferencesActions.portfolioSavedFilterAlertChange(\r\n row.filterReferenceName!,\r\n row.bwicAlert,\r\n alertOption,\r\n ),\r\n );\r\n };\r\n\r\n const onHeaderClick = (option: AlertOption, type: PortfolioAlertsTypes) => {\r\n type === PortfolioAlertsTypes.bwicAlert\r\n ? dispatch(\r\n manageEmailPreferencesActions.portfolioSavedFilterGlobalAlertChange(option),\r\n )\r\n : dispatch(manageEmailPreferencesActions.portfolioSavedFilterGlobalAlertChange(undefined, option));\r\n };\r\n\r\n const renderFilterDetails = (row: IPortfolioAlertRow) => {\r\n if (row.rowType !== PortfolioAlertsRowType.SavedFilter) return null;\r\n\r\n const savedFilter = savedFilters?.find(sf => sf.referenceName === row.filterReferenceName);\r\n\r\n if (!savedFilter) return null;\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

Saved Filters

\r\n
\r\n

\r\n Receive email notifications when security from your portfolio is on a BWIC or\r\n has been added, updated, or traded in the Dealer Inventory List.\r\n

\r\n ({\r\n onHeaderClick,\r\n filters: filtersAlertState,\r\n disabled,\r\n isBd\r\n })}\r\n createSecurityCustomArgs={() => ({\r\n onColumnClick,\r\n disabled\r\n })}\r\n columns={portfolioFilterAlertsColumns}\r\n className={cn('data-list-striped data-list-saved-filter', { 'margin-b-0': !savedFilters.length })}\r\n shouldRenderCollapsibleRowCallback={(row: IPortfolioAlertRow) =>\r\n row.rowType === PortfolioAlertsRowType.SavedFilter\r\n }\r\n renderCollapsibleItem={renderFilterDetails}\r\n createSecurityCustomClassName={(row: IPortfolioAlertRow) =>\r\n row.rowType !== PortfolioAlertsRowType.SavedFilter && 'row-grouping'\r\n }\r\n />\r\n {!savedFilters.length ? (\r\n \r\n to unlock the saved filters.\r\n \r\n }\r\n >\r\n
\r\n There are no saved filters yet to receive an email notifications.\r\n
\r\n \r\n ) : null}\r\n
\r\n );\r\n};\r\n","import { useDispatch } from \"react-redux\";\r\nimport { values } from \"lodash\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { UnsubscribeAllButton } from \"../UnsubscribeAllButton\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { AlertEnabledState } from \"../../../../../../types/enums/AlertEnabledState\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\n\r\ninterface Props {\r\n disabled?: boolean;\r\n}\r\n\r\nexport function UnsubscribePortfolioAlertsButton({ disabled }: Props) {\r\n const dispatch = useDispatch();\r\n\r\n const bwicAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioBwicAlertState);\r\n const cleansingNoticeAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioCleansingNoticeAlertState);\r\n const invneotryAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioDealersInventoryAlertState);\r\n const issuanceMonitorAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioIssuanceMonitorAlertState);\r\n const outOfRiAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioOutOfRiPeriodAlertState);\r\n const outOfNcAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioOutOfNcPeriodAlertState);\r\n const rollerDeadlineAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.portfolioRollerDeadlineAlertState);\r\n const filtersAlertState = useAppSelector(s => s.manageEmailPreferences.portfolioSavedFilterAlerts);\r\n\r\n const hasEnabledAlerts = () =>\r\n [\r\n bwicAlertState,\r\n cleansingNoticeAlertState,\r\n invneotryAlertState,\r\n issuanceMonitorAlertState,\r\n outOfRiAlertState,\r\n outOfNcAlertState,\r\n rollerDeadlineAlertState,\r\n ].some(\r\n (alertState) =>\r\n alertState === AlertEnabledState.Enabled ||\r\n alertState === AlertEnabledState.PartiallyEnabled\r\n ) ||\r\n values(filtersAlertState).some(\r\n (x) =>\r\n x.bwicAlert === AlertOption.Instant ||\r\n x.inventoryAlert === AlertOption.Instant\r\n );\r\n\r\n return (\r\n dispatch(manageEmailPreferencesActions.unsubscribeAllPortfolio())}\r\n disabled={disabled || !hasEnabledAlerts()}\r\n />\r\n );\r\n}\r\n","import { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { manageEmailPreferencesActions } from '../../../../../../actions/manage-email-preferences.actions';\r\nimport { routes } from '../../../../../../constants/routes';\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { AlertEnabledState } from '../../../../../../types/enums/AlertEnabledState';\r\nimport { StatusMessageSectionType } from '../../../../../../types/state/NotificationState';\r\nimport { isRequesting } from '../../../../../../utils';\r\nimport { RouteLeavingGuard } from '../../../../../routing';\r\nimport { StatusMessageSection } from '../../../../../status-message/StatusMessageSection';\r\nimport { SavePortfolioAlertsButton } from './SavePortfolioAlertsButton';\r\nimport { PageConfigType } from '../../../../../../types/page-config/PageConfigType';\r\nimport { BwicFilterType } from '../../../../../../types/filters/FilterState';\r\nimport { usePageConfig } from '../../../../../common/pageConfig/usePageConfig';\r\nimport { PortfolioUserConfigFilter } from '../../../../../../types/user-config/UserConfigFilter';\r\nimport { usePortfolioAlertsChangedState } from './usePortfolioAlertsChangedState';\r\nimport { UnsubscribePortfolioAlertsButton } from './UnsubscribePortfolioAlertsButton';\r\nimport { AlertOption, instantAlertOptions, periodicAlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { emailPreferencesUtils } from '../../../../../../utils/email-preferences.utils';\r\nimport { PortfolioFiltersAlertsTable } from './PortfolioFilterAlertsTable';\r\nimport { EmailPreferencesRadioGroup } from '../EmailPreferencesRadioGroup';\r\nimport { textLabels } from '../../../../../../constants/text-labels';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\n\r\nexport const portfolioImRequiredFeatures = [\r\n SubscriptionFeature.IssuanceMonitorFullAccess,\r\n SubscriptionFeature.PortfolioAlerts,\r\n];\r\n\r\nexport function PortfolioTab() {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { config, requestState, updateRequestState } = usePageConfig(\r\n PageConfigType.Portfolio,\r\n true,\r\n BwicFilterType.Portfolio,\r\n );\r\n const savePreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n\r\n\r\n const portfolioCleansingNoticeAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioCleansingNoticeAlertState,\r\n );\r\n const portfolioIssuanceMonitorAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioIssuanceMonitorAlertState,\r\n );\r\n const portfolioRiAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioOutOfRiPeriodAlertState,\r\n );\r\n const portfolioNcAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioOutOfNcPeriodAlertState,\r\n );\r\n const portfolioRollerDeadlineAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioRollerDeadlineAlertState,\r\n );\r\n const allSecuritiesBwicAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioBwicAlertState,\r\n );\r\n const allSecuritiesInventortAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioDealersInventoryAlertState,\r\n );\r\n\r\n const cleansingNoticeAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioCleansingNoticeAlertState,\r\n AlertOption.Instant,\r\n );\r\n const issuanceMonitorAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioIssuanceMonitorAlertState,\r\n AlertOption.Instant,\r\n );\r\n const riAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioRiAlertState,\r\n AlertOption.Periodic,\r\n );\r\n const ncAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioNcAlertState,\r\n AlertOption.Periodic,\r\n );\r\n const rollerDeadlineAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioRollerDeadlineAlertState,\r\n AlertOption.Instant,\r\n );\r\n\r\n const allSecuritiesBwicAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n allSecuritiesBwicAlertState,\r\n AlertOption.Instant,\r\n );\r\n const allSecuritiesInventoryAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n allSecuritiesInventortAlertState,\r\n AlertOption.Instant,\r\n );\r\n\r\n const hasChanges = usePortfolioAlertsChangedState();\r\n\r\n const handleChangeImAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioIssuanceMonitorAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleChangeRiAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioRiAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleChangeNcAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioNcAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleChangeRollerDeadlineAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioRollerDeadlineAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleBwicAlertChange = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioBwicAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleCleansingNoticeAlertChange = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioCleansingNoticeAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleInventoryAlertChange = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioInventoryAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const withPartialCheck = [\r\n portfolioCleansingNoticeAlertState,\r\n portfolioIssuanceMonitorAlertState,\r\n portfolioRiAlertState,\r\n portfolioNcAlertState,\r\n portfolioRollerDeadlineAlertState,\r\n allSecuritiesBwicAlertState,\r\n allSecuritiesInventortAlertState,\r\n ].some((alertState) => alertState === AlertEnabledState.PartiallyEnabled);\r\n\r\n return (\r\n <>\r\n
\r\n {withPartialCheck && (\r\n \r\n Some alerts are disabled on partial check, see Portfolio page\r\n for details and management.\r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n dispatch(manageEmailPreferencesActions.rollbackPortfolio());\r\n dispatch(manageEmailPreferencesActions.resetPortfolioFilterAlerts());\r\n history.push(pathname);\r\n }}\r\n shouldBlockNavigation={() => hasChanges}\r\n />\r\n
\r\n \r\n );\r\n}\r\n","import { useState } from \"react\";\r\nimport { TabItem, TabList } from \"../../../../../bidding/common/tab-list\";\r\nimport { TabContent } from \"../../../../../amrPipeline/common/tabs/TabContent\";\r\nimport { PortfolioUserConfigFilter } from \"../../../../../../types/user-config/UserConfigFilter\";\r\nimport { PortfolioFiltersAlertsTable } from \"./PortfolioFilterAlertsTable\";\r\nimport {\r\n AlertOption,\r\n instantAlertOptions,\r\n periodicAlertOption,\r\n} from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { user } from \"../../../../../../user\";\r\nimport { textLabels } from \"../../../../../../constants/text-labels\";\r\nimport { AlertEnabledState } from \"../../../../../../types/enums/AlertEnabledState\";\r\nimport { EmailPreferencesRadioGroup } from \"../EmailPreferencesRadioGroup\";\r\nimport { portfolioImRequiredFeatures } from \"./PortfolioTab\";\r\n\r\ntype OnChangeHandler = (alertOption: AlertOption) => void;\r\n\r\ninterface Props {\r\n cnAlert: AlertOption;\r\n cnState?: AlertEnabledState;\r\n onChangeCnAlert: OnChangeHandler;\r\n imAlert: AlertOption;\r\n imState?: AlertEnabledState;\r\n onChangeImAlert: OnChangeHandler;\r\n outOfRiAlert: AlertOption;\r\n outOfRiState?: AlertEnabledState;\r\n onChangeOutOfRiAlert: OnChangeHandler;\r\n outOfNcAlert: AlertOption;\r\n outOfNcState?: AlertEnabledState;\r\n onChangeOutOfNcAlert: OnChangeHandler;\r\n rollerDeadlineAlert: AlertOption;\r\n rollerDeadlineState?: AlertEnabledState;\r\n onChangeRollerDeadlineAlert: OnChangeHandler;\r\n bwicAlert: AlertOption;\r\n bwicState?: AlertEnabledState;\r\n onChangeBwicAlert: OnChangeHandler;\r\n inventoryAlert: AlertOption;\r\n inventoryState?: AlertEnabledState;\r\n onChangeInventoryAlert: OnChangeHandler;\r\n portfolioFilters?: PortfolioUserConfigFilter[];\r\n isFilterTableDisabled?: boolean;\r\n}\r\n\r\nconst convertToCount = (option: AlertOption) =>\r\n option === AlertOption.Never ? 0 : 1;\r\n\r\nconst renderCounter = (optionsCount: number[]) => {\r\n const selectedOptions = optionsCount.reduce(\r\n (acc, option) => acc + option,\r\n 0\r\n );\r\n\r\n return (\r\n \r\n ({selectedOptions}/{optionsCount.length})\r\n \r\n );\r\n};\r\n\r\nexport function PortfolioAlertsTabs({\r\n cnAlert,\r\n cnState,\r\n onChangeCnAlert,\r\n bwicAlert,\r\n bwicState,\r\n onChangeBwicAlert,\r\n inventoryAlert,\r\n inventoryState,\r\n onChangeInventoryAlert,\r\n imAlert,\r\n imState,\r\n onChangeImAlert,\r\n outOfRiAlert,\r\n outOfRiState,\r\n onChangeOutOfRiAlert,\r\n outOfNcAlert,\r\n outOfNcState,\r\n onChangeOutOfNcAlert,\r\n rollerDeadlineAlert,\r\n rollerDeadlineState,\r\n onChangeRollerDeadlineAlert,\r\n portfolioFilters,\r\n isFilterTableDisabled,\r\n}: Props) {\r\n const filtersAlertState = useAppSelector(s => s.manageEmailPreferences.portfolioSavedFilterAlerts);\r\n\r\n const portfolioAlertsAccess = user.hasFeatures(SubscriptionFeature.PortfolioAlerts);\r\n\r\n const portfolioImAlertsAccess = user.hasAllFeatures(\r\n ...[\r\n SubscriptionFeature.IssuanceMonitorFullAccess,\r\n SubscriptionFeature.PortfolioAlerts,\r\n ]\r\n );\r\n const [isPrimary, setIsPrimary] = useState(true);\r\n\r\n const savedFiltersBwicAlertOption = portfolioFilters?.some((p) => {\r\n const alert = filtersAlertState[p.referenceName]?.bwicAlert;\r\n return alert && alert !== AlertOption.Never;\r\n })\r\n ? AlertOption.Instant\r\n : AlertOption.Never;\r\n\r\n const savedFiltersInventoryAlertOption = portfolioFilters?.some((p) => {\r\n const alert = filtersAlertState[p.referenceName]?.inventoryAlert;\r\n return alert && alert !== AlertOption.Never;\r\n })\r\n ? AlertOption.Instant\r\n : AlertOption.Never;\r\n\r\n const primaryAlerts = [\r\n portfolioImAlertsAccess ? convertToCount(cnAlert) : 0,\r\n portfolioImAlertsAccess ? convertToCount(imAlert) : 0,\r\n portfolioImAlertsAccess ? convertToCount(outOfRiAlert) : 0,\r\n portfolioImAlertsAccess ? convertToCount(outOfNcAlert) : 0,\r\n portfolioImAlertsAccess ? convertToCount(rollerDeadlineAlert) : 0,\r\n ];\r\n\r\n const secondaryAlerts = [\r\n convertToCount(bwicAlert),\r\n convertToCount(inventoryAlert),\r\n ...(portfolioFilters?.length && portfolioAlertsAccess\r\n ? [convertToCount(savedFiltersBwicAlertOption)]\r\n : []),\r\n ...(portfolioFilters?.length && portfolioAlertsAccess\r\n ? [convertToCount(savedFiltersInventoryAlertOption)]\r\n : []),\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n Primary {renderCounter(primaryAlerts)}}\r\n onClick={() => setIsPrimary(true)}\r\n />\r\n Secondary {renderCounter(secondaryAlerts)}}\r\n onClick={() => setIsPrimary(false)}\r\n />\r\n \r\n \r\n {isPrimary ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n {!!portfolioFilters && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\n","import { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { routes } from '../../../../../../constants/routes';\r\nimport { isRequesting, isRequestNone, isRequestSuccess } from \"../../../../../../utils/request-state.utils\";\r\nimport { Preloader } from \"../../../../../common/Preloader\";\r\nimport { Popup, PopupBody, PopupFooter } from \"../../../../../controls\"\r\nimport { SavedFiltersAlerts } from \"../../SavedFiltersAlerts\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { usePageConfig } from \"../../../../../common/pageConfig/usePageConfig\";\r\nimport { PageConfigType } from \"../../../../../../types/page-config/PageConfigType\";\r\nimport { BwicFilterType } from \"../../../../../../types/filters/FilterState\";\r\nimport { DealerInventoryAlertsSaveButton } from \"./DealerInventoryAlertsSaveButton\";\r\nimport { EmailPreferencesTab } from \"../../EmailPreferencesContent\";\r\nimport { UserConfigFilter } from \"../../../../../../types/user-config/UserConfigFilter\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { EmailPreferencesRadioGroup } from \"../EmailPreferencesRadioGroup\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { FilterColumnsKeys } from \"../../../../../amrPipeline/aggregated/email-alerts/issuance-monitor/filterColumns\";\r\nimport { textLabels } from \"../../../../../../constants/text-labels\";\r\n\r\ninterface DealerInventoryAlertsPopupProps {\r\n onClose: () => void\r\n}\r\n\r\nexport const DealerInventoryAlertsPopup = ({ onClose }: DealerInventoryAlertsPopupProps) => {\r\n const dispatch = useDispatch();\r\n\r\n const requestStateGetPreferences = useAppSelector(s => s.manageEmailPreferences.requestStateGetPreferences);\r\n const dealerInventoryAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.dealerInventoryAlertState);\r\n const requestStateSave = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n const filter = useAppSelector(s => s.filters.inventory.filter);\r\n const visibleFilters = useAppSelector(s => s.filters.inventory.visibleFilters);\r\n\r\n const { config, requestState, updateRequestState, saveAlerts } = usePageConfig(\r\n PageConfigType.DealerInventory,\r\n false,\r\n BwicFilterType.Inventory\r\n );\r\n\r\n const isLoading = isRequesting(\r\n requestStateGetPreferences,\r\n requestState,\r\n updateRequestState\r\n );\r\n\r\n useEffect(() => {\r\n if (isRequestSuccess(requestStateSave)) {\r\n onClose();\r\n } // eslint-disable-next-line\r\n }, [requestStateSave])\r\n\r\n useEffect(() => () => {\r\n dispatch(manageEmailPreferencesActions.reset())\r\n }, [dispatch])\r\n\r\n useEffect(() => {\r\n if (isRequestNone(requestStateGetPreferences)) {\r\n dispatch(manageEmailPreferencesActions.getInitialDataRequest());\r\n }\r\n }, [dispatch, requestStateGetPreferences]);\r\n\r\n const handleSave = (updatedFilters?: UserConfigFilter[]) => {\r\n dispatch(manageEmailPreferencesActions.saveEmailPreferencesRequest());\r\n if (updatedFilters?.length) {\r\n saveAlerts(updatedFilters);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n dispatch(manageEmailPreferencesActions.setDealerInventoryAlertState(alertOption))}\r\n requiredFeature={SubscriptionFeature.InventoryAlerts}\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Manage Alerts\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useState } from 'react';\r\nimport IconSVG from '../../../../../../styles/svg-icons';\r\nimport { DealerInventoryAlertsPopup } from './DealerInventoryAlertsPopup';\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { useEmailPreferences } from '../../../../../../effects/data-accessors/useEmailPreferences';\r\nimport { usePageConfig } from '../../../../../common/pageConfig/usePageConfig';\r\nimport { PageConfigType } from '../../../../../../types/page-config/PageConfigType';\r\nimport { BwicFilterType } from '../../../../../../types/filters/FilterState';\r\n\r\nexport const DealerInventoryAlertsPreferences = () => {\r\n const [showModal, setShowModal] = useState(false);\r\n const isAnyGlobalAlertEnabled = useAppSelector(s => s.entities.emailPreferences.preferences?.dealerInventoryAlertState !== AlertOption.Never);\r\n const { config } = usePageConfig(PageConfigType.DealerInventory, true, BwicFilterType.Inventory);\r\n const isAnyFilterAlertEnabled = config?.filters.some(f => f.alertOption !== AlertOption.Never);\r\n const isAnyAlertEnabled = isAnyFilterAlertEnabled || isAnyGlobalAlertEnabled;\r\n\r\n useEmailPreferences();\r\n\r\n return (<>\r\n setShowModal(true)}\r\n >\r\n \r\n Alerts\r\n \r\n {showModal && setShowModal(false)} />}\r\n )\r\n}\r\n","import React from 'react';\r\nimport { useAppSelector } from '../../../../../effects/useAppSelector';\r\nimport { Currency } from '../../../../../types/enums/Currency';\r\nimport { Rating } from '../../../../../types/enums/Rating';\r\nimport { Checkbox } from '../../../../controls';\r\nimport { useDispatch } from 'react-redux';\r\nimport { manageEmailPreferencesActions } from '../../../../../actions/manage-email-preferences.actions';\r\nimport { emailPreferencesUtils } from '../../../../../utils/email-preferences.utils';\r\nimport { ActionBlocker } from '../../../../access/ActionBlocker';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\n\r\ninterface Props {\r\n currency: Currency;\r\n rating: Rating;\r\n disabled: boolean;\r\n}\r\n\r\nexport const EmailPreferencesTableRating: React.FC = ({ rating, currency, disabled }) => {\r\n const dispatch = useDispatch();\r\n const checked = useAppSelector(s =>\r\n !!s.manageEmailPreferences.editPreferences.ratingPreference.find(\r\n r => r.rating === rating && emailPreferencesUtils.isCurrencyActive(r, currency)\r\n )\r\n );\r\n\r\n return (\r\n \r\n {blocked =>\r\n \r\n dispatch(manageEmailPreferencesActions.setRatingCheckedState(rating, currency, e.target.checked))\r\n }\r\n label={rating}\r\n checked={checked && !blocked}\r\n />}\r\n \r\n )\r\n};\r\n","import React, { useCallback } from 'react';\r\nimport { useAppSelector } from '../../../../../effects/useAppSelector';\r\nimport { Currency } from '../../../../../types/enums/Currency';\r\nimport { Checkbox } from '../../../../controls';\r\nimport { useDispatch } from 'react-redux';\r\nimport { manageEmailPreferencesActions } from '../../../../../actions/manage-email-preferences.actions';\r\nimport { isRequesting } from '../../../../../utils';\r\nimport { AlertOption } from '../../../../../types/email-preferences/EmailPreferences';\r\nimport { ActionBlocker } from '../../../../access/ActionBlocker';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\n\r\ninterface Props {\r\n currency: Currency,\r\n}\r\n\r\nexport const EmailPreferencesTableRatingTitle: React.FC = ({ currency }) => {\r\n const dispatch = useDispatch();\r\n\r\n const ratingPreference = useAppSelector(s => s.manageEmailPreferences.editPreferences.ratingPreference);\r\n const bwicByRatingAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.bwicByRatingAlertState);\r\n const isRequestStateSaving = useAppSelector(s => isRequesting(s.manageEmailPreferences.requestStateSaveEditPreferences));\r\n\r\n const isSelected = useCallback(\r\n () => !!ratingPreference.length && ratingPreference.every(r => r[`is${currency}`]),\r\n [ratingPreference, currency]\r\n );\r\n\r\n const isPartially = useCallback(\r\n () =>\r\n !!ratingPreference.length &&\r\n ratingPreference.some(r => r[`is${currency}`]) &&\r\n ratingPreference.some(r => !r[`is${currency}`]),\r\n [ratingPreference, currency]\r\n );\r\n\r\n return (\r\n \r\n {blocked =>\r\n dispatch(manageEmailPreferencesActions.setRatingInCurrencyCheckedState(currency, e.target.checked))}\r\n checked={!blocked && isSelected()}\r\n partially={!blocked && isPartially()}\r\n label={currency}\r\n />}\r\n \r\n )\r\n};\r\n","import React, { ChangeEvent, useRef, useState } from 'react';\r\nimport MaskedInput from 'react-text-mask';\r\nimport cn from 'classnames';\r\nimport createNumberMask from 'text-mask-addons/dist/createNumberMask';\r\nimport { useAppSelector } from '../../../../../effects/useAppSelector';\r\nimport { Rating } from '../../../../../types/enums/Rating';\r\nimport { useDispatch } from 'react-redux';\r\nimport { manageEmailPreferencesActions } from '../../../../../actions/manage-email-preferences.actions';\r\nimport { constants, errorMessages } from '../../../../../constants';\r\nimport { emailPreferencesUtils } from '../../../../../utils/email-preferences.utils';\r\nimport { FormError } from '../../../../controls';\r\nimport { ActionBlocker } from '../../../../access/ActionBlocker';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\n\r\ntype SizeType = 'minSize' | 'maxSize';\r\n\r\ninterface Props {\r\n rating: Rating;\r\n type: SizeType;\r\n disabled: boolean;\r\n}\r\n\r\nexport const EmailPreferencesTableSize: React.FC = ({ rating, type, disabled }) => {\r\n const dispatch = useDispatch();\r\n\r\n const [hover, setHover] = useState(false);\r\n\r\n const inputRef = useRef();\r\n\r\n const editingRating = useAppSelector(s =>\r\n s.manageEmailPreferences.editPreferences.ratingPreference.find(p => p.rating === rating)\r\n ) || emailPreferencesUtils.getDefaultRatingPreferences(rating);\r\n\r\n const value = editingRating[type];\r\n const isActive = editingRating.isUSD || editingRating.isEUR;\r\n\r\n const handleChange = (e: ChangeEvent) => {\r\n const value = e.target.value.replace(/,/g, '');\r\n dispatch(manageEmailPreferencesActions.setRatingSize(rating, Number(value), type));\r\n //Fix focus loose issue when error displayed\r\n setTimeout(() => inputRef.current?.inputElement.focus());\r\n };\r\n\r\n const getErrorMessage = () => {\r\n if (value < constants.emailPreferencesSizeRange.min || value > constants.emailPreferencesSizeRange.max) {\r\n return errorMessages.invalidRangeSize(constants.emailPreferencesSizeRange.min, constants.emailPreferencesSizeRange.max);\r\n }\r\n if (type === 'maxSize' && editingRating.minSize > editingRating.maxSize) {\r\n return errorMessages.maxSizeLessThenMin;\r\n }\r\n return null;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {blocked =>\r\n inputRef.current = r}\r\n disabled={!(editingRating.isUSD || editingRating.isEUR) || disabled || blocked}\r\n className={cn('form-control', { 'is-invalid': !!getErrorMessage() && isActive && !hover && !disabled })}\r\n mask={createNumberMask({ prefix: '', includeThousandsSeparator: true })}\r\n max={constants.emailPreferencesSizeRange.max}\r\n onChange={handleChange}\r\n value={blocked ? \"\" : value}\r\n onFocus={() => setHover(true)}\r\n onBlur={() => setHover(false)}\r\n />}\r\n \r\n \r\n \r\n )\r\n};\r\n\r\n\r\n","import { useAppSelector } from '../../../../../effects/useAppSelector';\r\nimport { AlertOption } from \"../../../../../types/email-preferences/EmailPreferences\";\r\nimport { Currency } from \"../../../../../types/enums/Currency\";\r\nimport { Rating, Ratings } from \"../../../../../types/enums/Rating\";\r\nimport { isRequesting } from \"../../../../../utils\";\r\nimport { Table } from \"../../../../bidding/common/table\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { IColumnDefinition } from \"../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { EmailPreferencesTableRating } from \"./EmailPreferencesTableRating\";\r\nimport { EmailPreferencesTableRatingTitle } from \"./EmailPreferencesTableRatingTitle\";\r\nimport { EmailPreferencesTableSize } from \"./EmailPreferencesTableSize\";\r\n\r\nexport const EmailPreferencesByRating = () => {\r\n const bwicByRatingAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.bwicByRatingAlertState);\r\n const isRequestStateSaving = useAppSelector(s => isRequesting(s.manageEmailPreferences.requestStateSaveEditPreferences));\r\n const disabled = isRequestStateSaving || bwicByRatingAlertState === AlertOption.Never;\r\n\r\n const columnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: `rating-${Currency.USD}`,\r\n renderColumnContent: rating =>\r\n ,\r\n renderColumnHeaderContent: () => ,\r\n headerClassName: '',\r\n bodyClassName: ''\r\n },\r\n {\r\n columnKey: `rating-${Currency.EUR}`,\r\n renderColumnContent: rating =>\r\n ,\r\n renderColumnHeaderContent: () => ,\r\n headerClassName: '',\r\n bodyClassName: ''\r\n },\r\n {\r\n columnKey: 'min-size',\r\n renderColumnContent: rating => ,\r\n renderColumnHeaderContent: () => 'Min Size',\r\n headerClassName: 'data-list-cell-lg padding-l-0',\r\n bodyClassName: 'data-list-cell-lg text-right overflow-visible'\r\n },\r\n {\r\n columnKey: 'dash',\r\n renderColumnContent: () => <>—,\r\n renderColumnHeaderContent: () => '',\r\n headerClassName: 'data-list-cell-symbol',\r\n bodyClassName: 'data-list-cell-symbol'\r\n },\r\n {\r\n columnKey: 'max-size',\r\n renderColumnContent: rating => ,\r\n renderColumnHeaderContent: () => 'Max Size',\r\n headerClassName: 'data-list-cell-lg',\r\n bodyClassName: 'data-list-cell-lg text-right overflow-visible'\r\n },\r\n ];\r\n return new ColumnBuilder(c))} dataItems={Ratings} />;\r\n}\r\n","import { useDispatch } from \"react-redux\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\nimport { StatusMessageSectionType } from \"../../../../../../types/state/NotificationState\";\r\nimport { isRequesting } from \"../../../../../../utils/request-state.utils\";\r\nimport { StatusMessageSection } from \"../../../../../status-message/StatusMessageSection\";\r\nimport { EmailPreferencesByRating } from \"../EmailPreferencesByRating\";\r\nimport { EmailPreferencesRadioGroup } from \"../EmailPreferencesRadioGroup\"\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\n\r\ninterface BwicMonitorAlertsTableProps {\r\n collapsible?: boolean;\r\n}\r\n\r\nexport const BwicMonitorAlertsTable = ({ collapsible = false }: BwicMonitorAlertsTableProps) => {\r\n const dispatch = useDispatch();\r\n const bwicByRatingAlertState = useAppSelector(s => s.manageEmailPreferences.editPreferences.bwicByRatingAlertState);\r\n const isRequestingSavePreferences = useAppSelector(s => isRequesting(s.manageEmailPreferences.requestStateSaveEditPreferences));\r\n\r\n const ratingPreference = useAppSelector(s => s.manageEmailPreferences.editPreferences.ratingPreference);\r\n\r\n const bwicByRatingAlertStatePartiallySelected =\r\n ratingPreference.some(({ isUSD, isEUR }) => isUSD || isEUR) &&\r\n ratingPreference.some(({ isUSD, isEUR }) => !isUSD || !isEUR)\r\n\r\n const isBwicByRatingAlertStateAtLeastOneSelected = useAppSelector(s => {\r\n const preferences = s.manageEmailPreferences.editPreferences.ratingPreference;\r\n return preferences.some(({ isUSD, isEUR }) => isUSD || isEUR);\r\n });\r\n\r\n return (\r\n dispatch(manageEmailPreferencesActions.setBwicByRatingPreferences(alertOption))}\r\n partially={bwicByRatingAlertStatePartiallySelected}\r\n requiredFeature={SubscriptionFeature.BwicMonitorAlerts}\r\n collapsible={collapsible}\r\n >\r\n {!isBwicByRatingAlertStateAtLeastOneSelected && bwicByRatingAlertState !== AlertOption.Never ?\r\n \r\n Cannot be saved without selecting at least one option below\r\n \r\n : null}\r\n \r\n \r\n )\r\n}\r\n","import IconSVG from \"../../../styles/svg-icons\";\r\n\r\ninterface ProfileMenuSectionProps {\r\n children: React.ReactNode;\r\n title: React.ReactNode;\r\n icon?: string;\r\n}\r\n\r\nexport const ProfileMenuSection = ({ children, title, icon }: ProfileMenuSectionProps) => (\r\n <>\r\n

\r\n \r\n {title}\r\n

\r\n {children}\r\n \r\n)","import { Link } from \"react-router-dom\"\r\nimport { routes } from \"../../../constants/routes\"\r\nimport { roles } from \"../../../constants/roles\"\r\nimport { ShowFor } from \"../../access/ShowFor\"\r\nimport { ProfileMenuSection } from \"./ProfileMenuSection\"\r\nimport { EmailPreferencesTab } from \"../tabs/email-preferences/EmailPreferencesContent\"\r\nimport { user } from \"../../../user/user\"\r\nimport { useAgreement } from \"../../seller-buyside/useAgreement\"\r\nimport { SettlementAgreementStatus } from \"../../../types/bid-as-dealer/SettlementAgreementStatus\"\r\n\r\ninterface ProfileMenuItemsProps {\r\n onItemClick: () => void\r\n}\r\n\r\nexport const ProfileMenuItems = ({ onItemClick }: ProfileMenuItemsProps) => {\r\n const agreementState = useAgreement();\r\n\r\n const isBd = user.hasRoles(...roles.bd());\r\n const isSellerAdmin = user.hasRoles(roles.SellerAdministrator);\r\n\r\n return (\r\n <>\r\n \r\n \r\n Personal\r\n \r\n \r\n Password\r\n \r\n \r\n \r\n Alerts Center\r\n \r\n \r\n \r\n\r\n \r\n \r\n Information\r\n \r\n {!isSellerAdmin &&\r\n <>\r\n \r\n \r\n Platform Users\r\n \r\n \r\n \r\n \r\n Platform Users\r\n \r\n \r\n \r\n {\r\n !user.current()?.isClearingBank &&\r\n (!isBd || agreementState.agreement?.agreementStatus === SettlementAgreementStatus.confirmed) &&\r\n \r\n Trading Limits\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n \r\n Subscription\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Platform Users\r\n \r\n \r\n Trading Limits\r\n \r\n \r\n Counterparties\r\n \r\n \r\n \r\n \r\n )\r\n}","import { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport cn from 'classnames';\r\nimport { useHistory } from 'react-router';\r\nimport { routes } from '../../../constants/routes';\r\nimport { user } from '../../../user/user';\r\nimport { nameUtils } from '../../../utils/name.utils';\r\nimport { profileActions } from '../../../actions/profile.actions';\r\nimport { UserProfilePhotoViewer } from '../../user-profile-photo/UserProfilePhotoViewer';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { OnHoverTooltip } from '../../common/OnHoverTooltip';\r\nimport { ProfileMenuItems } from './ProfileMenuItems';\r\nimport { ClickOutside } from '../../common/ClickOutside';\r\n\r\nexport const ProfileMenu = () => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [showUserDropdown, setShowUserDropdown] = useState(false);\r\n\r\n const handleLogout = () => {\r\n history.replace(routes.logout);\r\n };\r\n\r\n const handleUploadUserImage = () => {\r\n dispatch(profileActions.setVisibleUploadImagePopup(true));\r\n setShowUserDropdown(false);\r\n };\r\n\r\n const currentUser = user.current();\r\n if (!currentUser) {\r\n return null;\r\n }\r\n \r\n const { firstName, lastName, email } = currentUser;\r\n const profileClassNames = cn('navbar-profile navbar-item-dropdown', {\r\n 'is-show': showUserDropdown\r\n });\r\n\r\n const renderUserImage = () =>\r\n \r\n\r\n return (\r\n setShowUserDropdown(false)}>\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n {showUserDropdown && renderUserImage()}\r\n \r\n
\r\n
\r\n
{firstName} {lastName}
\r\n
\r\n \r\n {email}\r\n \r\n
\r\n
\r\n\r\n setShowUserDropdown(false)} />\r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { useDispatch } from \"react-redux\";\r\nimport cn from \"classnames\";\r\nimport { manageEmailPreferencesActions } from \"../../../../../../actions/manage-email-preferences.actions\";\r\nimport { useAppSelector } from \"../../../../../../effects/useAppSelector\";\r\nimport { BwicFilterType } from \"../../../../../../types/filters/FilterState\";\r\nimport { PageConfigType } from \"../../../../../../types/page-config/PageConfigType\";\r\nimport { usePageConfig } from \"../../../../../common/pageConfig/usePageConfig\";\r\nimport { isRequestNone, isRequesting } from \"../../../../../../utils/request-state.utils\";\r\nimport { PortfolioUserConfigFilter } from \"../../../../../../types/user-config/UserConfigFilter\";\r\nimport { usePortfolioAlertsChangedState } from \"./usePortfolioAlertsChangedState\";\r\nimport { AlertOption } from \"../../../../../../types/email-preferences/EmailPreferences\";\r\n\r\ninterface Props {\r\n className?: string;\r\n}\r\n\r\nexport function SavePortfolioAlertsButton({ className }: Props) {\r\n const dispatch = useDispatch();\r\n\r\n const { config, saveAlerts, requestState, updateRequestState } =\r\n usePageConfig(PageConfigType.Portfolio, true, BwicFilterType.Portfolio);\r\n\r\n const hasChanges = usePortfolioAlertsChangedState();\r\n const filtersAlertState = useAppSelector(s => s.manageEmailPreferences.portfolioSavedFilterAlerts);\r\n const savePreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n const filters = config?.filters as PortfolioUserConfigFilter[] ?? [];\r\n\r\n const handleSave = () => {\r\n if (filters.length) {\r\n const newFilterAlerts = filters.map(f => ({\r\n ...f,\r\n bwicAlertOption: filtersAlertState[f.referenceName]?.bwicAlert ?? AlertOption.Never,\r\n dealerInventoryAlertOption: filtersAlertState[f.referenceName]?.inventoryAlert ?? AlertOption.Never,\r\n }));\r\n\r\n saveAlerts(newFilterAlerts);\r\n }\r\n\r\n dispatch(manageEmailPreferencesActions.saveEmailPreferencesRequest());\r\n }\r\n\r\n return (\r\n \r\n Save\r\n \r\n )\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { UserStatus } from '../../../../../types/account/UserStatus';\r\nimport { UserStatusDetails } from '../../../../common/UserStatusDetails';\r\nimport { Popover } from '../../../../controls';\r\nimport { userRequestStatuses } from '../../../../../constants';\r\nimport { UserRequestStatus } from '../../../../../types/management/UserRequestStatus';\r\n\r\ninterface Props {\r\n userRequestStatus?: UserRequestStatus;\r\n userStatus?: UserStatus;\r\n blockReason?: string;\r\n}\r\n\r\nexport const RequestUserStatusDetails: React.FC = ({ userStatus, userRequestStatus, blockReason }) => {\r\n if (userStatus) {\r\n return \r\n }\r\n const hasBlockedReason = userRequestStatus === UserRequestStatus.Blocked && blockReason;\r\n\r\n if (userRequestStatus) {\r\n const statusClasses = classNames({\r\n [`first-letter status ${userRequestStatuses.getByStatusCode(userRequestStatus)?.className}`]: true,\r\n 'has-blocked-reason': hasBlockedReason\r\n });\r\n\r\n if (!hasBlockedReason) {\r\n return (\r\n
\r\n {userRequestStatuses.getByStatusCode(userRequestStatus)?.title}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )}\r\n >\r\n
\r\n \r\n {blockReason}\r\n
\r\n \r\n )\r\n }\r\n\r\n return null;\r\n};\r\n","import { useEffect, useState } from \"react\"\r\nimport { RequestState } from \"../../../../../constants/request-state\"\r\nimport { Subscription } from \"../../../../../types/billing/Subscription\";\r\nimport { isRequestNone } from \"../../../../../utils\";\r\nimport { billingService } from \"../../../../../services\";\r\n\r\nexport function useSubscriptions() {\r\n const [requestState, setRequestState] = useState(RequestState.none);\r\n const [subscriptions, setSubscriptions] = useState([]);\r\n\r\n useEffect(() => {\r\n if(isRequestNone(requestState)){\r\n (async function doRequest() {\r\n setRequestState(RequestState.request)\r\n\r\n try {\r\n const subscriptions = await billingService.getSubscriptions();\r\n setSubscriptions(subscriptions);\r\n setRequestState(RequestState.success)\r\n } catch {\r\n setRequestState(RequestState.failure)\r\n }\r\n })();\r\n }\r\n }, [requestState])\r\n\r\n return { requestState, subscriptions };\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport classNames from \"classnames\";\r\nimport { Form } from '../../forms';\r\nimport { profileActions } from '../../../actions';\r\nimport { validateEmail } from '../../../utils';\r\nimport { errorMessages } from '../../../constants';\r\nimport { AppState } from '../../../types/state/AppState';\r\nimport { FormError } from '../../controls';\r\nimport { user } from '../../../user';\r\nimport { useAppDispatch } from '../../../effects/useAppDispatch';\r\n\r\nexport const ChangeBloombergEmail: React.FC = () => {\r\n const dispatch = useAppDispatch();\r\n const emailDomain = '@bloomberg.net';\r\n const email = user.current()?.bloombergEmail || '';\r\n const requestStatusSaveEmail = useSelector((state: AppState) => state.profile.requestStatusSaveBloombergEmail);\r\n const [error, setError] = useState('');\r\n const [emailName, setEmailName] = useState('');\r\n const isDisabledSaveButton = requestStatusSaveEmail || emailName === email.split('@')[0];\r\n\r\n useEffect(() => {\r\n setEmailName(email.split('@')[0]);\r\n }, [email]);\r\n\r\n const handleChange = (e: React.ChangeEvent) => {\r\n const { value } = e.target;\r\n const [mail, domain] = value.trim().split('@');\r\n const newEmailName = `@${domain}` === emailDomain ? mail : value;\r\n if (error) {\r\n setError('')\r\n }\r\n setEmailName(newEmailName);\r\n };\r\n\r\n const handleSave = () => {\r\n const bloombergEmail = `${emailName}${emailDomain}`;\r\n if (emailName && !validateEmail(bloombergEmail)) {\r\n return setError(errorMessages.invalidEmail);\r\n }\r\n dispatch(profileActions.saveBloombergEmail(emailName ? bloombergEmail : ''))\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n dispatch(profileActions.toggleEditBloombergEmail())}\r\n >\r\n Cancel\r\n \r\n
\r\n \r\n
\r\n )\r\n};\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ChangePhoneNumber } from '../../account';\r\nimport { profileActions as actions } from '../../../actions';\r\nimport { nameUtils } from '../../../utils';\r\nimport { UserProfilePhotoViewer } from '../../user-profile-photo/UserProfilePhotoViewer';\r\nimport { user } from '../../../user';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { Preloader, OnHoverTooltip } from '../../common';\r\nimport { ChangeBloombergEmail } from './ChangeBloombergEmail';\r\n\r\nclass PersonalInfo extends Component {\r\n componentWillUnmount = () => this.props.dispatch(actions.personalInfoReset());\r\n\r\n renderBloombergEmail = () => {\r\n const { dispatch, changeBloombergEmailVisible } = this.props;\r\n const currentUser = user.current() || {};\r\n if (changeBloombergEmailVisible) {\r\n return ;\r\n }\r\n return (\r\n
\r\n
Bloomberg Email
\r\n
\r\n {\r\n currentUser.bloombergEmail\r\n ? (\r\n <>\r\n \r\n {currentUser.bloombergEmail}\r\n \r\n dispatch(actions.toggleEditBloombergEmail())}\r\n >\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n
\r\n
\r\n );\r\n };\r\n\r\n renderChangePhone = () => {\r\n const { dispatch, changePhoneVisible } = this.props;\r\n const profile = this.props.profile || {};\r\n\r\n if (changePhoneVisible) {\r\n return (\r\n dispatch(actions.toggleEditPhoneMode(false))}\r\n />\r\n );\r\n }\r\n return (\r\n
\r\n
Phone Number
\r\n
\r\n {\r\n profile.phone\r\n ? (\r\n <>\r\n {profile.phone}\r\n dispatch(actions.toggleEditPhoneMode(true))}\r\n >\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n
\r\n
\r\n );\r\n };\r\n\r\n render = () => {\r\n const { dispatch } = this.props;\r\n const profile = this.props.profile || {};\r\n const currentUser = user.current();\r\n\r\n return (\r\n
\r\n
\r\n

Personal

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n dispatch(actions.setVisibleUploadImagePopup(true))}\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
First Name
\r\n
{profile.firstName}
\r\n
Last Name
\r\n
{profile.lastName}
\r\n
Email
\r\n
{profile.email}
\r\n
\r\n {this.renderBloombergEmail()}\r\n {this.renderChangePhone()}\r\n {profile.linkedIn &&\r\n
\r\n
LinkedIn
\r\n
\r\n \r\n {profile.linkedIn}\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\nconst mapStateToProps = ({ profile, userProfilePhoto }) => ({\r\n profile: profile.profile,\r\n userPhotos: userProfilePhoto.userPhotos,\r\n changePhoneVisible: profile.changePhoneVisible,\r\n changeBloombergEmailVisible: profile.changeBloombergEmailVisible,\r\n isUserProfilePhotoUploading: profile.isUserProfilePhotoUploading,\r\n});\r\n\r\nconst connectedPersonalInfo = connect(mapStateToProps)(PersonalInfo);\r\nexport { connectedPersonalInfo as PersonalInfo };\r\n","import { yup } from '../../../validation/yup';\r\nimport { constants } from '../../../constants';\r\n\r\nexport const addNewTraderValidation = () => {\r\n return yup.object()\r\n .shape({\r\n firstName: yup.string()\r\n .required()\r\n .matches(constants.name.source)\r\n .max(64),\r\n lastName: yup.string()\r\n .required()\r\n .matches(constants.name.source)\r\n .max(64),\r\n title: yup.string().max(256),\r\n jobTitle: yup.string().max(256),\r\n phone: yup.string().trim()\r\n .required()\r\n .matches(constants.nonWhitespace.source)\r\n .max(constants.phoneMaxLength),\r\n email: yup.string().required().email(),\r\n })\r\n};\r\n","import React from 'react';\r\nimport { Form, Formik } from \"formik\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Popup } from '../../controls';\r\nimport { InputField } from '../../forms';\r\nimport { addNewTraderValidation } from '../validation/addNewTrader';\r\nimport { profileActions } from \"../../../actions\";\r\n\r\nfunction ModalAddEditDepartment({ visible, onClose, contact = {}, isEditModal }) {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const initialValues = {\r\n jobTitle: contact.title || '',\r\n departmentName: contact.departmentName || '',\r\n departmentValue: contact.departmentValue || '',\r\n isAdded: contact.isAdded || '',\r\n id: contact.id || '',\r\n firstName: contact.firstName || '',\r\n lastName: contact.lastName || '',\r\n email: contact.email || '',\r\n phone: contact.phone || '',\r\n };\r\n\r\n const handleSubmit = async (values) => {\r\n const submitModel = {\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n jobTitle: values.jobTitle,\r\n phone: values.phone,\r\n email: values.email,\r\n };\r\n dispatch(profileActions.editCompanyContact(submitModel, values.departmentValue));\r\n handleOnClose();\r\n };\r\n\r\n const handleOnClose = () => {\r\n if (onClose && typeof onClose === 'function') {\r\n onClose()\r\n }\r\n };\r\n\r\n if (visible) {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n}\r\n\r\nexport { ModalAddEditDepartment }\r\n","import React, { useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { ModalAddEditDepartment } from './ModalAddEditDepartment';\r\nimport { user } from '../../../user';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { constants } from '../../../constants';\r\n\r\nconst RenderContact = ({ contact, isAuthorisedUserPrimaryContact, handleEdit }) => {\r\n const renderAddEditBtn = (contact) => {\r\n if (isAuthorisedUserPrimaryContact) {\r\n if (contact.firstName || contact.lastName || contact.email || contact.phone) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n return null;\r\n };\r\n return (\r\n <>\r\n
{contact.departmentName || constants.emptyPlaceholder}
\r\n
\r\n
\r\n
\r\n {!contact.firstName && !contact.lastName ? constants.emptyPlaceholder : `${contact.firstName || ''} ${contact.lastName || ''}`}\r\n
\r\n
\r\n {contact.email ? {contact.email} : constants.emptyPlaceholder}\r\n
\r\n
{contact.phone || constants.emptyPlaceholder}
\r\n {renderAddEditBtn(contact)}\r\n
\r\n
\r\n \r\n );\r\n};\r\nexport const Company = () => {\r\n const [modalVisible, setModalVisible] = useState(false);\r\n const [contactForEdit, setContactForEdit] = useState({});\r\n const [isEditModal, setIsEditModal] = useState(false);\r\n\r\n const currentUser = user.current();\r\n const company = useSelector(state => state.profile.company || {});\r\n\r\n const contacts = company.departmentContacts ? company.departmentContacts : [];\r\n const isAuthorisedUserPrimaryContact = company.primaryContactId === currentUser.id;\r\n\r\n const handleEdit = (contact, isEdit) => {\r\n setIsEditModal(isEdit);\r\n setContactForEdit({ ...contact });\r\n setModalVisible(true)\r\n };\r\n\r\n const handleCloseModal = () => {\r\n setContactForEdit({});\r\n setModalVisible(false)\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

Information

\r\n
\r\n
\r\n
\r\n

Company

\r\n
\r\n
\r\n
Company
\r\n
{company.companyName}
\r\n
Website
\r\n
\r\n {company.website ? {company.website} : constants.emptyPlaceholder}\r\n
\r\n
\r\n
\r\n
Address
\r\n
\r\n
\r\n {company.address}
\r\n {company.city}, {company.state}
\r\n {company.zipCode ? `${company.zipCode},` : ''} {company.country}\r\n
\r\n
\r\n
\r\n
\r\n

Contacts

\r\n
\r\n
\r\n\r\n {contacts.map(contact =>\r\n \r\n )}\r\n\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ChangePassword } from '../../account';\r\nimport { profileActions as actions } from '../../../actions';\r\nimport { EmptyPlaceholder } from '../../common';\r\n\r\nclass PasswordSettings extends Component {\r\n state = {\r\n isValid: true,\r\n oldPassword: '',\r\n newPassword: '',\r\n confirmPassword: '',\r\n isLengthValid: false,\r\n isLetterValid: false,\r\n isSpecCharsValid: false,\r\n isNumericValid: false\r\n }\r\n\r\n componentWillUnmount = () => this.props.dispatch(actions.passwordSettingsReset());\r\n\r\n render = () => {\r\n const { dispatch, changePasswordVisible } = this.props;\r\n\r\n if (!changePasswordVisible) {\r\n return (\r\n
\r\n
\r\n

Password

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n dispatch(actions.changePasswordFormVisible(false))} />\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ profile }) => ({\r\n changePasswordVisible: profile.changePasswordVisible\r\n});\r\n\r\nconst connectedPasswordSettings = connect(mapStateToProps)(PasswordSettings);\r\nexport { connectedPasswordSettings as PasswordSettings };\r\n","import React, { PropsWithChildren } from 'react';\r\n\r\ninterface Props {\r\n title: React.ReactNode;\r\n}\r\n\r\nexport const MenageViewHeader: React.FC> = ({ title, children }) => {\r\n return (\r\n
\r\n

{title}

\r\n {children}\r\n
\r\n )\r\n};\r\n","import React from 'react';\r\nimport {Relative} from \"../../../../common\";\r\n\r\ninterface Props {\r\n children?: React.ReactNode\r\n}\r\n\r\nexport const ManageViewContent: React.FC = ({ children }: Props) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Form, Formik } from \"formik\";\r\nimport { Popup } from '../../controls';\r\nimport { InputField } from '../../forms';\r\nimport { addNewTraderValidation } from '../validation/addNewTrader';\r\nimport { accountService } from \"../../../services\";\r\nimport { errorActions, profileActions } from \"../../../actions\";\r\nimport {errorMessages} from \"../../../constants\";\r\n\r\nfunction ModalAddEditTrader({ visible, onClose, contact = {} }) {\r\n\r\n const dispatch = useDispatch();\r\n\r\n const initialValues = {\r\n id: contact.id || '',\r\n firstName: contact.firstName || '',\r\n lastName: contact.lastName || '',\r\n title: contact.title || '',\r\n email: contact.email || '',\r\n phone: contact.phone || '',\r\n };\r\n const [isPostingForm, setPostingForm] = useState(false);\r\n\r\n const isEdit = !!contact.id;\r\n\r\n const handleSubmit = async (values) => {\r\n try {\r\n setPostingForm(true);\r\n if (isEdit) {\r\n const traderId = await accountService.editCompanyTrader({ ...values }, values.id);\r\n dispatch(profileActions.editNewCompanyTraderInStore({ ...values }, traderId.id));\r\n handleOnClose()\r\n } else {\r\n const newTraderId = await accountService.addCompanyTrader({ ...values });\r\n const trader = { ...values };\r\n trader.id = newTraderId.id;\r\n trader.enabled = true;\r\n dispatch(profileActions.addNewCompanyTraderToStore(trader));\r\n handleOnClose()\r\n }\r\n } catch (e) {\r\n dispatch(errorActions.error(e, errorMessages.unexpectedError));\r\n setPostingForm(false);\r\n }\r\n };\r\n\r\n const handleOnClose = () => {\r\n setPostingForm(false);\r\n if (onClose && typeof onClose === 'function') {\r\n onClose()\r\n }\r\n };\r\n\r\n if (visible) {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {isEdit ? 'DONE' : '+ ADD TRADER'}\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n}\r\n\r\nexport { ModalAddEditTrader }\r\n\r\n","import React, { useCallback, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { MenageViewHeader } from './manage/header/MenageViewHeader';\r\nimport { ManageViewContent } from './manage/content/ManageViewContent';\r\nimport { roles, SORT, SORTING_TYPE, constants } from '../../../constants';\r\nimport { IColumnDefinition } from '../../bidding/common/table/types/ColumnDefinition';\r\nimport { Table } from '../../bidding/common/table';\r\nimport { ColumnBuilder } from '../../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { AppState } from '../../../types/state/AppState';\r\nimport { Preloader, OnHoverTooltip } from '../../common';\r\nimport { RequestUserStatusDetails } from './manage/users/RequestUserStatusDetails';\r\nimport Confirm from '../../alerts/Confirm';\r\nimport { user } from '../../../user';\r\nimport { UserListTableItem } from './manage/users/UserListTableItem';\r\nimport { ModalAddEditTrader } from './ModalAddEditTrader';\r\nimport { profileActions } from '../../../actions';\r\nimport { UserStatus } from '../../../types/account/UserStatus';\r\nimport { CompanyTrader } from '../../../types/company/CompanyTrader';\r\nimport ContextMenu from '../../controls/ContextMenu';\r\nimport { ContextMenuItem } from '../../controls/ContextMenuItem';\r\nimport { userStatuses } from '../../../constants';\r\nimport { useAppDispatch } from '../../../effects/useAppDispatch';\r\n\r\nexport const Traders: React.FC = () => {\r\n const [tradeModalVisible, setTradeModalVisible] = useState(false);\r\n const [contactForEdit, setContactForEdit] = useState(null);\r\n const [isConfirmationVisible, setConfirmationVisible] = useState(false);\r\n\r\n const dispatch = useAppDispatch();\r\n\r\n const currentUser = user.current()!;\r\n const company = useSelector((state: AppState) => state.profile.company);\r\n const users: CompanyTrader[] = useSelector((state: AppState) => state.profile.company?.traders) ?? [];\r\n const primaryContact = users.find(c => c.id === company?.primaryContactId);\r\n const isLoading = useSelector((state: AppState) => state.profile.isLoading);\r\n const isAuthorisedUserPrimaryContact = company?.primaryContactId === currentUser.id;\r\n\r\n const convertToUserListItems = useCallback((users: CompanyTrader[]): UserListTableItem[] => {\r\n return users\r\n .map((user) => ({\r\n ...user,\r\n fullName: `${user.firstName} ${user.lastName}`,\r\n userStatus: user.status as UserStatus,\r\n statusText: userStatuses.getByStatusCode(user.status)?.title ?? '',\r\n }))\r\n }, []);\r\n\r\n const handleCloseModal = () => {\r\n setContactForEdit(null);\r\n setTradeModalVisible(false);\r\n };\r\n\r\n const hideConfirmationPopup = () => {\r\n setConfirmationVisible(false);\r\n };\r\n\r\n const confirmDisableTrader = () => {\r\n hideConfirmationPopup();\r\n dispatch(profileActions.disableCompanyTrader(contactForEdit));\r\n };\r\n\r\n const disableTrader = (contact: UserListTableItem) => {\r\n setContactForEdit(contact);\r\n setConfirmationVisible(true);\r\n };\r\n\r\n const enableTrader = (contact: UserListTableItem) => {\r\n setContactForEdit(contact);\r\n dispatch(profileActions.enableCompanyTrader(contact));\r\n };\r\n\r\n const renderUserManagementOptions = (contact: UserListTableItem) => {\r\n const isTraderActive = contact.userStatus !== UserStatus.Blocked;\r\n const isRequesting = contactForEdit !== null && contactForEdit.id === contact.id && isLoading;\r\n const isPrimary = contact.id === primaryContact?.id;\r\n\r\n if (isPrimary || !isAuthorisedUserPrimaryContact) return null;\r\n\r\n const handleClick = () => isTraderActive ? disableTrader(contact) : enableTrader(contact);\r\n\r\n return (\r\n isRequesting\r\n ? \r\n : \r\n \r\n {isTraderActive ? 'Block' : 'Unblock'}\r\n \r\n \r\n )\r\n };\r\n\r\n const getRolesByString = (roleList: string[]) => roleList && roleList.length\r\n ? [...roleList].sort((a, b) => a.localeCompare(b)).map(r => roles.getTitle(r)).join(', ')\r\n : '–'\r\n\r\n const getColumns = () => {\r\n const name: IColumnDefinition = {\r\n columnKey: 'name',\r\n renderColumnHeaderContent: () => 'User',\r\n renderColumnContent: entity => {\r\n return (\r\n \r\n {entity.fullName}\r\n \r\n )\r\n },\r\n headerClassName: 'data-list-user',\r\n bodyClassName: 'data-list-user',\r\n sortingField: 'fullName',\r\n sortingType: SORTING_TYPE.string\r\n };\r\n const userRoles: IColumnDefinition = {\r\n columnKey: 'roles',\r\n renderColumnHeaderContent: () => 'User Role',\r\n renderColumnContent: entity => {\r\n const text = getRolesByString(entity.roles);\r\n return (\r\n \r\n {text}\r\n \r\n )\r\n },\r\n headerClassName: 'data-list-user-role',\r\n bodyClassName: 'data-list-user-role',\r\n sortingField: 'roles',\r\n sortingType: SORTING_TYPE.rolesShortTitles\r\n };\r\n const email: IColumnDefinition = {\r\n columnKey: 'email',\r\n renderColumnHeaderContent: () => 'Email',\r\n renderColumnContent: entity => {\r\n return (\r\n \r\n {entity.email}\r\n \r\n )\r\n },\r\n headerClassName: 'data-list-email',\r\n bodyClassName: 'data-list-email'\r\n };\r\n const status: IColumnDefinition = {\r\n columnKey: 'status',\r\n renderColumnHeaderContent: () => 'Status',\r\n renderColumnContent: entity => (\r\n \r\n ),\r\n headerClassName: 'data-list-status',\r\n bodyClassName: 'data-list-status',\r\n sortingField: 'statusText',\r\n sortingType: SORTING_TYPE.string\r\n };\r\n const phone: IColumnDefinition = {\r\n columnKey: 'phone',\r\n renderColumnHeaderContent: () => 'Phone',\r\n renderColumnContent: entity => entity.phoneNumber || constants.emptyPlaceholder,\r\n headerClassName: 'data-list-phone',\r\n bodyClassName: 'data-list-phone',\r\n };\r\n const options: IColumnDefinition = {\r\n columnKey: 'actions',\r\n renderColumnHeaderContent: () => 'Actions',\r\n renderColumnContent: entity => renderUserManagementOptions(entity),\r\n headerClassName: 'data-list-options text-right',\r\n bodyClassName: 'data-list-options text-right'\r\n };\r\n const jobTitle: IColumnDefinition = {\r\n columnKey: 'jobTitle',\r\n renderColumnHeaderContent: () => 'Job Title',\r\n renderColumnContent: entity => (\r\n !!entity.jobTitle\r\n ? {entity.jobTitle}\r\n : constants.emptyPlaceholder\r\n ),\r\n headerClassName: 'data-list-job-title',\r\n bodyClassName: 'data-list-job-title',\r\n sortingField: 'jobTitle',\r\n sortingType: SORTING_TYPE.string\r\n };\r\n\r\n const columns = [\r\n userRoles,\r\n name,\r\n jobTitle,\r\n status,\r\n email,\r\n phone,\r\n ...(isAuthorisedUserPrimaryContact ? [options] : [])\r\n ];\r\n\r\n return columns.map(c => new ColumnBuilder(c));\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {contactForEdit === null ? '' : }\r\n {isConfirmationVisible && (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { Toggle } from '../../../controls';\r\n\r\ninterface Props {\r\n active: boolean,\r\n disabled?: boolean\r\n children: React.ReactNode,\r\n onActiveChange?: (active: boolean) => void\r\n}\r\n\r\nexport function TwoFactorAuthSettingsSection({ active, disabled = false, children, onActiveChange }: Props) {\r\n return (\r\n <>\r\n {children}\r\n onActiveChange(!active) : undefined}\r\n />\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { isValidPhoneNumber, parsePhoneNumber } from 'react-phone-number-input';\r\nimport classNames from 'classnames';\r\nimport Input from 'react-phone-number-input/input';\r\nimport { getCountries, getCountryCallingCode, Country, Value } from 'react-phone-number-input';\r\nimport en from 'react-phone-number-input/locale/en.json';\r\nimport { FormError } from '../../../controls';\r\nimport { errorMessages } from '../../../../constants';\r\nimport { DropDownListItem, DropDownList } from '../../../controls/DropDownList';\r\n\r\ninterface Props {\r\n phone: string,\r\n phoneConfirmed: boolean,\r\n disabled: boolean,\r\n onSave: (phone: string) => void\r\n onCancel: () => void\r\n}\r\n\r\nexport function PhoneEdit({ phone, phoneConfirmed, disabled, onSave, onCancel }: Props) {\r\n const validate = (phone: string) => phone ? (isValidPhoneNumber(phone) ? '' : 'Invalid phone number') : errorMessages.empty;\r\n const [editingPhone, setEditingPhone] = React.useState(validate(phone) ? '' : phone);\r\n const [errorMessage, setErrorMessage] = React.useState('');\r\n const parsedPhoneNumber = phone && parsePhoneNumber(phone);\r\n const [country, setCountry] = React.useState((parsedPhoneNumber && parsedPhoneNumber.country) || 'US');\r\n const canSave = !disabled && !!editingPhone && !!editingPhone.length && (!phoneConfirmed || phone !== editingPhone);\r\n\r\n const handleSave = () => {\r\n const error = validate(editingPhone);\r\n setErrorMessage(error);\r\n if (!error && onSave) {\r\n onSave(editingPhone);\r\n }\r\n };\r\n\r\n const handleBlur = () => {\r\n if (errorMessage) {\r\n const error = validate(editingPhone);\r\n setErrorMessage(error);\r\n }\r\n };\r\n\r\n const handleCancelEdit = () => {\r\n if (onCancel) {\r\n onCancel();\r\n }\r\n };\r\n\r\n const handleGetCountryCallingCode = (code: Country) => {\r\n return getCountryCallingCode(code)\r\n };\r\n\r\n const renderCountrySelectItem = (item: DropDownListItem) => {\r\n return (\r\n <>\r\n +{handleGetCountryCallingCode(item.value as Country)}\r\n {item.text}\r\n \r\n );\r\n };\r\n\r\n const renderSelectedItem = (item: DropDownListItem) => +{handleGetCountryCallingCode(item.value as Country)};\r\n\r\n const handlePhoneCountryChange = (item: DropDownListItem) => {\r\n setEditingPhone('');\r\n setErrorMessage('');\r\n setCountry(item.value as Country);\r\n };\r\n\r\n const renderCountrySelect = () => {\r\n const preselected: DropDownListItem[] = ['US'].map(c => ({\r\n value: c,\r\n selected: c === country,\r\n groupKey: 1,\r\n text: (en as any)[c]\r\n }));\r\n\r\n const countries: DropDownListItem[] = getCountries()\r\n .filter((c: string) => !preselected.some(p => p.value === c))\r\n .map((c: string) => ({\r\n value: c,\r\n selected: c === country,\r\n text: (en as any)[c]\r\n }));\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n {renderCountrySelect()}\r\n
\r\n setEditingPhone(value || '')}\r\n onBlur={handleBlur}\r\n disabled={disabled}\r\n />\r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { IdentityCodeSubmitContent } from '../../../account/verify-identity/IdentityCodeSubmitContent';\r\nimport { VerifyIdentityMethodType } from '../../../../types/account/VerifyIdentityMethodType';\r\nimport { tfaSettingsActions } from '../../../../actions/tfa-settings.actions';\r\nimport { Popup, PopupBody, PopupFooter } from '../../../controls';\r\nimport { useAppDispatch } from '../../../../effects/useAppDispatch';\r\n\r\ninterface Props {\r\n initialDate: Date;\r\n maskedPhone: string;\r\n onSubmit: (code: string) => void;\r\n onClose: () => void;\r\n}\r\n\r\nexport function SubmitVerificationCodePopup({ initialDate, maskedPhone, onSubmit, onClose }: Props) {\r\n const dispatch = useAppDispatch();\r\n const [code, setCode] = React.useState('');\r\n const [canSubmit, setCanSubmit] = React.useState(false);\r\n const [codeExpired, setCodeExpired] = React.useState(false);\r\n const {\r\n isIdentityPhoneSaving,\r\n isPhoneVerificationCodeSending,\r\n isPhoneVerificationCodeInvalid,\r\n smsActivationCodeRequestedDate } = useSelector((state: AppState) => state.profile);\r\n const isLoading = isIdentityPhoneSaving || isPhoneVerificationCodeSending;\r\n\r\n React.useEffect(() => {\r\n setCode('');\r\n setCodeExpired(false);\r\n setCanSubmit(false);\r\n }, [smsActivationCodeRequestedDate]);\r\n\r\n const handleCodeReSend = () => dispatch(tfaSettingsActions.requestPhoneVerificationCode());\r\n\r\n const handleCodeExpired = (expired: boolean) => setCodeExpired(expired);\r\n\r\n const handleCodeChange = (code: string, canSubmit: boolean) => {\r\n setCode(code);\r\n setCanSubmit(canSubmit);\r\n dispatch(tfaSettingsActions.invalidPhoneVerificationCode(false));\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {codeExpired && }\r\n {!codeExpired && }\r\n \r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useSelector } from \"react-redux\";\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { TwoFactorAuthSettingsSection } from './TwoFactorAuthSettingsSection';\r\nimport { PhoneEdit } from './PhoneEdit';\r\nimport { formatUtils } from '../../../../utils';\r\nimport { tfaSettingsActions } from '../../../../actions/tfa-settings.actions';\r\nimport { SubmitVerificationCodePopup } from './SubmitVerificationCodePopup';\r\nimport { Confirm } from '../../../alerts';\r\nimport IconSVG from '../../../../styles/svg-icons';\r\nimport { StatusMessageSectionType } from \"../../../../types/state/NotificationState\";\r\nimport { StatusMessageSection } from \"../../../status-message/StatusMessageSection\";\r\nimport { useAppDispatch } from '../../../../effects/useAppDispatch';\r\n\r\nexport function TwoFactorAuthSettings() {\r\n const dispatch = useAppDispatch();\r\n const {\r\n profile,\r\n isSmsConfirmationDeactivating,\r\n isIdentityPhoneSaving,\r\n isPhoneVerificationCodeSending,\r\n isIdentityPhoneEdit,\r\n smsActivationCodeRequestedDate\r\n } = useSelector((state: AppState) => state.profile);\r\n const [smsActive, setSmsActive] = React.useState(profile ? profile.identityPhoneConfirmed : false);\r\n const [deactiveteConfirmationVisible, setDeactivePhoneConfirmationVisible] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n if (profile && profile.identityPhoneConfirmed !== smsActive) {\r\n setSmsActive(profile.identityPhoneConfirmed)\r\n } // eslint-disable-next-line\r\n }, [profile && profile.identityPhoneConfirmed]);\r\n\r\n if (!profile || !profile.tfaEnabled) {\r\n return null;\r\n }\r\n\r\n const isDisabled = isSmsConfirmationDeactivating || isIdentityPhoneSaving || isPhoneVerificationCodeSending;\r\n const maskedEmail = formatUtils.maskEmail(profile.email);\r\n const maskedPhone = formatUtils.maskPhone(profile.identityPhone);\r\n\r\n const handleSmsActiveChange = (active: boolean) => {\r\n setSmsActive(active);\r\n\r\n if (active && profile.identityPhone && !profile.identityPhoneConfirmed) {\r\n dispatch(tfaSettingsActions.requestPhoneVerificationCode());\r\n } else {\r\n dispatch(tfaSettingsActions.identityPhoneEdit(active));\r\n if (!active && profile.identityPhoneConfirmed) {\r\n dispatch(tfaSettingsActions.deactivateSmsConfirmation());\r\n }\r\n }\r\n }\r\n\r\n const handlePhoneDeleteConfirmed = () => {\r\n setSmsActive(false);\r\n setDeactivePhoneConfirmationVisible(false);\r\n dispatch(tfaSettingsActions.deactivateSmsConfirmation());\r\n }\r\n\r\n const handlePhoneSave = (phone: string) => dispatch(tfaSettingsActions.saveIdentityPhone(phone));\r\n\r\n const handlePhoneEditCancel = () => {\r\n if (!isDisabled) {\r\n setSmsActive(profile.identityPhoneConfirmed);\r\n dispatch(tfaSettingsActions.storeSmsActivationRequestedDate(undefined));\r\n dispatch(tfaSettingsActions.identityPhoneEdit(false));\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Two-factor authentication

\r\n
\r\n
\r\n \r\n On an attempted login from an unrecognized device or browser, the system will activate two-factor authentication and ask for your password and verification code. Email verification is enabled by default and can't be disabled. Optionally, you can enable SMS verification.\r\n \r\n
\r\n \r\n
\r\n

Email

\r\n

\r\n Receive an email containing a verification code. If you want to change your email, please contact us via email:
\r\n {process.env.REACT_APP_SALES_EMAIL}\r\n

\r\n {maskedEmail}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n

SMS

\r\n {\r\n smsActive &&\r\n

Receive a text message containing verification code

\r\n }\r\n {\r\n !isIdentityPhoneEdit &&\r\n profile.identityPhoneConfirmed &&\r\n <>\r\n
\r\n {maskedPhone}\r\n dispatch(tfaSettingsActions.identityPhoneEdit(true))}\r\n >\r\n \r\n \r\n\r\n setDeactivePhoneConfirmationVisible(true)}\r\n >\r\n \r\n Delete Phone Number\r\n \r\n
\r\n {\r\n deactiveteConfirmationVisible &&\r\n setDeactivePhoneConfirmationVisible(false)}\r\n onConfirm={handlePhoneDeleteConfirmed}\r\n title=\"Confirmation\"\r\n text={<>Deleting your phone number will automatically disable SMS verification. Are you sure you want to delete your phone number and disable SMS verification?}\r\n />\r\n }\r\n \r\n }\r\n {\r\n !isIdentityPhoneEdit &&\r\n !!profile.identityPhone &&\r\n !profile.identityPhoneConfirmed &&\r\n
\r\n {maskedPhone}\r\n
\r\n \r\n The phone wasn't confirmed. Do You want to confirm it?\r\n
\r\n dispatch(tfaSettingsActions.requestPhoneVerificationCode())}\r\n >\r\n YES, SEND A CODE\r\n \r\n dispatch(tfaSettingsActions.deactivateSmsConfirmation())}\r\n >\r\n NO, DELETE IT\r\n \r\n
\r\n
\r\n
\r\n }\r\n {\r\n isIdentityPhoneEdit &&\r\n \r\n }\r\n {\r\n smsActivationCodeRequestedDate != null &&\r\n dispatch(tfaSettingsActions.submitPhoneVerificationCode(code))}\r\n onClose={handlePhoneEditCancel}\r\n />\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\n\r\ninterface ContentSectionProps {\r\n children: React.ReactNode\r\n}\r\n\r\nexport function ContentSection({ children }: ContentSectionProps) {\r\n\r\n return(\r\n
\r\n {children}\r\n
\r\n )\r\n}\r\n","import moment from 'moment';\r\nimport { Link } from 'react-router-dom';\r\nimport { routes } from '../../../../../constants';\r\nimport { user } from '../../../../../user';\r\nimport { SubscriptionsTab } from '../SubscriptionsTab';\r\nimport { ContentSection } from '../ContentSection';\r\nimport { calculateSubscriptionTimeline, getSubscriptionTitle } from '../../../../../utils/subscription.utils';\r\n\r\nconst dateFormat = 'MMMM D, YYYY';\r\n\r\nexport function Overview() {\r\n const currentUser = user.current()!;\r\n const { isTrial } = calculateSubscriptionTimeline();\r\n\r\n const renderSubscriptionInfo = () => {\r\n if (isTrial) {\r\n return (

{`Your FREE trial is enabled until ${moment(currentUser.trialPeriodEnd).format('MM/DD/YY')}`}

)\r\n }\r\n return (\r\n <>\r\n

{`Your Plan is ${getSubscriptionTitle(currentUser.subscription)}`}

\r\n {\r\n !!currentUser.subscriptionExpiration &&\r\n

Subscription End: {moment(currentUser.subscriptionExpiration).format(dateFormat)}

\r\n }\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {renderSubscriptionInfo()}\r\n Switch plan\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { AppProduct, getAppProductTitle } from '../../../../../types/billing/AppProduct';\r\nimport { subscriptionFeatureTitle } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { featuresByProduct } from '../../../../../user/features/feature-provider';\r\nimport { Popup, PopupBody } from '../../../../controls';\r\n\r\ninterface Props {\r\n subscription: string;\r\n product: AppProduct;\r\n onClose: () => void;\r\n}\r\n\r\nconst getProductBodyText = (product: AppProduct, subscription: string) => {\r\n switch (product) {\r\n case AppProduct.DealDocuments:\r\n return `The following documents are disabled for the ${getAppProductTitle(product)} product on the ${subscription} Plan:`\r\n default:\r\n return `The following features are disabled for the ${getAppProductTitle(product)} page on the ${subscription} Plan:`\r\n }\r\n}\r\n\r\nexport function LimitedFeaturesPopup({ subscription, product, onClose }: Props) {\r\n const features = featuresByProduct[product];\r\n const featureTitles = features\r\n ?.map(f => subscriptionFeatureTitle[f])\r\n .filter(title => !!title);\r\n\r\n if (!featureTitles?.length) return null;\r\n\r\n return (\r\n {getAppProductTitle(product)}}\r\n >\r\n \r\n

{getProductBodyText(product, subscription)}

\r\n
    \r\n {featureTitles.map(f =>
  • {f}
  • )}\r\n
\r\n
\r\n \r\n )\r\n}\r\n","import cn from 'classnames';\r\nimport { Subscription } from \"../../../../../types/billing/Subscription\";\r\nimport { isRequesting } from \"../../../../../utils/request-state.utils\";\r\nimport { useSubscriptionRequest } from \"../hooks/useSubscriptionRequest\";\r\nimport { calculateSubscriptionTimeline } from '../../../../../utils/subscription.utils';\r\nimport { isSubscriptionObsolete, SubscriptionType } from '../../../../../types/billing/SubscriptionType';\r\n\r\n\r\ninterface Props {\r\n subscription: Subscription;\r\n isCurrent: boolean;\r\n}\r\n\r\nexport function RequestSubscriptionButton({ subscription, isCurrent }: Props) {\r\n const { requestState, requestCallback } = useSubscriptionRequest();\r\n const isBasicPlan = subscription.title.toLowerCase() === \"basic\";\r\n const { isTrial } = calculateSubscriptionTimeline();\r\n\r\n if (isCurrent && isBasicPlan && !isTrial) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n requestCallback(subscription)}\r\n >\r\n Select plan\r\n \r\n );\r\n}\r\n","import { useState } from \"react\";\r\nimport { Subscription } from \"../../../../../types/billing/Subscription\";\r\nimport { RequestState } from \"../../../../../constants/request-state\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { errorActions, notificationActions } from \"../../../../../actions\";\r\nimport { billingService } from \"../../../../../services\";\r\n\r\nexport function useSubscriptionRequest(){\r\n const dispatch = useDispatch();\r\n const [requestState, setRequestState] = useState(RequestState.none);\r\n\r\n const requestCallback = async (subscription: Subscription) => {\r\n setRequestState(RequestState.request);\r\n\r\n try{\r\n await billingService.changeSubscription(subscription.title);\r\n setRequestState(RequestState.success);\r\n dispatch(notificationActions.infoModal(\r\n `Your request for the ${subscription.title} plan subscription has been submitted to the Sales team.`,\r\n \"Subscription request submitted\"\r\n ));\r\n } catch(e) {\r\n setRequestState(RequestState.failure);\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n\r\n return { requestState, requestCallback };\r\n}","import moment from \"moment\";\r\nimport { user } from \"../../../../../user\";\r\nimport { calculateSubscriptionTimeline } from \"../../../../../utils/subscription.utils\";\r\n\r\nconst dateFormat = 'M/D/YY';\r\n\r\ninterface Props {\r\n isCurrent: boolean;\r\n}\r\n\r\nexport function SubscriptionEndDate({ isCurrent }: Props) {\r\n const currentUser = user.current();\r\n \r\n if (!currentUser) return null;\r\n\r\n const { isTrial } = calculateSubscriptionTimeline();\r\n\r\n const renderTrial = () => <>trial till {moment.utc(currentUser.trialPeriodEnd).format(dateFormat)}\r\n const renderPaid = () => <>subscribed till {moment.utc(currentUser.subscriptionExpiration).format(dateFormat)}\r\n\r\n return (\r\n
\r\n {\r\n isCurrent &&\r\n <>\r\n {isTrial && !!currentUser.trialPeriodEnd && renderTrial()}\r\n {!isTrial && !!currentUser.subscriptionExpiration && renderPaid()}\r\n \r\n }\r\n
\r\n );\r\n}","import { useMemo, useState } from 'react';\r\nimport cn from 'classnames';\r\nimport { values } from 'lodash';\r\nimport { LimitedFeaturesPopup } from './LimitedFeaturesPopup';\r\nimport { ContentSection } from '../ContentSection';\r\nimport { Table } from '../../../../bidding/common/table';\r\nimport { useSubscriptions } from '../hooks/useSubscriptions';\r\nimport { Preloader } from '../../../../common';\r\nimport { isRequestSuccess } from '../../../../../utils';\r\nimport { Subscription } from '../../../../../types/billing/Subscription';\r\nimport { AppProduct, getAppProductTitle } from '../../../../../types/billing/AppProduct';\r\nimport { IColumnDefinition } from '../../../../bidding/common/table/types/ColumnDefinition';\r\nimport { user } from '../../../../../user';\r\nimport { ColumnBuilder } from '../../../../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { RequestSubscriptionButton } from './RequestSubscription';\r\nimport { roles } from '../../../../../constants';\r\nimport IconSVG from \"../../../../../styles/svg-icons\";\r\nimport { SubscriptionEndDate } from './SubscriptionEndDate';\r\nimport { isSubscriptionObsolete, SubscriptionType } from '../../../../../types/billing/SubscriptionType';\r\n\r\nconst productRoleRestrictions: { [product in AppProduct]?: string[] } = {\r\n [AppProduct.KWatch]: [...roles.seller(), ...roles.bd(), roles.SellerAdministrator, roles.Administrator],\r\n [AppProduct.KTalk]: [], // hidden\r\n [AppProduct.Trading]: [...roles.seller(), ...roles.bd(), roles.SellerAdministrator, roles.Administrator],\r\n [AppProduct.ManagerProfile]: [...roles.seller(), ...roles.bd(), roles.SellerAdministrator, roles.Administrator],\r\n [AppProduct.IssuanceMonitor]: [...roles.issuanceMonitorAccess(), roles.SellerAdministrator],\r\n [AppProduct.DealerProfile]: roles.getAllRolesExclude(roles.Viewer),\r\n [AppProduct.DealDocuments]: roles.getAllRolesExclude(roles.ArrangersClient)\r\n}\r\n\r\nexport function Plans() {\r\n const { requestState, subscriptions } = useSubscriptions();\r\n const [limitedState, setLimitedState] = useState<{ product: AppProduct, subscription: Subscription }>();\r\n\r\n const currentSubscription = useMemo(() => {\r\n const currentUser = user.current();\r\n\r\n return subscriptions.find(s =>\r\n s.products.length === currentUser?.products.length &&\r\n !s.products.some(p => !currentUser?.products.some(pp => pp === p))\r\n );\r\n }, [subscriptions]);\r\n\r\n const columns: IColumnDefinition[] = useMemo(() => [{\r\n columnKey: \"product\",\r\n renderColumnHeaderContent: () => '',\r\n renderColumnContent: p => getAppProductTitle(p),\r\n className: \"data-list-cell-xs-flexible text-bold\"\r\n },\r\n ...subscriptions\r\n .filter(s => !isSubscriptionObsolete(s.title as SubscriptionType) || s.title === currentSubscription?.title)\r\n .map(s => ({\r\n columnKey: `subscription-${s.title}`,\r\n renderColumnHeaderContent: () => \r\n <>\r\n

{s.title}

\r\n \r\n \r\n ,\r\n renderColumnContent: (p: AppProduct) =>\r\n <>\r\n {\r\n s.products.some(pp => pp === p)\r\n ? \r\n : \r\n setLimitedState({\r\n product: p,\r\n subscription: s\r\n })\r\n }\r\n >\r\n Limited\r\n \r\n }\r\n ,\r\n className: cn(\"data-list-cell-md-flexible text-center\", { \"selected\": s === currentSubscription })\r\n }))], [currentSubscription, subscriptions]);\r\n\r\n return (\r\n \r\n \r\n \r\n !productRoleRestrictions[p] ||\r\n productRoleRestrictions[p]?.some(r => user.hasRoles(r)))\r\n }\r\n columns={columns.map(c => new ColumnBuilder(c))}\r\n createRowCustomKey={(p: AppProduct) => p}\r\n />\r\n {limitedState &&\r\n setLimitedState(undefined)}\r\n />\r\n }\r\n \r\n \r\n );\r\n}","import { Switch, Route, Redirect } from 'react-router';\r\nimport { routes } from '../../../../constants';\r\nimport { SubscriptionsTab } from './SubscriptionsTab';\r\nimport { Overview } from './overview/Overview';\r\nimport { Plans } from './plans/Plans';\r\nimport { TabList, TabItem } from '../../../bidding/common/tab-list';\r\nimport { useBackspaceRedirectBlocker } from '../../../../effects';\r\nimport { useAppSelector } from '../../../../effects/useAppSelector';\r\nimport { isRequestSuccess } from '../../../../utils';\r\n\r\ninterface Props {\r\n activeTab?: SubscriptionsTab\r\n}\r\n\r\nexport function SubscriptionsView({ activeTab = SubscriptionsTab.overview }: Props) {\r\n useBackspaceRedirectBlocker();\r\n\r\n const initStatus = useAppSelector(s => s.profile.initStatus);\r\n const profile = useAppSelector(s => s.profile.profile);\r\n //const upgradeSubscriptionWizard = useAppSelector(s => s.subscriptions.upgradeSubscriptionWizard);\r\n\r\n if (!isRequestSuccess(initStatus) || !profile) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Subscription

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n {/* upgradeSubscriptionWizard.isUpgradeSubscriptionPopupVisible &&\r\n */}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\n\r\ninterface Props {\r\n children?: React.ReactNode\r\n}\r\n\r\nexport const MenageViewHeaderButtons: React.FC = ({ children }: Props) => {\r\n return (\r\n
\r\n {children}\r\n
\r\n )\r\n};\r\n","import React, { useState } from 'react';\r\nimport IconSVG from '../../../../styles/svg-icons';\r\n\r\ninterface Props {\r\n children?: React.ReactNode\r\n}\r\n\r\nexport const ExpandableInfoPanel: React.FC = ({ children }: Props) => {\r\n const [visible, setVisible] = useState(false);\r\n\r\n const handleHidePanel = () => {\r\n setVisible(false);\r\n };\r\n\r\n if (visible) {\r\n return (\r\n
\r\n \r\n {children}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n};\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { isEqual, keys, size } from 'lodash';\r\nimport { useHistory } from 'react-router';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport classNames from \"classnames\";\r\nimport { MenageViewHeader } from '../header/MenageViewHeader';\r\nimport { MenageViewHeaderButtons } from '../header/MenageViewHeaderButtons';\r\nimport { AppState } from '../../../../../types/state/AppState';\r\nimport { ManageViewContent } from '../content/ManageViewContent';\r\nimport { ExcludeList } from '../../../../controls/exclude-list/ExcludeList';\r\nimport { apiUtils } from '../../../../../utils/api.utils';\r\nimport { ExcludeListItemType } from '../../../../controls/exclude-list/ExcludeListItemType';\r\nimport { BrokerDealerCompanySlim } from '../../../../../types/company/BrokerDealerCompanySlim';\r\nimport { isRequesting, isRequestNone, isRequestSuccess } from '../../../../../utils';\r\nimport { sellerAdminDealerActions } from '../../../../../actions/seller-admin-dealers.actions';\r\nimport { RouteLeavingGuard } from '../../../../routing';\r\nimport { OnHoverTooltip } from '../../../../common/OnHoverTooltip';\r\nimport { RadioButtonGroup } from '../../../../controls';\r\nimport { Preloader } from '../../../../common';\r\nimport { useBrokerDealers } from '../../../../../effects/useBrokerDealers';\r\nimport { ExpandableInfoPanel } from '../ExpandableInfoPanel';\r\n\r\nexport const DealersView: React.FC = () => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const dealersListState = useBrokerDealers();\r\n const excludedDealerList = useSelector((state: AppState) => state.sellerAdminDealers.excludeDealers);\r\n const requestStateExcludedDealerList = useSelector((state: AppState) => state.sellerAdminDealers.requestStatusGetExcludeDealers);\r\n const requestStateSaveExcludeDealers = useSelector((state: AppState) => state.sellerAdminDealers.requestStateSaveExcludeDealers);\r\n const excludeNewCompanyState = useSelector((state: AppState) => state.sellerAdminDealers.excludeNewCompany);\r\n const editMode = useSelector((state: AppState) => state.sellerAdminDealers.editMode);\r\n\r\n useEffect(() => {\r\n if (isRequestNone(requestStateExcludedDealerList)) {\r\n dispatch(sellerAdminDealerActions.getExcludedDealersRequest())\r\n }\r\n }, [requestStateExcludedDealerList, dispatch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n dispatch(sellerAdminDealerActions.setEditModeStatus(false))\r\n }\r\n }, [dispatch]);\r\n\r\n const createListModel = useCallback((dealers: BrokerDealerCompanySlim[]) =>\r\n apiUtils.normalize(dealers, entity => entity.id, entity => entity.name), []);\r\n\r\n const [includeDealers, setIncludeDealers] = useState(() => createListModel(dealersListState.items));\r\n const [excludeDealers, setExcludeDealers] = useState(createListModel(excludedDealerList));\r\n const [excludeNewCompany, setExcludeNewCompany] = useState(excludeNewCompanyState);\r\n\r\n useEffect(() => {\r\n if (!editMode) {\r\n setIncludeDealers(createListModel(dealersListState.items));\r\n setExcludeDealers(createListModel(excludedDealerList));\r\n setExcludeNewCompany(excludeNewCompanyState);\r\n }\r\n }, [editMode, excludeNewCompanyState, excludedDealerList, createListModel, dealersListState.items]);\r\n\r\n const handleIsAnyChanges = useCallback(() =>\r\n !isEqual(createListModel(excludedDealerList), excludeDealers) || (excludeNewCompany !== excludeNewCompanyState),\r\n [excludeDealers, excludedDealerList, excludeNewCompany, excludeNewCompanyState, createListModel]\r\n );\r\n\r\n const handleInclude = (id: number) => {\r\n setExcludeDealers((excludeDealers) => {\r\n const excluded = { ...excludeDealers };\r\n const dealer = excluded[id];\r\n delete excluded[id];\r\n setIncludeDealers((includeDealers) => {\r\n const included = { ...includeDealers };\r\n included[id] = dealer;\r\n return included\r\n });\r\n return excluded;\r\n });\r\n };\r\n\r\n const handleExclude = (id: number) => {\r\n setIncludeDealers((includeDealers) => {\r\n const included = { ...includeDealers };\r\n const dealer = included[id];\r\n delete included[id];\r\n setExcludeDealers((excludeDealers) => {\r\n const excluded = { ...excludeDealers };\r\n excluded[id] = dealer;\r\n return excluded\r\n });\r\n return included\r\n });\r\n };\r\n\r\n const handleIncludeAll = () => {\r\n setExcludeDealers((excludeDealers) => {\r\n setIncludeDealers((includeDealers) => {\r\n return { ...includeDealers, ...excludeDealers }\r\n });\r\n return {};\r\n });\r\n };\r\n\r\n const handleExcludeAll = () => {\r\n setIncludeDealers((includeDealers) => {\r\n setExcludeDealers((excludeDealers) => {\r\n return { ...excludeDealers, ...includeDealers }\r\n });\r\n return {}\r\n });\r\n };\r\n\r\n const handleSave = () => {\r\n if (!!size(includeDealers) && excludeNewCompany !== undefined) {\r\n const ids = keys(excludeDealers).map(id => Number(id));\r\n dispatch(sellerAdminDealerActions.saveExcludedDealersRequest(ids, excludeNewCompany))\r\n }\r\n };\r\n\r\n return (\r\n
\r\n\r\n \r\n \r\n {editMode ? (\r\n <>\r\n dispatch(sellerAdminDealerActions.setEditModeStatus(false))}\r\n >\r\n Cancel\r\n \r\n \r\n \r\n Save\r\n \r\n \r\n\r\n \r\n ) : (\r\n dispatch(sellerAdminDealerActions.setEditModeStatus(true))}\r\n >\r\n Edit\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 When sending a BWIC, all broker-dealers are available by default. Trader users can always exclude any dealer from the BWIC by deselecting them in the BWIC wizard during creation.\r\n

\r\n

\r\n Admin user may remove broker-dealers from the list of Available Dealers by clicking Edit and de-selecting them from the Available Dealers list. In this case, such dealers would not be visible to Trader users during BWIC creation.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

New dealer companies registered on the platform initially will be added to the selected\r\n list:

\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n history.push(pathname)}\r\n shouldBlockNavigation={handleIsAnyChanges}\r\n />\r\n
\r\n )\r\n};\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Form, Formik } from \"formik\";\r\nimport { cloneDeep, isEqual } from 'lodash';\r\nimport { constants, errorMessages, roles, routes } from '../../../../../constants';\r\nimport { yup } from '../../../../../validation/yup';\r\nimport { FormFieldLabel } from '../../../../forms/FormFieldLabel';\r\nimport { MenageViewHeader } from '../header/MenageViewHeader';\r\nimport { MenageViewHeaderButtons } from '../header/MenageViewHeaderButtons';\r\nimport { Redirect, useHistory, useParams } from 'react-router';\r\nimport { ManageViewContent } from '../content/ManageViewContent';\r\nimport { RadioButton } from '../../../../controls';\r\nimport { SellerAdminEditFormModel } from '../../../../../types/seller-admin/SellerAdminEditFormModel';\r\nimport { sellerAdminUsersActions } from '../../../../../actions/seller-admin-users.actions';\r\nimport { AppState } from '../../../../../types/state/AppState';\r\nimport { isRequesting, isRequestNone, isRequestSuccess, numericUtils } from '../../../../../utils';\r\nimport { Preloader } from '../../../../common';\r\nimport { InputField } from '../../../../forms';\r\nimport { RequestUserStatusDetails } from './RequestUserStatusDetails';\r\nimport { UserStatus } from '../../../../../types/account/UserStatus';\r\nimport { UserRequestStatus } from '../../../../../types/management/UserRequestStatus';\r\nimport RouteLeavingGuard from '../../../../routing/RouteLeavingGuard';\r\nimport { Checkbox } from '../../../../controls/Checkbox';\r\n\r\nconst initialFormState: SellerAdminEditFormModel = {\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n roles: [],\r\n jobTitle: '',\r\n phoneNumber: '',\r\n primaryContact: false,\r\n location: '',\r\n linkedIn: ''\r\n};\r\n\r\nconst validationSchema = yup.object().shape({\r\n firstName: yup.string().trim().matches(constants.name).required().max(64),\r\n lastName: yup.string().trim().matches(constants.name).required().max(64),\r\n email: yup.string().trim().required().email().max(256, errorMessages.maxLength(256)),\r\n roles: yup.array().of(yup.string()).min(1, errorMessages.empty).required(),\r\n jobTitle: yup.string().trim().required().max(256, errorMessages.maxLength(256)),\r\n phoneNumber: yup.string().trim().matches(constants.nonWhitespace).max(constants.phoneMaxLength),\r\n location: yup.string().max(64),\r\n linkedIn: yup.string().trim().matches(constants.linkedIn).max(2083),\r\n});\r\n\r\nexport const EditUser: React.FC = () => {\r\n const requestParams = useParams<{ userId?: string, userRequestId?: string }>();\r\n const userId = numericUtils.numberOrDefault(requestParams.userId);\r\n const userRequestId = numericUtils.numberOrDefault(requestParams.userRequestId);\r\n const formUpdatedFromState = useRef(false);\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const user = useSelector((state: AppState) =>\r\n state.sellerAdminUsers.users.find((user) => user.id === userId)\r\n );\r\n const requestStateGetUserList = useSelector((state: AppState) => state.sellerAdminUsers.requestStateGetUserList);\r\n const requestStatusUpdateRequestUser = useSelector((state: AppState) => state.sellerAdminUsers.requestStatusUpdateRequestUser);\r\n const requestStatusUpdateUser = useSelector((state: AppState) => state.sellerAdminUsers.requestStatusUpdateUser);\r\n const userRequest = useSelector((state: AppState) =>\r\n state.sellerAdminUsers.requestUsers.find((user) => user.id === userRequestId)\r\n );\r\n\r\n const selectedUser = user || userRequest;\r\n\r\n const initialFormData = useMemo(() => selectedUser\r\n ? {\r\n firstName: selectedUser.firstName,\r\n lastName: selectedUser.lastName,\r\n email: selectedUser.email,\r\n roles: selectedUser.roles,\r\n jobTitle: selectedUser.jobTitle || '',\r\n phoneNumber: selectedUser.phoneNumber || '',\r\n primaryContact: selectedUser.primaryContact,\r\n location: selectedUser.location || '',\r\n linkedIn: selectedUser.linkedIn || ''\r\n }\r\n : initialFormState,\r\n [selectedUser]\r\n );\r\n\r\n const [formState, setFormState] = useState(cloneDeep(initialFormState));\r\n\r\n useEffect(() => {\r\n if (isRequestSuccess(requestStatusUpdateRequestUser) || isRequestSuccess(requestStatusUpdateUser)) {\r\n history.replace(routes.profileManagePlatformUsers);\r\n }\r\n }, [requestStatusUpdateRequestUser, requestStatusUpdateUser, history])\r\n\r\n useEffect(() => {\r\n const formData = user || userRequest;\r\n if (!formUpdatedFromState.current && formData) {\r\n setFormState(cloneDeep(initialFormData));\r\n formUpdatedFromState.current = true;\r\n }\r\n }, [user, userRequest, initialFormData]);\r\n\r\n useEffect(() => {\r\n if (isRequestNone(requestStateGetUserList)) {\r\n dispatch(sellerAdminUsersActions.getUserListRequest());\r\n }\r\n }, [requestStateGetUserList, dispatch]);\r\n\r\n if (isRequestNone(requestStateGetUserList)) return null;\r\n\r\n if ((userId || userRequestId) && !selectedUser && isRequestSuccess(requestStateGetUserList)) {\r\n return \r\n }\r\n\r\n const handleSave = (values: SellerAdminEditFormModel) => {\r\n if (userId) {\r\n dispatch(sellerAdminUsersActions.saveUser(values, userId));\r\n } else {\r\n dispatch(sellerAdminUsersActions.saveUserRequest(values, userRequestId, userRequest?.concurrencyStamp))\r\n }\r\n };\r\n\r\n const handleRoleChange = (role: string, roles: string[], setFieldValue: (field: string, value: string[]) => void) => {\r\n if (roles.indexOf(role) > -1) {\r\n roles.splice(roles.indexOf(role), 1)\r\n } else {\r\n roles.push(role);\r\n }\r\n setFieldValue('roles', [...roles]);\r\n };\r\n\r\n const renderError = (error: string | undefined, isTouched: boolean | undefined) => (\r\n isTouched && error &&
{error}
\r\n );\r\n\r\n const renderTitle = (): React.ReactNode => {\r\n if (selectedUser) {\r\n return (\r\n <>\r\n Edit User\r\n \r\n \r\n )\r\n }\r\n return <>Create New User\r\n };\r\n\r\n const renderUserRole = (selectedRoles: string[], setFieldValue: (field: string, value: string[]) => void) => {\r\n const isSellerTraderChecked = selectedRoles.some(r => r === roles.SellerTrader);\r\n const isSellerViewerChecked = selectedRoles.some(r => r === roles.SellerViewer);\r\n const isSellerAdministratorChecked = selectedRoles.some(r => r === roles.SellerAdministrator);\r\n const isCollateralManagerChecked = selectedRoles.some(r => r === roles.CollateralManager);\r\n\r\n const setUserRole = (role: string) => {\r\n if (selectedRoles.some(r => r === role)) {\r\n return;\r\n }\r\n setFieldValue('roles', [role])\r\n };\r\n return (\r\n
\r\n <>\r\n setUserRole(roles.SellerTrader)}\r\n />\r\n {isSellerTraderChecked &&\r\n <>\r\n handleRoleChange(roles.SellerAdministrator, selectedRoles, setFieldValue)}\r\n label={roles.getShortTitle(roles.SellerAdministrator)}\r\n />\r\n handleRoleChange(roles.CollateralManager, selectedRoles, setFieldValue)}\r\n label={roles.getTitle(roles.CollateralManager)}\r\n />\r\n }\r\n \r\n <>\r\n setUserRole(roles.SellerViewer)}\r\n />\r\n {isSellerViewerChecked &&\r\n <>\r\n handleRoleChange(roles.SellerAdministrator, selectedRoles, setFieldValue)}\r\n label={roles.getShortTitle(roles.SellerAdministrator)}\r\n />\r\n handleRoleChange(roles.CollateralManager, selectedRoles, setFieldValue)}\r\n label={roles.getTitle(roles.CollateralManager)}\r\n />\r\n }\r\n \r\n setFieldValue('roles', [roles.SellerAdministrator])}\r\n />\r\n
\r\n )\r\n };\r\n\r\n return (\r\n \r\n {({ values, errors, touched, setFieldValue }) => (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Save\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {renderUserRole(values.roles, setFieldValue)}\r\n {renderError(Array.isArray(errors.roles) ? errors.roles?.join(',') : errors.roles, touched.roles)}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
 
\r\n setFieldValue('primaryContact', !values.primaryContact)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n history.push(pathname)}\r\n shouldBlockNavigation={() => !isEqual(values, initialFormData)\r\n && (!isRequestSuccess(requestStatusUpdateRequestUser) && !isRequestSuccess(requestStatusUpdateUser))\r\n }\r\n />\r\n \r\n
\r\n )}\r\n \r\n )\r\n};\r\n","import React from 'react';\r\nimport { UserRequestStatus } from '../../../../../types/management/UserRequestStatus';\r\nimport { UserCreationRequest } from '../../../../../types/management/UserCreationRequest';\r\nimport { CompanyUser } from '../../../../../types/management/CompanyUser';\r\nimport ContextMenu from '../../../../controls/ContextMenu';\r\nimport { UserStatus } from '../../../../../types/account/UserStatus';\r\nimport { isRequesting } from '../../../../../utils';\r\nimport { useHistory } from 'react-router';\r\nimport { routes } from '../../../../../constants';\r\nimport { useSelector } from 'react-redux';\r\nimport { AppState } from '../../../../../types/state/AppState';\r\nimport { UserListTableItem } from './UserListTableItem';\r\nimport { user as currentUser } from '../../../../../user/user';\r\n\r\ninterface Props {\r\n user: UserListTableItem;\r\n onBlockingUser: (user: UserListTableItem) => void;\r\n onUnblockingUser: (user: UserListTableItem) => void;\r\n}\r\n\r\nexport const UserContextMenu: React.FC = ({ user, onBlockingUser, onUnblockingUser }) => {\r\n const history = useHistory();\r\n const userRequestOperation = useSelector((state: AppState) => state.sellerAdminUsers.userRequestOperationState[user.id]);\r\n const userOperation = useSelector((state: AppState) => state.sellerAdminUsers.userOperationState[user.id]);\r\n\r\n const getUserRequestMenuItems = (r: UserCreationRequest) => [{\r\n text: 'Edit',\r\n action: () => history.push(routes.profileManageEditUserRequestUrl(user.id))\r\n }, {\r\n text: r.status === UserRequestStatus.Blocked ? 'Activate' : 'Block',\r\n disabled: isRequesting(userRequestOperation),\r\n action: () => r.status === UserRequestStatus.Blocked\r\n ? onUnblockingUser(user)\r\n : onBlockingUser(user)\r\n }];\r\n\r\n const getUserMenuItems = (u: CompanyUser) => {\r\n if (u.id === currentUser.current()?.id) {\r\n return [];\r\n }\r\n return [{\r\n text: 'Edit',\r\n action: () => history.push(routes.profileManageEditUserUrl(user.id)),\r\n }, {\r\n text: u.status === UserStatus.Blocked ? 'Activate' : 'Block',\r\n disabled: isRequesting(userOperation),\r\n action: () => u.status === UserStatus.Blocked\r\n ? onUnblockingUser(user)\r\n : onBlockingUser(user)\r\n }]\r\n };\r\n\r\n if(user.id === currentUser.current()?.id) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n )\r\n};\r\n","import { UserStatus } from '../../../../../types/account/UserStatus';\r\nimport { UserRequestStatus } from '../../../../../types/management/UserRequestStatus';\r\nimport { UserCreationRequest } from '../../../../../types/management/UserCreationRequest';\r\nimport { CompanyUser } from '../../../../../types/management/CompanyUser';\r\nimport { userRequestStatuses, userStatuses } from '../../../../../constants';\r\n\r\nexport interface UserListTableItem {\r\n id: number;\r\n\r\n userStatus?: UserStatus;\r\n userRequestStatus?: UserRequestStatus;\r\n statusText: string;\r\n\r\n fullName: string;\r\n email: string;\r\n jobTitle: string;\r\n phoneNumber: string | null;\r\n roles: string[];\r\n primaryContact: boolean;\r\n blockReason: string | null;\r\n registrationBy: string;\r\n registrationDate: Date;\r\n\r\n user?: CompanyUser;\r\n request?: UserCreationRequest;\r\n}\r\n\r\nexport function convert(user: CompanyUser | UserCreationRequest): UserListTableItem {\r\n const isRequest = 'concurrencyStamp' in user;\r\n return {\r\n id: user.id,\r\n userStatus: isRequest ? undefined : user.status as UserStatus,\r\n userRequestStatus: isRequest ? user.status as UserRequestStatus : undefined,\r\n statusText: (isRequest\r\n ? userRequestStatuses.getByStatusCode(user.status as UserRequestStatus)?.title\r\n : userStatuses.getByStatusCode(user.status)?.title) ?? '',\r\n fullName: `${user.firstName} ${user.lastName}`,\r\n email: user.email,\r\n jobTitle: user.jobTitle,\r\n phoneNumber: user.phoneNumber,\r\n roles: user.roles,\r\n primaryContact: user.primaryContact,\r\n blockReason: user.blockReason,\r\n registrationBy: user.registrationBy,\r\n registrationDate: user.registrationDate,\r\n\r\n user: isRequest ? undefined : user as CompanyUser,\r\n request: isRequest ? user as UserCreationRequest : undefined\r\n };\r\n}\r\n","import moment from 'moment';\r\nimport React, { useCallback, useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { profileActions } from '../../../../../actions/profile.actions';\r\nimport { sellerAdminUsersActions } from '../../../../../actions/seller-admin-users.actions';\r\nimport { constants, roles, routes, SORT, SORTING_TYPE } from '../../../../../constants';\r\nimport IconSVG from '../../../../../styles/svg-icons';\r\nimport { UserStatus } from '../../../../../types/account/UserStatus';\r\nimport { UserRequestStatus } from '../../../../../types/management/UserRequestStatus';\r\nimport { AppState } from '../../../../../types/state/AppState';\r\nimport { user } from '../../../../../user';\r\nimport { isRequesting, isRequestNone } from '../../../../../utils';\r\nimport { ShowFor } from '../../../../access';\r\nimport Confirm from '../../../../alerts/Confirm';\r\nimport { Table } from '../../../../bidding/common/table';\r\nimport { ColumnBuilder } from '../../../../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { IColumnDefinition } from '../../../../bidding/common/table/types/ColumnDefinition';\r\nimport { OnHoverTooltip, Preloader } from '../../../../common';\r\nimport { RejectReasonPopup } from '../../../../common/RejectReasonPopup';\r\nimport { Popover } from '../../../../controls';\r\nimport { Checkbox } from '../../../../controls/Checkbox';\r\nimport { ManageViewContent } from '../content/ManageViewContent';\r\nimport { ExpandableInfoPanel } from '../ExpandableInfoPanel';\r\nimport { MenageViewHeader } from '../header/MenageViewHeader';\r\nimport { MenageViewHeaderButtons } from '../header/MenageViewHeaderButtons';\r\nimport { RequestUserStatusDetails } from './RequestUserStatusDetails';\r\nimport { UserContextMenu } from './UserContextMenu';\r\nimport { convert, UserListTableItem } from './UserListTableItem';\r\nimport { useAppDispatch } from '../../../../../effects/useAppDispatch';\r\n\r\ninterface AnoncmentNotification {\r\n bwicCreateNotifyAdmins?: boolean;\r\n bwicCreateNotifyViewers?: boolean;\r\n}\r\n\r\nexport const UserList: React.FC = () => {\r\n const history = useHistory();\r\n const dispatch = useAppDispatch();\r\n\r\n const [hideBlockedUsers, setHideBlockedUsers] = useState(true);\r\n\r\n const [blockingUser, setBlockingUser] = useState();\r\n const [unblockingUser, setUnblockingUser] = useState();\r\n\r\n const companyAccount = useSelector((state: AppState) => state.profile.company);\r\n const users = useSelector((state: AppState) => state.sellerAdminUsers.users);\r\n const changeBwicAnnouncementNotificationsRequestState = useSelector((state: AppState) =>\r\n state.sellerAdminUsers.changeBwicAnnouncementNotificationsRequestState\r\n );\r\n const requestUsers = useSelector((state: AppState) => state.sellerAdminUsers.requestUsers);\r\n const isRequestingExportUser = useSelector((state: AppState) => state.sellerAdminUsers.isRequestingExportUser);\r\n const requestStateGetUserList = useSelector((state: AppState) => state.sellerAdminUsers.requestStateGetUserList);\r\n\r\n useEffect(() => {\r\n if (isRequestNone(requestStateGetUserList)) {\r\n dispatch(sellerAdminUsersActions.getUserListRequest());\r\n }\r\n }, [dispatch, requestStateGetUserList]);\r\n\r\n const changeBwicAnnouncementNotifications = (bwicAnnouncementNotification: AnoncmentNotification) => {\r\n dispatch(profileActions.changeBwicAnnouncementNotifications({\r\n bwicCreateNotifyAdmins: bwicAnnouncementNotification.bwicCreateNotifyAdmins ?? companyAccount?.bwicCreateNotifyAdmins,\r\n bwicCreateNotifyViewers: bwicAnnouncementNotification.bwicCreateNotifyViewers ?? companyAccount?.bwicCreateNotifyViewers\r\n }))\r\n }\r\n\r\n const convertToUserListItems = useCallback(() => {\r\n const userList = [\r\n ...users.map(u => convert(u)),\r\n ...requestUsers.map(r => convert(r))\r\n ].sort((a, b) => a.fullName.localeCompare(b.fullName));\r\n if (hideBlockedUsers) {\r\n return userList.filter(u => u.userStatus !== UserStatus.Blocked && u.userRequestStatus !== UserRequestStatus.Blocked)\r\n }\r\n return userList\r\n }, [users, requestUsers, hideBlockedUsers]);\r\n\r\n if (isRequestNone(requestStateGetUserList)) return null;\r\n\r\n const handleBlockUser = (message: string) => {\r\n if (blockingUser) {\r\n blockingUser.request\r\n ? dispatch(sellerAdminUsersActions.disableUserRequest(blockingUser.id, blockingUser.request.concurrencyStamp, message))\r\n : dispatch(sellerAdminUsersActions.disableUser(blockingUser.id, message));\r\n }\r\n setBlockingUser(undefined)\r\n };\r\n\r\n const getColumns = () => {\r\n const userRoles: IColumnDefinition = {\r\n columnKey: 'roles',\r\n renderColumnHeaderContent: () => 'User Role',\r\n renderColumnContent: entity => {\r\n const text = roles.sortRolesByPriority([...entity.roles])\r\n .map((role: string) => roles.getShortTitle(role))\r\n .join(', ');\r\n return (\r\n \r\n {text}\r\n \r\n )\r\n },\r\n headerClassName: 'data-list-user-role',\r\n bodyClassName: 'data-list-user-role',\r\n sortingField: 'roles',\r\n sortingType: SORTING_TYPE.rolesShortTitles\r\n };\r\n const name: IColumnDefinition = {\r\n columnKey: 'name',\r\n renderColumnHeaderContent: () => 'User',\r\n renderColumnContent: entity => (\r\n {entity.fullName}}\r\n >\r\n \r\n \r\n ),\r\n headerClassName: 'data-list-user',\r\n bodyClassName: 'data-list-user',\r\n sortingField: 'fullName',\r\n sortingType: SORTING_TYPE.string\r\n };\r\n const fullName: IColumnDefinition = {\r\n columnKey: 'fullName',\r\n renderColumnHeaderContent: () => 'User',\r\n renderColumnContent: entity => {\r\n return (\r\n \r\n {entity.fullName}\r\n \r\n )\r\n },\r\n headerClassName: 'data-list-user',\r\n bodyClassName: 'data-list-user',\r\n sortingField: 'fullName',\r\n sortingType: SORTING_TYPE.string\r\n };\r\n const email: IColumnDefinition = {\r\n columnKey: 'email',\r\n renderColumnHeaderContent: () => 'Email',\r\n renderColumnContent: entity => {\r\n return (\r\n \r\n {entity.email}\r\n \r\n )\r\n },\r\n headerClassName: 'data-list-email',\r\n bodyClassName: 'data-list-email'\r\n };\r\n const phone: IColumnDefinition = {\r\n columnKey: 'phone',\r\n renderColumnHeaderContent: () => 'Phone',\r\n renderColumnContent: entity => {\r\n return (\r\n \r\n {entity.phoneNumber || constants.emptyPlaceholder}\r\n \r\n )\r\n },\r\n headerClassName: 'data-list-phone',\r\n bodyClassName: 'data-list-phone',\r\n };\r\n const status: IColumnDefinition = {\r\n columnKey: 'status',\r\n renderColumnHeaderContent: () => 'Status',\r\n renderColumnContent: entity => (\r\n \r\n ),\r\n headerClassName: 'data-list-status',\r\n bodyClassName: 'data-list-status',\r\n sortingField: 'statusText',\r\n sortingType: SORTING_TYPE.string\r\n };\r\n const registrationDate: IColumnDefinition = {\r\n columnKey: 'registrationDate',\r\n renderColumnHeaderContent: () => 'Reg. Date',\r\n renderColumnContent: entity => moment(entity.registrationDate).format(constants.dateFormat4),\r\n headerClassName: 'data-list-reg-date',\r\n bodyClassName: 'data-list-reg-date',\r\n sortingField: 'registrationDate',\r\n sortingType: SORTING_TYPE.date\r\n };\r\n const registeredBy: IColumnDefinition = {\r\n columnKey: 'registratedBy',\r\n renderColumnHeaderContent: () => 'Reg. by',\r\n renderColumnContent: entity => (\r\n entity.registrationBy === 'KopenTech Admin'\r\n ? 'KopenTech Admin'\r\n : entity.registrationBy ? {entity.registrationBy} : null\r\n ),\r\n headerClassName: 'data-list-reg-by',\r\n bodyClassName: 'data-list-reg-by',\r\n sortingField: 'registrationBy',\r\n sortingType: SORTING_TYPE.string\r\n };\r\n const options: IColumnDefinition = {\r\n columnKey: 'actions',\r\n renderColumnHeaderContent: () => 'Actions',\r\n renderColumnContent: entity => (\r\n \r\n ),\r\n headerClassName: 'data-list-options text-right',\r\n bodyClassName: 'data-list-options text-right'\r\n };\r\n const jobTitle: IColumnDefinition = {\r\n columnKey: 'jobTitle',\r\n renderColumnHeaderContent: () => 'Job Title',\r\n renderColumnContent: entity => (\r\n !!entity.jobTitle\r\n ? {entity.jobTitle}\r\n : constants.emptyPlaceholder\r\n ),\r\n headerClassName: 'data-list-job-title',\r\n bodyClassName: 'data-list-job-title',\r\n sortingField: 'jobTitle',\r\n sortingType: SORTING_TYPE.string\r\n };\r\n\r\n\r\n const columns = user.hasRoles(roles.SellerAdministrator)\r\n ? [userRoles, name, jobTitle, status, registrationDate, registeredBy, options]\r\n : [userRoles, fullName, jobTitle, status, email, phone];\r\n\r\n return columns.map(c => new ColumnBuilder(c));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n dispatch(sellerAdminUsersActions.exportUsersRequest())}\r\n disabled={isRequestingExportUser}\r\n >\r\n Export Login History\r\n \r\n \r\n history.push(routes.profileManageCreateNewUser)}\r\n >\r\n \r\n New User\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n

\r\n Company Admin users can perform the following functions:
\r\n · Create, update, block/unblock users
\r\n · Download login history of company users by clicking “Export Login History”
\r\n

\r\n

\r\n Traders/Viewers can see the Platform Users page in view-only mode.
\r\n When a new Admin user is created, all current Admins will receive an email notification.\r\n

\r\n

\r\n Users created by Admin must be approved by the KTX ATS Platform. Until approval is processed, the new user is shown to the Admin as “Pending Approval”\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n setHideBlockedUsers(!hideBlockedUsers)}\r\n />\r\n changeBwicAnnouncementNotifications({ bwicCreateNotifyAdmins: e.target.checked })}\r\n />\r\n changeBwicAnnouncementNotifications({ bwicCreateNotifyViewers: e.target.checked })}\r\n />\r\n
\r\n
Receive email notifications on BWIC announcements
\r\n
\r\n
\r\n \r\n
\r\n {\r\n blockingUser &&\r\n setBlockingUser(undefined)}\r\n onReject={handleBlockUser}\r\n comfirmButtonText=\"Block\"\r\n />\r\n }\r\n {\r\n unblockingUser &&\r\n {\r\n unblockingUser.request\r\n ? dispatch(sellerAdminUsersActions.enableUserRequest(unblockingUser.id, unblockingUser.request.concurrencyStamp))\r\n : dispatch(sellerAdminUsersActions.enableUser(unblockingUser.id));\r\n setUnblockingUser(undefined)\r\n }}\r\n onCancel={() => setUnblockingUser(undefined)}\r\n />\r\n }\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Switch, Route } from 'react-router';\r\nimport { roles, routes } from '../../../../../constants';\r\nimport { user } from '../../../../../user';\r\nimport { EditUser } from './EditUser';\r\nimport { UserList } from './UserList';\r\n\r\nexport const UsersView: React.FC = () => {\r\n const isSellerAdmin = user.hasRoles(roles.SellerAdministrator);\r\n\r\n return (\r\n
\r\n \r\n {isSellerAdmin && }\r\n {isSellerAdmin && }\r\n {isSellerAdmin && }\r\n \r\n \r\n
\r\n )\r\n};\r\n","import React from 'react';\r\nimport { ManageViewContent } from '../manage/content/ManageViewContent';\r\nimport { EmailPreferencesContent } from './EmailPreferencesContent';\r\n\r\nexport const EmailPreferences: React.FC = () => {\r\n return (\r\n
\r\n
\r\n

Alerts Center

\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n};\r\n","import { SettlementAgentAgreement } from \"../../../../types/bid-as-dealer/SettlementAgentAgreement\";\r\nimport { SettlementAgreementStatus } from \"../../../../types/bid-as-dealer/SettlementAgreementStatus\";\r\nimport { isRequestSuccess } from \"../../../../utils\";\r\nimport { EmptyPlaceholder } from \"../../../common\";\r\nimport { useAgreement } from \"../../../seller-buyside/useAgreement\";\r\n\r\ninterface Props {\r\n children: (agreement: SettlementAgentAgreement) => React.ReactNode;\r\n}\r\nexport function SettlementAgentTabContent({ children }: Props) {\r\n const { agreement, requestState } = useAgreement();\r\n\r\n if (!isRequestSuccess(requestState)) return null;\r\n\r\n if (agreement == null ||\r\n agreement?.agreementStatus !== SettlementAgreementStatus.confirmed) {\r\n return \r\n }\r\n\r\n\r\n return <>{children(agreement)};\r\n}","import { SettlementAgentDailyTraidingLimit } from \"../../../common/settlment-agent-popup/SettlementAgentDailyTraidingLimit\";\r\nimport { SettlementAgentTabContent } from \"./SettlementAgentTabContent\";\r\n\r\nexport function SettlementAgentLimits() {\r\n return (\r\n \r\n {agreement =>\r\n <>\r\n
\r\n
Sell/Buy limits and commissions set by the Settlement Agent
\r\n
\r\n \r\n \r\n }\r\n
\r\n )\r\n}","import { useCompanyUserList } from \"../../../../effects/useCompanyUserList\";\r\nimport { SettlementAgentAgreement } from \"../../../../types/bid-as-dealer/SettlementAgentAgreement\";\r\nimport { SettlementAgentContactsList } from \"../../../common/settlment-agent-popup/SettlementAgentContactsList\";\r\nimport { SettlementAgentTabContent } from \"./SettlementAgentTabContent\";\r\n\r\nexport function SettlementAgentContacts() {\r\n return (\r\n \r\n {agreement => }\r\n \r\n )\r\n}\r\n\r\ninterface Props {\r\n agreement: SettlementAgentAgreement;\r\n}\r\nexport function SettlementContactsContent({ agreement }: Props) {\r\n const { requestStateGetUsers, users } = useCompanyUserList(agreement.settlementAgent.id);\r\n\r\n return \r\n}","import React, { ChangeEvent } from 'react';\r\nimport cn from \"classnames\";\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport MaskedInput from \"react-text-mask\";\r\nimport createNumberMask from 'text-mask-addons/dist/createNumberMask';\r\nimport { constants } from '../../../../constants';\r\n\r\ninterface Props {\r\n label: string;\r\n placeholder: string;\r\n value: number | null;\r\n editMode: boolean;\r\n onChange: (value: number | null) => void;\r\n}\r\n\r\nexport const CompanyLimitInput: React.FC = ({ value, editMode, label, placeholder, onChange }) => {\r\n const id = uuidv4();\r\n const handleChange = (e: ChangeEvent) => {\r\n const newValue = e.target.value.replace(/,/g, '');\r\n if (newValue === ''\r\n || (\r\n newValue.match(constants.regOnlyNumbers) &&\r\n Number(newValue) >= constants.sellerAdminTradingLimits.min &&\r\n Number(newValue) <= constants.sellerAdminTradingLimits.max\r\n )\r\n ) {\r\n onChange(newValue === '' ? null : Number(newValue))\r\n } else {\r\n onChange(value)\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n {\r\n editMode\r\n ? (\r\n \r\n )\r\n : {value == null ? constants.emptyPlaceholder : Number(value).toLocaleString('en')}\r\n }\r\n
\r\n
\r\n )\r\n};\r\n","import { useEffect, useMemo, useState } from \"react\";\r\nimport { cloneDeep, entries, isEqual } from \"lodash\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router\";\r\nimport { AppState } from \"../../../../types/state/AppState\";\r\nimport { sellerAdminLimitActions } from \"../../../../actions/seller-admin-limit.actions\";\r\nimport { isRequestNone, isRequestSuccess, isRequesting } from \"../../../../utils/request-state.utils\";\r\nimport { TradingLimitType } from \"../../../../types/seller-admin/TradingLimitType\";\r\nimport { SellerAdminTradingLimitValuesState } from \"../../../../types/seller-admin/SellerAdminTradingLimitValuesState\";\r\nimport { Currency } from \"../../../../types/enums/Currency\";\r\nimport { ShowFor } from \"../../../access/ShowFor\";\r\nimport { roles } from \"../../../../constants/roles\";\r\nimport { Preloader } from \"../../../common/Preloader\";\r\nimport { ExpandableInfoPanel } from \"../manage/ExpandableInfoPanel\";\r\nimport { CompanyLimitInput } from \"./CompanyLimitInput\";\r\nimport RouteLeavingGuard from \"../../../routing/RouteLeavingGuard\";\r\nimport Confirm from \"../../../alerts/Confirm\";\r\n\r\nexport function CompanyLimits() {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const editMode = useSelector((state: AppState) => state.sellerAdminLimit.editMode);\r\n const tradingLimitsState = useSelector((state: AppState) => state.sellerAdminLimit.tradingLimits);\r\n const getLimitsRequestStatus = useSelector((state: AppState) => state.sellerAdminLimit.getLimitsRequestStatus);\r\n const updateLimitsRequestStatus = useSelector((state: AppState) => state.sellerAdminLimit.updateLimitsRequestStatus);\r\n\r\n const [tradingLimits, setTradingLimits] = useState(cloneDeep(tradingLimitsState));\r\n const [confirm, setConfirm] = useState(false);\r\n\r\n useEffect(() => {\r\n return () => {\r\n dispatch(sellerAdminLimitActions.setEditModeStatus(false));\r\n }\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (!isRequesting(getLimitsRequestStatus) && !isRequestSuccess(getLimitsRequestStatus)) {\r\n dispatch(sellerAdminLimitActions.getTradeLimitsRequest());\r\n }\r\n }, [dispatch, getLimitsRequestStatus]);\r\n\r\n useEffect(() => {\r\n if (!editMode) {\r\n setTradingLimits(cloneDeep(tradingLimitsState))\r\n }\r\n }, [editMode, tradingLimitsState]);\r\n\r\n const isChanged = useMemo(\r\n () => !isEqual(tradingLimitsState, tradingLimits),\r\n [tradingLimitsState, tradingLimits]\r\n );\r\n\r\n if (isRequestNone(getLimitsRequestStatus)) return null;\r\n\r\n const handleSetTradingLimits = (limitKey: TradingLimitType, currencyKey: string, value: number | null) => {\r\n const updatedLimits: SellerAdminTradingLimitValuesState = { ...tradingLimits };\r\n updatedLimits[limitKey as unknown as TradingLimitType][currencyKey as Currency] = value;\r\n setTradingLimits(updatedLimits)\r\n };\r\n\r\n const handleSave = () => {\r\n const hasZeroValues = entries(tradingLimits).some(([, { USD, EUR }]) => USD === 0 || EUR === 0);\r\n if (hasZeroValues) {\r\n setConfirm(true);\r\n } else {\r\n dispatch(sellerAdminLimitActions.updateTradeLimitsRequest(tradingLimits))\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
Sell/Buy limits set by the Seller-Admin of your company.
\r\n
\r\n {editMode ? (\r\n <>\r\n dispatch(sellerAdminLimitActions.setEditModeStatus(false))}\r\n >\r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n ) : (\r\n \r\n dispatch(sellerAdminLimitActions.setEditModeStatus(true))}\r\n >\r\n Edit\r\n \r\n \r\n )}\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n

\r\n Company Admins can set the following limits:
\r\n · Total daily limit on sales and purchases
\r\n · Maximum notional per security (separate for EUR and USD)\r\n

\r\n

\r\n If limit is blank, Trader users can transact without restrictions. If zero is applied, selling/buying in this currency is prohibited.\r\n

\r\n

\r\n Once the limits are set/updated, all Trader users in the company receive an email notification.\r\n

\r\n

\r\n Trader users can view trading limits in: Profile -> Account Settings -> Company.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Daily Sell Limit

\r\n handleSetTradingLimits(TradingLimitType.SellMaxBondSize, Currency.USD, value)}\r\n />\r\n handleSetTradingLimits(TradingLimitType.SellMaxBondSize, Currency.EUR, value)}\r\n />\r\n handleSetTradingLimits(TradingLimitType.SellMaxDailyTradesSize, Currency.USD, value)}\r\n />\r\n handleSetTradingLimits(TradingLimitType.SellMaxDailyTradesSize, Currency.EUR, value)}\r\n />\r\n
\r\n
\r\n

Daily Buy Limit

\r\n handleSetTradingLimits(TradingLimitType.BuyMaxBondSize, Currency.USD, value)}\r\n />\r\n handleSetTradingLimits(TradingLimitType.BuyMaxBondSize, Currency.EUR, value)}\r\n />\r\n handleSetTradingLimits(TradingLimitType.BuyMaxDailyTradesSize, Currency.USD, value)}\r\n />\r\n handleSetTradingLimits(TradingLimitType.BuyMaxDailyTradesSize, Currency.EUR, value)}\r\n />\r\n
\r\n
\r\n\r\n history.push(pathname)}\r\n shouldBlockNavigation={() => isChanged}\r\n />\r\n {\r\n confirm && (\r\n {\r\n dispatch(sellerAdminLimitActions.updateTradeLimitsRequest(tradingLimits));\r\n setConfirm(false);\r\n }}\r\n onCancel={() => setConfirm(false)}\r\n />\r\n )\r\n }\r\n
\r\n );\r\n}","import { Redirect, Route, Switch, useParams } from \"react-router\";\r\nimport { TabItem, TabList } from \"../../../bidding/common/tab-list\";\r\nimport { routes } from \"../../../../constants/routes\";\r\nimport { ShowFor } from \"../../../access\";\r\nimport { roles } from \"../../../../constants\";\r\nimport { SettlementAgentLimits } from \"./SettlementAgentLimits\";\r\nimport { SettlementAgentContacts } from \"./SettlementAgentContacts\";\r\nimport { user } from \"../../../../user\";\r\nimport { CompanyLimits } from \"./CompanyLimits\";\r\n\r\nexport const tradingLimitsTabs = {\r\n companyLimits: \"company-limits\",\r\n settlementAgentLimits: \"settlement-agent-limits\",\r\n settlementContacts: \"settlement-contacts\"\r\n}\r\n\r\nexport function TradingLimitsView() {\r\n const { tab } = useParams<{ tab: string }>();\r\n\r\n if(user.current()?.isClearingBank) return \r\n\r\n const isSeller = user.hasRoles(roles.SellerTrader, roles.SellerViewer, roles.SellerAdministrator);\r\n const isBd = user.hasRoles(roles.BrokerDealerTrader, roles.BrokerDealerViewer);\r\n const settllementTabsAccessRoles = [...roles.seller(), ...roles.bd()];\r\n\r\n return (\r\n
\r\n
\r\n

Trading Limits

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\r\n isSeller && // seller default tab\r\n \r\n }\r\n {\r\n isBd && // bd default tab\r\n \r\n }\r\n {user.hasRoles(...settllementTabsAccessRoles) ?\r\n (<>\r\n \r\n \r\n ) : null}\r\n \r\n \r\n
\r\n
\r\n );\r\n}","import { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Redirect, Route, Switch, useHistory, matchPath } from \"react-router\";\r\nimport classNames from 'classnames'\r\nimport { profileTabs as tabs, roles, routes } from '../../constants';\r\nimport { profileActions as actions } from '../../actions';\r\nimport { Company, PasswordSettings, PersonalInfo, Traders } from './tabs';\r\nimport { Preloader } from '../common/Preloader';\r\nimport { TwoFactorAuthSettings } from './tabs/tfa/TwoFactorAuthSettings';\r\nimport { SubscriptionsView } from './tabs/subscriptions/SubscriptionsView';\r\nimport { SubscriptionsTab } from './tabs/subscriptions/SubscriptionsTab';\r\nimport { DealersView } from './tabs/manage/dealers/DealersView';\r\nimport { UsersView } from './tabs/manage/users/UsersView';\r\nimport { ShowFor } from '../access';\r\nimport IconSVG from \"../../styles/svg-icons\";\r\nimport { user } from '../../user/user';\r\nimport { EmailPreferences } from './tabs/email-preferences/EmailPreferences';\r\nimport { EmailPreferencesTab } from \"./tabs/email-preferences/EmailPreferencesContent\";\r\nimport { WithAmrRegistration } from '../routing/WithAmrRegistration';\r\nimport { isRequestSuccess } from '../../utils/request-state.utils';\r\nimport { TradingLimitsView, tradingLimitsTabs } from './tabs/trading-limits/TradingLimitsView';\r\nimport { OnHoverTooltip } from '../common';\r\n\r\nconst Profile = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const initStatus = useSelector(state => state.profile.initStatus);\r\n const profile = useSelector(state => state.profile.profile);\r\n\r\n const [collapsed, setCollapsed] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch(actions.init());\r\n return () => dispatch(actions.reset())\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n window.dispatchEvent(new Event('resize'));\r\n }, [collapsed]);\r\n\r\n const currentActiveTab = () => {\r\n const isProfileManageEditUser = matchPath(history.location.pathname, {\r\n path: routes.profileManageEditUser,\r\n exact: true,\r\n strict: false\r\n });\r\n const isProfileManageEditUserRequest = matchPath(history.location.pathname, {\r\n path: routes.profileManageEditUserRequest,\r\n exact: true,\r\n strict: false\r\n });\r\n if (isProfileManageEditUser || isProfileManageEditUserRequest) {\r\n return { tab: tabs.managePlatformUsers };\r\n }\r\n switch (history.location.pathname) {\r\n case routes.profilePersonalInfo:\r\n return { tab: tabs.personalInfo, parent: tabs.parent.account };\r\n case routes.profilePasswordSettings:\r\n return { tab: tabs.passwordSettings, parent: tabs.parent.account };\r\n case routes.tfaSettings:\r\n return { tab: tabs.twoFactorAuthenticationSettings, parent: tabs.parent.account };\r\n case routes.profileNotifications:\r\n return { tab: tabs.notifications, parent: tabs.parent.account };\r\n case routes.subscriptionsTab():\r\n case routes.subscriptionsTab(SubscriptionsTab.overview):\r\n case routes.subscriptionsTab(SubscriptionsTab.plans):\r\n case routes.subscriptionsTab(SubscriptionsTab.paymentMethod):\r\n case routes.subscriptionsTab(SubscriptionsTab.billingInfo):\r\n case routes.subscriptionsTab(SubscriptionsTab.billingHistory):\r\n return { tab: tabs.subscriptions, parent: tabs.parent.account };\r\n case routes.profileCompanyInformation:\r\n return { tab: tabs.company, parent: tabs.parent.company };\r\n case routes.profileTradingLimitsTab():\r\n case routes.profileTradingLimitsTab(tradingLimitsTabs.companyLimits):\r\n case routes.profileTradingLimitsTab(tradingLimitsTabs.settlementAgentLimits):\r\n case routes.profileTradingLimitsTab(tradingLimitsTabs.settlementContacts):\r\n return { tab: tabs.tradingLimits, parent: tabs.parent.company };\r\n case routes.profileTraders:\r\n return { tab: tabs.traders, parent: tabs.parent.company };\r\n case routes.profileManageDealers:\r\n return { tab: tabs.manageDealers };\r\n case routes.profileManagePlatformUsers:\r\n case routes.profileManageCreateNewUser:\r\n return { tab: tabs.managePlatformUsers };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.Dashboard):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.Dashboard) };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.BwicMonitor):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.BwicMonitor) };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.MyBwics):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.MyBwics) };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.IssuanceMonitor):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.IssuanceMonitor) };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.DealerInventory):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.DealerInventory) };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.Portfolio):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.Portfolio) };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.CloManagers):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.CloManagers) };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.Banks):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.Banks) };\r\n case routes.profileNotificationsTab(EmailPreferencesTab.ArrangerPipeline):\r\n return { tab: routes.profileNotificationsTab(EmailPreferencesTab.ArrangerPipeline) };\r\n default:\r\n return { tab: '', parent: '' };\r\n }\r\n };\r\n\r\n const isActiveTab = tab => currentActiveTab().tab === tab;\r\n\r\n const handleCollapse = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n\r\n\r\n const renderTradingLimitsTab = () => {\r\n if (user.current()?.isClearingBank) return null;\r\n\r\n return (\r\n history.push(routes.profileTradingLimitsTab())}\r\n >\r\n Trading Limits\r\n \r\n );\r\n }\r\n\r\n\r\n const renderManageTabs = () =>\r\n
    \r\n history.push(routes.profileManagePlatformUsers)}\r\n >\r\n Platform Users\r\n \r\n {renderTradingLimitsTab()}\r\n \r\n history.push(routes.profileManageDealers)}\r\n >\r\n Counterparties\r\n \r\n \r\n
;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {user.hasRoles(...[...roles.bd(), ...roles.admin(), roles.DataEntry, roles.Viewer]) && (\r\n \r\n )}\r\n \r\n }\r\n />\r\n {user.hasRoles(roles.SellerAdministrator) && (\r\n \r\n )}\r\n {user.hasRoles(roles.SellerAdministrator, roles.SellerTrader, roles.SellerViewer) && (\r\n \r\n )}\r\n {user.hasRoles(\r\n roles.SellerAdministrator,\r\n roles.SellerTrader,\r\n roles.SellerViewer,\r\n roles.BrokerDealerTrader,\r\n roles.BrokerDealerViewer,\r\n ) && (\r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport { Profile };\r\n","import { Link } from 'react-router-dom';\r\nimport { routes } from '../../../../../../constants/routes';\r\nimport { isRequestNone, isRequestSuccess, isRequesting } from '../../../../../../utils';\r\nimport { Preloader } from '../../../../../common/Preloader';\r\nimport { Popup, PopupBody, PopupFooter } from '../../../../../controls';\r\nimport { EmailPreferencesTab } from '../../EmailPreferencesContent';\r\nimport { SavePortfolioAlertsButton } from './SavePortfolioAlertsButton';\r\nimport { usePageConfig } from '../../../../../common/pageConfig/usePageConfig';\r\nimport { PageConfigType } from '../../../../../../types/page-config/PageConfigType';\r\nimport { BwicFilterType } from '../../../../../../types/filters/FilterState';\r\nimport { PortfolioUserConfigFilter } from '../../../../../../types/user-config/UserConfigFilter';\r\nimport { useEffect } from 'react';\r\nimport { useAppSelector } from '../../../../../../effects/useAppSelector';\r\nimport { useDispatch } from 'react-redux';\r\nimport { manageEmailPreferencesActions } from '../../../../../../actions/manage-email-preferences.actions';\r\nimport { AlertOption } from '../../../../../../types/email-preferences/EmailPreferences';\r\nimport { emailPreferencesUtils } from '../../../../../../utils/email-preferences.utils';\r\nimport { AlertEnabledState } from '../../../../../../types/enums/AlertEnabledState';\r\nimport { StatusMessageSection } from '../../../../../status-message/StatusMessageSection';\r\nimport { StatusMessageSectionType } from '../../../../../../types/state/NotificationState';\r\nimport { PortfolioAlertsTabs } from './PortfolioAlertsTabs';\r\n\r\ninterface Props {\r\n onClose: () => void;\r\n}\r\n\r\nexport const PortfolioAlertsPopup = ({ onClose }: Props) => {\r\n const dispatch = useDispatch();\r\n\r\n const { config, requestState, updateRequestState } = usePageConfig(PageConfigType.Portfolio, true, BwicFilterType.Portfolio);\r\n const requestStateGetPreferences = useAppSelector(s => s.manageEmailPreferences.requestStateGetPreferences);\r\n const savePreferencesRequestState = useAppSelector(s => s.manageEmailPreferences.requestStateSaveEditPreferences);\r\n const portfolioCleansingNoticeAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioCleansingNoticeAlertState,\r\n );\r\n const portfolioIssuanceMonitorAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioIssuanceMonitorAlertState,\r\n );\r\n const portfolioOutRiAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioOutOfRiPeriodAlertState,\r\n );\r\n const portfolioOutNcAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioOutOfNcPeriodAlertState,\r\n );\r\n const portfolioRollerDeadlineAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioRollerDeadlineAlertState,\r\n );\r\n const allSecuritiesBwicAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioBwicAlertState,\r\n );\r\n const allSecuritiesInventortAlertState = useAppSelector(\r\n s => s.manageEmailPreferences.editPreferences.portfolioDealersInventoryAlertState,\r\n );\r\n\r\n const cleansingNoticeAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioCleansingNoticeAlertState,\r\n AlertOption.Instant,\r\n );\r\n const allSecuritiesBwicAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n allSecuritiesBwicAlertState,\r\n AlertOption.Instant,\r\n );\r\n const allSecuritiesInventoryAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n allSecuritiesInventortAlertState,\r\n AlertOption.Instant,\r\n );\r\n const issuanceMonitorAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioIssuanceMonitorAlertState,\r\n AlertOption.Instant,\r\n );\r\n const outOfRiAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioOutRiAlertState,\r\n AlertOption.Periodic,\r\n );\r\n const outOfNcAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioOutNcAlertState,\r\n AlertOption.Periodic,\r\n );\r\n const rollerDeadlineAlertOption = emailPreferencesUtils.convertAlertEnabledStateToAlertOption(\r\n portfolioRollerDeadlineAlertState,\r\n AlertOption.Instant,\r\n );\r\n\r\n useEffect(() => {\r\n if(config?.filters) {\r\n dispatch(manageEmailPreferencesActions.initPortfolioFilterAlerts(config.filters))\r\n }\r\n }, [dispatch, config?.filters])\r\n\r\n useEffect(() => {\r\n if (isRequestSuccess(savePreferencesRequestState)) {\r\n onClose();\r\n } // eslint-disable-next-line\r\n }, [savePreferencesRequestState]);\r\n\r\n useEffect(\r\n () => () => {\r\n dispatch(manageEmailPreferencesActions.reset());\r\n },\r\n [dispatch],\r\n );\r\n\r\n useEffect(() => {\r\n if (isRequestNone(requestStateGetPreferences)) {\r\n dispatch(manageEmailPreferencesActions.getInitialDataRequest());\r\n }\r\n }, [dispatch, requestStateGetPreferences]);\r\n\r\n const handleChangeCnAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioCleansingNoticeAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleChangeImAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioIssuanceMonitorAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleChangeOutOfRiAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioRiAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleChangeOutOfNcAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioNcAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleChangeRollerDeadlineAlert = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioRollerDeadlineAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleBwicAlertChange = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioBwicAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const handleInventoryAlertChange = (value: AlertOption) => {\r\n dispatch(\r\n manageEmailPreferencesActions.setPortfolioInventoryAlerts(\r\n emailPreferencesUtils.convertAlertOptionToAlertEnabledState(value),\r\n ),\r\n );\r\n };\r\n\r\n const withPartiallyEnabledAlerts = [\r\n portfolioCleansingNoticeAlertState,\r\n portfolioIssuanceMonitorAlertState,\r\n portfolioOutRiAlertState,\r\n portfolioOutNcAlertState,\r\n portfolioRollerDeadlineAlertState,\r\n allSecuritiesBwicAlertState,\r\n allSecuritiesInventortAlertState,\r\n ].some((alertState) => alertState === AlertEnabledState.PartiallyEnabled);\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {withPartiallyEnabledAlerts && (\r\n \r\n Some alerts are disabled on partial check, see Portfolio page for details and management.\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 Manage Alerts\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"],"names":["useInventoryAlertsChangedState","_config$filters","config","usePageConfig","PageConfigType","DealerInventory","BwicFilterType","Inventory","savedFiltersEditState","useAppSelector","s","manageEmailPreferences","editSavedFiltersPreferences","initialPreferences","editPreferences","isFilterAlertsChanged","filters","some","f","referenceName","alertOption","dealerInventoryAlertStateChanged","dealerInventoryAlertState","SinglePortfolioAlertsPopup","_ref","portfolio","onClose","dispatch","useAppDispatch","_useState","useState","cleansingNoticeAlert","_useState2","_slicedToArray","setCleansingNoticeAlert","_useState3","bwicAlert","_useState4","setBwicAlert","_useState5","dealersInventoryAlert","_useState6","inventoryAlert","setInventoryAlert","_useState7","issuanceMonitorAlert","_useState8","setIssuanceMonitorAlert","_useState9","outOfRiPeriodAlert","_useState10","outOfRiAlert","setOutOfRiAlert","_useState11","outOfNcPeriodAlert","_useState12","outOfNcAlert","setOutOfNcAlert","_useState13","rollerDeadlineAlert","_useState14","setRollerDeadlineAlert","hasChanges","handleClose","e","stopPropagation","_jsxs","Popup","modalClass","renderInBody","title","_Fragment","children","_jsx","className","name","PopupBody","PortfolioAlertsTabs","cnAlert","AlertOption","Instant","Never","onChangeCnAlert","o","onChangeBwicAlert","onChangeInventoryAlert","imAlert","onChangeImAlert","Periodic","onChangeOutOfRiAlert","onChangeOutOfNcAlert","onChangeRollerDeadlineAlert","PopupFooter","Link","to","routes","profileNotificationsTab","EmailPreferencesTab","Portfolio","onClick","portfolioActions","updatePortfoliosAlertStatus","portfolioId","id","undefined","disabled","BwicMonitorSecondaryWeeklySummary","secondaryWeeklySummaryAlertState","isRequestingSavePreferences","isRequesting","requestStateSaveEditPreferences","EmailPreferencesRadioGroup","value","alertOptions","Weekly","alertOptionInfo","_defineProperty","groupNameIndentifier","description","onChange","selectedOption","option","manageEmailPreferencesActions","setSecondaryWeeklySummaryAlert","requiredFeatures","SubscriptionFeature","BwicMonitorAlerts","BwicMonitorAlertsSaveButton","currentFilters","withLeavingGuard","onSave","useDispatch","history","useHistory","savePreferencesRequestState","emailPreferencesRequestState","requestStateGetPreferences","bwicByRatingAlertState","isEqual","isSaveButtonDisabled","useMemo","isBwicByRatingAlertStateAtleastOneSelected","ratingPreference","_ref2","isUSD","isEUR","_ref3","minSize","maxSize","constants","emailPreferencesSizeRange","min","max","isDisabled","cn","updatedFilters","length","map","_savedFiltersEditStat","_objectSpread","RouteLeavingGuard","navigate","pathname","rollbackBWICPipelines","push","shouldBlockNavigation","SaveButton","IssuanceMonitorAlertsSection","imAlertState","imTransactionAlertState","imStatisticAlertState","imFiltersAlertState","ImEmailAlerts","singleUpdate","newTransactionUpdate","weeklyStatistic","filterAlerts","onChangeSingleUpdate","setIssuanceMonitorSingleAlert","onChangeNewTransactionUpdate","setIssuanceMonitorNewTransactionAlert","onChangeWeeklyStatistic","setIssuanceMonitorStatisticsAlert","onChangeFilterAlerts","setIssuanceMonitorFiltersAlert","EmailPreferencesTabItem","tabPath","tab","useParams","isSellerCollateralManager","user","hasRoles","roles","CollateralManager","withImApAccess","hasFeatures","IssuanceMonitorFullAccess","withManagerProfileAccess","ManagerProfileManagerRelatedAlerts","withBwicAccess","withDiAccess","InventoryAlerts","withDealerProfileAccess","DealerProfileEmailAlerts","portfolioImAlertsAccess","hasAllFeatures","apply","PortfolioAlerts","userCompany","issuanceMonitor","amrPipelineCommon","banks","editIssuanceMonitorPreferences","editCloManagersPreferences","editBanksPreferences","editArrangerPipelinePreferences","portfolioSavedFilterAlerts","bwicMonitorPageConfig","BwicMonitorAll","portfolioPageConfig","dealerInventoryPageConfig","withAnalyticsAccess","hasBankAnalyticsAlertsAccess","withAnalyticsChangeAccess","hasBankAnalyticsAlertsChangeAccess","getDefaultGlobalAlertStatus","_step","alerts","arguments","status","_iterator","_createForOfIteratorHelper","_loop","every","n","done","err","counters","Dashboard","CanUseDashboardAlerts","Number","dailyDashboardEmail","BwicMonitor","isSavedFiltersAlertOptionActive","original","changed","canUseBwicMonitorAlerts","getBwicMonitorCounters","MyBwics","emailPreferencesUtils","convertAlertEnabledStateToAlertOption","newBwicAlertState","bwicReminderAlertState","IssuanceMonitor","alertsCount","Boolean","imAlertConfig","newTransactionAlertConfig","weeklyStatsAlertConfig","emailOption","StatisticsAlertOption","filtersConfig","ImFilter","i","ArrangerPipeline","apAlertConfig","getActualFilter","filter","bwicAlertOption","dealerInventoryAlertOption","isSavedFiltersBwicAlertOptionActive","isSavedFiltersInventoryAlertOptionActive","portfolioBwicAlertState","portfolioDealersInventoryAlertState","portfolioCleansingNoticeAlertState","portfolioIssuanceMonitorAlertState","portfolioOutOfRiPeriodAlertState","portfolioOutOfNcPeriodAlertState","portfolioRollerDeadlineAlertState","getPortfolioCounters","canUseInventoryAlerts","getInventoryCounters","CloManagers","cloManagerAnalyticsValue","cloManagerAnalyticsAlert","find","a","companyReferenceName","cloManagerAnalyticSectionCounter","cloManagerBwicSectionCounter","cloManagerBwicAlert","cloManagerDiSectionCounter","cloManagerDealerInventoryAlert","cloManagerImSectionCounter","cloManagerIssuanceMonitorAlert","cloManagerApSectionCounter","cloManagerArrangerPipelineAlert","concat","_toConsumableArray","getCloManagerCounters","Banks","bankDiSectionCounter","bankDealerInventoryAlert","bankImSectionCounter","bankIssuanceMonitorAlert","bankApSectionCounter","bankArrangerPipelineAlert","bankCounter","_editBanksPreferences","_editBanksPreferences2","bankAnalyticsCounter","bankAnalyticsAlert","unshift","getBanksCounters","getCounters","count","arrayUtils","sum","item","TabItem","active","path","MultiTableHeaderRadioButton","type","allOptions","feature","features","selected","x","partially","handleClick","ActionBlocker","requireAllFeatures","blocked","RadioButton","label","checked","cloManagerAlertsColumns","columnKey","renderColumnHeaderContent","EmailInfoTooltip","overlayText","alertDescriptions","bwic","renderColumnContent","_ref13","cloManagerBwicAlerts","onHeaderClick","UserConfigType","alertValue","_ref14","onColumnClick","_alertValue$cloManage7","_ref15","_ref16","_alertValue$cloManage8","dealerInventory","_ref17","_ref18","_alertValue$cloManage9","cloManagerDiAlerts","_ref19","_ref20","_alertValue$cloManage10","alert","OnHoverTooltip","overlay","legalName","sortingField","sortingType","stickLeft","cloManagerImAlerts","cloImApRequiredFeatures","_alertValue$cloManage","Daily","_ref4","_alertValue$cloManage2","_ref5","_ref6","_alertValue$cloManage3","arrangersPipeline","_ref7","cloManagerApAlerts","_ref8","_alertValue$cloManage4","_ref9","alertOptionTooltipText","_ref10","_alertValue$cloManage5","_ref11","_ref12","_alertValue$cloManage6","c","ColumnBuilder","CloManagerImAlertsSection","_getManagers","managers","mangers","_s$manageEmailPrefere","_s$manageEmailPrefere2","_s$manageEmailPrefere3","_s$manageEmailPrefere4","alertsList","searchTerm","setSearchTerm","getManagers","toLocaleLowerCase","includes","setAlertsOptions","mapCallback","setCloManagersIssuanceMonitorAlert","setCloManagersArrangerPipelineAlert","setCloManagersBwicAlert","setCloManagersDealerInventoryAlert","SearchInput","onClear","placeholder","Table","columns","createHeaderCustomArgs","createSecurityCustomArgs","dataItems","sticky","EmptyPlaceholder","UnsubscribeInventoryAlertsButton","filterAlertsStatuses","hasDealerInventoryAlerts","hasActiveFilterAlerts","UnsubscribeAllButton","newFilterAlerts","forEach","savedFilterAlertOptionChange","setDealerInventoryAlertState","banksAlertsColumns","_alertValue$bankDeale","_alertValue$bankDeale2","bankImAlerts","bankImApRequiredFeatures","_alertValue$bankImAle","_alertValue$bankImAle2","_alertValue$bankImAle3","bankApAlerts","_alertValue$bankApAle","_alertValue$bankApAle2","_alertValue$bankApAle3","BanksAlertsSection","_getBanks","getBanks","setBanksDealerInventoryAlert","setBanksIssuanceMonitorAlert","setBanksArrangerPipelineAlert","Tabs","component","saveEmailPreferencesRequest","requiredFeature","setCheckedDailyDashboardEmail","rollbackDashboardEmails","bwicMonitor","visibleFilters","_usePageConfig","requestState","saveAlerts","updateRequestState","isRequestNone","Preloader","inProgress","BwicMonitorAlertsTable","SavedFiltersAlerts","filterType","pageConfigType","textLabels","savedFiltersBwicMonitor","isUnsubscribeAllVisible","unsubscribeAllBWICsNotifications","convertAlertOptionToAlertEnabledState","setNewBiwicAlerts","setBiwicReminderAlerts","rollbackBWICNotifications","requestStateSaveIssuanceMonitorPreferences","initialIssuanceMonitorPreferences","ShowFor","unsubscribeAllIssuanceMonitor","saveRequest","rollbackIssuanceMonitor","arrangerPipelineState","initialArrangerPipelinePreferences","initialApAlertOption","apAlertOption","saveArrangerPipelineRequest","ApEmailAlerts","upcomingAlert","onChangeUpcomingAlert","setArrangerPipelineAlert","rollbackArrangerPipeline","bdInventory","_useInventoryAlertsCh","DealerInventoryAlertsSaveButton","excludeColumns","FilterColumnsKeys","savedFiltersInventory","alertOptionToolitps","savedFiltersInventoryInstantTooltip","rollbackInventory","PortfolioTab","_cloManagersAnalyticA","cloManagersImAlerts","cloManagersApAlerts","cloManagersBwicAlerts","cloManagersDiAlerts","cloManagersAnalyticAlert","initialCloManagersAlertsPreferences","initialCloManagersPreferences","unsubscribeAllCloManagers","analytics","setCloManagersAnalyticsAlert","rollbackCloManagers","_bankAnalyticsAlert$a","initialBanksPreferences","unsubscribeAllBanks","saveBanksRequest","setBanksAnalyticsAlert","rollbackBanks","EmailPreferencesContent","hasPortfolio","availableTabs","issuanceMonitorAccess","hasSingleRole","SellerAdministrator","cloManagersAccess","seller","Administrator","Viewer","banksAccess","selectedTabIndex","findIndex","t","withIssuanceMonitorAccess","useEffect","reset","getInitialDataRequest","replace","TabList","AdaptiveHorizontalSlider","activeItemIndex","Switch","Route","exact","_ref$excludeColumns","_ref$collapsible","collapsible","_ref$isStatusVisibleI","isStatusVisibleInTitle","collapsed","setCollapsed","changedAlertOptions","savedFilterAlertOptionsReset","IconSVG","width","height","FilterUpdatesTable","filtersStatuses","_changedAlertOptions$","sort","b","compareStrings","setFiltersStatuses","updated","updatedState","apiUtils","normalize","alertOptionTooltips","RequiredFeature","inline","text","SubscribeLink","AgencyRatingList","ratings","values","snP","fitch","fullScreen","textOnly","join","RatingMappingTable","ratingMappings","format","r","toLowerCase","m","aggregated","moodys","usePortfolioAlertsChangedState","filtersAlertState","portfolioInvneotryAlertState","issuanceMonitorAlertState","outOfRiAlertState","outOfNcAlertState","rollerDeadlineAlertState","initialPortfolioBwicAlertState","initialPortfolioCleansingNoticeAlertState","initialPortfolioInvnetoryAlertState","initialIssuanceMonitorAlertState","initialOutOfRiAlertState","initialOutOfNcAlertState","initialRollerDeadlineAlertState","keys","_filtersAlertState$f$","_filtersAlertState$f$2","SubscriptionsTab","_ref$disabled","_React$useState","React","_React$useState2","renderInfoBlock","info","InfoTooltip","renderAlert","selectedValue","tooltipContent","BlockedFeatureTooltipText","BwicMonitorAlertsPopup","requestStateSavePreferences","isLoading","isRequestSuccess","BwicMonitorAlertsPreferences","showModal","setShowModal","isBwicByRatingAlertEnabled","_s$entities$emailPref","entities","emailPreferences","preferences","isSecondaryWeeklySummaryAlertEnabled","_s$entities$emailPref2","isAnyFilterAlertEnabled","isAnyAlertEnabled","useEmailPreferences","PortfolioFiltersAlertsHeaderRadioButton","filterAlertState","filterValues","PortfolioAlertsTypes","portfolioFilterAlertsColumns","row","filterNameText","savedFiltersPortfolioBwicAlertDescription","filterReferenceName","savedFiltersPortfolioBwicInstantAlert","savedFiltersPortfolioInventoryAlertDescription","PortfolioFiltersAlertsTable","savedFilters","isBd","bd","initPortfolioFilterAlerts","gitFilterRowTitle","filterCount","filterWord","portfolioSavedFilterAlertChange","portfolioSavedFilterGlobalAlertChange","_ListBuilder","savedFilterRows","_filtersAlertState$f$3","_filtersAlertState$f$4","rowType","PortfolioAlertsRowType","SavedFilter","ListBuilder","add","result","getTableRows","shouldRenderCollapsibleRowCallback","renderCollapsibleItem","savedFilter","sf","SavedFilterDetails","userFilter","createSecurityCustomClassName","PortfolioSavedFilters","UnsubscribePortfolioAlertsButton","bwicAlertState","cleansingNoticeAlertState","invneotryAlertState","unsubscribeAllPortfolio","alertState","AlertEnabledState","Enabled","PartiallyEnabled","portfolioImRequiredFeatures","portfolioRiAlertState","portfolioNcAlertState","allSecuritiesBwicAlertState","allSecuritiesInventortAlertState","cleansingNoticeAlertOption","issuanceMonitorAlertOption","riAlertOption","ncAlertOption","rollerDeadlineAlertOption","allSecuritiesBwicAlertOption","allSecuritiesInventoryAlertOption","withPartialCheck","StatusMessageSection","StatusMessageSectionType","Info","SavePortfolioAlertsButton","instantAlertOptions","setPortfolioBwicAlerts","savedFiltersPortfolioCleansingNoticeInstantAlert","savedFiltersPortfolioCleansingNoticeAlertDescription","setPortfolioCleansingNoticeAlerts","saveFiltersPortfolioInventoryInstantsAlert","setPortfolioInventoryAlerts","savedFiltersPortfolioIssuanceMonitorInstantAlert","savedFiltersPortfolioIssuanceMonitorAlertDescription","setPortfolioIssuanceMonitorAlerts","periodicAlertOption","savedFiltersPortfolioOutOfRiPeriodicAlert","savedFiltersPortfolioOutOfRiAlertDescription","setPortfolioRiAlerts","savedFiltersPortfolioOutOfNcPeriodicAlert","savedFiltersPortfolioOutOfNcAlertDescription","setPortfolioNcAlerts","savedFiltersPortfolioRollerDeadlineInstantAlert","savedFiltersPortfolioRollerDeadlineAlertDescription","setPortfolioRollerDeadlineAlerts","rollbackPortfolio","resetPortfolioFilterAlerts","convertToCount","renderCounter","optionsCount","selectedOptions","reduce","acc","cnState","bwicState","inventoryState","imState","outOfRiState","outOfNcState","rollerDeadlineState","portfolioFilters","isFilterTableDisabled","portfolioAlertsAccess","isPrimary","setIsPrimary","savedFiltersBwicAlertOption","p","_filtersAlertState$p$","savedFiltersInventoryAlertOption","_filtersAlertState$p$2","primaryAlerts","secondaryAlerts","TabContent","DealerInventoryAlertsPopup","requestStateSave","inventory","DealerInventoryAlertsPreferences","isAnyGlobalAlertEnabled","EmailPreferencesTableRating","rating","currency","isCurrencyActive","Checkbox","setRatingCheckedState","target","EmailPreferencesTableRatingTitle","isRequestStateSaving","isSelected","useCallback","isPartially","setRatingInCurrencyCheckedState","EmailPreferencesTableSize","hover","setHover","inputRef","useRef","editingRating","getDefaultRatingPreferences","isActive","handleChange","setRatingSize","setTimeout","_inputRef$current","current","inputElement","focus","getErrorMessage","errorMessages","invalidRangeSize","maxSizeLessThenMin","MaskedInput","ref","mask","createNumberMask","prefix","includeThousandsSeparator","onFocus","onBlur","FormError","message","EmailPreferencesByRating","columnDefinitions","Currency","USD","headerClassName","bodyClassName","EUR","Ratings","bwicByRatingAlertStatePartiallySelected","isBwicByRatingAlertStateAtLeastOneSelected","setBwicByRatingPreferences","ProfileMenuSection","icon","ProfileMenuItems","_user$current","_agreementState$agree","onItemClick","agreementState","useAgreement","isSellerAdmin","profile","profilePasswordSettings","getAllRolesExclude","ArrangersClient","profileCompanyInformation","admin","DataEntry","profileTraders","profileManagePlatformUsers","isClearingBank","agreement","agreementStatus","SettlementAgreementStatus","confirmed","profileTradingLimitsTab","subscriptionChange","subscriptionsTab","role","profileManageDealers","ProfileMenu","showUserDropdown","setShowUserDropdown","currentUser","firstName","lastName","email","profileClassNames","renderUserImage","UserProfilePhotoViewer","userId","alt","nameUtils","getInitials","ClickOutside","placement","profileActions","setVisibleUploadImagePopup","logout","RequestUserStatusDetails","userStatus","userRequestStatus","blockReason","UserStatusDetails","hasBlockedReason","UserRequestStatus","Blocked","_userRequestStatuses$","_userRequestStatuses$3","_userRequestStatuses$2","statusClasses","classNames","userRequestStatuses","getByStatusCode","Popover","actionButton","useSubscriptions","RequestState","none","setRequestState","subscriptions","setSubscriptions","_doRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_subscriptions","wrap","_context","prev","next","request","billingService","getSubscriptions","sent","success","t0","failure","stop","ChangeBloombergEmail","emailDomain","bloombergEmail","requestStatusSaveEmail","useSelector","state","requestStatusSaveBloombergEmail","error","setError","emailName","setEmailName","isDisabledSaveButton","split","Form","htmlFor","autoFocus","maxLength","required","_value$trim$split","trim","_value$trim$split2","mail","domain","newEmailName","validateEmail","invalidEmail","saveBloombergEmail","toggleEditBloombergEmail","PersonalInfo","_Component","_this","_classCallCheck","_len","args","Array","_key","_callSuper","componentWillUnmount","props","actions","personalInfoReset","renderBloombergEmail","_this$props","changeBloombergEmailVisible","href","renderChangePhone","_this$props2","changePhoneVisible","ChangePhoneNumber","phone","onCancel","toggleEditPhoneMode","render","isUserProfilePhotoUploading","linkedIn","overlayClassName","_inherits","_createClass","Component","connectedPersonalInfo","connect","userProfilePhoto","userPhotos","addNewTraderValidation","yup","shape","matches","source","jobTitle","nonWhitespace","phoneMaxLength","ModalAddEditDepartment","visible","_ref$contact","contact","isEditModal","initialValues","departmentName","departmentValue","isAdded","handleSubmit","submitModel","editCompanyContact","handleOnClose","_x","Formik","enableReinitialize","validateOnBlur","validationSchema","onSubmit","noValidate","InputField","markRequired","RenderContact","isAuthorisedUserPrimaryContact","handleEdit","emptyPlaceholder","renderAddEditBtn","Company","modalVisible","setModalVisible","contactForEdit","setContactForEdit","setIsEditModal","company","contacts","departmentContacts","primaryContactId","isEdit","companyName","website","address","city","zipCode","country","PasswordSettings","isValid","oldPassword","newPassword","confirmPassword","isLengthValid","isLetterValid","isSpecCharsValid","isNumericValid","passwordSettingsReset","changePasswordVisible","ChangePassword","changePasswordFormVisible","connectedPasswordSettings","MenageViewHeader","ManageViewContent","Relative","ModalAddEditTrader","isPostingForm","setPostingForm","traderId","newTraderId","trader","accountService","editCompanyTrader","editNewCompanyTraderInStore","addCompanyTrader","enabled","addNewCompanyTraderToStore","errorActions","unexpectedError","validateOnChange","Traders","_useSelector","tradeModalVisible","setTradeModalVisible","isConfirmationVisible","setConfirmationVisible","users","_state$profile$compan","traders","primaryContact","convertToUserListItems","_userStatuses$getBySt","_userStatuses$getBySt2","fullName","statusText","userStatuses","hideConfirmationPopup","renderUserManagementOptions","isTraderActive","UserStatus","small","ContextMenu","ContextMenuItem","disableTrader","enableCompanyTrader","enableTrader","entity","wrapperClass","SORTING_TYPE","string","userRoles","roleList","localeCompare","getTitle","rolesShortTitles","phoneNumber","options","getColumns","defaultSortBy","defaultSortByDirection","SORT","ASC","Confirm","onConfirm","disableCompanyTrader","TwoFactorAuthSettingsSection","onActiveChange","Toggle","PhoneEdit","phoneConfirmed","validate","isValidPhoneNumber","empty","editingPhone","setEditingPhone","_React$useState3","_React$useState4","errorMessage","setErrorMessage","parsedPhoneNumber","parsePhoneNumber","_React$useState5","_React$useState6","setCountry","canSave","handleGetCountryCallingCode","code","getCountryCallingCode","renderCountrySelectItem","renderSelectedItem","handlePhoneCountryChange","preselected","groupKey","en","countries","getCountries","DropDownList","items","renderSelectedItemCallback","renderItemContentCallback","renderCountrySelect","Input","international","SubmitVerificationCodePopup","initialDate","maskedPhone","setCode","canSubmit","setCanSubmit","codeExpired","setCodeExpired","isIdentityPhoneSaving","isPhoneVerificationCodeSending","isPhoneVerificationCodeInvalid","smsActivationCodeRequestedDate","handleCodeReSend","tfaSettingsActions","requestPhoneVerificationCode","IdentityCodeSubmitContent","selectedMethod","VerifyIdentityMethodType","sms","phoneMask","emailMask","isCodeExpired","isCodeInvalid","resendCodeVisible","onResend","onCodeChange","invalidPhoneVerificationCode","onExpiredChange","expired","TwoFactorAuthSettings","isSmsConfirmationDeactivating","isIdentityPhoneEdit","identityPhoneConfirmed","smsActive","setSmsActive","deactiveteConfirmationVisible","setDeactivePhoneConfirmationVisible","tfaEnabled","maskedEmail","formatUtils","maskEmail","maskPhone","identityPhone","handlePhoneEditCancel","storeSmsActivationRequestedDate","identityPhoneEdit","process","deactivateSmsConfirmation","saveIdentityPhone","submitPhoneVerificationCode","ContentSection","Overview","isTrial","calculateSubscriptionTimeline","moment","trialPeriodEnd","getSubscriptionTitle","subscription","subscriptionExpiration","plans","getProductBodyText","product","AppProduct","DealDocuments","getAppProductTitle","LimitedFeaturesPopup","featuresByProduct","featureTitles","subscriptionFeatureTitle","renderTitle","RequestSubscriptionButton","isCurrent","_useSubscriptionReque","requestCallback","changeSubscription","notificationActions","infoModal","useSubscriptionRequest","isBasicPlan","isSubscriptionObsolete","dateFormat","SubscriptionEndDate","productRoleRestrictions","KWatch","KTalk","Trading","ManagerProfile","DealerProfile","Plans","_useSubscriptions","limitedState","setLimitedState","currentSubscription","products","pp","_productRoleRestricti2","createRowCustomKey","SubscriptionsView","_ref$activeTab","activeTab","overview","useBackspaceRedirectBlocker","initStatus","Redirect","notFound","MenageViewHeaderButtons","ExpandableInfoPanel","setVisible","DealersView","dealersListState","useBrokerDealers","excludedDealerList","sellerAdminDealers","excludeDealers","requestStateExcludedDealerList","requestStatusGetExcludeDealers","requestStateSaveExcludeDealers","excludeNewCompanyState","excludeNewCompany","editMode","sellerAdminDealerActions","getExcludedDealersRequest","setEditModeStatus","createListModel","dealers","includeDealers","setIncludeDealers","setExcludeDealers","setExcludeNewCompany","handleIsAnyChanges","size","ids","saveExcludedDealersRequest","RadioButtonGroup","ExcludeList","excludeTitle","includeTitle","includeColumnTitle","excludeColumnTitle","includeList","excludeList","onInclude","excluded","dealer","included","onExclude","onIncludeAll","onExcludeAll","initialFormState","location","of","EditUser","requestParams","numericUtils","numberOrDefault","userRequestId","formUpdatedFromState","sellerAdminUsers","requestStateGetUserList","requestStatusUpdateRequestUser","requestStatusUpdateUser","userRequest","requestUsers","selectedUser","initialFormData","cloneDeep","formState","setFormState","formData","sellerAdminUsersActions","getUserListRequest","handleRoleChange","setFieldValue","indexOf","splice","renderUserRole","selectedRoles","isSellerTraderChecked","SellerTrader","isSellerViewerChecked","SellerViewer","isSellerAdministratorChecked","isCollateralManagerChecked","setUserRole","getShortTitle","saveUser","saveUserRequest","concurrencyStamp","_errors$roles","isTouched","errors","touched","goBack","pattern","loading","FormFieldLabel","isArray","UserContextMenu","_currentUser$current2","onBlockingUser","onUnblockingUser","userRequestOperation","userRequestOperationState","userOperation","userOperationState","menuItems","action","profileManageEditUserRequestUrl","u","_currentUser$current","profileManageEditUserUrl","getUserMenuItems","bottomMargin","convert","isRequest","registrationBy","registrationDate","UserList","hideBlockedUsers","setHideBlockedUsers","blockingUser","setBlockingUser","unblockingUser","setUnblockingUser","companyAccount","changeBwicAnnouncementNotificationsRequestState","isRequestingExportUser","changeBwicAnnouncementNotifications","bwicAnnouncementNotification","_bwicAnnouncementNoti","_bwicAnnouncementNoti2","bwicCreateNotifyAdmins","bwicCreateNotifyViewers","userList","exportUsersRequest","profileManageCreateNewUser","sortRolesByPriority","dateFormat4","date","registeredBy","RejectReasonPopup","onReject","disableUserRequest","disableUser","comfirmButtonText","enableUserRequest","enableUser","UsersView","profileManageEditUserRequest","profileManageEditUser","EmailPreferences","SettlementAgentTabContent","_useAgreement","SettlementAgentLimits","SettlementAgentDailyTraidingLimit","dailyTradingLimit","commissions","SettlementAgentContacts","SettlementContactsContent","_useCompanyUserList","useCompanyUserList","settlementAgent","requestStateGetUsers","SettlementAgentContactsList","CompanyLimitInput","uuidv4","suffix","allowDecimal","newValue","match","regOnlyNumbers","sellerAdminTradingLimits","toLocaleString","CompanyLimits","sellerAdminLimit","tradingLimitsState","tradingLimits","getLimitsRequestStatus","updateLimitsRequestStatus","setTradingLimits","confirm","setConfirm","sellerAdminLimitActions","getTradeLimitsRequest","isChanged","handleSetTradingLimits","limitKey","currencyKey","updatedLimits","entries","_ref2$","updateTradeLimitsRequest","TradingLimitType","SellMaxBondSize","SellMaxDailyTradesSize","BuyMaxBondSize","BuyMaxDailyTradesSize","tradingLimitsTabs","TradingLimitsView","isSeller","BrokerDealerTrader","BrokerDealerViewer","settllementTabsAccessRoles","Profile","init","window","dispatchEvent","Event","isActiveTab","isProfileManageEditUser","matchPath","strict","isProfileManageEditUserRequest","tabs","managePlatformUsers","profilePersonalInfo","personalInfo","parent","account","passwordSettings","tfaSettings","twoFactorAuthenticationSettings","profileNotifications","notifications","paymentMethod","billingInfo","billingHistory","manageDealers","currentActiveTab","renderTradingLimitsTab","renderManageTabs","allowAnonymous","allowRoles","WithAmrRegistration","params","profileTradingLimits","PortfolioAlertsPopup","portfolioOutRiAlertState","portfolioOutNcAlertState","outOfRiAlertOption","outOfNcAlertOption","withPartiallyEnabledAlerts"],"sourceRoot":""}