{"version":3,"file":"static/js/main-fc75396a.da2d7ccf.js","mappings":"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","sources":["services/file.upload.js","services/build.service.ts","selectors/seller-companies.selector.ts","services/manage-storage.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/billing.service.ts","services/release.service.ts","services/documents.service.js","services/settlement.service.ts","services/bid-on-behalf.service.js","services/pxTalk.service.js","services/deals.service.ts","services/push-notification.service.js","selectors/latest-bids.selector.ts","services/help-resources.service.ts","services/trade-allocation-template.service.ts","services/amr-companies.service.ts","services/inventory.service.ts","services/manage-emails.service.ts","services/address.service.ts","services/bwic.service.js","services/clo-managers.service.ts","services/banks.service.ts","selectors/dealer-inventory.selector.ts","services/cache.ts","services/tradeReportingService.js","services/account.service.js","services/news.service.ts","selectors/amr-pipeline.selector.ts","services/settlement-agent-agreement.service.ts","services/fetch.safe.js","services/email-preferences.service.ts","services/amr-arranger-pipeline.service.ts","services/blast-message.service.ts","selectors/portfolio.selector.ts","styles/classnames.js","selectors/dealers.selector.ts","services/users.service.js","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/new-bwic-dealers.selector.ts","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","services/amr-pipeline.service.js","services/request-cancelation-controller.ts","services/page-config.service.ts","services/bwicDeals.service.js","services/portfolio.service.js","services/contact-sales.service.ts","services/url.builder.js","services/bidding.service.js","services/action-tracking.service.ts","selectors/bwic-changed-flag.selector.ts","services/companies.service.js"],"sourcesContent":["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 { 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 { 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 '../services/fetch.safe';\r\nimport { ManageRedisKeyDetails } from '../types/management/ManageRedisKeyDetails';\r\n\r\nconst clearRedisCache = () => {\r\n return fetchSafe('/clear-cache', { method: 'POST' })\r\n}\r\n\r\nconst getRedisCacheKeys = (\r\n): Promise => {\r\n return fetchSafe('/api/storage/keys')\r\n}\r\n\r\nexport const manageStorageService = {\r\n clearRedisCache,\r\n getRedisCacheKeys\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 { 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 { 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 { 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 { 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 { 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 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 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 getDealsClassesList,\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 validateRegularExpression,\r\n exportAllClasses,\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 getDealsClassesList(searchString: string, offset = 0, count = pipelineFilters.searchItemsPerLoad) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/Deals/?forClasses=true&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\r\nfunction validateRegularExpression(pattern: string) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/pattern/validate`,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify({ pattern }),\r\n }\r\n );\r\n}\r\n\r\nfunction exportAllClasses(\r\n dealReferenceName: string,\r\n showHistoricalClasses: boolean,\r\n orderBy: [{ field: string; ascending: boolean }]\r\n) {\r\n return fetchSafe(\r\n `${process.env.REACT_APP_AMR_ENDPOINT}/api/bwic/deals/${dealReferenceName}/classes/export`,\r\n {\r\n method: \"POST\",\r\n responseType: responseType.file,\r\n body: JSON.stringify({\r\n showHistoricalClasses,\r\n orderBy,\r\n }),\r\n }\r\n );\r\n}\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 { 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 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 { 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 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 { 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 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 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 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 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 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 { 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 { 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 { 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};\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","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 { 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 { 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 { 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 { fetchSafe } from './fetch.safe';\r\nimport { 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}\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}","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 { 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 { 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","export function classnames(names) {\r\n return Object\r\n .keys(names)\r\n .map(key => names[key] ? key : '')\r\n .join(' ')\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 { 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 { 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 { 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 { 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\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\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.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","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, blockReason) {\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, blockReason }),\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 { 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 { 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 { 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\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 { 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 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\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 { 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 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 { 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"],"names":["fileUpload","url","dataItems","blob","onProgress","requestCancelationSignal","arguments","length","undefined","requestCancelationController","signal","refreshTokenController","ensureTokenUpToDate","user","token","refreshToken","then","headers","authorization","concat","Promise","resolve","reject","xhr","XMLHttpRequest","key","open","setRequestHeader","onload","e","apiUtils","isRequestSuccess","target","status","responseText","JSON","parse","onerror","onabort","upload","onprogress","abort","form","FormData","append","name","Object","keys","forEach","send","catch","_ref","message","buildService","version","fetchSafe","getParticipants","state","participants","getOffPlatformCompanies","offPlatformCompanies","getFavorites","favorites","getPositions","securities","getAgreements","agreements","getAllToAllFlag","isAllToAll","getBuyers","allBuyersBids","map","s","_s$bids","bids","flat","filter","b","buyerPseudoOrderNumber","Array","from","arrayUtils","groupBy","entries","_ref2","_slicedToArray","_ref2$$","company","_objectSpread","identifier","biddingUtils","getBidCompanyIdentifier","getSellerBiddingCompanies","createSelector","hiddenState","processType","participans","brokerDealers","p","CompanyStatus","active","isClearingBank","BwicProcessType","Live","c","buyers","_toConsumableArray","sortBrokerDealerCompanies","getSellerFinishedCompanies","some","_s$bids2","companies","confirmedAgreementsByDealer","normalize","a","settlementAgent","agreementStatus","SettlementAgreementStatus","confirmed","id","sort","compareBoolean","localeCompare","manageStorageService","clearRedisCache","method","getRedisCacheKeys","currencyService","getCurrencies","getFromCache","getCurrencyRate","setCurrencyRate","usdRate","urlBuilder","requestOptions","responseType","none","daysService","getNextBusinessDate","moment","format","getNextBusinessDates","daysCount","isBusinessDay","date","getHolidays","year","bwicProcessService","getTemplates","list","x","readonly","contactsService","getContacts","addContact","contact","body","stringify","updateContact","deleteContact","contactId","uploadContacts","file","progressCallback","parseContactsStirng","text","bulkSave","contactsToSave","contactsToDelete","getXlsxTemplate","inviteBuysideClients","emailList","buysideClientEmails","inviteAllToJoin","sendInvite","locationService","getCountries","countries","usa","find","code","constants","USCountryCode","otherCountries","getStates","countryCode","getCities","stateId","parsedBwicsService","search","searchCriteria","page","pageSize","publish","referenceName","unpublish","save","payload","deleteBwic","cancel","changeAmrFlag","bwicReferenceName","isAMR","colorService","positionId","color","deleteColor","tradingService","isinCusipsAndTickers","statuses","settlementStatuses","currency","side","type","dateFrom","dateTo","settlFrom","settlTo","orderByColumn","_ref$sortOrder","sortOrder","_ref$page","_ref$pageSize","dateTimeFormatUtc","to","settlementFrom","settlementTo","doesExist","blotterExport","params","clientDateTime","setVcon","tradeId","isBuyTrade","value","referenceId","buyTrade","setBooked","_ref3","getAwaitingActionTrades","getCurrentTimeStamp","encodeURIComponent","dashboardService","fetchDailyTradingStats","fetchExportTradingStats","currencyFilter","ratings","fetchScheduledBwics","fetchPortfolioSecurities","exportBwicStatistic","securityId","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","queryParams","TransactionStatus","Closed","Priced","types","AllTopIssuersTransactionTypes","startOf","endOf","queryString","qs","process","exportTopChart","sortingParams","querySortingParams","parseSortingParams","fetchDeals","additionalCriteria","filterCriteria","pricingDate","dateFormatISO8601","fetchExportDeals","fetchPortfolioInventorySecurities","fetchIssueTransactionVolumesCount","_ref$transactionType","transactionType","TransactionType","newIssue","refi","reset","_ref$currencyCode","Currency","USD","_ref$statuses","_ref$collateralTypes","_ref$esg","esg","minChartYear","fetchVolumeCountByTransactionTypes","_ref2$transactionType","_ref2$currencyCode","_ref2$statuses","_ref2$collateralTypes","_ref2$euCompliance","euCompliance","fetchVolumesCountShortLongDated","managerReferenceName","_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","dealReferenceName","transactionReferenceName","pipelineRequestCriteria","shortLongDatedDeals","_nonCallPeriodEndYear4","_nonCallPeriodEndYear5","queryArgs","fetchKIndicator","fetchNewIssueWeeklySpreads","Active","onBoardingTooltipService","setCount","data","feedbackService","sendFeedback","feedbackData","ratingService","getSecurityRatings","getRatingMappings","bidAsDealerRequestService","getBwicBidRequests","findBidRequestsAsSeller","filterOptions","sortBy","BwicMonitorSortByOptions","NewestFirst","loadSummary","sortByApiParams","bwicMonitorSortByApiValues","direction","appConfig","isSummaryRowHidden","create","brokerDealerId","commission","size","salesCoverage","bidLock","approve","bidRequestId","comment","submit","bidRequests","exportBidRequestsAsSeller","exportBidRequestsAsDealer","latestBidsOnly","bidAsDealerRequestExist","salesRepresentativesService","getCurrentUserSalesRepresentatives","getList","sales","firstName","lastName","assign","model","unassign","photoService","getThumbnail","userId","clearingBankService","saveClearingBankSettings","companyId","dailyTradingLimit","commissions","getSettlementAgentCommission","imUserConfigService","getUserConfig","configType","getDefaultUserConfig","createOrUpdateUserConfig","userConfig","withResponse","json","deleteUserConfig","updateFilterEmailAlertsConfig","filterAlertStatuses","deleteUserFilter","filterType","billingService","getPaymentCards","setPrimaryCard","deletePaymentCard","addPaymentCard","getBillingContact","saveBillingContact","saveSubscription","title","isTrial","expirationDate","expiration","toISOString","requestImProSubscription","getSubscriptions","changeSubscription","subscriptionTitle","searchBillingHistory","notifySales","_fetchReleases","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","stop","apply","releaseService","fetchReleases","fetchWebinar","fetchConferences","documentsService","uploadDocument","documentStoreType","getDocumentUrlByType","uploadAndAssignDocument","documentType","downloadDocument","documentId","DocumentStoreType","Default","downloadAllDocuments","documentGroupKey","Settlement","Error","getDownloadAllUrlByType","deleteDocument","dealTicker","uploadSecurities","downloadSecurities","getSecurityDocumentsExistFlag","isinCusip","downloadStatic","filename","Disclosure","settlementService","getSettlementAccounts","getTradeAllocation","saveSettlementAccount","settlementAccount","deleteSettlementAccount","accountId","saveTradeAllocation","allocationLock","items","bidOnBehalfService","getCompanies","submitBidsBulk","uploadFile","parseClipboard","downloadTemplate","pxTalkService","talk","levelType","savePriceTalks","priceTalkLock","deletedPriceTalks","priceTalks","deletePxTalk","fetchPxTalks","dealsService","getDeals","getDeal","getDealRegularDocuments","getDealDocuments","getCleansingNoticeDocuments","getClassAuctions","classReferenceName","getLatestDealAuctions","getDealDocumentsByType","getDealsList","searchString","offset","count","pipelineFilters","searchItemsPerLoad","getDealsClassesList","getDealDocument","getDealDocumentTemplate","getDealsNamesList","searchTerm","orderByField","ascending","getDealTransactions","options","getPreviousTransaction","getDealDetails","deleteDeal","updateDeal","formData","updateClasses","classes","getExcludedDealers","saveExcludedDealers","excludedDealersData","getAmrDocument","exportSettlementInstructions","getSettlementInstructions","saveSettlementInstructions","settlementInstructions","updateDealDocuments","documents","saveAmrInfo","amrInfo","deleteAmrInfo","downloadAmrDocument","documentReferenceName","downloadAmrDocuments","validateRegularExpression","pattern","exportAllClasses","showHistoricalClasses","orderBy","PushNotificationService","_createClass","_this","_classCallCheck","lastReconnectError","build","conn","HubConnectionBuilder","withUrl","notificationService","getAccessTokenFactory","withAutomaticReconnect","getReconnectTimeoutPolicy","configureLogging","log","level","LogLevel","Debug","on","store","dispatch","notificationActions","notificationPushReceived","jsonUtils","notificationRead","notificationReadAll","dataPushReceived","companiesActions","companyPushDataReceived","portfolioListActions","updateSendAlertState","response","dashboardPushUpdateTradingStats","dashboardPushUpdatePriceLevel","dashboardPushUpdateMostTradedTickers","dashboardPushBiggestMovers","pushInvitationActions","pushUserActions","settlementAgentAgeementPushActions","settlementAgentAgreementPushReceived","settlementAgentAgreementActions","pushDataReceived","newBwicDealersActions","sellerBidAsDealerAgreementsPushDataReceived","subscriptionsActions","subscriptionPushReceived","brokerDealerContactListActions","pushUpdateList","apiOperationActions","result","bdInventoryActions","pushInventory","inventoryActions","updatedInventorySecurities","lockModifiedDate","onreconnecting","error","notificationServiceReconnecting","onreconnected","notificationServiceReconnected","onclose","notificationServiceDisconnected","statusCode","accountService","logout","window","location","reload","start","_callee2","attempt","isUnauthorized","timeout","_args2","_context2","HubConnectionState","Disconnected","Disconnecting","notificationServiceConnected","t0","isAuthenticated","toString","includes","pushNotificationsServiceRestartAttemptsLimit","pushNotificationsServiceRestartTimeout","setTimeout","_callee3","_context3","logger","exception","accessTokenFactory","_accessTokenFactory","_callee4","_context4","sent","nextRetryDelayInMilliseconds","retryContext","retryReason","previousRetryCount","methodName","param","notificationUtils","isConnected","invoke","sendNotification","_callee5","subj","_context5","errorActions","unexpectedError","_x","_x2","_x3","trace","Connected","pushNotificationService","getSecuritiesWithLatestBids","includeDirectBids","getLatestBids","allBids","bid","values","companyBids","getLatestStage1Bids","stagedBiddingStatus","isDraft","entityName","test","_fetchCategories","categories","category","_fetchCategorySections","categoryId","fetchCategoryArticles","_fetchCategoryArticles","nextPage","iterationResult","prevCount","_args3","_fetchSection","sectionId","section","sectionName","categoryName","articles","helpResourcesService","fetchSection","fetchCategories","fetchCategorySections","fetchBySearch","getArticleImage","src","getArticleAttachment","getArticleAttachmentsList","articleId","tradeAllocationTemplateService","setTemplateActive","templateId","lock","saveTemplate","template","deleteTemplate","amrCompaniesService","getCompanyInfo","companyReferenceName","getMembersList","getTrusteeList","roles","getCollateralManagerList","CollateralManager","getMajorityEquityList","getAmrAgentList","getManagersList","havingDealType","HavingDealType","None","getArrangersList","BdHavingDeals","getBanksList","Banks","getAvailableBrokerDealers","inventoryService","getInventoryExistFlag","getAllInventory","getBdInventory","getAdminEditInventory","setTraded","inventoryPositionId","tradeDate","inventorySecurities","exportInventoryList","sendEmail","toDealerEmail","selectedDealerEmail","toBloombergEmail","selectedBloombergEmail","getSecuritiesXlsxTemplate","parseSecuritiesStirng","getActiveSecurityIdList","manageEmailsService","getEmail","requestParams","getEmailTypes","addressService","countryId","bwicService","getAssets","getOpenBiddingStatus","getBwicHistory","getSecurityDocsZip","searchSecurities","searchSecuritiesGlobal","searchByTicker","abortSignal","endpoint","searchBwics","criteria","bwic","exportBwic","exportBwics","getByReferenceName","reason","markHistoryMessagesAsRead","bwicActions","setColorDistribution","enabled","completeBwic","colorDistributionModel","myBwicsExist","isBdBuy","buyBwics","saveAutoFeedbackConfiguration","configuration","validateTradeLimits","bwicDate","bidsDue","timeZone","bwicPositions","utcOffset","positions","ticker","rating","moneyUtils","isBwicWithSecuritesExist","securityIds","finishStage","getSecurityBwicStatistics","getClassDetails","_getAnalytics","currentTime","cloManagersService","getCloManager","createOrUpdateCloManager","cloManager","downloadManagerPresentationFile","logUserActivity","accessType","switchFavorite","favorite","getAnalytics","getInvitedAndActiveManagers","getProfileViewHistory","startDate","endDate","getLatestTransactionsInDeal","scheduleMeeting","recipientsEmails","getCloSystemInfrastructures","banksService","getBwicBanksList","Date","getBankDetails","getEvents","getSyndicateContacts","updateBank","bank","getBwicsPriceTalks","exportBankManagersTrans","dealerInventorySelector","entities","inventory","filters","bdInventory","lastAppliedFilter","searchTermItems","collateralManagers","requestState","searchIsinTickerItems","managersRequestState","isDynamicFiltersLoaded","isRequestFailed","selectedFilters","getSelectedFilters","inventories","i","ncEnd","ncEndMonth","ncEndYear","formatUtils","formatMonthAndYear","riEnd","riEndMonth","riEndYear","statusName","InventoryPositionStatus","item","searchIsinTicker","_i$collateralManager","_i$trustee","selectedDateOption","selectedOption","isCurrent","dateRangeFilterOptions","CurrentInventory","currentInventoryStatuses","added","updated","t","traded","isSame","lastUpdateDate","compareByDateRange","maturity","statedMaturity","vintage","closing","closingDate","nonCallEnd","compareByDateYearRange","nonCallPeriodEnd","reinvestmentEnd","reinvestmentPeriodEnd","compareStrings","managers","collateralManager","collateralType","trustees","trustee","staticDeal","amr","compareNumbers","outOfNC","compareBooleanStrict","outOfRI","applyFilterCriteria","onFetched","storage","sessionStorage","disableRequestCancelation","cached","getItem","setItem","_unused","console","tradeReportingService","isReported","excludeOnBehalf","tradeStatuses","sortingField","sortDirection","exportSearchResult","setReportedFalg","getResolveTrades","setResolveTrades","references","login","email","password","deviceId","userResult","accessToken","apiLogout","getAccessToken","_getAccessToken","resetPassword","setUpPassword","getAssetManagers","getProfile","changePhoneNumber","phoneNumber","changePassword","getProfileCompany","addCompanyTrader","editCompanyTrader","traderId","editCompanyContact","departmentValue","enableCompanyTrader","disableCompanyTrader","requestIdentityVerificationCodeEmail","requestIdentityVerificationCodeSms","submitIdentityVerificationCode","saveIdentityPhoneNumber","requestPhoneVerificationCode","submitPhoneVerificationCode","deactivateSmsConfirmation","uploadUserImage","deleteIdentityPhoneNumber","fetchUserImage","deleteUserImage","buildVersion","downloadDirectBiddingAgreementPdf","setDirectBiddingAgreementSigned","saveBloombergEmail","bloombergEmail","saveSignupForm","saveArrangersClientSignupForm","saveBwicAnnouncementNotifications","downloadPortfolioAgreementFile","setPortfolioAgreementSigned","actionTypes","LOGOUT","clear","localStorage","removeItem","onBoardingTooltipConst","localStorageKey","requestDirectBiddingPopupLocalStorageKey","requestAllToAllPopupLocalStorageKey","history","replace","routes","_user","fetch","ok","newsService","getNews","getNewsTotalCount","getNewsDetails","createOrUpdateNews","newsData","deleteNews","newsReferenceName","downloadDocuments","amrPipelineSelector","pipelineType","PipelineType","Deals","issuanceMonitor","amrPipeline","amrPipelineIOIs","arrangerPipelineSelector","amrArrangerPipeline","arrangerPipeline","amrDealsSelector","deals","summarySelector","amrPipelineFilterSelector","_amrPipeline$deals","isSummaryRequesting","transactionsStatistic","classesStatistic","initialFilter","shouldShowClassesSummary","f","selected","initialFilterCriteria","getFilterCriteria","lastAppliedFilterCriteria","shouldShowTransactionsSummary","isEqual","issuanceMonitorFilterSelector","ArrangerPipeline","arrangerPipelineFilterSelector","issuanceMonitorSearchTransactionsSelector","searchTransactions","arrangerPipelineDealsSelector","arrangerPipelineApplyDisabledSelector","filterApplied","visibleFilters","isLoading","filterErrors","filterRange","fromRange","toRange","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","customDateRange","toDate","fromYearsRange","customYearsRange","toYearsRange","fromDateTimeRange","toDateTimeRange","DateWithYearsRange","YearsDate","DateWithYearsAndTimeRange","validateYear","getFullYear","amrDealsApplyDisabledSelector","settlementAgentAgreementService","getAgreementForSettlementAgent","sendRequest","updateAgreement","fetchPendingAgreementCount","getMethod","toUpperCase","awaitTimeout","delay","retryAttempt","handleResponse","responseTypes","t1","fileUtils","getFileNameFromResponse","t2","shouldRetry","failure","setOptionsDefaults","statusText","emailPreferencesService","getEmailPreferences","saveEmailPreferences","preferences","amrArrangerPipelineService","getArrangerPipelines","searchParams","getArrangerPipelinesCount","getArrangerPipelinesByTicker","tickers","createOrUpdateArrangerPipeline","arrangerPipelines","exportArrangerPipelines","getDealsLegalNames","downloadDisclosureFile","bankReferenceName","downloadManagerPresentation","getArrangerPipelinesStatistic","deleteArrangerPipeline","blastMessageService","getPortfolios","portfolios","portfolio","portfolioName","security","searchTerms","term","toLowerCase","indexOf","applySearchTerms","_s$trustee","_s$collateralManager","dealName","dealLegalName","classnames","names","join","getBrokerDealerList","brokerDealerList","getBrokerDealerContactList","brokerDealerContactList","getBrokerDealerUserList","brokerDealerUserList","filterDealers","dealers","contacts","users","_agreements$find","hasRoles","BrokerDealerTrader","cc","cu","distributionList","headOfTrading","dealersSelector","settlementAgentAgreements","isRequestedInitialData","usersService","getUsers","getUser","getUserCreationRequests","getActiveBrokerDealers","enableUser","disableUser","blockReason","resendInvite","saveUser","member","exportUsers","exportUrl","updateTfaEnabledState","getUserLoginHistory","approveUserRequest","concurrencyStamp","blockUserRequest","deleteUser","deleteUserRequest","userRequestId","setTempPassword","gePendingUserRequestCount","unblockUserRequest","lastAppliedCompanyFilter","companyOrderBy","companyFilter","primaryContact","u","primaryContactId","members","rolesText","companyRoles","getTitle","role","subscriptionText","hasActiveUsers","userStatuses","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","createdById","salesRepresentatives","salesRepresentative","_c$country","_c$createdBy","_c$subscriptionText","country","createdBy","companyStatuses","getByStatusCode","concatFullName","dateRegistered","sr","bwicDateFilterOptions","custom","filterCompaniesByRange","unspecified","dateFilter","getSearchDateRange","applyFilter","column","companyColumns","legalName","getPrimaryContactName","subscriptionEnd","compareDatesNullable","isAfter","isBefore","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","_filter$companies","filteringResult","UserStatus","invited","Invited","notInvited","NotInvited","pendingApproval","requestStatuses","rolesArray","arrangersClient","ArrangersClient","brokerDealerTrader","brokerDealerViewer","BrokerDealerViewer","dataEntry","DataEntry","sellerAdmin","SellerAdministrator","sellerTrader","SellerTrader","sellerViewer","SellerViewer","subscriptionManager","SubscriptionManager","memberRole","_m$createdBy","phone","dateTimeUtils","utcToLocalString","dateFormat4","filterMembersByRange","memberColumns","_a$createdBy","_b$createdBy","getDate","dt","orderByAsc","getFilteredParsedBWICs","manageParsedBwics","bwics","refreshLastUpdatedDate","refreshFlag","bidsDueUtc","lastUpdateAt","duration","lastUpdateAtUtc","getHistory","visible","actions","compareDates","sentDateUtc","addActionProps","currentUser","current","isMyMessage","submittedBy","isResponseMessage","tradingPositionsSelector","tradingPositions","tradingPositionsState","newBwicDealersSelector","visibleCompanies","sortDealersByConfirmedAgreement","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","request","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","pathname","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","position","isRequesting","requestStateSubmitBidRequest","updateRequestStateSubmitBid","resetEvent","parseConflict","bidAsDealerRequest","directBid","acceptBiddingOverThemself","waitResult","autoRemove","errorToastDisabled","createdDate","bidId","biddingService","updateBidAttributes","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","portfolioService","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","pageConfig","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","portfolioId","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","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","saveRequest","saveArrangerPipelineRequest","saveBanksRequest","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","companiesService","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","get","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","amrPipelineService","getTransactionsList","getTransactionClasses","includeTransaction","getTransactionClassesNames","getTransaction","getTransactionHistory","classesOnly","getLatestTransactions","getLatestTransactionsByTicker","getPortfolio","getDocuments","getCollateralQualityTest","getAmrDocuments","registerUser","userEmail","publicPhone","companyLegalName","companyCountryThreeCharsCode","companyCityName","city","companyAddress","address","companyZipCode","zipCode","getIntexFile","successHandler","getManagerPresentationFile","getDisclosureFile","getTransactionDocument","getTransactionDocuments","exportPortfolio","exportTransactionsClasses","dealSortCriteria","trasactionClassSortCriteria","orderByTransaction","orderByTransactionClass","getCurrency","res","getSyndicateContactsByArranger","getIOIs","submitIOIs","iois","readIOIsByUser","ioiReferenceNames","exportIOIs","excludeDeleted","getTransactionClassesSummary","getTransactionsSummary","transactionFilterOptions","statsToCalculate","downloadIntexFile","logTabAccess","tabAccessType","getDocumentsDownloads","getDaysInTheMarket","getTransactionViewHistory","getTransactionVersions","downloadStatisticDocument","documentLink","DownloadedDocumentAccessType","DownloadAllDocuments","DownloadOneDocument","DownloadIntexFile","DownloadManagerPresentationFile","DownloadDisclosureFile","shareTransactionToClients","logImUserActivity","getSharedClients","requestDemo","updateArrangerClient","logAccessToSharedTransaction","getBankTransactions","getDealComparableMetrics","RequestCancellationController","unionRoutes","_abortControllers","Map","_unionRoutes","_previousLocation","listen","nextLocation","path","_this$_previousLocati","_this$_previousLocati2","matchPath","exact","customKey","has","set","AbortController","controller","delete","this","manageCompanies","manageCompanyMembers","transactionDetail","manageCloManager","pageConfigService","getConfigs","saveConfig","pageConfigType","getDefaultConfigs","saveFilters","bwicDealsService","getDealSecurityStatistics","dealTickers","downloadDealSecurityDocuments","portfolioReferenceName","deletePortfolio","createPortfolio","createNewPortfolio","notifyUser","renamePortfolio","savePositions","saveSecurityPosition","exportPortfolios","updatePortfoliosAlert","portfolioExist","contactSalesService","baseUrl","query","isArray","addSingle","addArray","getAccessState","requestAccess","submitBids","bidAttributes","sendQuickFeedback","feedbackType","sendOnBehalfQuickFeedback","saveTargetLevel","targetLevel","trade","affirm","affirmModels","rejectModel","checkAwaitingTrades","sendBidRequest","requestType","getLiveBiddingData","trackingService","trackAction","eventName","bwicChangedFlagSelector","isInitializing","activeStep","submitted","timeZones","hasBwicPositions","daysToSettle","nextBusinessDay","goodUntil","hasPositions","newBWICSteps","daysToSettleDefault","timestampFromUtcString","bidDueDefaultTimestamp","goodUntilDefaultTimestamp","getBrokerDealers","getBrokerDealer","getActiveAssetManagers","getCompany","getCompanyDomains","getCompanyMembers","getCurrentUserCompany","postCompanyApprove","postCompanyReject","rejectReason","changeCompanyStatus","companySaveModel","setMemberOfacStatus","memberId","setCompanyOfacStatus","getBwicParticipants","sendDistributionListInvite","sendHeadOfTrdingInvite","addToFavorites","deleteFromFavorites","exportCompanies","regByFrom","regByTo","salesRepresentativeIds","regByIds","getClearingBankBwicParticipants"],"sourceRoot":""}