{"version":3,"file":"static/js/main-fc75396a.c16fac24.js","mappings":"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","sources":["selectors/amr-pipeline.selector.ts","selectors/bwic-changed-flag.selector.ts","selectors/dealer-inventory.selector.ts","selectors/dealers.selector.ts","selectors/companyList.selector.js","selectors/members.selector.js","selectors/deals.selector.js","selectors/parsed.bwics.selector.js","selectors/history.actions.selector.ts","selectors/trading.positions.selector.ts","selectors/latest-bids.selector.ts","selectors/new-bwic-dealers.selector.ts","selectors/portfolio.selector.ts","selectors/seller-companies.selector.ts","services/account.service.js","services/action-tracking.service.ts","services/address.service.ts","services/amr-arranger-pipeline.service.ts","services/amr-companies.service.ts","services/amr-pipeline.service.js","services/banks.service.ts","services/bid-on-behalf.service.js","services/bidding.service.js","services/billing.service.ts","services/blast-message.service.ts","services/build.service.ts","services/bwic.service.js","services/bwicDeals.service.js","services/cache.ts","services/clo-managers.service.ts","services/companies.service.js","services/contact-sales.service.ts","services/deals.service.ts","services/documents.service.js","services/email-preferences.service.ts","services/fetch.safe.js","services/file.upload.js","services/help-resources.service.ts","services/currency.service.ts","services/days.service.js","services/bwic.process.service.js","services/contacts.service.js","services/location.service.ts","services/parsed.bwics.service.js","services/color.service.js","services/trading.service.js","services/dashboard.service.js","services/onBoarding.tooltip.service.js","services/feedback.service.ts","services/rating.service.js","services/bid-as-dealer-request.service.ts","services/sales-representative-service.ts","services/photo.service.ts","services/clearing-bank.service.ts","services/im-user-config.service.ts","services/inventory.service.ts","services/manage-emails.service.ts","services/manage-storage.service.ts","services/news.service.ts","services/page-config.service.ts","services/portfolio.service.js","services/push-notification.service.js","services/pxTalk.service.js","services/release.service.ts","services/request-cancelation-controller.ts","services/settlement-agent-agreement.service.ts","services/settlement.service.ts","services/trade-allocation-template.service.ts","services/tradeReportingService.js","services/url.builder.js","services/users.service.js","sagas/notifications.saga.ts","sagas/onBoardinTooltip.saga.js","sagas/security-details.saga.ts","sagas/seller-buyside.saga.ts","sagas/subscriptions.saga.ts","sagas/sales-representative.saga.ts","sagas/subscription-biling-history.saga.ts","sagas/release.saga.ts","sagas/new-bwic-dealers.saga.ts","services/seller-admin.service.ts","sagas/seller-admin-dealers.saga.ts","sagas/portfolio-list.saga.ts","sagas/manage-email-preferences.saga.ts","sagas/seller-admin-limit.saga.ts","sagas/seller-admin-users.saga.ts","sagas/user-request-admin.saga.ts","sagas/signup.saga.ts","sagas/price-talks.saga.ts","sagas/settlement-account.saga.ts","sagas/trade-allocation.saga.ts","sagas/trade-allocation-template.saga.ts","services/manage-tokens.service.ts","sagas/manage-tokens.saga.ts","sagas/portfolio-agreement-disclaimer.saga.ts","sagas/news.saga.ts","sagas/main.saga.js","store.js","styles/classnames.js"],"sourcesContent":["import { createSelector } from 'reselect';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { FilterGroup, FilterDateGroup, FilterDateTimeGroup, FilterRangeGroup, FilterType } from '../types/filters/FilterGroup';\r\nimport { PipelineType } from '../types/amr-pipeline/enums/PipelineType';\r\nimport { isEqual } from 'lodash';\r\nimport { getFilterCriteria } from '../utils/amr-pipeline.utils';\r\nimport { ArrangerPipelineFilters, DealsPipelineFilters } from '../types/state/PipelineFilterState';\r\nimport { validateYear } from '../utils/amr-pipeline-filter.utils';\r\n\r\n\r\nexport const amrPipelineSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return pipelineType === PipelineType.Deals\r\n ? state.issuanceMonitor.amrPipeline\r\n : state.issuanceMonitor.amrPipelineIOIs;\r\n};\r\n\r\nexport const arrangerPipelineSelector = createSelector(\r\n (state: AppState) => state.issuanceMonitor.amrArrangerPipeline,\r\n arrangerPipeline => arrangerPipeline,\r\n);\r\n\r\nexport const amrDealsSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return amrPipelineSelector(pipelineType)(state).deals;\r\n};\r\n\r\n\r\nexport const summarySelector = (pipelineType: PipelineType) =>\r\n createSelector([amrPipelineSelector(pipelineType), amrPipelineFilterSelector(pipelineType)], (amrPipeline, filter) => {\r\n const {\r\n deals: { isSummaryRequesting, transactionsStatistic, classesStatistic },\r\n } = amrPipeline;\r\n const { lastAppliedFilter, initialFilter } = filter\r\n // show summary for classes only when one rating selected\r\n const shouldShowClassesSummary = lastAppliedFilter.ratings.filter.filter(f => f.selected).length === 1;\r\n\r\n const initialFilterCriteria = initialFilter ? getFilterCriteria(initialFilter, pipelineType) : {};\r\n const lastAppliedFilterCriteria = getFilterCriteria(lastAppliedFilter, pipelineType);\r\n const shouldShowTransactionsSummary = !isEqual(initialFilterCriteria, lastAppliedFilterCriteria);\r\n\r\n return {\r\n shouldShowTransactionsSummary,\r\n isSummaryRequesting,\r\n shouldShowClassesSummary,\r\n transactionsStatistic,\r\n classesStatistic,\r\n };\r\n });\r\n\r\nexport const amrPipelineFilterSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return amrPipelineSelector(pipelineType)(state).filter;\r\n};\r\n\r\n// Use for common component on all im tabs\r\nexport const issuanceMonitorFilterSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return pipelineType === PipelineType.ArrangerPipeline\r\n ? arrangerPipelineFilterSelector(state)\r\n : amrPipelineSelector(pipelineType)(state).filter;\r\n};\r\n\r\nexport const issuanceMonitorSearchTransactionsSelector = (pipelineType: PipelineType) => (state: AppState) => {\r\n return amrPipelineSelector(pipelineType)(state).searchTransactions;\r\n};\r\n\r\nexport const arrangerPipelineFilterSelector = createSelector(\r\n arrangerPipelineSelector,\r\n arrangerPipeline => arrangerPipeline.filter,\r\n);\r\n\r\nexport const arrangerPipelineDealsSelector = createSelector(\r\n arrangerPipelineSelector,\r\n arrangerPipeline => arrangerPipeline.deals,\r\n);\r\n\r\nconst arrangerPipelineApplyDisabledSelector = createSelector([arrangerPipelineDealsSelector, arrangerPipelineFilterSelector], (deals, filters) => {\r\n const {\r\n filter, filterApplied, visibleFilters\r\n } = filters;\r\n\r\n const { isLoading } = deals;\r\n\r\n\r\n const filterErrors = visibleFilters\r\n .map((f: string) => filter[f as keyof ArrangerPipelineFilters])\r\n .filter(f => {\r\n const filter = f as FilterGroup;\r\n const filterRange = f as FilterRangeGroup;\r\n\r\n const fromRange = filterRange.filter.from;\r\n const toRange = filterRange.filter.to;\r\n\r\n if (filter.type === FilterType.Range) {\r\n if (fromRange && toRange && Number(fromRange) > Number(toRange)) return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return filterApplied || !!filterErrors.length || isLoading;\r\n})\r\n\r\nconst amrDealsApplyDisabledSelector = (pipelineType: PipelineType) => createSelector(amrPipelineSelector(pipelineType), amrPipeline => {\r\n const {\r\n deals: { isTransactionsSearching, isClassesSearching },\r\n filter: { filter, filterApplied, visibleFilters },\r\n } = amrPipeline;\r\n\r\n const filterErrors = visibleFilters\r\n .map((f: string) => filter[f as keyof DealsPipelineFilters])\r\n .filter(f => {\r\n const filter = f as FilterGroup;\r\n const filterDate = f as FilterDateGroup;\r\n const filterRange = f as FilterRangeGroup;\r\n const filterDateTimeRange = f as FilterDateTimeGroup;\r\n\r\n const fromDate = filterDate.filter.options?.customDateRange?.from;\r\n const toDate = filterDate.filter.options?.customDateRange?.to;\r\n const fromYearsRange = filterDate.filter.options?.customYearsRange?.from;\r\n const toYearsRange = filterDate.filter.options?.customYearsRange?.to;\r\n const fromRange = filterRange.filter.from;\r\n const toRange = filterRange.filter.to;\r\n const fromDateTimeRange = filterDateTimeRange.filter.selectedOption?.from;\r\n const toDateTimeRange = filterDateTimeRange.filter.selectedOption?.to;\r\n\r\n if (\r\n filter.selected &&\r\n (filter.type === FilterType.DateWithYearsRange ||\r\n filter.type === FilterType.Date ||\r\n filter.type === FilterType.YearsDate ||\r\n filter.type === FilterType.DateWithYearsAndTimeRange)\r\n ) {\r\n if (filter.type === FilterType.YearsDate) {\r\n if (\r\n fromDate &&\r\n toDate &&\r\n (validateYear(fromDate.getFullYear()) || validateYear(toDate.getFullYear()))\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n if ((fromDate || toDate) && (!fromDate || !toDate)) return true;\r\n if (fromDate && toDate && fromDate > toDate) return true;\r\n if (fromYearsRange && toYearsRange && Number(fromYearsRange) > Number(toYearsRange)) return true;\r\n if (fromDateTimeRange && toDateTimeRange && fromDateTimeRange.date > toDateTimeRange.date) return true;\r\n }\r\n\r\n if (filter.selected && filter.type === FilterType.Range) {\r\n if (fromRange && toRange && Number(fromRange) > Number(toRange)) return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return filterApplied || isTransactionsSearching || isClassesSearching || !!filterErrors.length;\r\n})\r\n\r\nexport const applyDisabledSelector = (pipelineType: PipelineType) => {\r\n if (pipelineType === PipelineType.ArrangerPipeline) {\r\n return arrangerPipelineApplyDisabledSelector\r\n }\r\n\r\n return amrDealsApplyDisabledSelector(pipelineType)\r\n};\r\n","import moment from 'moment';\r\nimport { createSelector } from 'reselect';\r\nimport { constants } from '../constants';\r\nimport { dateTimeUtils } from '../utils';\r\nimport { newBWICSteps } from '../constants/newBWIC.steps';\r\nimport { TimeZone } from '../types/models/TimeZone';\r\n\r\ntype TState = {\r\n isInitializing: boolean;\r\n hasBwicPositions: boolean;\r\n submitted: boolean;\r\n activeStep: string;\r\n process: {\r\n date?: Date;\r\n nextBusinessDay?: Date;\r\n bidsDue?: string;\r\n goodUntil?: string;\r\n daysToSettle: number;\r\n timeZone?: string;\r\n timeZones: TimeZone[];\r\n }\r\n};\r\n\r\nconst getInitializingFlag = (state: TState) => state.isInitializing;\r\nconst getSubmittedFlag = (state: TState) => state.submitted;\r\nconst getActiveStep = (state: TState) => state.activeStep\r\nconst getHasBwicPositionsFlag = (state: TState) => state.hasBwicPositions;\r\nconst getBwicDate = (state: TState) => state.process.date;\r\nconst getNextBusinessDay = (state: TState) => state.process.nextBusinessDay;\r\nconst getBidsDue = (state: TState) => state.process.bidsDue;\r\nconst getGoodUntil = (state: TState) => state.process.goodUntil;\r\nconst getDaysToSettle = (state: TState) => state.process.daysToSettle;\r\nconst getTimeZone = (state: TState) => state.process.timeZone;\r\nconst getTimeZoneList = (state: TState) => state.process.timeZones;\r\n\r\nexport const bwicChangedFlagSelector = createSelector([\r\n getInitializingFlag,\r\n getActiveStep,\r\n getSubmittedFlag,\r\n getTimeZoneList,\r\n getHasBwicPositionsFlag,\r\n getDaysToSettle,\r\n getBwicDate,\r\n getNextBusinessDay,\r\n getBidsDue,\r\n getGoodUntil,\r\n getTimeZone], (\r\n isInitializing,\r\n activeStep: string,\r\n submitted: boolean,\r\n timeZones: TimeZone[],\r\n hasPositions: boolean,\r\n daysToSettle: number,\r\n date?: Date,\r\n nextBusinessDay?: Date,\r\n bidsDue?: string,\r\n goodUntil?: string,\r\n timeZone? : string ) => {\r\n return !isInitializing && !submitted && (\r\n activeStep !== newBWICSteps.securities ||\r\n hasPositions ||\r\n daysToSettle !== constants.daysToSettleDefault ||\r\n !date ||\r\n !bidsDue ||\r\n !goodUntil ||\r\n (nextBusinessDay && !moment(date).isSame(nextBusinessDay, 'day')) ||\r\n dateTimeUtils.timestampFromUtcString(bidsDue) !== constants.bidDueDefaultTimestamp ||\r\n dateTimeUtils.timestampFromUtcString(goodUntil) !== constants.goodUntilDefaultTimestamp ||\r\n (timeZone && timeZones.length && timeZone !== timeZones[0].id)\r\n );\r\n }\r\n);\r\n","import moment from 'moment';\r\nimport { createSelector } from 'reselect';\r\nimport { dateRangeFilterOptions } from '../constants/date-range.filter';\r\nimport { CommonFilter } from '../types/filters/FilterState';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { InventoryPositionStatus } from '../types/inventory/InventoryPositionStatus';\r\nimport { InventoryListFilterState } from '../types/state/BdInventoryState';\r\nimport { formatUtils, isRequestFailed, isRequestSuccess } from '../utils';\r\nimport {\r\n compareNumbers, compareStrings, compareBoolean, compareByDateRange, compareByDateYearRange, getSelectedFilters, compareBooleanStrict\r\n} from '../utils/filtering/filter.compare.utils';\r\n\r\nexport const dealerInventorySelector = createSelector(\r\n [\r\n (state: AppState) => state.entities.inventory.items,\r\n (state: AppState) => state.filters.bdInventory.lastAppliedFilter,\r\n (state: AppState) => state.searchSecurities.searchTermItems,\r\n (state: AppState) => state.entities.collateralManagers.requestState,\r\n\r\n ],\r\n (items, filter, searchIsinTickerItems, managersRequestState) => {\r\n const filters = filter as unknown as (InventoryListFilterState | undefined);\r\n const isDynamicFiltersLoaded = isRequestSuccess(managersRequestState) || isRequestFailed(managersRequestState);\r\n const selectedFilters = getSelectedFilters(filters as unknown as CommonFilter);\r\n\r\n const inventories = items.map(i => ({\r\n ...i,\r\n ncEnd: i.ncEndMonth && i.ncEndYear != null ? formatUtils.formatMonthAndYear(`${i.ncEndMonth}/${i.ncEndYear}`) : '',\r\n riEnd: i.riEndMonth && i.riEndYear != null ? formatUtils.formatMonthAndYear(`${i.riEndMonth}/${i.riEndYear}`) : '',\r\n statusName: InventoryPositionStatus[i.status]\r\n }))\r\n\r\n if (!isDynamicFiltersLoaded) return inventories\r\n return inventories.filter(item => applyFilterCriteria(item, selectedFilters, searchIsinTickerItems, filters))\r\n }\r\n);\r\n\r\nfunction applyFilterCriteria(i: InventoryPosition, selectedFilters: { [key: string]: boolean }, searchIsinTicker: string[], filter?: InventoryListFilterState) {\r\n const selectedDateOption = filter?.date.filter.selectedOption;\r\n const isCurrent = selectedDateOption?.key === dateRangeFilterOptions.CurrentInventory.key;\r\n const currentInventoryStatuses = [InventoryPositionStatus.added, InventoryPositionStatus.undefined, InventoryPositionStatus.updated];\r\n\r\n return (\r\n (searchIsinTicker.length ? searchIsinTicker.some(t => i.ticker.includes(t) || i.isinCusip.includes(t)) : true) && (\r\n !filter || (\r\n (isCurrent ? (currentInventoryStatuses.includes(i.status) || (i.status === InventoryPositionStatus.traded && moment().isSame(i.lastUpdateDate, 'day'))) : true) &&\r\n (!isCurrent && selectedDateOption ? (compareByDateRange(i.lastUpdateDate, filter.date)) : true) &&\r\n (selectedFilters[filter.maturity.key] ? compareByDateRange(i.statedMaturity, filter.maturity) : true) &&\r\n (selectedFilters[filter.vintage.key] ? compareByDateRange(i.vintage, filter.vintage) : true) &&\r\n (selectedFilters[filter.closing.key] ? compareByDateRange(i.closingDate, filter.closing) : true) &&\r\n (selectedFilters[filter.nonCallEnd.key] ? compareByDateYearRange(filter.nonCallEnd, i.nonCallPeriodEnd, i.closingDate) : true) &&\r\n (selectedFilters[filter.reinvestmentEnd.key] ? compareByDateYearRange(filter.reinvestmentEnd, i.reinvestmentPeriodEnd, i.closingDate) : true) &&\r\n (selectedFilters[filter.currency.key] ? compareStrings(i.currency, filter.currency) : true) &&\r\n (selectedFilters[filter.ratings.key] ? compareStrings(i.rating, filter.ratings) : true) &&\r\n (selectedFilters[filter.managers.key] ? compareStrings(i.collateralManager?.referenceName, filter.managers) : true) &&\r\n (selectedFilters[filter.collateralType.key] ? compareStrings(i.collateralType, filter.collateralType) : true) &&\r\n (selectedFilters[filter.trustees.key] ? compareStrings(i.trustee?.referenceName, filter.trustees) : true) &&\r\n (selectedFilters[filter.esg.key] ? compareBoolean(i.esg, filter.esg) : true) &&\r\n (selectedFilters[filter.euCompliance.key] ? compareBoolean(i.euCompliance, filter.euCompliance) : true) &&\r\n (selectedFilters[filter.staticDeal.key] ? compareBoolean(i.staticDeal, filter.staticDeal) : true) &&\r\n (selectedFilters[filter.amr.key] ? compareBoolean(i.amr, filter.amr) : true) &&\r\n (selectedFilters[filter.statuses.key] ? compareNumbers(i.status, filter.statuses) : true) &&\r\n (selectedFilters[filter.outOfNC.key] ? compareBooleanStrict(filter.outOfNC, i.outOfNC) : true) &&\r\n (selectedFilters[filter.outOfRI.key] ? compareBooleanStrict(filter.outOfRI, i.outOfRI) : true)\r\n )\r\n )\r\n );\r\n}\r\n","import { createSelector } from 'reselect';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { isRequestSuccess } from '../utils';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\nimport { Contact } from '../types/company/Contact';\r\nimport { UserSlim } from '../types/account/UserSlim';\r\nimport { compareBoolean } from '../utils/compare.utils';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\nimport { user } from '../user';\r\nimport { roles } from '../constants';\r\nimport { SettlementAgreementStatus } from '../types/bid-as-dealer/SettlementAgreementStatus';\r\nimport { SettlementAgentAgreement } from '../types/bid-as-dealer/SettlementAgentAgreement';\r\n\r\nconst getBrokerDealerList = (state: AppState) => state.entities.brokerDealerList;\r\nconst getBrokerDealerContactList = (state: AppState) => state.entities.brokerDealerContactList;\r\nconst getBrokerDealerUserList = (state: AppState) => state.entities.brokerDealerUserList;\r\nconst getSettlementAgentAgreements = (state: AppState) => state.entities.settlementAgentAgreements;\r\nconst getIsAllToAll = (state: AppState) => state.process.isAllToAll;\r\n\r\nexport const filterDealers = (dealers: BrokerDealerCompanySlim[], contacts: Contact[], users: UserSlim[], agreements: SettlementAgentAgreement[], isAllToAll: boolean | null) =>\r\n dealers\r\n .filter(c =>\r\n (user.hasRoles(roles.BrokerDealerTrader) || isAllToAll)\r\n ? c.isClearingBank &&\r\n agreements?.find((a: SettlementAgentAgreement) => a.settlementAgent.id === c.id)?.agreementStatus === SettlementAgreementStatus.confirmed\r\n : contacts.some(cc => cc.companyId === c.id) ||\r\n users.some(cu => cu.companyId === c.id) ||\r\n c.distributionList ||\r\n c.headOfTrading != null\r\n );\r\n\r\nexport const dealersSelector = createSelector(\r\n [getBrokerDealerList, getBrokerDealerContactList, getBrokerDealerUserList, getSettlementAgentAgreements, getIsAllToAll],\r\n (dealers, contacts, users, agreements, isAllToAll) =>\r\n isRequestSuccess(dealers.requestState, contacts.requestState, users.requestState)\r\n ? filterDealers(dealers.items, contacts.items, users.items, agreements.items, isAllToAll)\r\n .sort((a, b) =>\r\n compareBoolean(a.isClearingBank && a.status === CompanyStatus.active, b.isClearingBank && b.status === CompanyStatus.active) ||\r\n a.name.localeCompare(b.name)\r\n )\r\n : []\r\n);\r\n\r\nexport const isRequestedInitialData = createSelector(\r\n [getBrokerDealerList, getBrokerDealerContactList, getBrokerDealerUserList],\r\n (brokerDealerList, brokerDealerContactList, brokerDealerUserList) =>\r\n isRequestSuccess(brokerDealerList.requestState, brokerDealerContactList.requestState, brokerDealerUserList.requestState)\r\n);\r\n","import { createSelector } from 'reselect';\r\nimport moment from 'moment';\r\nimport { companyColumns } from '../constants/company.columns';\r\nimport { companyStatuses } from '../constants/company.statuses';\r\nimport { companyRoles } from '../constants/company-roles';\r\nimport { bwicDateFilterOptions } from '../constants/bwicDateFilterOptions';\r\nimport { userStatuses } from '../constants/user.statuses';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\nimport { getSearchDateRange } from '../utils/search-date-range';\r\nimport { isTrialExpired } from '../utils/subscription.utils';\r\nimport { SubscriptionType } from '../types/billing/SubscriptionType';\r\nimport { compareDatesNullable } from '../utils/compare.utils';\r\n\r\nconst getCompanyList = state => state.companies;\r\nconst getUserList = state => state.users;\r\nconst getOrderByOptions = state => state.companyOrderBy;\r\nconst getFilterOptions = state => state.lastAppliedCompanyFilter;\r\nconst getLiveSearch = state => state.companyFilter.searchTerm;\r\n\r\nexport const getCompanies = createSelector(\r\n [getCompanyList, getUserList, getFilterOptions, getOrderByOptions, getLiveSearch],\r\n (companies, users, filter, orderBy, searchTerm) => {\r\n companies.forEach(c => {\r\n c.primaryContact = users.find(u => u.id === c.primaryContactId);\r\n c.members = users.filter(u => u.companyId === c.id).length;\r\n c.rolesText = companyRoles.getTitle(c.role);\r\n c.subscriptionText = getSubscriptionTitle(c, users);\r\n c.subscriptionDate = getSubscriptionDate(c, users);\r\n });\r\n\r\n const filteredResult = applyFilter(companies, { ...filter, searchTerm });\r\n return sort(filteredResult, orderBy);\r\n }\r\n);\r\n\r\nfunction getSubscriptionTitle(company, users) {\r\n const hasActiveUsers = users.some(u =>\r\n u.companyId === company.id &&\r\n u.status === userStatuses.active.statusCode\r\n );\r\n\r\n if (!hasActiveUsers) return null;\r\n if (company.trialPeriodEnd && !isTrialExpired(company.trialPeriodEnd)) return SubscriptionType.trial;\r\n return company.subscription;\r\n}\r\n\r\nfunction getSubscriptionDate(company, users) {\r\n const hasActiveUsers = users.some(u =>\r\n u.companyId === company.id &&\r\n u.status === userStatuses.active.statusCode\r\n );\r\n\r\n if(!hasActiveUsers) return null;\r\n if(!!company.trialPeriodEnd && !isTrialExpired(company.trialPeriodEnd)) return company.trialPeriodEnd;\r\n if(!!company.subscriptionExpiration) return company.subscriptionExpiration;\r\n return null;\r\n}\r\n\r\n\r\nfunction applyFilter(companies, filter) {\r\n let filterCompanies = companies;\r\n\r\n const statuses = [\r\n filter.active && CompanyStatus.active,\r\n filter.blocked && CompanyStatus.blocked,\r\n filter.offPlatform && CompanyStatus.offPlatform\r\n ].filter(status => status);\r\n\r\n const roles = [\r\n filter.administrator && companyRoles.Administrator,\r\n filter.brokerDealer && companyRoles.BrokerDealer,\r\n filter.seller && companyRoles.Seller,\r\n filter.viewer && companyRoles.Viewer,\r\n filter.media && companyRoles.Media\r\n ].filter(status => status);\r\n\r\n if (statuses.length) {\r\n filterCompanies = filterCompanies.filter(company => statuses.some(status => status === company.status));\r\n }\r\n\r\n if (roles.length) {\r\n filterCompanies = filterCompanies.filter(company => roles.some(role => role === company.role));\r\n }\r\n\r\n if (filter.regBy?.length) {\r\n filterCompanies = filterCompanies.filter(company => filter.regBy.some(userId => company.createdById === userId));\r\n }\r\n\r\n if (filter.salesRepresentatives?.length) {\r\n filterCompanies = filterCompanies.filter(company => filter.salesRepresentatives.some(userId =>\r\n company.salesRepresentatives.some(salesRepresentative => salesRepresentative.id === userId)\r\n ));\r\n }\r\n\r\n if (filter.searchTerm) {\r\n const searchTerm = filter.searchTerm.toLowerCase();\r\n\r\n filterCompanies = filterCompanies.filter(c =>\r\n c.name.toLowerCase().includes(searchTerm) ||\r\n c.country?.name.toLowerCase().includes(searchTerm) ||\r\n c.rolesText.toLowerCase().includes(searchTerm) ||\r\n c.createdBy?.toLowerCase().includes(searchTerm) ||\r\n c.subscriptionText?.toLowerCase().includes(searchTerm) ||\r\n (c.subscriptionDate && moment(c.subscriptionDate).format('MM/DD/YY')\r\n .toLowerCase()\r\n .includes(searchTerm)) ||\r\n companyStatuses.getByStatusCode(c.status).title.toLowerCase().includes(searchTerm) ||\r\n (\r\n c.primaryContact &&\r\n concatFullName(c.primaryContact.firstName, c.primaryContact.lastName)\r\n .toLowerCase().includes(searchTerm)\r\n ) ||\r\n moment(c.dateRegistered)\r\n .format('MM/DD/YY')\r\n .toLowerCase()\r\n .includes(searchTerm) ||\r\n c.salesRepresentatives\r\n .some(sr => concatFullName(sr.firstName, sr.lastName).toLowerCase().includes(searchTerm))\r\n );\r\n }\r\n\r\n if (filter.customDateRange\r\n && filter.customDateRange.from\r\n && filter.customDateRange.to\r\n && filter.selectedDateOption.key === bwicDateFilterOptions.custom.key) {\r\n filterCompanies = filterCompaniesByRange(filter.customDateRange.from, filter.customDateRange.to, filterCompanies);\r\n }\r\n\r\n if (filter.selectedDateOption\r\n && filter.selectedDateOption.key !== bwicDateFilterOptions.unspecified.key\r\n && filter.selectedDateOption.key !== bwicDateFilterOptions.custom.key) {\r\n\r\n const dateFilter = getSearchDateRange(filter);\r\n filterCompanies = filterCompaniesByRange(dateFilter.dateFrom, dateFilter.dateTo, filterCompanies);\r\n\r\n }\r\n\r\n return filterCompanies;\r\n\r\n}\r\n\r\nfunction filterCompaniesByRange(from, to, companies) {\r\n return companies.filter(company => {\r\n return moment(company.dateRegistered)\r\n .isAfter(from)\r\n &&\r\n moment(company.dateRegistered)\r\n .isBefore(to)\r\n });\r\n}\r\n\r\nfunction sort(companies, orderBy) {\r\n if (orderBy.column === companyColumns.status) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.status - b.status)\r\n : companies.sort((a, b) => b.status - a.status);\r\n } else if (orderBy.column === companyColumns.legalName) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.name.localeCompare(b.name))\r\n : companies.sort((a, b) => b.name.localeCompare(a.name));\r\n } else if (orderBy.column === companyColumns.members) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.members - b.members)\r\n : companies.sort((a, b) => b.members - a.members);\r\n } else if (orderBy.column === companyColumns.role) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.role.localeCompare(b.role))\r\n : companies.sort((a, b) => b.role.localeCompare(a.role));\r\n } else if (orderBy.column === companyColumns.country) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => a.country.name.localeCompare(b.country.name))\r\n : companies.sort((a, b) => b.country.name.localeCompare(a.country.name));\r\n } else if (orderBy.column === companyColumns.primaryContact) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => getPrimaryContactName(a).localeCompare(getPrimaryContactName(b)))\r\n : companies.sort((a, b) => getPrimaryContactName(b).localeCompare(getPrimaryContactName(a)));\r\n } else if (orderBy.column === companyColumns.dateRegistered) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => new Date(a.dateRegistered) - new Date(b.dateRegistered))\r\n : companies.sort((a, b) => new Date(b.dateRegistered) - new Date(a.dateRegistered));\r\n } else if (orderBy.column === companyColumns.createdBy) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => (a.createdBy || '').localeCompare(b.createdBy || ''))\r\n : companies.sort((a, b) => (b.createdBy || '').localeCompare(a.createdBy || ''));\r\n } else if (orderBy.column === companyColumns.isClearingBank) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => Number(a.role === companyRoles.BrokerDealer) - Number(b.role === companyRoles.BrokerDealer))\r\n .sort((a, b) => Number(a.isClearingBank) - Number(b.isClearingBank))\r\n : companies.sort((a, b) => Number(b.role === companyRoles.BrokerDealer) - Number(a.role === companyRoles.BrokerDealer))\r\n .sort((a, b) => Number(b.isClearingBank) - Number(a.isClearingBank))\r\n } else if (orderBy.column === companyColumns.subscription) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => (a.subscriptionText || '').localeCompare(b.subscriptionText || ''))\r\n : companies.sort((a, b) => (b.subscriptionText || '').localeCompare(a.subscriptionText || ''));\r\n } else if (orderBy.column === companyColumns.subscriptionEnd) {\r\n return orderBy.direction === 'asc'\r\n ? companies.sort((a, b) => compareDatesNullable(a.subscriptionDate, b.subscriptionDate))\r\n : companies.sort((a, b) => compareDatesNullable(b.subscriptionDate, a.subscriptionDate));\r\n }\r\n}\r\n\r\nfunction getPrimaryContactName(company) {\r\n const { primaryContact } = company;\r\n if (primaryContact) {\r\n if (primaryContact.name) {\r\n return primaryContact.name;\r\n }\r\n if (primaryContact.firstName || primaryContact.lastName) {\r\n return concatFullName(primaryContact.firstName, primaryContact.lastName);\r\n }\r\n }\r\n return '';\r\n}\r\n\r\nfunction concatFullName(firstName, lastName) {\r\n return [firstName, lastName].join(' ').trim();\r\n}","import moment from 'moment';\r\nimport { createSelector } from 'reselect';\r\nimport { companyColumns, userStatuses, memberColumns, companyStatuses, constants, userRequestStatuses, bwicDateFilterOptions, roles } from '../constants';\r\nimport dateTimeUtils from \"../utils/dateTime.utils\";\r\nimport { UserRequestStatus } from '../types/management/UserRequestStatus';\r\nimport { UserStatus } from '../types/account/UserStatus';\r\nimport { getSearchDateRange } from '../utils';\r\n\r\nconst getMemsberList = state => state.users;\r\nconst getUserRequestList = state => state.userRequests;\r\nconst getCompanyList = state => state.companies;\r\nconst getOrderByOptions = state => state.memberOrderBy;\r\nconst getFilterOptions = state => state.lastAppliedMemberFilter;\r\nconst getLiveSearch = state => state.memberFilter.searchTerm;\r\n\r\nexport const getActiveMembers = createSelector(\r\n [getMemsberList],\r\n (members) => members.filter(m => m.status === userStatuses.active.statusCode)\r\n);\r\n\r\nexport const getMembers = createSelector(\r\n [getMemsberList, getUserRequestList, getCompanyList, getFilterOptions, getOrderByOptions, getLiveSearch],\r\n (members, userRequests, companies, filter, orderBy, searchTerm) => {\r\n const extendedMembers = members.map(u => {\r\n const company = companies.find(c => c.id === u.companyId);\r\n return {\r\n ...u,\r\n fullName: () => `${u.firstName} ${u.lastName}`,\r\n\r\n companyName: company.name,\r\n companyStatus: company.status,\r\n companyStatusName: companyStatuses.getByStatusCode(company.status).title,\r\n canUnblock: company.status === companyStatuses.active.statusCode || company.status === companyStatuses.offPlatform.statusCode,\r\n statusName: userStatuses.getByStatusCode(u.status).title,\r\n dateRegistered: moment\r\n .utc(u.dateRegisteredUtc)\r\n .local()\r\n .format('MMM DD YYYY'),\r\n dateLastLogin: u.dateLastLoginUtc ? moment\r\n .utc(u.dateLastLoginUtc)\r\n .local()\r\n .format('MMM DD YYYY') : constants.emptyPlaceholder\r\n };\r\n });\r\n\r\n const extendedUserRequests = userRequests.map(r => ({\r\n ...r,\r\n isUserRequest: true,\r\n dateRegisteredUtc: r.registrationDate,\r\n dateRegistered: moment\r\n .utc(r.registrationDate)\r\n .local()\r\n .format('MMM DD YYYY'),\r\n dateLastLogin: '',\r\n createdBy: r.registrationBy,\r\n fullName: () => `${r.firstName} ${r.lastName}`,\r\n companyName: r.company.name,\r\n companyId: r.company.id,\r\n companyStatus: r.company.status,\r\n companyStatusName: companyStatuses.getByStatusCode(r.company.status).title,\r\n statusName: userRequestStatuses.getByStatusCode(r.status).title\r\n }));\r\n\r\n const filteredUserRequests = applyFilter(extendedUserRequests, { ...filter, searchTerm });\r\n const unprocessedUserRequests = filteredUserRequests.filter(r => r.status === UserRequestStatus.Pending);\r\n const blockedUserRequests = filteredUserRequests.filter(r => r.status === UserRequestStatus.Blocked);\r\n const filteredUsers = applyFilter(extendedMembers, { ...filter, searchTerm });\r\n return [\r\n ...sort(unprocessedUserRequests, orderBy), // pending user requests always on top\r\n ...sort([...blockedUserRequests, ...filteredUsers], orderBy)\r\n ];\r\n }\r\n);\r\n\r\nfunction applyFilter(members, filter) {\r\n let filteringResult = members;\r\n\r\n const statuses = [\r\n filter.active && UserStatus.Active,\r\n filter.blocked && UserStatus.Blocked,\r\n filter.invited && UserStatus.Invited,\r\n filter.notInvited && UserStatus.NotInvited,\r\n filter.pendingApproval && 'pending-approval'\r\n ].filter(status => status);\r\n\r\n const requestStatuses = [\r\n filter.pendingApproval && UserRequestStatus.Pending,\r\n filter.blocked && UserRequestStatus.Blocked\r\n ]\r\n\r\n const rolesArray = [\r\n filter.administrator && roles.Administrator,\r\n filter.arrangersClient && roles.ArrangersClient,\r\n filter.brokerDealerTrader && roles.BrokerDealerTrader,\r\n filter.brokerDealerViewer && roles.BrokerDealerViewer,\r\n filter.dataEntry && roles.DataEntry,\r\n filter.sellerAdmin && roles.SellerAdministrator,\r\n filter.sellerTrader && roles.SellerTrader,\r\n filter.sellerViewer && roles.SellerViewer,\r\n filter.subscriptionManager && roles.SubscriptionManager,\r\n filter.viewer && roles.Viewer,\r\n filter.collateralManager && roles.CollateralManager,\r\n filter.media && roles.Media\r\n ].filter(status => status);\r\n\r\n if (statuses.length) {\r\n filteringResult = filteringResult.filter(member => (member.isUserRequest ? requestStatuses : statuses)\r\n .some(status => status === member.status)\r\n );\r\n }\r\n\r\n if (rolesArray.length) {\r\n filteringResult = filteringResult.filter(member => {\r\n return rolesArray.some(role => {\r\n return member.roles.some(memberRole => memberRole === role);\r\n });\r\n });\r\n }\r\n\r\n if (filter.regBy?.length) {\r\n filteringResult = filteringResult.filter(member => filter.regBy.some(userId => member.createdById === userId));\r\n }\r\n\r\n if (filter.companies?.length) {\r\n filteringResult = filteringResult.filter(member => filter.companies.some(companyId => member.companyId === companyId));\r\n }\r\n\r\n if (filter.searchTerm) {\r\n const searchTerm = filter.searchTerm.toLowerCase();\r\n\r\n filteringResult = filteringResult.filter(m =>\r\n m.fullName().toLowerCase().includes(searchTerm) ||\r\n m.email.toLowerCase().includes(searchTerm) ||\r\n m.companyName.toLowerCase().includes(searchTerm) ||\r\n (m.phone && m.phone.toLowerCase().includes(searchTerm)) ||\r\n m.statusName.toLowerCase().includes(searchTerm) ||\r\n m.dateRegistered.toLowerCase().includes(searchTerm) ||\r\n (m.roles && m.roles.length && m.roles.some(r => r.toLowerCase().includes(searchTerm))) ||\r\n m.dateLastLogin.toLowerCase().includes(searchTerm) ||\r\n m.createdBy?.toLowerCase().includes(searchTerm) ||\r\n m.companyStatusName.toLowerCase().includes(searchTerm) ||\r\n dateTimeUtils.utcToLocalString(m.dateRegisteredUtc, constants.dateFormat4).includes(searchTerm)\r\n );\r\n }\r\n\r\n if (filter.customDateRange\r\n && filter.customDateRange.from\r\n && filter.customDateRange.to\r\n && filter.selectedDateOption.key === bwicDateFilterOptions.custom.key) {\r\n filteringResult = filterMembersByRange(filter.customDateRange.from, filter.customDateRange.to, filteringResult);\r\n }\r\n\r\n if (filter.selectedDateOption\r\n && filter.selectedDateOption.key !== bwicDateFilterOptions.unspecified.key\r\n && filter.selectedDateOption.key !== bwicDateFilterOptions.custom.key) {\r\n const dateFilter = getSearchDateRange(filter);\r\n filteringResult = filterMembersByRange(dateFilter.dateFrom, dateFilter.dateTo, filteringResult);\r\n\r\n }\r\n\r\n return filteringResult;\r\n}\r\n\r\nfunction filterMembersByRange(from, to, companies) {\r\n return companies.filter(member => {\r\n return moment(member.dateRegisteredUtc)\r\n .isAfter(from)\r\n &&\r\n moment(member.dateRegisteredUtc)\r\n .isBefore(to)\r\n });\r\n}\r\n\r\nfunction sort(members, orderBy) {\r\n if (orderBy.column === memberColumns.status) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.status - b.status)\r\n : members.sort((a, b) => b.status - a.status);\r\n } else if (orderBy.column === memberColumns.fullName) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.fullName().localeCompare(b.fullName()))\r\n : members.sort((a, b) => b.fullName().localeCompare(a.fullName()));\r\n } else if (orderBy.column === memberColumns.email) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.email.localeCompare(b.email))\r\n : members.sort((a, b) => b.email.localeCompare(a.email));\r\n } else if (orderBy.column === memberColumns.phone) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => (a.phone || '').localeCompare(b.phone || ''))\r\n : members.sort((a, b) => (b.phone || '').localeCompare(a.phone || ''));\r\n } else if (orderBy.column === companyColumns.dateRegistered) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => new Date(a.dateRegisteredUtc) - new Date(b.dateRegisteredUtc))\r\n : members.sort((a, b) => new Date(b.dateRegisteredUtc) - new Date(a.dateRegisteredUtc));\r\n } else if (orderBy.column === companyColumns.company) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.companyName.localeCompare(b.companyName))\r\n : members.sort((a, b) => b.companyName.localeCompare(a.companyName));\r\n } else if (orderBy.column === memberColumns.createdBy) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.createdBy?.localeCompare(b.createdBy))\r\n : members.sort((a, b) => b.createdBy?.localeCompare(a.createdBy));\r\n } else if (orderBy.column === memberColumns.companyStatus) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => a.companyStatus - b.companyStatus)\r\n : members.sort((a, b) => b.companyStatus - a.companyStatus);\r\n } else if (orderBy.column === memberColumns.dateLastLogin) {\r\n return orderBy.direction === 'asc'\r\n ? members.sort((a, b) => getDate(a.dateLastLoginUtc) - getDate(b.dateLastLoginUtc))\r\n : members.sort((a, b) => getDate(b.dateLastLoginUtc) - getDate(a.dateLastLoginUtc));\r\n\r\n function getDate(dt) {\r\n return dt ? moment.utc(dt).toDate() : new Date(0);\r\n }\r\n }\r\n}\r\n","import { createSelector } from 'reselect';\r\n\r\nconst getDeals = state => state.deals;\r\nconst getOrderByDirection = state => state.orderByAsc;\r\n\r\nexport const getOrderedDeals = createSelector(\r\n [getDeals, getOrderByDirection],\r\n (deals, orderByAsc) => orderByAsc\r\n ? deals.sort((a, b) => a.name.localeCompare(b.name))\r\n : deals.sort((a, b) => b.name.localeCompare(a.name))\r\n);\r\n","import { createSelector } from 'reselect';\r\nimport { dateTimeUtils } from '../utils';\r\n\r\nconst getBWICs = state => state.manageParsedBwics.bwics;\r\nconst getSearchTermItems = state => state.searchSecurities.searchTermItems || [];\r\nconst getRefreshFlag = state=> state.refreshLastUpdatedDate;\r\n\r\nexport const getFilteredParsedBWICs = createSelector(\r\n [getBWICs, getSearchTermItems, getRefreshFlag],\r\n (bwics, searchTermItems, refreshFlag) => {\r\n if (!bwics || !bwics.length) {\r\n return bwics;\r\n }\r\n\r\n return bwics.map(b => (\r\n {\r\n ...b,\r\n bidsDue: dateTimeUtils.utcToLocalString(b.bidsDueUtc),\r\n lastUpdateAt: dateTimeUtils.duration(b.lastUpdateAtUtc)\r\n }));\r\n }\r\n);\r\n","import { createSelector } from 'reselect';\r\nimport { user } from '../user';\r\nimport { BwicHistoryAction } from '../types/bwic-history/BwicHistoryAction';\r\nimport { BwicHistoryState } from '../types/state/BwicHistoryState';\r\nimport { compareDates } from '../utils/compare.utils';\r\n\r\nexport interface BwicHistoryActionSelector extends BwicHistoryAction {\r\n isMyMessage: boolean;\r\n isResponseMessage: boolean;\r\n}\r\n\r\nconst getHistoryState = (state: BwicHistoryState) => state;\r\n\r\nexport const getHistory = createSelector(\r\n [getHistoryState],\r\n history => {\r\n if (!history.visible || !history.actions) {\r\n return history;\r\n }\r\n\r\n const actions = history.positionId\r\n ? history.actions.filter(a => a.positionId == null || a.positionId === history.positionId)\r\n : [...history.actions];\r\n\r\n actions.sort((a, b) => compareDates(a.sentDateUtc, b.sentDateUtc));\r\n\r\n return {\r\n ...history,\r\n actions: addActionProps(actions)\r\n };\r\n }\r\n);\r\n\r\nfunction addActionProps(actions: BwicHistoryAction[]): BwicHistoryActionSelector[] {\r\n const currentUser = user.current();\r\n if(!currentUser) return [];\r\n\r\n return actions\r\n // submittdBy field is empty for direct bid buyer actions \r\n .map(a => {\r\n return {\r\n ...a,\r\n isMyMessage: !!a.positionId && a.submittedBy && a.submittedBy.id === currentUser.companyId,\r\n isResponseMessage: !!a.positionId && (!a.submittedBy || a.submittedBy.id !== currentUser.companyId)\r\n }\r\n });\r\n}\r\n","import { createSelector } from 'reselect';\r\nimport { BwicPosition } from '../types/bwic/BwicPosition';\r\n\r\ntype TState = {\r\n securities: BwicPosition[],\r\n tradingPositions: { [positionId: number]: {} }\r\n};\r\n\r\nconst getPositions = (state: TState) => state.securities;\r\nconst getTradingPositionsState = (state: TState) => state.tradingPositions;\r\n\r\nexport const tradingPositionsSelector = createSelector(\r\n [getPositions, getTradingPositionsState],\r\n (positions, tradingPositionsState) => positions.filter(p => tradingPositionsState[p.id])\r\n);\r\n\r\n","import { createSelector } from 'reselect';\r\nimport { Bid } from '../types/bidding/Bid';\r\nimport { BwicPosition } from '../types/bwic/BwicPosition';\r\nimport { arrayUtils } from '../utils/array.utils';\r\nimport { biddingUtils } from '../utils/bidding.utils';\r\n\r\ntype TState = { securities: BwicPosition[], includeDirectBids?: boolean };\r\n\r\nexport const getSecuritiesWithLatestBids = createSelector(\r\n (state: TState) => state.securities,\r\n (state: TState) => state.includeDirectBids,\r\n (securities: BwicPosition[], includeDirectBids: boolean | undefined = true) =>\r\n securities.map(s => ({ ...s, bids: getLatestBids(s.bids, includeDirectBids) }))\r\n);\r\n\r\nfunction getLatestBids(allBids: Bid[], includeDirectBids: boolean): Bid[] {\r\n if (!allBids || !allBids.length) {\r\n return [];\r\n }\r\n\r\n const bids = includeDirectBids\r\n ? allBids\r\n : allBids.filter(b => !b.buyerPseudoOrderNumber);\r\n\r\n const bidsByCompany = [...arrayUtils.groupBy(bids, (bid: Bid) => biddingUtils.getBidCompanyIdentifier(bid)).values()];\r\n\r\n return bidsByCompany\r\n .filter(companyBids => companyBids && companyBids.length)\r\n .map(companyBids => companyBids.sort((a: Bid, b: Bid) => b.id - a.id))\r\n .map(companyBids => companyBids[0]);\r\n}\r\n\r\nexport function getLatestStage1Bids(bids: Bid[]) {\r\n const stage1Bids = bids.filter(b => b.stagedBiddingStatus == null);\r\n return getLatestBids(stage1Bids, true);\r\n}\r\n","import { createSelector } from 'reselect';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { filterDealers } from './dealers.selector';\r\nimport { isRequestSuccess } from '../utils';\r\nimport { sortDealersByConfirmedAgreement } from '../utils/direct-bidding.utils';\r\n\r\nconst getBrokerDealerList = (state: AppState) => state.entities.brokerDealerList;\r\nconst getBrokerDealerContactList = (state: AppState) => state.entities.brokerDealerContactList;\r\nconst getBrokerDealerUserList = (state: AppState) => state.entities.brokerDealerUserList;\r\nconst getSettlementAgentAgreements = (state: AppState) => state.entities.settlementAgentAgreements;\r\nconst getIsAllToAll = (state: AppState) => state.process.isAllToAll;\r\n\r\nexport const newBwicDealersSelector = createSelector(\r\n [getBrokerDealerList, getBrokerDealerContactList, getBrokerDealerUserList, getSettlementAgentAgreements, getIsAllToAll],\r\n (dealers, contacts, users, agreements, isAllToAll) => {\r\n if (isRequestSuccess(dealers.requestState, contacts.requestState, users.requestState, agreements.requestState)) {\r\n const visibleCompanies = filterDealers(dealers.items, contacts.items, users.items, agreements.items, isAllToAll);\r\n return sortDealersByConfirmedAgreement(visibleCompanies, agreements.items);\r\n }\r\n\r\n return [];\r\n });\r\n","import { createSelector } from 'reselect';\r\nimport { CommonFilter } from '../types/filters/FilterState';\r\nimport { PortfolioSecurity } from '../types/portfolio/PortfolioSecurity';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { PortfolioFilterState } from '../types/state/PortfolioState';\r\nimport {\r\n compareStrings, compareBoolean, compareByDateRange, compareByDateYearRange, getSelectedFilters, compareBooleanStrict\r\n} from '../utils/filtering/filter.compare.utils';\r\nimport { Portfolio } from '../types/portfolio/Portfolio';\r\n\r\nconst getPortfolioList = (s: AppState) => s.entities.portfolios.items;\r\nconst getSearchTermItems = (s: AppState) => s.searchSecurities.searchTermItems || [];\r\nconst getFilter = (s: AppState) => s.filters.portfolio;\r\n\r\nexport const getPortfolios: (s: AppState) => Portfolio[] = createSelector(\r\n [getPortfolioList, getSearchTermItems, getFilter],\r\n (portfolios, searchTermItems, filter) => {\r\n if (!portfolios || !portfolios.length) return [];\r\n const filters = filter.lastAppliedFilter as unknown as (PortfolioFilterState | undefined);\r\n const selectedFilters = getSelectedFilters(filters as unknown as CommonFilter)\r\n\r\n return portfolios\r\n .map(p => ({\r\n ...p,\r\n securities: p.securities.filter(\r\n s =>\r\n applySearchTerms(p.name, s, searchTermItems) &&\r\n (!filters || applyFilterCriteria(s, selectedFilters, filters))\r\n )\r\n }))\r\n .filter(p => p.securities.length);\r\n }\r\n);\r\n\r\nfunction applyFilterCriteria(s: PortfolioSecurity, selectedFilters: { [key: string]: boolean }, filter: PortfolioFilterState) {\r\n return (\r\n (selectedFilters[filter.maturity.key] ? compareByDateRange(s.statedMaturity, filter.maturity) : true) &&\r\n (selectedFilters[filter.vintage.key] ? compareByDateRange(s.vintage, filter.vintage) : true) &&\r\n (selectedFilters[filter.closing.key] ? compareByDateRange(s.closingDate, filter.closing) : true) &&\r\n (selectedFilters[filter.nonCallEnd.key] ? compareByDateYearRange(filter.nonCallEnd, s.nonCallPeriodEnd, s.closingDate) : true) &&\r\n (selectedFilters[filter.reinvestmentEnd.key] ? compareByDateYearRange(filter.reinvestmentEnd, s.reinvestmentPeriodEnd, s.closingDate) : true) &&\r\n (selectedFilters[filter.trustees.key] ? compareStrings(s.trustee?.referenceName, filter.trustees) : true) &&\r\n (selectedFilters[filter.currency.key] ? compareStrings(s.currency, filter.currency) : true) &&\r\n (selectedFilters[filter.ratings.key] ? compareStrings(s.rating, filter.ratings) : true) &&\r\n (selectedFilters[filter.dealName.key] ? compareStrings(s.dealLegalName, filter.dealName) : true) &&\r\n (selectedFilters[filter.collateralType.key] ? compareStrings(s.collateralType, filter.collateralType) : true) &&\r\n (selectedFilters[filter.managers.key] ? compareStrings(s.collateralManager?.referenceName, filter.managers) : true) &&\r\n (selectedFilters[filter.esg.key] ? compareBoolean(s.esg, filter.esg) : true) &&\r\n (selectedFilters[filter.euCompliance.key] ? compareBoolean(s.euCompliance, filter.euCompliance) : true) &&\r\n (selectedFilters[filter.staticDeal.key] ? compareBoolean(s.staticDeal, filter.staticDeal) : true) &&\r\n (selectedFilters[filter.amr.key] ? compareBooleanStrict(filter.amr, s.amr) : true) &&\r\n (selectedFilters[filter.outOfNC.key] ? compareBooleanStrict(filter.outOfNC, s.outOfNC) : true) &&\r\n (selectedFilters[filter.outOfRI.key] ? compareBooleanStrict(filter.outOfRI, s.outOfRI) : true)\r\n )\r\n}\r\n\r\nfunction applySearchTerms(portfolioName: string, security: PortfolioSecurity, searchTerms: string[] = []) {\r\n if (!searchTerms.length) return true\r\n return searchTerms.some(t => {\r\n const term = t.toLowerCase();\r\n return (\r\n portfolioName.toLowerCase().indexOf(term) === 0 ||\r\n security.isinCusip.toLowerCase().indexOf(term) === 0 ||\r\n security.ticker.toLowerCase().indexOf(term) === 0\r\n );\r\n });\r\n}\r\n","import { createSelector } from 'reselect';\r\nimport { SettlementAgreementStatus } from '../types/bid-as-dealer/SettlementAgreementStatus';\r\nimport { SettlementAgentAgreement } from '../types/bid-as-dealer/SettlementAgentAgreement';\r\nimport { BwicPosition } from '../types/bwic/BwicPosition';\r\nimport { CompanySlim } from '../types/company/CompanySlim';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { CompanyHiddenState } from '../types/state/DealerListPanelState';\r\nimport { FavoriteCompanyState } from '../types/state/FavoriteBrokerDealersState';\r\nimport { arrayUtils } from '../utils/array.utils';\r\nimport { apiUtils } from '../utils/api.utils';\r\nimport { biddingUtils } from '../utils/bidding.utils';\r\nimport { compareBoolean } from '../utils/compare.utils';\r\n\r\nconst getParticipants = (state: { participants: CompanySlim[] }) => { return state.participants };\r\nconst getOffPlatformCompanies = (state: { offPlatformCompanies: CompanySlim[] }) => state.offPlatformCompanies;\r\nconst getHiddenState = (state: { hiddenState: CompanyHiddenState }) => state.hiddenState;\r\nconst getFavorites = (state: { favorites: FavoriteCompanyState }) => state.favorites;\r\nconst getPositions = (state: { securities: BwicPosition[] }) => state.securities;\r\nconst getProcessType = (state: { processType: BwicProcessType }) => state.processType\r\nconst getAgreements = (state: { agreements: SettlementAgentAgreement[] }) => state.agreements;\r\nconst getAllToAllFlag = (state: { isAllToAll?: boolean}) => state.isAllToAll;\r\n\r\nexport const getBuyers = (securities: BwicPosition[]) => {\r\n const allBuyersBids = securities.map(s => s?.bids ?? []).flat().filter(b => b.buyerPseudoOrderNumber);\r\n return Array.from(arrayUtils\r\n .groupBy(allBuyersBids, b => b.buyerPseudoOrderNumber)\r\n .entries())\r\n .map(([, [{ buyerPseudoOrderNumber, company }]]) => ({\r\n ...company,\r\n buyerPseudoOrderNumber,\r\n identifier: biddingUtils.getBidCompanyIdentifier({ company, buyerPseudoOrderNumber })\r\n }));\r\n}\r\n\r\n\r\nexport const getSellerBiddingCompanies = createSelector(\r\n getParticipants,\r\n getOffPlatformCompanies,\r\n getHiddenState,\r\n getFavorites,\r\n getProcessType,\r\n getAgreements,\r\n getPositions,\r\n getAllToAllFlag,\r\n (participans: CompanySlim[],\r\n offPlatformCompanies: CompanySlim[],\r\n hiddenState: CompanyHiddenState,\r\n favorites: FavoriteCompanyState,\r\n processType,\r\n agreements: SettlementAgentAgreement[],\r\n securities: BwicPosition[],\r\n isAllToAll?: boolean\r\n ) => {\r\n const brokerDealers = participans\r\n .filter(p => p.status === CompanyStatus.active && (!p.isClearingBank || !isAllToAll))\r\n .concat(processType === BwicProcessType.Live ? [] : offPlatformCompanies)\r\n .map(company => ({ ...company, identifier: biddingUtils.getBidCompanyIdentifier({ company }) }))\r\n .filter(c => !hiddenState[c.identifier]);\r\n\r\n const buyers = getBuyers(securities).filter(c => !hiddenState[c.identifier]);\r\n\r\n return [...sortBrokerDealerCompanies(brokerDealers, favorites, agreements), ...buyers];\r\n }\r\n);\r\n\r\nexport const getSellerFinishedCompanies = createSelector(\r\n getParticipants,\r\n getOffPlatformCompanies,\r\n getFavorites,\r\n getPositions,\r\n getAgreements,\r\n getAllToAllFlag,\r\n (participans: CompanySlim[],\r\n offPlatformCompanies: CompanySlim[],\r\n favorites: FavoriteCompanyState,\r\n securities: BwicPosition[],\r\n agreements: SettlementAgentAgreement[],\r\n isAllToAll?: boolean\r\n ) => {\r\n const companies =\r\n participans\r\n .filter(c => c.status === CompanyStatus.active && (!c.isClearingBank || !isAllToAll))\r\n .concat(offPlatformCompanies)\r\n\r\n const brokerDealers = companies\r\n .map(company => ({ ...company, identifier: biddingUtils.getBidCompanyIdentifier({ company }) }))\r\n .filter(c => securities.some(s => s.bids?.some(b => biddingUtils.getBidCompanyIdentifier(b) === c.identifier)))\r\n \r\n const buyers = getBuyers(securities);\r\n\r\n return [...sortBrokerDealerCompanies(brokerDealers, favorites, agreements), ...buyers];\r\n }\r\n);\r\n\r\nexport function sortBrokerDealerCompanies(companies: CompanySlim[], favorites: FavoriteCompanyState, agreements: SettlementAgentAgreement[]) {\r\n const confirmedAgreementsByDealer = apiUtils.normalize(\r\n agreements.filter(a =>\r\n a.settlementAgent.isClearingBank &&\r\n a.agreementStatus === SettlementAgreementStatus.confirmed),\r\n (a: SettlementAgentAgreement) => a.settlementAgent.id,\r\n () => true\r\n );\r\n\r\n return [...companies].sort((a, b) =>\r\n compareBoolean(favorites[a.id], favorites[b.id]) ||\r\n compareBoolean(confirmedAgreementsByDealer[a.id], confirmedAgreementsByDealer[b.id]) ||\r\n compareBoolean(a.status === CompanyStatus.active, b.status === CompanyStatus.active) ||\r\n a.name.localeCompare(b.name)\r\n );\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\nimport { user } from '../user/user';\r\nimport { constants } from '../constants/constants';\r\nimport { store } from '../store';\r\nimport { logger } from '../logging/logger';\r\nimport { urlBuilder } from './url.builder';\r\nimport { responseType } from '../constants/response.type';\r\nimport { onBoardingTooltipConst } from '../constants/onBoardingTooltip';\r\nimport { accountActions as actionTypes } from '../constants/actionTypes/account.actions';\r\nimport { routes } from '../constants/routes';\r\nimport { history } from '../history';\r\n\r\nexport const accountService = {\r\n login,\r\n logout,\r\n apiLogout,\r\n getAccessToken,\r\n refreshToken,\r\n resetPassword,\r\n setUpPassword,\r\n getAssetManagers,\r\n getProfile,\r\n changePhoneNumber,\r\n changePassword,\r\n getProfileCompany,\r\n addCompanyTrader,\r\n editCompanyTrader,\r\n editCompanyContact,\r\n enableCompanyTrader,\r\n disableCompanyTrader,\r\n requestIdentityVerificationCodeEmail,\r\n requestIdentityVerificationCodeSms,\r\n submitIdentityVerificationCode,\r\n saveIdentityPhoneNumber,\r\n requestPhoneVerificationCode,\r\n submitPhoneVerificationCode,\r\n deactivateSmsConfirmation,\r\n uploadUserImage,\r\n deleteIdentityPhoneNumber,\r\n fetchUserImage,\r\n deleteUserImage,\r\n buildVersion,\r\n downloadDirectBiddingAgreementPdf,\r\n setDirectBiddingAgreementSigned,\r\n saveBloombergEmail,\r\n saveSignupForm,\r\n saveArrangersClientSignupForm,\r\n saveBwicAnnouncementNotifications,\r\n downloadPortfolioAgreementFile,\r\n setPortfolioAgreementSigned,\r\n downloadCusipTermsFile\r\n};\r\n\r\nfunction login(email, password, deviceId) {\r\n const url = '/api/account/login';\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ email, password, deviceId })\r\n };\r\n return fetchSafe(url, requestOptions)\r\n .then(userResult => {\r\n if (userResult && userResult.accessToken) {\r\n user.store(userResult);\r\n }\r\n return userResult;\r\n });\r\n}\r\n\r\nfunction logout() {\r\n store.dispatch({ type: actionTypes.LOGOUT });\r\n user.clear();\r\n localStorage.removeItem(onBoardingTooltipConst.localStorageKey);\r\n localStorage.removeItem(constants.requestDirectBiddingPopupLocalStorageKey);\r\n localStorage.removeItem(constants.requestAllToAllPopupLocalStorageKey);\r\n history.replace(routes.login);\r\n}\r\n\r\nfunction apiLogout() {\r\n if (user.isAuthenticated()) {\r\n const url = '/api/account/logout';\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none\r\n };\r\n\r\n fetchSafe(url, requestOptions, true);\r\n }\r\n}\r\n\r\nasync function getAccessToken() {\r\n let accessToken = '';\r\n try {\r\n const user = await refreshToken();\r\n if (user && user.accessToken) {\r\n accessToken = user.accessToken;\r\n }\r\n } catch (e) {\r\n logger.exception(e, 'Failed to get access token. Logging out');\r\n logout();\r\n }\r\n return accessToken;\r\n}\r\n\r\nfunction refreshToken() {\r\n const url = '/api/account/refreshToken';\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(user.refreshToken())\r\n };\r\n\r\n return fetch(url, requestOptions)\r\n .then(response => response.ok\r\n ? response.json()\r\n : Promise.reject(response));\r\n}\r\n\r\nfunction resetPassword(email) {\r\n const url = '/api/account/resetPassword';\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ 'email': email }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction setUpPassword(model) {\r\n const url = '/api/account/setUpPassword';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(model)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getAssetManagers() {\r\n return fetchSafe('/api/account/asset-managers');\r\n}\r\n\r\nfunction getProfile() {\r\n return fetchSafe('/api/profile');\r\n}\r\n\r\nfunction getProfileCompany() {\r\n return fetchSafe('/api/company-account');\r\n}\r\n\r\nfunction addCompanyTrader(data) {\r\n const url = '/api/company-account/traders';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction editCompanyTrader(data, traderId) {\r\n const url = `/api/company-account/traders/${traderId}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction enableCompanyTrader(traderId) {\r\n const url = `/api/company-account/traders/${traderId}/enable`;\r\n const requestOptions = {\r\n method: 'PATCH',\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction disableCompanyTrader(traderId) {\r\n const url = `/api/company-account/traders/${traderId}/disable`;\r\n const requestOptions = {\r\n method: 'PATCH',\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction editCompanyContact(data, departmentValue) {\r\n const url = `/api/company-account/contacts/${departmentValue}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction changePhoneNumber(phoneNumber) {\r\n const url = '/api/account/changePublicPhoneNumber';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ phoneNumber }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction changePassword(model) {\r\n const url = '/api/account/changePassword';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(model)\r\n };\r\n\r\n return fetchSafe(url, requestOptions)\r\n .then(userResult => {\r\n if (userResult && userResult.accessToken) {\r\n user.store(userResult)\r\n }\r\n return userResult;\r\n });\r\n}\r\n\r\nfunction requestIdentityVerificationCodeEmail() {\r\n const requestOptions = {\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/account/two-factor/email', requestOptions);\r\n}\r\n\r\nfunction requestIdentityVerificationCodeSms() {\r\n const requestOptions = {\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/account/two-factor/sms', requestOptions);\r\n}\r\n\r\nfunction submitIdentityVerificationCode(code, deviceId) {\r\n const url = '/api/account/TwoFactorSignIn';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ code, deviceId })\r\n };\r\n\r\n return fetchSafe(url, requestOptions)\r\n .then(userResult => {\r\n if (userResult && userResult.accessToken) {\r\n user.store(userResult);\r\n }\r\n return userResult;\r\n });\r\n}\r\n\r\nfunction requestPhoneVerificationCode() {\r\n const url = '/api/account/phone-verification';\r\n const requestOptions = {\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction submitPhoneVerificationCode(code, deviceId) {\r\n const url = '/api/account/phone-verification';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ code, deviceId })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deactivateSmsConfirmation() {\r\n const url = '/api/account/phone-verification';\r\n const requestOptions = {\r\n method: 'PUT',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction saveIdentityPhoneNumber(phoneNumber) {\r\n const url = '/api/account/ChangeIdentityPhoneNumber';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ phoneNumber }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deleteIdentityPhoneNumber() {\r\n const url = '/api/account/DeleteIdentityPhoneNumber';\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction uploadUserImage(file) {\r\n return fileUpload(\r\n '/api/profile/uploadPhoto',\r\n null,\r\n file,\r\n null,\r\n true\r\n );\r\n}\r\n\r\nfunction fetchUserImage(userId) {\r\n const url = urlBuilder('/api/profile/profilePhoto', { userId });\r\n const requestOptions = {\r\n method: 'GET',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe(url, requestOptions, true);\r\n}\r\n\r\nfunction deleteUserImage() {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/profile/deletePhoto', requestOptions)\r\n}\r\n\r\nfunction buildVersion() {\r\n return fetchSafe('/build')\r\n}\r\n\r\nfunction saveBloombergEmail(bloombergEmail) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ bloombergEmail }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/profile/changeBloombergEmail', requestOptions);\r\n}\r\n\r\nfunction downloadDirectBiddingAgreementPdf() {\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/account/directBiddingAgreement', requestOptions)\r\n}\r\n\r\nfunction setDirectBiddingAgreementSigned() {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/account/signDirectBiddingAgreement', requestOptions)\r\n}\r\n\r\nfunction saveSignupForm(form) {\r\n const url = '/api/account/signup';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(form),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction saveArrangersClientSignupForm(form) {\r\n const url = '/api/account/sign-up/arrangers-client';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(form),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction saveBwicAnnouncementNotifications(form) {\r\n const url = '/api/company-account/bwic-announcement-notifications';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(form),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction downloadPortfolioAgreementFile() {\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/account/portfolio-disclaimer', requestOptions)\r\n}\r\n\r\nfunction setPortfolioAgreementSigned() {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/account/agree-portfolio-disclaimer', requestOptions)\r\n}\r\n\r\nfunction downloadCusipTermsFile() {\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/account/cusip-terms', requestOptions)\r\n}\r\n\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { logger } from '../logging/logger';\r\n\r\nexport const trackingService = {\r\n trackAction\r\n}\r\n\r\nfunction trackAction(eventName: string, values?: { [key: string | number]: string | number }) {\r\n const url = `/api/tracking`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ eventName, values }),\r\n responseType: responseType.none\r\n };\r\n\r\n try {\r\n fetchSafe(url, requestOptions);\r\n } catch (e) {\r\n logger.exception(e, 'Failed to track some event');\r\n }\r\n}","import qs from 'query-string';\r\nimport { City } from '../types/location/City';\r\nimport { Country } from '../types/location/Country';\r\nimport { State } from '../types/location/State';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nfunction getCountries(): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/address/all-countries`);\r\n}\r\n\r\nfunction getStates(countryId: number): Promise {\r\n const queryParams = qs.stringify({ countryId });\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/address/states?${queryParams}`);\r\n}\r\n\r\nfunction getCities(countryId: number, stateId?: number): Promise {\r\n const queryParams = qs.stringify({ countryId, stateId });\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/address/cities?${queryParams}`);\r\n}\r\n\r\nexport const addressService = {\r\n getCountries,\r\n getStates,\r\n getCities,\r\n};\r\n","import { responseType } from '../constants';\r\nimport { CollateralType } from '../types/amr-pipeline/enums/CollateralType';\r\nimport { Equity } from '../types/amr-pipeline/enums/Equity';\r\nimport { ArrangerPipeline, Category } from '../types/amr-pipeline/models/ArrangerPipeline';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\ninterface ArrangerPipelineFilterCriteria {\r\n collateralManagers: Array;\r\n arrangerReferenceNames: Array;\r\n collateralTypes?: CollateralType[];\r\n euCompliance?: boolean;\r\n anchor?: boolean;\r\n riEnd: { from?: number; to?: number };\r\n ncEnd: { from?: number; to?: number };\r\n equity?: Equity[];\r\n count: number;\r\n offset: number;\r\n deals: Array,\r\n category: Category;\r\n};\r\n\r\ntype ArrangerPipelineSearchCriteria = Array<{ field: string } | { field: string, ascending: boolean }>\r\n\r\n\r\nexport const amrArrangerPipelineService = {\r\n getArrangerPipelines,\r\n getArrangerPipelinesCount,\r\n getArrangerPipelinesByTicker,\r\n createOrUpdateArrangerPipeline,\r\n exportArrangerPipelines,\r\n getDealsLegalNames,\r\n downloadDisclosureFile,\r\n downloadManagerPresentation,\r\n getArrangerPipelinesStatistic,\r\n deleteArrangerPipeline,\r\n};\r\n\r\nfunction deleteArrangerPipeline(referenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/${referenceName}`, {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n });\r\n};\r\n\r\nfunction getArrangerPipelinesStatistic(\r\n filterCriteria: Partial,\r\n) {\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/statistics`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n });\r\n}\r\n\r\n\r\nfunction createOrUpdateArrangerPipeline(arrangerPipelines: Partial[]) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines`, {\r\n method: 'PUT',\r\n body: JSON.stringify(arrangerPipelines),\r\n });\r\n}\r\n\r\nfunction getArrangerPipelines(filterCriteria: Partial, searchCriteria: ArrangerPipelineSearchCriteria) {\r\n const searchParams = {\r\n orderBy: searchCriteria,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...filterCriteria, ...searchParams }),\r\n });\r\n}\r\n\r\nfunction getArrangerPipelinesByTicker(tickers: string[]) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/by-tickers`, {\r\n method: 'POST',\r\n body: JSON.stringify({ tickers }),\r\n });\r\n}\r\n\r\nfunction getArrangerPipelinesCount(filterCriteria: Partial) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/count`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n });\r\n}\r\n\r\nfunction exportArrangerPipelines(filterCriteria: Partial, searchCriteria: ArrangerPipelineSearchCriteria) {\r\n const searchParams = {\r\n orderBy: searchCriteria,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/export`, {\r\n method: 'POST',\r\n responseType: responseType.file,\r\n body: JSON.stringify({ ...filterCriteria, ...searchParams }),\r\n });\r\n}\r\n\r\nfunction downloadDisclosureFile(referenceName: string, bankReferenceName: string = '') {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/${referenceName}/disclosure-file/download/${bankReferenceName}`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction downloadManagerPresentation(referenceName: string, accessType: string = '') {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/${referenceName}/manager-presentation-file/download/${accessType}`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealsLegalNames() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/arranger-pipelines/deals`);\r\n}\r\n","import qs from 'query-string';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { roles } from '../constants';\r\nimport { HavingDealType } from '../types/amr-pipeline/enums/HavingDealType';\r\nimport { CompanyStatus } from '../types/amr-pipeline/enums/CompanyStatus';\r\n\r\ninterface CompaniesQueryParams {\r\n searchString?: string;\r\n havingDealType?: HavingDealType;\r\n favorites?: boolean;\r\n roles?: string | string[];\r\n statuses?: CompanyStatus[];\r\n}\r\n\r\ntype CMHavingDealTypes = HavingDealType.CloManagers | HavingDealType.CmHavingAllPublishedDeals | HavingDealType.None;\r\n\r\nfunction getCompanies(queryParams?: CompaniesQueryParams) {\r\n const queryString = `?${qs.stringify(queryParams || {})}`;\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${queryString}`\r\n );\r\n}\r\n\r\nfunction getCompanyInfo(companyReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}`);\r\n}\r\n\r\nfunction getMembersList(companyReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/members`);\r\n}\r\n\r\nfunction getManagersList(havingDealType: CMHavingDealTypes = HavingDealType.None, favorites = false) {\r\n return getCompanies({\r\n havingDealType,\r\n favorites,\r\n roles: roles.CollateralManager,\r\n });\r\n}\r\n\r\nfunction getArrangersList(havingDeals = false, statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n havingDealType: havingDeals ? HavingDealType.BdHavingDeals : undefined,\r\n roles: 'BrokerDealer',\r\n statuses,\r\n });\r\n}\r\n\r\nfunction getTrusteeList(statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n roles: 'Trustee',\r\n statuses,\r\n });\r\n}\r\n\r\nfunction getCollateralManagerList(statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n roles: roles.CollateralManager,\r\n statuses,\r\n });\r\n}\r\n\r\nfunction getMajorityEquityList(statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n roles: 'MajorityEquity',\r\n statuses,\r\n });\r\n} \r\n\r\nfunction getAmrAgentList(statuses: CompanyStatus[] = []) {\r\n return getCompanies({\r\n roles: 'AmrAgent',\r\n statuses,\r\n });\r\n} \r\n\r\nfunction getBanksList() {\r\n return getCompanies({\r\n havingDealType: HavingDealType.Banks,\r\n roles: 'BrokerDealer',\r\n });\r\n}\r\n\r\nfunction getAvailableBrokerDealers() {\r\n return getCompanies({\r\n roles: 'BrokerDealer',\r\n });\r\n}\r\n\r\nexport const amrCompaniesService = {\r\n getCompanies,\r\n getCompanyInfo,\r\n getMembersList,\r\n getTrusteeList,\r\n getCollateralManagerList,\r\n getMajorityEquityList,\r\n getAmrAgentList,\r\n getManagersList,\r\n getArrangersList,\r\n getBanksList,\r\n getAvailableBrokerDealers\r\n};\r\n","import moment from 'moment';\r\nimport qs from 'query-string';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { urlBuilder } from './url.builder';\r\nimport { constants, responseType } from '../constants';\r\nimport { DownloadedDocumentAccessType } from '../types/amr-pipeline/enums/DownloadedDocumentAccessType';\r\nimport { fileUpload } from './file.upload';\r\n\r\nexport const amrPipelineService = {\r\n getTransactionsList,\r\n getTransactionClasses,\r\n getTransactionClassesNames,\r\n getTransaction,\r\n getTransactionHistory,\r\n getLatestTransactions,\r\n getLatestTransactionsByTicker,\r\n getPortfolio,\r\n getDocuments,\r\n getCollateralQualityTest,\r\n getAmrDocuments,\r\n registerUser,\r\n getIntexFile,\r\n getManagerPresentationFile,\r\n getDisclosureFile,\r\n getTransactionDocument,\r\n getTransactionDocuments,\r\n exportPortfolio,\r\n exportTransactionsClasses,\r\n getCurrency,\r\n getSyndicateContacts,\r\n getSyndicateContactsByArranger,\r\n getIOIs,\r\n submitIOIs,\r\n readIOIsByUser,\r\n exportIOIs,\r\n getTransactionClassesSummary,\r\n getTransactionsSummary,\r\n downloadIntexFile,\r\n downloadManagerPresentationFile,\r\n downloadDisclosureFile,\r\n logTabAccess,\r\n getDocumentsDownloads,\r\n getDaysInTheMarket,\r\n getTransactionViewHistory,\r\n getTransactionVersions,\r\n downloadStatisticDocument,\r\n unblockUserRequest,\r\n blockUserRequest,\r\n saveUser,\r\n shareTransactionToClients,\r\n logImUserActivity,\r\n getSharedClients,\r\n uploadDocument,\r\n downloadDocument,\r\n requestDemo,\r\n updateArrangerClient,\r\n logAccessToSharedTransaction,\r\n getBankTransactions,\r\n getDealComparableMetrics\r\n};\r\n\r\nfunction registerUser(user, company) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/accounts`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n userEmail: user.current().email,\r\n firstName: user.current().firstName,\r\n lastName: user.current().lastName,\r\n phoneNumber: user.current().publicPhone,\r\n companyLegalName: company.name,\r\n companyCountryThreeCharsCode: company.countryCode || 'USA',\r\n companyCityName: company.city || \"New York\",\r\n companyAddress: company.address,\r\n companyZipCode: company.zipCode\r\n })\r\n }, true\r\n );\r\n}\r\n\r\nfunction updateArrangerClient(token) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/accounts/update-arranger-client`,\r\n {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n body: JSON.stringify({\r\n token,\r\n }),\r\n },\r\n true,\r\n );\r\n}\r\n\r\nfunction logAccessToSharedTransaction(dealReferenceName, transactionReferenceName, token) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/Transactions/${transactionReferenceName}/share-clients/log`,\r\n {\r\n method: 'PUT',\r\n responseType: responseType.none,\r\n body: JSON.stringify({\r\n token,\r\n }),\r\n },\r\n );\r\n}\r\n\r\nfunction getTransactionsList(filterCriteria, searchCriteria) {\r\n const searchParams = {\r\n orderBy: searchCriteria,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Transactions`, {\r\n method: 'POST', body: JSON.stringify({ ...filterCriteria, ...searchParams })\r\n });\r\n}\r\n\r\nfunction getTransactionsSummary(transactionFilterOptions, statsToCalculate) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Transactions/statistics`, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n transactionFilterOptions,\r\n statsToCalculate,\r\n }),\r\n });\r\n}\r\n\r\nfunction getTransactionClassesSummary(filterCriteria) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transaction-classes/statistics`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n });\r\n}\r\n\r\nfunction getLatestTransactions(companyReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Transactions/collateral-manager/${companyReferenceName}/latest-transaction-in-deal`\r\n );\r\n}\r\n\r\nfunction getLatestTransactionsByTicker(tickers) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/latest-transactions-in-deals`, {\r\n method: 'POST',\r\n body: JSON.stringify({ tickers }),\r\n });\r\n}\r\n\r\nfunction getTransaction(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}`\r\n );\r\n}\r\n\r\nfunction getTransactionHistory(dealReferenceName, transactionReferenceName, options = { classesOnly: false }) {\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/history`,\r\n options\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction getTransactionClasses(filterCriteria, searchCriteria) {\r\n const searchParams = {\r\n orderBy: searchCriteria,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transaction-classes`, {\r\n method: 'POST', body: JSON.stringify({ ...filterCriteria, ...searchParams, includeTransaction: true })\r\n }\r\n );\r\n}\r\n\r\nfunction getTransactionClassesNames() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transaction-classes-names`);\r\n}\r\n\r\nfunction getPortfolio(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/portfolio`\r\n );\r\n}\r\n\r\nfunction getAmrDocuments(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/documents`\r\n );\r\n}\r\n\r\nfunction getDocuments(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/documents`\r\n );\r\n}\r\n\r\nfunction getCollateralQualityTest(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/collateral-quality-tests`\r\n );\r\n}\r\n\r\n\r\nfunction downloadIntexFile(dealReferenceName, transactionReferenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/intex-file/download`, requestOptions);\r\n}\r\n\r\nfunction getIntexFile(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/intex-file/`,\r\n undefined,\r\n { successHandler: response => response.status === 204 ? null : response.json() },\r\n );\r\n}\r\n\r\nfunction getManagerPresentationFile(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/manager-presentation-file/`,\r\n undefined,\r\n { successHandler: response => response.status === 204 ? null : response.json() },\r\n );\r\n}\r\n\r\nfunction downloadManagerPresentationFile(dealReferenceName, transactionReferenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/manager-presentation-file/download`, requestOptions);\r\n}\r\n\r\nfunction getDisclosureFile(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/disclosure-file/`,\r\n undefined,\r\n { successHandler: response => response.status === 204 ? null : response.json() },\r\n );\r\n}\r\n\r\nfunction downloadDisclosureFile(dealReferenceName, transactionReferenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/disclosure-file/download`, requestOptions);\r\n}\r\n\r\nfunction getTransactionDocument(dealReferenceName, transactionReferenceName, referenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/documents/${referenceName}/download`, requestOptions\r\n );\r\n}\r\n\r\nfunction getTransactionDocuments(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/documents/download-all`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction exportPortfolio(dealReferenceName, transactionReferenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/portfolio/export`, requestOptions\r\n );\r\n}\r\n\r\nfunction getSyndicateContacts(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/syndicate-contacts`\r\n ).then(res => res == null ? [] : res);\r\n}\r\n\r\nfunction getSyndicateContactsByArranger(dealReferenceName, transactionReferenceName, companyReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/syndicate-contacts/${companyReferenceName}`\r\n );\r\n}\r\n\r\nfunction exportTransactionsClasses(filterCriteria, dealSortCriteria, trasactionClassSortCriteria) {\r\n const searchParams = {\r\n orderByTransaction: dealSortCriteria,\r\n orderByTransactionClass: trasactionClassSortCriteria,\r\n };\r\n const requestOptions = {\r\n body: JSON.stringify({ ...filterCriteria, ...searchParams }),\r\n method: 'POST',\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/export`, requestOptions);\r\n}\r\n\r\nfunction getCurrency() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Currency`);\r\n}\r\n\r\nfunction getIOIs(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/iois`\r\n );\r\n}\r\n\r\nfunction submitIOIs(dealReferenceName, transactionReferenceName, iois) {\r\n const requestOptions = {\r\n body: JSON.stringify({ iois }),\r\n method: \"PUT\",\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/iois`, requestOptions\r\n );\r\n}\r\n\r\nfunction readIOIsByUser(dealReferenceName, transactionReferenceName, ioiReferenceNames) {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ ioiReferenceNames }),\r\n responseType: responseType.none,\r\n };\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/read-iois-by-user`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction exportIOIs(dealReferenceName, transactionReferenceName, excludeDeleted = false) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/iois/export/${excludeDeleted}`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction logTabAccess(dealReferenceName, transactionReferenceName, tabAccessType) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/tab/${tabAccessType}`, {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n })\r\n}\r\n\r\nfunction getTransactionViewHistory(dealReferenceName, transactionReferenceName, startDate, endDate) {\r\n let queryString = '';\r\n\r\n if (startDate && endDate) {\r\n const queryParams = {\r\n 'period.From': moment(startDate).format(),\r\n 'period.To': moment(endDate).format(),\r\n };\r\n\r\n queryString = `?${qs.stringify(queryParams)}`;\r\n }\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/history/${queryString}`,\r\n );\r\n}\r\n\r\nfunction getTransactionVersions(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/versions`,\r\n );\r\n}\r\n\r\nfunction getDocumentsDownloads(dealReferenceName, transactionReferenceName, startDate, endDate) {\r\n let queryString = '';\r\n\r\n if (startDate && endDate) {\r\n const queryParams = {\r\n 'period.From': moment(startDate).format(constants.dateFormatISO8601),\r\n 'period.To': moment(endDate).format(constants.dateFormatISO8601),\r\n };\r\n\r\n queryString = `?${qs.stringify(queryParams)}`;\r\n }\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/document-downloads/${queryString}`\r\n );\r\n}\r\n\r\nfunction getDaysInTheMarket(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/days-market`\r\n );\r\n}\r\n\r\nfunction downloadStatisticDocument(dealReferenceName, transactionReferenceName, documentReferenceName, accessType) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n let documentLink;\r\n\r\n switch (accessType) {\r\n case DownloadedDocumentAccessType.DownloadAllDocuments:\r\n case DownloadedDocumentAccessType.DownloadOneDocument: {\r\n documentLink = 'documents'\r\n break;\r\n }\r\n case DownloadedDocumentAccessType.DownloadIntexFile: {\r\n documentLink = 'intex-file';\r\n break;\r\n }\r\n case DownloadedDocumentAccessType.DownloadManagerPresentationFile: {\r\n documentLink = 'manager-presentation-file';\r\n break;\r\n }\r\n case DownloadedDocumentAccessType.DownloadDisclosureFile: {\r\n documentLink = 'disclosure-file';\r\n break;\r\n }\r\n default: break;\r\n }\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/statistics/${documentLink}/${documentReferenceName}/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction unblockUserRequest(userEmail) {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/user/Unblock`;\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ userEmail }),\r\n responseType: responseType.json,\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction blockUserRequest(userEmail) {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/user/Block`;\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ userEmail }),\r\n responseType: responseType.json,\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction saveUser(user) {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/user/Update`;\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ ...user }),\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction shareTransactionToClients(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n recipientsEmails,\r\n message\r\n) {\r\n const requestOptions = {\r\n body: JSON.stringify({ recipientsEmails, message }),\r\n method: \"PUT\",\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/share-clients/add`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction logImUserActivity() {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/log-user-activity/IM`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getSharedClients(dealReferenceName, transactionReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/share-clients`,\r\n );\r\n}\r\n\r\nfunction uploadDocument(file, progressCallback) {\r\n return fileUpload(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/documents`,\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction downloadDocument(referenceName) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/documents/${referenceName}`, requestOptions);\r\n}\r\n\r\nfunction requestDemo() {\r\n const requestOptions = {\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/accounts/demo-request`, requestOptions);\r\n}\r\n\r\nfunction getBankTransactions(companyReferenceName) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/bank/${companyReferenceName}`\r\n );\r\n}\r\n\r\nfunction getDealComparableMetrics(\r\n dealReferenceName,\r\n transactionReferenceName) {\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/comparable-deals`);\r\n}\r\n","import moment from 'moment';\r\nimport qs from 'query-string';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { BankSave } from '../types/banks/BankSave';\r\nimport { constants, responseType } from '../constants';\r\nimport { BankAccessType } from '../types/amr-pipeline/enums/BankAccessType';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { CollateralType } from '../types/amr-pipeline/enums/CollateralType';\r\n\r\nexport interface ExportManagersTransQueryParams {\r\n year?: number,\r\n currencyCodes?: Currency[],\r\n collateralTypes?: CollateralType[],\r\n orderBy?: {\r\n field: string,\r\n ascending: boolean\r\n }\r\n}\r\n\r\nfunction getBwicBanksList(dateFrom: Date = new Date()) {\r\n const queryParams = {\r\n dateFrom: moment(dateFrom).format(),\r\n };\r\n\r\n const queryString = `?${qs.stringify(queryParams)}`;\r\n return fetchSafe(`/api/Companies/banks/${queryString}`);\r\n}\r\n\r\nfunction getBankDetails(companyReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Companies/${companyReferenceName}/bank`\r\n );\r\n}\r\n\r\nfunction getEvents(companyReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Companies/${companyReferenceName}/bank/events`\r\n );\r\n}\r\n\r\nfunction getSyndicateContacts(companyReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Companies/${companyReferenceName}/bank/syndicate-contacts`\r\n );\r\n}\r\n\r\nfunction updateBank(companyReferenceName: string, bank: BankSave): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/bank`, {\r\n method: 'PUT',\r\n body: JSON.stringify(bank),\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction logUserActivity(companyReferenceName: string, accessType: BankAccessType) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/bank/access/${accessType}`, {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction getBwicsPriceTalks(companyReferenceName: string, dateFrom: Date = new Date()) {\r\n const queryParams = {\r\n dateFrom: moment(dateFrom).format(),\r\n };\r\n\r\n const queryString = `?${qs.stringify(queryParams)}`;\r\n\r\n return fetchSafe(`/api/bwics/banks/${companyReferenceName}/bwics-price-talks/${queryString}`)\r\n}\r\n\r\nfunction getAnalytics(companyReferenceName: string) {\r\n const queryString = qs.stringify({ currentTime: moment().format() });\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/bank/analytics?${queryString}`);\r\n}\r\n\r\nfunction getProfileViewHistory(companyReferenceName: string, startDate?: Date, endDate?: Date) {\r\n let queryString = '';\r\n\r\n if (startDate && endDate) {\r\n const queryParams = {\r\n 'period.From': moment(startDate).format(constants.dateTimeFormatUtc),\r\n 'period.To': moment(endDate).format(constants.dateTimeFormatUtc),\r\n };\r\n\r\n queryString = `?${qs.stringify(queryParams)}`;\r\n }\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/bank/profile-views/${queryString}`);\r\n}\r\n\r\nfunction exportBankManagersTrans(companyReferenceName: string, params?: ExportManagersTransQueryParams) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Companies/${companyReferenceName}/bank/managers-transactions/export`, {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.file\r\n });\r\n}\r\n\r\nexport const banksService = {\r\n getBwicBanksList,\r\n getBankDetails,\r\n getEvents,\r\n getSyndicateContacts,\r\n updateBank,\r\n logUserActivity,\r\n getBwicsPriceTalks,\r\n getAnalytics,\r\n getProfileViewHistory,\r\n exportBankManagersTrans,\r\n};\r\n","import { responseType } from '../constants';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\n\r\nexport const bidOnBehalfService = {\r\n getCompanies,\r\n submitBidsBulk,\r\n uploadFile,\r\n parseClipboard,\r\n downloadTemplate\r\n}\r\n\r\nfunction getCompanies(bwicReferenceName) {\r\n return fetchSafe(`/api/bidding/on-behalf/${bwicReferenceName}/companies`);\r\n}\r\n\r\nfunction submitBidsBulk(bwicReferenceName, bids) {\r\n const url = `/api/bidding/on-behalf/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(bids)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction uploadFile(file, progressCallback) {\r\n return fileUpload(\r\n '/api/bidding/on-behalf/parse/file',\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction parseClipboard(text) {\r\n const url = '/api/parse/clipboard';\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ text })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction downloadTemplate(bwicReferenceName) {\r\n return fetchSafe(\r\n `/api/bidding/on-behalf/template/${bwicReferenceName}`,\r\n { method: 'GET', responseType: responseType.file }\r\n );\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\nexport const biddingService = {\r\n getAccessState,\r\n requestAccess,\r\n submitBids,\r\n updateBidAttributes,\r\n sendQuickFeedback,\r\n sendOnBehalfQuickFeedback,\r\n saveTargetLevel,\r\n trade,\r\n affirm,\r\n reject,\r\n checkAwaitingTrades,\r\n sendBidRequest,\r\n getLiveBiddingData\r\n}\r\n\r\nfunction getAccessState(bwicReferenceName) {\r\n return fetchSafe(`/api/bidding/${bwicReferenceName}/access`);\r\n}\r\n\r\nfunction requestAccess(bwicReferenceName, comment) {\r\n const url = `/api/bidding/${bwicReferenceName}/access`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(comment),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction submitBids(bwicReferenceName, bids) {\r\n const url = `/api/bidding/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(bids)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction updateBidAttributes(bidAttributes) {\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify(bidAttributes)\r\n };\r\n\r\n return fetchSafe('/api/bidding', requestOptions);\r\n}\r\n\r\nfunction sendQuickFeedback(bwicReferenceName, positionId, bids, feedbackType) {\r\n const url = `/api/bidding/feedback/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ positionId, bids, feedbackType }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions, true);\r\n}\r\n\r\nfunction sendOnBehalfQuickFeedback(bwicReferenceName, positionId, bids, feedbackType) {\r\n const url = `/api/bidding/on-behalf/feedback/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ positionId, bids, feedbackType }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions, true);\r\n}\r\n\r\nfunction sendBidRequest(bwicReferenceName, positionId, companies, requestType) {\r\n const url = `/api/bidding/bid-request/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ positionId, companies, requestType }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\n\r\nfunction trade(bwicReferenceName, tradingPositions) {\r\n const url = `/api/trading/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(tradingPositions),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction saveTargetLevel(bwicReferenceName, positionId, targetLevel) {\r\n const url = `/api/bidding/savetargetlevel/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ positionId, targetLevel }),\r\n responseType: responseType.none\r\n }\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction affirm(affirmModels) {\r\n const url = `/api/trading/affirm`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(affirmModels),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction reject(rejectModel) {\r\n const url = '/api/trading/reject';\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(rejectModel),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction checkAwaitingTrades() {\r\n return fetchSafe('/api/trading/trades', {}, true);\r\n}\r\n\r\nfunction getLiveBiddingData() {\r\n return fetchSafe('api/bwics/live-bidding-positions', {}, true);\r\n}\r\n","import { fetchSafe } from \"./fetch.safe\";\r\nimport { PaymentCard } from '../types/billing/PaymentCard';\r\nimport { responseType } from '../constants/response.type';\r\nimport { SavePaymentCard } from \"../types/billing/SavePaymentCard\";\r\nimport { BillingContact } from \"../types/billing/BillingContact\";\r\nimport { SaveBillingContact } from \"../types/billing/SaveBillingContact\";\r\nimport { Subscription } from \"../types/billing/Subscription\";\r\nimport { BillingHistory } from '../types/billing/BillingHistory';\r\nimport moment from \"moment\";\r\n\r\nexport const billingService = {\r\n getPaymentCards,\r\n setPrimaryCard,\r\n deletePaymentCard,\r\n addPaymentCard,\r\n getBillingContact,\r\n saveBillingContact,\r\n saveSubscription, // admins only\r\n requestImProSubscription,\r\n getSubscriptions,\r\n changeSubscription,\r\n searchBillingHistory,\r\n notifySales\r\n};\r\n\r\nfunction getPaymentCards(): Promise {\r\n return fetchSafe('/api/billing/cards');\r\n}\r\n\r\nfunction setPrimaryCard(id: number): Promise {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/billing/set-primary-card/${id}`, requestOptions);\r\n}\r\n\r\nfunction deletePaymentCard(id: number): Promise {\r\n const requestOptions = {\r\n method: 'delete',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/billing/card/${id}`, requestOptions);\r\n}\r\n\r\nfunction addPaymentCard(model: SavePaymentCard & { cardId: string }): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/billing/card`, requestOptions);\r\n}\r\n\r\nfunction getBillingContact(): Promise {\r\n return fetchSafe(`/api/billing`);\r\n}\r\n\r\nfunction saveBillingContact(model: SaveBillingContact): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/billing`, requestOptions);\r\n}\r\n\r\nfunction saveSubscription(companyId: number, title: string, isTrial?: boolean, expirationDate?: Date) {\r\n const expiration = expirationDate \r\n ? moment(expirationDate).toISOString(true)\r\n : undefined;\r\n\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ title, expiration, isTrial }),\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(`/api/manage-subscriptions/${companyId}`, requestOptions);\r\n}\r\n\r\nfunction requestImProSubscription() {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/Profile/request-pro-subscription`, requestOptions);\r\n}\r\n\r\nfunction changeSubscription(subscriptionTitle: string) {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(subscriptionTitle),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/subscriptions/request`, requestOptions);\r\n}\r\n\r\nfunction getSubscriptions(): Promise {\r\n return fetchSafe(`/api/subscriptions`, {}, true);\r\n}\r\n\r\nfunction notifySales(): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/subscriptions/notify-sales`, requestOptions);\r\n}\r\n\r\nfunction searchBillingHistory(dateFrom: Date, dateTo: Date, statuses: number[]): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify({ dateFrom, dateTo, statuses }),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe('/api/billing/searchPayments', requestOptions);\r\n}","import { BlastMessage } from \"../types/blast-message/BlastMessage\";\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nexport const blastMessageService = {\r\n send\r\n}\r\n\r\nfunction send(bwicReferenceName: string, message: BlastMessage): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(message)\r\n };\r\n\r\n return fetchSafe(`/api/bidding/blast-message/${bwicReferenceName}`, requestOptions);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\n\r\nfunction version() {\r\n return fetchSafe('/api/build')\r\n}\r\n\r\nexport const buildService = {\r\n version\r\n};\r\n","import moment from 'moment';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\nimport { responseType } from '../constants';\r\nimport { getFromCache } from './cache';\r\nimport { urlBuilder } from './url.builder';\r\nimport { moneyUtils } from '../utils';\r\nimport { bwicMonitorSortByApiValues } from '../types/state/AllBwicsState';\r\nimport { appConfig } from '../app-config';\r\n\r\nexport const bwicService = {\r\n getAssets,\r\n getOpenBiddingStatus,\r\n getBwicHistory,\r\n uploadSecurities,\r\n getSecuritiesXlsxTemplate,\r\n getSecurityDocsZip,\r\n searchSecurities,\r\n searchSecuritiesGlobal,\r\n searchBwics,\r\n submit,\r\n exportBwic,\r\n exportBwics,\r\n parseSecuritiesStirng,\r\n getByReferenceName,\r\n cancel,\r\n markHistoryMessagesAsRead,\r\n setColorDistribution,\r\n completeBwic,\r\n myBwicsExist,\r\n saveAutoFeedbackConfiguration,\r\n validateTradeLimits,\r\n isBwicWithSecuritesExist,\r\n finishStage,\r\n getSecurityBwicStatistics,\r\n getClassDetails\r\n}\r\n\r\nfunction getAssets() {\r\n return getFromCache('/api/asset-types');\r\n}\r\n\r\nfunction getOpenBiddingStatus(referenceName) {\r\n return fetchSafe('/api/bwics/open-bidding-status/' + encodeURIComponent(referenceName), {}, true);\r\n}\r\n\r\nfunction uploadSecurities(file, progressCallback) {\r\n return fileUpload(\r\n '/api/securities',\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction getSecuritiesXlsxTemplate() {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe('/api/securities/template', requestOptions);\r\n}\r\n\r\nfunction getSecurityDocsZip(isinCusip) {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(`/api/securities/documents/${isinCusip}`, requestOptions);\r\n}\r\n\r\nfunction getBwicHistory(bwicReferenceName) {\r\n return fetchSafe(`/api/bwics/${bwicReferenceName}/history`);\r\n}\r\n\r\nfunction searchSecurities(searchTerm) {\r\n return fetchSafe(`/api/securities?searchTerm=${searchTerm}`);\r\n}\r\n\r\nfunction searchSecuritiesGlobal(searchTerm, searchByTicker, abortSignal) {\r\n const endpoint = searchByTicker\r\n ? `/api/securities/search-ticker?searchTerm=${searchTerm}`\r\n : `/api/securities/search-isin-cusip?searchTerm=${searchTerm}`;\r\n\r\n return fetchSafe(endpoint, undefined, false, abortSignal);\r\n}\r\n\r\nfunction submit(bwic) {\r\n const url = '/api/bwics';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(bwic),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction searchBwics(criteria, page, pageSize, sortBy, loadSummary) {\r\n const sortByApiParams = bwicMonitorSortByApiValues[sortBy];\r\n const url = urlBuilder('/api/bwics/search', {\r\n page,\r\n pageSize,\r\n sortOrder: sortByApiParams?.direction,\r\n loadSummary: loadSummary && !appConfig.isSummaryRowHidden\r\n });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ ...criteria, loadSummary: loadSummary && !appConfig.isSummaryRowHidden })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction exportBwic(referenceName) {\r\n const url = `/api/bwics/export/${referenceName}`;\r\n\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction exportBwics(criteria, page, pageSize, sortBy) {\r\n const sortByApiParams = bwicMonitorSortByApiValues[sortBy];\r\n const url = urlBuilder('/api/bwics/export', { page, pageSize, sortOrder: sortByApiParams.direction });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(criteria),\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction parseSecuritiesStirng(text) {\r\n const url = '/api/securities/clipboard';\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ text })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getByReferenceName(referenceName) {\r\n return fetchSafe(`/api/bwics/${referenceName}`);\r\n}\r\n\r\nfunction cancel(referenceName, reason) {\r\n const url = `/api/bwics/cancel/${referenceName}`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(reason),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction markHistoryMessagesAsRead(bwicActions) {\r\n const url = '/api/bwics/history/read';\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(bwicActions),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction setColorDistribution(bwicReferenceName, enabled) {\r\n const url = `/api/bwics/color-distribution/${enabled ? 'enable' : 'disable'}/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction completeBwic(bwicReferenceName, colorDistributionModel) {\r\n const url = `/api/bwics/finish/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(colorDistributionModel),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction myBwicsExist(isBdBuy) {\r\n return fetchSafe(urlBuilder('/api/bwics/myBwicsExist', { buyBwics: isBdBuy }));\r\n}\r\n\r\nfunction saveAutoFeedbackConfiguration(bwicReferenceName, configuration) {\r\n const url = `/api/bwics/auto-feedback-configuration/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify(configuration),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction validateTradeLimits(bwicDate, bidsDue, timeZone, bwicPositions) {\r\n const url = '/api/bwics/validate-sell-limits';\r\n const model = {\r\n date: moment(bwicDate).startOf('day').utcOffset(0, true).toISOString(),\r\n bidsDue, timeZone,\r\n positions: bwicPositions.map(p => ({\r\n securityId: p.securityId,\r\n isinCusip: p.isinCusip,\r\n ticker: p.ticker,\r\n currency: p.currency,\r\n rating: p.rating,\r\n size: moneyUtils.parse(p.size)\r\n }))\r\n }\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction isBwicWithSecuritesExist(securityIds) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(securityIds),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(\"/api/bwics/exist/securities\", requestOptions);\r\n}\r\n\r\nfunction finishStage(bwicReferenceName) {\r\n return fetchSafe(`/api/bwics/change-stage/${bwicReferenceName} `, { method: 'PUT' });\r\n}\r\n\r\nfunction getSecurityBwicStatistics(securityId) {\r\n return fetchSafe(`/api/securities/bwic-statistic/${securityId}`);\r\n}\r\n\r\nfunction getClassDetails(securityId) {\r\n return fetchSafe(`/api/securities/class-details/${securityId}`)\r\n}","import { responseType } from '../constants';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nexport const bwicDealsService = {\r\n getDeals,\r\n getDealSecurityStatistics,\r\n downloadDealSecurityDocuments\r\n}\r\n\r\nfunction getDeals(positions) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(positions)\r\n };\r\n\r\n return fetchSafe('/api/deals', requestOptions);\r\n}\r\n\r\nfunction getDealSecurityStatistics(dealTickers){\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ dealTickers })\r\n };\r\n\r\n return fetchSafe('/api/securities/clo-managers-deals', requestOptions);\r\n}\r\n\r\nfunction downloadDealSecurityDocuments(dealTicker, dealName){\r\n return fetchSafe(`/api/securities/clo-managers-deals/${dealTicker}/download/${dealName}`, {\r\n responseType: responseType.file\r\n });\r\n}\r\n","import { fetchSafe } from \"./fetch.safe\";\r\n\r\nexport function getFromCache(\r\n url: string,\r\n onFetched?: (fetchResult: T) => T,\r\n storage: Storage = sessionStorage,\r\n disableRequestCancelation = false): Promise {\r\n const cached = storage.getItem(url);\r\n\r\n if (cached == null) {\r\n return fetchSafe(url, {}, disableRequestCancelation)\r\n .then((result: T) => {\r\n if (onFetched) {\r\n result = onFetched(result);\r\n }\r\n\r\n try {\r\n storage.setItem(url, JSON.stringify(result));\r\n } catch {\r\n console.log('Storage is overloaded');\r\n }\r\n\r\n return result;\r\n });\r\n }\r\n\r\n return Promise.resolve(JSON.parse(cached) as T);\r\n}\r\n","import moment from 'moment';\r\nimport qs from 'query-string';\r\nimport { constants, responseType } from '../constants';\r\nimport { CloManagerAccessType } from '../types/amr-pipeline/enums/CloManagerAccessType';\r\nimport { CloManagerDetailed } from '../types/clo-managers/CloManagerDetailed';\r\nimport { CloManagerSave } from '../types/clo-managers/CloManagerSave';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { apiUtils } from '../utils';\r\n\r\nfunction getCloManager(companyReferenceName: string): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager`);\r\n}\r\n\r\nfunction createOrUpdateCloManager(companyReferenceName: string, cloManager: CloManagerSave): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager`, {\r\n method: 'PUT',\r\n body: JSON.stringify(cloManager),\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction downloadManagerPresentationFile(companyReferenceName: string, referenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/manager-presentation-file/download/${referenceName}`, requestOptions);\r\n}\r\n\r\nfunction logUserActivity(companyReferenceName: string, accessType: CloManagerAccessType) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/access/${accessType}`, {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction switchFavorite(companyReferenceName: string, favorite: boolean) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/favorite/${favorite}`, {\r\n method: 'PUT',\r\n responseType: responseType.none,\r\n });\r\n};\r\n\r\nasync function getAnalytics(companyReferenceName: string) {\r\n const queryString = qs.stringify({ currentTime: moment().format() });\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/analytics?${queryString}`);\r\n}\r\n\r\nfunction getInvitedAndActiveManagers(companyReferenceName: string) {\r\n return fetchSafe(`/api/companies/${companyReferenceName}/invited-and-active-collateral-managers`);\r\n}\r\n\r\nfunction getProfileViewHistory(companyReferenceName: string, startDate?: Date, endDate?: Date) {\r\n let queryString = '';\r\n\r\n if (startDate && endDate) {\r\n const queryParams = {\r\n 'period.From': moment(startDate).format(constants.dateTimeFormatUtc),\r\n 'period.To': moment(endDate).format(constants.dateTimeFormatUtc),\r\n };\r\n\r\n queryString = `?${qs.stringify(queryParams)}`;\r\n }\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/profile-views/${queryString}`);\r\n}\r\n\r\nfunction getLatestTransactionsInDeal(\r\n managerReferenceName: string,\r\n sortingParams: { field: string; ascending: boolean }[]\r\n) {\r\n const queryString = `${qs.stringify(\r\n apiUtils.parseSortingParams(sortingParams)\r\n )}`;\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/collateral-manager/${managerReferenceName}/latest-transaction-in-deal?${queryString}`\r\n );\r\n}\r\n\r\nfunction scheduleMeeting(companyReferenceName: string, recipientsEmails: string[], message: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/companies/${companyReferenceName}/clo-manager/request-meeting`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify({\r\n recipientsEmails,\r\n message\r\n }),\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction getCloSystemInfrastructures() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/CloSystemInfrastructure`);\r\n}\r\n\r\nexport const cloManagersService = {\r\n getCloManager,\r\n createOrUpdateCloManager,\r\n downloadManagerPresentationFile,\r\n logUserActivity,\r\n switchFavorite,\r\n getAnalytics,\r\n getInvitedAndActiveManagers,\r\n getProfileViewHistory,\r\n getLatestTransactionsInDeal,\r\n scheduleMeeting,\r\n getCloSystemInfrastructures\r\n};\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { urlBuilder } from './url.builder';\r\nimport { getFromCache } from './cache';\r\n\r\n\r\nexport const companiesService = {\r\n getCompanies,\r\n getBrokerDealers,\r\n getBrokerDealer,\r\n getActiveAssetManagers,\r\n getCompany,\r\n getCompanyDomains,\r\n getCompanyMembers,\r\n getCurrentUserCompany,\r\n postCompanyApprove,\r\n postCompanyReject,\r\n changeCompanyStatus,\r\n save,\r\n setMemberOfacStatus,\r\n setCompanyOfacStatus,\r\n getBwicParticipants,\r\n sendDistributionListInvite,\r\n sendHeadOfTrdingInvite,\r\n getFavorites,\r\n addToFavorites,\r\n deleteFromFavorites,\r\n exportCompanies,\r\n getClearingBankBwicParticipants\r\n};\r\n\r\nfunction getCompanies() {\r\n return fetchSafe('/api/companies');\r\n}\r\n\r\nfunction getBrokerDealers() {\r\n return fetchSafe('/api/companies/broker-dealers');\r\n}\r\n\r\nfunction getBrokerDealer(referenceName) {\r\n return fetchSafe(`/api/companies/broker-dealers/${referenceName}`);\r\n}\r\n\r\nfunction getActiveAssetManagers() {\r\n return fetchSafe('/api/companies/asset-managers');\r\n}\r\n\r\nfunction getCompany(referenceName, companyId) {\r\n const url = urlBuilder('/api/companies/single', { referenceName, companyId });\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction getCompanyDomains() {\r\n return fetchSafe('/api/companies/domains');\r\n}\r\n\r\nfunction getCurrentUserCompany(disableRequestCancelation = false) {\r\n return getFromCache('/api/companies/current-user', undefined, undefined, disableRequestCancelation);\r\n}\r\n\r\nfunction postCompanyApprove(companyId) {\r\n const url = `/api/companies/${companyId}/approve`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: '',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction postCompanyReject(companyId, rejectReason) {\r\n const url = `/api/companies/${companyId}/reject`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(rejectReason),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction changeCompanyStatus(companyId, status, reason) {\r\n const url = `/api/companies/${companyId}/status`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ status, reason }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction save(companySaveModel) {\r\n const url = '/api/companies';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(companySaveModel),\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getCompanyMembers(companyId) {\r\n return fetchSafe(`/api/companies/${companyId}/members`);\r\n}\r\n\r\nfunction setMemberOfacStatus(memberId, status) {\r\n const url = `/api/users/${memberId}/ofac`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(status)\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction setCompanyOfacStatus(companyId, status) {\r\n const url = `/api/companies/${companyId}/ofac`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(status)\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\n\r\nfunction getBwicParticipants(bwicReferenceName) {\r\n return fetchSafe(`/api/bwics/participants/${bwicReferenceName}`);\r\n}\r\n\r\nfunction sendDistributionListInvite(companyId) {\r\n const url = '/api/invitation/invite-distribution-list';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ companyId }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction sendHeadOfTrdingInvite(companyId) {\r\n const url = '/api/invitation/invite-head-of-trading';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ companyId }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getFavorites() {\r\n return fetchSafe(`/api/companies/favourites`);\r\n}\r\n\r\nfunction addToFavorites(companyId) {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n body: companyId,\r\n };\r\n return fetchSafe(`/api/companies/favourites`, requestOptions);\r\n}\r\n\r\nfunction deleteFromFavorites(companyId) {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n };\r\n return fetchSafe(`/api/companies/favourites/${companyId}`, requestOptions);\r\n}\r\n\r\nfunction getClearingBankBwicParticipants(bwicReferenceName) {\r\n return fetchSafe(`/api/companies/clearing-banks/${bwicReferenceName}`);\r\n}\r\n\r\nfunction exportCompanies(searchTerms, statuses, roles, regByFrom, regByTo, salesRepresentativeIds, regByIds, orderByColumn, sortOrder) {\r\n const url = urlBuilder('/api/companies/export', {\r\n searchTerms,\r\n statuses,\r\n roles,\r\n regByFrom,\r\n regByTo,\r\n salesRepresentativeIds,\r\n regByIds,\r\n orderByColumn,\r\n sortOrder\r\n })\r\n return fetchSafe(url, { responseType: responseType.file })\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { ContactSalesRequest } from \"../types/contact-sales/ContactSalesRequest\";\r\n\r\nexport const contactSalesService = {\r\n sendRequest\r\n}\r\n\r\nfunction sendRequest(request: ContactSalesRequest): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(request),\r\n responseType: responseType.none\r\n\r\n };\r\n\r\n return fetchSafe('/api/profile/contact-sales', requestOptions);\r\n}\r\n","import qs from 'query-string';\r\nimport { pipelineFilters, responseType } from '../constants';\r\nimport { TransactionType } from '../types/amr-pipeline/enums/TransactionType';\r\nimport { ExclusionReason } from '../types/amr-pipeline/models/ExcludedDealer';\r\nimport { SettlementInstructions } from '../types/amr-pipeline/models/SettlementInstructions';\r\nimport { Tranche } from '../types/amr-pipeline/models/Tranche';\r\nimport { AmrInfoSaveForm } from '../types/deals/AmrInfoSaveForm';\r\nimport { DealSave } from '../types/deals/DealSave';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { DealDocumentsWithPattern } from '../types/amr-pipeline/models/DealDocumentsWithPattern';\r\n\r\ninterface ExcludedDealersData {\r\n editData: {\r\n trancheReferenceName: string;\r\n brokerDealerReferenceName: string;\r\n reasons?: ExclusionReason[];\r\n }[];\r\n}\r\n\r\ninterface GetDealTransactionsOptions {\r\n transactionTypes?: TransactionType[];\r\n}\r\n\r\nexport const dealsService = {\r\n getDeals,\r\n getDeal,\r\n getDealRegularDocuments,\r\n getDealDocuments,\r\n getCleansingNoticeDocuments,\r\n\r\n getClassAuctions,\r\n getLatestDealAuctions,\r\n getDealDocumentsByType,\r\n getDealsList,\r\n getDealDocument,\r\n getDealDocumentTemplate,\r\n getDealsNamesList,\r\n getDealTransactions,\r\n getPreviousTransaction,\r\n getDealDetails,\r\n deleteDeal,\r\n updateDeal,\r\n updateClasses,\r\n getExcludedDealers,\r\n saveExcludedDealers,\r\n getAmrDocument,\r\n exportSettlementInstructions,\r\n getSettlementInstructions,\r\n saveSettlementInstructions,\r\n updateDealDocuments,\r\n saveAmrInfo,\r\n deleteAmrInfo,\r\n downloadAmrDocument,\r\n downloadAmrDocuments,\r\n};\r\n\r\nfunction getDeals() {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals`);\r\n}\r\n\r\nfunction getDeal(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}`);\r\n}\r\n\r\nfunction getDealRegularDocuments(dealReferenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents/regular-documents/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealDocuments(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents`);\r\n}\r\n\r\nfunction getAmrDocument(dealReferenceName: string, transactionReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/amr/documents`,\r\n );\r\n}\r\n\r\nfunction getClassAuctions(dealReferenceName: string, classReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/classes/${classReferenceName}/amr-classes`,\r\n );\r\n}\r\n\r\nfunction getLatestDealAuctions(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/latest-amr-classes`);\r\n}\r\n\r\nfunction getDealDocumentsByType(dealReferenceName: string, documentType: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents/${documentType}/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealsList(searchString: string, offset = 0, count = pipelineFilters.searchItemsPerLoad) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Deals/?count=${count}&offset=${offset}&searchTerm=${searchString}`,\r\n );\r\n}\r\n\r\nfunction getDealDocument(dealReferenceName: string, referenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents/${referenceName}/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getCleansingNoticeDocuments(dealReferenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents/cleansing-notice-documents/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealDocumentTemplate() {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/documents/template`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction getDealsNamesList(searchTerm: string, orderByField?: string, ascending?: boolean) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/get/list/?searchTerm=${searchTerm}&orderBy[0].field=${orderByField}&orderBy[0].ascending=${ascending}`,\r\n );\r\n}\r\n\r\nfunction getDealTransactions(dealReferenceName: string, options: GetDealTransactionsOptions = {}) {\r\n const queryParams = qs.stringify(options);\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions?${queryParams}`);\r\n}\r\n\r\nfunction getPreviousTransaction(dealReferenceName: string, transactionReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/previous`);\r\n}\r\n\r\nfunction getDealDetails(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/classes`);\r\n}\r\n\r\nfunction updateDeal(dealReferenceName: string, formData: DealSave) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}`, {\r\n method: 'PUT',\r\n body: JSON.stringify(formData),\r\n responseType: responseType.text,\r\n });\r\n}\r\n\r\nfunction updateClasses(dealReferenceName: string, classes: Tranche[]) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/classes`, {\r\n method: 'PUT',\r\n body: JSON.stringify(classes),\r\n responseType: responseType.json,\r\n });\r\n}\r\n\r\nfunction deleteDeal(dealReferenceName: string) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}`, {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction getExcludedDealers(dealReferenceName: string, transactionReferenceName: string, classReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/classes/${classReferenceName}/excluded-dealers`,\r\n );\r\n}\r\n\r\nfunction saveExcludedDealers(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n classReferenceName: string,\r\n excludedDealersData: ExcludedDealersData,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/classes/${classReferenceName}/excluded-dealers`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify(excludedDealersData),\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction getSettlementInstructions(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n classReferenceName: string,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/classes/${classReferenceName}/settlement-instructions`,\r\n );\r\n}\r\n\r\nfunction saveSettlementInstructions(\r\n dealReferenceName: string,\r\n classReferenceName: string,\r\n settlementInstructions: SettlementInstructions,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/${classReferenceName}/settlement-instructions`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify(settlementInstructions),\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction exportSettlementInstructions(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n classReferenceName: string,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/classes/${classReferenceName}/settlement-instructions/download`,\r\n {\r\n responseType: responseType.file,\r\n },\r\n );\r\n}\r\n\r\nfunction saveAmrInfo(dealReferenceName: string, transactionReferenceName: string, amrInfo: AmrInfoSaveForm) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/amr`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify(amrInfo),\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction deleteAmrInfo(dealReferenceName: string, transactionReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}`,\r\n {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n },\r\n );\r\n}\r\n\r\nfunction updateDealDocuments(dealReferenceName: string, documents: DealDocumentsWithPattern) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/documents`, {\r\n method: 'PUT',\r\n body: JSON.stringify(documents),\r\n responseType: responseType.none,\r\n });\r\n}\r\n\r\nfunction downloadAmrDocument(dealReferenceName: string, transactionReferenceName: string, documentReferenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/amr/document/${documentReferenceName}/download`,\r\n {\r\n responseType: responseType.file,\r\n },\r\n );\r\n}\r\n\r\nfunction downloadAmrDocuments(\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/transactions/${transactionReferenceName}/amr/documents/download`,\r\n {\r\n responseType: responseType.file,\r\n },\r\n );\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\nimport { responseType } from '../constants';\r\nimport { DocumentStoreType } from '../types/document/Document';\r\n\r\nexport const documentsService = {\r\n uploadDocument,\r\n uploadAndAssignDocument,\r\n downloadDocument,\r\n downloadAllDocuments,\r\n deleteDocument,\r\n uploadSecurities,\r\n downloadSecurities,\r\n getSecurityDocumentsExistFlag,\r\n downloadStatic\r\n}\r\n\r\nfunction getDocumentUrlByType(documentStoreType) {\r\n if (documentStoreType === DocumentStoreType.Settlement) {\r\n return '/api/settlement-documents'\r\n }\r\n if (documentStoreType === DocumentStoreType.Disclosure) {\r\n return `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/documents`\r\n }\r\n return '/api/documents'\r\n}\r\n\r\nfunction getDownloadAllUrlByType(documentStoreType) {\r\n if(documentStoreType === DocumentStoreType.Settlement) {\r\n return '/api/settlement-documents/download-all'\r\n }\r\n throw new Error('Download all is not supported');\r\n}\r\n\r\nfunction uploadDocument(file, progressCallback, documentStoreType) {\r\n return fileUpload(\r\n getDocumentUrlByType(documentStoreType),\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction uploadAndAssignDocument(file, dealReferenceName, documentType, progressCallback) {\r\n return fileUpload(\r\n `/api/documents/deal-document/${dealReferenceName}/${documentType}`,\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction downloadDocument(documentId, documentStoreType = DocumentStoreType.Default) {\r\n return fetchSafe(`${getDocumentUrlByType(documentStoreType)}/${documentId}`, {\r\n responseType: responseType.file\r\n });\r\n}\r\n\r\nfunction downloadAllDocuments(documentGroupKey, documentStoreType) {\r\n return fetchSafe(`${getDownloadAllUrlByType(documentStoreType)}/${documentGroupKey}`, {\r\n responseType: responseType.file\r\n })\r\n}\r\n\r\nfunction deleteDocument(documentId, dealTicker) {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/documents/${documentId}?ticker=${dealTicker}`, requestOptions);\r\n}\r\n\r\nfunction uploadSecurities(file, progressCallback) {\r\n const url = '/api/manage-securities';\r\n return fileUpload(\r\n url,\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction downloadSecurities() {\r\n return fetchSafe('/api/manage-securities/template', { responseType: responseType.file });\r\n}\r\n\r\nfunction getSecurityDocumentsExistFlag(isinCusip) {\r\n return fetchSafe(`/api/securities/hasDocuments/${isinCusip} `);\r\n}\r\n\r\nfunction downloadStatic(filename) {\r\n return fetchSafe(`/api/documents/static/${filename}`, { responseType: responseType.file });\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { BwicByRatingPreferences, EmailPreferences } from '../types/email-preferences/EmailPreferences';\r\nimport { responseType } from '../constants';\r\n\r\nexport const emailPreferencesService = {\r\n getEmailPreferences,\r\n saveEmailPreferences,\r\n saveBwicByRating\r\n}\r\n\r\nfunction getEmailPreferences(): Promise {\r\n return fetchSafe('/api/email-preferences');\r\n}\r\n\r\nfunction saveEmailPreferences(preferences: EmailPreferences): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(preferences),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/email-preferences', requestOptions);\r\n}\r\n\r\nfunction saveBwicByRating(bwicByRatingPreferences: BwicByRatingPreferences): Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(bwicByRatingPreferences),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/email-preferences/bwic-by-rating-alert', requestOptions);\r\n}","import { responseType as responseTypes } from '../constants/response.type';\r\nimport { logger } from '../logging/logger';\r\nimport { user } from \"../user/user\";\r\nimport { refreshTokenController } from \"../user/refresh-token-controller\";\r\nimport { fileUtils } from '../utils';\r\nimport { requestCancelationController } from './request-cancelation-controller';\r\n\r\nconst maxRetryAttempts = 5;\r\n\r\nconst getMethod = options => (options.method || 'GET').toUpperCase();\r\n\r\nconst awaitTimeout = delay => new Promise(resolve => setTimeout(resolve, delay));\r\n\r\nexport const fetchSafe = (url, options = {}, disableRequestCancelation = false, abortSignal = undefined, retryAttempt = 1) => {\r\n const requestCancelationSignal = disableRequestCancelation\r\n ? undefined\r\n : abortSignal ?? requestCancelationController.signal();\r\n\r\n const handleResponse = async (response, responseType) => {\r\n if (response.ok) {\r\n switch (responseType) {\r\n case (responseTypes.none): return {};\r\n case (responseTypes.file): return {\r\n name: fileUtils.getFileNameFromResponse(response),\r\n blob: await response.blob()\r\n };\r\n default: return response.status !== 204 ? response.json() : undefined;\r\n }\r\n }\r\n\r\n const shouldRetry = () => {\r\n const method = getMethod(options);\r\n\r\n return (\r\n retryAttempt <= maxRetryAttempts &&\r\n (method === 'GET' || method === 'POST') &&\r\n response.status === 504\r\n );\r\n }\r\n\r\n if (shouldRetry(response)) {\r\n logger.trace(\"504 error retry attempt\", { url, retryAttempt: retryAttempt + 1 });\r\n return awaitTimeout(300).then(() => fetchSafe(url, options, disableRequestCancelation, abortSignal,++retryAttempt));\r\n }\r\n\r\n return failure(response);\r\n }\r\n\r\n return refreshTokenController\r\n .ensureTokenUpToDate(user.token(), user.refreshToken().refreshToken)\r\n .then(accessToken => fetch(url, setOptionsDefaults(options, accessToken, requestCancelationSignal)))\r\n .then(response => handleResponse(response, options.responseType));\r\n}\r\n\r\nconst failure = response =>\r\n response\r\n .text()\r\n .then(text => Promise.reject({\r\n status: response.status,\r\n message: (text || response.statusText)\r\n }))\r\n\r\nconst setOptionsDefaults = (options = {}, accessToken, signal) => {\r\n const method = getMethod(options);\r\n\r\n return {\r\n ...options,\r\n method,\r\n signal,\r\n headers: options.headers || {\r\n 'authorization': accessToken && `Bearer ${accessToken}`,\r\n 'accept': 'application/json',\r\n 'content-type': 'application/json',\r\n ...(method === 'GET') && {\r\n 'cache-control': 'no-cache',\r\n 'pragma': 'no-cache'\r\n }\r\n }\r\n };\r\n}\r\n","import { user, refreshTokenController } from '../user';\r\nimport { requestCancelationController } from './request-cancelation-controller';\r\nimport { apiUtils } from '../utils';\r\n\r\nexport const fileUpload = (url, dataItems, blob, onProgress, disableCancelation = false) => {\r\n const upload = (headers, signal) => {\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open('POST', url);\r\n\r\n for (const key in headers) {\r\n xhr.setRequestHeader(key, headers[key]);\r\n }\r\n\r\n xhr.onload = e => apiUtils.isRequestSuccess(e.target.status)\r\n ? resolve(e.target.responseText ? JSON.parse(e.target.responseText) : undefined)\r\n : reject(e.target);\r\n xhr.onerror = reject;\r\n xhr.onabort = reject;\r\n xhr.upload.onprogress = onProgress;\r\n\r\n if (signal) {\r\n signal.onabort = () => xhr.abort();\r\n }\r\n\r\n const form = new FormData();\r\n form.append('file', blob, blob.name);\r\n\r\n if (dataItems) {\r\n Object.keys(dataItems).forEach(key => form.append(key, dataItems[key]));\r\n }\r\n\r\n xhr.send(form);\r\n });\r\n }\r\n const requestCancelationSignal = disableCancelation ? null : requestCancelationController.signal();\r\n\r\n return refreshTokenController\r\n .ensureTokenUpToDate(user.token(), user.refreshToken().refreshToken)\r\n .then(token => upload({ authorization: `Bearer ${token}` }, requestCancelationSignal))\r\n .catch(({ status, responseText}) => Promise.reject({ status, message: responseText }));\r\n}\r\n\r\n\r\n","import qs from 'query-string';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { HelpResourceCategory, HelpResourceSection } from '../types/help-resources/HelpResourceCategory';\r\nimport { ArticleAttachmentList, HelpResourceArticle, HelpResourceSectionArticlesList } from '../types/help-resources/HelpResourceArticle';\r\nimport { HelpResourceSearch } from '../types/help-resources/HelpResourceSearch';\r\nimport { responseType } from '../constants';\r\n\r\nconst isDraft = (entityName: string) => {\r\n return /^\\s?\\[Draft\\]/.test(entityName)\r\n}\r\n\r\nasync function fetchCategories(): Promise {\r\n const categories: HelpResourceCategory[] = await fetchSafe('/api/Zendesk/categories');\r\n return categories.filter(category => category.name && !isDraft(category.name))\r\n}\r\n\r\nasync function fetchCategorySections(categoryId: number): Promise {\r\n return await fetchSafe(`/api/Zendesk/categories/${categoryId}/sections`);\r\n}\r\n\r\n// Getting all pages at once due restricted limits of maximum 100 articles\r\nasync function fetchCategoryArticles(categoryId: number, page: number = 1, result: HelpResourceArticle[] = []): Promise {\r\n const pageSize = 100; // maximum ammount\r\n const nextPage = page + 1;\r\n const queryString = `?${qs.stringify({ page, pageSize })}`;\r\n const iterationResult = await fetchSafe(`/api/Zendesk/categories/${categoryId}/articles${queryString}`);\r\n const prevCount = result.length;\r\n result = [...result, ...iterationResult];\r\n if (result.length === prevCount || iterationResult.length < pageSize) {\r\n return result;\r\n }\r\n return fetchCategoryArticles(categoryId, nextPage, result);\r\n}\r\n\r\nasync function fetchSection(sectionId: number): Promise {\r\n const section = await fetchSafe(`/api/Zendesk/sections/${sectionId}/articles`);\r\n if (isDraft(section.sectionName) || isDraft(section.categoryName)) {\r\n return {\r\n sectionName: '',\r\n categoryName: '',\r\n articles: []\r\n };\r\n }\r\n return section;\r\n}\r\n\r\nfunction fetchBySearch(search: string, categoryId: number | null, page: number = 1): Promise {\r\n const queryString = `?${qs.stringify({ page })}`;\r\n return fetchSafe(`/api/Zendesk/search/${search}${categoryId ? `/${categoryId}` : ''}${queryString}`);\r\n}\r\n\r\nfunction getArticleImage(src: string): Promise<{ name: string, blob: File }> {\r\n return fetchSafe(src, { responseType: responseType.file });\r\n}\r\n\r\n\r\nfunction getArticleAttachment(id: number, name: string) {\r\n return fetchSafe(`/api/Zendesk/image/${id}/${name}`, { responseType: responseType.file })\r\n}\r\n\r\nfunction getArticleAttachmentsList(articleId: number): Promise {\r\n return fetchSafe(`/api/Zendesk/attechment/${articleId}`)\r\n}\r\n\r\nexport const helpResourcesService = {\r\n fetchSection,\r\n fetchCategories,\r\n fetchCategorySections,\r\n fetchCategoryArticles,\r\n fetchBySearch,\r\n getArticleImage,\r\n getArticleAttachment,\r\n getArticleAttachmentsList\r\n}\r\n","import { getFromCache } from './cache';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { urlBuilder } from './url.builder';\r\nimport { CurrencyRate } from '../types/currency/CurrencyRate';\r\n\r\nexport const currencyService = {\r\n getCurrencies,\r\n getCurrencyRate,\r\n setCurrencyRate\r\n};\r\n\r\nfunction getCurrencies() {\r\n return getFromCache('/api/currencies')\r\n}\r\n\r\nfunction getCurrencyRate():Promise {\r\n return fetchSafe('/api/currencies/get')\r\n}\r\n\r\nfunction setCurrencyRate(usdRate: number): Promise {\r\n const url = urlBuilder(\r\n '/api/currencies/set-usdrate',\r\n {\r\n usdRate\r\n }\r\n );\r\n const requestOptions = {\r\n method: 'PUT',\r\n responseType: responseType.none\r\n };\r\n return fetchSafe(url, requestOptions)\r\n}\r\n","import moment from 'moment';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { getFromCache } from './cache';\r\n\r\nexport const daysService = {\r\n getNextBusinessDate,\r\n getNextBusinessDates,\r\n isBusinessDay,\r\n getHolidays\r\n};\r\n\r\nfunction getNextBusinessDate() {\r\n return fetchSafe(`/api/days/next-business-day/${moment().format('YYYY-MM-DD')}`);\r\n}\r\n\r\nfunction getNextBusinessDates(from, daysCount) {\r\n return getFromCache(`/api/days/next-business-days/${moment(from).format('YYYY-MM-DD')}/${daysCount}`);\r\n}\r\n\r\nfunction isBusinessDay(date) {\r\n return fetchSafe(`/api/days/business-day/${moment(date).format('MM-DD-YYYY')}`);\r\n\r\n}\r\n\r\nfunction getHolidays(year) {\r\n return fetchSafe(`/api/days/holidays/${year}`);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\n\r\nexport const bwicProcessService = {\r\n getTemplates\r\n}\r\n\r\nfunction getTemplates() {\r\n return fetchSafe('/api/process-templates')\r\n .then(list => list.filter(x => x.readonly)) // Hide user created templates\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { fileUpload } from './file.upload';\r\nimport { responseType } from '../constants';\r\n\r\nexport const contactsService = {\r\n getContacts,\r\n addContact,\r\n updateContact,\r\n deleteContact,\r\n uploadContacts,\r\n parseContactsStirng,\r\n bulkSave,\r\n getXlsxTemplate,\r\n inviteBuysideClients,\r\n inviteAllToJoin,\r\n sendInvite\r\n}\r\n\r\nfunction getContacts() {\r\n return fetchSafe('/api/contacts');\r\n}\r\n\r\nfunction addContact(contact) {\r\n const url = '/api/contacts';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(contact)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction updateContact(contact) {\r\n const url = '/api/contacts';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(contact),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deleteContact(contactId) {\r\n const url = `/api/contacts/${contactId}`;\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\n\r\nfunction uploadContacts(file, progressCallback) {\r\n return fileUpload(\r\n '/api/contacts/upload',\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction parseContactsStirng(text) {\r\n const url = '/api/contacts/clipboard';\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ text })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction bulkSave(contactsToSave, contactsToDelete) {\r\n const url = '/api/contacts/bulk-save';\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ contactsToSave, contactsToDelete })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getXlsxTemplate() {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe('/api/contacts/template', requestOptions);\r\n}\r\n\r\nfunction inviteBuysideClients(emailList) {\r\n const url = '/api/invitation/invite-buyside';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ buysideClientEmails: emailList }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction sendInvite(contactId) {\r\n const url = '/api/invitation/invite';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ contactId }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction inviteAllToJoin(message) {\r\n const url = '/api/invitation/invite-all';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ message }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n","import { Country } from '../types/location/Country';\r\nimport { State } from '../types/location/State';\r\nimport { City } from '../types/location/City';\r\nimport { getFromCache } from './cache';\r\nimport { constants } from '../constants';\r\n\r\n\r\nexport const locationService = {\r\n getCountries,\r\n getStates,\r\n getCities\r\n}\r\n\r\nfunction getCountries(): Promise {\r\n const applyOrdering = (countries: Country[]) => {\r\n const usa = countries.find(c => c.code === constants.USCountryCode);\r\n const otherCountries = countries\r\n .filter(c => c.code !== constants.USCountryCode)\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n return usa ? [usa, ...otherCountries] : otherCountries;\r\n }\r\n\r\n return getFromCache('/api/countries', applyOrdering);\r\n}\r\n\r\nfunction getStates(countryCode: string): Promise {\r\n return getFromCache(`/api/states/${countryCode}`);\r\n}\r\n\r\nfunction getCities(stateId: number): Promise {\r\n return getFromCache(`/api/cities/state/${stateId}`);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { urlBuilder } from './url.builder';\r\n\r\nexport const parsedBwicsService = {\r\n search,\r\n publish,\r\n unpublish,\r\n save,\r\n deleteBwic,\r\n cancel,\r\n changeAmrFlag\r\n};\r\n\r\nfunction search(searchCriteria, page, pageSize) {\r\n const url = urlBuilder('/api/parsed-bwics/search', { page, pageSize });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(searchCriteria)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction publish(referenceName) {\r\n const url = '/api/parsed-bwics/publish';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceName }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction unpublish(referenceName) {\r\n const url = '/api/parsed-bwics/unpublish';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceName }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction save(payload) {\r\n const url = '/api/parsed-bwics';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deleteBwic(referenceName) {\r\n const url = `/api/parsed-bwics/${referenceName}`;\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction cancel(referenceName) {\r\n const url = `/api/parsed-bwics/cancel/${referenceName}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction changeAmrFlag(bwicReferenceName, isAMR) {\r\n return fetchSafe(\r\n `/api/parsed-bwics/change-amr-flag/${bwicReferenceName}`,\r\n {\r\n method: 'PUT',\r\n body: JSON.stringify({ isAMR })\r\n });\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\n\r\nexport const colorService = {\r\n save,\r\n deleteColor\r\n}\r\n\r\nfunction save(bwicReferenceName, positionId, color) {\r\n const url = '/api/color';\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n body: JSON.stringify({\r\n bwicReferenceName,\r\n positionId,\r\n ...color\r\n })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deleteColor(bwicReferenceName, positionId) {\r\n const url = `/api/color/${bwicReferenceName}/${positionId}`;\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType, constants } from '../constants';\r\nimport moment from 'moment';\r\n\r\nexport const tradingService = {\r\n search: ({ isinCusipsAndTickers, statuses, settlementStatuses, currency, side, type, dateFrom, dateTo, settlFrom, settlTo,\r\n orderByColumn, sortOrder = 'ASC', page = 1, pageSize = 50 }) => {\r\n const url = '/api/trading/search';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n isinCusipsAndTickers,\r\n statuses,\r\n settlementStatuses,\r\n currency,\r\n side,\r\n type,\r\n from: dateFrom && moment(dateFrom).format(constants.dateTimeFormatUtc),\r\n to: dateTo && moment(dateTo).format(constants.dateTimeFormatUtc),\r\n settlementFrom: settlFrom && moment(settlFrom).format(constants.dateTimeFormatUtc),\r\n settlementTo: settlTo && moment(settlTo).format(constants.dateTimeFormatUtc),\r\n orderByColumn,\r\n sortOrder,\r\n page,\r\n pageSize\r\n })\r\n };\r\n return fetchSafe(url, requestOptions);\r\n },\r\n\r\n doesExist: () => {\r\n return fetchSafe('/api/trading/exist');\r\n },\r\n\r\n blotterExport: (params) => {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n clientDateTime: moment().format(),\r\n ...params,\r\n from: params.dateFrom && moment(params.dateFrom).format(constants.dateTimeFormatUtc),\r\n to: params.dateTo && moment(params.dateTo).format(constants.dateTimeFormatUtc),\r\n settlFrom: params.settlFrom && moment(params.settlFrom).format(constants.dateTimeFormatUtc),\r\n settlTo: params.settlTo && moment(params.settlTo).format(constants.dateTimeFormatUtc),\r\n orderByColumn: params.orderByColumn,\r\n sortOrder: params.sortOrder\r\n }),\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/trading/export', requestOptions)\r\n },\r\n\r\n setVcon: ({ tradeId, isBuyTrade, value }) => {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceId: tradeId, buyTrade: isBuyTrade, value }),\r\n };\r\n return fetchSafe('api/trading/set-vcon', requestOptions)\r\n },\r\n\r\n setBooked: ({ tradeId, isBuyTrade, value }) => {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceId: tradeId, buyTrade: isBuyTrade, value }),\r\n };\r\n return fetchSafe('api/trading/set-booked', requestOptions)\r\n },\r\n\r\n getAwaitingActionTrades: () => fetchSafe('/api/trading/trades-pending-action', {}, true),\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport moment from 'moment';\r\nimport { apiUtils } from \"../utils/api.utils\";\r\nimport { pipelineRequestCriteria, responseType } from '../constants';\r\nimport qs from 'query-string';\r\nimport { TransactionType, AllTopIssuersTransactionTypes } from '../types/amr-pipeline/enums/TransactionType'\r\nimport { TransactionStatus } from '../types/amr-pipeline/enums/TransactionStatus'\r\nimport { Currency } from '../types/enums/Currency'\r\nimport { urlBuilder } from '.';\r\nimport { constants } from '../constants/constants';\r\nimport { CollateralType } from '../types/amr-pipeline/enums/CollateralType';\r\nimport { isNil } from 'lodash';\r\n\r\nfunction getCurrentTimeStamp() {\r\n return encodeURIComponent(moment().format('YYYY-MM-DDThh:mm:ss'));\r\n}\r\n\r\nfunction fetchDailyTradingStats() {\r\n return fetchSafe('/api/dashboard/trading-stats');\r\n}\r\n\r\nfunction fetchDeals(additionalCriteria, yearFrom, yearTo) {\r\n const filterCriteria = {\r\n pricingDate: {\r\n from: moment([yearFrom]).startOf(\"year\").format(constants.dateFormatISO8601),\r\n to: moment([yearTo]).endOf(\"year\").format(constants.dateFormatISO8601)\r\n },\r\n statuses: [TransactionStatus.Closed, TransactionStatus.Priced],\r\n ...additionalCriteria\r\n }\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/statistics-deals`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n });\r\n}\r\n\r\nfunction fetchExportDeals(additionalCriteria, yearFrom, yearTo) {\r\n const filterCriteria = {\r\n pricingDate: {\r\n from: moment([yearFrom]).startOf(\"year\").format(constants.dateFormatISO8601),\r\n to: moment([yearTo]).endOf(\"year\").format(constants.dateFormatISO8601)\r\n },\r\n statuses: [TransactionStatus.Closed, TransactionStatus.Priced],\r\n ...additionalCriteria\r\n }\r\n\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/transactions/statistics-deals/export`, {\r\n method: 'POST',\r\n body: JSON.stringify(filterCriteria),\r\n responseType: responseType.file,\r\n });\r\n}\r\n\r\nfunction fetchTopChart(chartType, selectedType, currencyCode, yearFrom, yearTo, collateralTypes) {\r\n const queryParams = {\r\n statuses: [TransactionStatus.Closed, TransactionStatus.Priced],\r\n types: selectedType || AllTopIssuersTransactionTypes,\r\n currencyCode,\r\n collateralTypes: [collateralTypes],\r\n \"pricingDate.From\": moment([yearFrom]).startOf(\"year\").format(constants.dateTimeFormatUtc),\r\n \"pricingDate.To\": moment([yearTo]).endOf(\"year\").format(constants.dateTimeFormatUtc),\r\n };\r\n\r\n const queryString = `?${qs.stringify(queryParams)}`;\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/${chartType}/${queryString}`\r\n );\r\n}\r\n\r\nfunction exportTopChart(\r\n chartType,\r\n selectedType,\r\n currencyCode,\r\n yearFrom,\r\n yearTo,\r\n collateralTypes,\r\n sortingParams,\r\n) {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n const querySortingParams = apiUtils.parseSortingParams(sortingParams);\r\n\r\n const queryParams = {\r\n statuses: [TransactionStatus.Closed, TransactionStatus.Priced],\r\n types: selectedType || AllTopIssuersTransactionTypes,\r\n currencyCode,\r\n \"pricingDate.From\": moment([yearFrom]).startOf(\"year\").format(constants.dateTimeFormatUtc),\r\n \"pricingDate.To\": moment([yearTo]).endOf(\"year\").format(constants.dateTimeFormatUtc),\r\n collateralTypes,\r\n ...querySortingParams,\r\n };\r\n\r\n const queryString = `?${qs.stringify(queryParams)}`;\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/${chartType}/export/${queryString}`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction fetchExportTradingStats(currencyFilter, ratings) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ currencyFilter, ratings }),\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/dashboard/export-trading-stats', requestOptions);\r\n}\r\n\r\nfunction fetchPortfolioSecurities() {\r\n return fetchSafe(`/api/dashboard/portfolio-securities/${getCurrentTimeStamp()}`);\r\n}\r\n\r\nfunction fetchScheduledBwics() {\r\n return fetchSafe(`/api/dashboard/${getCurrentTimeStamp()}`, {}, true)\r\n}\r\n\r\nfunction fetchColorRates() {\r\n return fetchSafe(`/api/dashboard/price-in-color/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchDntRates() {\r\n return fetchSafe(`/api/dashboard/dnt-rates/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction exportBwicStatistic(securityId) {\r\n const url = `/api/securities/export-bwic-statistic/${securityId}`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({}),\r\n responseType: responseType.file\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction fetchSameDayPeriods() {\r\n return fetchSafe(`/api/dashboard/same-day-bwics/${getCurrentTimeStamp()}`);\r\n}\r\n\r\nfunction fetchDealersStatsExists() {\r\n return fetchSafe('/api/dashboard/dealers-stats-exists');\r\n}\r\n\r\nfunction fetchDealersStats() {\r\n return fetchSafe('/api/dashboard/dealers-stats');\r\n}\r\n\r\nfunction exportDealersStats() {\r\n return fetchSafe(`/api/dashboard/dealers-stats-export`, { responseType: responseType.file });\r\n}\r\n\r\nfunction fetchSellersStatsExists() {\r\n return fetchSafe('/api/dashboard/sellers-stats-exists');\r\n}\r\n\r\nfunction fetchClientsStats() {\r\n return fetchSafe('/api/dashboard/sellers-stats');\r\n}\r\n\r\nfunction exportSellerStats() {\r\n return fetchSafe(`/api/dashboard/sellers-stats-export`, { responseType: responseType.file });\r\n}\r\n\r\nfunction fetchPriceLevel() {\r\n return fetchSafe('/api/dashboard/price-level')\r\n}\r\n\r\nfunction fetchDtcSellingBuying() {\r\n return fetchSafe('/api/dashboard/dtc-selling-buying')\r\n}\r\n\r\nfunction fetchDtcInvestmentGrade() {\r\n return fetchSafe(`/api/dashboard/dtc-ig-hy/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchMedianAAA() {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ dateFrom: moment().format() }),\r\n };\r\n return fetchSafe('/api/dashboard/median-aaa', requestOptions)\r\n}\r\n\r\nfunction fetchAAAPriceLevel() {\r\n return fetchSafe(`/api/dashboard/priceLevel-aaa/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchMostTradedTickers() {\r\n return fetchSafe(`/api/dashboard/most-traded-tickers/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchBiggestMovers() {\r\n return fetchSafe(`/api/dashboard/biggest-movers/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchPxTalkDeviation() {\r\n return fetchSafe(`/api/dashboard/pxtalk-deviation/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchBwicPercentOfTrace() {\r\n return fetchSafe(`/api/dashboard/bwic-percent-of-trace/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchIssueTransactionVolumesCount({\r\n from,\r\n to,\r\n transactionType = [TransactionType.newIssue, TransactionType.refi, TransactionType.reset],\r\n currencyCode = Currency.USD,\r\n statuses = TransactionStatus.Closed,\r\n collateralTypes = [],\r\n esg = null,\r\n}) {\r\n const filterCriteria = {\r\n 'pricingDate.From': moment.utc(from || [constants.minChartYear]).format(constants.dateTimeFormatUtc),\r\n 'pricingDate.To': moment.utc(to).format(constants.dateTimeFormatUtc),\r\n types: transactionType,\r\n currencyCode,\r\n statuses,\r\n collateralTypes,\r\n esg,\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/volumes-count`,\r\n filterCriteria\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchVolumeCountByTransactionTypes({\r\n from,\r\n to,\r\n transactionType = TransactionType.newIssue,\r\n currencyCode = Currency.USD,\r\n statuses = TransactionStatus.Closed,\r\n collateralTypes = [],\r\n euCompliance = null,\r\n}) {\r\n const filterCriteria = {\r\n 'pricingDate.From': moment.utc(from || [constants.minChartYear]).format(constants.dateTimeFormatUtc),\r\n 'pricingDate.To': moment.utc(to).format(constants.dateTimeFormatUtc),\r\n types: transactionType,\r\n currencyCode,\r\n statuses,\r\n collateralTypes,\r\n euCompliance,\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/volumes-count-transaction-types`,\r\n filterCriteria\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchVolumesCountShortLongDated({\r\n managerReferenceName,\r\n from,\r\n to,\r\n transactionTypes = [TransactionType.newIssue],\r\n currencyCode,\r\n statuses = TransactionStatus.Closed,\r\n nonCallPeriodEndYearsShort,\r\n reinvestmentPeriodEndYearsShort,\r\n nonCallPeriodEndYearsLong,\r\n reinvestmentPeriodEndYearsLong,\r\n}) {\r\n const [ncEndShortFrom, ncEndShortTo] = nonCallPeriodEndYearsShort;\r\n const [riEndShortFrom, reEndShortTo] = reinvestmentPeriodEndYearsShort;\r\n const [ncEndLongFrom, ncEndLongTo] = nonCallPeriodEndYearsLong;\r\n const [riEndLongFrom, riEndLongTo] = reinvestmentPeriodEndYearsLong;\r\n\r\n const filterCriteria = {\r\n managerReferenceName,\r\n 'pricingDate.From': moment.utc(from || [constants.minChartYear]).format(constants.dateTimeFormatUtc),\r\n 'pricingDate.To': moment.utc(to).format(constants.dateTimeFormatUtc),\r\n types: transactionTypes,\r\n currencyCode,\r\n statuses,\r\n 'nonCallPeriodEndDaysShort.From': moment.duration(ncEndShortFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDaysShort.To': moment.duration(ncEndShortTo, 'years').asDays(),\r\n\r\n 'reinvestmentPeriodEndDaysShort.From': moment.duration(riEndShortFrom, 'years').asDays(),\r\n 'reinvestmentPeriodEndDaysShort.To': moment.duration(reEndShortTo, 'years').asDays(),\r\n\r\n 'nonCallPeriodEndDaysLong.From': moment.duration(ncEndLongFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDaysLong.To': moment.duration(ncEndLongTo, 'years').asDays(),\r\n\r\n 'reinvestmentPeriodEndDaysLong.From': moment.duration(riEndLongFrom, 'years').asDays(),\r\n 'reinvestmentPeriodEndDaysLong.To': moment.duration(riEndLongTo, 'years').asDays(),\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/volumes-count-short-long-dated`,\r\n filterCriteria\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchIssuanceSpreads({\r\n managerReferenceName,\r\n from,\r\n to,\r\n transactionTypes = [TransactionType.newIssue],\r\n statuses = TransactionStatus.Closed,\r\n collateralTypes = [CollateralType.broadlySyndicated, CollateralType.middleMarket],\r\n floaterIndexes = [],\r\n classRatings = [],\r\n currencyCodes = [Currency.USD],\r\n nonCallPeriodEndYears = [],\r\n reinvestmentPeriodEndYears = [],\r\n}) {\r\n const [ncEndFrom, ncEndTo] = nonCallPeriodEndYears;\r\n const [riEndFrom, riEndTo] = reinvestmentPeriodEndYears;\r\n\r\n const ncEndPeriod = !isNil(ncEndFrom) && !isNil(ncEndTo) ? {\r\n 'nonCallPeriodEndDays.From': moment.duration(ncEndFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDays.To': moment.duration(ncEndTo, 'years').asDays(),\r\n } : {};\r\n\r\n const riEndPeriod = !isNil(riEndFrom) && !isNil(riEndTo) ? {\r\n 'reinvestmentPeriodEndDays.From': moment.duration(riEndFrom, 'years').asDays(),\r\n 'reinvestmentPeriodEndDays.To': moment.duration(riEndTo, 'years').asDays(),\r\n } : {};\r\n\r\n const filterCriteria = {\r\n managerReferenceName,\r\n 'pricingDate.From': moment.utc(from || [constants.minChartYear]).format(constants.dateTimeFormatUtc),\r\n 'pricingDate.To': moment.utc(to).format(constants.dateTimeFormatUtc),\r\n types: transactionTypes,\r\n currencyCodes,\r\n statuses,\r\n collateralTypes,\r\n floaterIndexes,\r\n classRatings,\r\n ...ncEndPeriod,\r\n ...riEndPeriod,\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/issuance-spreads`,\r\n filterCriteria\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchIssuenseSpreadsComparableData(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n nonCallPeriodEndYearsShort = pipelineRequestCriteria.shortLongDatedDeals.nonCallPeriodEndYearsShort,\r\n nonCallPeriodEndYearsLong = pipelineRequestCriteria.shortLongDatedDeals.nonCallPeriodEndYearsLong) {\r\n\r\n const [ncEndShortFrom, ncEndShortTo] = nonCallPeriodEndYearsShort;\r\n const [ncEndLongFrom, ncEndLongTo] = nonCallPeriodEndYearsLong;\r\n\r\n const queryArgs = {\r\n 'nonCallPeriodEndDaysShort.From': moment.duration(ncEndShortFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDaysShort.To': moment.duration(ncEndShortTo, 'years').asDays(),\r\n 'nonCallPeriodEndDaysLong.From': moment.duration(ncEndLongFrom, 'years').asDays(),\r\n 'nonCallPeriodEndDaysLong.To': moment.duration(ncEndLongTo, 'years').asDays(),\r\n };\r\n\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/${dealReferenceName}/${transactionReferenceName}/volumes-count-short-long-dated`,\r\n queryArgs\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction fetchKIndicator() {\r\n return fetchSafe(`/api/dashboard/market-stress/${getCurrentTimeStamp()}`)\r\n}\r\n\r\nfunction fetchPortfolioInventorySecurities(pageSize, page, orderByColumn, sortOrder) {\r\n const url = urlBuilder(\r\n '/api/dealers-inventory/included-to-portfolio',\r\n {\r\n pageSize,\r\n page,\r\n sortOrder,\r\n orderByColumn\r\n }\r\n )\r\n return fetchSafe(url)\r\n}\r\n\r\nfunction fetchNewIssueWeeklySpreads() {\r\n const url = urlBuilder(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/dashboard/waswarfds`,\r\n {\r\n types: [TransactionType.newIssue],\r\n statuses: [TransactionStatus.Active],\r\n collateralTypes: [CollateralType.broadlySyndicated],\r\n currencyCode: Currency.USD\r\n }\r\n );\r\n\r\n return fetchSafe(url);\r\n}\r\n\r\nexport const dashboardService = {\r\n fetchDailyTradingStats,\r\n fetchExportTradingStats,\r\n fetchScheduledBwics,\r\n fetchPortfolioSecurities,\r\n exportBwicStatistic,\r\n fetchColorRates,\r\n fetchDntRates,\r\n fetchSameDayPeriods,\r\n fetchDealersStatsExists,\r\n fetchDealersStats,\r\n exportDealersStats,\r\n fetchSellersStatsExists,\r\n fetchClientsStats,\r\n exportSellerStats,\r\n fetchPriceLevel,\r\n fetchDtcSellingBuying,\r\n fetchMedianAAA,\r\n fetchAAAPriceLevel,\r\n fetchDtcInvestmentGrade,\r\n fetchMostTradedTickers,\r\n fetchBiggestMovers,\r\n fetchPxTalkDeviation,\r\n fetchBwicPercentOfTrace,\r\n fetchTopChart,\r\n exportTopChart,\r\n fetchDeals,\r\n fetchExportDeals,\r\n fetchPortfolioInventorySecurities,\r\n fetchIssueTransactionVolumesCount,\r\n fetchVolumeCountByTransactionTypes,\r\n fetchVolumesCountShortLongDated,\r\n fetchIssuanceSpreads,\r\n fetchIssuenseSpreadsComparableData,\r\n fetchKIndicator,\r\n fetchNewIssueWeeklySpreads\r\n};\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\nexport const onBoardingTooltipService = {\r\n setCount\r\n}\r\n\r\nfunction setCount(data) {\r\n const url = '/api/account/set-tooltip-count';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { UserFeedback } from '../types/models/UserFeedback';\r\n\r\ninterface FeedbackService {\r\n sendFeedback(feedbackData: UserFeedback): Promise;\r\n}\r\n\r\nexport const feedbackService: FeedbackService = {\r\n sendFeedback,\r\n};\r\n\r\nfunction sendFeedback(feedbackData: UserFeedback): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(feedbackData),\r\n };\r\n\r\n return fetchSafe('/api/feedback', requestOptions);\r\n}\r\n","import { getFromCache } from './cache';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nexport const ratingService = {\r\n getSecurityRatings,\r\n getRatingMappings\r\n}\r\n\r\nfunction getSecurityRatings(securityId) {\r\n return fetchSafe(`/api/ratings/${securityId}`);\r\n}\r\n\r\nfunction getRatingMappings() {\r\n return getFromCache('/api/ratings/mappings');\r\n}\r\n","import moment from \"moment\";\r\nimport { responseType, constants } from \"../constants\";\r\nimport { fetchSafe } from \"./fetch.safe\";\r\nimport { urlBuilder } from \"./url.builder\";\r\nimport { BwicStatus } from \"../types/enums/BwicStatus\";\r\nimport { OrderByDirection } from \"../types/OrderByDirection\";\r\nimport { BidRequest } from \"../types/bid-as-dealer/BidRequest\";\r\nimport { PaginationResult } from \"../types/PaginationResult\";\r\nimport { SellerBuysideSearchResult } from \"../types/bid-as-dealer/SellerBuysideSearchResult\";\r\nimport { SellerBuySideFilterOptions } from '../types/bid-as-dealer/SellerBuysideFilterOptions';\r\nimport { BwicType } from \"../types/enums/BwicType\";\r\nimport { Rating } from \"../types/enums/Rating\";\r\nimport { OpenBiddingStatus } from \"../types/enums/OpenBiddingStatus\";\r\nimport { TApiCallResponse } from '../types/api-operation/ApiOperationResult';\r\nimport { BwicMonitorSortByOptions, bwicMonitorSortByApiValues } from \"../types/state/AllBwicsState\";\r\nimport { SellerBuysideSearchResultSummary } from \"../types/bid-as-dealer/SellerBuysideSearchResultSummary\";\r\nimport { appConfig } from \"../app-config\";\r\n\r\n\r\nexport const bidAsDealerRequestService = {\r\n getBwicBidRequests,\r\n findBidRequestsAsSeller,\r\n create,\r\n approve,\r\n reject,\r\n cancel,\r\n submit,\r\n exportBidRequestsAsSeller,\r\n exportBidRequestsAsDealer,\r\n bidAsDealerRequestExist,\r\n};\r\n\r\nfunction exportBidRequestsAsSeller(filterOptions: SellerBuySideFilterOptions, sortBy: BwicMonitorSortByOptions = BwicMonitorSortByOptions.NewestFirst): Promise {\r\n const sortByApiParams = bwicMonitorSortByApiValues[sortBy];\r\n const url = urlBuilder('/api/bid-as-dealer-requests/export', { ...filterOptions, sortOrder: sortByApiParams.direction });\r\n return fetchSafe(url, { responseType: responseType.file });\r\n}\r\n\r\nfunction getBwicBidRequests(bwicReferenceName: string): Promise {\r\n return fetchSafe(`/api/bid-as-dealer-requests/${bwicReferenceName}`);\r\n}\r\n\r\nfunction findBidRequestsAsSeller(\r\n filterOptions: SellerBuySideFilterOptions,\r\n sortBy: BwicMonitorSortByOptions = BwicMonitorSortByOptions.NewestFirst,\r\n loadSummary?: boolean\r\n): Promise & SellerBuysideSearchResultSummary> {\r\n const sortByApiParams = bwicMonitorSortByApiValues[sortBy];\r\n const url = urlBuilder('/api/bid-as-dealer-requests/search', {\r\n ...filterOptions,\r\n sortOrder: sortByApiParams.direction,\r\n loadSummary: loadSummary && !appConfig.isSummaryRowHidden\r\n });\r\n return fetchSafe(url);\r\n}\r\n\r\nfunction create(\r\n bwicReferenceName: string,\r\n positionId: number,\r\n brokerDealerId: number,\r\n commission: number,\r\n value: number,\r\n size: number,\r\n salesCoverage: string[],\r\n bidLock: Date | undefined,\r\n) {\r\n const url = `/api/bid-as-dealer-requests/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ positionId, brokerDealerId, commission, value, size, salesCoverage, bidLock }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction approve(\r\n bwicReferenceName: string,\r\n positionId: number,\r\n bidRequestId: number,\r\n bidLock: Date | undefined): Promise {\r\n const url = `/api/bid-as-dealer-requests/confirm/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ positionId, id: bidRequestId, bidLock }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction reject(\r\n bwicReferenceName: string,\r\n positionId: number,\r\n bidRequestId: number,\r\n bidLock: Date | undefined,\r\n comment: string): Promise {\r\n const url = `/api/bid-as-dealer-requests/reject/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ positionId, id: bidRequestId, bidLock, comment }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction cancel(\r\n bwicReferenceName: string,\r\n positionId: number,\r\n bidRequestId: number,\r\n bidLock: Date | undefined): Promise {\r\n const url = `/api/bid-as-dealer-requests/cancel/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ positionId, id: bidRequestId, bidLock }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\ninterface BidRequestSubmitModel {\r\n positionId: number\r\n brokerDealerId: number\r\n commission: number\r\n value: number\r\n axed: boolean\r\n final: boolean\r\n size: number\r\n salesCoverage: string[]\r\n bidLock: Date | undefined\r\n acceptBiddingOverThemself: boolean\r\n stagedBiddingStatus?: OpenBiddingStatus | null\r\n}\r\n\r\nfunction submit(bwicReferenceName: string, bidRequests: BidRequestSubmitModel[]): Promise {\r\n const url = `/api/bid-as-dealer-requests/${bwicReferenceName}`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(bidRequests)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction bidAsDealerRequestExist(): Promise {\r\n return fetchSafe('/api/bid-as-dealer-requests/exist')\r\n}\r\n\r\nfunction exportBidRequestsAsDealer(\r\n isinCusipsAndTickers: string[],\r\n from: Date | undefined,\r\n to: Date | undefined,\r\n statuses: BwicStatus[],\r\n ratings: Rating[],\r\n types: BwicType[],\r\n latestBidsOnly: boolean,\r\n orderByColumn: string | undefined,\r\n sortOrder: OrderByDirection | undefined) {\r\n const url = urlBuilder(\r\n '/api/bid-as-dealer-requests/bids/Export',\r\n {\r\n isinCusipsAndTickers,\r\n from: from && moment(from).format(constants.dateTimeFormatUtc),\r\n to: to && moment(to).format(constants.dateTimeFormatUtc),\r\n statuses,\r\n ratings,\r\n types,\r\n latestBidsOnly,\r\n orderByColumn,\r\n sortOrder\r\n }\r\n );\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n","import { AssignSalesRepresentatives } from '../types/sales-representative/AssignSalesRepresentatives';\r\nimport { SalesRepresentative } from '../types/sales-representative/SalesRepresentative';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\nexport const salesRepresentativesService = {\r\n getCurrentUserSalesRepresentatives,\r\n getList,\r\n assign,\r\n unassign\r\n}\r\n\r\nfunction getCurrentUserSalesRepresentatives(): Promise {\r\n return fetchSafe('/api/sales-representative', {}, true);\r\n}\r\n\r\nfunction getList(): Promise {\r\n return fetchSafe('/api/sales-representative/all')\r\n .then((sales: SalesRepresentative[]) => sales.sort( (a, b) => a.firstName.localeCompare(b.firstName) || a.lastName.localeCompare(b.lastName)));\r\n}\r\n\r\nfunction assign(model: AssignSalesRepresentatives): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/sales-representative/assign', requestOptions);\r\n}\r\n\r\nfunction unassign(model: AssignSalesRepresentatives): Promise {\r\n const requestOptions = {\r\n method: 'DELETE',\r\n body: JSON.stringify(model),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe('/api/sales-representative', requestOptions);\r\n}\r\n","import { urlBuilder } from './url.builder';\r\nimport { responseType } from '../constants';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nexport const photoService = {\r\n getThumbnail\r\n}\r\n\r\nfunction getThumbnail(userId: number): Promise {\r\n const url = urlBuilder('/api/profile/thumbnail', { userId });\r\n const requestOptions = {\r\n method: 'GET',\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions, true);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { SettlementAgentCommissionByRating } from '../types/bid-as-dealer/SettlementAgentCommissionByRating';\r\n\r\nexport const clearingBankService = {\r\n saveClearingBankSettings,\r\n getSettlementAgentCommission\r\n}\r\n\r\nfunction saveClearingBankSettings(\r\n companyId: number,\r\n isClearingBank: boolean,\r\n dailyTradingLimit?: number,\r\n commissions?: SettlementAgentCommissionByRating) {\r\n const url = '/api/companies/clearing-bank';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ companyId, isClearingBank, dailyTradingLimit, ...commissions }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getSettlementAgentCommission(companyId: number): Promise {\r\n return fetchSafe(`/api/agreements/settlement-agent/${companyId}/commissions`);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { UserConfigType } from '../types/user-config/UserConfigType';\r\nimport { ImUserConfig } from '../types/user-config/UserConfig';\r\nimport { responseType } from '../constants';\r\nimport { UserFilterAlertStatus } from '../types/user-config/UserConfigFilter';\r\n\r\nexport const imUserConfigService = {\r\n getUserConfig,\r\n getDefaultUserConfig,\r\n createOrUpdateUserConfig,\r\n deleteUserConfig,\r\n updateFilterEmailAlertsConfig,\r\n deleteUserFilter\r\n};\r\n\r\nfunction getUserConfig(configType?: UserConfigType) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${configType || ''}`\r\n );\r\n}\r\n\r\nfunction getDefaultUserConfig(configType: UserConfigType) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${configType}/config/default`\r\n );\r\n}\r\n\r\nfunction createOrUpdateUserConfig(userConfig: ImUserConfig, withResponse = false): Promise {\r\n const requestOptions = {\r\n body: JSON.stringify(userConfig),\r\n method: 'PUT',\r\n responseType: withResponse\r\n ? responseType.json\r\n : responseType.none,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${userConfig.type}`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction updateFilterEmailAlertsConfig(filterAlertStatuses: UserFilterAlertStatus[]): Promise {\r\n const requestOptions = {\r\n body: JSON.stringify(filterAlertStatuses),\r\n method: 'PUT',\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/im-filters/alerts`,\r\n requestOptions\r\n );\r\n}\r\n\r\nfunction deleteUserConfig(configType: UserConfigType, referenceName: string = '') {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${configType}/${referenceName}`,\r\n {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n }\r\n );\r\n}\r\n\r\nfunction deleteUserFilter(referenceName: string, filterType: UserConfigType.apFilter | UserConfigType.imFilter) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/userConfig/${filterType}/${referenceName}`,\r\n {\r\n method: 'DELETE',\r\n responseType: responseType.none,\r\n }\r\n );\r\n}\r\n","import { fetchSafe } from \"./fetch.safe\";\r\nimport { responseType } from '../constants';\r\nimport { SaveInventoryPosition } from '../types/inventory/SaveInventoryPosition';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { ParsedInventoryPosition } from '../types/inventory/ParsedInventoryPosition';\r\nimport { fileUpload } from \"./file.upload\";\r\nimport { InventorySearchResult } from \"../types/inventory/InventorySearchResult\";\r\nimport { appConfig } from \"../app-config\";\r\n\r\nexport const inventoryService = {\r\n getInventoryExistFlag,\r\n getAllInventory,\r\n getBdInventory,\r\n getAdminEditInventory,\r\n setTraded,\r\n save,\r\n exportInventoryList,\r\n sendEmail,\r\n uploadSecurities,\r\n getSecuritiesXlsxTemplate,\r\n parseSecuritiesStirng,\r\n getActiveSecurityIdList,\r\n};\r\n\r\nfunction getInventoryExistFlag(): Promise {\r\n return fetchSafe('/api/dealers-inventory/has-inventory');\r\n}\r\n\r\nfunction getBdInventory(): Promise<{ inventorySecurities: InventoryPosition[], lockModifiedDate: Date | null }> {\r\n return fetchSafe('/api/dealers-inventory');\r\n}\r\n\r\nfunction getAdminEditInventory(companyId: number): Promise<{ inventorySecurities: InventoryPosition[], lockModifiedDate: Date | null }> {\r\n return fetchSafe(`/api/dealers-inventory/${companyId}`);\r\n}\r\n\r\nexport interface InventorySearchParams {\r\n identifiers: string[];\r\n statuses: number[];\r\n ratings: string[];\r\n dealers: number[] | null;\r\n orderByColumn?: number;\r\n sortOrder?: number;\r\n page?: number;\r\n pageSize?: number;\r\n from?: Date;\r\n to?: Date;\r\n currentItems?: boolean;\r\n loadSummary?: boolean;\r\n}\r\n\r\nfunction getAllInventory(params: InventorySearchParams): Promise {\r\n return fetchSafe('/api/dealers-inventory/asset-manager', {\r\n method: 'POST', body: JSON.stringify({\r\n ...params, \r\n loadSummary: params.loadSummary && !appConfig.isSummaryRowHidden\r\n })\r\n });\r\n}\r\n\r\nfunction setTraded(inventoryPositionId: number, lockModifiedDate: Date, tradeDate: Date): Promise {\r\n const requestOptions = {\r\n method: 'put',\r\n body: JSON.stringify({ lockModifiedDate, tradeDate }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(`/api/dealers-inventory/set-traded/${inventoryPositionId}`, requestOptions);\r\n}\r\n\r\nfunction save(inventorySecurities: SaveInventoryPosition[], lockModifiedDate?: Date, companyId?: number): Promise {\r\n const requestOptions = {\r\n method: 'post',\r\n body: JSON.stringify({\r\n inventorySecurities,\r\n lockModifiedDate,\r\n companyId\r\n }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe(`/api/dealers-inventory`, requestOptions);\r\n}\r\n\r\nfunction exportInventoryList(params: InventorySearchParams): Promise<{ blob: Blob, name: string }> {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/dealers-inventory/export', requestOptions)\r\n}\r\n\r\nfunction sendEmail(params: { selectedDealerEmail: boolean, selectedBloombergEmail: boolean }): Promise {\r\n const requestOptions = {\r\n method: 'put',\r\n responseType: responseType.none,\r\n body: JSON.stringify({\r\n toDealerEmail: params.selectedDealerEmail,\r\n toBloombergEmail: params.selectedBloombergEmail\r\n }),\r\n };\r\n return fetchSafe('/api/dealers-inventory/send-list', requestOptions)\r\n}\r\n\r\nfunction uploadSecurities(\r\n file: File,\r\n progressCallback: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null): Promise {\r\n return fileUpload(\r\n '/api/dealers-inventory/ParseFile',\r\n null,\r\n file,\r\n progressCallback\r\n );\r\n}\r\n\r\nfunction getSecuritiesXlsxTemplate(): Promise<{ name: string, blob: Blob }> {\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/dealers-inventory/template', requestOptions);\r\n}\r\n\r\nfunction parseSecuritiesStirng(text: string): Promise {\r\n const url = '/api/dealers-inventory/clipboard';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ text })\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getActiveSecurityIdList(): Promise {\r\n return fetchSafe('/api/dealers-inventory/active-securities-ids');\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { urlBuilder } from './url.builder';\r\nimport {\r\n ManageEmailDetails,\r\n ManageEmailDetailsEventStatus,\r\n ManageEmailTypeOption\r\n} from '../types/management/ManageEmailDetails';\r\n\r\nconst getEmail = (\r\n requestParams: {\r\n from: string | null | undefined;\r\n to: string | null | undefined;\r\n page: number,\r\n pageSize: number,\r\n emailTypes: number[],\r\n emailEventTypes?: ManageEmailDetailsEventStatus[]\r\n }\r\n): Promise<{ result: ManageEmailDetails[]; totalRecordNumber: number; }> => {\r\n const url = urlBuilder('/api/email-trace', requestParams)\r\n return fetchSafe(url)\r\n}\r\n\r\nconst getEmailTypes = (\r\n): Promise => {\r\n return fetchSafe('/api/email-trace/types')\r\n}\r\n\r\nexport const manageEmailsService = {\r\n getEmail,\r\n getEmailTypes\r\n}\r\n","import { fetchSafe } from '../services/fetch.safe';\r\n\r\nconst clearRedisCache = () => {\r\n return fetchSafe('/clear-cache', { method: 'POST' })\r\n}\r\n\r\nexport const manageStorageService = {\r\n clearRedisCache\r\n}\r\n","import qs from \"query-string\";\r\nimport { responseType } from \"../constants\";\r\nimport { fetchSafe } from \"./fetch.safe\";\r\nimport { News } from \"../types/news/News\";\r\nimport { NewsQueryParams } from '../types/news/NewsQueryParams';\r\nimport { NewsAccessType } from \"../types/amr-pipeline/enums/NewsAccessType\";\r\n\r\ninterface NewsListQueryParams extends NewsQueryParams {\r\n count?: number;\r\n offset?: number;\r\n}\r\n\r\nfunction getNews(params: NewsListQueryParams): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news`, {\r\n method: \"POST\",\r\n body: JSON.stringify(params),\r\n });\r\n}\r\n\r\nfunction getNewsTotalCount(params?: NewsListQueryParams): Promise {\r\n const queryParams = qs.stringify(params || {});\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/count?${queryParams}`\r\n );\r\n}\r\n\r\nfunction getNewsDetails(referenceName: string, params: NewsQueryParams = {}): Promise {\r\n const queryString = qs.stringify(params);\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/${referenceName}?${queryString}`\r\n );\r\n}\r\n\r\nfunction createOrUpdateNews(newsData: News) {\r\n return fetchSafe(`${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news`, {\r\n method: \"PUT\",\r\n body: JSON.stringify(newsData),\r\n });\r\n}\r\n\r\nfunction deleteNews(referenceName: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/${referenceName}`,\r\n {\r\n method: \"DELETE\",\r\n responseType: responseType.none,\r\n }\r\n );\r\n}\r\n\r\nfunction logUserActivity(accessType: NewsAccessType) {\r\n const url = `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Accounts/log-user-activity/${accessType}`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction downloadDocument(newsReferenceName: string, documentReferenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/${newsReferenceName}/documents/${documentReferenceName}/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nfunction downloadDocuments(newsReferenceName: string) {\r\n const requestOptions = {\r\n responseType: responseType.file,\r\n };\r\n\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/news/${newsReferenceName}/documents/download`,\r\n requestOptions,\r\n );\r\n}\r\n\r\nexport const newsService = {\r\n getNews,\r\n getNewsTotalCount,\r\n getNewsDetails,\r\n createOrUpdateNews,\r\n deleteNews,\r\n logUserActivity,\r\n downloadDocument,\r\n downloadDocuments,\r\n};\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { PageConfig } from '../types/page-config/PageConfig';\r\nimport { PageConfigType } from '../types/page-config/PageConfigType';\r\nimport { UserConfigFilter } from '../types/user-config/UserConfigFilter';\r\n\r\nexport const pageConfigService = {\r\n getConfigs,\r\n saveConfig,\r\n getDefaultConfigs,\r\n saveFilters,\r\n}\r\n\r\nfunction getConfigs(): Promise {\r\n return fetchSafe(`/api/page-config`, undefined, true);\r\n}\r\n\r\nfunction getDefaultConfigs(pageConfigType: PageConfigType): Promise {\r\n return fetchSafe(`/api/page-config/${pageConfigType}/default`);\r\n}\r\n\r\nfunction saveConfig(pageConfigType: PageConfigType, pageConfig: PageConfig): Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(pageConfig)\r\n };\r\n return fetchSafe(`/api/page-config/${pageConfigType}`, requestOptions, true);\r\n}\r\n\r\nfunction saveFilters(page: PageConfigType, value: UserConfigFilter[]): Promise {\r\n const requestParams = { method: 'POST', body: JSON.stringify({ page, value }) }\r\n return fetchSafe('/api/page-config', requestParams)\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\n\r\nexport const portfolioService = {\r\n getPortfolios,\r\n getPortfolio,\r\n deletePortfolio,\r\n createPortfolio,\r\n createNewPortfolio,\r\n renamePortfolio,\r\n savePositions,\r\n saveSecurityPosition,\r\n exportPortfolios,\r\n exportPortfolio,\r\n updatePortfoliosAlert,\r\n portfolioExist\r\n};\r\n\r\nfunction portfolioExist() {\r\n return fetchSafe('/api/portfolios/has-portfolios');\r\n}\r\n\r\nfunction getPortfolios() {\r\n return fetchSafe('/api/portfolios');\r\n}\r\n\r\nfunction getPortfolio(portfolioReferenceName) {\r\n return fetchSafe(`/api/portfolios/${portfolioReferenceName}`);\r\n}\r\n\r\nfunction deletePortfolio(portfolioId) {\r\n let url = `/api/portfolios/${portfolioId}`;\r\n\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction createPortfolio(title) {\r\n let url = `/api/portfolios`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(title)\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction createNewPortfolio(title, positions, notifyUser = false) {\r\n return fetchSafe(\r\n '/api/portfolios',\r\n { method: 'POST', body: JSON.stringify({ title, positions, notifyUser }) }\r\n );\r\n}\r\n\r\nfunction renamePortfolio(portfolioId, title) {\r\n let url = `/api/portfolios/${portfolioId}`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(title),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction savePositions(portfolioId, positions) {\r\n let url = `/api/portfolios/${portfolioId}/positions`;\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(positions),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction saveSecurityPosition(portfolioId, position) {\r\n let url = `/api/portfolios/${portfolioId}/add`;\r\n\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(position),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction exportPortfolios(searchTerms){\r\n const url = '/api/portfolios/export';\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(searchTerms),\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction exportPortfolio(portfolioId) {\r\n return fetchSafe(\r\n `/api/portfolios/export/${portfolioId}`,\r\n { responseType: responseType.file }\r\n );\r\n}\r\n\r\nfunction updatePortfoliosAlert(data) {\r\n const url = '/api/portfolios/alerts';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}","import { HubConnectionBuilder, HubConnectionState, LogLevel } from '@microsoft/signalr';\r\nimport { store } from '../store';\r\nimport { constants } from '../constants';\r\nimport {\r\n dashboardPushUpdateTradingStats,\r\n dashboardPushUpdatePriceLevel,\r\n dashboardPushUpdateMostTradedTickers,\r\n dashboardPushBiggestMovers,\r\n subscriptionsActions,\r\n apiOperationActions,\r\n notificationActions,\r\n companiesActions\r\n} from '../actions';\r\nimport { dataPushReceived } from '../actions/push.bwic.actions';\r\nimport { settlementAgentAgeementPushActions } from '../actions/settlement-agent-agreement-push.actions';\r\nimport { jsonUtils } from \"../utils\";\r\nimport { accountService } from \"./account.service\";\r\nimport { user, refreshTokenController } from '../user';\r\nimport { logger } from '../logging/logger';\r\nimport { pushInvitationActions } from '../actions';\r\nimport { pushUserActions } from '../actions/push.user.actions.js';\r\nimport { inventoryActions } from '../actions/inventory.actions';\r\nimport { bdInventoryActions } from '../actions/bd-inventory.actions';\r\nimport { brokerDealerContactListActions } from '../actions/broker-dealer-contact-list.actions';\r\nimport { settlementAgentAgreementActions } from '../actions/settlement-agent-agreements.actions';\r\nimport { newBwicDealersActions } from '../actions/new-bwic-dealers.actions';\r\nimport { portfolioListActions } from '../actions/portfolio-list.actions';\r\nimport { notificationUtils } from '../utils/notifications.utils';\r\nimport { errorActions } from '../actions';\r\n\r\nclass PushNotificationService {\r\n lastReconnectError = null;\r\n\r\n build = async () => {\r\n this.conn = new HubConnectionBuilder()\r\n .withUrl(constants.notificationService, this.getAccessTokenFactory())\r\n .withAutomaticReconnect(this.getReconnectTimeoutPolicy())\r\n .configureLogging({ log: (level, message) => level >= LogLevel.Debug && this.log(message) })\r\n .build();\r\n\r\n this.conn.on('PushNotification', body => {\r\n this.log('Push: Toast Notification', body)\r\n store.dispatch(notificationActions.notificationPushReceived(jsonUtils.parse(body)));\r\n });\r\n\r\n this.conn.on('PushNotificationRead', data => {\r\n store.dispatch(notificationActions.notificationRead(data))\r\n });\r\n\r\n this.conn.on('PushNotificationReadAll', () => {\r\n store.dispatch(notificationActions.notificationReadAll())\r\n });\r\n\r\n this.conn.on('PushBwic', data => {\r\n store.dispatch(dataPushReceived(jsonUtils.parse(data)));\r\n });\r\n\r\n this.conn.on('PushCompany', data => {\r\n store.dispatch(companiesActions.companyPushDataReceived(jsonUtils.parse(data)));\r\n });\r\n\r\n this.conn.on('PushPortfolioAlert', data => {\r\n store.dispatch(portfolioListActions.updateSendAlertState(data));\r\n });\r\n\r\n this.conn.on('PushTradingStats', response => {\r\n store.dispatch(dashboardPushUpdateTradingStats(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushPriceLevel', response => {\r\n store.dispatch(dashboardPushUpdatePriceLevel(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushMostTradedTickers', response => {\r\n store.dispatch(dashboardPushUpdateMostTradedTickers(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushBiggestMovers', response => {\r\n this.log('PushBiggestMovers push data received');\r\n store.dispatch(dashboardPushBiggestMovers(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushInvitationSent', response => {\r\n store.dispatch(pushInvitationActions.dataPushReceived(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushUser', response => {\r\n this.log('User push data received');\r\n store.dispatch(pushUserActions.user(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushBidAsDealerAgreement', response => {\r\n this.log('Bid as dealer agreement push data received');\r\n store.dispatch(settlementAgentAgeementPushActions.settlementAgentAgreementPushReceived(jsonUtils.parse(response)));\r\n store.dispatch(settlementAgentAgreementActions.pushDataReceived(jsonUtils.parse(response)));\r\n store.dispatch(newBwicDealersActions.sellerBidAsDealerAgreementsPushDataReceived(jsonUtils.parse(response)));\r\n });\r\n\r\n this.conn.on('PushSubscription', response => {\r\n this.log('Subscription push data received');\r\n store.dispatch(subscriptionsActions.subscriptionPushReceived(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushContact', response => {\r\n this.log('Dealers company contacts received');\r\n store.dispatch(brokerDealerContactListActions.pushUpdateList(jsonUtils.parse(response)))\r\n });\r\n\r\n this.conn.on('PushOperationResult', body => {\r\n this.log('Push operation result received');\r\n store.dispatch(apiOperationActions.result(jsonUtils.parse(body)));\r\n });\r\n\r\n this.conn.on('PushInventorySecurities', body => {\r\n this.log('Inventory security push data received');\r\n const data = jsonUtils.parse(body);\r\n store.dispatch(bdInventoryActions.pushInventory(data));\r\n store.dispatch(inventoryActions.pushInventory(data.updatedInventorySecurities, data.lockModifiedDate));\r\n });\r\n\r\n this.conn.onreconnecting(error => store.dispatch(notificationActions.notificationServiceReconnecting(error)));\r\n\r\n this.conn.onreconnected(() => {\r\n this.lastReconnectError = null;\r\n store.dispatch(notificationActions.notificationServiceReconnected())\r\n });\r\n\r\n this.conn.onclose((e) => {\r\n store.dispatch(notificationActions.notificationServiceDisconnected());\r\n\r\n const statusCode = this.lastReconnectError && this.lastReconnectError.statusCode;\r\n this.log('Connection closed', statusCode);\r\n\r\n if (statusCode === 401) {\r\n accountService.logout();\r\n } else if (this.lastReconnectError) {\r\n window.location.reload(true);\r\n } else if(e) {\r\n this.start();\r\n }\r\n });\r\n };\r\n\r\n start = async (attempt = 1) => {\r\n if (\r\n this.conn.state !== HubConnectionState.Disconnected &&\r\n this.conn.state !== HubConnectionState.Disconnecting) {\r\n store.dispatch(notificationActions.notificationServiceConnected());\r\n return;\r\n }\r\n\r\n try {\r\n await this.conn.start();\r\n store.dispatch(notificationActions.notificationServiceConnected());\r\n } catch (e) {\r\n if (user.isAuthenticated()) {\r\n\r\n const isUnauthorized = e && e.toString().includes('401');\r\n\r\n if (attempt < constants.pushNotificationsServiceRestartAttemptsLimit) {\r\n const timeout = constants.pushNotificationsServiceRestartTimeout / 1000;\r\n this.log(`Failed to start Push Notification Service. Next attempt in ${timeout} seconds.`);\r\n\r\n setTimeout(() => this.start(++attempt), constants.pushNotificationsServiceRestartTimeout)\r\n } else if (isUnauthorized) {\r\n this.log('Push Notification Service could not be started. Logging out.');\r\n accountService.logout();\r\n } else {\r\n this.log('Push Notification Service could not be started. Reload page.');\r\n window.location.reload(true);\r\n }\r\n }\r\n\r\n store.dispatch(notificationActions.notificationServiceDisconnected());\r\n }\r\n };\r\n\r\n stop = async () => {\r\n try {\r\n if (this.conn.state !== HubConnectionState.Disconnected) {\r\n this.lastReconnectError = null;\r\n await this.conn.stop();\r\n }\r\n } catch (e) {\r\n logger.exception('SignalR: Failed to Stop Push Notification Service.');\r\n }\r\n }\r\n\r\n getAccessTokenFactory = () => ({\r\n accessTokenFactory: async () => {\r\n if (user.isAuthenticated()) {\r\n return await refreshTokenController.ensureTokenUpToDate(user.token(), user.refreshToken().refreshToken);\r\n } else {\r\n accountService.logout();\r\n return null;\r\n }\r\n }\r\n })\r\n\r\n getReconnectTimeoutPolicy = () => ({\r\n nextRetryDelayInMilliseconds: (retryContext) => {\r\n this.lastReconnectError = retryContext.retryReason;\r\n\r\n if (!user.isAuthenticated()) {\r\n return null;\r\n }\r\n\r\n switch (retryContext.previousRetryCount) {\r\n case 0: return 0;\r\n case 1: return 2000;\r\n case 2: return 10000;\r\n case 3: return 30000;\r\n default: return null;\r\n }\r\n }\r\n })\r\n\r\n send = (methodName, param) => {\r\n if (!notificationUtils.isConnected(this.conn.state)) {\r\n return Promise.reject();\r\n }\r\n if (param === undefined) {\r\n return this.conn.invoke(methodName)\r\n }\r\n return this.conn.invoke(methodName, param)\r\n };\r\n\r\n sendNotification = async (methodName, subj, message) => {\r\n if (!notificationUtils.isConnected(this.conn.state)) {\r\n return Promise.reject();\r\n }\r\n\r\n try {\r\n await this.conn.invoke(methodName, subj, message);\r\n } catch (error) {\r\n this.log(error);\r\n store.dispatch(errorActions.unexpectedError(error));\r\n }\r\n }\r\n\r\n log = (message, payload) => logger.trace('SignalR: ' + message, payload);\r\n\r\n isConnected = () => this.conn.state === HubConnectionState.Connected\r\n}\r\n\r\nexport const pushNotificationService = new PushNotificationService();\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\n\r\nexport const pxTalkService = {\r\n normalize,\r\n save,\r\n bulkSave,\r\n deletePxTalk,\r\n fetchPxTalks\r\n};\r\n\r\nfunction normalize(talk, levelType) {\r\n return fetchSafe(`/api/bwics/normalize/${talk}/${levelType}`);\r\n}\r\n\r\nfunction save(bwicReferenceName, positionId, savePriceTalks, priceTalkLock, deletedPriceTalks) {\r\n const url = `/api/price-talk/save-position`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n bwicReferenceName,\r\n positionId,\r\n savePriceTalks,\r\n priceTalkLock,\r\n deletedPriceTalks\r\n }),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction bulkSave(bwicReferenceName, priceTalks) {\r\n const url = `/api/price-talk/save-broker-dealer`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n bwicReferenceName,\r\n priceTalks\r\n }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction deletePxTalk(bwicReferenceName, positionId, companyId) {\r\n const url = `/api/price-talk/${bwicReferenceName}/${positionId}/${companyId}`;\r\n const requestOptions = {\r\n method: 'DELETE',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction fetchPxTalks(bwicReferenceName, positionId) {\r\n const url = `/api/price-talk/${bwicReferenceName}/${positionId}`;\r\n return fetchSafe(url, undefined, true);\r\n}\r\n","import { Conference } from '../types/marketing/Conference';\r\nimport { Releases } from '../types/marketing/Release';\r\nimport { Webinar } from '../types/marketing/Webinar';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nasync function fetchReleases(): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_MARKETING_ENDPOINT}/api/releases`);\r\n}\r\n\r\nfunction fetchWebinar(): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_MARKETING_ENDPOINT}/api/webinar`);\r\n}\r\n\r\nfunction fetchConferences(): Promise {\r\n return fetchSafe(`${process.env.REACT_APP_MARKETING_ENDPOINT}/api/conferences`);\r\n}\r\n\r\nexport const releaseService = {\r\n fetchReleases,\r\n fetchWebinar,\r\n fetchConferences,\r\n};\r\n","import { Location } from 'history';\r\nimport { history } from '../history';\r\nimport { logger } from '../logging/logger';\r\nimport { routes } from '../constants';\r\nimport { matchPath } from 'react-router';\r\n\r\nclass RequestCancellationController {\r\n readonly _abortControllers: Map = new Map();\r\n readonly _unionRoutes: string[][] = [];\r\n\r\n _previousLocation?: Location;\r\n\r\n constructor(unionRoutes: string[][] = []) {\r\n this._previousLocation = history.location;\r\n this._unionRoutes = unionRoutes;\r\n this.start();\r\n }\r\n\r\n start = (): void => {\r\n history.listen(nextLocation => {\r\n if (\r\n this._previousLocation != null &&\r\n this._previousLocation.pathname !== nextLocation.pathname\r\n ) {\r\n const unionRoutes = this._unionRoutes.find(u =>\r\n u.some(path =>\r\n matchPath(this._previousLocation?.pathname ? this._previousLocation?.pathname : '', {\r\n path,\r\n exact: true,\r\n }),\r\n ),\r\n );\r\n if (unionRoutes) {\r\n const isNextLocationInUnionRouteList = unionRoutes.some(path =>\r\n matchPath(nextLocation.pathname, { path, exact: true }),\r\n );\r\n\r\n if (!isNextLocationInUnionRouteList) {\r\n unionRoutes.forEach(r => this.abort(r));\r\n }\r\n } else {\r\n this.abort(this._previousLocation.pathname);\r\n }\r\n }\r\n this._previousLocation = nextLocation;\r\n });\r\n };\r\n\r\n signal = (customKey?: string): AbortSignal => {\r\n const key: string = customKey ?? history.location.pathname;\r\n if (!this._abortControllers.has(key)) {\r\n this._abortControllers.set(key, new AbortController());\r\n }\r\n\r\n return (this._abortControllers.get(key) as AbortController).signal;\r\n }\r\n\r\n abort = (key: string): void => {\r\n const controller = this._abortControllers.get(key);\r\n if (controller) {\r\n controller.abort();\r\n this._abortControllers.delete(key);\r\n }\r\n }\r\n\r\n reset = (key: string): void => {\r\n this._abortControllers.delete(key);\r\n }\r\n\r\n log = (message: string, payload?: any): void => logger.trace('Request Cancellation: ' + message, payload)\r\n}\r\n\r\nconst unionRoutes = [\r\n [routes.manageCompanies, routes.manageCompanyMembers],\r\n [routes.transactionDetail, routes.transactionDetail],\r\n [routes.manageCloManager, routes.manageCloManager],\r\n [routes.deals],\r\n [routes.deals],\r\n];\r\n\r\nexport const requestCancelationController = new RequestCancellationController(unionRoutes);\r\n","import { fetchSafe } from \"./fetch.safe\";\r\nimport { responseType } from '../constants';\r\nimport { UpdateSettlementAgentAgreementStatus } from '../types/bid-as-dealer/UpdateSettlementAgentAgreementStatus';\r\nimport { SettlementAgentClientAgreement } from '../types/bid-as-dealer/SettlementAgentClientAgreement';\r\nimport { SettlementAgentAgreement } from \"../types/bid-as-dealer/SettlementAgentAgreement\";\r\nimport { CreateSettlementAgreementRequest } from '../types/bid-as-dealer/CreateBidAsDealerAgreementRequest';\r\n\r\nfunction getAgreementForSettlementAgent():Promise {\r\n return fetchSafe('/api/agreements');\r\n}\r\n\r\nfunction getAgreements(): Promise {\r\n return fetchSafe('/api/agreements');\r\n}\r\n\r\nfunction sendRequest(params?: CreateSettlementAgreementRequest):Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/agreements', requestOptions);\r\n}\r\n\r\nfunction updateAgreement(data: UpdateSettlementAgentAgreementStatus):Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(data),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/agreements', requestOptions);\r\n}\r\n\r\nfunction fetchPendingAgreementCount():Promise {\r\n return fetchSafe('/api/agreements/pending-count', undefined, true)\r\n}\r\n\r\nexport const settlementAgentAgreementService = {\r\n getAgreementForSettlementAgent,\r\n getAgreements,\r\n sendRequest,\r\n updateAgreement,\r\n fetchPendingAgreementCount\r\n};\r\n","import { SettlementAccount } from '../types/settlement/SettlementAccount';\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { SaveSettlementAccount } from '../types/settlement/SaveSettlementAccount';\r\nimport { SaveTradeAllocationItem, TradeAllocationItem } from '../types/trade-allocation/TradeAllocationItem';\r\nimport { TradeSettlementStatus } from '../types/settlement/TradeSettlementStatus';\r\nimport { TradeSide } from '../types/trades/TradeSide';\r\n\r\nexport const settlementService = {\r\n getSettlementAccounts,\r\n getTradeAllocation,\r\n saveSettlementAccount,\r\n deleteSettlementAccount,\r\n saveTradeAllocation\r\n}\r\n\r\nfunction getSettlementAccounts(): Promise {\r\n return fetchSafe('/api/settlement-accounts');\r\n}\r\n\r\nfunction getTradeAllocation(tradeId: string): Promise {\r\n return fetchSafe(`/api/trading/${tradeId}/allocation`);\r\n}\r\n\r\nfunction saveSettlementAccount(settlementAccount: SaveSettlementAccount): Promise {\r\n return fetchSafe('/api/settlement-accounts', {\r\n method: 'POST',\r\n body: JSON.stringify(settlementAccount),\r\n })\r\n}\r\n\r\nfunction deleteSettlementAccount(accountId: number): Promise {\r\n return fetchSafe(`/api/settlement-accounts/${accountId}`, { method: 'DELETE' })\r\n}\r\n\r\ntype TSaveAllocationResult = {\r\n referenceName: string;\r\n isBuyerAllocationManual: boolean;\r\n isSellerAllocationManual: boolean;\r\n allocationLock: Date;\r\n buyerSettlementStatus: TradeSettlementStatus;\r\n sellerSettlementStatus: TradeSettlementStatus;\r\n items: TradeAllocationItem[];\r\n};\r\n\r\nfunction saveTradeAllocation(\r\n tradeId: string,\r\n allocationLock: Date,\r\n items: SaveTradeAllocationItem[],\r\n side: TradeSide): Promise {\r\n return fetchSafe(`/api/trading/${tradeId}/allocation`, {\r\n method: 'POST',\r\n body: JSON.stringify({ allocationLock, items, side })\r\n });\r\n}\r\n","import { TradeAllocationTemplate } from \"../types/trade-allocation/template/TradeAllocationTemplate\";\r\nimport { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { SaveTradeAllocationTemplate } from \"../types/trade-allocation/template/SaveTradeAllocationTemplate\";\r\n\r\nexport const tradeAllocationTemplateService = {\r\n getTemplates,\r\n setTemplateActive,\r\n saveTemplate,\r\n deleteTemplate\r\n};\r\n\r\nfunction getTemplates(): Promise {\r\n return fetchSafe('/api/allocation-templates');\r\n}\r\n\r\nfunction setTemplateActive(templateId: number, active: boolean, lock: Date): Promise {\r\n return fetchSafe('/api/allocation-templates', {\r\n method: 'PATCH',\r\n body: JSON.stringify({ id: templateId, active, lock }),\r\n responseType: responseType.json\r\n }, true);\r\n}\r\n\r\nfunction saveTemplate(template: SaveTradeAllocationTemplate): Promise {\r\n return fetchSafe('/api/allocation-templates', {\r\n method: 'POST',\r\n body: JSON.stringify(template),\r\n responseType: responseType.json\r\n }, true);\r\n}\r\n\r\nfunction deleteTemplate(templateId: number): Promise {\r\n return fetchSafe(`/api/allocation-templates/${templateId}`, { method: 'DELETE' }, true);\r\n}\r\n","import { fetchSafe } from \"./fetch.safe\";\r\nimport { responseType } from \"../constants\";\r\n\r\nexport const tradeReportingService = {\r\n search,\r\n exportSearchResult,\r\n setReportedFalg,\r\n getResolveTrades,\r\n setResolveTrades,\r\n};\r\n\r\nfunction search({ isReported, excludeOnBehalf, dateFrom, dateTo, tradeStatuses, settlementStatuses, sortingField, sortDirection, page, pageSize }) {\r\n const url = '/api/trades/search';\r\n const requestBody = JSON.stringify({\r\n dateFrom,\r\n dateTo,\r\n isReported: isReported == null ? undefined : isReported,\r\n excludeOnBehalf,\r\n tradeStatuses,\r\n settlementStatuses,\r\n page,\r\n pageSize,\r\n orderByColumn: sortingField,\r\n sortOrder: sortDirection,\r\n });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: requestBody,\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction exportSearchResult(isReported, dateFrom, dateTo, excludeOnBehalf, tradeStatuses, settlementStatuses, sortingField, sortDirection) {\r\n const url = '/api/trades/export';\r\n const requestBody = JSON.stringify({\r\n dateFrom,\r\n dateTo,\r\n isReported: isReported == null ? undefined : isReported.toString(),\r\n excludeOnBehalf,\r\n tradeStatuses,\r\n settlementStatuses,\r\n orderByColumn: sortingField,\r\n sortOrder: sortDirection,\r\n });\r\n const requestOptions = {\r\n method: 'POST',\r\n body: requestBody,\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\n\r\nfunction setReportedFalg(referenceId, isReported) {\r\n const url = '/api/trades';\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ referenceId, isReported }),\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getResolveTrades() {\r\n return fetchSafe('/api/trading/trades/resolve')\r\n}\r\n\r\nfunction setResolveTrades(references) {\r\n return fetchSafe('/api/trading/trades/resolve', {method: 'POST', body: JSON.stringify(references)})\r\n}\r\n","import isNil from 'lodash/isNil';\r\n\r\nexport function urlBuilder(baseUrl, queryArgs) {\r\n const query = Object\r\n .keys(queryArgs)\r\n .filter(key => !isNil(queryArgs[key]) || (!!queryArgs[key] && (!Array.isArray(queryArgs[key]) || queryArgs[key].length)))\r\n .map(key => Array.isArray(queryArgs[key]) ? addArray(key, queryArgs[key]) : addSingle(key, queryArgs[key]))\r\n .flat()\r\n .join('&');\r\n\r\n if (query) {\r\n return `${baseUrl}?${query}`;\r\n }\r\n\r\n return baseUrl;\r\n}\r\n\r\nfunction addArray(key, values) {\r\n return values.map(value => addSingle(key, value));\r\n}\r\n\r\nfunction addSingle(key, value) {\r\n return `${key}=${encodeURIComponent(value)}`\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { responseType } from '../constants';\r\nimport { urlBuilder } from \"./url.builder\";\r\n\r\nexport const usersService = {\r\n getUsers,\r\n getUser,\r\n getUserCreationRequests,\r\n getActiveBrokerDealers,\r\n enableUser,\r\n disableUser,\r\n resendInvite,\r\n resetPassword,\r\n saveUser,\r\n exportUsers,\r\n updateTfaEnabledState,\r\n getUserLoginHistory,\r\n approveUserRequest,\r\n blockUserRequest,\r\n deleteUser,\r\n deleteUserRequest,\r\n setTempPassword,\r\n gePendingUserRequestCount,\r\n unblockUserRequest\r\n};\r\n\r\nfunction getUsers() {\r\n return fetchSafe('/api/users');\r\n}\r\n// Endpoint for Administrators only\r\nfunction getUser(userId) {\r\n return fetchSafe(`/api/users/${userId}`);\r\n}\r\n\r\nfunction getUserCreationRequests() {\r\n return fetchSafe('/api/manage/user-creation-requests');\r\n}\r\n\r\nfunction getActiveBrokerDealers() {\r\n return fetchSafe('/api/companies/broker-dealers/users');\r\n}\r\n\r\nfunction enableUser(userId) {\r\n const url = `/api/users/${userId}/enable`;\r\n const requestOptions = {\r\n method: 'POST'\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction disableUser(userId, blockReason) {\r\n const url = `/api/users/${userId}/disable`;\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none,\r\n body: JSON.stringify({ blockReason })\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction resendInvite(userId) {\r\n const url = `/api/users/${userId}/send-invite`;\r\n const requestOptions = {\r\n method: 'POST'\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction resetPassword(userId) {\r\n const url = `/api/users/${userId}/reset-password`;\r\n const requestOptions = {\r\n method: 'POST',\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction saveUser(member, sendInvite = false) {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ ...member, sendInvite })\r\n };\r\n\r\n return fetchSafe('/api/users', requestOptions);\r\n}\r\n\r\nfunction exportUsers(filterOptions) {\r\n const exportUrl = urlBuilder('/api/users/export', filterOptions);\r\n\r\n const requestOptions = {\r\n responseType: responseType.file\r\n };\r\n\r\n return fetchSafe(exportUrl, requestOptions);\r\n}\r\n\r\nfunction updateTfaEnabledState(userId, enabled) {\r\n const url = `/api/users/${userId}/tfa-enable`;\r\n const requestOptions = {\r\n method: 'POST',\r\n body: enabled,\r\n responseType: responseType.none\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction getUserLoginHistory(userId) {\r\n return fetchSafe(`/api/users/history/${userId}`)\r\n}\r\n\r\nfunction gePendingUserRequestCount() {\r\n return fetchSafe('/api/manage/user-creation-requests/unapproved-count')\r\n}\r\n\r\nfunction approveUserRequest(id, concurrencyStamp) {\r\n const url = `/api/manage/user-creation-requests/approve`;\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify({ id, concurrencyStamp }),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction blockUserRequest(id, concurrencyStamp, blockReason) {\r\n const url = `/api/manage/user-creation-requests/block`;\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify({ id, concurrencyStamp, blockReason }),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n\r\n}\r\n\r\nfunction deleteUserRequest(userRequestId) {\r\n const url = `/api/manage/user-creation-requests/${userRequestId}`;\r\n return fetchSafe(url, { method: 'delete' });\r\n}\r\n\r\nfunction deleteUser(userId) {\r\n return fetchSafe(`/api/users/${userId}`, { method: 'delete' });\r\n}\r\n\r\nfunction unblockUserRequest(id, concurrencyStamp) {\r\n const url = `/api/manage/user-creation-requests/unblock`;\r\n const requestOptions = {\r\n method: 'patch',\r\n body: JSON.stringify({ id, concurrencyStamp }),\r\n responseType: responseType.json\r\n };\r\n\r\n return fetchSafe(url, requestOptions);\r\n}\r\n\r\nfunction setTempPassword(userId) {\r\n return fetchSafe(`/api/users/${userId}/set-temp-password`, { method: 'POST' })\r\n}\r\n","import { pushNotificationService } from '../services';\r\nimport { call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { errorActions, notificationActions } from '../actions';\r\nimport { accountActions } from '../constants';\r\nimport { user } from '../user';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { Notification } from '../types/notifications/Notification';\r\nimport { NotificationType } from '../types/notifications/NotificationType';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { apiUtils } from '../utils/api.utils';\r\nimport { NotificationAttributes } from '../types/notifications/NotificationAttributes';\r\n\r\nfunction* watchNotificationServiceConnect() {\r\n yield call(pushNotificationService.start);\r\n}\r\n\r\nfunction* watchAuthLoginSuccess() {\r\n yield put(notificationActions.notificationServiceConnect());\r\n}\r\n\r\nfunction* watchAuthLogout() {\r\n yield call(pushNotificationService.stop);\r\n yield put(notificationActions.notificationReset())\r\n}\r\n\r\nfunction* watchNotificationGetList() {\r\n const notificationAttributes: NotificationAttributes = yield select((state: AppState) => state.notification.notificationAttributes);\r\n const notifications: Notification[] = yield select(\r\n (state: AppState) =>\r\n state.notification.notificationList\r\n .filter(n => notificationAttributes[n.referenceName]?.displayInNotificationList)\r\n );\r\n\r\n let lastNotificationReferenceName = null;\r\n\r\n if (notifications.length) {\r\n lastNotificationReferenceName = notifications[notifications.length - 1].referenceName\r\n }\r\n\r\n try {\r\n const newNotificationList: Notification[] = yield pushNotificationService.send('GetNotificationsBefore', lastNotificationReferenceName);\r\n const notificationAttributes = apiUtils.normalize(newNotificationList, n => n.referenceName, () => ({\r\n type: NotificationType.PushNotification,\r\n toastVisible: false,\r\n displayInNotificationList: true\r\n }));\r\n yield put(notificationActions.appendNotifications(newNotificationList, notificationAttributes))\r\n } catch (err) {\r\n yield put(notificationActions.notificationGetListFailure());\r\n yield put(errorActions.unexpectedError(err));\r\n }\r\n}\r\n\r\nfunction* watchNotificationsGetCountUnread() {\r\n try {\r\n const countUnread: number = yield pushNotificationService.send('CountUnreadNotifications');\r\n yield put(notificationActions.notificationsSetCountUnread(countUnread))\r\n } catch (err) {\r\n yield put(notificationActions.notificationsGetCountUnreadFailure());\r\n }\r\n}\r\n\r\nfunction* watchNotificationSetReadRequest(action: ActionType<{ referenceName: string }>) {\r\n const { referenceName } = action.payload;\r\n\r\n try {\r\n yield pushNotificationService.send('SetNotificationRead', referenceName);\r\n yield put(notificationActions.notificationSetReadSuccess(referenceName));\r\n yield watchNotificationsGetCountUnread();\r\n } catch (err) {\r\n yield put(notificationActions.notificationSetReadFailure(referenceName));\r\n yield put(errorActions.unexpectedError(err));\r\n }\r\n}\r\n\r\nfunction* watchNotificationsReadAllRequest() {\r\n try {\r\n yield pushNotificationService.send('SetAllNotificationsRead');\r\n yield put(notificationActions.notificationsReadAllSuccess());\r\n } catch (err) {\r\n yield put(notificationActions.notificationsReadAllFailure());\r\n yield put(errorActions.unexpectedError(err));\r\n }\r\n}\r\n\r\nexport function* watchNotifications() {\r\n yield call(pushNotificationService.build);\r\n yield takeEvery(getType(notificationActions.notificationServiceConnect), watchNotificationServiceConnect);\r\n yield takeEvery(accountActions.LOGIN_SUCCESS, watchAuthLoginSuccess);\r\n yield takeEvery(accountActions.LOGOUT, watchAuthLogout);\r\n if (user.isAuthenticated()) {\r\n yield put(notificationActions.notificationServiceConnect());\r\n }\r\n yield takeLatest(notificationActions.notificationGetList, watchNotificationGetList);\r\n yield takeLatest(notificationActions.notificationsGetCountUnread, watchNotificationsGetCountUnread);\r\n yield takeLatest(notificationActions.notificationSetReadRequest, watchNotificationSetReadRequest);\r\n yield takeLatest(notificationActions.notificationsReadAllRequest, watchNotificationsReadAllRequest)\r\n}\r\n","import { takeLatest, call, put } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport {\r\n onBoardingTooltipSetCountRequest,\r\n onBoardingTooltipSetCountSuccess,\r\n onBoardingTooltipSetCountFailure,\r\n onBoardingReset\r\n} from '../actions';\r\nimport { accountActions } from '../constants';\r\nimport { onBoardingTooltipService } from '../services';\r\n\r\nfunction* watchOnBoardingTooltipSetCount(action) {\r\n try {\r\n const { data } = action.payload;\r\n yield call(onBoardingTooltipService.setCount, data);\r\n yield put(onBoardingTooltipSetCountSuccess())\r\n } catch (e) {\r\n yield put(onBoardingTooltipSetCountFailure())\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(onBoardingReset())\r\n}\r\n\r\nexport function* watchOnBoardingTooltip() {\r\n yield takeLatest(getType(onBoardingTooltipSetCountRequest), watchOnBoardingTooltipSetCount);\r\n yield takeLatest(accountActions.LOGOUT, watchLogout)\r\n}\r\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { securityDetailsActions } from '../actions/security.details.actions';\r\nimport { ratingService } from '../services';\r\n\r\nfunction* watchSecurityDetailsInit(action: ActionType): Generator {\r\n try {\r\n const { security, fetchAgencyRatings } = action.payload;\r\n const [ratings, mappings] = yield all([\r\n fetchAgencyRatings && call(ratingService.getSecurityRatings, security.securityId),\r\n call(ratingService.getRatingMappings),\r\n ]);\r\n\r\n yield put(securityDetailsActions.securityDetailsInitSuccess(ratings, mappings));\r\n } catch (e) {\r\n yield put(securityDetailsActions.securityDetailsInitFailure(e));\r\n }\r\n}\r\n\r\nexport function* watchSecurityDetails() {\r\n yield takeLatest(getType(securityDetailsActions.securityDetailsInitRequest), watchSecurityDetailsInit);\r\n}\r\n","import { all, call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { saveAs } from 'file-saver';\r\nimport moment from 'moment';\r\nimport { apiOperationActions, errorActions, searchSecuritiesActions, sellerBuysideActions } from '../actions';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { SellerBuysideFilterState, SellerBuysideState } from '../types/state/SellerBuysideState';\r\nimport { getDateRangeOption, getSearchDateRange, isRequesting, jsonUtils, numericUtils } from '../utils';\r\nimport { PaginationResult } from '../types/PaginationResult';\r\nimport { SellerBuysideSearchResult } from '../types/bid-as-dealer/SellerBuysideSearchResult';\r\nimport { bidAsDealerRequestService, biddingService } from '../services';\r\nimport { FilterOption } from '../types/filters/FilterOption';\r\nimport { SubmitBidRequestPayloadType } from '../actions';\r\nimport { accountActions, bwicDateFilterOptions, constants, pushDataActions } from '../constants';\r\nimport { BwicStatus } from '../types/enums/BwicStatus';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { queryStringSerializer } from '../utils/filtering';\r\nimport { Rating } from '../types/enums/Rating';\r\nimport {\r\n dateFrom,\r\n dateTo,\r\n identifiers,\r\n multipleCurrencies,\r\n ratings,\r\n statuses,\r\n types,\r\n sizeFrom,\r\n sizeTo,\r\n submittedBids,\r\n sorting,\r\n} from '../utils/filtering/serializers/serializer.definitions';\r\nimport { BidRequestStatus } from '../types/bid-as-dealer/BidRequestStatus';\r\nimport { SellerBuySideFilterOptions } from '../types/bid-as-dealer/SellerBuysideFilterOptions';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { QueryStringArgumentSerializer } from '../utils/filtering/serializers/QueryStringArgumentSerializer';\r\nimport { BwicType } from '../types/enums/BwicType';\r\nimport { ApiOperation } from '../types/api-operation/ApiOperation';\r\nimport { ApiOperationType } from '../types/api-operation/ApiOperationType';\r\nimport { keys } from 'lodash';\r\nimport { TApiCallResponse } from '../types/api-operation/ApiOperationResult';\r\nimport { BidConflict } from '../types/bidding/BidConflict';\r\nimport { SubmitBidAttributesModel } from '../types/bidding/SubmitBidAttributesModel';\r\nimport { BwicMonitorSortByOptions } from '../types/state/AllBwicsState';\r\nimport { user } from '../user';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { DeserializeCommandHandler, IDeserializeCommand } from '../utils/filtering/serializers/DeserializeCommand';\r\nimport { SellerBuysideSearchResultSummary } from '../types/bid-as-dealer/SellerBuysideSearchResultSummary';\r\nimport { history } from '../history';\r\n\r\nfunction* watchInit() {\r\n const { sellerBuyside } = yield select((state: AppState) => state);\r\n const { lastAppliedFilter } = sellerBuyside;\r\n yield put(sellerBuysideActions.initRequestStatus(RequestState.request));\r\n try {\r\n const queryString = history.location.search;\r\n const bidAsDealerRequestExist: boolean = yield call(bidAsDealerRequestService.bidAsDealerRequestExist);\r\n yield put(sellerBuysideActions.initRequestStatus(RequestState.success, bidAsDealerRequestExist));\r\n\r\n yield put(sellerBuysideActions.advancedFiltersBlocked(false));\r\n\r\n if (!user.hasFeatures(SubscriptionFeature.BwicMonitorAvancedFilters)) {\r\n yield put(sellerBuysideActions.dateFilterChange(bwicDateFilterOptions.unspecified));\r\n }\r\n if (queryString) {\r\n yield setFilterFromSearchString(queryString)\r\n }\r\n if (!lastAppliedFilter) {\r\n yield put(sellerBuysideActions.filterApply(true))\r\n }\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(sellerBuysideActions.initRequestStatus(RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* setFilterFromSearchString(queryString: string) {\r\n const { sellerBuyside } = yield select((state: AppState) => state);\r\n let identifierOptions: string[] = [];\r\n let from: Date | undefined | null = undefined;\r\n let to: Date | undefined | null = undefined;\r\n let statusOptions: BwicStatus[] = [];\r\n let currencyOptions: Currency[] = [];\r\n let ratingsOptions: Rating[] = [];\r\n let typesOptions: BwicType[] = [];\r\n let sizeMin: string | undefined = undefined;\r\n let sizeMax: string | undefined = undefined;\r\n let submittedBidsOption: boolean | null = null;\r\n let sortBy: BwicMonitorSortByOptions | undefined = undefined;\r\n\r\n const serializers: QueryStringArgumentSerializer[] = [\r\n identifiers((parsedIdentifiers: string[]) => identifierOptions = parsedIdentifiers),\r\n dateFrom(parsedDate => from = parsedDate),\r\n dateTo(parsedDate => to = parsedDate),\r\n statuses(parsedStatuses => statusOptions = parsedStatuses.map(s => Number(s))),\r\n ratings(parsedRatings => ratingsOptions = parsedRatings.map(r => Rating[r as keyof typeof Rating])),\r\n multipleCurrencies((parsedCurrency) => currencyOptions = parsedCurrency.map(c => Currency[c as keyof typeof Currency])),\r\n types(parsedTypes => typesOptions = parsedTypes.map(t => BwicType[t as keyof typeof BwicType])),\r\n sizeFrom(min => sizeMin = min),\r\n sizeTo(max => sizeMax = max),\r\n submittedBids(submittedBidsValue => submittedBidsOption = Boolean(submittedBidsValue)),\r\n sorting(sortByValue => sortBy = sortByValue as BwicMonitorSortByOptions),\r\n ];\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n\r\n yield all(sellerBuyside.filter.bwicStatuses.map((s: FilterOption) => put(sellerBuysideActions.bwicStatusFilterChange(Number(s.value), false))));\r\n yield all(identifierOptions.map((item: string) => put(searchSecuritiesActions.addSearchItem(item))));\r\n\r\n if (currencyOptions.length) {\r\n yield put(sellerBuysideActions.storeCurrencySelectedStatus(false));\r\n yield all(currencyOptions.map(c => put(sellerBuysideActions.currencyFilterChange(c, true))));\r\n }\r\n\r\n yield all(statusOptions.map(s => put(sellerBuysideActions.bwicStatusFilterChange(s, true))));\r\n yield all(ratingsOptions.map(r => put(sellerBuysideActions.ratingFilterChange(r, true))));\r\n yield all(typesOptions.map(t => put(sellerBuysideActions.typeFilterChange(t, true))));\r\n\r\n if ((sizeMin && !sizeMax) || (!sizeMin && sizeMax) || (sizeMin && sizeMax && Number(sizeMin) <= Number(sizeMax))) {\r\n yield put(sellerBuysideActions.sizeFilterChange({ min: sizeMin ?? '', max: sizeMax ?? '' }));\r\n }\r\n yield put(sellerBuysideActions.submittedBidsFilterChange(submittedBidsOption))\r\n\r\n const dateCommand: IDeserializeCommand = {\r\n canExecute: () => user.hasFeatures(SubscriptionFeature.BwicMonitorAvancedFilters),\r\n shouldExecute: () => !!from || !!to,\r\n execute: function* () {\r\n const { option, customRange } = getDateRangeOption(from, to);\r\n yield put(sellerBuysideActions.dateFilterChange(option));\r\n\r\n if (option.key === bwicDateFilterOptions.custom.key) {\r\n yield put(sellerBuysideActions.customDateFilterChange(customRange));\r\n }\r\n\r\n }\r\n };\r\n const sortByCommand: IDeserializeCommand = {\r\n canExecute: () => user.hasFeatures(SubscriptionFeature.BwicMonitorSorting),\r\n shouldExecute: () => !!sortBy,\r\n execute: function* () {\r\n yield put(sellerBuysideActions.sortFieldChanged(sortBy!));\r\n }\r\n }\r\n\r\n const isAllCommandsExecuted: boolean = yield new DeserializeCommandHandler()\r\n .addCommand(dateCommand)\r\n .addCommand(sortByCommand)\r\n .processGenerator();\r\n\r\n if (!isAllCommandsExecuted) {\r\n yield put(sellerBuysideActions.advancedFiltersBlocked(true));\r\n }\r\n}\r\n\r\nfunction* watchExportBidRequestsRequest() {\r\n try {\r\n const lastAppliedFilter: SellerBuysideFilterState = yield select((state: AppState) => state.sellerBuyside.lastAppliedFilter);\r\n const sortBy: BwicMonitorSortByOptions = yield select((state: AppState) => state.sellerBuyside.sortBy);\r\n if (lastAppliedFilter) {\r\n const filterOption: SellerBuySideFilterOptions = yield getSearchFilterOptions(lastAppliedFilter);\r\n const file: { name: string, blob: Blob } = yield call(\r\n bidAsDealerRequestService.exportBidRequestsAsSeller,\r\n filterOption, sortBy\r\n );\r\n saveAs(file.blob, file.name);\r\n yield put(sellerBuysideActions.exportBidRequestsSuccess())\r\n }\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(sellerBuysideActions.exportBidRequestsFailure())\r\n }\r\n}\r\n\r\nfunction* getSearchFilterOptions(stateFilter: SellerBuysideFilterState): Generator {\r\n const state: SellerBuysideState = yield select((state: AppState) => state.sellerBuyside);\r\n const isinCusipsAndTickers: string[] = yield select((state: AppState) => state.searchSecurities.searchTermItems);\r\n const dateRange = getSearchDateRange(stateFilter);\r\n\r\n return {\r\n isinCusipsAndTickers,\r\n from: dateRange.dateFrom ? moment(dateRange.dateFrom).format(constants.dateTimeFormatUtc) : undefined,\r\n to: dateRange.dateTo ? moment(dateRange.dateTo).format(constants.dateTimeFormatUtc) : undefined,\r\n statuses: getFilterSelectedValues(stateFilter.bwicStatuses),\r\n currency: getSelectedCurrency(stateFilter.currencies)[0] || '',\r\n ratings: getFilterSelectedValues(stateFilter.ratings),\r\n types: getFilterSelectedValues(stateFilter.types),\r\n page: state.currentPageNumber,\r\n pageSize: state.pageSize,\r\n sizeFrom: numericUtils.isNumber(stateFilter.size.min) ? Number(stateFilter.size.min) : undefined,\r\n sizeTo: numericUtils.isNumber(stateFilter.size.max) ? Number(stateFilter.size.max) : undefined,\r\n submittedBids: stateFilter.submittedBids\r\n };\r\n}\r\n\r\nfunction* watchFilterApply(action: ActionType) {\r\n const state: SellerBuysideState = yield select((state: AppState) => state.sellerBuyside);\r\n const isinCusipsAndTickers: string[] = yield select((state: AppState) => state.searchSecurities.searchTermItems);\r\n\r\n if (state.advancedFiltersBlocked) return;\r\n\r\n yield put(sellerBuysideActions.dataItemsLoadingState(true));\r\n\r\n const isFilterChanged = action.payload.isApply || action.payload.isSearchTermChange;\r\n\r\n const filter = isFilterChanged\r\n ? state.filter\r\n : state.lastAppliedFilter ?? state.initialFilter;\r\n\r\n if (isFilterChanged) {\r\n yield put(sellerBuysideActions.resetSummary());\r\n }\r\n\r\n try {\r\n const response: PaginationResult & SellerBuysideSearchResultSummary = yield call(\r\n bidAsDealerRequestService.findBidRequestsAsSeller,\r\n yield getSearchFilterOptions(filter),\r\n state.sortBy,\r\n isFilterChanged\r\n );\r\n const { totalRecordNumber, result, ...summary } = response;\r\n const serializers: QueryStringArgumentSerializer[] = [\r\n identifiers(),\r\n statuses(),\r\n dateFrom(),\r\n ratings(),\r\n multipleCurrencies(),\r\n dateTo(),\r\n types(),\r\n sizeFrom(),\r\n sizeTo(),\r\n submittedBids()\r\n ];\r\n\r\n if (user.hasFeatures(SubscriptionFeature.BwicMonitorSorting)) {\r\n serializers.push(sorting());\r\n }\r\n\r\n const criteria = getFilterCriteria(state.filter, isinCusipsAndTickers);\r\n const queryString = queryStringSerializer.serialize({ ...criteria, sortBy: state.sortBy }, serializers);\r\n if (queryString !== history.location.search?.replace('?', '')) {\r\n yield call(history.replace, history.location.pathname + '?' + queryString);\r\n }\r\n if (action.payload.isApply) {\r\n yield put(sellerBuysideActions.storeAppliedFilter(state.filter));\r\n }\r\n yield put(sellerBuysideActions.storeSearchResult(\r\n { totalRecordNumber, result },\r\n isFilterChanged ? summary : undefined\r\n ));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n } finally {\r\n yield put(sellerBuysideActions.dataItemsLoadingState(false));\r\n }\r\n}\r\n\r\nfunction getSelectedCurrency(currencies: FilterOption[]) {\r\n const selectedCurrencies = currencies.filter(currency => currency.selected);\r\n return selectedCurrencies.length === 2 || !selectedCurrencies.length ? [] : [String(selectedCurrencies[0].value)]\r\n}\r\n\r\nfunction getFilterCriteria(filter: SellerBuysideFilterState, isinCusipsAndTickers: string[]) {\r\n return {\r\n isinCusipsAndTickers,\r\n statuses: filter.bwicStatuses.filter(s => s.selected).map(s => s.value),\r\n ratings: filter.ratings.filter(r => r.selected).map(r => r.value),\r\n types: filter.types.filter(t => t.selected).map(t => t.value),\r\n currency: filter.currencies.filter(currency => currency.selected).map(c => c.value),\r\n sizeFrom: filter.size.min,\r\n sizeTo: filter.size.max,\r\n submittedBids: filter.submittedBids,\r\n ...getSearchDateRange(filter)\r\n };\r\n}\r\n\r\nfunction getFilterSelectedValues(options: FilterOption[]): TValue[] {\r\n if (options.some(o => o.selected) && options.some(o => !o.selected)) {\r\n return options.filter(o => o.selected).map(o => o.value as unknown as TValue);\r\n }\r\n return [];\r\n}\r\n\r\nfunction* watchReset() {\r\n const { searchTermItems } = yield select((state: AppState) => state.searchSecurities);\r\n yield put(searchSecuritiesActions.reset());\r\n yield put(sellerBuysideActions.saveSearchTermItems(searchTermItems));\r\n}\r\n\r\ntype SubmitBidRequestActionType = {\r\n type: string;\r\n payload: { data: SubmitBidRequestPayloadType };\r\n};\r\n\r\nfunction* watchSubmitBidRequest(action: SubmitBidRequestActionType) {\r\n const state: SellerBuysideState = yield select((state: AppState) => state.sellerBuyside);\r\n const apiOperation: ApiOperation | undefined = yield select((s: AppState) =>\r\n s.apiOperation.requests.find(r =>\r\n r.event === ApiOperationType.SubmitAxedFinal ||\r\n r.event === ApiOperationType.SubmitBidRequest)\r\n );\r\n\r\n const {\r\n bwicReferenceName,\r\n positionId,\r\n level,\r\n axed,\r\n final,\r\n commission,\r\n modifiedDate,\r\n agreementBrokerDealerId,\r\n agreementCommission,\r\n positionSize\r\n } = action.payload.data;\r\n const current = state.dataItems.find(i => i.position.id === positionId);\r\n\r\n if (\r\n !current ||\r\n isRequesting(apiOperation?.state) ||\r\n keys(state.requestStateSubmitBidRequest).some(key => state.requestStateSubmitBidRequest[+key])) {\r\n return;\r\n }\r\n\r\n yield put(sellerBuysideActions.updateRequestStateSubmitBid(true, positionId));\r\n\r\n if (apiOperation) {\r\n yield put(apiOperationActions.resetEvent(ApiOperationType.SubmitAxedFinal));\r\n yield put(apiOperationActions.resetEvent(ApiOperationType.SubmitBidRequest));\r\n }\r\n\r\n const statusCode = apiOperation?.result?.statusCode;\r\n const response = apiOperation?.result?.response;\r\n const conflict = statusCode === 409 && response != null ? parseConflict(response) : undefined;\r\n const isBiddingOverThemself = statusCode === 300;\r\n const bidLock = conflict?.modifiedDate ?? modifiedDate;\r\n const isBidOrCommissionChanged = current.bidAsDealerRequest?.directBid == null\r\n ? (level || commission !== agreementCommission)\r\n : (level && level !== current.bidAsDealerRequest.level) || (commission && commission !== current.bidAsDealerRequest.commission);\r\n\r\n try {\r\n if (isBidOrCommissionChanged) {\r\n const bidRequest = {\r\n positionId,\r\n brokerDealerId: agreementBrokerDealerId,\r\n commission,\r\n value: level,\r\n axed,\r\n final,\r\n size: positionSize,\r\n salesCoverage: [],\r\n bidLock,\r\n acceptBiddingOverThemself: isBiddingOverThemself,\r\n stagedBiddingStatus: current.bwic.process.stagedBiddingStatus\r\n }\r\n\r\n const [response]: TApiCallResponse[] = yield call(\r\n bidAsDealerRequestService.submit,\r\n bwicReferenceName,\r\n [bidRequest]\r\n );\r\n\r\n yield put(apiOperationActions.waitResult({\r\n state: RequestState.request,\r\n event: ApiOperationType.SubmitBidRequest,\r\n token: response.token,\r\n positionId: response.positionId,\r\n autoRemove: false,\r\n errorToastDisabled: true,\r\n createdDate: new Date()\r\n }));\r\n } else if (current.bidAsDealerRequest && current.bidAsDealerRequest.directBid) {\r\n const model: SubmitBidAttributesModel[] = [{\r\n positionId,\r\n bidId: current.bidAsDealerRequest.directBid.id,\r\n axed,\r\n final,\r\n bidLock,\r\n stagedBiddingStatus: current.bwic.process.stagedBiddingStatus,\r\n }];\r\n const [response]: TApiCallResponse[] = yield call(biddingService.updateBidAttributes, model);\r\n\r\n yield put(apiOperationActions.waitResult({\r\n state: RequestState.request,\r\n event: ApiOperationType.SubmitAxedFinal,\r\n token: response.token,\r\n positionId: response.positionId,\r\n autoRemove: false,\r\n errorToastDisabled: true,\r\n createdDate: new Date()\r\n }));\r\n }\r\n } catch (e) {\r\n yield put(apiOperationActions.waitResult({\r\n state: RequestState.failure,\r\n event: ApiOperationType.SubmitBidRequest,\r\n token: '',\r\n autoRemove: false,\r\n positionId,\r\n createdDate: new Date(),\r\n result: {\r\n statusCode: e.status,\r\n event: ApiOperationType.SubmitBidRequest,\r\n token: '',\r\n positionId,\r\n response: ''\r\n }\r\n }));\r\n } finally {\r\n yield put(sellerBuysideActions.updateRequestStateSubmitBid(false, positionId));\r\n }\r\n}\r\n\r\nfunction parseConflict(jsonText: string) {\r\n const conflicts: BidConflict[] | null = jsonText ? jsonUtils.tryParse(jsonText) : null;\r\n return conflicts?.length ? conflicts[0] : null;\r\n}\r\n\r\nfunction* watchBwicStatusChange(action: { type: string, bwicReferenceName: string, bwicStatus: BwicStatus }) {\r\n const state: SellerBuysideState = yield select((state: AppState) => state.sellerBuyside);\r\n\r\n if (!(action.bwicStatus === BwicStatus.scheduled || action.bwicStatus === BwicStatus.bidding)) {\r\n const editState = { ...state.editBidRequestState };\r\n const dataItems = state.dataItems\r\n .filter(i => i.bwic.referenceName === action.bwicReferenceName)\r\n .map(i => ({\r\n ...i,\r\n bwic: { ...i.bwic, status: action.bwicStatus, isColorDistribution: false },\r\n bidAsDealerRequest: i.bidAsDealerRequest ? {\r\n ...i.bidAsDealerRequest,\r\n status: BidRequestStatus.expired\r\n } : undefined\r\n }));\r\n\r\n dataItems.forEach(i => {\r\n if (editState[i.position.id]) {\r\n delete editState[i.position.id];\r\n }\r\n });\r\n\r\n if (dataItems.length) {\r\n yield put(sellerBuysideActions.updateEditBidRequestState(editState));\r\n yield put(sellerBuysideActions.updateBidRequests(dataItems));\r\n }\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(sellerBuysideActions.hardReset());\r\n}\r\n\r\nfunction* watchSortChanged() {\r\n yield put(sellerBuysideActions.pagingReset());\r\n yield put(sellerBuysideActions.filterApply());\r\n}\r\n\r\nexport function* watchSellerBuyside() {\r\n yield takeEvery(getType(sellerBuysideActions.init), watchInit);\r\n yield takeEvery(getType(sellerBuysideActions.filterApply), watchFilterApply);\r\n yield takeEvery(getType(sellerBuysideActions.sortChanged), watchSortChanged);\r\n yield takeEvery(getType(sellerBuysideActions.reset), watchReset);\r\n yield takeEvery(getType(sellerBuysideActions.submitBidRequest), watchSubmitBidRequest);\r\n yield takeEvery(pushDataActions.PUSH_DATA_BWIC_STATUS_CHANGE, watchBwicStatusChange);\r\n yield takeEvery(getType(sellerBuysideActions.exportBidRequestsRequest), watchExportBidRequestsRequest);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import { takeEvery, put } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { subscriptionsActions, accountActions } from \"../actions\";\r\nimport { SubscriptionPush } from \"../types/billing/SubscriptionPush\";\r\nimport { user } from \"../user\";\r\n\r\n/*\r\nfunction* watchInit() {\r\n const subscriptions: SubscriptionsState = yield select((state: AppState) => state.subscriptions);\r\n if (subscriptions.billingContact) return;\r\n\r\n yield put(subscriptionsActions.loadingFlag(true));\r\n\r\n try {\r\n let paymentCards: PaymentCard[];\r\n let billingContact: BillingContact;\r\n let countries: Country[];\r\n let states: State[];\r\n\r\n [paymentCards, billingContact, countries, states] = yield all([\r\n call(billingService.getPaymentCards),\r\n call(billingService.getBillingContact),\r\n call(locationService.getCountries),\r\n call(locationService.getStates, constants.USCountryCode)\r\n ]);\r\n\r\n yield put(subscriptionsActions.storePaymentCards(paymentCards));\r\n yield put(subscriptionsActions.storeBillingContact(billingContact));\r\n yield put(subscriptionsActions.storeCountries(countries));\r\n yield put(subscriptionsActions.storeStates(states));\r\n yield put(billingHistoryActions.fetchBillingHistory(RequestState.request))\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n } finally {\r\n yield put(subscriptionsActions.loadingFlag(false));\r\n }\r\n} */\r\n\r\nfunction* wathSubscriptionChangePush(action: { type: string, payload: { subscription: SubscriptionPush } }) {\r\n const { subscription, trialPeriodEnd, subscriptionExpiration } = action.payload.subscription;\r\n\r\n user.changeSubscription(\r\n subscription,\r\n trialPeriodEnd,\r\n subscriptionExpiration\r\n );\r\n yield put(accountActions.refreshAuthentication());\r\n}\r\n\r\n/*\r\ntype TUpgradeAction = { type: string, payload: { targetSubscriptionType: SubscriptionType } }\r\nfunction* watchUpgradeSubscription(action: TUpgradeAction) {\r\n const subscriptions: SubscriptionsState = yield select((state: AppState) => state.subscriptions);\r\n const { billingContact, paymentCards } = subscriptions;\r\n\r\n if (!billingContact) return;\r\n\r\n if (!billingContact.billingContactCreated || !paymentCards.length) {\r\n yield put(subscriptionsActions.showUpgradeSubscriptionWizard(action.payload.targetSubscriptionType));\r\n } else {\r\n const primaryCard = paymentCards.find(c => c.isPrimary);\r\n if (primaryCard) {\r\n yield put(upgradeSubscriptionActions.init(action.payload.targetSubscriptionType, billingContact, primaryCard));\r\n yield put(push(routes.upgradeSubscription));\r\n }\r\n }\r\n}*/\r\n\r\n/*\r\nfunction* watchLogout() {\r\n yield put(subscriptionsActions.reset());\r\n}*/\r\n\r\nexport function* watchSubscriptions() {\r\n //yield takeEvery(getType(subscriptionsActions.init), watchInit);\r\n yield takeEvery(getType(subscriptionsActions.subscriptionPushReceived), wathSubscriptionChangePush);\r\n //yield takeEvery(accountActionTypes.LOGOUT, watchLogout);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { salesRepresentativeActions } from \"../actions\";\r\nimport { accountActions, roles } from \"../constants\";\r\nimport { logger } from \"../logging/logger\";\r\nimport { salesRepresentativesService } from \"../services\";\r\nimport { SalesRepresentative } from \"../types/sales-representative/SalesRepresentative\";\r\nimport { user } from \"../user\";\r\n\r\nfunction* watchLoadSalesRepresentatives() {\r\n if (!user.isAuthenticated() || !user.hasRoles(...roles.salesRepresentativesSupported())) {\r\n return;\r\n }\r\n\r\n try {\r\n const salesRepresentatives: SalesRepresentative[] =\r\n yield call(salesRepresentativesService.getCurrentUserSalesRepresentatives);\r\n\r\n salesRepresentatives.sort((a, b) =>\r\n a.firstName.localeCompare(b.firstName) || a.lastName.localeCompare(b.lastName));\r\n\r\n if (salesRepresentatives.length) {\r\n yield put(salesRepresentativeActions.storeSalesRepresentatives(salesRepresentatives));\r\n }\r\n } catch (e) {\r\n logger.exception(e, 'Failed loading sales representatives for userId ' + user.current()?.id);\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(salesRepresentativeActions.reset())\r\n}\r\n\r\nexport function* watchSalesRepresentative() {\r\n yield takeEvery(getType(salesRepresentativeActions.loadUserSalesRepresentatives), watchLoadSalesRepresentatives);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout)\r\n}\r\n","import { call, put, select, takeEvery, takeLatest } from \"redux-saga/effects\";\r\nimport moment from 'moment';\r\nimport { isEqual } from 'lodash';\r\nimport { getType } from 'typesafe-actions';\r\nimport { billingHistoryActions } from '../actions/subscription-biling-history.actions';\r\nimport { billingService } from '../services/billing.service';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { SubscriptionBillingHistoryFilterState } from '../types/state/SubscriptionsState';\r\nimport { BillingHistory } from '../types/billing/BillingHistory';\r\nimport { SubscriptionPeriod } from '../types/filters/SubscriptionPeriod';\r\nimport { FilterOption } from '../types/filters/FilterOption';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { AnyAction } from 'redux';\r\nimport { isRequesting } from '../utils';\r\n\r\nfunction getFilterPeriodValues(filterPeriod: FilterOption[]): { from: Date, to: Date } {\r\n const period = filterPeriod.find(p => p.selected)?.value;\r\n const periodValues: { [key: string]: { from: Date, to: Date } } = {\r\n [SubscriptionPeriod.month]: {\r\n from: moment().subtract(1, 'month').toDate(),\r\n to: moment().toDate()\r\n },\r\n [SubscriptionPeriod.quarter]: {\r\n from: moment().subtract(4, 'month').toDate(),\r\n to: moment().toDate()\r\n },\r\n [SubscriptionPeriod.year]: {\r\n from: moment().subtract(1, 'year').toDate(),\r\n to: moment().toDate()\r\n },\r\n };\r\n return period ? periodValues[period] : periodValues[SubscriptionPeriod.month];\r\n}\r\n\r\nfunction getSearchRequestParams(filter: SubscriptionBillingHistoryFilterState): { dateFrom: Date, dateTo: Date, statuses: number[] } {\r\n const period = getFilterPeriodValues(filter.period);\r\n const statuses = filter.status.filter(s => s.selected).map(s => Number(s.value));\r\n return { dateFrom: period.from, dateTo: period.to, statuses }\r\n}\r\n\r\nfunction* watchApplyFilter() {\r\n const { filter, appliedFilter } = yield select((s: AppState) => s.subscriptions.billingHistory);\r\n yield put(billingHistoryActions.fetchBillingHistory(RequestState.request));\r\n if (!isEqual(filter, appliedFilter)) {\r\n yield put(billingHistoryActions.setApplyFilter());\r\n }\r\n}\r\n\r\nfunction* watchFetchHistory(action: AnyAction) {\r\n const {requestState} = action.payload;\r\n if (isRequesting(requestState)) {\r\n try {\r\n const { filter } = yield select((s: AppState) => s.subscriptions.billingHistory);\r\n const { dateFrom, dateTo, statuses } = getSearchRequestParams(filter);\r\n const billingHistory: BillingHistory[] = yield call(billingService.searchBillingHistory, dateFrom, dateTo, statuses);\r\n yield put(billingHistoryActions.fetchBillingHistory(RequestState.success, billingHistory));\r\n } catch (e) {\r\n yield put(billingHistoryActions.fetchBillingHistory(RequestState.failure));\r\n }\r\n }\r\n}\r\n\r\nexport function* watchBillingHistory() {\r\n yield takeLatest(getType(billingHistoryActions.fetchBillingHistory), watchFetchHistory);\r\n yield takeEvery(getType(billingHistoryActions.applyFilter), watchApplyFilter);\r\n}\r\n","import { takeEvery, call, put, select } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { releaseActions } from '../actions/release.actions';\r\nimport { releaseService } from '../services/release.service';\r\nimport { errorActions } from '../actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { Releases } from '../types/marketing/Release';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { isRequesting, isRequestSuccess } from '../utils';\r\nimport { onBoardingTooltipService } from '../services';\r\nimport { user } from '../user';\r\nimport { onBoardingTooltipConst } from '../constants';\r\nimport { OnBoardingTooltipType } from '../types/onboarding-tooltips/OnBoardingTooltipType';\r\n\r\nfunction* watchGetReleaseRequest() {\r\n const requestState: RequestState = yield select((s: AppState) => s.release.requestState);\r\n if (isRequestSuccess(requestState) || isRequesting(requestState)) {\r\n return\r\n }\r\n try {\r\n yield put(releaseActions.getReleaseRequest());\r\n const responseReleases: Releases = yield call(releaseService.fetchReleases);\r\n yield put(releaseActions.getReleaseResponse(RequestState.success, responseReleases))\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(releaseActions.getReleaseResponse(RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* watchMarkAsReadRequest() {\r\n try {\r\n yield call(onBoardingTooltipService.setCount, [{page: OnBoardingTooltipType.whatsNewPopup, count: onBoardingTooltipConst.maxCountLimit}]);\r\n user.setOnBoardingTooltipCounter(OnBoardingTooltipType.whatsNewPopup, onBoardingTooltipConst.maxCountLimit)\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(releaseActions.markAsReadResponse())\r\n }\r\n}\r\n\r\nexport function* watchRelease() {\r\n yield takeEvery(getType(releaseActions.fetchReleases), watchGetReleaseRequest);\r\n yield takeEvery(getType(releaseActions.markAsReadRequest), watchMarkAsReadRequest);\r\n}\r\n","import { ActionType } from '../types/ActionType';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\nimport { put, takeEvery, all, select } from 'redux-saga/effects';\r\nimport { newBwicDealersActions } from '../actions/new-bwic-dealers.actions';\r\nimport { accountActions } from '../constants';\r\nimport { getType } from 'typesafe-actions';\r\nimport { apiUtils } from '../utils/api.utils';\r\nimport { brokerDealerContactListActions } from '../actions/broker-dealer-contact-list.actions';\r\nimport { Contact } from '../types/company/Contact';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { UserSlim } from '../types/account/UserSlim';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\n\r\nfunction* watchSelectAllDealersByDefault(action: ActionType<{ dealers: BrokerDealerCompanySlim[] }>) {\r\n const { dealers } = action.payload;\r\n const liveBidding: boolean = yield select((s: AppState) => s.process.templates.current?.type === BwicProcessType.Live);\r\n\r\n // Leave off-platform companies unchecked if live bidding\r\n const dealersToSelect = liveBidding\r\n ? dealers.filter(d => d.status === CompanyStatus.active)\r\n : dealers;\r\n\r\n const list = apiUtils.normalize(dealersToSelect, d => d.id, () => true);\r\n yield put(newBwicDealersActions.selectDealers(list));\r\n}\r\n\r\nfunction* watchPushUpdateDealerContacts(action: ActionType<{ contacts: Contact[] }>) {\r\n const selectedByDefault: boolean = yield select((state: AppState) => state.newBwicDealers.selectedByDefault);\r\n const liveBidding: boolean = yield select((s: AppState) => s.process.templates.current?.type === BwicProcessType.Live);\r\n\r\n if (!selectedByDefault) {\r\n return false;\r\n }\r\n const { contacts } = action.payload;\r\n const selectedDealers: {[dealerId: number]: boolean} = yield select((s:AppState) => s.newBwicDealers.selectedDealers);\r\n const brokerDealers: BrokerDealerCompanySlim[] = yield select((state: AppState) => state.entities.brokerDealerList.items);\r\n const brokerDealerContacts: Contact[] = yield select((state: AppState) => state.entities.brokerDealerContactList.items);\r\n const brokerDealerUsers: UserSlim[] = yield select((state: AppState) => state.entities.brokerDealerUserList.items);\r\n yield all(contacts.map(c => {\r\n const brokerDealer = brokerDealers.find(d => d.id === c.companyId);\r\n if (!brokerDealer) return null;\r\n\r\n const isLiveBiddingOffPlatform = liveBidding && brokerDealer.status !== CompanyStatus.active;\r\n\r\n if (!c.deleted && !selectedDealers[c.companyId] && !isLiveBiddingOffPlatform) {\r\n return put(newBwicDealersActions.selectDealer(c.companyId))\r\n }\r\n \r\n if (\r\n c.deleted &&\r\n selectedDealers[c.companyId] &&\r\n brokerDealer &&\r\n !brokerDealer.isClearingBank &&\r\n !brokerDealer.headOfTrading &&\r\n !brokerDealer.distributionList &&\r\n !(liveBidding && brokerDealer.status !== CompanyStatus.active) &&\r\n !brokerDealerContacts.some(contact => contact.companyId === c.companyId) &&\r\n !brokerDealerUsers.some(user => user.companyId === c.companyId)\r\n ) {\r\n return put(newBwicDealersActions.selectDealer(c.companyId))\r\n }\r\n\r\n return null;\r\n }))\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(newBwicDealersActions.reset())\r\n}\r\n\r\nexport function* watchNewBwicDealers() {\r\n yield takeEvery(getType(newBwicDealersActions.selectDealersByDefault), watchSelectAllDealersByDefault);\r\n yield takeEvery(getType(brokerDealerContactListActions.pushUpdateList), watchPushUpdateDealerContacts);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import { fetchSafe } from './fetch.safe';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\nimport { responseType } from '../constants';\r\nimport { SellerAdminEditFormModel } from '../types/seller-admin/SellerAdminEditFormModel';\r\nimport { UserCreationRequest } from '../types/management/UserCreationRequest';\r\nimport { CompanyUser } from '../types/management/CompanyUser';\r\nimport { TradingLimitType } from '../types/seller-admin/TradingLimitType';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { UserStatus } from '../types/account/UserStatus';\r\n\r\nfunction getExcludedDealers(): Promise<{ excludeNewCompany: boolean, excludedDealers: BrokerDealerCompanySlim[] }> {\r\n return fetchSafe('/api/manage/excluded-dealers')\r\n}\r\n\r\nfunction updateExcludedDealers(excludeNewCompany: boolean, companyIds: number[]): Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ excludeNewCompany, companyIds }),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/manage/excluded-dealers', requestOptions)\r\n}\r\n\r\nfunction getTradingLimits(): Promise<{currency: Currency; size: number | null; type: TradingLimitType}[]> {\r\n return fetchSafe('/api/manage/trading-limits')\r\n}\r\n\r\nfunction updateTradingLimits(params: { tradingLimits: { currency: string; type: number; size: number | null }[] }): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.none\r\n };\r\n return fetchSafe('/api/manage/trading-limits', requestOptions)\r\n}\r\n\r\ninterface RequestCreationEditUserParams extends SellerAdminEditFormModel {\r\n id?: number;\r\n concurrencyStamp?: Date;\r\n}\r\n\r\nfunction saveUserRequest(params: RequestCreationEditUserParams): Promise {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify(params),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe('/api/manage/users', requestOptions)\r\n}\r\n\r\nfunction saveUser(params: RequestCreationEditUserParams): Promise {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify(params),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(`/api/manage/users/${params.id}/edit`, requestOptions)\r\n}\r\n\r\nfunction enableRequestUser(id: number, concurrencyStamp: Date): Promise {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n body: JSON.stringify({ id, concurrencyStamp }),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe('/api/manage/users/user-creation-request/enable', requestOptions)\r\n}\r\n\r\nfunction disableRequestUser(id: number, concurrencyStamp: Date, blockReason: string): Promise {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n body: JSON.stringify({ id, concurrencyStamp, blockReason }),\r\n responseType: responseType.json\r\n };\r\n return fetchSafe('/api/manage/users/user-creation-request/disable', requestOptions)\r\n}\r\n\r\nfunction enableUser(id: number): Promise<{ id: number, status: UserStatus }> {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(`/api/manage/users/${id}/enable`, requestOptions)\r\n}\r\n\r\nfunction disableUser(id: number, blockReason: string): Promise<{ id: number }> {\r\n const requestOptions = {\r\n method: 'PATCH',\r\n body: '\"' + blockReason + '\"',\r\n responseType: responseType.json\r\n };\r\n return fetchSafe(`/api/manage/users/${id}/disable`, requestOptions)\r\n}\r\n\r\nfunction getCompanyUsers(): Promise<{ users: CompanyUser[], requests: UserCreationRequest[] }> {\r\n return fetchSafe('/api/company-account/users');\r\n}\r\n\r\nfunction exportUsers(): Promise<{ name: string, blob: Blob }> {\r\n const requestOptions = {\r\n method: 'get',\r\n responseType: responseType.file\r\n };\r\n return fetchSafe('/api/manage/users/export', requestOptions);\r\n}\r\n\r\nexport const sellerAdminService = {\r\n getExcludedDealers,\r\n updateExcludedDealers,\r\n updateTradingLimits,\r\n getTradingLimits,\r\n saveUserRequest,\r\n saveUser,\r\n enableRequestUser,\r\n disableRequestUser,\r\n enableUser,\r\n disableUser,\r\n exportUsers,\r\n getCompanyUsers,\r\n};\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { sellerAdminDealerActions } from '../actions/seller-admin-dealers.actions';\r\nimport { errorActions } from '../actions';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { accountActions } from '../constants';\r\nimport { sellerAdminService } from '../services/seller-admin.service';\r\nimport { brokerDealerListActions } from '../actions/broker-dealer-list.actions';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\n\r\nfunction* watchGetExcludedDealers() {\r\n try {\r\n const response: { excludeNewCompany: boolean, excludedDealers: BrokerDealerCompanySlim[] } =\r\n yield call(sellerAdminService.getExcludedDealers);\r\n yield put(sellerAdminDealerActions.getExcludedDealersSuccess(response.excludeNewCompany, response.excludedDealers));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(sellerAdminDealerActions.getExcludedDealersFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveExcludedDealers(action: ActionType<{ excludeNewCompany: boolean, dealerIds: number[] }>) {\r\n const { dealerIds, excludeNewCompany } = action.payload;\r\n try {\r\n yield call(sellerAdminService.updateExcludedDealers, excludeNewCompany, dealerIds);\r\n yield put(sellerAdminDealerActions.saveExcludedDealersSuccess());\r\n yield put(sellerAdminDealerActions.setEditModeStatus(false));\r\n yield put(brokerDealerListActions.request());\r\n yield put(sellerAdminDealerActions.getExcludedDealersRequest());\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(sellerAdminDealerActions.saveExcludedDealersFailure());\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(sellerAdminDealerActions.reset())\r\n}\r\n\r\nexport function* watchSellerAdminDealers() {\r\n yield takeEvery(getType(sellerAdminDealerActions.getExcludedDealersRequest), watchGetExcludedDealers);\r\n yield takeEvery(getType(sellerAdminDealerActions.saveExcludedDealersRequest), watchSaveExcludedDealers);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import { cloneDeep, isNil } from 'lodash';\r\nimport { AnyAction } from 'redux';\r\nimport { all, call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { errorActions, portfolioActions, searchSecuritiesActions } from '../actions';\r\nimport { createFilterActions } from '../actions/filter.actions';\r\nimport { portfolioListActions } from '../actions/portfolio-list.actions';\r\nimport { pushDataActions } from '../constants';\r\nimport { dateRangeFilterOptions } from '../constants/date-range.filter';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { portfolioService } from '../services';\r\nimport { BwicFilterType, FilterState, TFilter } from '../types/filters/FilterState';\r\nimport { PageConfigType } from '../types/page-config/PageConfigType';\r\nimport { Portfolio } from '../types/portfolio/Portfolio';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { UserConfigFilter } from '../types/user-config/UserConfigFilter';\r\nimport { arrayUtils, isRequestSuccess } from '../utils';\r\nimport { queryStringSerializer } from '../utils/filtering';\r\nimport { getDateOptionByRange } from '../utils/filtering/filter.utils';\r\nimport { QueryStringArgumentSerializer } from '../utils/filtering/serializers/QueryStringArgumentSerializer';\r\nimport {\r\n collateralManagers, collateralTypes, dealsLegalNames, esg, euCompliance, identifiers, mixedDateRange,\r\n multipleCurrencies, ratings, staticDeals, dateFrom, dateTo, trustees, amr, outOfNC, outOfRI\r\n} from '../utils/filtering/serializers/serializer.definitions';\r\nimport { DeserializeCommandHandler } from '../utils/filtering/serializers/DeserializeCommand';\r\nimport { user } from '../user/user';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { manageEmailPreferencesActions } from '../actions/manage-email-preferences.actions';\r\nimport { history } from '../history';\r\n\r\nconst filterActions = createFilterActions(BwicFilterType.Portfolio);\r\n\r\nfunction* watchRequest() {\r\n try {\r\n const portfolios: Portfolio[] = yield call(portfolioService.getPortfolios);\r\n yield put(portfolioListActions.requestResult(RequestState.success, portfolios));\r\n yield setDefaultFilter(portfolios);\r\n yield setDefaultFilterSelect();\r\n } catch (e) {\r\n yield put(portfolioListActions.requestResult(RequestState.failure));\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* setDefaultFilter(portfolios: Portfolio[]) {\r\n const filter: TFilter = yield select((s: AppState) => s.filters.portfolio.filter);\r\n const initialFilter = cloneDeep(filter);\r\n\r\n const getFilterItems = (collection: { legalName?: string, referenceName?: string }[]) => arrayUtils\r\n .distinct(collection, c => c.legalName)\r\n .filter(c => !!c.legalName && !!c.referenceName)\r\n .sort((a, b) => String(a.legalName).localeCompare(String(b.legalName)))\r\n .map(d => ({ value: d.referenceName, text: d.legalName, selected: false, visible: true, disabled: false }));\r\n\r\n const allDealNames = portfolios.map(p => p.securities.map(s => s.dealLegalName)).flat();\r\n const dealNameFilterItems = arrayUtils\r\n .distinct(allDealNames, name => name)\r\n .filter(name => !!name)\r\n .sort((a, b) => String(a).localeCompare(String(b)))\r\n .map(d => ({ value: d, text: d, selected: false, visible: true, disabled: false }));\r\n\r\n const allManagers = portfolios.map(p => p.securities.map(s => ({ legalName: s.collateralManager?.legalName, referenceName: s.collateralManager?.referenceName }))).flat();\r\n const managerFilterItems = getFilterItems(allManagers);\r\n\r\n const allTrusteeNames = portfolios.map(p => p.securities.map(s => ({ legalName: s.trustee?.legalName, referenceName: s.trustee?.referenceName }))).flat();\r\n const trusteeFilterItems = getFilterItems(allTrusteeNames);\r\n\r\n initialFilter.dealName = { ...initialFilter.dealName, filter: dealNameFilterItems };\r\n initialFilter.managers = { ...initialFilter.managers, filter: managerFilterItems };\r\n initialFilter.trustee = { ...initialFilter.trustee, filter: trusteeFilterItems }\r\n\r\n yield put(filterActions.init(initialFilter));\r\n}\r\n\r\nfunction* setDefaultFilterSelect() {\r\n const filterQueryString: string = history.location.search;\r\n const filter: FilterState = yield select((s: AppState) => s.filters.portfolio);\r\n\r\n const queryString = filterQueryString && filterQueryString.trim();\r\n\r\n const filtersConfig: UserConfigFilter[] = yield select((s: AppState) => s.entities.pageConfig.configs?.[PageConfigType.Portfolio]?.filters);\r\n const canUseAdvancedFilters = user.hasFeatures(SubscriptionFeature.PortfolioAvancedFilters);\r\n const defaultConfigFilter = canUseAdvancedFilters ? (filtersConfig || []).find(filter => filter.default) : undefined;\r\n\r\n if (queryString?.length) {\r\n const acceptableCollateralMembers = (filter.filter.managers.filter as { value: string }[]).map(f => f.value);\r\n\r\n const [ncEndSerializers, getNcEndDeserializeResult] = mixedDateRange('nonCallEndFrom', 'nonCallEndTo');\r\n const [riEndSerializers, getRiEndDeserializeResult] = mixedDateRange('reinvestmentEndFrom', 'reinvestmentEndTo');\r\n\r\n let searchInputValues: string[] = []\r\n let collateralType: string[] = []\r\n let currencyValues: string[] = [];\r\n let ratingValues: string[] = [];\r\n let dealNames: string[] = [];\r\n let collateralManager: string[] = [];\r\n let isEsg: boolean | undefined = undefined;\r\n let isEuCompliance: boolean | undefined = undefined;\r\n let isStaticDeal: boolean | undefined = undefined;\r\n let maturityFrom: Date | null = null;\r\n let maturityTo: Date | null = null;\r\n let vintageFrom: Date | null = null;\r\n let vintageTo: Date | null = null;\r\n let closingFrom: Date | null = null;\r\n let closingTo: Date | null = null;\r\n let trusteeValues: string[] = [];\r\n let amrValue: boolean | undefined = undefined;\r\n let isOutofRI: boolean | undefined = undefined;\r\n let isOutOfNC: boolean | undefined = undefined;\r\n\r\n const serializers: QueryStringArgumentSerializer[] = [\r\n identifiers(values => searchInputValues = values),\r\n ratings(values => ratingValues = values),\r\n multipleCurrencies(values => currencyValues = values),\r\n dealsLegalNames(values => dealNames = values),\r\n collateralTypes(values => collateralType = values),\r\n collateralManagers(values => collateralManager = values, acceptableCollateralMembers),\r\n esg(value => isEsg = value),\r\n euCompliance(value => isEuCompliance = value),\r\n staticDeals(value => isStaticDeal = value),\r\n outOfNC(value => isOutOfNC = value),\r\n outOfRI(value => isOutofRI = value),\r\n ...ncEndSerializers,\r\n ...riEndSerializers,\r\n dateFrom(value => maturityFrom = value, 'maturityFrom'),\r\n dateTo(value => maturityTo = value, 'maturityTo'),\r\n dateFrom(value => vintageFrom = value, 'vintageFrom'),\r\n dateTo(value => vintageTo = value, 'vintageTo'),\r\n dateFrom(value => closingFrom = value, 'closingFrom'),\r\n dateTo(value => closingTo = value, 'closingTo'),\r\n trustees(values => trusteeValues = values),\r\n amr(value => amrValue = value),\r\n ];\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n // Set nonCallEnd and reinvestmentEnd values\r\n const ncEndDeserializeResult = getNcEndDeserializeResult();\r\n const riEndDeserializeResult = getRiEndDeserializeResult();\r\n\r\n const searchInputValuesCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!searchInputValues.length,\r\n execute: function* () {\r\n yield all(searchInputValues.map(value => put(searchSecuritiesActions.addSearchItem(value))));\r\n }\r\n };\r\n const collateralTypesCommand = {\r\n shouldExecute: () => !!collateralType.length,\r\n execute: function* () {\r\n yield all(collateralType.map(type => put(filterActions.filterSelectChange(type, 'collateralType'))));\r\n }\r\n };\r\n const currenciesCommand = {\r\n shouldExecute: () => !!currencyValues.length,\r\n execute: function* () {\r\n yield all(currencyValues.map(currency => put(filterActions.filterSelectChange(currency, 'currency'))));\r\n }\r\n }\r\n\r\n const collateralManagersReferenceNamesCommand = {\r\n shouldExecute: () => !!collateralManager.length,\r\n execute: function* () {\r\n yield all(collateralManager.map(manager => put(filterActions.filterSelectChange(manager, 'managers'))));\r\n }\r\n };\r\n const ratingCommand = {\r\n execute: function* () {\r\n yield all(ratingValues.map(rating => put(filterActions.filterSelectChange(rating, 'ratings'))));\r\n }\r\n };\r\n const dealNamesCommand = {\r\n shouldExecute: () => !!dealNames.length,\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('dealName'));\r\n yield all(dealNames.map(name => put(filterActions.filterSelectChange(name, 'dealName'))));\r\n }\r\n };\r\n const esgCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isEsg),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('esg'));\r\n yield put(filterActions.filterRadioChange(isEsg!, 'esg'));\r\n }\r\n };\r\n const euCompilanceCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isEuCompliance),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('euCompliance'));\r\n yield put(filterActions.filterRadioChange(isEuCompliance!, 'euCompliance'));\r\n }\r\n };\r\n const staticDealsCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isStaticDeal),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('staticDeal'));\r\n yield put(filterActions.filterRadioChange(isStaticDeal!, 'staticDeal'));\r\n }\r\n };\r\n const outOfNCCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isOutOfNC),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('outOfNC'));\r\n yield put(filterActions.filterRadioChange(isOutOfNC!, 'outOfNC'));\r\n }\r\n };\r\n const outofRICommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isOutofRI),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('outOfRI'));\r\n yield put(filterActions.filterRadioChange(isOutofRI!, 'outOfRI'));\r\n }\r\n };\r\n const nonCallEndCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!ncEndDeserializeResult?.dates || !!ncEndDeserializeResult?.years,\r\n execute: function* () {\r\n yield put(filterActions.filterDateQueryStringDeserialized('nonCallEnd', ncEndDeserializeResult))\r\n }\r\n };\r\n const reinvestmentEndCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!riEndDeserializeResult?.dates || !!riEndDeserializeResult?.years,\r\n execute: function* () {\r\n yield put(filterActions.filterDateQueryStringDeserialized('reinvestmentEnd', riEndDeserializeResult));\r\n }\r\n };\r\n const trusteesValuesCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!trusteeValues.length,\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('trustee'));\r\n yield all(trusteeValues.map(name => put(filterActions.filterSelectChange(name, 'trustee'))));\r\n }\r\n };\r\n const maturityCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(maturityFrom) || !isNil(maturityTo),\r\n execute: function* () {\r\n yield put(filterActions.makeFilterVisible('maturity'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, maturityFrom, maturityTo);\r\n yield put(filterActions.filterDateSelectOption(filterOption, 'maturity'));\r\n yield put(\r\n filterActions.filterDateSelectCustomRange({ from: maturityFrom, to: maturityTo }, 'maturity'),\r\n );\r\n }\r\n };\r\n const vintageCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(vintageFrom) || !isNil(vintageTo),\r\n execute: function* () {\r\n yield put(filterActions.makeFilterVisible('vintage'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, vintageFrom, vintageTo);\r\n yield put(filterActions.filterDateSelectOption(filterOption, 'vintage'));\r\n yield put(\r\n filterActions.filterDateSelectCustomRange({ from: vintageFrom, to: vintageTo }, 'vintage'),\r\n );\r\n }\r\n };\r\n const closingCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(closingFrom) || !isNil(closingTo),\r\n execute: function* () {\r\n yield put(filterActions.makeFilterVisible('closing'));\r\n const filterOption = getDateOptionByRange(dateRangeFilterOptions.ThisWeek, closingFrom, closingTo);\r\n yield put(filterActions.filterDateSelectOption(filterOption, 'closing'));\r\n yield put(\r\n filterActions.filterDateSelectCustomRange({ from: closingFrom, to: closingTo }, 'closing'),\r\n );\r\n }\r\n };\r\n const amrValueCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(amrValue),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('amr'));\r\n yield put(filterActions.filterRadioChange(amrValue!, 'amr'));\r\n }\r\n };\r\n\r\n const isAllCommandsExecuted: boolean =\r\n yield new DeserializeCommandHandler()\r\n .addCommand(searchInputValuesCommand)\r\n .addCommand(collateralTypesCommand)\r\n .addCommand(currenciesCommand)\r\n .addCommand(collateralManagersReferenceNamesCommand)\r\n .addCommand(ratingCommand)\r\n .addCommand(dealNamesCommand)\r\n .addCommand(esgCommand)\r\n .addCommand(euCompilanceCommand)\r\n .addCommand(staticDealsCommand)\r\n .addCommand(outOfNCCommand)\r\n .addCommand(outofRICommand)\r\n .addCommand(nonCallEndCommand)\r\n .addCommand(reinvestmentEndCommand)\r\n .addCommand(trusteesValuesCommand)\r\n .addCommand(maturityCommand)\r\n .addCommand(vintageCommand)\r\n .addCommand(closingCommand)\r\n .addCommand(amrValueCommand)\r\n .processGenerator()\r\n\r\n if (!isAllCommandsExecuted) {\r\n yield put(portfolioActions.advancedFilterBlocked(true));\r\n return;\r\n }\r\n\r\n\r\n } else if (defaultConfigFilter) {\r\n yield put(filterActions.selectFilterFromConfig(defaultConfigFilter))\r\n }\r\n yield put(filterActions.applyFilter());\r\n}\r\n\r\nfunction* watchColorDistributionSend(action: AnyAction) {\r\n yield put(portfolioListActions.colorDistributionSend({\r\n bwicReferenceName: action.bwicReferenceName,\r\n historyAction: action.historyAction,\r\n colors: action.colors\r\n }));\r\n}\r\n\r\nfunction* watchBwicStatusChanged(action: AnyAction) {\r\n yield put(portfolioListActions.bwicStatusChanged({\r\n bwicReferenceName: action.bwicReferenceName,\r\n historyAction: action.historyAction,\r\n bwicStatus: action.bwicStatus\r\n }));\r\n}\r\n\r\nfunction* watchPortfolioGlobalAlertsChange(\r\n action: ActionType) {\r\n const portfolios: Portfolio[] = yield select((s: AppState) => s.entities.portfolios.items);\r\n const portfoliosRequestState: RequestState = yield select((s: AppState) => s.entities.portfolios.requestState);\r\n const hasPortfolio = portfolios?.length > 0;\r\n if (hasPortfolio && isRequestSuccess(portfoliosRequestState)) {\r\n const alertState = portfolios.map(p =>({\r\n portfolioId: p.id,\r\n bwicAlert: action.payload.bwicGlobalAlertEnabled,\r\n dealersInventoryAlert: action.payload.inventoryGlobalAlertEnabled,\r\n cleansingNoticeAlert: action.payload.cleansingNoticeAlertEnabled,\r\n issuanceMonitorAlert: action.payload.issuanceMonitorAlertEnabled,\r\n outOfRiPeriodAlert: action.payload.outOfRiAlertEnabled,\r\n outOfNcPeriodAlert: action.payload.outOfNcAlertEnabled,\r\n rollerDeadlineAlert: action.payload.rollerDeadlineAlertEnabled\r\n }));\r\n\r\n yield put(portfolioListActions.updateSendAlertState(alertState));\r\n }\r\n}\r\n\r\nexport function* watchPortfolioList() {\r\n yield takeLatest(getType(portfolioListActions.request), watchRequest);\r\n yield takeEvery(pushDataActions.PUSH_DATA_PUBLIC_COLORS, watchColorDistributionSend);\r\n yield takeEvery(pushDataActions.PUSH_DATA_BWIC_STATUS_CHANGE, watchBwicStatusChanged);\r\n yield takeEvery(manageEmailPreferencesActions.portfolioGlobalAlertsChange, watchPortfolioGlobalAlertsChange);\r\n}\r\n","import { all, call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport { Action } from 'redux';\r\nimport { ActionType } from 'typesafe-actions';\r\nimport { manageEmailPreferencesActions } from '../actions/manage-email-preferences.actions';\r\nimport { emailPreferencesService } from '../services';\r\nimport { errorActions } from '../actions';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { AlertOption, EmailPreferences } from '../types/email-preferences/EmailPreferences';\r\nimport { imUserConfigService } from '../services';\r\nimport { ImUserConfig } from '../types/user-config/UserConfig';\r\nimport { UserConfigType } from '../types/user-config/UserConfigType';\r\nimport { IssuanceMonitorEmailPreferences } from '../types/email-preferences/IssuanceMonitorEmailPreferences';\r\nimport { createAmrPipelineActions } from '../actions';\r\nimport { PipelineType } from '../types/amr-pipeline/enums/PipelineType';\r\nimport { CloManagersEmailPreferences } from '../types/email-preferences/CloManagersEmailPreferences';\r\nimport { Company } from '../types/amr-pipeline/models/Company';\r\nimport { amrCompaniesService } from '../services/amr-companies.service';\r\nimport { roles } from '../constants';\r\nimport { user } from '../user';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { AlertEnabledState } from '../types/enums/AlertEnabledState';\r\nimport { banksService } from '../services/banks.service';\r\nimport { BanksEmailPreferences } from '../types/email-preferences/BanksEmailPreferences';\r\nimport { combineBanks, hasBankAnalyticsAlertsChangeAccess } from '../utils/amr-pipeline.utils';\r\nimport { Bank, BwicBank } from '../types/banks/Bank';\r\nimport { bankImApRequiredFeatures } from '../constants/banks/bankImApRequiredFeatures';\r\nimport { emailPreferencesActions } from '../actions/email-preferences.actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { HavingDealType } from '../types/amr-pipeline/enums/HavingDealType';\r\nimport { ArrangerPipelineEmailPreferences } from '../types/email-preferences/ArrangerPipelineEmailPreferences';\r\n\r\nconst amrPipelineActions = createAmrPipelineActions(PipelineType.Deals);\r\n\r\nfunction* watchGetInitialDataRequest(action: ActionType) {\r\n try {\r\n const { withIssuanceMonitorAccess } = action.payload;\r\n let userConfig: ImUserConfig[] | undefined;\r\n let managers: Company[] | undefined;\r\n let banks: Bank[] | undefined;\r\n\r\n if (withIssuanceMonitorAccess) {\r\n let amrBanks: Company[];\r\n let bwicBanks: BwicBank[];\r\n\r\n const loadFilters: Action = yield call(amrPipelineActions.loadFilters);\r\n const initFilter: Action = yield call(amrPipelineActions.initFilter);\r\n\r\n yield put(loadFilters);\r\n yield put(initFilter);\r\n\r\n [amrBanks, bwicBanks, managers, userConfig] = yield all([\r\n call(amrCompaniesService.getBanksList),\r\n call(banksService.getBwicBanksList),\r\n call(amrCompaniesService.getManagersList, HavingDealType.CloManagers),\r\n call(imUserConfigService.getUserConfig),\r\n ]);\r\n\r\n banks = combineBanks(amrBanks, bwicBanks);\r\n }\r\n\r\n const initialData: EmailPreferences = yield call(emailPreferencesService.getEmailPreferences);\r\n\r\n yield put(manageEmailPreferencesActions.getInitialDataSuccess(initialData, userConfig, managers, banks));\r\n yield put(emailPreferencesActions.requestResult(RequestState.success, initialData));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchSaveRequest() {\r\n const editIssuanceMonitorPreferences: IssuanceMonitorEmailPreferences = yield select(\r\n (state: AppState) => state.manageEmailPreferences.editIssuanceMonitorPreferences,\r\n );\r\n const editCloManagerPreferences: CloManagersEmailPreferences = yield select(\r\n (state: AppState) => state.manageEmailPreferences.editCloManagersPreferences,\r\n );\r\n\r\n const userCompany: Company = yield select((state: AppState) => state.issuanceMonitor.amrPipelineCommon.userCompany);\r\n\r\n const isCollateralManager = user.hasRoles(roles.CollateralManager);\r\n const hasImSubscription = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n const hasBwicSubscription = user.hasFeatures(SubscriptionFeature.BwicMonitorAlerts);\r\n const hasDealerInventorySubscription = user.hasFeatures(SubscriptionFeature.InventoryAlerts);\r\n\r\n try {\r\n const cloManagerBwicAlerts = editCloManagerPreferences.cloManagerBwicAlert.value;\r\n const cloManagerDealerInventoryAlerts = editCloManagerPreferences.cloManagerDealerInventoryAlert.value;\r\n\r\n let cloManagerBwicAlertsConfig;\r\n let cloManagerDiAlertsConfig;\r\n\r\n if (hasBwicSubscription && cloManagerBwicAlerts.length) {\r\n cloManagerBwicAlertsConfig = {\r\n type: UserConfigType.cloManagerBwicAlert,\r\n value: JSON.stringify(cloManagerBwicAlerts),\r\n };\r\n }\r\n\r\n if (hasDealerInventorySubscription && cloManagerDealerInventoryAlerts.length) {\r\n cloManagerDiAlertsConfig = {\r\n type: UserConfigType.cloManagerDealerInventoryAlert,\r\n value: JSON.stringify(cloManagerDealerInventoryAlerts),\r\n };\r\n }\r\n\r\n yield all([\r\n cloManagerBwicAlertsConfig && call(imUserConfigService.createOrUpdateUserConfig, cloManagerBwicAlertsConfig),\r\n cloManagerDiAlertsConfig && call(imUserConfigService.createOrUpdateUserConfig, cloManagerDiAlertsConfig)\r\n ]);\r\n\r\n if (hasImSubscription) {\r\n const singleUpdateOption = editIssuanceMonitorPreferences.imAlertConfig.value.alertOption;\r\n const newTransactionOption = editIssuanceMonitorPreferences.newTransactionAlertConfig.value.alertOption;\r\n const statisticOption = editIssuanceMonitorPreferences.weeklyStatsAlertConfig.value.emailOption;\r\n\r\n const cloManagerAnalyticsAlert = editCloManagerPreferences.cloManagerAnalyticsAlert.value.find(\r\n a => a.companyReferenceName === userCompany.referenceName,\r\n );\r\n const cloManagerImAlerts = editCloManagerPreferences.cloManagerIssuanceMonitorAlert.value;\r\n const cloManagerApAlerts = editCloManagerPreferences.cloManagerArrangerPipelineAlert.value;\r\n\r\n const filterData = editIssuanceMonitorPreferences.filtersConfig.ImFilter.value.map(\r\n ({ referenceName, alertOption }) => ({\r\n referenceName,\r\n alertOption,\r\n }),\r\n );\r\n const imAlertsConfig = {\r\n type: UserConfigType.imAlert,\r\n value: JSON.stringify({ alertOption: singleUpdateOption }),\r\n } as ImUserConfig;\r\n\r\n const newTransactionConfig = {\r\n type: UserConfigType.newPublishedTransactionAlert,\r\n value: JSON.stringify({ alertOption: newTransactionOption }),\r\n } as ImUserConfig;\r\n\r\n const imStatisticsConfig = {\r\n type: UserConfigType.weeklyStatsEmail,\r\n value: JSON.stringify({ emailOption: statisticOption }),\r\n } as ImUserConfig;\r\n\r\n const cloManagerAnalyticsAlertsConfig = {\r\n type: UserConfigType.cloManagerAnalyticsAlert,\r\n value: JSON.stringify(cloManagerAnalyticsAlert),\r\n };\r\n\r\n const cloManagerImAlertsConfig = {\r\n type: UserConfigType.cloManagerIssuanceMonitorAlert,\r\n value: JSON.stringify(cloManagerImAlerts),\r\n };\r\n\r\n const cloManagerApAlertsConfig = {\r\n type: UserConfigType.cloManagerArrangerPipelineAlert,\r\n value: JSON.stringify(cloManagerApAlerts),\r\n };\r\n\r\n yield all([\r\n call(imUserConfigService.createOrUpdateUserConfig, imAlertsConfig),\r\n call(imUserConfigService.createOrUpdateUserConfig, newTransactionConfig),\r\n call(imUserConfigService.createOrUpdateUserConfig, imStatisticsConfig),\r\n cloManagerAnalyticsAlert?.alertOption === AlertOption.Never && cloManagerAnalyticsAlert.referenceName\r\n ? call(\r\n imUserConfigService.deleteUserConfig,\r\n UserConfigType.cloManagerAnalyticsAlert,\r\n cloManagerAnalyticsAlert.referenceName,\r\n )\r\n : cloManagerAnalyticsAlert?.alertOption &&\r\n call(imUserConfigService.createOrUpdateUserConfig, cloManagerAnalyticsAlertsConfig),\r\n cloManagerImAlerts.length &&\r\n call(imUserConfigService.createOrUpdateUserConfig, cloManagerImAlertsConfig),\r\n cloManagerApAlerts.length &&\r\n call(imUserConfigService.createOrUpdateUserConfig, cloManagerApAlertsConfig),\r\n filterData.length && call(imUserConfigService.updateFilterEmailAlertsConfig, filterData),\r\n ]);\r\n } else if (isCollateralManager) {\r\n const cloManagerAnalyticsAlert = editCloManagerPreferences.cloManagerAnalyticsAlert.value.find(\r\n a => a.companyReferenceName === userCompany.referenceName,\r\n );\r\n\r\n const cloManagerAnalyticsAlertsConfig = {\r\n type: UserConfigType.cloManagerAnalyticsAlert,\r\n value: JSON.stringify(cloManagerAnalyticsAlert),\r\n };\r\n\r\n const request = cloManagerAnalyticsAlert?.alertOption === AlertOption.Never && cloManagerAnalyticsAlert.referenceName\r\n ? call(\r\n imUserConfigService.deleteUserConfig,\r\n UserConfigType.cloManagerAnalyticsAlert,\r\n cloManagerAnalyticsAlert.referenceName,\r\n )\r\n : cloManagerAnalyticsAlert?.alertOption &&\r\n call(imUserConfigService.createOrUpdateUserConfig, cloManagerAnalyticsAlertsConfig);\r\n\r\n yield request;\r\n }\r\n\r\n yield put(manageEmailPreferencesActions.saveSuccess());\r\n yield put(manageEmailPreferencesActions.getInitialDataRequest(true));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveArrangerPipelineRequest() {\r\n const withImAccess = user.hasAllFeatures(\r\n SubscriptionFeature.IssuanceMonitorFullAccess\r\n );\r\n\r\n if (!withImAccess) {\r\n return;\r\n }\r\n\r\n const editArrangerPipelinePreferences: ArrangerPipelineEmailPreferences =\r\n yield select(\r\n (state: AppState) =>\r\n state.manageEmailPreferences.editArrangerPipelinePreferences\r\n );\r\n\r\n try {\r\n const apAlertOption =\r\n editArrangerPipelinePreferences.apAlertConfig.value;\r\n const apConfig = {\r\n type: UserConfigType.arrangerPipelineAlert,\r\n value: JSON.stringify(apAlertOption),\r\n };\r\n\r\n const request = call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n apConfig\r\n );\r\n\r\n yield request;\r\n\r\n yield put(manageEmailPreferencesActions.saveSuccess());\r\n yield put(manageEmailPreferencesActions.getInitialDataRequest(true));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveBanksRequest() {\r\n const banks: Company[] | undefined = yield select(\r\n (state: AppState) => state.manageEmailPreferences.banks\r\n );\r\n const editBanksPreferences: BanksEmailPreferences = yield select(\r\n (state: AppState) => state.manageEmailPreferences.editBanksPreferences\r\n );\r\n const userCompany: Company = yield select(\r\n (state: AppState) => state.issuanceMonitor.amrPipelineCommon.userCompany\r\n );\r\n\r\n const withAnalyticsAccess = hasBankAnalyticsAlertsChangeAccess(banks, userCompany );\r\n const withDiAccess = user.hasFeatures(SubscriptionFeature.InventoryAlerts);\r\n const withImApAccess = user.hasAllFeatures(...bankImApRequiredFeatures);\r\n\r\n if (!withAnalyticsAccess && !withDiAccess && !withImApAccess) {\r\n return;\r\n }\r\n\r\n try {\r\n if (withAnalyticsAccess) {\r\n const bankAnalyticsAlerts =\r\n editBanksPreferences.bankAnalyticsAlert.value.find(\r\n (a) => a.companyReferenceName === userCompany.referenceName\r\n );\r\n\r\n const bankAnalyticsConfig = {\r\n type: UserConfigType.bankAnalyticsAlert,\r\n value: JSON.stringify(bankAnalyticsAlerts),\r\n };\r\n\r\n const request =\r\n bankAnalyticsAlerts?.alertOption === AlertOption.Never &&\r\n bankAnalyticsAlerts.referenceName\r\n ? call(\r\n imUserConfigService.deleteUserConfig,\r\n UserConfigType.bankAnalyticsAlert,\r\n bankAnalyticsAlerts.referenceName\r\n )\r\n : bankAnalyticsAlerts?.alertOption &&\r\n call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n bankAnalyticsConfig\r\n );\r\n\r\n yield request;\r\n }\r\n\r\n if (withDiAccess) {\r\n const bankDiAlerts =\r\n editBanksPreferences.bankDealerInventoryAlert.value;\r\n\r\n const bankDiAlertsConfig = {\r\n type: UserConfigType.bankDealerInventoryAlert,\r\n value: JSON.stringify(bankDiAlerts),\r\n };\r\n\r\n yield call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n bankDiAlertsConfig\r\n );\r\n }\r\n\r\n if (withImApAccess) {\r\n const bankImAlerts =\r\n editBanksPreferences.bankIssuanceMonitorAlert.value;\r\n const bankApAlerts =\r\n editBanksPreferences.bankArrangerPipelineAlert.value;\r\n\r\n const bankImAlertsConfig = {\r\n type: UserConfigType.bankIssuanceMonitorAlert,\r\n value: JSON.stringify(bankImAlerts),\r\n };\r\n\r\n const bankApAlertsConfig = {\r\n type: UserConfigType.bankArrangerPipelineAlert,\r\n value: JSON.stringify(bankApAlerts),\r\n };\r\n\r\n yield all([\r\n call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n bankImAlertsConfig\r\n ),\r\n call(\r\n imUserConfigService.createOrUpdateUserConfig,\r\n bankApAlertsConfig\r\n ),\r\n ]);\r\n }\r\n\r\n yield put(manageEmailPreferencesActions.saveSuccess());\r\n yield put(manageEmailPreferencesActions.getInitialDataRequest(true));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveEmailPreferences() {\r\n const initialPreferences: EmailPreferences = yield select((state: AppState) =>\r\n state.manageEmailPreferences.initialPreferences\r\n );\r\n const editPreferences: EmailPreferences = yield select((state: AppState) =>\r\n state.manageEmailPreferences.editPreferences\r\n );\r\n\r\n try {\r\n yield call(emailPreferencesService.saveEmailPreferences, editPreferences);\r\n const emailPreferences: EmailPreferences = yield call(emailPreferencesService.getEmailPreferences);\r\n yield put(manageEmailPreferencesActions.saveEmailPreferencesSuccess(emailPreferences));\r\n yield put(emailPreferencesActions.requestResult(RequestState.success, emailPreferences));\r\n\r\n const isPortfolioBwicAlertChanged =\r\n initialPreferences?.portfolioBwicAlertState !== emailPreferences.portfolioBwicAlertState;\r\n const isPortfolioInventoryAlertChanged =\r\n initialPreferences?.portfolioDealersInventoryAlertState !== emailPreferences.portfolioDealersInventoryAlertState;\r\n const isOutOfRiPeriodAlertChanged = initialPreferences?.portfolioOutOfRiPeriodAlertState !== emailPreferences.portfolioOutOfRiPeriodAlertState;\r\n const isOutOfNcPeriodAlertChanged = initialPreferences?.portfolioOutOfNcPeriodAlertState !== emailPreferences.portfolioOutOfNcPeriodAlertState;\r\n const isPortfolioCleansingNoticeAlertChanged = initialPreferences?.portfolioCleansingNoticeAlertState !== emailPreferences.portfolioCleansingNoticeAlertState;\r\n const isPortfolioIssuanceMonitorAlertChanged = initialPreferences?.portfolioIssuanceMonitorAlertState !== emailPreferences.portfolioIssuanceMonitorAlertState;\r\n const isPortfolioRollerDeadlineAlertChanged = initialPreferences?.portfolioRollerDeadlineAlertState !== emailPreferences.portfolioRollerDeadlineAlertState;\r\n\r\n\r\n if (\r\n isPortfolioBwicAlertChanged ||\r\n isPortfolioInventoryAlertChanged ||\r\n isPortfolioCleansingNoticeAlertChanged ||\r\n isPortfolioIssuanceMonitorAlertChanged ||\r\n isOutOfRiPeriodAlertChanged ||\r\n isOutOfNcPeriodAlertChanged ||\r\n isPortfolioRollerDeadlineAlertChanged\r\n ) {\r\n const bwicAlertEnabled = isPortfolioBwicAlertChanged\r\n ? emailPreferences.portfolioBwicAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const inventoryAlertEnabled = isPortfolioInventoryAlertChanged\r\n ? emailPreferences.portfolioDealersInventoryAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const outOfRiAlertEnabled = isOutOfRiPeriodAlertChanged\r\n ? emailPreferences.portfolioOutOfRiPeriodAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const outOfNcAlertEnabled = isOutOfNcPeriodAlertChanged\r\n ? emailPreferences.portfolioOutOfNcPeriodAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const cleansingNoticeAlertEnabled = isPortfolioCleansingNoticeAlertChanged\r\n ? emailPreferences.portfolioCleansingNoticeAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n \r\n const issuanceMonitorAlertEnabled = isPortfolioIssuanceMonitorAlertChanged\r\n ? emailPreferences.portfolioIssuanceMonitorAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n const rollerDeadlineAlertEnabled = isPortfolioRollerDeadlineAlertChanged\r\n ? emailPreferences.portfolioRollerDeadlineAlertState === AlertEnabledState.Enabled\r\n : undefined;\r\n\r\n yield put(\r\n manageEmailPreferencesActions.portfolioGlobalAlertsChange(\r\n bwicAlertEnabled,\r\n inventoryAlertEnabled,\r\n cleansingNoticeAlertEnabled,\r\n issuanceMonitorAlertEnabled,\r\n outOfRiAlertEnabled,\r\n outOfNcAlertEnabled,\r\n rollerDeadlineAlertEnabled,\r\n ),\r\n );\r\n }\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveEmailPreferencesFailure());\r\n }\r\n}\r\n\r\nfunction* watchSaveBwicByRatingRequest() {\r\n const editPreferences: EmailPreferences = yield select(\r\n (state: AppState) => state.manageEmailPreferences.editPreferences,\r\n );\r\n const bwicByRating = {\r\n bwicByRatingAlertState: editPreferences.bwicByRatingAlertState,\r\n ratingPreference: editPreferences.ratingPreference,\r\n };\r\n try {\r\n yield call(emailPreferencesService.saveBwicByRating, bwicByRating);\r\n yield put(manageEmailPreferencesActions.saveBwicByRatingPreferencesSuccess());\r\n yield put(manageEmailPreferencesActions.getInitialDataRequest());\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageEmailPreferencesActions.saveBwicByRatingPreferencesFailure());\r\n }\r\n}\r\n\r\nexport function* watchManageEmailPreferences() {\r\n yield takeEvery(manageEmailPreferencesActions.getInitialDataRequest, watchGetInitialDataRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveRequest, watchSaveRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveArrangerPipelineRequest, watchSaveArrangerPipelineRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveBanksRequest, watchSaveBanksRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveBwicByRatingPreferencesRequest, watchSaveBwicByRatingRequest);\r\n yield takeEvery(manageEmailPreferencesActions.saveEmailPreferencesRequest, watchSaveEmailPreferences);\r\n}\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { sellerAdminLimitActions } from '../actions/seller-admin-limit.actions';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { sellerAdminService } from '../services/seller-admin.service';\r\nimport { errorActions } from '../actions';\r\nimport { SellerAdminTradingLimitValuesState } from '../types/seller-admin/SellerAdminTradingLimitValuesState';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { TradingLimitType } from '../types/seller-admin/TradingLimitType';\r\nimport { accountActions } from '../constants';\r\n\r\nfunction* watchGetTradeLimits() {\r\n try {\r\n const limits: { currency: Currency; size: number | null; type: TradingLimitType }[] =\r\n yield call(sellerAdminService.getTradingLimits);\r\n yield put(sellerAdminLimitActions.getTradeLimitsSuccess(limits));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchUpdateTradeLimits(action: ActionType<{ limits: SellerAdminTradingLimitValuesState }>) {\r\n const { limits } = action.payload;\r\n const tradingLimits: { currency: string, type: number, size: number | null }[] = [\r\n {\r\n currency: Currency.USD,\r\n type: TradingLimitType.SellMaxBondSize,\r\n size: limits[TradingLimitType.SellMaxBondSize][Currency.USD]\r\n },\r\n {\r\n currency: Currency.EUR,\r\n type: TradingLimitType.SellMaxBondSize,\r\n size: limits[TradingLimitType.SellMaxBondSize][Currency.EUR]\r\n },\r\n {\r\n currency: Currency.USD,\r\n type: TradingLimitType.SellMaxDailyTradesSize,\r\n size: limits[TradingLimitType.SellMaxDailyTradesSize][Currency.USD]\r\n },\r\n {\r\n currency: Currency.EUR,\r\n type: TradingLimitType.SellMaxDailyTradesSize,\r\n size: limits[TradingLimitType.SellMaxDailyTradesSize][Currency.EUR]\r\n },\r\n\r\n {\r\n currency: Currency.USD,\r\n type: TradingLimitType.BuyMaxBondSize,\r\n size: limits[TradingLimitType.BuyMaxBondSize][Currency.USD]\r\n },\r\n {\r\n currency: Currency.EUR,\r\n type: TradingLimitType.BuyMaxBondSize,\r\n size: limits[TradingLimitType.BuyMaxBondSize][Currency.EUR]\r\n },\r\n {\r\n currency: Currency.USD,\r\n type: TradingLimitType.BuyMaxDailyTradesSize,\r\n size: limits[TradingLimitType.BuyMaxDailyTradesSize][Currency.USD]\r\n },\r\n {\r\n currency: Currency.EUR,\r\n type: TradingLimitType.BuyMaxDailyTradesSize,\r\n size: limits[TradingLimitType.BuyMaxDailyTradesSize][Currency.EUR]\r\n },\r\n ];\r\n try {\r\n yield call(sellerAdminService.updateTradingLimits, { tradingLimits });\r\n yield put(sellerAdminLimitActions.updateTradeLimitsSuccess());\r\n yield put(sellerAdminLimitActions.getTradeLimitsSuccess(tradingLimits));\r\n yield put(sellerAdminLimitActions.setEditModeStatus(false));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(sellerAdminLimitActions.updateTradeLimitsFailure());\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(sellerAdminLimitActions.reset())\r\n}\r\n\r\nexport function* watchSellerAdminLimit() {\r\n yield takeEvery(sellerAdminLimitActions.getTradeLimitsRequest, watchGetTradeLimits);\r\n yield takeEvery(sellerAdminLimitActions.updateTradeLimitsRequest, watchUpdateTradeLimits);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout)\r\n}\r\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport { saveAs } from 'file-saver';\r\nimport { sellerAdminUsersActions } from '../actions/seller-admin-users.actions';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { SellerAdminEditFormModel } from '../types/seller-admin/SellerAdminEditFormModel';\r\nimport { sellerAdminService } from '../services/seller-admin.service';\r\nimport { errorActions, notificationActions } from '../actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { CompanyUser } from '../types/management/CompanyUser';\r\nimport { UserStatus } from '../types/account/UserStatus';\r\nimport { UserCreationRequest } from '../types/management/UserCreationRequest';\r\n\r\nfunction* watchGetUserListRequest() {\r\n try {\r\n const users: { users: CompanyUser[], requests: UserCreationRequest[] } = yield call(sellerAdminService.getCompanyUsers);\r\n yield put(sellerAdminUsersActions.getUserListSuccess(users.users, users.requests));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.getUserListFailure());\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchSaveUser(action: ActionType<{ data: SellerAdminEditFormModel, userId: number }>) {\r\n const { data, userId } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserUpdateState(RequestState.request));\r\n try {\r\n yield call(sellerAdminService.saveUser, { ...data, id: userId });\r\n const users: CompanyUser[] = yield select((state: AppState) => state.sellerAdminUsers.users);\r\n const user = users.find(u => u.id === userId);\r\n if (user) {\r\n const newUser: CompanyUser = { ...user, ...data, id: userId};\r\n yield put(sellerAdminUsersActions.userSaved(newUser));\r\n }\r\n yield put(sellerAdminUsersActions.setUserUpdateState(RequestState.success));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserUpdateState(RequestState.failure));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchSaveUserRequest(action: ActionType<{ data: SellerAdminEditFormModel, userRequestId: number, concurrencyStamp?: Date }>) {\r\n const { data, userRequestId, concurrencyStamp } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserRequestUpdateState(RequestState.request));\r\n try {\r\n const requestUser: UserCreationRequest = yield call(sellerAdminService.saveUserRequest, {\r\n ...data,\r\n id: userRequestId || undefined,\r\n concurrencyStamp\r\n });\r\n yield put(sellerAdminUsersActions.userRequestSaved(requestUser));\r\n yield put(sellerAdminUsersActions.setUserRequestUpdateState(RequestState.success));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserRequestUpdateState(RequestState.failure));\r\n yield handleUserRequestChangeError(e);\r\n }\r\n}\r\n\r\nfunction* watchEnableUserRequest(action: ActionType<{ userRequestId: number, concurrencyStamp: Date }>) {\r\n const { userRequestId, concurrencyStamp } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.request, userRequestId));\r\n try {\r\n const userRequest: UserCreationRequest = yield call(sellerAdminService.enableRequestUser, userRequestId, concurrencyStamp);\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.success, userRequestId));\r\n yield put(sellerAdminUsersActions.userRequestEnabled(userRequest));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.failure, userRequestId));\r\n yield handleUserRequestChangeError(e);\r\n }\r\n}\r\n\r\nfunction* watchDisableUserRequest(action: ActionType<{ userRequestId: number, blockReason: string, concurrencyStamp: Date }>) {\r\n const { userRequestId, concurrencyStamp, blockReason } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.request, userRequestId));\r\n try {\r\n const userRequest: UserCreationRequest = yield call(sellerAdminService.disableRequestUser, userRequestId, concurrencyStamp, blockReason);\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.success, userRequestId));\r\n yield put(sellerAdminUsersActions.userRequestDisabled(userRequest));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserRequestOperationState(RequestState.failure, userRequestId));\r\n yield handleUserRequestChangeError(e);\r\n }\r\n}\r\n\r\nfunction* handleUserRequestChangeError(e?: {status: number}){\r\n if (e?.status === 409) {\r\n yield put(notificationActions.notificationAddErrorMessageModal(\r\n \"Data was changed. Refresh the page to get the latest information.\",\r\n \"Changes are not allowed\",\r\n true\r\n ));\r\n } else {\r\n yield put(errorActions.unexpectedError(e))\r\n }\r\n}\r\n\r\nfunction* watchEnableUser(action: ActionType<{ userId: number }>) {\r\n const { userId } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.request, userId));\r\n try {\r\n const response: { id: number, status: UserStatus } = yield call(sellerAdminService.enableUser, userId);\r\n yield put(sellerAdminUsersActions.setUserEnabled(userId, response.status));\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.success, userId));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.failure, userId));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchDisableUser(action: ActionType<{ userId: number, blockReason: string }>) {\r\n const { userId, blockReason } = action.payload;\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.request, userId));\r\n try {\r\n yield call(sellerAdminService.disableUser, userId, blockReason);\r\n yield put(sellerAdminUsersActions.setUserDisable(userId, blockReason));\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.success, userId));\r\n } catch (e) {\r\n yield put(sellerAdminUsersActions.setUserOperationState(RequestState.failure, userId));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchExportUsersRequest(){\r\n try {\r\n const file: { name: string, blob: Blob } = yield call(sellerAdminService.exportUsers);\r\n saveAs(file.blob, file.name);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(sellerAdminUsersActions.exportUsersResponse())\r\n }\r\n}\r\n\r\nexport function* watchSellerAdminUsers() {\r\n yield takeEvery(sellerAdminUsersActions.getUserListRequest, watchGetUserListRequest);\r\n yield takeEvery(sellerAdminUsersActions.saveUser, watchSaveUser);\r\n yield takeEvery(sellerAdminUsersActions.saveUserRequest, watchSaveUserRequest);\r\n yield takeEvery(sellerAdminUsersActions.enableUserRequest, watchEnableUserRequest);\r\n yield takeEvery(sellerAdminUsersActions.disableUserRequest, watchDisableUserRequest);\r\n yield takeEvery(sellerAdminUsersActions.enableUser, watchEnableUser);\r\n yield takeEvery(sellerAdminUsersActions.exportUsersRequest, watchExportUsersRequest);\r\n yield takeEvery(sellerAdminUsersActions.disableUser, watchDisableUser);\r\n}\r\n","import { ActionType } from '../types/ActionType';\r\nimport { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { userRequestAdminActions } from '../actions/user-request-admin.actions';\r\nimport { errorActions } from '../actions/error.actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { User } from '../types/management/User';\r\nimport { usersService } from '../services/users.service';\r\nimport { notificationActions } from '../actions';\r\nimport { UserCreationRequest } from '../types/management/UserCreationRequest';\r\nimport { logger } from '../logging/logger';\r\n\r\nfunction* watchApprove(action: ActionType<{ userRequestId: number, concurrencyStamp: Date }>) {\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.request));\r\n\r\n try {\r\n const user: User = yield call(\r\n usersService.approveUserRequest,\r\n action.payload.userRequestId,\r\n action.payload.concurrencyStamp\r\n );\r\n\r\n yield put(userRequestAdminActions.userRequestApproved(action.payload.userRequestId, user));\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.success));\r\n } catch (e) {\r\n yield handleRequestError(action.payload.userRequestId, e);\r\n }\r\n}\r\n\r\nfunction* watchBlock(action: ActionType<{ userRequestId: number, concurrencyStamp: Date, blockReason: string }>) {\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.request));\r\n\r\n try {\r\n const blockedUserRequest: UserCreationRequest = yield call(\r\n usersService.blockUserRequest,\r\n action.payload.userRequestId,\r\n action.payload.concurrencyStamp,\r\n action.payload.blockReason\r\n );\r\n yield put(userRequestAdminActions.userRequestBlocked(blockedUserRequest));\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.success));\r\n } catch (e) {\r\n yield handleRequestError(action.payload.userRequestId, e);\r\n }\r\n}\r\n\r\nfunction* watchUnblock(action: ActionType<{ userRequestId: number, concurrencyStamp: Date }>) {\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.request));\r\n\r\n try {\r\n const unblockedUserRequest: UserCreationRequest = yield call(\r\n usersService.unblockUserRequest,\r\n action.payload.userRequestId,\r\n action.payload.concurrencyStamp,\r\n );\r\n yield put(userRequestAdminActions.userRequestUnblocked(unblockedUserRequest));\r\n yield put(userRequestAdminActions.setOperationState(action.payload.userRequestId, RequestState.success));\r\n } catch (e) {\r\n yield handleRequestError(action.payload.userRequestId, e);\r\n }\r\n}\r\n\r\nfunction* handleRequestError(userRequestId: number, e: { status: number }) {\r\n yield put(userRequestAdminActions.setOperationState(userRequestId, RequestState.failure));\r\n if (e.status === 409) {\r\n yield put(notificationActions.notificationAddErrorMessageModal(\r\n \"It is likely that the сreate user request has already been approved/blocked. Please refresh the page'. \",\r\n \"\",\r\n true)\r\n );\r\n } else {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchDeleteUserRequest(action: ActionType<{ userRequestId: number }>) {\r\n try {\r\n yield call(usersService.deleteUserRequest, action.payload.userRequestId);\r\n yield put(userRequestAdminActions.userRequestDeleted(action.payload.userRequestId));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchGetPendingUserRequestCount() {\r\n try {\r\n const count: number = yield call(usersService.gePendingUserRequestCount);\r\n yield put(userRequestAdminActions.setPendingUserRequestCount(count, RequestState.success));\r\n } catch (e) {\r\n yield put(userRequestAdminActions.setPendingUserRequestCount(0, RequestState.failure));\r\n logger.exception(e, 'could not get pending user request count')\r\n }\r\n}\r\n\r\nexport function* watchUserRequestAdmin() {\r\n yield takeEvery(getType(userRequestAdminActions.approve), watchApprove);\r\n yield takeEvery(getType(userRequestAdminActions.block), watchBlock);\r\n yield takeEvery(getType(userRequestAdminActions.unblock), watchUnblock);\r\n yield takeEvery(getType(userRequestAdminActions.deleteUserRequest), watchDeleteUserRequest);\r\n yield takeEvery(getType(userRequestAdminActions.getPendingUserRequestCount), watchGetPendingUserRequestCount)\r\n}\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport { signupActions } from \"../actions/signup.actions\";\r\nimport { notificationActions } from '../actions/notification.actions';\r\nimport { routes } from '../constants/routes';\r\nimport { accountService } from '../services/account.service';\r\nimport { history } from '../history';\r\n\r\nfunction* watchSubmit(action: ActionType) {\r\n try {\r\n yield call(accountService.saveSignupForm, action.payload.request);\r\n yield put(signupActions.submitSuccess());\r\n yield call(history.replace, routes.signUpConfirm);\r\n } catch (e) {\r\n yield put(notificationActions.notificationAddErrorMessage('Sign up form submission failed'));\r\n yield put(signupActions.submitError());\r\n }\r\n}\r\n\r\nexport function* watchSignup() {\r\n yield takeEvery(getType(signupActions.submit), watchSubmit);\r\n}\r\n","import { ActionType, getType } from \"typesafe-actions\";\r\nimport { call, put, takeEvery, takeLatest } from \"redux-saga/effects\";\r\nimport { priceTalksActions } from \"../actions/price-talks.actions\";\r\nimport { errorActions } from '../actions/error.actions';\r\nimport { pushDataActions } from '../constants/actionTypes/push.data.actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { PxTalk } from \"../types/bwic/PxTalk\";\r\nimport { pxTalkService } from '../services/pxTalk.service';\r\n\r\nfunction* watchRequest(action: ActionType) {\r\n try {\r\n const priceTalks: PxTalk[] = yield call(pxTalkService.fetchPxTalks, action.payload.bwicReferenceName, action.payload.positionId);\r\n yield put(priceTalksActions.requestResult(action.payload.positionId, RequestState.success, priceTalks));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(priceTalksActions.requestResult(action.payload.positionId, RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* watchAdd(action: { type: string; positionId: number; priceTalk: PxTalk; }) {\r\n yield put(priceTalksActions.addPriceTalk(action.positionId, action.priceTalk));\r\n}\r\n\r\nexport function* watchPriceTalks() {\r\n yield takeLatest(getType(priceTalksActions.request), watchRequest);\r\n yield takeEvery(pushDataActions.PUSH_DATA_NEW_PX_TALK, watchAdd);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { errorActions } from \"../actions\";\r\nimport { settlementAccountActions } from '../actions/settlement-account.actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { settlementService } from '../services/settlement.service';\r\nimport { SettlementAccount } from \"../types/settlement/SettlementAccount\";\r\n\r\nfunction* watchRequest() {\r\n try {\r\n const accounts: SettlementAccount[] = yield call(settlementService.getSettlementAccounts);\r\n yield put(settlementAccountActions.requestResult(RequestState.success, accounts));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(settlementAccountActions.requestResult(RequestState.failure));\r\n }\r\n}\r\n\r\nexport function* watchSettlementAccount() {\r\n yield takeEvery(getType(settlementAccountActions.request), watchRequest);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType, ActionType } from \"typesafe-actions\";\r\nimport { errorActions } from \"../actions\";\r\nimport { tradeAllocationActions } from \"../actions/trade-allocation.actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { settlementService } from \"../services/settlement.service\";\r\nimport { TradeAllocationItem } from \"../types/trade-allocation/TradeAllocationItem\";\r\n\r\nfunction* watchTradeAllocationRequest(action: ActionType) {\r\n try {\r\n const allocation: TradeAllocationItem[] = yield call(settlementService.getTradeAllocation, action.payload.tradeId);\r\n yield put(tradeAllocationActions.requestResult(action.payload.tradeId, RequestState.success, allocation));\r\n\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(tradeAllocationActions.requestResult(action.payload.tradeId, RequestState.failure));\r\n }\r\n}\r\n\r\nexport function* watchTradeAllocation() {\r\n yield takeEvery(getType(tradeAllocationActions.request), watchTradeAllocationRequest);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { errorActions } from \"../actions\";\r\nimport { tradeAllocationTemplateActions } from '../actions/trade-allocation-template.actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { tradeAllocationTemplateService } from '../services/trade-allocation-template.service';\r\nimport { TradeAllocationTemplate } from \"../types/trade-allocation/template/TradeAllocationTemplate\";\r\n\r\nfunction* watchRequest() {\r\n try {\r\n const templates: TradeAllocationTemplate[] = yield call(tradeAllocationTemplateService.getTemplates);\r\n yield put(tradeAllocationTemplateActions.requestResult(RequestState.success, templates));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(tradeAllocationTemplateActions.requestResult(RequestState.failure));\r\n }\r\n}\r\n\r\nexport function* watchTradeAllocationTemplate() {\r\n yield takeEvery(getType(tradeAllocationTemplateActions.request), watchRequest);\r\n}\r\n","import { AccessTokenApi, AccessToken } from '../types/management/AccessToken';\r\nimport { fetchSafe } from './fetch.safe';\r\n\r\nconst getTokens = (): Promise => {\r\n return fetchSafe('/api/tokens')\r\n}\r\n\r\nconst saveToken = (id: number | undefined, companyId: number, apis: AccessTokenApi[]): Promise => {\r\n const requestOptions = {\r\n method: 'POST',\r\n body: JSON.stringify({ id, companyId, apis })\r\n };\r\n return fetchSafe('/api/tokens', requestOptions);\r\n}\r\n\r\nconst revokeToken = (id: number): Promise => {\r\n const requestOptions = {\r\n method: 'PUT',\r\n body: JSON.stringify({ id })\r\n };\r\n return fetchSafe('/api/tokens', requestOptions);\r\n}\r\n\r\nexport const manageTokensService = {\r\n getTokens,\r\n saveToken,\r\n revokeToken\r\n}\r\n","import { call, put, takeEvery } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { errorActions } from '../actions';\r\nimport { manageTokenActions } from '../actions/manage-tokens.actions';\r\nimport { companyRoles } from '../constants';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { companiesService } from '../services';\r\nimport { manageTokensService } from '../services/manage-tokens.service';\r\nimport { AccessToken } from '../types/management/AccessToken';\r\nimport { Company } from '../types/management/Company';\r\n\r\nfunction* wathRequestTokens() {\r\n yield put(manageTokenActions.setTokenRequestStatus(RequestState.request));\r\n try {\r\n const tokens: AccessToken[] = yield call(manageTokensService.getTokens);\r\n yield put(manageTokenActions.storeTokens(tokens));\r\n yield put(manageTokenActions.setTokenRequestStatus(RequestState.success));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchGenerateToken(action: ActionType) {\r\n yield put(manageTokenActions.setGenerateRequestStatus(RequestState.request));\r\n\r\n try {\r\n const token: AccessToken = yield call(manageTokensService.saveToken, undefined, action.payload.companyId, action.payload.apis);\r\n yield put(manageTokenActions.storeGeneratedToken(token));\r\n yield put(manageTokenActions.setGenerateRequestStatus(RequestState.success));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchUpdateToken(action: ActionType) {\r\n yield put(manageTokenActions.setUpdateTokenRequestStatus(RequestState.request));\r\n\r\n try {\r\n const token: AccessToken = yield call(manageTokensService.saveToken, action.payload.tokenId, action.payload.companyId, action.payload.apis);\r\n yield put(manageTokenActions.tokenUpdated(token));\r\n yield put(manageTokenActions.setUpdateTokenRequestStatus(RequestState.success));\r\n } catch (e) {\r\n yield put(manageTokenActions.setUpdateTokenRequestStatus(RequestState.failure));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchRevokeToken(action: ActionType) {\r\n try {\r\n yield put(manageTokenActions.setRevokeTokenRequestStatus(action.payload.tokenId, RequestState.request));\r\n yield call(manageTokensService.revokeToken, action.payload.tokenId);\r\n yield put(manageTokenActions.tokenRevoked(action.payload.tokenId));\r\n yield put(manageTokenActions.setRevokeTokenRequestStatus(action.payload.tokenId, RequestState.success));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(manageTokenActions.setRevokeTokenRequestStatus(action.payload.tokenId, RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* watchRequestCompanies() {\r\n yield put(manageTokenActions.setCompanyRequestStatus(RequestState.request));\r\n try {\r\n const allCompanies: Company[] = yield call(companiesService.getCompanies);\r\n const companies: Company[] = allCompanies\r\n .filter(c =>\r\n c.role !== companyRoles.Administrator &&\r\n c.role !== companyRoles.Viewer)\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n\r\n yield put(manageTokenActions.storeCompanies(companies));\r\n yield put(manageTokenActions.setCompanyRequestStatus(RequestState.success));\r\n\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nexport function* watchManageTokens() {\r\n yield takeEvery(getType(manageTokenActions.requestTokens), wathRequestTokens);\r\n yield takeEvery(getType(manageTokenActions.requestCompanies), watchRequestCompanies);\r\n yield takeEvery(getType(manageTokenActions.generate), watchGenerateToken);\r\n yield takeEvery(getType(manageTokenActions.update), watchUpdateToken);\r\n yield takeEvery(getType(manageTokenActions.revoke), watchRevokeToken);\r\n}\r\n","import { takeLatest, put, call, takeEvery } from 'redux-saga/effects';\r\nimport { getType } from 'typesafe-actions';\r\nimport { portfolioAgreementDisclaimerActions } from '../actions/portfolio-agreement-disclaimer.actions';\r\nimport { accountActions } from '../constants';\r\nimport { accountService } from '../services';\r\nimport { errorActions } from '../actions';\r\nimport { user } from '../user';\r\nimport { saveAs } from 'file-saver';\r\n\r\nfunction* watchConfirmRequest() {\r\n try {\r\n yield call(accountService.setPortfolioAgreementSigned);\r\n user.setPortfolioAgreementSigned(true);\r\n yield put(portfolioAgreementDisclaimerActions.hide(true));\r\n yield put(portfolioAgreementDisclaimerActions.confirmSuccess());\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(portfolioAgreementDisclaimerActions.confirmFailure());\r\n }\r\n}\r\n\r\nfunction* watchDownloadFileRequest() {\r\n try {\r\n const file: { name: string, blob: Blob } = yield call(accountService.downloadPortfolioAgreementFile);\r\n saveAs(file.blob, file.name);\r\n yield put(portfolioAgreementDisclaimerActions.downloadFileSuccess());\r\n } catch (e) {\r\n yield put(portfolioAgreementDisclaimerActions.downloadFileFailure());\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(portfolioAgreementDisclaimerActions.reset());\r\n}\r\n\r\nexport function* watchPortfolioAgreementDisclaimer() {\r\n yield takeLatest(getType(portfolioAgreementDisclaimerActions.confirmRequest), watchConfirmRequest);\r\n yield takeLatest(getType(portfolioAgreementDisclaimerActions.downloadFileRequest), watchDownloadFileRequest);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import moment from 'moment';\r\nimport { all, call, put, select, takeEvery, takeLatest } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport saveAs from 'file-saver';\r\nimport { errorActions } from '../actions';\r\nimport { newsActions } from '../actions/news.actions';\r\nimport { releaseService } from '../services/release.service';\r\nimport { MarketingEventType, ReleaseItem, ReleaseItemType, Releases } from '../types/marketing/Release';\r\nimport { compact, find, flatMap } from 'lodash';\r\nimport { MarketingEvent } from '../types/marketing/MarketingEvent';\r\nimport { Conference } from '../types/marketing/Conference';\r\nimport { Webinar } from '../types/marketing/Webinar';\r\nimport { NewsNavigation } from '../types/news/News';\r\nimport { newsService } from '../services/news.service';\r\nimport { News } from '../types/news/News';\r\nimport { NewsCategory, NewsTabToCategory } from '../types/news/enums/NewsCategory';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { constants, routes } from '../constants';\r\nimport { NewsTabCategory } from '../types/news/enums/NewsTabCategory';\r\nimport { history } from '../history';\r\n\r\n// Here order matters — 1. New Feature, 2. Improvement\r\nconst ReleaseItemTypeGroups = [ReleaseItemType.NewFeature, ReleaseItemType.Improvement];\r\n\r\nconst convertReleaseItem = (releaseItem: ReleaseItem): MarketingEvent => ({\r\n title: releaseItem.releaseItemType === ReleaseItemType.NewFeature ? 'New Features' : 'Improvements',\r\n description: releaseItem.title,\r\n type: MarketingEventType.Release,\r\n link: process.env.REACT_APP_WHATS_NEW_POPUP_READ_MORE,\r\n imageReferenceName: releaseItem.imageReferenceName,\r\n releaseItemType: releaseItem.releaseItemType,\r\n});\r\n\r\nconst convertWebinar = (webinar: Webinar): MarketingEvent => ({\r\n title: 'Webinar',\r\n description: webinar.title,\r\n type: MarketingEventType.Webinar,\r\n link: webinar.link,\r\n linkName: webinar.linkName,\r\n imageReferenceName: webinar.imageReferenceName,\r\n speakerTitle: webinar.speakerTitle,\r\n speakerName: webinar.speakerName,\r\n});\r\n\r\nconst convertConference = (conference: Conference): MarketingEvent => ({\r\n title: 'Conference',\r\n description: conference.title,\r\n type: MarketingEventType.Conference,\r\n link: conference.link,\r\n linkName: conference.linkName,\r\n imageReferenceName: conference.imageReferenceName,\r\n});\r\n\r\nfunction composeEventsList(releases: Releases, conferences: Conference[], webinar?: Webinar) {\r\n const releaseItems = compact(flatMap(releases.releases, x =>\r\n x.releaseItems?.map(convertReleaseItem),\r\n ));\r\n\r\n // Find latest Improvements and New Features\r\n let orderedReleaseItems = ReleaseItemTypeGroups.map(itemType =>\r\n find(releaseItems, item => item.releaseItemType === itemType),\r\n );\r\n\r\n const [firstReleaseItem, secondReleaseItem] = orderedReleaseItems;\r\n\r\n if (conferences.length > 1 && firstReleaseItem && secondReleaseItem) {\r\n orderedReleaseItems = [{\r\n ...firstReleaseItem,\r\n description: `${firstReleaseItem?.description}. ${secondReleaseItem?.description}`,\r\n\r\n // Prioritize this type for tracking\r\n releaseItemType: ReleaseItemType.NewFeature,\r\n title: 'New Features and Improvements'\r\n } as MarketingEvent];\r\n }\r\n\r\n // Here order matters — 1. Webinars, 2. Conferences, 3. New Feature, 4. Improvements\r\n return compact([\r\n webinar\r\n ? convertWebinar(webinar)\r\n : undefined,\r\n ...conferences.map(convertConference),\r\n ...orderedReleaseItems,\r\n ]);\r\n}\r\n\r\nfunction* fetchMarketingEvents() {\r\n let conferences: Conference[];\r\n let webinar: Webinar;\r\n let releases: Releases;\r\n\r\n [conferences, webinar, releases] = yield all([\r\n call(releaseService.fetchConferences),\r\n call(releaseService.fetchWebinar),\r\n call(releaseService.fetchReleases),\r\n ]);\r\n\r\n return composeEventsList(releases, conferences, webinar);\r\n}\r\n\r\nfunction* watchFetchTotalNewsCount(action: ActionType) {\r\n try {\r\n const [\r\n totalNewsAll,\r\n totalNewsPrimary,\r\n totalNewsSecondary,\r\n totalNewsResearch,\r\n ]: number[] = yield all([\r\n call(newsService.getNewsTotalCount, {}),\r\n call(newsService.getNewsTotalCount, { categories: [NewsCategory.Primary] }),\r\n call(newsService.getNewsTotalCount, { categories: [NewsCategory.Secondary] }),\r\n call(newsService.getNewsTotalCount, { categories: [NewsCategory.Research] }),\r\n ]);\r\n\r\n yield put(\r\n newsActions.fetchTotalNewsCountResponse({\r\n [NewsTabCategory.All]: totalNewsAll,\r\n [NewsTabCategory.Primary]: totalNewsPrimary,\r\n [NewsTabCategory.Secondary]: totalNewsSecondary,\r\n [NewsTabCategory.Research]: totalNewsResearch,\r\n }),\r\n );\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchFetchMarketingEventRequest() {\r\n try {\r\n const events: MarketingEvent[] = yield fetchMarketingEvents();\r\n\r\n yield put(newsActions.fetchMarketingEventsResponse(events));\r\n } catch (e) {\r\n yield put(newsActions.fetchMarketingEventsResponse([]));\r\n }\r\n}\r\n\r\nfunction* watchFetchNewsRequest(action: ActionType) {\r\n const isNewsCached: boolean = yield select(\r\n (s: AppState) => !!s.news.news[action.payload.tab].get(action.payload.page)?.length,\r\n );\r\n\r\n if (isNewsCached) {\r\n return;\r\n }\r\n\r\n const category = NewsTabToCategory[action.payload.tab];\r\n\r\n try {\r\n const news: News[] = yield call(newsService.getNews, {\r\n count: constants.newsOnPage,\r\n offset: action.payload.page * constants.newsOnPage - constants.newsOnPage,\r\n categories: category ? [category] : undefined,\r\n });\r\n\r\n yield put(newsActions.fetchNewsResponse(news, action.payload.page, action.payload.tab));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchDeleteNews(action: ActionType) {\r\n try {\r\n yield call(newsService.deleteNews, action.payload.referenceName);\r\n\r\n yield put(newsActions.resetNewsList());\r\n\r\n yield put(newsActions.fetchNewsRequest(action.payload.page, action.payload.tab));\r\n yield put(newsActions.fetchTotalNewsCountRequest());\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchDeleteSingleNews(action: ActionType) {\r\n try {\r\n yield call(newsService.deleteNews, action.payload.referenceName);\r\n yield call(history.push, routes.newsUrl());\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchFetchNews(action: ActionType) {\r\n try {\r\n const { newsReferenceName, queryParams } = action.payload;\r\n\r\n const news: NewsNavigation = yield call(newsService.getNewsDetails, newsReferenceName, queryParams);\r\n\r\n yield put(newsActions.fetchNewsDetailsResponse(news));\r\n } catch (e) {\r\n yield call(history.replace, routes.newsUrl());\r\n }\r\n}\r\n\r\nfunction* watchLogUserActivity(action: ActionType) {\r\n try {\r\n yield call(newsService.logUserActivity, action.payload.accessType);\r\n\r\n if (action.payload.link) {\r\n window.open(action.payload.link, '_self');\r\n }\r\n } catch (e) {\r\n yield put(errorActions.error(e));\r\n }\r\n}\r\n\r\nfunction* watchDownloadDocument(action: ActionType) {\r\n const { newsReferenceName, documentReferenceName, fileName } = action.payload;\r\n\r\n try {\r\n let file: { blob: Blob } = yield call(newsService.downloadDocument, newsReferenceName, documentReferenceName)\r\n\r\n saveAs(file.blob, fileName);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchDownloadDocuments(action: ActionType) {\r\n const { newsItem } = action.payload;\r\n\r\n try {\r\n let file: { blob: Blob } = yield call(newsService.downloadDocuments, newsItem.referenceName);\r\n\r\n saveAs(file.blob, `K-Watch News ${moment(newsItem.newsDateTime).format(constants.dateFormat)} attachment.zip`);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nexport function* watchNews() {\r\n yield takeEvery(getType(newsActions.fetchMarketingEventsRequest), watchFetchMarketingEventRequest);\r\n yield takeLatest(getType(newsActions.fetchNewsRequest), watchFetchNewsRequest);\r\n yield takeLatest(getType(newsActions.fetchTotalNewsCountRequest), watchFetchTotalNewsCount);\r\n yield takeLatest(getType(newsActions.deleteNews), watchDeleteNews);\r\n yield takeEvery(getType(newsActions.fetchNewsDetails), watchFetchNews);\r\n yield takeEvery(getType(newsActions.logUserActivity), watchLogUserActivity);\r\n yield takeLatest(getType(newsActions.deleteSingleNews), watchDeleteSingleNews);\r\n yield takeLatest(getType(newsActions.downloadDocument), watchDownloadDocument);\r\n yield takeLatest(getType(newsActions.downloadDocuments), watchDownloadDocuments);\r\n}\r\n","import { fork } from 'redux-saga/effects';\r\nimport { watchNotifications } from './notifications.saga';\r\nimport { watchBlotter } from './blotter.saga';\r\nimport { watchOnBoardingTooltip } from './onBoardinTooltip.saga';\r\nimport { watchDashboard } from './dashboard.saga';\r\nimport { watchSecurityDetails } from './security-details.saga';\r\nimport { watchClientCompanies } from './clients-companies.saga';\r\nimport { watchSellerBuyside } from './seller-buyside.saga';\r\nimport { watchSubscriptions } from './subscriptions.saga';\r\n//import { watchBillingInfo } from './billing-info.saga';\r\n//import { watchPaymentMethod } from './payment-method.saga';\r\n//import { watchUpgradeSubscription } from './upgrade-subscription.saga';\r\nimport { watchContactSales } from './contact-sales.saga';\r\nimport { watchSalesRepresentative } from './sales-representative.saga';\r\nimport { watchBidOnBehalf } from './bid-on-behalf.saga';\r\nimport { watchBillingHistory } from './subscription-biling-history.saga';\r\nimport { watchApiOperation } from './api-operation.saga';\r\nimport { watchFavoriteBrokerDealers } from './favorite-broker-dealers.saga';\r\nimport { watchBdInventory } from './bd-inventory.saga';\r\nimport { watchInventory } from './inventory-saga';\r\nimport { watchClearingBank } from './clearing-bank.saga';\r\nimport { watchBlastMessage } from './blast-message.saga';\r\nimport { watchRelease } from './release.saga';\r\nimport { watchCompanyDetails } from './company-details.saga';\r\nimport { watchDealerListPanel } from './dealer-list-panel.saga';\r\nimport { watchAddToPortfolio } from \"./add-to-portfolio.saga\";\r\nimport { watchBrokerDealerContactList } from './broker-dealer-contact-list.saga';\r\nimport { watchBrokerDealerUserList } from './broker-dealer-user-list.saga';\r\nimport { watchDealerList } from './dealer-list.saga';\r\nimport { watchNewBwicDealers } from './new-bwic-dealers.saga';\r\nimport { watchBrokerDealerList } from './broker-dealer-list.saga';\r\nimport { watchDirectBiddingDisclaimer } from './direct-bidding-agreement-disclaimer.saga';\r\nimport { watchSellerAdminDealers } from './seller-admin-dealers.saga';\r\nimport { watchPortfolioList } from \"./portfolio-list.saga\";\r\nimport { watchManageEmailPreferences } from './manage-email-preferences.saga';\r\nimport { watchSellerAdminLimit } from './seller-admin-limit.saga';\r\nimport { watchSellerAdminUsers } from './seller-admin-users.saga';\r\nimport { watchBrokerDealerBidding } from './broker-dealer-bidding.saga';\r\nimport { watchUserRequestAdmin } from './user-request-admin.saga';\r\nimport { watchImUserConfig } from './im-user-config.saga';\r\nimport { watchAdminInventoryEdit } from './admin-inventory-edit.saga';\r\nimport { watchInventoryEdit } from './inventory-edit.saga';\r\nimport { watchSignup } from './signup.saga';\r\nimport { watchPriceTalks } from './price-talks.saga';\r\nimport { watchEmailPreferences } from './email-preferences.saga';\r\nimport { watchSettlementAccount } from './settlement-account.saga';\r\nimport { watchAssetManager } from './asset-manager.saga';\r\nimport { watchTradeAllocation } from './trade-allocation.saga';\r\nimport { watchTradeAllocationTemplate } from './trade-allocation-template.saga';\r\nimport { watchAwaitingTrades } from './entities/awaiting-trades.saga';\r\nimport { watchRejectedTrades } from './entities/rejected-trades.saga';\r\nimport { watchTransactionHistory } from './amr-transaction-history.saga';\r\nimport { watchAmrPipelineCommon } from './amr-pipeline-common.saga';\r\nimport { watchHelpResources } from './help-resources.saga';\r\nimport { watchAmrTransactionAnalytics } from './amr-transaction-analytics.saga'\r\nimport { watchArrangerPipelineSaga } from './amr-arranger-pipeline.saga';\r\nimport { watchManageTokens } from './manage-tokens.saga'\r\nimport { watchCloManagers } from './clo-managers.saga';\r\nimport { watchAddress } from './address.saga';\r\nimport { watchChangeSubscription } from './change-subscription.saga';\r\nimport { watchPortfolioAgreementDisclaimer } from './portfolio-agreement-disclaimer.saga';\r\nimport { watchAllBwics } from './allbwics.saga';\r\nimport { watchFilter } from './filter.saga';\r\nimport { watchNews } from './news.saga';\r\nimport { watchEditNews } from './edit-news.saga';\r\nimport { watchBwicLog } from './bwic-log.saga';\r\nimport { watchBanks } from './banks.saga';\r\nimport { watchCompanyMembers } from './company-members.saga';\r\nimport { watchDeals } from './deals.saga';\r\n\r\nexport function* watchMain() {\r\n yield fork(watchNotifications);\r\n yield fork(watchBlotter);\r\n yield fork(watchOnBoardingTooltip);\r\n yield fork(watchDashboard);\r\n yield fork(watchSecurityDetails);\r\n yield fork(watchBwicLog);\r\n yield fork(watchClientCompanies);\r\n yield fork(watchSellerBuyside);\r\n yield fork(watchSubscriptions);\r\n //yield fork(watchBillingInfo);\r\n //yield fork(watchPaymentMethod);\r\n yield fork(watchEmailPreferences);\r\n yield fork(watchChangeSubscription);\r\n //yield fork(watchUpgradeSubscription);\r\n yield fork(watchContactSales);\r\n yield fork(watchSalesRepresentative);\r\n yield fork(watchBidOnBehalf);\r\n yield fork(watchApiOperation);\r\n yield fork(watchBillingHistory);\r\n yield fork(watchFavoriteBrokerDealers);\r\n yield fork(watchBdInventory);\r\n yield fork(watchInventory);\r\n yield fork(watchClearingBank);\r\n yield fork(watchBlastMessage);\r\n yield fork(watchCompanyDetails);\r\n yield fork(watchDealerListPanel);\r\n yield fork(watchAddToPortfolio);\r\n yield fork(watchBrokerDealerUserList);\r\n yield fork(watchBrokerDealerContactList);\r\n yield fork(watchDealerList);\r\n yield fork(watchRelease);\r\n yield fork(watchNewBwicDealers);\r\n yield fork(watchBrokerDealerList);\r\n yield fork(watchDirectBiddingDisclaimer);\r\n yield fork(watchSellerAdminDealers);\r\n yield fork(watchPortfolioList);\r\n yield fork(watchSellerAdminLimit);\r\n yield fork(watchSellerAdminUsers);\r\n yield fork(watchBrokerDealerBidding);\r\n yield fork(watchUserRequestAdmin);\r\n yield fork(watchImUserConfig);\r\n yield fork(watchAdminInventoryEdit);\r\n yield fork(watchInventoryEdit);\r\n yield fork(watchSignup);\r\n yield fork(watchPriceTalks);\r\n yield fork(watchManageEmailPreferences);\r\n yield fork(watchSettlementAccount);\r\n yield fork(watchAssetManager);\r\n yield fork(watchTradeAllocation);\r\n yield fork(watchTradeAllocationTemplate);\r\n yield fork(watchAwaitingTrades);\r\n yield fork(watchTransactionHistory);\r\n yield fork(watchAmrPipelineCommon);\r\n yield fork(watchRejectedTrades);\r\n yield fork(watchHelpResources);\r\n yield fork(watchAmrTransactionAnalytics);\r\n yield fork(watchArrangerPipelineSaga);\r\n yield fork(watchManageTokens);\r\n yield fork(watchCloManagers);\r\n yield fork(watchAddress);\r\n yield fork(watchPortfolioAgreementDisclaimer);\r\n yield fork(watchAllBwics);\r\n yield fork(watchFilter);\r\n yield fork(watchNews);\r\n yield fork(watchEditNews);\r\n yield fork(watchBanks);\r\n yield fork(watchCompanyMembers);\r\n yield fork(watchDeals);\r\n}\r\n","import { applyMiddleware, compose, createStore } from 'redux';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport { thunk } from 'redux-thunk';\r\nimport createRootReducer from './reducers';\r\nimport { watchMain } from './sagas/main.saga';\r\n\r\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\nconst sagaMiddleware = createSagaMiddleware();\r\n\r\nconst store = createStore(\r\n createRootReducer(),\r\n {},\r\n composeEnhancers(\r\n applyMiddleware(\r\n sagaMiddleware,\r\n thunk\r\n )\r\n ),\r\n);\r\n\r\nsagaMiddleware.run(watchMain);\r\n\r\nexport { store };\r\n","export function classnames(names) {\r\n return Object\r\n .keys(names)\r\n .map(key => names[key] ? key : '')\r\n .join(' ')\r\n}"],"names":["amrPipelineSelector","pipelineType","state","PipelineType","Deals","issuanceMonitor","amrPipeline","amrPipelineIOIs","arrangerPipelineSelector","createSelector","amrArrangerPipeline","arrangerPipeline","amrDealsSelector","deals","summarySelector","amrPipelineFilterSelector","filter","_amrPipeline$deals","isSummaryRequesting","transactionsStatistic","classesStatistic","lastAppliedFilter","initialFilter","shouldShowClassesSummary","ratings","f","selected","length","initialFilterCriteria","getFilterCriteria","lastAppliedFilterCriteria","shouldShowTransactionsSummary","isEqual","issuanceMonitorFilterSelector","ArrangerPipeline","arrangerPipelineFilterSelector","issuanceMonitorSearchTransactionsSelector","searchTransactions","arrangerPipelineDealsSelector","arrangerPipelineApplyDisabledSelector","filters","filterApplied","visibleFilters","isLoading","filterErrors","map","filterRange","fromRange","from","toRange","to","type","FilterType","Range","Number","applyDisabledSelector","_amrPipeline$deals2","isTransactionsSearching","isClassesSearching","_amrPipeline$filter","_filterDate$filter$op","_filterDate$filter$op2","_filterDate$filter$op3","_filterDate$filter$op4","_filterDate$filter$op5","_filterDate$filter$op6","_filterDate$filter$op7","_filterDate$filter$op8","_filterDateTimeRange$","_filterDateTimeRange$2","filterDate","filterDateTimeRange","fromDate","options","customDateRange","toDate","fromYearsRange","customYearsRange","toYearsRange","fromDateTimeRange","selectedOption","toDateTimeRange","DateWithYearsRange","Date","YearsDate","DateWithYearsAndTimeRange","validateYear","getFullYear","date","amrDealsApplyDisabledSelector","bwicChangedFlagSelector","isInitializing","activeStep","submitted","process","timeZones","hasBwicPositions","daysToSettle","nextBusinessDay","bidsDue","goodUntil","timeZone","hasPositions","newBWICSteps","securities","constants","daysToSettleDefault","moment","isSame","dateTimeUtils","timestampFromUtcString","bidDueDefaultTimestamp","goodUntilDefaultTimestamp","id","dealerInventorySelector","entities","inventory","items","bdInventory","searchSecurities","searchTermItems","collateralManagers","requestState","searchIsinTickerItems","managersRequestState","isDynamicFiltersLoaded","isRequestSuccess","isRequestFailed","selectedFilters","getSelectedFilters","inventories","i","_objectSpread","ncEnd","ncEndMonth","ncEndYear","formatUtils","formatMonthAndYear","concat","riEnd","riEndMonth","riEndYear","statusName","InventoryPositionStatus","status","item","searchIsinTicker","_i$collateralManager","_i$trustee","selectedDateOption","isCurrent","key","dateRangeFilterOptions","CurrentInventory","currentInventoryStatuses","added","undefined","updated","some","t","ticker","includes","isinCusip","traded","lastUpdateDate","compareByDateRange","maturity","statedMaturity","vintage","closing","closingDate","nonCallEnd","compareByDateYearRange","nonCallPeriodEnd","reinvestmentEnd","reinvestmentPeriodEnd","currency","compareStrings","rating","managers","collateralManager","referenceName","collateralType","trustees","trustee","esg","compareBoolean","euCompliance","staticDeal","amr","statuses","compareNumbers","outOfNC","compareBooleanStrict","outOfRI","applyFilterCriteria","getBrokerDealerList","brokerDealerList","getBrokerDealerContactList","brokerDealerContactList","getBrokerDealerUserList","brokerDealerUserList","filterDealers","dealers","contacts","users","agreements","isAllToAll","c","_agreements$find","user","hasRoles","roles","BrokerDealerTrader","isClearingBank","find","a","settlementAgent","agreementStatus","SettlementAgreementStatus","confirmed","cc","companyId","cu","distributionList","headOfTrading","dealersSelector","settlementAgentAgreements","sort","b","CompanyStatus","active","name","localeCompare","isRequestedInitialData","getCompanies","companies","lastAppliedCompanyFilter","companyOrderBy","companyFilter","searchTerm","orderBy","forEach","primaryContact","u","primaryContactId","members","rolesText","companyRoles","getTitle","role","subscriptionText","company","hasActiveUsers","userStatuses","statusCode","trialPeriodEnd","isTrialExpired","SubscriptionType","trial","subscription","getSubscriptionTitle","subscriptionDate","subscriptionExpiration","getSubscriptionDate","filteredResult","_filter$regBy","_filter$salesRepresen","filterCompanies","blocked","offPlatform","administrator","Administrator","brokerDealer","BrokerDealer","seller","Seller","viewer","Viewer","media","Media","regBy","userId","createdById","salesRepresentatives","salesRepresentative","toLowerCase","_c$country","_c$createdBy","_c$subscriptionText","country","createdBy","format","companyStatuses","getByStatusCode","title","concatFullName","firstName","lastName","dateRegistered","sr","bwicDateFilterOptions","custom","filterCompaniesByRange","unspecified","dateFilter","getSearchDateRange","dateFrom","dateTo","applyFilter","column","companyColumns","direction","legalName","getPrimaryContactName","subscriptionEnd","compareDatesNullable","isAfter","isBefore","join","trim","getMemsberList","getActiveMembers","m","getMembers","userRequests","lastAppliedMemberFilter","memberOrderBy","memberFilter","extendedMembers","fullName","companyName","companyStatus","companyStatusName","canUnblock","dateRegisteredUtc","local","dateLastLogin","dateLastLoginUtc","emptyPlaceholder","filteredUserRequests","r","isUserRequest","registrationDate","registrationBy","userRequestStatuses","unprocessedUserRequests","UserRequestStatus","Pending","blockedUserRequests","Blocked","filteredUsers","_toConsumableArray","_filter$companies","filteringResult","UserStatus","Active","invited","Invited","notInvited","NotInvited","pendingApproval","requestStatuses","rolesArray","arrangersClient","ArrangersClient","brokerDealerTrader","brokerDealerViewer","BrokerDealerViewer","dataEntry","DataEntry","sellerAdmin","SellerAdministrator","sellerTrader","SellerTrader","sellerViewer","SellerViewer","subscriptionManager","SubscriptionManager","CollateralManager","member","memberRole","_m$createdBy","email","phone","utcToLocalString","dateFormat4","filterMembersByRange","memberColumns","_a$createdBy","_b$createdBy","getDate","dt","orderByAsc","getFilteredParsedBWICs","manageParsedBwics","bwics","refreshLastUpdatedDate","refreshFlag","bidsDueUtc","lastUpdateAt","duration","lastUpdateAtUtc","getHistory","history","visible","actions","positionId","compareDates","sentDateUtc","addActionProps","currentUser","current","isMyMessage","submittedBy","isResponseMessage","tradingPositionsSelector","tradingPositions","positions","tradingPositionsState","p","getSecuritiesWithLatestBids","includeDirectBids","arguments","s","bids","getLatestBids","allBids","buyerPseudoOrderNumber","arrayUtils","groupBy","bid","biddingUtils","getBidCompanyIdentifier","values","companyBids","getLatestStage1Bids","stagedBiddingStatus","newBwicDealersSelector","visibleCompanies","sortDealersByConfirmedAgreement","getPortfolios","portfolios","portfolio","portfolioName","security","searchTerms","term","indexOf","applySearchTerms","_s$trustee","_s$collateralManager","dealName","dealLegalName","getParticipants","participants","getOffPlatformCompanies","offPlatformCompanies","getFavorites","favorites","getPositions","getAgreements","getAllToAllFlag","getBuyers","allBuyersBids","_s$bids","flat","Array","entries","_ref","_ref2","_slicedToArray","_ref2$$","identifier","getSellerBiddingCompanies","hiddenState","processType","participans","brokerDealers","BwicProcessType","Live","buyers","sortBrokerDealerCompanies","getSellerFinishedCompanies","_s$bids2","confirmedAgreementsByDealer","apiUtils","normalize","accountService","login","password","deviceId","requestOptions","method","headers","body","JSON","stringify","fetchSafe","then","userResult","accessToken","store","logout","apiLogout","isAuthenticated","responseType","none","getAccessToken","_getAccessToken","apply","refreshToken","resetPassword","setUpPassword","model","getAssetManagers","getProfile","changePhoneNumber","phoneNumber","changePassword","getProfileCompany","addCompanyTrader","data","editCompanyTrader","traderId","url","editCompanyContact","departmentValue","enableCompanyTrader","disableCompanyTrader","requestIdentityVerificationCodeEmail","requestIdentityVerificationCodeSms","submitIdentityVerificationCode","code","saveIdentityPhoneNumber","requestPhoneVerificationCode","submitPhoneVerificationCode","deactivateSmsConfirmation","uploadUserImage","file","fileUpload","deleteIdentityPhoneNumber","fetchUserImage","urlBuilder","deleteUserImage","buildVersion","downloadDirectBiddingAgreementPdf","setDirectBiddingAgreementSigned","saveBloombergEmail","bloombergEmail","saveSignupForm","form","saveArrangersClientSignupForm","saveBwicAnnouncementNotifications","json","downloadPortfolioAgreementFile","setPortfolioAgreementSigned","downloadCusipTermsFile","dispatch","actionTypes","LOGOUT","clear","localStorage","removeItem","onBoardingTooltipConst","localStorageKey","requestDirectBiddingPopupLocalStorageKey","requestAllToAllPopupLocalStorageKey","replace","routes","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_user","wrap","_context","prev","next","sent","t0","logger","exception","abrupt","stop","fetch","response","ok","Promise","reject","trackingService","trackAction","eventName","e","addressService","getCountries","getStates","countryId","queryParams","qs","getCities","stateId","amrArrangerPipelineService","getArrangerPipelines","filterCriteria","searchCriteria","searchParams","getArrangerPipelinesCount","getArrangerPipelinesByTicker","tickers","createOrUpdateArrangerPipeline","arrangerPipelines","exportArrangerPipelines","getDealsLegalNames","downloadDisclosureFile","bankReferenceName","downloadManagerPresentation","accessType","getArrangerPipelinesStatistic","deleteArrangerPipeline","queryString","amrCompaniesService","getCompanyInfo","companyReferenceName","getMembersList","getTrusteeList","getCollateralManagerList","getMajorityEquityList","getAmrAgentList","getManagersList","havingDealType","HavingDealType","None","getArrangersList","BdHavingDeals","getBanksList","Banks","getAvailableBrokerDealers","amrPipelineService","getTransactionsList","getTransactionClasses","includeTransaction","getTransactionClassesNames","getTransaction","dealReferenceName","transactionReferenceName","getTransactionHistory","classesOnly","getLatestTransactions","getLatestTransactionsByTicker","getPortfolio","getDocuments","getCollateralQualityTest","getAmrDocuments","registerUser","userEmail","publicPhone","companyLegalName","companyCountryThreeCharsCode","countryCode","companyCityName","city","companyAddress","address","companyZipCode","zipCode","getIntexFile","successHandler","getManagerPresentationFile","getDisclosureFile","getTransactionDocument","getTransactionDocuments","exportPortfolio","exportTransactionsClasses","dealSortCriteria","trasactionClassSortCriteria","orderByTransaction","orderByTransactionClass","getCurrency","getSyndicateContacts","res","getSyndicateContactsByArranger","getIOIs","submitIOIs","iois","readIOIsByUser","ioiReferenceNames","exportIOIs","excludeDeleted","getTransactionClassesSummary","getTransactionsSummary","transactionFilterOptions","statsToCalculate","downloadIntexFile","downloadManagerPresentationFile","logTabAccess","tabAccessType","getDocumentsDownloads","startDate","endDate","dateFormatISO8601","getDaysInTheMarket","getTransactionViewHistory","getTransactionVersions","downloadStatisticDocument","documentReferenceName","documentLink","DownloadedDocumentAccessType","DownloadAllDocuments","DownloadOneDocument","DownloadIntexFile","DownloadManagerPresentationFile","DownloadDisclosureFile","unblockUserRequest","blockUserRequest","saveUser","shareTransactionToClients","recipientsEmails","message","logImUserActivity","getSharedClients","uploadDocument","progressCallback","downloadDocument","requestDemo","updateArrangerClient","token","logAccessToSharedTransaction","getBankTransactions","getDealComparableMetrics","banksService","getBwicBanksList","getBankDetails","getEvents","updateBank","bank","logUserActivity","getBwicsPriceTalks","getAnalytics","currentTime","getProfileViewHistory","dateTimeFormatUtc","exportBankManagersTrans","params","bidOnBehalfService","bwicReferenceName","submitBidsBulk","uploadFile","parseClipboard","text","downloadTemplate","biddingService","getAccessState","requestAccess","comment","submitBids","updateBidAttributes","bidAttributes","sendQuickFeedback","feedbackType","sendOnBehalfQuickFeedback","saveTargetLevel","targetLevel","trade","affirm","affirmModels","rejectModel","checkAwaitingTrades","sendBidRequest","requestType","getLiveBiddingData","billingService","getPaymentCards","setPrimaryCard","deletePaymentCard","addPaymentCard","getBillingContact","saveBillingContact","saveSubscription","isTrial","expirationDate","expiration","toISOString","requestImProSubscription","getSubscriptions","changeSubscription","subscriptionTitle","searchBillingHistory","notifySales","blastMessageService","send","buildService","version","bwicService","getAssets","getFromCache","getOpenBiddingStatus","encodeURIComponent","getBwicHistory","uploadSecurities","getSecuritiesXlsxTemplate","getSecurityDocsZip","searchSecuritiesGlobal","searchByTicker","abortSignal","endpoint","searchBwics","criteria","page","pageSize","sortBy","loadSummary","sortByApiParams","bwicMonitorSortByApiValues","sortOrder","appConfig","isSummaryRowHidden","submit","bwic","exportBwic","exportBwics","parseSecuritiesStirng","getByReferenceName","cancel","reason","markHistoryMessagesAsRead","bwicActions","setColorDistribution","enabled","completeBwic","colorDistributionModel","myBwicsExist","isBdBuy","buyBwics","saveAutoFeedbackConfiguration","configuration","validateTradeLimits","bwicDate","bwicPositions","startOf","utcOffset","securityId","size","moneyUtils","parse","isBwicWithSecuritesExist","securityIds","finishStage","getSecurityBwicStatistics","getClassDetails","bwicDealsService","getDeals","getDealSecurityStatistics","dealTickers","downloadDealSecurityDocuments","dealTicker","onFetched","storage","sessionStorage","disableRequestCancelation","cached","getItem","result","setItem","_unused","console","log","resolve","_getAnalytics","cloManagersService","getCloManager","createOrUpdateCloManager","cloManager","switchFavorite","favorite","_x","getInvitedAndActiveManagers","getLatestTransactionsInDeal","managerReferenceName","sortingParams","parseSortingParams","scheduleMeeting","getCloSystemInfrastructures","companiesService","getBrokerDealers","getBrokerDealer","getActiveAssetManagers","getCompany","getCompanyDomains","getCompanyMembers","getCurrentUserCompany","postCompanyApprove","postCompanyReject","rejectReason","changeCompanyStatus","save","companySaveModel","setMemberOfacStatus","memberId","setCompanyOfacStatus","getBwicParticipants","sendDistributionListInvite","sendHeadOfTrdingInvite","addToFavorites","deleteFromFavorites","exportCompanies","regByFrom","regByTo","salesRepresentativeIds","regByIds","orderByColumn","getClearingBankBwicParticipants","contactSalesService","sendRequest","request","dealsService","getDeal","getDealRegularDocuments","getDealDocuments","getCleansingNoticeDocuments","getClassAuctions","classReferenceName","getLatestDealAuctions","getDealDocumentsByType","documentType","getDealsList","searchString","offset","count","pipelineFilters","searchItemsPerLoad","getDealDocument","getDealDocumentTemplate","getDealsNamesList","orderByField","ascending","getDealTransactions","getPreviousTransaction","getDealDetails","deleteDeal","updateDeal","formData","updateClasses","classes","getExcludedDealers","saveExcludedDealers","excludedDealersData","getAmrDocument","exportSettlementInstructions","getSettlementInstructions","saveSettlementInstructions","settlementInstructions","updateDealDocuments","documents","saveAmrInfo","amrInfo","deleteAmrInfo","downloadAmrDocument","downloadAmrDocuments","documentsService","documentStoreType","getDocumentUrlByType","uploadAndAssignDocument","documentId","DocumentStoreType","Default","downloadAllDocuments","documentGroupKey","Settlement","Error","getDownloadAllUrlByType","deleteDocument","downloadSecurities","getSecurityDocumentsExistFlag","downloadStatic","filename","Disclosure","emailPreferencesService","getEmailPreferences","saveEmailPreferences","preferences","saveBwicByRating","bwicByRatingPreferences","getMethod","toUpperCase","awaitTimeout","delay","setTimeout","retryAttempt","requestCancelationSignal","requestCancelationController","signal","handleResponse","responseTypes","t1","fileUtils","getFileNameFromResponse","blob","t2","shouldRetry","trace","failure","_x2","refreshTokenController","ensureTokenUpToDate","setOptionsDefaults","statusText","dataItems","onProgress","authorization","xhr","XMLHttpRequest","open","setRequestHeader","onload","target","responseText","onerror","onabort","upload","onprogress","abort","FormData","append","Object","keys","catch","isDraft","entityName","test","_fetchCategories","categories","category","_fetchCategorySections","_callee2","categoryId","_context2","fetchCategoryArticles","_fetchCategoryArticles","_callee3","nextPage","iterationResult","prevCount","_args3","_context3","_fetchSection","_callee4","sectionId","section","_context4","sectionName","categoryName","articles","helpResourcesService","fetchSection","_x3","fetchCategories","fetchCategorySections","fetchBySearch","search","getArticleImage","src","getArticleAttachment","getArticleAttachmentsList","articleId","currencyService","getCurrencies","getCurrencyRate","setCurrencyRate","usdRate","daysService","getNextBusinessDate","getNextBusinessDates","daysCount","isBusinessDay","getHolidays","year","bwicProcessService","getTemplates","list","x","readonly","contactsService","getContacts","addContact","contact","updateContact","deleteContact","contactId","uploadContacts","parseContactsStirng","bulkSave","contactsToSave","contactsToDelete","getXlsxTemplate","inviteBuysideClients","emailList","buysideClientEmails","inviteAllToJoin","sendInvite","locationService","countries","usa","USCountryCode","otherCountries","parsedBwicsService","publish","unpublish","payload","deleteBwic","changeAmrFlag","isAMR","colorService","color","deleteColor","tradingService","isinCusipsAndTickers","settlementStatuses","side","settlFrom","settlTo","_ref$sortOrder","_ref$page","_ref$pageSize","settlementFrom","settlementTo","doesExist","blotterExport","clientDateTime","setVcon","tradeId","isBuyTrade","value","referenceId","buyTrade","setBooked","_ref3","getAwaitingActionTrades","getCurrentTimeStamp","dashboardService","fetchDailyTradingStats","fetchExportTradingStats","currencyFilter","fetchScheduledBwics","fetchPortfolioSecurities","exportBwicStatistic","fetchColorRates","fetchDntRates","fetchSameDayPeriods","fetchDealersStatsExists","fetchDealersStats","exportDealersStats","fetchSellersStatsExists","fetchClientsStats","exportSellerStats","fetchPriceLevel","fetchDtcSellingBuying","fetchMedianAAA","fetchAAAPriceLevel","fetchDtcInvestmentGrade","fetchMostTradedTickers","fetchBiggestMovers","fetchPxTalkDeviation","fetchBwicPercentOfTrace","fetchTopChart","chartType","selectedType","currencyCode","yearFrom","yearTo","collateralTypes","TransactionStatus","Closed","Priced","types","AllTopIssuersTransactionTypes","endOf","exportTopChart","querySortingParams","fetchDeals","additionalCriteria","pricingDate","fetchExportDeals","fetchPortfolioInventorySecurities","fetchIssueTransactionVolumesCount","_ref$transactionType","transactionType","TransactionType","newIssue","refi","reset","_ref$currencyCode","Currency","USD","_ref$statuses","_ref$collateralTypes","_ref$esg","minChartYear","fetchVolumeCountByTransactionTypes","_ref2$transactionType","_ref2$currencyCode","_ref2$statuses","_ref2$collateralTypes","_ref2$euCompliance","fetchVolumesCountShortLongDated","_ref3$transactionType","transactionTypes","_ref3$statuses","nonCallPeriodEndYearsShort","reinvestmentPeriodEndYearsShort","nonCallPeriodEndYearsLong","reinvestmentPeriodEndYearsLong","_nonCallPeriodEndYear","ncEndShortFrom","ncEndShortTo","_reinvestmentPeriodEn","riEndShortFrom","reEndShortTo","_nonCallPeriodEndYear2","ncEndLongFrom","ncEndLongTo","_reinvestmentPeriodEn2","riEndLongFrom","riEndLongTo","asDays","fetchIssuanceSpreads","_ref4","_ref4$transactionType","_ref4$statuses","_ref4$collateralTypes","CollateralType","broadlySyndicated","middleMarket","_ref4$floaterIndexes","floaterIndexes","_ref4$classRatings","classRatings","_ref4$currencyCodes","currencyCodes","_ref4$nonCallPeriodEn","nonCallPeriodEndYears","_ref4$reinvestmentPer","reinvestmentPeriodEndYears","_nonCallPeriodEndYear3","ncEndFrom","ncEndTo","_reinvestmentPeriodEn3","riEndFrom","riEndTo","ncEndPeriod","isNil","riEndPeriod","fetchIssuenseSpreadsComparableData","pipelineRequestCriteria","shortLongDatedDeals","_nonCallPeriodEndYear4","_nonCallPeriodEndYear5","queryArgs","fetchKIndicator","fetchNewIssueWeeklySpreads","onBoardingTooltipService","setCount","feedbackService","sendFeedback","feedbackData","ratingService","getSecurityRatings","getRatingMappings","bidAsDealerRequestService","getBwicBidRequests","findBidRequestsAsSeller","filterOptions","BwicMonitorSortByOptions","NewestFirst","create","brokerDealerId","commission","salesCoverage","bidLock","approve","bidRequestId","bidRequests","exportBidRequestsAsSeller","exportBidRequestsAsDealer","latestBidsOnly","bidAsDealerRequestExist","salesRepresentativesService","getCurrentUserSalesRepresentatives","getList","sales","assign","unassign","photoService","getThumbnail","clearingBankService","saveClearingBankSettings","dailyTradingLimit","commissions","getSettlementAgentCommission","imUserConfigService","getUserConfig","configType","getDefaultUserConfig","createOrUpdateUserConfig","userConfig","withResponse","deleteUserConfig","updateFilterEmailAlertsConfig","filterAlertStatuses","deleteUserFilter","filterType","inventoryService","getInventoryExistFlag","getAllInventory","getBdInventory","getAdminEditInventory","setTraded","inventoryPositionId","lockModifiedDate","tradeDate","inventorySecurities","exportInventoryList","sendEmail","toDealerEmail","selectedDealerEmail","toBloombergEmail","selectedBloombergEmail","getActiveSecurityIdList","manageEmailsService","getEmail","requestParams","getEmailTypes","manageStorageService","clearRedisCache","newsService","getNews","getNewsTotalCount","getNewsDetails","createOrUpdateNews","newsData","deleteNews","newsReferenceName","downloadDocuments","pageConfigService","getConfigs","saveConfig","pageConfigType","pageConfig","getDefaultConfigs","saveFilters","portfolioService","portfolioReferenceName","deletePortfolio","portfolioId","createPortfolio","createNewPortfolio","notifyUser","renamePortfolio","savePositions","saveSecurityPosition","position","exportPortfolios","updatePortfoliosAlert","portfolioExist","PushNotificationService","_createClass","_this","_classCallCheck","lastReconnectError","build","conn","HubConnectionBuilder","withUrl","notificationService","getAccessTokenFactory","withAutomaticReconnect","getReconnectTimeoutPolicy","configureLogging","level","LogLevel","Debug","on","notificationActions","notificationPushReceived","jsonUtils","notificationRead","notificationReadAll","dataPushReceived","companiesActions","companyPushDataReceived","portfolioListActions","updateSendAlertState","dashboardPushUpdateTradingStats","dashboardPushUpdatePriceLevel","dashboardPushUpdateMostTradedTickers","dashboardPushBiggestMovers","pushInvitationActions","pushUserActions","settlementAgentAgeementPushActions","settlementAgentAgreementPushReceived","settlementAgentAgreementActions","pushDataReceived","newBwicDealersActions","sellerBidAsDealerAgreementsPushDataReceived","subscriptionsActions","subscriptionPushReceived","brokerDealerContactListActions","pushUpdateList","apiOperationActions","bdInventoryActions","pushInventory","inventoryActions","updatedInventorySecurities","onreconnecting","error","notificationServiceReconnecting","onreconnected","notificationServiceReconnected","onclose","notificationServiceDisconnected","window","location","reload","start","attempt","isUnauthorized","timeout","_args2","HubConnectionState","Disconnected","Disconnecting","notificationServiceConnected","toString","pushNotificationsServiceRestartAttemptsLimit","pushNotificationsServiceRestartTimeout","accessTokenFactory","_accessTokenFactory","nextRetryDelayInMilliseconds","retryContext","retryReason","previousRetryCount","methodName","param","notificationUtils","isConnected","invoke","sendNotification","_callee5","subj","_context5","errorActions","unexpectedError","Connected","pushNotificationService","pxTalkService","talk","levelType","savePriceTalks","priceTalkLock","deletedPriceTalks","priceTalks","deletePxTalk","fetchPxTalks","_fetchReleases","releaseService","fetchReleases","fetchWebinar","fetchConferences","RequestCancellationController","unionRoutes","_abortControllers","Map","_unionRoutes","_previousLocation","listen","nextLocation","pathname","path","_this$_previousLocati","_this$_previousLocati2","matchPath","exact","customKey","has","set","AbortController","get","controller","delete","this","manageCompanies","manageCompanyMembers","transactionDetail","manageCloManager","settlementAgentAgreementService","getAgreementForSettlementAgent","updateAgreement","fetchPendingAgreementCount","settlementService","getSettlementAccounts","getTradeAllocation","saveSettlementAccount","settlementAccount","deleteSettlementAccount","accountId","saveTradeAllocation","allocationLock","tradeAllocationTemplateService","setTemplateActive","templateId","lock","saveTemplate","template","deleteTemplate","tradeReportingService","isReported","excludeOnBehalf","tradeStatuses","sortingField","sortDirection","exportSearchResult","setReportedFalg","getResolveTrades","setResolveTrades","references","baseUrl","query","isArray","addSingle","addArray","usersService","getUsers","getUser","getUserCreationRequests","getActiveBrokerDealers","enableUser","disableUser","blockReason","resendInvite","exportUsers","exportUrl","updateTfaEnabledState","getUserLoginHistory","approveUserRequest","concurrencyStamp","deleteUser","deleteUserRequest","userRequestId","setTempPassword","gePendingUserRequestCount","watchNotificationServiceConnect","_marked2","watchAuthLoginSuccess","_marked3","watchAuthLogout","_marked4","watchNotificationGetList","_marked5","watchNotificationsGetCountUnread","_marked6","watchNotificationSetReadRequest","_marked7","watchNotificationsReadAllRequest","_marked8","watchNotifications","call","_marked","put","notificationServiceConnect","notificationReset","notificationAttributes","notifications","lastNotificationReferenceName","newNotificationList","_notificationAttributes","select","notification","notificationList","n","_notificationAttribut","displayInNotificationList","NotificationType","PushNotification","toastVisible","appendNotifications","notificationGetListFailure","countUnread","notificationsSetCountUnread","notificationsGetCountUnreadFailure","action","_context6","notificationSetReadSuccess","notificationSetReadFailure","_context7","notificationsReadAllSuccess","notificationsReadAllFailure","_context8","takeEvery","getType","accountActions","LOGIN_SUCCESS","takeLatest","notificationGetList","notificationsGetCountUnread","notificationSetReadRequest","notificationsReadAllRequest","watchOnBoardingTooltipSetCount","watchLogout","watchOnBoardingTooltip","onBoardingTooltipSetCountSuccess","onBoardingTooltipSetCountFailure","onBoardingReset","onBoardingTooltipSetCountRequest","watchSecurityDetailsInit","watchSecurityDetails","_action$payload","fetchAgencyRatings","_yield$all","_yield$all2","mappings","all","securityDetailsActions","securityDetailsInitSuccess","securityDetailsInitFailure","securityDetailsInitRequest","watchInit","setFilterFromSearchString","watchExportBidRequestsRequest","getSearchFilterOptions","watchFilterApply","watchReset","watchSubmitBidRequest","watchBwicStatusChange","_marked9","_marked10","watchSortChanged","_marked11","watchSellerBuyside","_yield$select","sellerBuyside","sellerBuysideActions","initRequestStatus","RequestState","success","advancedFiltersBlocked","hasFeatures","SubscriptionFeature","BwicMonitorAvancedFilters","dateFilterChange","filterApply","criticalError","_yield$select2","identifierOptions","statusOptions","currencyOptions","ratingsOptions","typesOptions","sizeMin","sizeMax","submittedBidsOption","serializers","_sizeMin","_sizeMax","dateCommand","sortByCommand","identifiers","parsedIdentifiers","parsedDate","parsedStatuses","parsedRatings","Rating","multipleCurrencies","parsedCurrency","parsedTypes","BwicType","sizeFrom","min","sizeTo","max","submittedBids","submittedBidsValue","Boolean","sorting","sortByValue","queryStringSerializer","deserialize","bwicStatuses","bwicStatusFilterChange","searchSecuritiesActions","addSearchItem","storeCurrencySelectedStatus","currencyFilterChange","ratingFilterChange","typeFilterChange","sizeFilterChange","submittedBidsFilterChange","canExecute","shouldExecute","execute","_getDateRangeOption","option","customRange","getDateRangeOption","customDateFilterChange","BwicMonitorSorting","sortFieldChanged","DeserializeCommandHandler","addCommand","processGenerator","filterOption","saveAs","exportBidRequestsSuccess","exportBidRequestsFailure","stateFilter","dateRange","getFilterSelectedValues","getSelectedCurrency","currencies","currentPageNumber","numericUtils","isNumber","_state$lastAppliedFil","isFilterChanged","_history$location$sea","totalRecordNumber","summary","dataItemsLoadingState","isApply","isSearchTermChange","resetSummary","t3","t4","_objectWithoutProperties","_excluded","push","serialize","storeAppliedFilter","storeSearchResult","t5","finish","selectedCurrencies","String","o","_yield$select3","saveSearchTermItems","_apiOperation$result","_apiOperation$result2","_conflict$modifiedDat","_current$bidAsDealerR","apiOperation","_action$payload$data","axed","final","modifiedDate","agreementBrokerDealerId","agreementCommission","positionSize","conflict","isBiddingOverThemself","isBidOrCommissionChanged","bidRequest","_yield$call","_yield$call2","_response","_yield$call3","_yield$call4","_response2","_context9","requests","event","ApiOperationType","SubmitAxedFinal","SubmitBidRequest","isRequesting","requestStateSubmitBidRequest","updateRequestStateSubmitBid","resetEvent","parseConflict","bidAsDealerRequest","directBid","acceptBiddingOverThemself","waitResult","autoRemove","errorToastDisabled","createdDate","bidId","jsonText","conflicts","tryParse","editState","_context10","bwicStatus","BwicStatus","scheduled","bidding","editBidRequestState","isColorDistribution","BidRequestStatus","expired","updateEditBidRequestState","updateBidRequests","_context11","hardReset","_context12","pagingReset","_context13","init","sortChanged","submitBidRequest","pushDataActions","PUSH_DATA_BWIC_STATUS_CHANGE","exportBidRequestsRequest","wathSubscriptionChangePush","watchSubscriptions","_action$payload$subsc","refreshAuthentication","watchLoadSalesRepresentatives","watchSalesRepresentative","_user$current","salesRepresentativesSupported","salesRepresentativeActions","storeSalesRepresentatives","loadUserSalesRepresentatives","watchApplyFilter","watchFetchHistory","watchBillingHistory","getSearchRequestParams","period","filterPeriod","_filterPeriod$find","periodValues","_defineProperty","SubscriptionPeriod","month","subtract","quarter","getFilterPeriodValues","appliedFilter","subscriptions","billingHistory","billingHistoryActions","fetchBillingHistory","setApplyFilter","_getSearchRequestPara","watchGetReleaseRequest","watchMarkAsReadRequest","watchRelease","responseReleases","release","releaseActions","getReleaseRequest","getReleaseResponse","OnBoardingTooltipType","whatsNewPopup","maxCountLimit","setOnBoardingTooltipCounter","markAsReadResponse","markAsReadRequest","watchSelectAllDealersByDefault","watchPushUpdateDealerContacts","watchNewBwicDealers","liveBidding","dealersToSelect","_s$process$templates$","templates","d","selectDealers","selectedByDefault","selectedDealers","brokerDealerContacts","brokerDealerUsers","newBwicDealers","_s$process$templates$2","isLiveBiddingOffPlatform","deleted","selectDealer","selectDealersByDefault","sellerAdminService","excludeNewCompany","companyIds","watchGetExcludedDealers","watchSaveExcludedDealers","watchSellerAdminDealers","sellerAdminDealerActions","getExcludedDealersSuccess","excludedDealers","getExcludedDealersFailure","dealerIds","saveExcludedDealersSuccess","setEditModeStatus","brokerDealerListActions","getExcludedDealersRequest","saveExcludedDealersFailure","saveExcludedDealersRequest","watchRequest","setDefaultFilter","setDefaultFilterSelect","watchColorDistributionSend","watchBwicStatusChanged","watchPortfolioGlobalAlertsChange","watchPortfolioList","filterActions","createFilterActions","BwicFilterType","Portfolio","requestResult","getFilterItems","allDealNames","dealNameFilterItems","allManagers","managerFilterItems","allTrusteeNames","trusteeFilterItems","cloneDeep","collection","distinct","disabled","_s$collateralManager2","_s$trustee2","filterQueryString","filtersConfig","canUseAdvancedFilters","defaultConfigFilter","acceptableCollateralMembers","_mixedDateRange","_mixedDateRange2","ncEndSerializers","getNcEndDeserializeResult","_mixedDateRange3","_mixedDateRange4","riEndSerializers","getRiEndDeserializeResult","searchInputValues","currencyValues","ratingValues","dealNames","isEsg","isEuCompliance","isStaticDeal","maturityFrom","maturityTo","vintageFrom","vintageTo","closingFrom","closingTo","trusteeValues","amrValue","isOutofRI","isOutOfNC","ncEndDeserializeResult","riEndDeserializeResult","searchInputValuesCommand","collateralTypesCommand","currenciesCommand","collateralManagersReferenceNamesCommand","ratingCommand","dealNamesCommand","esgCommand","euCompilanceCommand","staticDealsCommand","outOfNCCommand","outofRICommand","nonCallEndCommand","reinvestmentEndCommand","trusteesValuesCommand","maturityCommand","vintageCommand","closingCommand","amrValueCommand","_context21","_s$entities$pageConfi","_s$entities$pageConfi2","configs","PageConfigType","PortfolioAvancedFilters","default","mixedDateRange","dealsLegalNames","staticDeals","filterSelectChange","manager","filterVisibilityChange","filterRadioChange","dates","years","_context14","filterDateQueryStringDeserialized","_context15","_context16","_context17","makeFilterVisible","getDateOptionByRange","ThisWeek","filterDateSelectOption","filterDateSelectCustomRange","_context18","_context19","_context20","portfolioActions","advancedFilterBlocked","selectFilterFromConfig","_context22","colorDistributionSend","historyAction","colors","_context23","bwicStatusChanged","portfoliosRequestState","alertState","_context24","bwicAlert","bwicGlobalAlertEnabled","dealersInventoryAlert","inventoryGlobalAlertEnabled","cleansingNoticeAlert","cleansingNoticeAlertEnabled","issuanceMonitorAlert","issuanceMonitorAlertEnabled","outOfRiPeriodAlert","outOfRiAlertEnabled","outOfNcPeriodAlert","outOfNcAlertEnabled","rollerDeadlineAlert","rollerDeadlineAlertEnabled","_context25","PUSH_DATA_PUBLIC_COLORS","manageEmailPreferencesActions","portfolioGlobalAlertsChange","watchGetInitialDataRequest","watchSaveRequest","watchSaveArrangerPipelineRequest","watchSaveBanksRequest","watchSaveEmailPreferences","watchSaveBwicByRatingRequest","watchManageEmailPreferences","amrPipelineActions","createAmrPipelineActions","banks","amrBanks","bwicBanks","loadFilters","initFilter","initialData","withIssuanceMonitorAccess","CloManagers","combineBanks","getInitialDataSuccess","emailPreferencesActions","editIssuanceMonitorPreferences","editCloManagerPreferences","userCompany","isCollateralManager","hasImSubscription","hasBwicSubscription","hasDealerInventorySubscription","cloManagerBwicAlerts","cloManagerDealerInventoryAlerts","cloManagerBwicAlertsConfig","cloManagerDiAlertsConfig","singleUpdateOption","newTransactionOption","statisticOption","cloManagerAnalyticsAlert","cloManagerImAlerts","cloManagerApAlerts","filterData","imAlertsConfig","newTransactionConfig","imStatisticsConfig","cloManagerAnalyticsAlertsConfig","cloManagerImAlertsConfig","cloManagerApAlertsConfig","_cloManagerAnalyticsAlert","_cloManagerAnalyticsAlertsConfig","manageEmailPreferences","editCloManagersPreferences","amrPipelineCommon","IssuanceMonitorFullAccess","BwicMonitorAlerts","InventoryAlerts","cloManagerBwicAlert","cloManagerDealerInventoryAlert","UserConfigType","imAlertConfig","alertOption","newTransactionAlertConfig","weeklyStatsAlertConfig","emailOption","cloManagerIssuanceMonitorAlert","cloManagerArrangerPipelineAlert","ImFilter","imAlert","newPublishedTransactionAlert","weeklyStatsEmail","AlertOption","Never","saveSuccess","getInitialDataRequest","saveFailure","editArrangerPipelinePreferences","apAlertOption","apConfig","hasAllFeatures","apAlertConfig","arrangerPipelineAlert","editBanksPreferences","withAnalyticsAccess","withDiAccess","withImApAccess","bankAnalyticsAlerts","bankAnalyticsConfig","bankDiAlerts","bankDiAlertsConfig","bankImAlerts","bankApAlerts","bankImAlertsConfig","bankApAlertsConfig","hasBankAnalyticsAlertsChangeAccess","bankImApRequiredFeatures","bankAnalyticsAlert","bankDealerInventoryAlert","bankIssuanceMonitorAlert","bankArrangerPipelineAlert","initialPreferences","editPreferences","emailPreferences","isPortfolioBwicAlertChanged","isPortfolioInventoryAlertChanged","isOutOfRiPeriodAlertChanged","isOutOfNcPeriodAlertChanged","isPortfolioCleansingNoticeAlertChanged","isPortfolioIssuanceMonitorAlertChanged","isPortfolioRollerDeadlineAlertChanged","bwicAlertEnabled","inventoryAlertEnabled","saveEmailPreferencesSuccess","portfolioBwicAlertState","portfolioDealersInventoryAlertState","portfolioOutOfRiPeriodAlertState","portfolioOutOfNcPeriodAlertState","portfolioCleansingNoticeAlertState","portfolioIssuanceMonitorAlertState","portfolioRollerDeadlineAlertState","AlertEnabledState","Enabled","saveEmailPreferencesFailure","bwicByRating","bwicByRatingAlertState","ratingPreference","saveBwicByRatingPreferencesSuccess","saveBwicByRatingPreferencesFailure","saveRequest","saveArrangerPipelineRequest","saveBanksRequest","saveBwicByRatingPreferencesRequest","saveEmailPreferencesRequest","watchGetTradeLimits","watchUpdateTradeLimits","watchSellerAdminLimit","limits","sellerAdminLimitActions","getTradeLimitsSuccess","tradingLimits","TradingLimitType","SellMaxBondSize","EUR","SellMaxDailyTradesSize","BuyMaxBondSize","BuyMaxDailyTradesSize","updateTradeLimitsSuccess","updateTradeLimitsFailure","getTradeLimitsRequest","updateTradeLimitsRequest","watchGetUserListRequest","watchSaveUser","watchSaveUserRequest","watchEnableUserRequest","watchDisableUserRequest","handleUserRequestChangeError","watchEnableUser","watchDisableUser","watchExportUsersRequest","watchSellerAdminUsers","sellerAdminUsersActions","getUserListSuccess","getUserListFailure","newUser","setUserUpdateState","sellerAdminUsers","userSaved","_action$payload2","requestUser","setUserRequestUpdateState","userRequestSaved","_action$payload3","userRequest","setUserRequestOperationState","userRequestEnabled","_action$payload4","userRequestDisabled","notificationAddErrorMessageModal","setUserOperationState","setUserEnabled","_action$payload5","setUserDisable","exportUsersResponse","getUserListRequest","saveUserRequest","enableUserRequest","disableUserRequest","exportUsersRequest","watchApprove","watchBlock","watchUnblock","handleRequestError","watchDeleteUserRequest","watchGetPendingUserRequestCount","watchUserRequestAdmin","userRequestAdminActions","setOperationState","userRequestApproved","blockedUserRequest","userRequestBlocked","unblockedUserRequest","userRequestUnblocked","userRequestDeleted","setPendingUserRequestCount","block","unblock","getPendingUserRequestCount","watchSubmit","watchSignup","signupActions","submitSuccess","signUpConfirm","notificationAddErrorMessage","submitError","watchAdd","watchPriceTalks","priceTalksActions","addPriceTalk","priceTalk","PUSH_DATA_NEW_PX_TALK","watchSettlementAccount","accounts","settlementAccountActions","watchTradeAllocationRequest","watchTradeAllocation","allocation","tradeAllocationActions","watchTradeAllocationTemplate","tradeAllocationTemplateActions","manageTokensService","apis","wathRequestTokens","watchGenerateToken","watchUpdateToken","watchRevokeToken","watchRequestCompanies","watchManageTokens","tokens","manageTokenActions","setTokenRequestStatus","storeTokens","setGenerateRequestStatus","storeGeneratedToken","setUpdateTokenRequestStatus","tokenId","tokenUpdated","setRevokeTokenRequestStatus","tokenRevoked","allCompanies","setCompanyRequestStatus","storeCompanies","requestTokens","requestCompanies","generate","update","revoke","watchConfirmRequest","watchDownloadFileRequest","watchPortfolioAgreementDisclaimer","portfolioAgreementDisclaimerActions","hide","confirmSuccess","confirmFailure","downloadFileSuccess","downloadFileFailure","confirmRequest","downloadFileRequest","fetchMarketingEvents","watchFetchTotalNewsCount","watchFetchMarketingEventRequest","watchFetchNewsRequest","watchDeleteNews","watchDeleteSingleNews","watchFetchNews","watchLogUserActivity","watchDownloadDocument","watchDownloadDocuments","watchNews","ReleaseItemTypeGroups","ReleaseItemType","NewFeature","Improvement","convertReleaseItem","releaseItem","releaseItemType","description","MarketingEventType","Release","link","imageReferenceName","convertWebinar","webinar","Webinar","linkName","speakerTitle","speakerName","convertConference","conference","Conference","composeEventsList","releases","conferences","releaseItems","compact","flatMap","_x$releaseItems","orderedReleaseItems","itemType","_orderedReleaseItems","_orderedReleaseItems2","firstReleaseItem","secondReleaseItem","_yield$all3","_yield$all4","totalNewsAll","totalNewsPrimary","totalNewsSecondary","totalNewsResearch","NewsCategory","Primary","Secondary","Research","newsActions","fetchTotalNewsCountResponse","NewsTabCategory","All","events","fetchMarketingEventsResponse","news","_s$news$news$action$p","tab","NewsTabToCategory","newsOnPage","fetchNewsResponse","resetNewsList","fetchNewsRequest","fetchTotalNewsCountRequest","newsUrl","fetchNewsDetailsResponse","fileName","newsItem","newsDateTime","dateFormat","fetchMarketingEventsRequest","fetchNewsDetails","deleteSingleNews","watchMain","fork","watchBlotter","watchDashboard","watchBwicLog","watchClientCompanies","watchEmailPreferences","watchChangeSubscription","watchContactSales","watchBidOnBehalf","watchApiOperation","watchFavoriteBrokerDealers","watchBdInventory","watchInventory","watchClearingBank","watchBlastMessage","watchCompanyDetails","watchDealerListPanel","watchAddToPortfolio","watchBrokerDealerUserList","watchBrokerDealerContactList","watchDealerList","watchBrokerDealerList","watchDirectBiddingDisclaimer","watchBrokerDealerBidding","watchImUserConfig","watchAdminInventoryEdit","watchInventoryEdit","watchAssetManager","watchAwaitingTrades","watchTransactionHistory","watchAmrPipelineCommon","watchRejectedTrades","watchHelpResources","watchAmrTransactionAnalytics","watchArrangerPipelineSaga","watchCloManagers","watchAddress","watchAllBwics","watchFilter","watchEditNews","watchBanks","watchCompanyMembers","watchDeals","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","sagaMiddleware","createSagaMiddleware","createStore","createRootReducer","applyMiddleware","thunk","run","classnames","names"],"sourceRoot":""}