{"version":3,"file":"static/js/main-a8efc1db.021fb4f2.js","mappings":"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","sources":["sagas/bid-on-behalf.saga.ts","sagas/amr-pipeline-common.saga.ts","sagas/add-to-portfolio.saga.ts","sagas/broker-dealer-user-list.saga.ts","sagas/broker-dealer-contact-list.saga.ts","sagas/amr-transaction-analytics.saga.ts","sagas/blast-message.saga.ts","sagas/amr-arranger-pipeline.saga.ts","sagas/amr-transaction-history.saga.ts","sagas/bwic-log.saga.ts","sagas/banks.saga.ts","sagas/blotter.saga.js","sagas/admin-inventory-edit.saga.tsx","sagas/asset-manager.saga.ts","sagas/address.saga.ts","sagas/broker-dealer-bidding.saga.ts","sagas/api-operation.saga.ts","sagas/allbwics.saga.tsx","sagas/bd-inventory.saga.ts","sagas/broker-dealer-list.saga.ts"],"sourcesContent":["import { call, put, select, takeEvery } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { apiOperationActions, bidOnBehalfActions, errorActions, notificationActions } from \"../actions\";\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { BidOnBehalfState, EditBidOnBehalfState, getEditKey, parseKey } from \"../types/state/BidOnBehalfState\";\r\nimport { bidOnBehalfService } from '../services';\r\nimport { BwicPosition } from \"../types/bwic/BwicPosition\";\r\nimport { BulkSaveBidOnBehalf, SaveBidOnBehalf } from '../types/bid-on-behalf/BulkSaveBidOnBehalf';\r\nimport { arrayUtils, bidOnBehalfUtils, formatUtils, jsonUtils } from \"../utils\";\r\nimport { BidApiOperationResult, TOperationResult } from \"../types/api-operation/ApiOperationResult\";\r\nimport { ApiOperationType } from \"../types/api-operation/ApiOperationType\";\r\nimport { Bid } from \"../types/bidding/Bid\";\r\nimport { BidOnBehalfConflict } from \"../types/bid-on-behalf/BidOnBehalfConflict\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { CompanySlim } from \"../types/company/CompanySlim\";\r\nimport { accountActions, pushDataActions } from \"../constants\";\r\nimport { CompanyHiddenState } from \"../types/state/DealerListPanelState\";\r\nimport { FavoriteCompanyState } from \"../types/state/FavoriteBrokerDealersState\";\r\nimport { getSellerBiddingCompanies } from \"../selectors\";\r\nimport { TradeStatus } from \"../types/trades/TradeStatus\";\r\nimport { CompanyStatus } from \"../types/company/CompanyStatus\";\r\nimport { SettlementAgentAgreement } from \"../types/bid-as-dealer/SettlementAgentAgreement\";\r\nimport { Bwic } from \"../types/bwic/Bwic\";\r\nimport { BwicProcessType } from \"../types/models/Process\";\r\n\r\nfunction* watchBidOnBehalfCompaniesRequest() {\r\n const state: BidOnBehalfState = yield select((state: AppState) => state.bidOnBehalf);\r\n const bwic: Bwic = yield select((state: AppState) => state.bidding.bwic);\r\n\r\n if (state.isRequesting || !bwic) {\r\n return;\r\n }\r\n\r\n yield put(bidOnBehalfActions.setCompainesRequesting(true));\r\n\r\n try {\r\n const companies: CompanySlim[] = yield call(bidOnBehalfService.getCompanies, bwic.referenceName);\r\n companies.sort((a, b) => a.name.localeCompare(b.name));\r\n yield put(bidOnBehalfActions.storeCompanies(companies));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(bidOnBehalfActions.setCompainesRequesting(false));\r\n }\r\n}\r\n\r\nfunction* watchOperationError(action: TOperationResult) {\r\n const { result } = action.payload;\r\n if (result.event === ApiOperationType.submitBidsOnBehalf) {\r\n if (result.statusCode === 409) {\r\n const conflicts: BidOnBehalfConflict[] | undefined = result.response && jsonUtils.tryParse(result.response);\r\n if (conflicts != null && conflicts.length) {\r\n yield put(bidOnBehalfActions.storeConflicts(conflicts));\r\n yield put(bidOnBehalfActions.conflictsPopupVisible(true));\r\n }\r\n } else if (result.statusCode === 410 && result.positionId) {\r\n const bidSumitResult = result as BidApiOperationResult;\r\n if (bidSumitResult.companyId) {\r\n const company: CompanySlim | undefined = yield select((s: AppState) => s.bidOnBehalf.companies.find(c => c.id === bidSumitResult.companyId));\r\n const editingBid: EditBidOnBehalfState | undefined =\r\n yield select((s: AppState) => s.bidOnBehalf.editState[getEditKey(result.positionId!, bidSumitResult.companyId!)])\r\n if (company && editingBid) {\r\n\r\n yield put(bidOnBehalfActions.resetBidEdit(result.positionId, bidSumitResult.companyId));\r\n const bid = editingBid.pass ? 'PASS' : formatUtils.formatBid(Number(editingBid.value));\r\n yield put(notificationActions.notificationAddErrorMessage(`Bid ${bid} can’t be saved for ${company.code}`));\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\ntype TSaveAction = { type: string, payload: { resolveConflicts?: boolean } }\r\nfunction* watchBidOnBehalfBulkSave(action: TSaveAction) {\r\n const isSubmitting: boolean = yield select((state: AppState) => state.bidOnBehalf.isSubmitting);\r\n if (isSubmitting) return;\r\n\r\n const bwicReferenceName: string = yield select((state: AppState) => state.bidding.bwic && state.bidding.bwic.referenceName);\r\n if (!bwicReferenceName) return;\r\n\r\n const isConflictsPopupVisible: boolean = yield select((state: AppState) => state.bidOnBehalf.isConflictsPpopupVisible);\r\n if (isConflictsPopupVisible && !action.payload.resolveConflicts) return; // Stop auto-save when conflicts popup is shown\r\n\r\n const waitingResult: boolean = yield select((state: AppState) =>\r\n state.apiOperation.requests.some(r =>\r\n r.event === ApiOperationType.submitBidsOnBehalf &&\r\n r.state === RequestState.request\r\n )\r\n );\r\n\r\n const bwic: Bwic = yield select((s: AppState) => s.bidding.bwic);\r\n const positions: BwicPosition[] = yield select((state: AppState) => state.sellerBidding.securities);\r\n\r\n if (waitingResult || !bwic || !positions?.length) return;\r\n \r\n const editState: { [key: string]: EditBidOnBehalfState } = yield select((state: AppState) => state.bidOnBehalf.editState);\r\n const bidsByCompany = new Map();\r\n const bids = getBidsToSubmit(positions, editState);\r\n const conflicts: BidOnBehalfConflict[] = action.payload.resolveConflicts\r\n ? yield select((state: AppState) => state.bidOnBehalf.conflicts)\r\n : [];\r\n\r\n bids.forEach(({ positionId, companyId, bid }) => {\r\n const position = positions.find(p => p.id === positionId);\r\n if (position) {\r\n if (!bidsByCompany.has(companyId)) {\r\n bidsByCompany.set(companyId, []);\r\n }\r\n\r\n const conflictBidLock = conflicts.find(c => c.positionId === position.id && c.companyId === companyId)?.modifiedDate\r\n const companyBidLock = position.bidLocks?.find(b => b.companyId === companyId)?.bidLock;\r\n const bidLock = conflictBidLock && companyBidLock\r\n ? arrayUtils.max([conflictBidLock, companyBidLock], date => new Date(date).getTime())\r\n : conflictBidLock ?? companyBidLock;\r\n\r\n const bids = position.bids || []\r\n const companyBids = bids.filter(b => b.company.id === companyId);\r\n const latestBid: Bid | undefined = arrayUtils.max(companyBids, bid => bid.id);\r\n\r\n bidsByCompany\r\n .get(companyId)\r\n ?.push({\r\n positionId,\r\n bidLock,\r\n size: position.size,\r\n value: bid.value ? +bid.value : latestBid?.value,\r\n axed: bid.axed == null ? !!latestBid?.axed : bid.axed,\r\n final: bid.final == null ? !!latestBid?.final : bid.final,\r\n pass: !!bid.pass,\r\n stagedBiddingStatus: bwic.process.stagedBiddingStatus\r\n });\r\n }\r\n });\r\n\r\n const bulkList: BulkSaveBidOnBehalf[] = [...bidsByCompany.entries()]\r\n .map(([companyId, bids]) => ({\r\n brokerDealerCompanyId: companyId,\r\n bids\r\n }));\r\n\r\n\r\n if (!bulkList.length) return;\r\n\r\n if (action.payload.resolveConflicts) {\r\n yield put(bidOnBehalfActions.conflictsPopupVisible(false));\r\n }\r\n\r\n yield put(bidOnBehalfActions.submitProgress(true));\r\n\r\n try {\r\n const tokens: string[] = yield call(bidOnBehalfService.submitBidsBulk, bwicReferenceName, bulkList);\r\n if (tokens && tokens.length) {\r\n yield put(apiOperationActions.waitResult(\r\n ...tokens.map(token => ({\r\n token,\r\n event: ApiOperationType.submitBidsOnBehalf,\r\n state: RequestState.request,\r\n autoRemove: true,\r\n createdDate: new Date()\r\n }))\r\n ));\r\n }\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(bidOnBehalfActions.submitProgress(false));\r\n }\r\n}\r\n\r\nfunction getBidsToSubmit(\r\n positions: BwicPosition[],\r\n editState: { [key: string]: EditBidOnBehalfState }) {\r\n\r\n if (!positions || !positions.length) return [];\r\n\r\n return Object\r\n .keys(editState)\r\n .filter((key: string) => {\r\n const { positionId, companyId } = parseKey(key);\r\n const edit = editState[key];\r\n\r\n if (!edit.error && !edit.editing) {\r\n const position = positions.find(s => s.id === positionId);\r\n if (position) {\r\n const companyBids = position.bids?.filter(b => b.company.id === companyId) ?? [];\r\n const latestBid: Bid | undefined = arrayUtils.max(companyBids, bid => bid.id);\r\n\r\n return bidOnBehalfUtils.isBidChanged(edit, latestBid);\r\n }\r\n }\r\n\r\n return false;\r\n })\r\n .map((key: string) => {\r\n const { positionId, companyId } = parseKey(key);\r\n\r\n return {\r\n positionId,\r\n companyId,\r\n bid: editState[key]\r\n };\r\n });\r\n}\r\n\r\ntype TNewBidAction = { type: string, bwicReferenceName: string, positionId: number, bid: Bid };\r\nfunction* watchNewBid(action: TNewBidAction) {\r\n const bwicReferenceName: string = yield select((state: AppState) => state.bidding.bwic && state.bidding.bwic.referenceName);\r\n if (!bwicReferenceName ||\r\n !action.bwicReferenceName ||\r\n !action.positionId ||\r\n !action.bid ||\r\n bwicReferenceName !== action.bwicReferenceName) return;\r\n\r\n const edit: EditBidOnBehalfState | undefined =\r\n yield select((state: AppState) => state.bidOnBehalf.editState[getEditKey(action.positionId, action.bid.company.id)]);\r\n\r\n if (edit && !bidOnBehalfUtils.isBidChanged(edit, action.bid)) {\r\n yield put(bidOnBehalfActions.resetBidEdit(action.positionId, action.bid.company.id));\r\n }\r\n}\r\n\r\n\r\nfunction* watchMoveNextBid(action: { type: string, payload: { companyId: number, positionId: number } }) {\r\n const securities: BwicPosition[] = yield select((state: AppState) => state.sellerBidding.securities);\r\n const participants: CompanySlim[] = yield select((state: AppState) => state.bidding.bwic.companies);\r\n const processType: BwicProcessType = yield select((state: AppState) => state.bidding.bwic.process?.type) ?? BwicProcessType.Standard;\r\n const offPlatformCompanies: CompanySlim[] = yield select((state: AppState) => state.bidOnBehalf.companies);\r\n const hiddenState: CompanyHiddenState = yield select((state: AppState) => state.dealerListPanel.companyHiddenState);\r\n const favorites: FavoriteCompanyState = yield select((state: AppState) => state.favoriteBrokerDealers.favorites);\r\n const agreements: SettlementAgentAgreement[] = yield select((state: AppState) => state.entities.settlementAgentAgreements.items);\r\n const companies = getSellerBiddingCompanies({ participants, offPlatformCompanies, hiddenState, favorites, processType, agreements, securities });\r\n\r\n if (!companies.length) return;\r\n\r\n const isTraded = (p: BwicPosition) =>\r\n p.trade != null &&\r\n (p.trade.status === TradeStatus.pending || p.trade.status === TradeStatus.affirmed);\r\n\r\n const isOnPlatform = (c: CompanySlim) => c.status === CompanyStatus.active;\r\n\r\n const currentPositionIndex = securities.findIndex(p => p.id === action.payload.positionId);\r\n if (currentPositionIndex < 0) return;\r\n let nextPositionId: number | undefined = securities.find((p, i) => !isTraded(p) && i > currentPositionIndex)?.id;\r\n\r\n let nextCompanyId: number | undefined = action.payload.companyId;\r\n if (!nextPositionId) { //last position is focused move to the next company\r\n const currentCompanyIndex = companies.findIndex(c => c.id === action.payload.companyId);\r\n if (currentCompanyIndex < 0) return;\r\n\r\n nextCompanyId = companies.find((c, i) => !isOnPlatform(c) && i > currentCompanyIndex)?.id;\r\n if (nextCompanyId == null) nextCompanyId = companies.find(c => !isOnPlatform(c))?.id;\r\n }\r\n\r\n if (!nextPositionId) {\r\n // move to the first not traded position\r\n nextPositionId = securities.find(p => !isTraded(p))?.id;\r\n }\r\n\r\n if (nextPositionId && nextCompanyId) {\r\n yield put(bidOnBehalfActions.setNextBidIdentifiers(nextCompanyId, nextPositionId));\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(bidOnBehalfActions.reset())\r\n}\r\n\r\nexport function* watchBidOnBehalf() {\r\n yield takeEvery(getType(bidOnBehalfActions.requestCompanies), watchBidOnBehalfCompaniesRequest);\r\n yield takeEvery(getType(bidOnBehalfActions.submit), watchBidOnBehalfBulkSave);\r\n yield takeEvery(getType(apiOperationActions.error), watchOperationError);\r\n yield takeEvery(pushDataActions.PUSH_DATA_NEW_BID, watchNewBid);\r\n yield takeEvery(getType(bidOnBehalfActions.moveNextBid), watchMoveNextBid);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import { getType } from 'typesafe-actions';\r\nimport { put, takeLatest, call } from 'redux-saga/effects';\r\nimport { amrPipelineCommonActions, errorActions } from '../actions';\r\nimport { AnyAction } from 'redux';\r\nimport { companiesService } from '../services';\r\nimport { Company } from '../types/amr-pipeline/models/Company';\r\nimport { amrPipelineService } from '../services/amr-pipeline.service';\r\nimport { routes } from '../constants';\r\nimport { user } from '../user';\r\nimport { TransactionResponse } from '../types/amr-pipeline/models/TransactionResponse';\r\nimport { history } from '../history';\r\n\r\nfunction* watchLoadUserCompany(action: AnyAction) {\r\n try {\r\n const company: Company = yield call(companiesService.getCurrentUserCompany, true);\r\n\r\n yield put(amrPipelineCommonActions.loadUserCompanyResponse(company));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* registerUser() {\r\n try {\r\n const company: Company = yield call(companiesService.getCurrentUserCompany, true);\r\n\r\n yield call(amrPipelineService.registerUser, user, company);\r\n yield put(amrPipelineCommonActions.loadUserCompanyResponse(company));\r\n\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n yield put(amrPipelineCommonActions.loadUserCompanyError())\r\n }\r\n}\r\n\r\nfunction* watchRedirectInvitedClientToTransactionDetails() {\r\n try {\r\n const transactions: TransactionResponse = yield call(amrPipelineService.getTransactionsList, { count: 1 });\r\n const transaction = transactions.items[0];\r\n\r\n if (transaction) {\r\n yield call(history.push, routes.transactionDetailUrl(transaction.referenceName, transaction.dealReferenceName));\r\n } else {\r\n yield call(history.push, routes.issuanceMonitorWithNoData);\r\n }\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nexport function* watchAmrPipelineCommon() {\r\n yield takeLatest(getType(amrPipelineCommonActions.loadUserCompanyRequest), watchLoadUserCompany);\r\n yield takeLatest(getType(amrPipelineCommonActions.registerUser), registerUser);\r\n yield takeLatest(\r\n getType(amrPipelineCommonActions.redirectInvitedClientToTransactionDetails),\r\n watchRedirectInvitedClientToTransactionDetails,\r\n );\r\n}\r\n","import { call, put, select, takeLatest } from \"redux-saga/effects\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { addToPortfolioActions } from \"../actions/add-to-portfolio.actions\";\r\nimport { portfolioService } from \"../services\";\r\nimport { errorActions } from \"../actions\";\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { ApiError } from \"../types/ApiError\";\r\nimport { BwicPositionBase } from \"../types/bwic/BwicPositionBase\";\r\nimport { jsonUtils } from \"../utils\";\r\nimport { portfolioListActions } from \"../actions/portfolio-list.actions\";\r\nimport { Portfolio } from \"../types/portfolio/Portfolio\";\r\n\r\nfunction* watchAddSecurityToPortfolio(action: { type: string, payload: { position: BwicPositionBase, size: Number, newPortfolioName?: string } }) {\r\n const portfolio: Portfolio | undefined = yield select((s: AppState) => s.addToPortfolio.selectedPortfolio);\r\n\r\n const { securityId, isinCusip, ticker, rating } = action.payload.position;\r\n\r\n const securityModel = {\r\n securityId,\r\n isinCusip,\r\n ticker,\r\n rating,\r\n size: action.payload.size\r\n };\r\n\r\n const { newPortfolioName } = action.payload\r\n\r\n try {\r\n yield put(addToPortfolioActions.setSubmittingProgress(true));\r\n if (newPortfolioName) {\r\n yield call(portfolioService.createNewPortfolio, newPortfolioName, [securityModel], true);\r\n } else {\r\n yield call(portfolioService.saveSecurityPosition, portfolio?.id, securityModel);\r\n }\r\n yield put(addToPortfolioActions.reset());\r\n yield put(portfolioListActions.reset());\r\n } catch (e) {\r\n const error: ApiError | null = jsonUtils.tryParse(e.message);\r\n\r\n if (error) {\r\n yield put(addToPortfolioActions.storeError(error));\r\n } else {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n }\r\n finally {\r\n yield put(addToPortfolioActions.setSubmittingProgress(false));\r\n }\r\n}\r\n\r\nexport function* watchAddToPortfolio() {\r\n yield takeLatest(getType(addToPortfolioActions.addSecurityToPortfolio), watchAddSecurityToPortfolio);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { getType } from 'typesafe-actions';\r\nimport { usersService } from '../services';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { errorActions } from '../actions';\r\nimport { accountActions } from '../constants';\r\nimport { brokerDealerUserListActions } from '../actions/broker-dealer-user-list.actions';\r\nimport { UserSlim } from '../types/account/UserSlim';\r\n\r\nfunction* watchBrokerDealerFetchContacts() {\r\n try {\r\n const contacts: UserSlim[] = yield call(usersService.getActiveBrokerDealers);\r\n yield put(brokerDealerUserListActions.requestResult(RequestState.success, contacts))\r\n } catch (e) {\r\n yield put(brokerDealerUserListActions.requestResult(RequestState.failure));\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(brokerDealerUserListActions.resetEntities())\r\n}\r\n\r\nexport function* watchBrokerDealerUserList() {\r\n yield takeEvery(getType(brokerDealerUserListActions.request), watchBrokerDealerFetchContacts);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\nimport { brokerDealerContactListActions } from '../actions/broker-dealer-contact-list.actions';\r\nimport { getType } from 'typesafe-actions';\r\nimport { contactsService } from '../services';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { errorActions } from '../actions';\r\nimport { accountActions } from '../constants';\r\nimport { Contact } from '../types/company/Contact';\r\n\r\nfunction* watchBrokerDealerFetchContacts() {\r\n try {\r\n const contacts: Contact[] = yield call(contactsService.getContacts);\r\n yield put(brokerDealerContactListActions.requestResult(RequestState.success, contacts))\r\n } catch (e) {\r\n yield put(brokerDealerContactListActions.requestResult(RequestState.failure));\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(brokerDealerContactListActions.resetEntities())\r\n}\r\n\r\nexport function* watchBrokerDealerContactList() {\r\n yield takeEvery(getType(brokerDealerContactListActions.request), watchBrokerDealerFetchContacts);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n","import moment from 'moment';\r\nimport { mapValues, sumBy, toPairs } from 'lodash';\r\nimport { getType } from \"typesafe-actions\";\r\nimport { put, takeLatest, call, all, select } from \"redux-saga/effects\";\r\nimport { amrTransactionAnalyticsActions, errorActions } from \"../actions\";\r\nimport { AnyAction } from \"redux\";\r\nimport { amrPipelineService } from \"../services/amr-pipeline.service\";\r\nimport { DocumentDownloadsStatistic } from \"../types/amr-pipeline/models/DocumentDownloadsStatistic\";\r\nimport {\r\n TransactionClientActivity,\r\n TransactionViewHistory,\r\n TransactionSession,\r\n} from '../types/amr-pipeline/models/TransactionSession';\r\nimport { TransactionAccessType } from '../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { compareDates } from '../utils/compare.utils';\r\nimport { TransactionVersion } from '../types/amr-pipeline/models/TransactionVersion';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { transformToTreeSelect, withDate } from '../utils/analytics.utils';\r\nimport { groupDocsWithAccessType } from '../utils/analytics.utils';\r\n\r\nconst UserAccessTypes = [\r\n TransactionAccessType.Overview,\r\n TransactionAccessType.Structure,\r\n TransactionAccessType.TargetPortfolio,\r\n TransactionAccessType.Documents,\r\n TransactionAccessType.Iois,\r\n TransactionAccessType.ComparableDeals,\r\n];\r\n\r\nfunction groupByAccessCountAndVersion(sessions: TransactionSession[], versions: TransactionVersion[]) {\r\n return sessions\r\n .reduce((acc: TransactionClientActivity[], session: TransactionSession) => {\r\n const grouped = toPairs(session.tabsViews);\r\n const documents = groupDocsWithAccessType(session.documents);\r\n const versionDate = versions.find(v => v.version === session.version)?.dateTime;\r\n\r\n return [\r\n ...acc,\r\n ...grouped.map(([accessType, entries]) => ({\r\n ...session,\r\n accessType,\r\n versionDate,\r\n documents,\r\n accessDateTime: moment(session.accessDateTime).startOf('day').toDate(),\r\n numberOfAccess: entries.length,\r\n } as TransactionClientActivity))\r\n ];\r\n }, [])\r\n .sort((a, b) => compareDates(b.accessDateTime, a.accessDateTime));\r\n}\r\n\r\nfunction groupByViewsAndVersion(sessions: TransactionSession[], versions: TransactionVersion[]) {\r\n return sessions\r\n .reduce((acc: TransactionViewHistory[], session: TransactionSession) => {\r\n const versionDate = versions.find(v => v.version === session.version)?.dateTime;\r\n const views = mapValues(session.tabsViews, x => x.length);\r\n const documentsList = groupDocsWithAccessType(session.documents);\r\n\r\n return [\r\n ...acc,\r\n {\r\n ...session,\r\n versionDate,\r\n views,\r\n documentsList,\r\n } as TransactionViewHistory\r\n ];\r\n }, [])\r\n .sort((a, b) => compareDates(b.accessDateTime, a.accessDateTime));\r\n}\r\n\r\nfunction* watchInit(action: AnyAction) {\r\n try {\r\n const {\r\n dealReferenceName,\r\n transactionReferenceName,\r\n } = action.payload;\r\n\r\n const endDate = new Date();\r\n const startDate = new Date(endDate.getTime());\r\n startDate.setDate(endDate.getDate() - 1);\r\n\r\n let transactionViewHistory: TransactionSession[];\r\n let recentTransactionViewHistory: TransactionSession[];\r\n let documentDownloadsDto: DocumentDownloadsStatistic[];\r\n let daysInMarket: number;\r\n let versions: TransactionVersion[];\r\n\r\n [\r\n transactionViewHistory,\r\n recentTransactionViewHistory,\r\n documentDownloadsDto,\r\n daysInMarket,\r\n versions,\r\n ] = yield all([\r\n call(amrPipelineService.getTransactionViewHistory, dealReferenceName, transactionReferenceName),\r\n call(amrPipelineService.getTransactionViewHistory, dealReferenceName, transactionReferenceName, startDate, endDate),\r\n call(amrPipelineService.getDocumentsDownloads, dealReferenceName, transactionReferenceName),\r\n call(amrPipelineService.getDaysInTheMarket, dealReferenceName, transactionReferenceName),\r\n call(amrPipelineService.getTransactionVersions, dealReferenceName, transactionReferenceName),\r\n ]);\r\n\r\n const documentDownloads = withDate(documentDownloadsDto)\r\n\r\n const totalDocumentsDownloads = sumBy(documentDownloads, (dt) => dt.numberOfDocuments);\r\n\r\n const recentTransactionViews = recentTransactionViewHistory.length;\r\n\r\n const totalTransactionViews = transactionViewHistory.length;\r\n\r\n const clientsActivity = groupByAccessCountAndVersion(transactionViewHistory, versions);\r\n\r\n const users = transformToTreeSelect(clientsActivity, UserAccessTypes);\r\n\r\n yield put(\r\n amrTransactionAnalyticsActions.analyticsInitResponse({\r\n recentTransactionViews,\r\n totalTransactionViews,\r\n totalDocumentsDownloads,\r\n documentDownloads,\r\n daysInMarket,\r\n versions,\r\n clientsActivity,\r\n users\r\n })\r\n );\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchClientsActivityRequest(action: AnyAction) {\r\n try {\r\n const versions: TransactionVersion[] = yield select(\r\n (state: AppState) => state.issuanceMonitor.amrPipelineDetailed.analytics.versions\r\n );\r\n\r\n const { dealReferenceName, transactionReferenceName, startDate, endDate } = action.payload;\r\n\r\n const transactionSessions: TransactionSession[] = yield call(\r\n amrPipelineService.getTransactionViewHistory,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n startDate ? moment(startDate).startOf('day').toDate() : undefined,\r\n endDate ? moment(endDate).endOf('day').toDate() : undefined,\r\n );\r\n\r\n const clientsActivity = groupByAccessCountAndVersion(transactionSessions, versions)\r\n .filter(x => UserAccessTypes.includes(x.accessType as TransactionAccessType));\r\n\r\n yield put(amrTransactionAnalyticsActions.clientsActivityResponse(clientsActivity));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchTransactionHistoryActivityRequest(action: AnyAction) {\r\n try {\r\n const versions: TransactionVersion[] = yield select((s: AppState) => s.issuanceMonitor.amrPipelineDetailed.analytics.versions);\r\n\r\n const { dealReferenceName, transactionReferenceName, startDate, endDate } = action.payload;\r\n\r\n const alignedStartDate = startDate ? moment(startDate).startOf('day').toDate() : undefined;\r\n const alignedEndDate = endDate ? moment(endDate).endOf('day').toDate() : undefined;\r\n\r\n const transactionSessions: TransactionSession[] = yield call(\r\n amrPipelineService.getTransactionViewHistory,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n alignedStartDate,\r\n alignedEndDate\r\n );\r\n\r\n const transactionHistoryActivity = groupByViewsAndVersion(transactionSessions, versions);\r\n\r\n yield put(amrTransactionAnalyticsActions.transactionViewHistoryResponse(transactionHistoryActivity));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchTransactionHistoryActivityFiltrByBar(action: AnyAction) {\r\n const { dealReferenceName, transactionReferenceName, date } = action.payload;\r\n\r\n yield put(\r\n amrTransactionAnalyticsActions.transactionViewHistoryRequest(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n date,\r\n date\r\n )\r\n );\r\n}\r\n\r\nexport function* watchAmrTransactionAnalytics() {\r\n yield takeLatest(getType(amrTransactionAnalyticsActions.analyticsInit), watchInit);\r\n yield takeLatest(getType(amrTransactionAnalyticsActions.clientsActivityRequest), watchClientsActivityRequest);\r\n yield takeLatest(getType(amrTransactionAnalyticsActions.transactionViewHistoryRequest), watchTransactionHistoryActivityRequest);\r\n yield takeLatest(getType(amrTransactionAnalyticsActions.transactionViewHistoryFilterByBar), watchTransactionHistoryActivityFiltrByBar);\r\n}\r\n","import { call, put, select, takeEvery } from \"redux-saga/effects\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport { pushBwicActions } from \"../actions\";\r\nimport { apiOperationActions } from \"../actions/api-operation.actions\";\r\nimport { blastMessageActions } from \"../actions/blast-message.actions\";\r\nimport { errorActions } from \"../actions/error.actions\";\r\nimport { feedbackTypes } from \"../constants/bidding\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { getSecuritiesWithLatestBids } from \"../selectors/latest-bids.selector\";\r\nimport { blastMessageService } from \"../services/blast-message.service\";\r\nimport { ApiOperationType } from \"../types/api-operation/ApiOperationType\";\r\nimport { Bid } from \"../types/bidding/Bid\";\r\nimport { BidRequestType } from \"../types/bidding/BidRequest\";\r\nimport { BlastMessage } from \"../types/blast-message/BlastMessage\";\r\nimport { BwicPosition } from \"../types/bwic/BwicPosition\";\r\nimport { CompanySlim } from \"../types/company/CompanySlim\";\r\nimport { OpenBiddingStatus } from \"../types/enums/OpenBiddingStatus\";\r\nimport { BwicProcessType, Process } from \"../types/models/Process\";\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { BlastMessageRecipientLevelState, BlastMessageRecipientsState, BlastMessageState, BlastMessageTypes } from \"../types/state/BlastMessageState\";\r\nimport { isActiveTrade, TradeStatus } from \"../types/trades/TradeStatus\";\r\nimport { apiUtils } from \"../utils/api.utils\";\r\nimport { BidCompanyIdentifierParseResult, biddingUtils } from \"../utils/bidding.utils\";\r\nimport { calculateStage2Participants } from \"../utils/stage2-participants-calculator\";\r\n\r\nexport function* watchMessageChange() {\r\n yield updateRecipients();\r\n}\r\n\r\nexport function* watchBwicChange() {\r\n yield updateRecipients(true);\r\n}\r\n\r\nfunction* updateRecipients(keepSelection = false) {\r\n const panelVisible: boolean = yield select((s: AppState) => s.blastMessage.panelVisible);\r\n const bwicParticipants: CompanySlim[] = yield select((s: AppState) => s.bidding.bwic?.companies);\r\n const process: Process = yield select((s: AppState) => s.bidding.bwic?.process);\r\n const securities: BwicPosition[] = yield select((s: AppState) => getSecuritiesWithLatestBids({ securities: s.sellerBidding.securities }));\r\n\r\n if (!panelVisible || !bwicParticipants || !bwicParticipants.length || !securities || !securities.length || !process) return;\r\n\r\n const isSelectAllRecipients: boolean = yield select((s: AppState) => s.blastMessage.isSelectAllRecipients);\r\n const messageType: number = yield select((s: AppState) => s.blastMessage.messageType);\r\n const recipientLevel: BlastMessageRecipientLevelState = yield select((s: AppState) => s.blastMessage.recipientLevel);\r\n const recipients: BlastMessageRecipientsState = yield getRecipients(messageType, recipientLevel, bwicParticipants, securities, process);\r\n\r\n if (keepSelection) {\r\n const currentRecipients: BlastMessageRecipientsState = yield select((s: AppState) => s.blastMessage.recipients);\r\n Object\r\n .keys(recipients)\r\n .forEach((key: string) => {\r\n if (currentRecipients.hasOwnProperty(key)) {\r\n recipients[key] = currentRecipients[key];\r\n }\r\n });\r\n }\r\n\r\n yield put(blastMessageActions.storeRecipients(recipients));\r\n yield updateSelectAllRecipientsState(recipients, isSelectAllRecipients);\r\n}\r\n\r\nfunction* getRecipients(\r\n messageType: number,\r\n recipientLevel: BlastMessageRecipientLevelState = BlastMessageRecipientLevelState.Top3,\r\n bwicParticipants: CompanySlim[],\r\n securities: BwicPosition[],\r\n process: Process) {\r\n const biddingSecurities = securities.filter(s => s.trade == null || s.trade.status === TradeStatus.rejected);\r\n\r\n switch (messageType) {\r\n case BlastMessageTypes.submitFinal: return (yield getSubmitFinalRecipients(biddingSecurities, recipientLevel, process)) as BlastMessageRecipientsState\r\n case BlastMessageTypes.stage1AboutToEndTimeout: return (yield getStage1AboutToEndTimeoutRecipients(biddingSecurities)) as BlastMessageRecipientsState\r\n default: return getBidOrPassRecipients(biddingSecurities, bwicParticipants);\r\n }\r\n}\r\n\r\nfunction* getSubmitFinalRecipients(securities: BwicPosition[], recipientLevel: BlastMessageRecipientLevelState, process: Process) {\r\n const isAllToAll: boolean = yield select((s: AppState) => s.bidding.bwic?.isAllToAll);\r\n let recipients: BlastMessageRecipientsState = {};\r\n const withBids = securities.filter(s => s.bids?.length);\r\n\r\n for (const position of withBids) {\r\n let positionRecipients: BlastMessageRecipientsState = {};\r\n\r\n switch (process.type) {\r\n case BwicProcessType.TopX:\r\n case BwicProcessType.JumpBall:\r\n positionRecipients = (yield getStagedProcessRecipients(position, process, isAllToAll)) as BlastMessageRecipientsState;\r\n break;\r\n default: positionRecipients = getStandardProcessRecipients(position, recipientLevel, isAllToAll);\r\n }\r\n\r\n recipients = {\r\n ...recipients,\r\n ...positionRecipients\r\n };\r\n }\r\n\r\n return recipients;\r\n}\r\n\r\nfunction getDefaultSelectedState(isAllToAll: boolean, isBuyside: boolean){\r\n return isAllToAll || !isBuyside;\r\n}\r\n\r\nfunction getStage1AboutToEndTimeoutRecipients(securities: BwicPosition[]) {\r\n let recipients: BlastMessageRecipientsState = {};\r\n const withBids = securities.filter(s => s.bids?.length);\r\n\r\n for (const position of withBids) {\r\n position.bids.forEach(b => { recipients[biddingUtils.getBidCompanyIdentifier(b)] = true });\r\n }\r\n\r\n return recipients;\r\n}\r\n\r\nfunction getStandardProcessRecipients(position: BwicPosition, recipientLevel: BlastMessageRecipientLevelState, isAllToAll: boolean) {\r\n const getTopImproverCount = () => {\r\n if (recipientLevel === BlastMessageRecipientLevelState.Top3) return 3;\r\n if (recipientLevel === BlastMessageRecipientLevelState.Top5) return 5;\r\n return undefined;\r\n }\r\n\r\n const recipients: BlastMessageRecipientsState = {};\r\n\r\n // Calculate for selected level\r\n const topX = getTopImproverCount();\r\n const targetBids: Bid[] = topX\r\n ? biddingUtils.groupBidsByLevel(position.bids).slice(0, topX).flat()\r\n : position.bids;\r\n\r\n targetBids.forEach(b => { recipients[biddingUtils.getBidCompanyIdentifier(b)] = getDefaultSelectedState(isAllToAll, !!b.buyerPseudoOrderNumber) });\r\n\r\n return recipients;\r\n}\r\n\r\nfunction* getStagedProcessRecipients(position: BwicPosition, process: Process, isAllToAll: boolean) {\r\n const recipients: BlastMessageRecipientsState = {};\r\n const allBids: Bid[] | undefined = yield select((state: AppState) => state.sellerBidding.securities.find(x => x.id === position.id)?.bids);\r\n\r\n if (allBids?.length) {\r\n const stage2Participants = calculateStage2Participants(allBids, process);\r\n Object.keys(stage2Participants).forEach((identifier: string) => {\r\n if ( // Jump Ball: Skip participants who already submitted Stage 2 bid\r\n process.type !== BwicProcessType.JumpBall ||\r\n !allBids.some(b =>\r\n b.stagedBiddingStatus === OpenBiddingStatus.stage1Ended &&\r\n biddingUtils.getBidCompanyIdentifier(b) === identifier)) {\r\n const parseResult = biddingUtils.parseBidCompanyIdentifier(identifier) as BidCompanyIdentifierParseResult;\r\n recipients[identifier] = getDefaultSelectedState(isAllToAll, parseResult.buyerPseudoOrderNumber != null);\r\n }\r\n });\r\n }\r\n\r\n return recipients;\r\n}\r\n\r\nfunction getBidOrPassRecipients(securities: BwicPosition[], bwicParticipants: CompanySlim[]) {\r\n const participants = bwicParticipants.filter(p =>\r\n securities.some(s =>\r\n !s.bids\r\n ?.filter(b => !b.buyerPseudoOrderNumber)\r\n .some(b => b.company.id === p.id))\r\n );\r\n return apiUtils.normalize(participants, p => String(p.id), () => true);\r\n}\r\n\r\nfunction* watchRecpientSelectedChange(action: ActionType) {\r\n const recipients: BlastMessageRecipientsState = yield select((s: AppState) => s.blastMessage.recipients);\r\n const isSelectAllRecipients: boolean = yield select((s: AppState) => s.blastMessage.isSelectAllRecipients);\r\n\r\n if (recipients[action.payload.companyIdentifier] !== isSelectAllRecipients) {\r\n yield updateSelectAllRecipientsState(recipients, isSelectAllRecipients);\r\n }\r\n}\r\n\r\nfunction* updateSelectAllRecipientsState(\r\n recipients: BlastMessageRecipientsState,\r\n isSelectAllRecipients: boolean) {\r\n const shouldToggleSelectAll =\r\n Object\r\n .keys(recipients)\r\n .every((key: string) => recipients[key] === !isSelectAllRecipients);\r\n if (shouldToggleSelectAll) {\r\n yield put(blastMessageActions.toggleSelectAllParticipantsFlag());\r\n }\r\n}\r\n\r\nexport function* watchSend(action: ActionType) {\r\n const bwicReferenceName: string = yield select((s: AppState) => s.bidding.bwic?.referenceName);\r\n const { messageType, recipientLevel, stage1AboutToEndTimeout }: BlastMessageState = yield select((s: AppState) => s.blastMessage);\r\n const process: Process = yield select((s: AppState) => s.bidding.bwic?.process);\r\n const { blastMessageRecipients, bwicParticipants, securities } = action.payload;\r\n\r\n const recipients = Object\r\n .keys(blastMessageRecipients)\r\n .filter((key: string) => blastMessageRecipients[key]);\r\n\r\n if (!bwicReferenceName ||\r\n !bwicParticipants ||\r\n !bwicParticipants.length ||\r\n !securities ||\r\n !securities.length ||\r\n !recipients.length ||\r\n !messageType) return;\r\n\r\n const recipientsByPosition: Map = new Map();\r\n const unsold = securities.filter(s => !isActiveTrade(s.trade))\r\n\r\n for (var s of unsold) {\r\n const recipients: BlastMessageRecipientsState = yield getRecipients(messageType, recipientLevel, bwicParticipants, [s], process);\r\n recipientsByPosition.set(s.id, recipients);\r\n }\r\n\r\n function getFeedbackType(messageType: number) {\r\n switch (messageType) {\r\n case BlastMessageTypes.stage1AboutToEndTimeout: return feedbackTypes.stage1AboutToEndTimeout\r\n case BlastMessageTypes.submitFinal: return feedbackTypes.submitFinal\r\n default: return undefined\r\n }\r\n }\r\n\r\n const model: BlastMessage = {\r\n companyMessages: recipients\r\n .map(identifier => ({ identifier, ...biddingUtils.parseBidCompanyIdentifier(identifier) }))\r\n .filter(({ brokerDealerCompanyId }) => brokerDealerCompanyId != null)\r\n .map(({ identifier, brokerDealerCompanyId, buyerPseudoOrderNumber }) => ({\r\n brokerDealerCompanyId: brokerDealerCompanyId ?? 0,\r\n buyerPseudoOrderNumber,\r\n positionMessages: unsold.filter(s => {\r\n const recipients = recipientsByPosition.get(s.id);\r\n return recipients && recipients.hasOwnProperty(identifier) && blastMessageRecipients[identifier];\r\n }).map(s => ({\r\n positionId: s.id,\r\n bidRequestType: messageType === BidRequestType.BidOrPass ? messageType : undefined,\r\n feedbackType: getFeedbackType(messageType),\r\n stage1AboutToEndTimeout: messageType === BlastMessageTypes.stage1AboutToEndTimeout ? stage1AboutToEndTimeout : undefined,\r\n feedbackBidId: messageType === BlastMessageTypes.submitFinal || messageType === BlastMessageTypes.stage1AboutToEndTimeout\r\n ? s.bids?.find(b => biddingUtils.getBidCompanyIdentifier(b) === identifier)?.id\r\n : undefined\r\n }))\r\n })).filter(cm => cm.positionMessages.length > 0)\r\n };\r\n\r\n if (!model.companyMessages.length) {\r\n yield put(blastMessageActions.hide());\r\n return;\r\n }\r\n\r\n yield put(blastMessageActions.sending(true));\r\n try {\r\n const tokens: string[] = yield call(blastMessageService.send, bwicReferenceName, model);\r\n if (tokens && tokens.length) {\r\n yield put(apiOperationActions.waitResult(\r\n ...tokens.map(token => ({\r\n token,\r\n event: ApiOperationType.BlastMessage,\r\n state: RequestState.request,\r\n autoRemove: true,\r\n createdDate: new Date()\r\n }))\r\n ));\r\n }\r\n yield put(blastMessageActions.hide());\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(blastMessageActions.sending(false));\r\n }\r\n}\r\n\r\nexport function* watchBlastMessage() {\r\n yield takeEvery([\r\n getType(blastMessageActions.show),\r\n getType(blastMessageActions.messageTypeChange),\r\n getType(blastMessageActions.recipientLevelChange)], watchMessageChange);\r\n yield takeEvery(getType(blastMessageActions.recipientSelectedChange), watchRecpientSelectedChange);\r\n yield takeEvery(getType(pushBwicActions.newBid), watchBwicChange);\r\n yield takeEvery(getType(pushBwicActions.tradeAction), watchBwicChange);\r\n yield takeEvery(getType(blastMessageActions.send), watchSend);\r\n}\r\n","import { all, call, put, select, takeLatest } from 'redux-saga/effects';\r\nimport { Action, ActionType, getType } from 'typesafe-actions';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { constants, gridColumns, roles } from '../constants';\r\nimport { PipelineType } from '../types/amr-pipeline/enums/PipelineType';\r\nimport { ArrangerPipelineFilters, PipelineFilterState } from '../types/state/PipelineFilterState';\r\nimport { amrArrangerPipelineActions } from '../actions/amr-arranger-pipeline.actions';\r\nimport { ArrangerPipelineState } from '../types/state/ArrangerPipelineState';\r\nimport {\r\n selectedBooleanOption,\r\n selectedRadioOption,\r\n selectedRangeOptions,\r\n selectedSelectGroupOptions,\r\n} from '../utils/amr-pipeline-filter.utils';\r\nimport { mergeSortCriteria } from '../utils/amr-pipeline.utils';\r\nimport { amrArrangerPipelineService } from '../services/amr-arranger-pipeline.service';\r\nimport { ArrangerPipeline, Category } from '../types/amr-pipeline/models/ArrangerPipeline';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { arrangerPipelineDealsSelector, issuanceMonitorFilterSelector } from '../selectors/amr-pipeline.selector';\r\nimport { errorActions, gridActions } from '../actions';\r\nimport { Deal } from '../types/amr-pipeline/models/Deal';\r\nimport { Company } from '../types/amr-pipeline/models/Company';\r\nimport { GridDataItem } from '../types/state/GridState';\r\nimport { ArrangerPipelineDealsState } from '../types/state/ArrangerPipelineDealsState';\r\nimport { saveAs } from 'file-saver';\r\nimport moment from 'moment';\r\nimport { FilterSelectGroup } from '../types/filters/FilterGroup';\r\nimport { compareClassName, compareDates, compareEmpty, compareStrings } from '../utils/compare.utils';\r\nimport { user } from '../user';\r\nimport { LookupDataItem } from '../components/grid/Cells/Lookup2';\r\nimport { store } from '../store';\r\nimport { arrangers, collateralManagers, dealsLegalNames } from '../utils/filtering/serializers/serializer.definitions';\r\nimport { QueryStringArgumentSerializer } from '../utils/filtering/serializers/QueryStringArgumentSerializer';\r\nimport { queryStringSerializer } from '../utils/filtering';\r\nimport { createFilterActions } from '../actions/filter.actions';\r\nimport { UserConfigFilter } from '../types/user-config/UserConfigFilter';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { ArrangerPipelineStatistic } from '../types/amr-pipeline/models/ArrangerPipelineStatistic';\r\nimport { history } from '../history';\r\nimport { amrCompaniesService } from '../services/amr-companies.service';\r\nimport { HavingDealType } from '../types/amr-pipeline/enums/HavingDealType';\r\nimport { dealsService } from '../services/deals.service';\r\nimport { DealSecurityStatistics } from '../types/security/DealSecurityStatistics';\r\nimport { bwicDealsService } from '../services';\r\nimport { uniq } from 'lodash';\r\n\r\nconst filterActions = createFilterActions(PipelineType.ArrangerPipeline);\r\n\r\nfunction convertGridDataItemToArrangerPipeline(gridDataItem: GridDataItem) {\r\n const {\r\n referenceName,\r\n dealReferenceName,\r\n collateralManagerReferenceName,\r\n arrangerReferenceName,\r\n dealLegalName,\r\n collateralType,\r\n type,\r\n nonCallPeriodEnd,\r\n reinvestmentPeriodEnd,\r\n expectedTiming,\r\n dealStage,\r\n euCompliance,\r\n anchor,\r\n equity,\r\n disclosureFile,\r\n } = gridDataItem;\r\n\r\n return {\r\n referenceName,\r\n dealReferenceName,\r\n collateralManagerReferenceName,\r\n arrangerReferenceName,\r\n dealLegalName,\r\n type: type || null,\r\n collateralType: collateralType || null,\r\n nonCallPeriodEnd,\r\n reinvestmentPeriodEnd,\r\n expectedTiming,\r\n dealStage: dealStage || null,\r\n euCompliance: euCompliance || null,\r\n anchor: anchor || null,\r\n equity: equity || null,\r\n disclosureFileReferenceName: disclosureFile ? disclosureFile.referenceName : null,\r\n };\r\n}\r\n\r\nfunction getFilterCriteria(filter: ArrangerPipelineFilters) {\r\n return {\r\n collateralManagerReferenceNames: selectedSelectGroupOptions(filter.managers),\r\n arrangerReferenceNames: selectedSelectGroupOptions(filter.arrangers),\r\n collateralTypes: selectedSelectGroupOptions(filter.collateralType),\r\n euCompliance: selectedBooleanOption(filter.euCompliance),\r\n anchor: selectedBooleanOption(filter.anchor),\r\n reinvestmentPeriodEnd: selectedRangeOptions(filter.riEnd),\r\n nonCallPeriodEnd: selectedRangeOptions(filter.ncEnd),\r\n equities: selectedRadioOption(filter.equity),\r\n };\r\n}\r\n\r\nfunction filterExistingOptions(optionsNames: string[], optionFilter: FilterSelectGroup) {\r\n return optionsNames.filter(o => optionFilter.filter.find(f => f.value === o));\r\n}\r\n\r\nfunction* setFilterFromSearchString(filter: ArrangerPipelineFilters) {\r\n const queryString = history.location.search;\r\n\r\n if (!queryString) {\r\n return;\r\n }\r\n\r\n let collateralManagerReferenceNames: string[] = [];\r\n let arrangerReferenceNames: string[] = [];\r\n let dealLegalNames: string[] = [];\r\n\r\n const collateralManagersSerializer = collateralManagers(\r\n collateralManagers =>\r\n (collateralManagerReferenceNames = filterExistingOptions(collateralManagers, filter.managers)),\r\n filter.managers.filter.map(filter => filter.value as string),\r\n );\r\n\r\n const arrangersSerializer = arrangers(\r\n arrangers => (arrangerReferenceNames = filterExistingOptions(arrangers, filter.arrangers)),\r\n filter.arrangers.filter.map(filter => filter.value as string),\r\n );\r\n\r\n const serializers: QueryStringArgumentSerializer[] = [\r\n collateralManagersSerializer,\r\n arrangersSerializer,\r\n dealsLegalNames(legalNames => (dealLegalNames = legalNames ?? [])),\r\n ];\r\n\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n\r\n if (collateralManagerReferenceNames.length || arrangerReferenceNames.length || dealLegalNames.length) {\r\n yield put(filterActions.resetFiltersAndUnselectSavedFilter());\r\n yield put(filterActions.resetFiltersVisibility());\r\n }\r\n\r\n function* selectOptionFilter(referenceName: string, filterName: string) {\r\n const selectOptionFilter: Action = yield call(filterActions.filterSelectChange, referenceName, filterName);\r\n yield put(selectOptionFilter);\r\n }\r\n\r\n yield all(collateralManagerReferenceNames.map(manager => selectOptionFilter(manager, 'managers')));\r\n yield all(arrangerReferenceNames.map(arranger => selectOptionFilter(arranger, 'arrangers')));\r\n yield put(amrArrangerPipelineActions.selectDealsFromSearch(dealLegalNames));\r\n\r\n history.replace(history.location.pathname);\r\n}\r\n\r\nfunction* checkIfArrangerPipelineExist() {\r\n try {\r\n const onePipeline: ArrangerPipeline[] = yield call(\r\n amrArrangerPipelineService.getArrangerPipelines,\r\n { count: 1 },\r\n [],\r\n );\r\n\r\n const anyPipelineExists = !!onePipeline.length;\r\n yield put(amrArrangerPipelineActions.setAnyPipelineExists(anyPipelineExists));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchArrangerPipelineRequest() {\r\n const {\r\n deals: { sortBy, sortDirection, selectedDealsLegalNames, offset },\r\n filter: { lastAppliedFilter },\r\n }: ArrangerPipelineState = yield select((state: AppState) => state.issuanceMonitor.amrArrangerPipeline);\r\n\r\n const filterCriteria = {\r\n ...getFilterCriteria(lastAppliedFilter),\r\n deals: selectedDealsLegalNames,\r\n count: constants.defaultTransactionsSearchCriteria.count,\r\n offset,\r\n };\r\n\r\n const sortCriteria = mergeSortCriteria(sortBy, sortDirection, constants.defaultArrangerPipelineOrderCriteria);\r\n\r\n try {\r\n const pipelines: ArrangerPipeline[] = yield call(\r\n amrArrangerPipelineService.getArrangerPipelines,\r\n filterCriteria,\r\n sortCriteria,\r\n );\r\n\r\n let nonVisiblePipelinesCount: number | undefined;\r\n\r\n if (!user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess)) {\r\n nonVisiblePipelinesCount = yield call(amrArrangerPipelineService.getArrangerPipelinesCount, filterCriteria);\r\n }\r\n\r\n const arrangerPipelineDeals: Partial[] = yield call(amrArrangerPipelineService.getDealsLegalNames);\r\n\r\n if (!pipelines.length) {\r\n // check if some pipeline exist for current user\r\n yield call(checkIfArrangerPipelineExist);\r\n }\r\n\r\n yield put(amrArrangerPipelineActions.dealsSearchResponse(RequestState.success, arrangerPipelineDeals));\r\n yield put(\r\n amrArrangerPipelineActions.arrangerPipelinesResponse(\r\n RequestState.success,\r\n pipelines,\r\n nonVisiblePipelinesCount,\r\n ),\r\n );\r\n\r\n yield put(amrArrangerPipelineActions.setEditLoadingStatus(false));\r\n\r\n const dealTickers = pipelines ? uniq(pipelines?.filter(t => !!t.dealTicker).map(t => t.dealTicker!)) : [];\r\n\r\n yield put(amrArrangerPipelineActions.arrangerPipelineSecuritiesRequest(dealTickers));\r\n } catch (error) {\r\n yield put(amrArrangerPipelineActions.arrangerPipelinesResponse(RequestState.failure));\r\n } finally {\r\n yield put(amrArrangerPipelineActions.setEditLoadingStatus(false));\r\n }\r\n}\r\n\r\nfunction* watchSecuritiesRequest(\r\n action: ActionType,\r\n) {\r\n const { dealTickers } = action.payload;\r\n\r\n const statistics: DealSecurityStatistics[] = yield call(bwicDealsService.getDealSecurityStatistics, dealTickers);\r\n const sorted = statistics.map(s => ({\r\n ...s,\r\n classes: s.classes?.sort(\r\n (a, b) =>\r\n compareEmpty(a.closingDate, b.closingDate) || // put classes without closing date down\r\n compareDates(b.closingDate, a.closingDate) ||\r\n compareClassName(a.name, b.name),\r\n ),\r\n }));\r\n\r\n yield put(amrArrangerPipelineActions.arrangerPipelineSecuritiesResponse(RequestState.success, sorted));\r\n}\r\n\r\nfunction* watchExport() {\r\n const {\r\n deals: { sortBy, sortDirection, selectedDealsLegalNames },\r\n filter: { lastAppliedFilter },\r\n }: ArrangerPipelineState = yield select((state: AppState) => state.issuanceMonitor.amrArrangerPipeline);\r\n\r\n const filterCriteria = {\r\n ...getFilterCriteria(lastAppliedFilter),\r\n deals: selectedDealsLegalNames,\r\n count: constants.defaultTransactionsSearchCriteria.count,\r\n };\r\n const sortCriteria = mergeSortCriteria(sortBy, sortDirection, constants.defaultArrangerPipelineOrderCriteria);\r\n\r\n yield put(amrArrangerPipelineActions.exportLoad(true));\r\n\r\n try {\r\n const file: { blob: Blob } = yield call(\r\n amrArrangerPipelineService.exportArrangerPipelines,\r\n filterCriteria,\r\n sortCriteria,\r\n );\r\n saveAs(file.blob, `Arranger Pipeline - ${moment().format(constants.issuanceMonitorExportDateFormat)}.xlsx`);\r\n } catch (error) {\r\n yield put(errorActions.error(error));\r\n } finally {\r\n yield put(amrArrangerPipelineActions.exportLoad(false));\r\n }\r\n}\r\n\r\nfunction* watchDealsRequest(action: ActionType) {\r\n try {\r\n const deals: Deal[] = yield call(dealsService.getDealsList, action.payload.searchTerm);\r\n\r\n yield put(amrArrangerPipelineActions.changeDealReferenceName(null));\r\n yield put(amrArrangerPipelineActions.dealsResponse(RequestState.success, deals));\r\n } catch (error) {\r\n yield put(amrArrangerPipelineActions.dealsResponse(RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* watchApplyFilterAndSearch() {\r\n yield put(amrArrangerPipelineActions.resetPipelines());\r\n yield put(filterActions.applyFilter());\r\n\r\n try {\r\n yield put(amrArrangerPipelineActions.arrangerPipelinesRequest());\r\n yield put(amrArrangerPipelineActions.arrangerPipelineStatisticRequest());\r\n } catch (e) {\r\n yield put(filterActions.resetFilter());\r\n }\r\n}\r\n\r\nfunction* watchSummaryRequest() {\r\n const {\r\n deals: { selectedDealsLegalNames },\r\n filter: { lastAppliedFilter },\r\n }: ArrangerPipelineState = yield select((state: AppState) => state.issuanceMonitor.amrArrangerPipeline);\r\n\r\n const filterCriteria = {\r\n ...getFilterCriteria(lastAppliedFilter),\r\n deals: selectedDealsLegalNames,\r\n };\r\n\r\n try {\r\n const summary: ArrangerPipelineStatistic = yield call(\r\n amrArrangerPipelineService.getArrangerPipelinesStatistic,\r\n filterCriteria,\r\n );\r\n\r\n yield put(amrArrangerPipelineActions.arrangerPipelineStatisticResponse(summary));\r\n } catch (e) {\r\n yield put(errorActions.error(e));\r\n }\r\n}\r\n\r\nfunction* watchInitFilter() {\r\n const pipelineType = PipelineType.ArrangerPipeline;\r\n const filterSelector = issuanceMonitorFilterSelector(pipelineType);\r\n const imFilterState: PipelineFilterState = yield select(filterSelector);\r\n\r\n const { filter, initialFilter } = imFilterState;\r\n\r\n if (!initialFilter) {\r\n if (!filter.managers.filter.length) {\r\n yield put(\r\n filterActions.storeFilterData.request({\r\n filterType: PipelineType.ArrangerPipeline,\r\n filterName: 'managers',\r\n }),\r\n );\r\n yield put(\r\n filterActions.storeFilterData.request({\r\n filterType: PipelineType.ArrangerPipeline,\r\n filterName: 'arrangers',\r\n }),\r\n );\r\n\r\n const managers: Company[] = yield call(\r\n amrCompaniesService.getManagersList,\r\n HavingDealType.CmHavingAllPublishedDeals,\r\n );\r\n const arrangers: Company[] = yield call(amrCompaniesService.getArrangersList, true);\r\n\r\n yield put(\r\n filterActions.storeFilterData.success({\r\n filterType: PipelineType.ArrangerPipeline,\r\n filterName: 'managers',\r\n data: managers\r\n .sort((a, b) => a.legalName.localeCompare(b.legalName))\r\n .map(m => ({\r\n selected: false,\r\n disabled: false,\r\n visible: true,\r\n value: m.referenceName,\r\n text: m.legalName,\r\n })),\r\n }),\r\n );\r\n yield put(\r\n filterActions.storeFilterData.success({\r\n filterType: PipelineType.ArrangerPipeline,\r\n filterName: 'arrangers',\r\n data: arrangers\r\n .sort((a, b) => a.legalName.localeCompare(b.legalName))\r\n .map(a => ({\r\n selected: false,\r\n disabled: false,\r\n visible: true,\r\n value: a.referenceName,\r\n text: a.legalName + (a.code ? ' (' + a.code + ')' : ''),\r\n })),\r\n }),\r\n );\r\n }\r\n\r\n yield initFilter();\r\n }\r\n}\r\n\r\nfunction* initFilter() {\r\n const pipelineType = PipelineType.ArrangerPipeline;\r\n const filterSelector = issuanceMonitorFilterSelector(pipelineType);\r\n\r\n const imFilterState: PipelineFilterState = yield select(filterSelector);\r\n const { filter } = imFilterState;\r\n\r\n yield put(filterActions.init(filter));\r\n\r\n const hasImFiltersAccess = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFiltersEmailAlerts);\r\n\r\n if (hasImFiltersAccess) {\r\n const defaultFilter: UserConfigFilter = yield select((state: AppState) =>\r\n state.imUserConfig.filtersConfig.ApFilter.value.find(filter => filter.default),\r\n );\r\n\r\n yield put(filterActions.selectFilterFromConfig(defaultFilter));\r\n yield setFilterFromSearchString(filter);\r\n }\r\n\r\n yield call(watchApplyFilterAndSearch);\r\n}\r\n\r\nfunction* watchResetFilter() {\r\n const resetFiltersAndUnselectSavedFilter: Action = yield call(\r\n filterActions.resetFiltersAndUnselectSavedFilter,\r\n );\r\n\r\n yield put(resetFiltersAndUnselectSavedFilter);\r\n yield call(watchApplyFilterAndSearch);\r\n}\r\n\r\nfunction* watchEdit() {\r\n const userCompany: Company = yield select((state: AppState) => state.issuanceMonitor.amrPipelineCommon.userCompany);\r\n\r\n const isBD = user.hasRoles(...roles.bd());\r\n\r\n yield put(amrArrangerPipelineActions.resetPipelines());\r\n\r\n try {\r\n const data: ArrangerPipeline[] = yield call(\r\n amrArrangerPipelineService.getArrangerPipelines,\r\n { count: constants.gridRowsLimit, category: Category.ArrangerPipeline },\r\n constants.defaultArrangerPipelineOrderCriteria,\r\n );\r\n\r\n const pipelines = data.filter(i => i.category === Category.ArrangerPipeline);\r\n\r\n yield put(amrArrangerPipelineActions.arrangerPipelinesResponse(RequestState.success, pipelines));\r\n\r\n const dataItems =\r\n pipelines.map(p => ({\r\n ...p,\r\n arrangerReferenceName: p.arranger?.referenceName,\r\n collateralManagerReferenceName: p.collateralManager.referenceName,\r\n })) ?? [];\r\n\r\n yield put(amrArrangerPipelineActions.submitArrangerPipelineStatus(false));\r\n yield put(gridActions.reset());\r\n\r\n const managers: Company[] = yield call(amrCompaniesService.getManagersList);\r\n const arrangers: Company[] = !isBD ? yield call(amrCompaniesService.getArrangersList) : [userCompany];\r\n\r\n const managerColumn = {\r\n ...gridColumns.collateralManager,\r\n required: true,\r\n selectSourceItemsCallback: () => {\r\n return managers\r\n .map(m => ({ key: m.referenceName, title: m.legalName }))\r\n .sort((a, b) => compareStrings(a.title, b.title));\r\n },\r\n };\r\n\r\n const arrangerGridColumn = {\r\n ...gridColumns.arranger,\r\n required: !user.hasRoles(roles.Administrator, roles.DataEntry),\r\n };\r\n\r\n const arrangerColumn = {\r\n ...arrangerGridColumn,\r\n selectSourceItemsCallback: () => {\r\n return arrangers\r\n .map(m => ({ key: m.referenceName, title: m.legalName || m.name }))\r\n .sort((a, b) => compareStrings(a.title, b.title));\r\n },\r\n };\r\n\r\n const dealNameColumn = {\r\n ...gridColumns.dealName,\r\n type: 'lookup',\r\n lookup: {\r\n compareCallback: (searchTerm: string, lookupItem: LookupDataItem) => {\r\n const deal: Deal = lookupItem.payload;\r\n return deal.legalName.toLowerCase().startsWith(searchTerm.toLowerCase());\r\n },\r\n fetchCallback: async (searchTerm: string, abortSignal: AbortSignal) => {\r\n store.dispatch(amrArrangerPipelineActions.changeDealReferenceName(null));\r\n\r\n const deals: Deal[] = await dealsService.getDealsNamesList(searchTerm, 'legalName', true);\r\n\r\n return deals.map(d => ({\r\n text: d.legalName,\r\n value: d.referenceName,\r\n payload: d,\r\n }));\r\n },\r\n onLookupItemSelected: (deal: LookupDataItem) => {\r\n store.dispatch(amrArrangerPipelineActions.changeDealReferenceName(deal.value as string));\r\n store.dispatch(amrArrangerPipelineActions.changeDealLegalName(deal.text));\r\n store.dispatch(\r\n amrArrangerPipelineActions.updateFields(\r\n deal.payload.collateralManagerReferenceName,\r\n deal.payload.collateralType,\r\n ),\r\n );\r\n },\r\n },\r\n };\r\n\r\n const columns = gridColumns.arrangerPipeline().map((c: any) => {\r\n if (c.name === gridColumns.dealName.name) {\r\n return dealNameColumn;\r\n }\r\n\r\n if (c.name === gridColumns.collateralManager.name) {\r\n return managerColumn;\r\n }\r\n\r\n if (c.name === gridColumns.arranger.name) {\r\n return arrangerColumn;\r\n }\r\n\r\n return c;\r\n });\r\n\r\n const gridInit: Action = yield call(gridActions.init, dataItems, columns, constants.gridRowsLimit);\r\n const gridValidate: Action = yield call(gridActions.validate);\r\n\r\n yield put(gridInit);\r\n yield put(gridValidate);\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n } finally {\r\n yield put(amrArrangerPipelineActions.setEditLoadingStatus(false));\r\n }\r\n}\r\n\r\nfunction* watchDeleteArrangerPipeline(action: ActionType) {\r\n try {\r\n yield call(amrArrangerPipelineService.deleteArrangerPipeline, action.payload.referenceName);\r\n yield call(watchApplyFilterAndSearch);\r\n } catch (error) {\r\n yield put(errorActions.error(error));\r\n }\r\n}\r\n\r\nfunction* watchSubmit() {\r\n const gridValidate: Action = yield call(gridActions.validate);\r\n\r\n yield put(gridValidate);\r\n\r\n const arrangerPipelineState: ArrangerPipelineDealsState = yield select(arrangerPipelineDealsSelector);\r\n const dataItems = arrangerPipelineState.arrangerPipelines;\r\n const gridDataItems: GridDataItem[] = yield select((state: AppState) => state.grid.dataItems);\r\n const arrangerPipelines = gridDataItems.filter(g => !g.draft);\r\n const isGridValid: boolean = yield select((state: AppState) => state.grid.isValid);\r\n\r\n if (!isGridValid && arrangerPipelines.length) {\r\n yield put(amrArrangerPipelineActions.submitArrangerPipelineStatus(false));\r\n return;\r\n }\r\n\r\n const deletedPipelines =\r\n dataItems?.reduce((acc: Partial[], pipeline: ArrangerPipeline) => {\r\n const isSomePipelineDeleted = !arrangerPipelines.some(\r\n p => !p.draft && p.referenceName === pipeline.referenceName,\r\n );\r\n\r\n if (isSomePipelineDeleted) {\r\n return [\r\n ...acc,\r\n {\r\n referenceName: pipeline.referenceName,\r\n arrangerReferenceName: pipeline.arranger?.referenceName,\r\n removed: true,\r\n },\r\n ];\r\n }\r\n\r\n return acc;\r\n }, []) ?? [];\r\n\r\n try {\r\n const arrangerPipeline = arrangerPipelines.reduce(\r\n (acc: Partial[], pipeline: GridDataItem) => {\r\n if (pipeline.draft) {\r\n return [...acc];\r\n }\r\n\r\n const pipelineEditItem = convertGridDataItemToArrangerPipeline(pipeline);\r\n\r\n return [\r\n ...acc,\r\n pipeline.referenceName ? { ...pipelineEditItem } : { ...pipelineEditItem, added: true },\r\n ];\r\n },\r\n [],\r\n );\r\n\r\n yield call(amrArrangerPipelineService.createOrUpdateArrangerPipeline, [\r\n ...arrangerPipeline,\r\n ...deletedPipelines,\r\n ]);\r\n\r\n yield put(amrArrangerPipelineActions.submitArrangerPipelineStatus(true));\r\n } catch (error) {\r\n yield put(errorActions.error(error));\r\n }\r\n}\r\n\r\nfunction* watchChangeDealReferenceName(action: ActionType) {\r\n const { position, dataItems } = yield select((state: AppState) => state.grid);\r\n\r\n const editingPipeline = dataItems[position.index];\r\n\r\n const insertDataItems: Action = yield call(\r\n gridActions.replaceDataItem,\r\n { ...editingPipeline, dealReferenceName: action.payload.dealReferenceName },\r\n position.index,\r\n );\r\n\r\n yield put(insertDataItems);\r\n}\r\n\r\nfunction* watchUpdateFields(action: ActionType) {\r\n const { position, dataItems } = yield select((state: AppState) => state.grid);\r\n\r\n const editingPipeline = dataItems[position.index];\r\n\r\n const { collateralManagerReferenceName, collateralType } = action.payload;\r\n\r\n const insertDataItems: Action = yield call(\r\n gridActions.replaceDataItem,\r\n { ...editingPipeline, collateralManagerReferenceName, collateralType },\r\n position.index,\r\n );\r\n\r\n yield put(insertDataItems);\r\n}\r\n\r\nfunction* watchChangeDealLegalName(action: ActionType) {\r\n const editingGrid: Action = yield call(gridActions.editing, action.payload.dealLegalName);\r\n const applyEdit: Action = yield call(gridActions.applyOrCancelEdit);\r\n\r\n yield put(editingGrid);\r\n yield put(applyEdit);\r\n}\r\n\r\nexport function* watchArrangerPipelineSaga() {\r\n yield takeLatest(getType(amrArrangerPipelineActions.arrangerPipelinesRequest), watchArrangerPipelineRequest);\r\n yield takeLatest(getType(amrArrangerPipelineActions.applyFilterAndSearch), watchApplyFilterAndSearch);\r\n yield takeLatest(getType(amrArrangerPipelineActions.resetFilter), watchResetFilter);\r\n yield takeLatest(getType(amrArrangerPipelineActions.initFilter), watchInitFilter);\r\n yield takeLatest(getType(amrArrangerPipelineActions.edit), watchEdit);\r\n yield takeLatest(getType(amrArrangerPipelineActions.exportPipelines), watchExport);\r\n yield takeLatest(getType(amrArrangerPipelineActions.dealsRequest), watchDealsRequest);\r\n yield takeLatest(getType(amrArrangerPipelineActions.changeDealReferenceName), watchChangeDealReferenceName);\r\n yield takeLatest(getType(amrArrangerPipelineActions.changeDealLegalName), watchChangeDealLegalName);\r\n yield takeLatest(getType(amrArrangerPipelineActions.updateFields), watchUpdateFields);\r\n yield takeLatest(getType(amrArrangerPipelineActions.submitArrangerPipeline), watchSubmit);\r\n yield takeLatest(getType(amrArrangerPipelineActions.arrangerPipelineSecuritiesRequest), watchSecuritiesRequest);\r\n yield takeLatest(getType(amrArrangerPipelineActions.checkIfArrangerPipelineExist), checkIfArrangerPipelineExist);\r\n yield takeLatest(getType(amrArrangerPipelineActions.arrangerPipelineStatisticRequest), watchSummaryRequest);\r\n yield takeLatest(getType(amrArrangerPipelineActions.deleteArrangerPipeline), watchDeleteArrangerPipeline);\r\n}\r\n","import { getType } from 'typesafe-actions';\r\nimport { put, takeLatest, call } from 'redux-saga/effects';\r\nimport { amrPipelineDetailedActions, amrTransactionHistoryActions, errorActions } from '../actions';\r\nimport { ActionType } from '../types/ActionType';\r\nimport { amrPipelineService } from '../services/amr-pipeline.service';\r\nimport Differ from '../utils/differ';\r\nimport { Difference, DifferenceType, Traverse } from '../utils/differ/types';\r\nimport { HistoryItem, OriginatingTransactionHistory } from '../types/amr-pipeline/models/OriginatingTransactionHistory';\r\nimport { PipelineHistoryItem } from '../types/state/PipelineHistoryState';\r\nimport { OriginatingTransactionDiff } from '../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { dealStructureUtils } from '../utils/deal-structure.utils';\r\nimport { OriginatingTransaction } from '../types/amr-pipeline/models/OriginatingTransaction';\r\nimport moment from 'moment';\r\nimport { OriginatingTransactionClass } from '../types/amr-pipeline/models/OriginatingTransactionClass';\r\nimport { amrFormatUtils } from '../utils';\r\nimport { OriginatingTransactionClassDiff } from '../types/amr-pipeline/models/OriginatingTransactionClassDiff';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { flatten, isNil, uniqBy } from 'lodash';\r\nimport { Contact } from '../types/amr-pipeline/models/Contact';\r\n\r\ninterface OriginatingTransactionClassFieldsDiff extends HistoryItem {\r\n classes: OriginatingTransactionClass[];\r\n}\r\n\r\ninterface TransactionHistoryAction {\r\n dealReferenceName: string;\r\n transactionReferenceName: string;\r\n}\r\n\r\ninterface TransactionHistoryDetailsAction extends TransactionHistoryAction {\r\n version: number;\r\n companyReferenceName: string;\r\n}\r\n\r\ninterface FieldsUpdatedHistoryAction extends TransactionHistoryAction {\r\n classReferenceName?: string;\r\n}\r\n\r\ninterface LastUpdatedFields {\r\n guidance?: Date;\r\n subscription?: Date;\r\n}\r\n\r\nconst byEventDateTime = (a: HistoryItem, b: HistoryItem) =>\r\n moment(a.eventDateTime).unix() - moment(b.eventDateTime).unix();\r\n\r\nconst originatingTransactionDiffer = Differ({\r\n // Exclude syndicate contacts from check\r\n syndicateContacts: {\r\n traverse: Traverse.Skip,\r\n },\r\n classes: {\r\n iteratee: (x) => x.referenceName,\r\n },\r\n // Portfolio is in imprecise section\r\n portfolio: {\r\n iteratee: (x) => x.issuer,\r\n traverse: Traverse.Shallow,\r\n },\r\n documents: {\r\n iteratee: (x) => x.referenceName,\r\n },\r\n collateralQualityTests: {\r\n iteratee: (x) => x.value,\r\n },\r\n});\r\n\r\nconst originatingTransactionClassFieldsDiffer = Differ({\r\n classes: {\r\n iteratee: (x) => x.referenceName,\r\n },\r\n});\r\n\r\nconst formatRating = (transactionClass: OriginatingTransactionClass) => {\r\n if (isNil(transactionClass.expectedRatingMoodys) &&\r\n isNil(transactionClass.expectedRatingSnP) &&\r\n isNil(transactionClass.expectedRatingFitch) &&\r\n isNil(transactionClass.expectedRatingKbra) &&\r\n isNil(transactionClass.expectedRatingDbrs)\r\n ) {\r\n return undefined;\r\n }\r\n\r\n return amrFormatUtils.formatRating(transactionClass);\r\n};\r\n\r\nconst countZeroAsNull = (fn: (arg: T) => number) => (arg: T): number | undefined => {\r\n const calculatedValue = fn(arg);\r\n\r\n return calculatedValue\r\n ? calculatedValue\r\n : undefined;\r\n};\r\n\r\nconst classWithCalculatedFields = (transactionClass: OriginatingTransactionClass) => {\r\n return {\r\n ...transactionClass,\r\n coupon: amrFormatUtils.formatInventoryCoupon(transactionClass.floaterIndex, transactionClass.margin, ''),\r\n ratingString: formatRating(transactionClass),\r\n priceNumber: isNil(transactionClass.price) ? transactionClass.price : parseFloat(transactionClass.price),\r\n } as OriginatingTransactionClassDiff;\r\n};\r\n\r\nconst withCalculatedFields = (transaction?: OriginatingTransaction) => {\r\n if (!transaction) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n ...transaction,\r\n calculatedTargetPar: countZeroAsNull(dealStructureUtils.calcTargetPar)(transaction),\r\n calculatedBidPrice: countZeroAsNull(dealStructureUtils.calcBidPrice)(transaction),\r\n calculatedAskPrice: countZeroAsNull(dealStructureUtils.calcAskPrice)(transaction),\r\n classes: transaction.classes.map(classWithCalculatedFields),\r\n } as OriginatingTransactionDiff;\r\n};\r\n\r\nfunction* watchFetchTransactionHistory(action: ActionType) {\r\n const { dealReferenceName, transactionReferenceName } = action.payload;\r\n\r\n try {\r\n const transactions: OriginatingTransactionHistory[] = yield call(amrPipelineService.getTransactionHistory, dealReferenceName, transactionReferenceName);\r\n\r\n const transactionsHistory = transactions.sort(byEventDateTime).map((item, index, self) => {\r\n const previousTransaction = withCalculatedFields(self[index - 1]);\r\n const currentTransaction = withCalculatedFields(item);\r\n\r\n // Do not check first version to avoid showing changes for newly created transaction\r\n const diff: Difference = item.version > 0\r\n ? originatingTransactionDiffer(previousTransaction, currentTransaction)\r\n : {};\r\n\r\n return {\r\n version: item.version,\r\n versionTitle: `${item.version === self.length ? 'Curr.: ' : ''}V.${item.version}`,\r\n versionTitleFull: `${item.version === self.length ? 'Current: ' : ''}V.${item.version}`,\r\n eventDateTime: item.eventDateTime,\r\n transaction: {\r\n ...currentTransaction,\r\n syndicateContacts: [],\r\n isDetailsLoaded: false,\r\n },\r\n diff,\r\n } as PipelineHistoryItem;\r\n }).reverse();\r\n\r\n const allHistoryClassesList = uniqBy(\r\n flatten(transactionsHistory.map(item => item.transaction.classes)), 'name'\r\n ).map(c => {\r\n const rating = formatRating(c);\r\n return {\r\n text: `Class ${c.name} ${rating ? `(${rating})` : ''}`,\r\n searchTerm: `Class ${c.name}`,\r\n synonyms: [\r\n `Tranche ${c.name}`,\r\n c.rating || '',\r\n c.expectedRatingSnP || '',\r\n c.expectedRatingDbrs || '',\r\n c.expectedRatingFitch || '',\r\n c.expectedRatingKbra || '',\r\n c.expectedRatingMoodys || '',\r\n c.expectedRatingSnP || '',\r\n ],\r\n };\r\n });\r\n\r\n yield put(amrTransactionHistoryActions.transactionHistoryResponse(RequestState.success, transactionsHistory, allHistoryClassesList));\r\n } catch (e) {\r\n yield put(amrTransactionHistoryActions.transactionHistoryResponse(RequestState.failure));\r\n }\r\n}\r\n\r\nfunction* watchLoadTransactionDetails(action: ActionType) {\r\n const {\r\n version,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n companyReferenceName,\r\n } = action.payload;\r\n\r\n try {\r\n yield put(amrPipelineDetailedActions.transactionDetailsRequesting(true));\r\n\r\n if (!companyReferenceName) {\r\n yield put(amrTransactionHistoryActions.storeTransactionDetais(version, { syndicateContacts: [] }));\r\n return;\r\n }\r\n\r\n const syndicateContacts: Contact[] = yield call(\r\n amrPipelineService.getSyndicateContactsByArranger,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n companyReferenceName\r\n );\r\n\r\n yield put(amrTransactionHistoryActions.storeTransactionDetais(version, { syndicateContacts }));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(amrPipelineDetailedActions.transactionDetailsRequesting(false));\r\n }\r\n}\r\n\r\nfunction* watchTransactionFieldsUpdated(action: ActionType) {\r\n const { dealReferenceName, transactionReferenceName, classReferenceName } = action.payload;\r\n\r\n try {\r\n const transactions: OriginatingTransactionClassFieldsDiff[] = yield call(\r\n amrPipelineService.getTransactionHistory,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n { classesOnly: true }\r\n );\r\n\r\n const history = transactions.sort(byEventDateTime).map((item, index, self) => {\r\n const difference = originatingTransactionClassFieldsDiffer(\r\n self[index - 1],\r\n item\r\n );\r\n\r\n return {\r\n difference,\r\n eventDateTime: item.eventDateTime,\r\n };\r\n });\r\n\r\n const fieldsLastUpdated = history.reduce((acc: LastUpdatedFields, next) => {\r\n const { guidance, subscription } = acc;\r\n const { difference, eventDateTime } = next;\r\n\r\n if (!difference.classes) {\r\n return acc;\r\n }\r\n\r\n const classWithChangedGuidance = difference.classes.find(({ difference }) => {\r\n const specificClassCondition = classReferenceName\r\n ? difference?.referenceName?.derivedValue === classReferenceName\r\n : true;\r\n\r\n return specificClassCondition && difference?.guidance?.type !== DifferenceType.Unchanged;\r\n });\r\n\r\n const classWithChangedSubscription = difference.classes.find(({ difference }) => {\r\n const specificClassCondition = classReferenceName\r\n ? difference?.referenceName?.derivedValue === classReferenceName\r\n : true;\r\n\r\n return specificClassCondition && difference?.subscription?.type !== DifferenceType.Unchanged;\r\n });\r\n\r\n return {\r\n guidance: classWithChangedGuidance ? eventDateTime : guidance,\r\n subscription: classWithChangedSubscription ? eventDateTime : subscription,\r\n };\r\n }, { });\r\n\r\n yield put(amrTransactionHistoryActions.transactionFieldsUpdatedResponse(\r\n RequestState.success,\r\n fieldsLastUpdated\r\n ));\r\n } catch (e) {\r\n yield put(amrTransactionHistoryActions.transactionFieldsUpdatedResponse(RequestState.failure));\r\n }\r\n}\r\n\r\nexport function* watchTransactionHistory() {\r\n yield takeLatest(getType(amrTransactionHistoryActions.transactionHistoryRequest), watchFetchTransactionHistory);\r\n yield takeLatest(getType(amrTransactionHistoryActions.loadTransactionDetais), watchLoadTransactionDetails);\r\n yield takeLatest(getType(amrTransactionHistoryActions.transactionFieldsUpdatedRequest), watchTransactionFieldsUpdated);\r\n}\r\n","import { takeLatest, call, put } from 'redux-saga/effects';\r\nimport { ActionType, getType } from 'typesafe-actions';\r\nimport { saveAs } from 'file-saver';\r\nimport { bwicService, dashboardService } from '../services';\r\nimport { bwicLogActions } from '../actions/bwic-log.actions';\r\nimport { SecurityBwicStatisticsSummary } from '../types/security/SecurityBwicStatisticsSummary';\r\n\r\nfunction* watchBwicLogInit(action: ActionType) {\r\n try {\r\n const { security } = action.payload;\r\n const statistics: SecurityBwicStatisticsSummary = yield call(bwicService.getSecurityBwicStatistics, security.securityId);\r\n\r\n yield put(bwicLogActions.bwicLogInitSuccess(statistics));\r\n } catch (e) {\r\n yield put(bwicLogActions.bwicLogInitFailure(e));\r\n }\r\n}\r\n\r\nfunction* watchBwicLogExport(action: ActionType) {\r\n try {\r\n const { securityId } = action.payload;\r\n const { blob, name } = yield call(dashboardService.exportBwicStatistic, securityId);\r\n saveAs(blob, name);\r\n yield put(bwicLogActions.bwicLogExportDataSuccess())\r\n } catch (e) {\r\n yield put(bwicLogActions.bwicLogExportDataFailure(e))\r\n }\r\n}\r\n\r\nexport function* watchBwicLog() {\r\n yield takeLatest(getType(bwicLogActions.bwicLogInitRequest), watchBwicLogInit);\r\n yield takeLatest(getType(bwicLogActions.bwicLogExportDataRequest), watchBwicLogExport);\r\n}\r\n","import moment from 'moment';\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport { all, call, put, select, takeLatest } from \"redux-saga/effects\";\r\nimport { errorActions } from \"../actions\";\r\nimport { banksActions } from '../actions/banks.actions';\r\nimport { BwicBank } from '../types/banks/Bank';\r\nimport { BankDetailed } from '../types/banks/BankDetailed';\r\nimport { banksService } from '../services/banks.service';\r\nimport { ManagersTransaction } from '../types/banks/ManagersTransaction';\r\nimport { ManagersTransactionCountFilterValues } from '../types/banks/ManagersTransactionCountFilterValues';\r\nimport { arrayUtils } from '../utils/array.utils';\r\nimport { ManagersTransactionAggregated } from '../types/banks/ManagersTransactionAggregated';\r\nimport { compact, map, mapValues, pick, sumBy, toPairs, trim, values } from 'lodash';\r\nimport { TransactionType } from '../types/amr-pipeline/enums/TransactionType';\r\nimport { defaultFilterValues } from '../constants/banks/managerTransactionsFilter';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { constants, roles, routes } from '../constants';\r\nimport { Company } from \"../types/amr-pipeline/models/Company\";\r\nimport { CompanyEvent } from '../types/banks/CompanyEvent';\r\nimport { BankSave } from '../types/banks/BankSave';\r\nimport { formatUtils, stringUtils } from '../utils';\r\nimport { companiesService } from '../services';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\nimport { BrokerDealerContact } from '../types/amr-pipeline/models/BrokerDealerContact';\r\nimport { BrokerDealerSave } from '../types/banks/BrokerDealerSave';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { user } from '../user';\r\nimport { combineBanks, isBrokerDealersOwnCompany } from '../utils/amr-pipeline.utils';\r\nimport { HeadOfTrading } from '../types/company/HeadOfTrading';\r\nimport { BankClientActivity, BankProfileView, BankSession, BankSessions } from '../types/amr-pipeline/models/BankSession';\r\nimport { history } from \"../history\";\r\nimport { BankAccessType } from '../types/amr-pipeline/enums/BankAccessType';\r\nimport { groupDocsWithAccessType, transformToTreeSelect } from '../utils/analytics.utils';\r\nimport { compareDates } from '../utils/compare.utils';\r\nimport { BankAnalytics } from '../types/banks/BankAnalytics';\r\nimport { BankSyndicateContacts } from '../types/banks/BankSyndicateContacts';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport saveAs from \"file-saver\";\r\nimport { ContactType } from '../types/amr-pipeline/enums/ContactType';\r\nimport { amrCompaniesService } from '../services/amr-companies.service';\r\n\r\nconst UserAccessTypes = [\r\n BankAccessType.ContactsEventsTab,\r\n BankAccessType.PrimaryTab,\r\n BankAccessType.SecondaryTab,\r\n];\r\n\r\nfunction groupSessionsByAccessType(sessions: BankSession[]) {\r\n return sessions\r\n .reduce((acc: BankProfileView[], session: BankSession) => {\r\n const views = mapValues(session.tabsViews, x => x.length);\r\n const documents = groupDocsWithAccessType(session.documents);\r\n\r\n return [\r\n ...acc,\r\n {\r\n ...session,\r\n views,\r\n documents,\r\n } as BankProfileView\r\n ];\r\n }, [])\r\n .sort((a, b) => compareDates(b.accessDateTime, a.accessDateTime));\r\n}\r\n\r\nfunction groupSessionsByDate(sessions: BankSession[]) {\r\n return sessions.reduce((acc: BankClientActivity[], session: BankSession) => {\r\n const grouped = toPairs(session.tabsViews);\r\n const documents = groupDocsWithAccessType(session.documents);\r\n\r\n return [\r\n ...acc,\r\n ...grouped.map(([accessType, entries]) => ({\r\n ...session,\r\n accessType,\r\n numberOfAccess: entries.length,\r\n documents,\r\n } as BankClientActivity)),\r\n ];\r\n }, []);\r\n}\r\n\r\nconst MandatoryContactFields = [\r\n 'firstName',\r\n 'lastName',\r\n 'email',\r\n 'officePhoneNumber',\r\n 'mobilePhoneNumber',\r\n 'distributionListEmail',\r\n];\r\n\r\nconst createEmptyContact = (primaryDesk: boolean): BrokerDealerSave => ({\r\n id: 0,\r\n primaryDesk,\r\n order: 0,\r\n firstName: undefined,\r\n lastName: undefined,\r\n email: '',\r\n officePhoneNumber: '',\r\n mobilePhoneNumber: '',\r\n distributionListEmail: '',\r\n});\r\n\r\nconst createDistributionList = (email: string, primaryDesk: boolean): BrokerDealerContact => ({\r\n id: 0,\r\n primaryDesk,\r\n order: 0,\r\n type: ContactType.DistributionList,\r\n firstName: undefined,\r\n lastName: undefined,\r\n email,\r\n officePhoneNumber: '',\r\n mobilePhoneNumber: '',\r\n});\r\n\r\nconst notEmptyEvent = (event: CompanyEvent) => !stringUtils.isHTMLEmpty(event.description);\r\n\r\nconst isContactEmpty = (contact?: BrokerDealerSave) => {\r\n // Grab only mandatory fields from an object\r\n // Compact them and see the length of resulting array\r\n const withNeededValues = pick(contact, MandatoryContactFields);\r\n return !compact(values(withNeededValues)).length;\r\n};\r\n\r\nconst isHeadOfTradingEmpty = (headOfTrading?: HeadOfTrading) => {\r\n // Get values of all object properties and trim them\r\n // (there was a bug with strings full of whitespaces)\r\n // Compact and see length of resulting array\r\n return !compact(map(values(headOfTrading), trim)).length;\r\n};\r\n\r\n// Checks if all andatory fields of a contacts are empty,\r\n// and if yes - returns a default empty contact, otherwise\r\n// returns passed contact as is\r\nconst contactOrDefault = (contact?: BrokerDealerSave, primaryDesk = false) => {\r\n return isContactEmpty(contact) ? createEmptyContact(primaryDesk) : contact;\r\n};\r\n\r\nconst splitIntoHeadAndDistributionList = (brokerDealer?: BrokerDealerSave) => {\r\n if (!brokerDealer) {\r\n return {}\r\n }\r\n\r\n const { distributionListEmail, ...headContact } = brokerDealer;\r\n\r\n const distributionList = distributionListEmail\r\n ? createDistributionList(distributionListEmail, true)\r\n : undefined;\r\n\r\n return {\r\n headContact: isContactEmpty(headContact)\r\n ? undefined\r\n : headContact,\r\n distributionList,\r\n }\r\n}\r\n\r\nconst convertToBankSyndicateContacts = (\r\n contacts: BrokerDealerContact[],\r\n headOfDeskAndDistributionList?: BrokerDealerSave,\r\n headOfTradingAndDistributionList?: BrokerDealerSave\r\n): BankSyndicateContacts => {\r\n const primary = contacts.filter(x => x.primaryDesk);\r\n const secondary = contacts.filter(x => !x.primaryDesk);\r\n\r\n const {\r\n headContact: headOfDesk,\r\n distributionList: primaryDistributionList\r\n } = splitIntoHeadAndDistributionList(headOfDeskAndDistributionList);\r\n\r\n const {\r\n headContact: headOfTrading,\r\n distributionList: secondaryDistributionList\r\n } = splitIntoHeadAndDistributionList(headOfTradingAndDistributionList);\r\n\r\n return {\r\n primaryContacts: {\r\n items: compact([...primary, headOfDesk, primaryDistributionList]),\r\n numberOfHiddenItems: 0,\r\n },\r\n secondaryContacts: {\r\n items: compact([...secondary, headOfTrading, secondaryDistributionList]),\r\n numberOfHiddenItems: 0,\r\n },\r\n };\r\n};\r\n\r\nfunction aggregateManagerTransactions(\r\n managerTransactions: ManagersTransaction[],\r\n filter: ManagersTransactionCountFilterValues = defaultFilterValues\r\n) {\r\n const filtered = managerTransactions.filter(managerTransaction => {\r\n return filter.year ? managerTransaction.year === filter.year : true\r\n && (filter.currency !== constants.allListItem\r\n ? managerTransaction.currencyCode=== filter.currency\r\n : true)\r\n && (filter.collateralType !== constants.allListItem\r\n ? managerTransaction.collateralType === filter.collateralType\r\n : true\r\n );\r\n });\r\n\r\n const groupedManager = arrayUtils.groupBy(filtered, x => x.companyReferenceName);\r\n\r\n return Array.from(groupedManager.values()).reduce((acc: ManagersTransactionAggregated[], group: ManagersTransaction[]) => {\r\n const [firstEntry] = group;\r\n\r\n const newIssueCount = sumBy(group.filter(x => x.transactionType === TransactionType.newIssue), x => x.count);\r\n const refinancingCount = sumBy(group.filter(x => x.transactionType === TransactionType.refi), x => x.count);\r\n const resetCount = sumBy(group.filter(x => x.transactionType === TransactionType.reset), x => x.count);\r\n\r\n return [\r\n ...acc,\r\n {\r\n collateralManager: firstEntry.companyLegalName,\r\n companyReferenceName: firstEntry.companyReferenceName,\r\n newIssueCount,\r\n refinancingCount,\r\n resetCount,\r\n totalCount: newIssueCount + refinancingCount + resetCount,\r\n } as ManagersTransactionAggregated\r\n ]\r\n }, []);\r\n}\r\n\r\nfunction* getSyndicateContacts(referenceName: string, canViewContactsAndEvents: boolean) {\r\n let syndicateContacts: BankSyndicateContacts;\r\n let brokerDealer: BrokerDealerCompanySlim;\r\n\r\n [\r\n syndicateContacts,\r\n brokerDealer,\r\n ] = yield all([\r\n call(banksService.getSyndicateContacts, referenceName),\r\n call(companiesService.getBrokerDealer, referenceName),\r\n ]);\r\n\r\n // Just in case check that Head Of Trading contact is empty.\r\n // Potentially the object can be defined, but with empty fields\r\n const headOfTrading: BrokerDealerContact | undefined = !isHeadOfTradingEmpty(brokerDealer?.headOfTrading) ? {\r\n id: 0,\r\n title: 'Head of Trading',\r\n firstName: brokerDealer.headOfTrading.firstName,\r\n lastName: brokerDealer.headOfTrading.lastName,\r\n email: brokerDealer.headOfTrading.email,\r\n officePhoneNumber: trim(brokerDealer.headOfTrading.office),\r\n mobilePhoneNumber: trim(brokerDealer.headOfTrading.mobile),\r\n primaryDesk: false,\r\n headOfTrading: true,\r\n order: 0,\r\n } : undefined;\r\n\r\n const secondaryDistributionList: BrokerDealerContact | undefined = brokerDealer?.distributionList ? {\r\n id: 0,\r\n title: 'Distribution List',\r\n email: brokerDealer.distributionList,\r\n officePhoneNumber: '',\r\n mobilePhoneNumber: '',\r\n primaryDesk: false,\r\n headOfTrading: true,\r\n type: ContactType.DistributionList,\r\n order: 0,\r\n } : undefined;\r\n\r\n const bwicContacts = compact([\r\n headOfTrading,\r\n secondaryDistributionList,\r\n ]);\r\n\r\n const mergedContacts: BankSyndicateContacts = {\r\n ...syndicateContacts,\r\n // Merge head of trading and secondary desk distribution list into secondary list\r\n secondaryContacts: {\r\n items: [\r\n ...syndicateContacts.secondaryContacts.items,\r\n ...bwicContacts\r\n ],\r\n // When access is limited, number of hidden items is a summary\r\n // of number of hidden items from AMR and BWIC contacts - 1\r\n // (only two contacts from BWIC, so one should be hidden), but not\r\n // less than 0\r\n numberOfHiddenItems: canViewContactsAndEvents\r\n ? syndicateContacts.secondaryContacts.numberOfHiddenItems\r\n : syndicateContacts.secondaryContacts.numberOfHiddenItems + +(brokerDealer.distributionListExists || false),\r\n }\r\n };\r\n\r\n return mergedContacts;\r\n}\r\n\r\nfunction* watchGetBanks(action: ActionType) {\r\n const { userCompanyReferenceName } = action.payload;\r\n\r\n try {\r\n const [amrData, bwicData]: [amrData: Company[], bwicData: BwicBank[]] =\r\n yield all([\r\n call(amrCompaniesService.getBanksList),\r\n call(banksService.getBwicBanksList),\r\n ]);\r\n\r\n const banks = combineBanks(amrData, bwicData, userCompanyReferenceName);\r\n yield put(banksActions.getBanksResult(banks));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchGetBankDetails(action: ActionType) {\r\n try {\r\n const { referenceName } = action.payload;\r\n\r\n const userCompany: Company = yield select((state: AppState) => state.issuanceMonitor.amrPipelineCommon.userCompany);\r\n\r\n let bank: BankDetailed;\r\n let syndicateContacts: BankSyndicateContacts;\r\n let companyEvents: CompanyEvent[];\r\n\r\n const isNotBrokerDealer = user.hasRoles(...roles.getAllRolesExclude(...roles.bd()));\r\n const ownCompany = isBrokerDealersOwnCompany({ referenceName }, userCompany);\r\n const hasEventsFeature = user.hasFeatures(SubscriptionFeature.DealerProfileBankEvents);\r\n\r\n const canViewContactsAndEvents = ownCompany || (isNotBrokerDealer && hasEventsFeature);\r\n\r\n [\r\n bank,\r\n syndicateContacts,\r\n companyEvents,\r\n ] = yield all([\r\n call(banksService.getBankDetails, referenceName),\r\n call(getSyndicateContacts, referenceName, canViewContactsAndEvents),\r\n canViewContactsAndEvents ? call(banksService.getEvents, referenceName) : [],\r\n ]);\r\n\r\n const managerTransactions = aggregateManagerTransactions(bank.managersTransactions);\r\n\r\n yield put(banksActions.getBankDetailsResult(\r\n referenceName,\r\n bank,\r\n managerTransactions,\r\n syndicateContacts,\r\n companyEvents,\r\n ));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchManagersTransactionCountFilter(action: ActionType) {\r\n try {\r\n const managerTransactions: ManagersTransaction[] = yield select(\r\n (state: AppState) => state.banks.selectedBank?.details?.managersTransactions\r\n );\r\n\r\n const managerTransactionsAggregated = aggregateManagerTransactions(managerTransactions, action.payload);\r\n\r\n yield put(banksActions.managersTransactionCountFilterResult(managerTransactionsAggregated));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchExportTransactionCountRequest(action: ActionType) {\r\n const { legalName, referenceName, params } = action.payload;\r\n\r\n try {\r\n const fileName = `${legalName} Managers Transaction Count - ${moment().format(constants.dateFormat)}.xlsx`;\r\n const file: { blob: Blob } = yield call(banksService.exportBankManagersTrans, referenceName, params);\r\n saveAs(file.blob, fileName);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(banksActions.exportTransactionCountResponse());\r\n }\r\n}\r\n\r\nfunction* watchUpdateBank(action: ActionType) {\r\n try {\r\n const { referenceName, formData } = action.payload;\r\n\r\n const { dataItems, isValid } = yield select((state: AppState) => state.grid);\r\n\r\n const events = formData.events.filter(notEmptyEvent).reverse();\r\n\r\n const contacts = (dataItems as any[]).reduce((acc: BrokerDealerContact[], contact: any, index: number) => {\r\n return contact.draft ? acc : [\r\n ...acc,\r\n {\r\n ...contact,\r\n order: index + 1,\r\n linkedIn: formatUtils.formatUrlWithProtocol(contact.linkedIn),\r\n } as BrokerDealerContact\r\n ]\r\n }, []);\r\n\r\n if (!isValid && contacts.length) {\r\n yield put(banksActions.updateBankResult(RequestState.failure));\r\n return;\r\n }\r\n\r\n const headOfDesk = contactOrDefault(formData.headOfDesk, true);\r\n const headOfTrading = contactOrDefault(formData.headOfTrading);\r\n\r\n const bankToSave: BankSave = {\r\n events,\r\n contacts,\r\n headOfDesk,\r\n headOfTrading,\r\n };\r\n\r\n yield call(banksService.updateBank, referenceName, bankToSave);\r\n\r\n const syndicateContacts = convertToBankSyndicateContacts(contacts, headOfDesk, headOfTrading)\r\n\r\n const companyEvents: CompanyEvent[] = yield call(banksService.getEvents, referenceName);\r\n\r\n yield put(banksActions.updateBankResult(RequestState.success, {\r\n syndicateContacts,\r\n events: companyEvents\r\n }));\r\n\r\n yield call(history.push, routes.manageBanksUrl(referenceName));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchLogUserActivity(action: ActionType) {\r\n const { companyReferenceName, accessType } = action.payload;\r\n try {\r\n yield call(banksService.logUserActivity, companyReferenceName, accessType);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\n\r\nfunction* watchAnalyticsInit(action: ActionType) {\r\n try {\r\n const { companyReferenceName } = action.payload;\r\n\r\n const { items, numberOfHiddenItems }: BankSessions = yield call(banksService.getProfileViewHistory, companyReferenceName);\r\n const analytics: BankAnalytics = yield call(banksService.getAnalytics, companyReferenceName);\r\n\r\n const profileViews = groupSessionsByDate(items);\r\n\r\n const users = transformToTreeSelect(profileViews, UserAccessTypes);\r\n\r\n yield put(banksActions.analyticsInitResponse({ users, analytics, numberOfHiddenItems }));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchClientsActivityRequest(action: ActionType) {\r\n try {\r\n const { companyReferenceName, startDate, endDate } = action.payload;\r\n\r\n const { items, numberOfHiddenItems }: BankSessions = yield call(\r\n banksService.getProfileViewHistory,\r\n companyReferenceName,\r\n startDate ? moment(startDate).startOf('day').toDate() : undefined,\r\n endDate ? moment(endDate).endOf('day').toDate() : undefined,\r\n );\r\n\r\n const bankClientsActivity = groupSessionsByDate(items)\r\n .filter(x => UserAccessTypes.includes(x.accessType));\r\n\r\n yield put(banksActions.clientsActivityResponse(bankClientsActivity, numberOfHiddenItems));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchProfileViewHistoryRequest(action: ActionType) {\r\n try {\r\n const { companyReferenceName, startDate, endDate } = action.payload;\r\n\r\n const alignedStartDate = startDate ? moment(startDate).startOf('day').toDate() : undefined;\r\n const alignedEndDate = endDate ? moment(endDate).endOf('day').toDate() : undefined;\r\n\r\n const { items, numberOfHiddenItems }: BankSessions = yield call(\r\n banksService.getProfileViewHistory,\r\n companyReferenceName,\r\n alignedStartDate,\r\n alignedEndDate\r\n );\r\n\r\n const profileViewHistory = groupSessionsByAccessType(items);\r\n\r\n yield put(banksActions.profileViewHistoryResponse(profileViewHistory, numberOfHiddenItems));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchProfileViewHistoryFiltrByBar(action: ActionType) {\r\n const { companyReferenceName, date } = action.payload;\r\n\r\n yield put(\r\n banksActions.profileViewHistoryRequest(\r\n companyReferenceName,\r\n date,\r\n date\r\n )\r\n );\r\n}\r\n\r\nexport function* watchBanks() {\r\n yield takeLatest(getType(banksActions.getBanks), watchGetBanks);\r\n yield takeLatest(getType(banksActions.getBankDetails), watchGetBankDetails);\r\n yield takeLatest(getType(banksActions.managersTransactionCountFilter), watchManagersTransactionCountFilter);\r\n yield takeLatest(getType(banksActions.updateBank), watchUpdateBank);\r\n yield takeLatest(getType(banksActions.logUserActivity), watchLogUserActivity);\r\n yield takeLatest(getType(banksActions.analyticsInit), watchAnalyticsInit);\r\n yield takeLatest(getType(banksActions.clientsActivityRequest), watchClientsActivityRequest);\r\n yield takeLatest(getType(banksActions.profileViewHistoryRequest), watchProfileViewHistoryRequest);\r\n yield takeLatest(getType(banksActions.profileViewHistoryFilterByBar), watchProfileViewHistoryFiltrByBar);\r\n yield takeLatest(getType(banksActions.exportTransactionCountRequest), watchExportTransactionCountRequest);\r\n}\r\n","import { takeEvery, takeLatest, select, call, put, all } from 'redux-saga/effects';\r\nimport { saveAs } from 'file-saver';\r\nimport { getType } from 'typesafe-actions';\r\nimport {\r\n blotterHasTradesFailure,\r\n blotterHasTradesRequest,\r\n blotterHasTradesSuccess,\r\n blotterSearchFailure,\r\n blotterSearchRequest,\r\n blotterSearchSuccess,\r\n blotterExportRequest,\r\n blotterExportSuccess,\r\n blotterExportFailure,\r\n blotterInit,\r\n blotterFiltersReset,\r\n blotterSetCurrency,\r\n blotterTogglePending,\r\n blotterToggleConfirmed,\r\n blotterToggleRejected,\r\n blotterToggleFilterBuy,\r\n blotterToggleFilterSell,\r\n blotterToggleFilterClient,\r\n blotterToggleFilterDesc,\r\n blotterDateFilterChange,\r\n blotterCustomDateFilterChange,\r\n blotterSetVconRequest,\r\n blotterSetVconSuccess,\r\n blotterSetVconFailure,\r\n blotterSetBookedRequest,\r\n blotterSetBookedSuccess,\r\n blotterSetBookedFailure,\r\n blotterToggleVcon,\r\n blotterToggleBooked,\r\n blotterToggleAllocationStatusSettled,\r\n blotterToggleAllocationStatusUnsettled,\r\n blotterToggleAllocationStatusPendingAllocation,\r\n blotterToggleAllocationStatusPendingSettlement,\r\n blotterSettlementDateFilterChange,\r\n blotterSettlementCustomDateFilterChange,\r\n blotterSetFilterDefaults, blotterToggleAllocationStatusPendingProceeds, blotterSearchRequestNextPage\r\n} from '../actions/blotter.actions';\r\n\r\nimport { tradingService } from '../services';\r\nimport { tradeStatuses } from '../constants/bidding';\r\nimport { bwicDateFilterOptions, pushDataActions, roles, routes } from '../constants';\r\nimport { RequestState } from '../constants/request-state';\r\nimport {\r\n identifiers,\r\n multipleCurrencies,\r\n tradesStatuses,\r\n tradeSide,\r\n tradeType,\r\n dateFrom,\r\n dateTo,\r\n settlementStatuses\r\n} from '../utils/filtering/serializers/serializer.definitions';\r\nimport { queryStringSerializer } from '../utils/filtering/query-string-serializer';\r\nimport { errorActions, searchSecuritiesActions } from '../actions';\r\nimport { getDateRangeOption, getSearchDateRange, isRequestSuccess } from '../utils';\r\nimport { TradeSide } from '../types/trades/TradeSide';\r\nimport { TradeType, tradeTypeTitle } from '../types/trades/TradeType';\r\nimport { user } from '../user';\r\nimport { tradeSettlementStatusTitle, TradeSettlementStatus } from '../types/settlement/TradeSettlementStatus';\r\nimport { companyDetailsActions } from '../actions/company-details.actions';\r\nimport { history } from '../history';\r\n\r\nfunction* watchBlotterInit() {\r\n const qs = history.location.search?.trim();\r\n if (qs) {\r\n applyQueryStringFilter(qs);\r\n } else {\r\n yield put(blotterSetFilterDefaults());\r\n }\r\n}\r\n\r\nfunction* applyQueryStringFilter(queryString) {\r\n yield put(blotterFiltersReset());\r\n\r\n let identifierOptions = [];\r\n let statusOptions = [];\r\n let sellementStatusOptions = [];\r\n let currencyOptions = [];\r\n let tradeSideOptions = [];\r\n let tradeTypeOptions = [];\r\n let from = undefined;\r\n let to = undefined;\r\n let settlementFrom;\r\n let settlementTo;\r\n\r\n const serializers = [\r\n identifiers(parsedIdentifiers => identifierOptions = parsedIdentifiers),\r\n tradesStatuses(parsedStatuses => statusOptions = parsedStatuses),\r\n settlementStatuses(parsedStatuses => sellementStatusOptions = parsedStatuses),\r\n multipleCurrencies(parsedCurrency => currencyOptions = parsedCurrency),\r\n tradeSide(parsed => tradeSideOptions = parsed),\r\n tradeType(parsed => tradeTypeOptions = parsed),\r\n dateFrom(parsedDate => from = parsedDate),\r\n dateTo(parsedDate => to = parsedDate),\r\n dateFrom(parsedDate => settlementFrom = parsedDate, 'settlFrom'),\r\n dateTo(parsedDate => settlementTo = parsedDate, 'settlTo')\r\n ];\r\n\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n\r\n yield all(identifierOptions.map(item => put(searchSecuritiesActions.addSearchItem(item))));\r\n yield all(currencyOptions.map(item => put(blotterSetCurrency(item))));\r\n yield all(statusOptions.map(statusTitle => {\r\n if (statusTitle === tradeStatuses.pending.title) return put(blotterTogglePending());\r\n if (statusTitle === tradeStatuses.affirmed.title) return put(blotterToggleConfirmed());\r\n if (statusTitle === tradeStatuses.rejected.title) return put(blotterToggleRejected());\r\n return null;\r\n }));\r\n yield all(sellementStatusOptions.map(statusTitle => {\r\n if (statusTitle === tradeSettlementStatusTitle[TradeSettlementStatus.Unsettled]) return put(blotterToggleAllocationStatusUnsettled());\r\n if (statusTitle === tradeSettlementStatusTitle[TradeSettlementStatus.PendingSettlement]) return put(blotterToggleAllocationStatusPendingSettlement());\r\n if (statusTitle === tradeSettlementStatusTitle[TradeSettlementStatus.PendingAllocation]) return put(blotterToggleAllocationStatusPendingAllocation());\r\n if (statusTitle === tradeSettlementStatusTitle[TradeSettlementStatus.PendingProceeds]) return put(blotterToggleAllocationStatusPendingProceeds());\r\n if (statusTitle === tradeSettlementStatusTitle[TradeSettlementStatus.Settled]) return put(blotterToggleAllocationStatusSettled());\r\n return null;\r\n }));\r\n yield all(tradeSideOptions.map(side => {\r\n if (side === TradeSide.Buy) return put(blotterToggleFilterBuy());\r\n if (side === TradeSide.Sell) return put(blotterToggleFilterSell());\r\n return null;\r\n }));\r\n yield all(tradeTypeOptions.map(side => {\r\n if (side === tradeTypeTitle[TradeType.Client]) return put(blotterToggleFilterClient());\r\n if (side === tradeTypeTitle[TradeType.Desk]) return put(blotterToggleFilterDesc());\r\n return null;\r\n }));\r\n\r\n // trade date\r\n const { option, customRange } = getDateRangeOption(from, to);\r\n\r\n yield put(blotterDateFilterChange(option.key === bwicDateFilterOptions.todayAndUpcoming.key ? bwicDateFilterOptions.today : option));\r\n\r\n if (option.key === bwicDateFilterOptions.custom.key) {\r\n yield put(blotterCustomDateFilterChange(customRange));\r\n }\r\n\r\n // settl date\r\n const settlementDateOptions = getDateRangeOption(settlementFrom, settlementTo);\r\n\r\n yield put(blotterSettlementDateFilterChange(\r\n settlementDateOptions.option.key === bwicDateFilterOptions.todayAndUpcoming.key\r\n ? bwicDateFilterOptions.today\r\n : settlementDateOptions.option)\r\n );\r\n\r\n if (settlementDateOptions.option.key === bwicDateFilterOptions.custom.key) {\r\n yield put(blotterSettlementCustomDateFilterChange(settlementDateOptions.customRange));\r\n }\r\n}\r\n\r\nfunction* loadOwnTradesExistenceInfo(ownTrades) {\r\n if (ownTrades.requestState !== RequestState.request) {\r\n try {\r\n yield put(blotterHasTradesRequest());\r\n const response = yield call(tradingService.doesExist);\r\n yield put(blotterHasTradesSuccess(JSON.parse(response)));\r\n } catch (e) {\r\n yield put(blotterHasTradesFailure(e));\r\n }\r\n }\r\n}\r\n\r\nfunction* watchBlotterSearchRequest(action) {\r\n try {\r\n const { blotter, searchSecurities } = yield select(state => state);\r\n const { searchTermItems } = searchSecurities;\r\n const { filters, orderByColumn, orderByDirection, page, pageSize } = blotter;\r\n const { ownTrades } = blotter;\r\n const nextPage = action.payload?.page ?? page;\r\n\r\n const searchParams = {\r\n ...getSearchParams(searchTermItems, filters),\r\n orderByColumn,\r\n sortOrder: orderByDirection,\r\n page: nextPage,\r\n pageSize\r\n };\r\n\r\n const [response] = yield all([\r\n call(tradingService.search, searchParams),\r\n call(loadOwnTradesExistenceInfo, ownTrades)\r\n ]);\r\n\r\n if (!action.payload?.page) { // Left company details panel opened for next page request\r\n yield put(companyDetailsActions.hide());\r\n }\r\n\r\n yield put(blotterSearchSuccess(response));\r\n\r\n const pathname = history.location.pathname;\r\n if (pathname === routes.blotter) {\r\n searchParams.currency = filters.currency;\r\n searchParams.side = getSideFilters(filters);\r\n searchParams.type = getTypeFilter(filters).map(type => tradeTypeTitle[type]);\r\n\r\n yield put(redirectWithFilterArguments(searchParams));\r\n }\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e))\r\n yield put(blotterSearchFailure(e.message));\r\n }\r\n}\r\n\r\nfunction redirectWithFilterArguments(searchParams) {\r\n return () => {\r\n const serializers = [\r\n identifiers(),\r\n tradesStatuses(),\r\n settlementStatuses(),\r\n multipleCurrencies(),\r\n tradeSide(),\r\n tradeType(),\r\n dateFrom(),\r\n dateTo(),\r\n dateFrom(undefined, 'settlFrom'),\r\n dateTo(undefined, 'settlTo')\r\n ];\r\n\r\n searchParams.statuses = searchParams.statuses\r\n ? searchParams.statuses.map(key => tradeStatuses.getByKey(key).title)\r\n : [];\r\n searchParams.settlementStatuses = searchParams.settlementStatuses\r\n ? searchParams.settlementStatuses.map(s => tradeSettlementStatusTitle[s])\r\n : [];\r\n\r\n const queryString = queryStringSerializer.serialize(searchParams, serializers);\r\n\r\n if (queryString) {\r\n history.replace(history.location.pathname + '?' + queryString);\r\n } else {\r\n history.replace(history.location.pathname);\r\n }\r\n };\r\n}\r\n\r\nfunction getTradeStatusFilter(filters) {\r\n const statuses = [];\r\n if (filters.confirmed) statuses.push(tradeStatuses.affirmed.key);\r\n if (filters.pending) statuses.push(tradeStatuses.pending.key);\r\n if (filters.rejected) statuses.push(tradeStatuses.rejected.key);\r\n\r\n return statuses;\r\n}\r\n\r\nfunction getSettlementStatusFilter(filters) {\r\n const statuses = [];\r\n\r\n if (filters.allocationStatus.unsettled) statuses.push(TradeSettlementStatus.Unsettled);\r\n if (filters.allocationStatus.pendingSettlement) statuses.push(TradeSettlementStatus.PendingSettlement);\r\n if (filters.allocationStatus.pendingAllocation) statuses.push(TradeSettlementStatus.PendingAllocation);\r\n if (filters.allocationStatus.pendingProceeds) statuses.push(TradeSettlementStatus.PendingProceeds);\r\n if (filters.allocationStatus.settled) statuses.push(TradeSettlementStatus.Settled);\r\n\r\n return statuses;\r\n}\r\n\r\nfunction getSideFilters(filters) {\r\n const side = [];\r\n if (filters.sellSide) side.push(TradeSide.Sell);\r\n if (filters.buySide) side.push(TradeSide.Buy);\r\n return side;\r\n}\r\n\r\nfunction getTypeFilter(filters) {\r\n const type = [];\r\n if (filters.client) type.push(TradeType.Client);\r\n if (filters.desc) type.push(TradeType.Desk);\r\n return type;\r\n}\r\n\r\nfunction getSearchParams(searchTermItems, filters) {\r\n const searchParams = {};\r\n\r\n const tradeStatuses = getTradeStatusFilter(filters);\r\n if (tradeStatuses.length) searchParams.statuses = tradeStatuses;\r\n\r\n const settlementStatuses = getSettlementStatusFilter(filters);\r\n if (settlementStatuses.length) searchParams.settlementStatuses = settlementStatuses;\r\n\r\n const side = getSideFilters(filters);\r\n if (side.length === 1) {\r\n searchParams.side = side[0];\r\n }\r\n\r\n const type = getTypeFilter(filters);\r\n if (type.length === 1) {\r\n searchParams.type = type[0];\r\n }\r\n\r\n if (searchTermItems.length) {\r\n searchParams.isinCusipsAndTickers = searchTermItems;\r\n }\r\n\r\n if (filters.currency.length === 1) {\r\n searchParams.currency = filters.currency[0];\r\n }\r\n\r\n const dateRange = getSearchDateRange(filters);\r\n const settlementDateRange = getSearchDateRange({\r\n selectedDateOption: filters.settlementSelectedDateOption,\r\n customDateRange: filters.settlementCustomDateRange\r\n });\r\n\r\n return {\r\n ...searchParams,\r\n ...dateRange,\r\n settlFrom: settlementDateRange.dateFrom,\r\n settlTo: settlementDateRange.dateTo\r\n };\r\n}\r\n\r\nfunction* watchBlotterPushDataTrade(action) {\r\n const requestStateSecurities = yield select(state => state.blotter.requestStateSecurities);\r\n\r\n if (isRequestSuccess(requestStateSecurities)) {\r\n const filters = yield select(state => state.blotter.filters);\r\n const statusFilters = getTradeStatusFilter(filters);\r\n const isPendingStatusActive = !statusFilters.length || statusFilters.some(s => s === tradeStatuses.pending.key);\r\n const status = action.trade && action.trade.status;\r\n\r\n if (status === tradeStatuses.pending.key && isPendingStatusActive) {\r\n yield put(blotterSearchRequest());\r\n }\r\n }\r\n}\r\n\r\nfunction* watchBlotterPushDataTradedAway() {\r\n const requestStateSecurities = yield select(state => state.blotter.requestStateSecurities);\r\n\r\n if (user.hasRoles(...roles.bd()) && isRequestSuccess(requestStateSecurities)) {\r\n yield put(blotterSearchRequest());\r\n }\r\n}\r\n\r\nfunction* watchExportRequest() {\r\n const searchTermItems = yield select(state => state.searchSecurities.searchTermItems);\r\n const { filters, orderByColumn, orderByDirection } = yield select(state => state.blotter);\r\n\r\n const searchParams = {\r\n ...getSearchParams(searchTermItems, filters),\r\n orderByColumn,\r\n sortOrder: orderByDirection\r\n };\r\n\r\n try {\r\n const file = yield call(tradingService.blotterExport, searchParams);\r\n saveAs(file.blob, file.name);\r\n yield put(blotterExportSuccess());\r\n } catch (e) {\r\n yield put(blotterExportFailure());\r\n }\r\n}\r\n\r\nfunction* watchBlotterSetVconRequest(action) {\r\n const { tradeId, isBuyTrade, value } = action.payload;\r\n try {\r\n yield put(blotterSetVconRequest(tradeId, isBuyTrade));\r\n yield call(tradingService.setVcon, action.payload);\r\n yield put(blotterSetVconSuccess(tradeId, isBuyTrade, value));\r\n } catch (e) {\r\n yield put(blotterSetVconFailure(tradeId, isBuyTrade));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchBlotterSetBookedRequest(action) {\r\n const { tradeId, isBuyTrade, value } = action.payload;\r\n try {\r\n yield put(blotterSetBookedRequest(tradeId, isBuyTrade));\r\n yield call(tradingService.setBooked, action.payload);\r\n yield put(blotterSetBookedSuccess(tradeId, isBuyTrade, value));\r\n } catch (e) {\r\n yield put(blotterSetBookedFailure(tradeId, isBuyTrade));\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nexport function* watchBlotter() {\r\n yield takeLatest(getType(blotterInit), watchBlotterInit);\r\n yield takeLatest(getType(blotterSearchRequest), watchBlotterSearchRequest);\r\n yield takeLatest(getType(blotterSearchRequestNextPage), watchBlotterSearchRequest);\r\n yield takeLatest(getType(blotterExportRequest), watchExportRequest);\r\n yield takeEvery(pushDataActions.PUSH_DATA_TRADE, watchBlotterPushDataTrade);\r\n yield takeEvery(pushDataActions.PUSH_DATA_TRADED_AWAY, watchBlotterPushDataTradedAway);\r\n yield takeEvery(blotterToggleVcon, watchBlotterSetVconRequest);\r\n yield takeEvery(blotterToggleBooked, watchBlotterSetBookedRequest);\r\n}\r\n","import { ActionType, getType } from 'typesafe-actions';\r\nimport { all, call, put, select, takeEvery } from 'redux-saga/effects';\r\nimport { shouldRequest } from \"../utils\";\r\nimport { adminInventoryEditActions } from '../actions/admin-inventory-edit.actions';\r\nimport { errorActions } from '../actions';\r\nimport { inventoryService } from \"../services/inventory.service\";\r\nimport { AppState } from '../types/state/AppState';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { accountActions } from '../constants';\r\nimport { companiesService } from '../services';\r\nimport { CompanySlim } from '../types/company/CompanySlim';\r\n\r\nfunction* watchLoadBrokerDealerInventory(action: ActionType) {\r\n const requestState: RequestState = yield select((state: AppState) => state.entities.adminInventoryEdit.requestState);\r\n\r\n if (shouldRequest(requestState)) {\r\n yield put(adminInventoryEditActions.requestInventory());\r\n let company: CompanySlim | undefined;\r\n try {\r\n const [response, company]: [\r\n response: { inventorySecurities: InventoryPosition[]; lockModifiedDate?: Date; },\r\n company: CompanySlim] =\r\n yield all([\r\n call(inventoryService.getAdminEditInventory, action.payload.companyId),\r\n call(companiesService.getCompany, undefined, action.payload.companyId)\r\n ]);\r\n\r\n yield put(adminInventoryEditActions.requestInventorySuccess(\r\n company,\r\n response.inventorySecurities,\r\n response.lockModifiedDate)\r\n );\r\n } catch (e) {\r\n if (e.status === 404) {\r\n yield put(adminInventoryEditActions.requestInventorySuccess(company, []));\r\n } else {\r\n yield put(adminInventoryEditActions.requestInventoryError());\r\n yield put(errorActions.criticalError(e));\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(adminInventoryEditActions.reset());\r\n}\r\n\r\nexport function* watchAdminInventoryEdit() {\r\n yield takeEvery(getType(adminInventoryEditActions.loadInventory), watchLoadBrokerDealerInventory);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\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 { assetManagerActions } from '../actions/asset-manager.actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { companiesService } from '../services/companies.service';\r\nimport { CompanySlim } from \"../types/company/CompanySlim\";\r\n\r\nfunction* watchRequest() {\r\n try {\r\n const accounts: CompanySlim[] = yield call(companiesService.getActiveAssetManagers);\r\n yield put(assetManagerActions.requestResult(\r\n RequestState.success,\r\n accounts.sort((a, b) => a.name.localeCompare(b.name)))\r\n );\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n yield put(assetManagerActions.requestResult(RequestState.failure));\r\n }\r\n}\r\n\r\nexport function* watchAssetManager() {\r\n yield takeEvery(getType(assetManagerActions.request), watchRequest);\r\n}\r\n","import { ActionType, getType } from 'typesafe-actions';\r\nimport { put, takeLatest, call } from 'redux-saga/effects';\r\nimport { errorActions } from '../actions';\r\nimport { addressActions } from '../actions/address.actions';\r\nimport { addressService } from '../services/address.service';\r\nimport { Country } from '../types/location/Country';\r\nimport { State } from '../types/location/State';\r\nimport { City } from '../types/location/City';\r\n\r\nfunction* watchLoadCountries() {\r\n try {\r\n const countries: Country[] = yield call(addressService.getCountries);\r\n\r\n yield put(addressActions.loadCountriesResponse(countries));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchLoadStates(action: ActionType) {\r\n try {\r\n const { countryId } = action.payload;\r\n\r\n const states: State[] = yield call(addressService.getStates, countryId);\r\n\r\n yield put(addressActions.loadStatesResponse(states));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchLoadCities(action: ActionType) {\r\n try {\r\n const { countryId, stateId } = action.payload;\r\n\r\n const cities: City[] = yield call(addressService.getCities, countryId, stateId);\r\n\r\n yield put(addressActions.loadCitiesResponse(cities));\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nexport function* watchAddress() {\r\n yield takeLatest(getType(addressActions.loadCountries), watchLoadCountries);\r\n yield takeLatest(getType(addressActions.loadStates), watchLoadStates);\r\n yield takeLatest(getType(addressActions.loadCities), watchLoadCities);\r\n}\r\n","import { all, call, put, select, takeEvery } from \"redux-saga/effects\";\r\nimport { round } from \"lodash\";\r\nimport { getType } from \"typesafe-actions\";\r\nimport { brokerDealerBiddingActions, bidPlacementActions, pushBwicActions } from \"../actions\";\r\nimport { apiOperationActions } from \"../actions/api-operation.actions\";\r\nimport { bidAsDealerRequestService, biddingService } from \"../services\";\r\nimport { apiUtils, biddingUtils, jsonUtils, numericUtils } from \"../utils\";\r\nimport { Bwic } from \"../types/bwic/Bwic\";\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { BidsConfirmationState, EditBidState, SubmitBidConfurmationState } from \"../types/state/BrokerDealerBiddingState\";\r\nimport { SubmitBidModel } from '../types/bidding/SubmitBidModel';\r\nimport { SubmitBidAttributesModel } from '../types/bidding/SubmitBidAttributesModel';\r\nimport { ApiOperationType } from \"../types/api-operation/ApiOperationType\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { ApiOperationResult, TApiCallResponse, TOperationResult } from \"../types/api-operation/ApiOperationResult\";\r\nimport { BidConflict } from \"../types/bidding/BidConflict\";\r\nimport { ActionType } from \"../types/ActionType\";\r\nimport { constants } from \"../constants\";\r\nimport { BwicBase } from \"../types/bwic/BwicBase\";\r\nimport { BwicPosition } from \"../types/bwic/BwicPosition\";\r\nimport { bidConfirmationActions } from \"../actions/bid-confirmation.actions\";\r\nimport { SettlementAgentAgreement } from \"../types/bid-as-dealer/SettlementAgentAgreement\";\r\nimport { user } from \"../user\";\r\nimport { isActiveTrade } from \"../types/trades/TradeStatus\";\r\nimport { BwicProcessType } from \"../types/models/Process\";\r\n\r\nfunction* watchSubmitBids(action: ActionType<{ positionId?: number, bids: BidsConfirmationState }>) {\r\n const submitInProgress: boolean =\r\n yield select((s: AppState) => s.brokerDealerBidding.submitBidsConfirmation.submitInProgress);\r\n\r\n if (submitInProgress) return;\r\n\r\n yield put(bidConfirmationActions.submitInProgress(true, action.payload.positionId));\r\n\r\n const bwic: Bwic = yield select((s: AppState) => s.bidding.bwic);\r\n const { submitResult }: SubmitBidConfurmationState = yield select((s: AppState) => s.brokerDealerBidding.submitBidsConfirmation);\r\n const securities: BwicPosition[] = yield select((state: AppState) =>\r\n state.brokerDealerBidding.securities.filter(s =>\r\n !s.trade &&\r\n !s.isTradedAway &&\r\n state.brokerDealerBidding.submitBidsConfirmation.securities?.some(id => id === s.id))\r\n );\r\n\r\n if (!bwic || !securities || !securities.length) return;\r\n\r\n const targetSecurities = securities.filter(s => action.payload.positionId == null || s.id === action.payload.positionId);\r\n\r\n const bids = targetSecurities\r\n .filter(s => {\r\n const { bid, currentBid } = action.payload.bids[s.id];\r\n return (\r\n bid.pass ||\r\n currentBid == null ||\r\n (bid.value && Number(bid.value) !== Number(currentBid.value)) ||\r\n (bwic.isAllToAll && bid.commission && numericUtils.numberOrDefault(bid.commission) !== numericUtils.numberOrDefault(currentBid?.commission))\r\n );\r\n }).map(s => {\r\n const { bid, currentBid } = action.payload.bids[s.id];\r\n\r\n const model: SubmitBidModel = {\r\n positionId: s.id,\r\n rating: s.rating,\r\n bidLock: s.bidLock,\r\n size: +s.size,\r\n value: Boolean(bid.pass) ? undefined : Number(bid.value ?? currentBid?.value),\r\n axed: Boolean(bid.axed ?? currentBid?.axed),\r\n final: Boolean(bid.final ?? currentBid?.final),\r\n pass: Boolean(bid.pass),\r\n acceptBiddingOverThemself: Boolean(submitResult[s.id]?.isBidOverThemself),\r\n stagedBiddingStatus: bwic.process.stagedBiddingStatus\r\n };\r\n\r\n return addConflictBidLock(model) as SubmitBidModel;\r\n });\r\n\r\n const bidAttributes = targetSecurities\r\n .filter(s => {\r\n const { bid, currentBid } = action.payload.bids[s.id];\r\n return (\r\n bid &&\r\n currentBid &&\r\n !bids.some(b => b.positionId === s.id) && (\r\n Boolean(bid.axed) !== Boolean(currentBid.axed) ||\r\n Boolean(bid.final) !== Boolean(currentBid.final)\r\n )\r\n );\r\n }).map(s => {\r\n const { bid, currentBid } = action.payload.bids[s.id];\r\n const model: SubmitBidAttributesModel = {\r\n positionId: s.id,\r\n bidId: currentBid!.id,\r\n axed: Boolean(bid.axed ?? currentBid?.axed),\r\n final: Boolean(bid.final ?? currentBid?.final),\r\n bidLock: s.bidLock,\r\n stagedBiddingStatus: bwic.process.stagedBiddingStatus\r\n };\r\n\r\n return addConflictBidLock(model);\r\n });\r\n\r\n let submitBidsSuccess = false;\r\n let submitBidAttributesSuccess = false;\r\n\r\n [submitBidsSuccess, submitBidAttributesSuccess] = yield all([\r\n bids.length && (\r\n bwic.isAllToAll\r\n ? submitBidRequest(bids)\r\n : resolveApiCall(biddingService.submitBids, ApiOperationType.SubmitBid, bwic.referenceName, bids)\r\n ),\r\n bidAttributes.length && resolveApiCall(biddingService.updateBidAttributes, ApiOperationType.SubmitAxedFinal, bidAttributes)\r\n ]);\r\n\r\n if (bids.length) {\r\n yield put(bidConfirmationActions.submitResults(\r\n apiUtils.normalize(\r\n bids,\r\n b => b.positionId,\r\n () => ({ requestState: submitBidsSuccess ? RequestState.request : RequestState.failure })\r\n )\r\n ));\r\n }\r\n if (bidAttributes.length) {\r\n yield put(bidConfirmationActions.submitResults(\r\n apiUtils.normalize(\r\n bidAttributes,\r\n b => b.positionId,\r\n () => ({ requestState: submitBidAttributesSuccess ? RequestState.request : RequestState.failure })\r\n )\r\n ));\r\n }\r\n\r\n yield put(bidConfirmationActions.submitInProgress(false));\r\n\r\n function addConflictBidLock(model: SubmitBidModel | SubmitBidAttributesModel) {\r\n const conflict = submitResult[model.positionId]?.conflict;\r\n if (conflict) {\r\n model.bidLock = conflict.modifiedDate;\r\n }\r\n\r\n return model;\r\n }\r\n\r\n function* submitBidRequest(bids: SubmitBidModel[]) {\r\n const agreement: SettlementAgentAgreement = yield select((s: AppState) => s.entities.settlementAgentAgreements.items[0]);\r\n if (!agreement) return false;\r\n\r\n const state = action.payload.bids;//[bid.positionId]!.bid;\r\n\r\n const bidRequests = bids.map(b => ({\r\n positionId: b.positionId,\r\n brokerDealerId: user.current()!.companyId,\r\n commission:\r\n state[b.positionId]?.bid.commission ??\r\n state[b.positionId]?.currentBid?.commission ??\r\n agreement.commissions[b.rating],\r\n value: Number(b.value),\r\n axed: b.axed,\r\n final: b.final,\r\n size: b.size,\r\n salesCoverage: [],\r\n bidLock: b.bidLock,\r\n acceptBiddingOverThemself: b.acceptBiddingOverThemself,\r\n stagedBiddingStatus: bwic.process.stagedBiddingStatus\r\n }));\r\n\r\n const result: boolean = yield resolveApiCall(\r\n bidAsDealerRequestService.submit,\r\n ApiOperationType.SubmitBidRequest,\r\n bwic.referenceName,\r\n bidRequests\r\n );\r\n return result;\r\n }\r\n\r\n function* resolveApiCall(\r\n func: (...args: any[]) => Promise,\r\n apiOperationType: ApiOperationType,\r\n ...args: any[]) {\r\n try {\r\n const tokens: TApiCallResponse[] = yield call(func, ...args);\r\n\r\n yield put(apiOperationActions.waitResult(\r\n ...tokens.map(({ token }) => ({\r\n token,\r\n event: apiOperationType,\r\n state: RequestState.request,\r\n autoRemove: true,\r\n errorToastDisabled: true,\r\n createdDate: new Date()\r\n }))\r\n ));\r\n\r\n return true;\r\n }\r\n catch {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nfunction* watchSubmitSuccess(action: TOperationResult) {\r\n const result = action.payload.result;\r\n const shouldHandle: boolean = yield shouldHandleApiOperationResult(result);\r\n\r\n if (shouldHandle && result.positionId) {\r\n yield put(bidConfirmationActions.submitResults({\r\n [result.positionId]: { requestState: RequestState.success }\r\n }));\r\n }\r\n}\r\n\r\nfunction* watchSubmitError(action: TOperationResult) {\r\n const result = action.payload.result;\r\n const shouldHandle: boolean = yield shouldHandleApiOperationResult(result);\r\n\r\n if (shouldHandle && result.positionId) {\r\n yield put(bidConfirmationActions.submitResults({\r\n [result.positionId]: {\r\n requestState: RequestState.failure,\r\n isBidOverThemself: result.statusCode === 300,\r\n isLoggedOut: result.statusCode === 401,\r\n stageTransitionConflict: parseOpenBiddingStageTransitionConflict(result),\r\n conflict: parseConflict(result),\r\n validationError: parseValidationError(result)\r\n }\r\n }));\r\n }\r\n}\r\n\r\nfunction parseConflict(result: ApiOperationResult) {\r\n if (hasStatusResponse(409, result)) {\r\n const conflicts: BidConflict[] | null = jsonUtils.tryParse(result.response);\r\n return conflicts?.find(c => c.positionId === result.positionId);\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction parseOpenBiddingStageTransitionConflict(result: ApiOperationResult) {\r\n return hasStatusResponse(410, result)\r\n ? jsonUtils.tryParse(result.response)\r\n : undefined;\r\n}\r\n\r\nfunction parseValidationError(result: ApiOperationResult) {\r\n if (hasStatusResponse(400, result) && result.response) {\r\n return apiUtils.parseErrorMessage(result.response);\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction hasStatusResponse(status: number, result: ApiOperationResult) {\r\n return status === result.statusCode && result.positionId != null && result.response != null;\r\n}\r\n\r\nfunction* shouldHandleApiOperationResult(result: ApiOperationResult) {\r\n const isOperationApplicable = (\r\n result.event === ApiOperationType.SubmitBid ||\r\n result.event === ApiOperationType.SubmitBidRequest ||\r\n result.event === ApiOperationType.SubmitAxedFinal) &&\r\n result.positionId != null;\r\n\r\n if (isOperationApplicable) {\r\n const securities: number[] | undefined =\r\n yield select((s: AppState) => s.brokerDealerBidding.submitBidsConfirmation.securities);\r\n\r\n return securities && securities.length && securities.some(positionId => positionId === result.positionId);\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction* watchCanSubmitChange(action: { type: string, bwicReferenceName: string, positionId: number }) {\r\n const bwic: BwicBase | undefined = yield select((s: AppState) => s.bidding.bwic);\r\n const position: BwicPosition | undefined = yield select((s: AppState) => s.brokerDealerBidding.securities.find(s => s.id === action.positionId));\r\n\r\n if (bwic?.referenceName === action.bwicReferenceName && position) {\r\n yield put(bidPlacementActions.setBidCanSubmit(position.id));\r\n }\r\n}\r\n\r\nfunction* watchSetBidCanSubmit(action: ActionType<{ positionId: number }>) {\r\n const positionId = action.payload.positionId;\r\n\r\n const position: BwicPosition | undefined =\r\n yield select((s: AppState) => s.brokerDealerBidding.securities.find(s => s.id === positionId));\r\n const editState: EditBidState | undefined =\r\n yield select((s: AppState) => s.brokerDealerBidding.editBid[positionId]);\r\n const isAllToAll: boolean = yield select((s: AppState) => s.bidding.bwic?.isAllToAll);\r\n const agreement: SettlementAgentAgreement = yield select((s: AppState) => s.entities.settlementAgentAgreements.items[0]);\r\n\r\n if (!position) return;\r\n if (!editState || (editState.errors && Object.keys(editState.errors).length)) {\r\n yield put(bidPlacementActions.storeCanSubmitPositionFlag(positionId, false));\r\n return;\r\n }\r\n\r\n const isColorDistribution: boolean = yield select((s: AppState) => s.bidding.bwic?.isColorDistribution) ?? false;\r\n const currentBid = biddingUtils.getCurrentBid(position.bids);\r\n const currentBidValue = Number(currentBid?.value ?? 0);\r\n\r\n const bidExists = numericUtils.numberOrDefault(editState.value, currentBid?.value ?? 0) > 0 || editState.pass;\r\n const bidChanged =\r\n editState.value &&\r\n numericUtils.numberOrDefault(editState.value) > 0 &&\r\n +editState.value !== currentBidValue &&\r\n round((+editState.value - currentBidValue), 4) >= constants.bidMinStep;\r\n const axedChanged = (editState.axed != null && Boolean(currentBid?.axed) !== Boolean(editState.axed));\r\n const finalChanged = (editState.final != null && Boolean(currentBid?.final) !== Boolean(editState.final));\r\n const passChanged = (editState.pass != null && Boolean(currentBid?.pass) !== Boolean(editState.pass));\r\n\r\n let isCommissionValid = true;\r\n if (isAllToAll) {\r\n if (editState.commission && !numericUtils.isNumber(editState.commission)) {\r\n isCommissionValid = false;\r\n } else {\r\n const currentCommission = currentBid?.commission ?? agreement?.commissions[position.rating];\r\n const commission = editState.commission ?? currentCommission;\r\n const minValue = currentCommission ?? constants.commissionRange.min;\r\n const maxValue = constants.commissionRange.max;\r\n\r\n isCommissionValid = Number(commission) >= minValue && Number(commission) <= maxValue;\r\n }\r\n }\r\n\r\n const canSubmit = bidExists &&\r\n (bidChanged || axedChanged || finalChanged || passChanged) &&\r\n isCommissionValid &&\r\n !position.isTradedAway &&\r\n !isActiveTrade(position.trade) &&\r\n !isColorDistribution;\r\n\r\n yield put(bidPlacementActions.storeCanSubmitPositionFlag(positionId, canSubmit));\r\n}\r\n\r\nfunction* watchTrated(action: ReturnType) {\r\n yield put(bidPlacementActions.revert(action.positionId))\r\n}\r\n\r\nfunction* watchStage2Started(action: ActionType) {\r\n const bwic: BwicBase | undefined = yield select((s: AppState) => s.bidding.bwic);\r\n\r\n if (bwic?.process.type === BwicProcessType.BestFootForward) {\r\n yield put(bidPlacementActions.revertAll());\r\n }\r\n}\r\n\r\nexport function* watchBrokerDealerBidding() {\r\n yield takeEvery(getType(brokerDealerBiddingActions.submitBids), watchSubmitBids);\r\n yield takeEvery(getType(apiOperationActions.success), watchSubmitSuccess);\r\n yield takeEvery(getType(apiOperationActions.error), watchSubmitError);\r\n yield takeEvery(getType(pushBwicActions.newBid), watchCanSubmitChange);\r\n yield takeEvery(getType(pushBwicActions.axedFinalChange), watchCanSubmitChange);\r\n yield takeEvery(getType(bidPlacementActions.setBidCanSubmit), watchSetBidCanSubmit);\r\n yield takeEvery(getType(pushBwicActions.tradeAction), watchTrated)\r\n yield takeEvery(getType(pushBwicActions.stagedBiddingStartStage2), watchStage2Started);\r\n}\r\n","import moment from \"moment\";\r\nimport { all, delay, put, select, takeEvery } from \"redux-saga/effects\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport { apiOperationActions, errorActions } from \"../actions\";\r\nimport { logger } from \"../logging/logger\";\r\nimport { ApiOperation } from \"../types/api-operation/ApiOperation\";\r\nimport { ApiOperationResult, TOperationResult } from \"../types/api-operation/ApiOperationResult\";\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { apiUtils } from \"../utils/api.utils\";\r\nimport { isRequesting } from \"../utils/request-state.utils\";\r\nimport { pushNotificationService } from \"../services/push-notification.service\";\r\nimport { user } from \"../user/user\";\r\nimport { jsonUtils } from \"../utils/json.utils\";\r\n\r\nfunction* watchApiOperationResult(action: TOperationResult) {\r\n const { result } = action.payload;\r\n const pending: ApiOperation | undefined = yield select((state: AppState) =>\r\n state.apiOperation.requests.find(r => r.token === result.token && r.event === result.event));\r\n\r\n logger.trace(`API response token: ${result.token}, status: ${result.statusCode}`);\r\n\r\n if (pending == null) {\r\n logger.trace(`Api operation result token: ${result.token} event: ${result.event} has no corresponding request`);\r\n return;\r\n }\r\n\r\n if (apiUtils.isRequestSuccess(result.statusCode)) {\r\n yield put(apiOperationActions.success(result));\r\n } else {\r\n if ([403, 404].some(e => e === result.statusCode)) {\r\n yield put(errorActions.criticalError({ status: result.statusCode }));\r\n } else {\r\n if (pending.errorToastDisabled || [409, 410].some(e => e === result.statusCode)) {\r\n yield put(apiOperationActions.error(result));\r\n } else {\r\n yield put(apiOperationActions.error(result));\r\n yield put(errorActions.unexpectedError({\r\n status: result.statusCode,\r\n message: result.response\r\n }));\r\n }\r\n }\r\n }\r\n\r\n if (pending.autoRemove) {\r\n yield put(apiOperationActions.remove(pending.token));\r\n }\r\n}\r\n\r\nfunction* watchEarlyOperationResult(action: ActionType) {\r\n const responses: ApiOperationResult[] = yield select((s: AppState) => s.apiOperation.responses);\r\n\r\n logger.trace(\"Waiting for API operation response\", action.payload.requests.map(r => r.token))\r\n\r\n yield all(\r\n responses\r\n .filter(r => action.payload.requests.some(req => req.token === r.token))\r\n .map(r => put(apiOperationActions.earlyResult(r)))\r\n );\r\n}\r\n\r\nfunction* watchStuckOperations() {\r\n const timeout = 15; // seconds\r\n\r\n logger.trace(`Push fallback: Start looking for stuck async operations every ${timeout} seconds`);\r\n\r\n while (true) {\r\n if (pushNotificationService.isConnected()) {\r\n if (!user.isAuthenticated()) {\r\n logger.trace('Push fallback: Stop looking for stuck async operations')\r\n break;\r\n }\r\n\r\n const stuck: ApiOperation[] = yield select((s: AppState) =>\r\n s.apiOperation.requests.filter(r =>\r\n isRequesting(r.state) &&\r\n moment().diff(r.createdDate, 'seconds') >= timeout)\r\n );\r\n\r\n if (stuck.length) {\r\n logger.trace(`Push fallback: Found ${stuck.length} stuck async operation(s)`, stuck);\r\n yield resolveStuckOprtations(stuck);\r\n }\r\n }\r\n\r\n yield delay(15 * 1000);\r\n }\r\n}\r\n\r\nfunction* resolveStuckOprtations(operations: ApiOperation[]) {\r\n try {\r\n const pushDataCache: string[] = yield pushNotificationService.send(\"GetPushDataMessages\");\r\n if (!user.isAuthenticated()) return;\r\n\r\n if (!pushDataCache?.length) {\r\n logger.trace('Push data cache is empty');\r\n return;\r\n }\r\n\r\n const operationTokenByResult = new Map();\r\n operations.forEach(o => operationTokenByResult.set(o.token, undefined));\r\n\r\n pushDataCache\r\n .reverse()\r\n .forEach(x => {\r\n if ([...operationTokenByResult.values()].some(x => !x)) { // Stop if all stuck operation results are found\r\n const jsonData = jsonUtils.tryParse(x);\r\n if (\r\n jsonData != null &&\r\n jsonData.token &&\r\n jsonData.statusCode &&\r\n operationTokenByResult.has(jsonData?.token)) {\r\n const apiOperationResult = jsonData as ApiOperationResult;\r\n logger.trace('Push fallback: Found stuck async operation result', apiOperationResult.token);\r\n operationTokenByResult.set(apiOperationResult.token, apiOperationResult);\r\n }\r\n }\r\n });\r\n\r\n const apiOperationTokensWithoutResponse =\r\n [...operationTokenByResult.entries()]\r\n .filter(([, response]) => !response)\r\n .map(([token]) => token);\r\n\r\n if (apiOperationTokensWithoutResponse.length) {\r\n logger.trace('Push fallback: Cannot find async operation response in push data cache', apiOperationTokensWithoutResponse);\r\n }\r\n\r\n const stuckApiResponses = [...operationTokenByResult.values()].filter(x => x);\r\n if (stuckApiResponses.length) {\r\n yield all(\r\n stuckApiResponses.map(r => put(apiOperationActions.result(r!)))\r\n )\r\n }\r\n } catch (e) {\r\n console.log('Push fallback: Failed to handle cached push data', e);\r\n }\r\n}\r\n\r\nexport function* watchApiOperation() {\r\n yield takeEvery([getType(apiOperationActions.result), getType(apiOperationActions.earlyResult)], watchApiOperationResult);\r\n yield takeEvery(getType(apiOperationActions.waitResult), watchEarlyOperationResult);\r\n yield takeEvery(getType(apiOperationActions.trackStuckOperations), watchStuckOperations);\r\n}","import { all, call, put, select, takeEvery } from \"redux-saga/effects\";\r\nimport { BwicSearchResult } from \"../types/bwic-monitor/BwicSearchResult\";\r\nimport { bwicService } from \"../services\";\r\nimport { allBWICSActions, pushBwicActions } from \"../actions\";\r\nimport { ActionType } from \"typesafe-actions\";\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { Bid } from \"../types/bidding/Bid\";\r\n\r\ninterface BidsToUpdate {\r\n bwicReferenceName: string,\r\n positionId: number;\r\n bids: Bid[]\r\n}\r\n\r\nfunction* watchBwicStatusChange(action: ActionType) {\r\n const originalBwic: BwicSearchResult = yield select((s: AppState) => s.allBWICS.bwics?.find(b => b.referenceName === action.bwicReferenceName))\r\n if (originalBwic && (originalBwic.isMy || originalBwic.isParticipant)) {\r\n const freshBwic: BwicSearchResult = yield call(bwicService.getByReferenceName, action.bwicReferenceName);\r\n const bidsToUpdate: BidsToUpdate[] = freshBwic.securities\r\n .filter(s => s.bids?.length)\r\n .map(s => ({ bwicReferenceName: action.bwicReferenceName, positionId: s.id, bids: s.bids }))\r\n\r\n yield all(bidsToUpdate.map(b => put(allBWICSActions.addPositionBids(b.bwicReferenceName, b.positionId, b.bids))))\r\n }\r\n}\r\n\r\nexport function* watchAllBwics() {\r\n yield takeEvery(pushBwicActions.bwicStatusChanged, watchBwicStatusChange);\r\n}\r\n","import { getType } from 'typesafe-actions';\r\nimport { saveAs } from 'file-saver';\r\nimport { AnyAction } from 'redux';\r\nimport { cloneDeep, isNil, noop } from 'lodash';\r\nimport { call, all, put, select, takeEvery, takeLatest, take } from 'redux-saga/effects';\r\nimport { bdInventoryActions } from '../actions/bd-inventory.actions';\r\nimport { errorActions } from '../actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { PageConfigType } from '../types/page-config/PageConfigType';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { inventoryService } from '../services/inventory.service';\r\nimport { accountActions } from '../constants';\r\nimport { UserConfigFilter } from '../types/user-config/UserConfigFilter';\r\nimport { arrayUtils, isRequestNone, shouldRequest } from '../utils';\r\nimport { InventoryPositionStatus } from '../types/inventory/InventoryPositionStatus';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { InventoryListFilterState } from '../types/state/BdInventoryState';\r\nimport {\r\n InventorySecurityOrderByColumn,\r\n InventorySecuritySortOrder\r\n} from '../types/inventory/InventorySecurityOrderByColumn';\r\nimport { accountService } from '../services';\r\nimport { user } from '../user';\r\nimport { selectedDateOptions } from '../utils/amr-pipeline-filter.utils';\r\nimport {\r\n ratings, inventoryStatuses, identifiers, dateFrom, dateTo, multipleCurrencies, collateralTypes, collateralManagers,\r\n esg, euCompliance, staticDeals, reinvestmentEndFrom, reinvestmentEndTo, nonCallEndFrom, nonCallEndTo, currentInventory,\r\n mixedDateRange, trustees, amr, outOfNC, outOfRI\r\n} from '../utils/filtering/serializers/serializer.definitions';\r\nimport { QueryStringArgumentSerializer } from '../utils/filtering/serializers/QueryStringArgumentSerializer';\r\nimport { Rating } from '../types/enums/Rating';\r\nimport { queryStringSerializer } from '../utils/filtering/query-string-serializer';\r\nimport { searchSecuritiesActions } from '../actions';\r\nimport { getInventoryPositionStatusByTitle } from '../components/inventory/inventory-position-status-title';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { bdInventoryFilters } from '../components/inventory/bd/filter/bdInventoryFilters';\r\nimport { createFilterActions } from '../actions/filter.actions';\r\nimport { BwicFilterType, TFilter } from '../types/filters/FilterState';\r\nimport { CollateralType } from '../types/amr-pipeline/enums/CollateralType';\r\nimport { dateRangeFilterOptions } from '../constants/date-range.filter';\r\nimport { convertToApiCriteria, getDateOptionByRange, getYearsRange } from '../utils/filtering/filter.utils';\r\nimport { Company } from '../types/amr-pipeline/models/Company';\r\nimport { DeserializeCommandHandler } from '../utils/filtering/serializers/DeserializeCommand';\r\nimport { SubscriptionFeature } from '../types/billing/SubscriptionFeature';\r\nimport { history } from '../history';\r\n\r\nconst filterActions = createFilterActions(BwicFilterType.BDInventory);\r\n\r\nfunction* watchInit() {\r\n yield put(bdInventoryActions.requestInventoryExistFlag());\r\n yield put(bdInventoryActions.loadBdInventory());\r\n\r\n yield take(getType(bdInventoryActions.requestResult));\r\n\r\n const queryString: string | undefined = history.location.search?.trim();\r\n const managers: Company[] = yield select((state: AppState) => state.entities.collateralManagers.items);\r\n\r\n const filter: TFilter = yield select((s: AppState) => s.filters.bdInventory.filter);\r\n // Call init after all dynamic filters (managers, broker-dealers) have already been loaded.\r\n\r\n const initialFilter = cloneDeep(filter);\r\n const inventories: InventoryPosition[] = yield select((s: AppState) => s.entities.inventory.items)\r\n const allTrusteeNames = inventories.map(s => ({ legalName: s.trustee?.legalName, referenceName: s.trustee?.referenceName }));\r\n const trusteeFilterItems = arrayUtils\r\n .distinct(allTrusteeNames, d => d.referenceName)\r\n .filter(name => !!name.legalName)\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 initialFilter.trustees = { ...initialFilter.trustees, filter: trusteeFilterItems };\r\n yield put(filterActions.init({ ...initialFilter, date: bdInventoryFilters.defaultFilter.date }));\r\n\r\n const filtersConfig: UserConfigFilter[] = yield select((s: AppState) => s.entities.pageConfig.configs?.[PageConfigType.Inventory]?.filters);\r\n const canUseAdvancedFilters = user.hasFeatures(SubscriptionFeature.InventoryAvancedFilters);\r\n const defaultConfigFilter = canUseAdvancedFilters ? (filtersConfig || []).find(filter => filter.default): undefined;\r\n\r\n if (queryString) {\r\n const [ncEndSerializers, getNcEndDeserializeResult] = mixedDateRange('nonCallEndFrom', 'nonCallEndTo');\r\n const [riEndSerializers, getRiEndDeserializeResult] = mixedDateRange('reinvestmentEndFrom', 'reinvestmentEndTo');\r\n\r\n let from: Date | undefined | null = undefined;\r\n let to: Date | undefined | null = undefined;\r\n\r\n let statusOptions: (InventoryPositionStatus | undefined)[] = [];\r\n let ratingsOptions: Rating[] = [];\r\n let identifierList: string[] = [];\r\n let currencyOptions: Currency[] = [];\r\n let collateralTypeOptions: CollateralType[] = [];\r\n let collateralManagersReferenceNames: string[] = [];\r\n let isEsg: boolean | undefined = undefined;\r\n let isEuCompilance: boolean | undefined = undefined;\r\n let isStaticDeals: 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 trusteesValues: 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 dateFrom(parsedDate => from = parsedDate),\r\n dateTo(parsedDate => to = parsedDate),\r\n inventoryStatuses(parsedStatuses =>\r\n statusOptions = parsedStatuses.map(s => getInventoryPositionStatusByTitle(s))\r\n ),\r\n identifiers(list => identifierList = list),\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\r\n collateralTypes(parsedCollateralTypes => collateralTypeOptions = parsedCollateralTypes as CollateralType[]),\r\n collateralManagers(values => collateralManagersReferenceNames = values, managers.map(m => m.referenceName)),\r\n esg(value => isEsg = value),\r\n euCompliance(parsedEuCompilance => isEuCompilance = parsedEuCompilance),\r\n staticDeals(parsedStaticDeals => isStaticDeals = parsedStaticDeals),\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 => trusteesValues = values),\r\n amr(value => amrValue = value),\r\n ];\r\n\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n\r\n const dateOption = getDateOptionByRange(dateRangeFilterOptions.CurrentInventory, from, to);\r\n // Set nonCallEnd and reinvestmentEnd values\r\n const ncEndDeserializeResult = getNcEndDeserializeResult();\r\n const riEndDeserializeResult = getRiEndDeserializeResult();\r\n\r\n const datesCommand = {\r\n canExecute: () =>\r\n canUseAdvancedFilters ||\r\n dateOption.key === dateRangeFilterOptions.CurrentInventory.key,\r\n execute: function* () {\r\n if (dateOption.key !== dateRangeFilterOptions.All.key) {\r\n yield put(filterActions.filterDateSelectOption(dateOption, 'date'));\r\n }\r\n\r\n if (from || to) {\r\n yield put(filterActions.filterDateSelectCustomRange({ from, to }, 'date'));\r\n }\r\n }\r\n };\r\n\r\n const ratingsCommand = {\r\n execute: function* () {\r\n yield all(ratingsOptions.map((r: Rating) => {\r\n const ratingOption = bdInventoryFilters.defaultFilter.ratings.filter.filter(rating => String(rating.value) === r)[0];\r\n return put(filterActions.filterSelectChange(ratingOption.value, 'ratings'))\r\n }));\r\n }\r\n };\r\n\r\n const identifiersCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!identifierList.length,\r\n execute: function* () {\r\n yield all(identifierList.map(i => put(searchSecuritiesActions.addSearchItem(i))));\r\n }\r\n }\r\n\r\n const statusesCommand = {\r\n execute: function* () {\r\n yield all(statusOptions.map((s: InventoryPositionStatus | undefined) => {\r\n const statusOption = bdInventoryFilters.defaultFilter.statuses.filter.filter(status => Number(status.value) === s)[0];\r\n return put(filterActions.filterSelectChange(statusOption.value, 'statuses'));\r\n }));\r\n }\r\n }\r\n\r\n const currenciesCommand = {\r\n shouldExecute: () => !!currencyOptions.length,\r\n execute: function* () {\r\n yield all(currencyOptions.map(\r\n c =>\r\n put(filterActions.filterSelectChange(c.toString(), 'currency'))\r\n ));\r\n }\r\n }\r\n\r\n const collateralTypesCommand = {\r\n shouldExecute: () => !!collateralTypeOptions.length,\r\n execute: function* () {\r\n yield all(collateralTypeOptions.map((collateralTypeOption: CollateralType) => put(filterActions.filterSelectChange(collateralTypeOption, 'collateralType'))));\r\n }\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\r\n const euCompilanceCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isEuCompilance),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('euCompliance'));\r\n yield put(filterActions.filterRadioChange(isEuCompilance!, 'euCompliance'));\r\n }\r\n }\r\n const staticDealsCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !isNil(isStaticDeals),\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('staticDeal'));\r\n yield put(filterActions.filterRadioChange(isStaticDeals!, '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\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\r\n const collateralManagersReferenceNamesCommand = {\r\n shouldExecute: () => !!collateralManagersReferenceNames.length,\r\n execute: function* () {\r\n yield all(collateralManagersReferenceNames.map((cm: string) => {\r\n return put(filterActions.filterSelectChange(cm, 'managers'));\r\n }));\r\n }\r\n }\r\n\r\n const trusteesValuesCommand = {\r\n canExecute: () => canUseAdvancedFilters,\r\n shouldExecute: () => !!trusteesValues.length,\r\n execute: function* () {\r\n yield put(filterActions.filterVisibilityChange('trustees'));\r\n yield all(trusteesValues.map(name => put(filterActions.filterSelectChange(name, 'trustees'))));\r\n }\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\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\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\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(datesCommand)\r\n .addCommand(identifiersCommand)\r\n .addCommand(statusesCommand)\r\n .addCommand(ratingsCommand)\r\n .addCommand(currenciesCommand)\r\n .addCommand(collateralTypesCommand)\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(collateralManagersReferenceNamesCommand)\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(bdInventoryActions.advancedFilterBlocked(true));\r\n return;\r\n }\r\n\r\n } else if (defaultConfigFilter) {\r\n yield put(filterActions.selectFilterFromConfig(defaultConfigFilter))\r\n if(!canUseAdvancedFilters) {\r\n yield put(filterActions.filterDateSelectOption(dateRangeFilterOptions.CurrentInventory, 'date'));\r\n }\r\n } else {\r\n yield put(filterActions.filterDateSelectOption(dateRangeFilterOptions.CurrentInventory, 'date'));\r\n }\r\n yield put(bdInventoryActions.applyFilter());\r\n}\r\n\r\nfunction* watchRedirectWithFilterArguments() {\r\n const { filter } = yield select((state: AppState) => state.filters.bdInventory);\r\n const { searchTermItems } = yield select((state: AppState) => state.searchSecurities);\r\n const criteria = getFilterCriteria(filter, searchTermItems);\r\n const serializers: QueryStringArgumentSerializer[] = [\r\n identifiers(),\r\n inventoryStatuses(),\r\n ratings(),\r\n dateFrom(),\r\n dateTo(),\r\n multipleCurrencies(),\r\n collateralTypes(),\r\n collateralManagers(),\r\n esg(),\r\n euCompliance(),\r\n staticDeals(),\r\n nonCallEndFrom(),\r\n nonCallEndTo(),\r\n reinvestmentEndFrom(),\r\n reinvestmentEndTo(),\r\n currentInventory(),\r\n dateFrom(noop, 'maturityFrom'),\r\n dateTo(noop, 'maturityTo'),\r\n dateFrom(noop, 'vintageFrom'),\r\n dateTo(noop, 'vintageTo'),\r\n dateFrom(noop, 'closingFrom'),\r\n dateTo(noop, 'closingTo'),\r\n trustees(),\r\n amr(),\r\n outOfNC(),\r\n outOfRI()\r\n ];\r\n\r\n const queryString = queryStringSerializer.serialize(criteria, serializers);\r\n\r\n if (queryString) {\r\n yield call(history.replace, history.location.pathname + '?' + queryString);\r\n }\r\n yield put(filterActions.applyFilter());\r\n}\r\n\r\nfunction getFilterCriteria(filter: InventoryListFilterState, isinCusipsAndTickers: string[]) {\r\n const nonCallEndYears = getYearsRange(filter.nonCallEnd);\r\n const reinvestmentEndYears = getYearsRange(filter.reinvestmentEnd);\r\n\r\n const nonCallEndDateRange = selectedDateOptions(filter.nonCallEnd);\r\n const reinvestmentEndDateRange = selectedDateOptions(filter.reinvestmentEnd);\r\n\r\n const defaultDateRange = { dateFrom: undefined, dateTo: undefined };\r\n\r\n const maturityRange = filter.maturity.filter.selectedOption\r\n ? convertToApiCriteria(filter.maturity.filter.selectedOption, filter.maturity.filter.options)\r\n : defaultDateRange;\r\n const vintageRange = filter.vintage.filter.selectedOption\r\n ? convertToApiCriteria(filter.vintage.filter.selectedOption, filter.vintage.filter.options)\r\n : defaultDateRange;\r\n const closingRange = filter.closing.filter.selectedOption\r\n ? convertToApiCriteria(filter.closing.filter.selectedOption, filter.closing.filter.options)\r\n : defaultDateRange;\r\n\r\n return {\r\n isinCusipsAndTickers,\r\n statuses: filter.statuses.filter.filter(s => s.selected).map(s => s.text),\r\n currency: filter.currency.filter.filter(s => s.selected).map(s => s.text),\r\n ratings: filter.ratings.filter.filter(r => r.selected).map(r => r.value),\r\n collateralTypes: filter.collateralType.filter.filter(r => r.selected).map(r => r.value),\r\n collateralManagers: filter.managers.filter.filter(c => c.selected).map(c => c.value),\r\n nonCallEndFrom: nonCallEndYears.from ?? nonCallEndDateRange.from,\r\n nonCallEndTo: nonCallEndYears.to ?? nonCallEndDateRange.to,\r\n reinvestmentEndFrom: reinvestmentEndYears.from ?? reinvestmentEndDateRange.from,\r\n reinvestmentEndTo: reinvestmentEndYears.to ?? reinvestmentEndDateRange.to,\r\n esg: filter.esg.filter.selectedOption,\r\n euCompliance: filter.euCompliance.filter.selectedOption,\r\n staticDeals: filter.staticDeal.filter.selectedOption,\r\n outOfNC: filter.outOfNC.filter.selectedOption,\r\n outOfRI: filter.outOfRI.filter.selectedOption,\r\n ...convertToApiCriteria(filter.date.filter.selectedOption ? filter.date.filter.selectedOption : dateRangeFilterOptions.CurrentInventory, filter.date.filter.options),\r\n maturityFrom: maturityRange.dateFrom,\r\n maturityTo: maturityRange.dateTo,\r\n vintageFrom: vintageRange.dateFrom,\r\n vintageTo: vintageRange.dateTo,\r\n closingFrom: closingRange.dateFrom,\r\n closingTo: closingRange.dateTo,\r\n trustees: filter.trustees?.filter.filter(f => f.selected).map(f => f.value),\r\n amr: filter.amr?.filter.selectedOption\r\n };\r\n}\r\n\r\nfunction* watchRequestInventoryExist() {\r\n try {\r\n const exist: boolean = yield call(inventoryService.getInventoryExistFlag);\r\n yield put(bdInventoryActions.inventoryExistFlag(exist));\r\n } catch (e) {\r\n yield put(bdInventoryActions.inventoryExistFlag(true));\r\n }\r\n}\r\n\r\nfunction* watchLoadBdInventory() {\r\n const requestState: RequestState = yield select((state: AppState) => state.entities.inventory.requestState);\r\n\r\n if (shouldRequest(requestState)) {\r\n yield put(bdInventoryActions.request());\r\n try {\r\n const response: { inventorySecurities: InventoryPosition[]; lockModifiedDate: Date; } = yield call(inventoryService.getBdInventory);\r\n yield put(bdInventoryActions.requestResult(RequestState.success, response));\r\n } catch (e) {\r\n yield put(errorActions.criticalError(e));\r\n }\r\n }\r\n}\r\n\r\nfunction* watchExportInventory(action: AnyAction) {\r\n const { sortField, sortDirection } = action.payload;\r\n const filter: InventoryListFilterState = yield select((state: AppState) => state.filters.bdInventory.lastAppliedFilter);\r\n const searchSecurities: string[] = yield select((state: AppState) => state.searchSecurities.searchTermItems);\r\n const dateRange = filter.date.filter.selectedOption\r\n ? convertToApiCriteria(filter.date.filter.selectedOption, filter.date.filter.options)\r\n : { dateFrom: undefined, dateTo: undefined };\r\n const maturityDateRange = filter.maturity.filter.selectedOption\r\n ? convertToApiCriteria(filter.maturity.filter.selectedOption, filter.maturity.filter.options)\r\n : { dateFrom: undefined, dateTo: undefined };\r\n const vintageDateRange = filter.vintage.filter.selectedOption\r\n ? convertToApiCriteria(filter.vintage.filter.selectedOption, filter.vintage.filter.options)\r\n : { dateFrom: undefined, dateTo: undefined };\r\n const closingDateRange = filter.closing.filter.selectedOption\r\n ? convertToApiCriteria(filter.closing.filter.selectedOption, filter.closing.filter.options)\r\n : { dateFrom: undefined, dateTo: undefined };\r\n const ratings = filter.ratings.filter.filter(r => r.selected).map(r => String(r.value));\r\n const statuses = filter.statuses.filter.filter(f => f.selected).map(f => Number(f.value));\r\n const managers = filter.managers.filter.filter(m => m.selected).map(m => String(m.value));\r\n const collateralTypes = filter.collateralType.filter.filter(r => r.selected).map(r => r.value);\r\n const collateralManagers = filter.managers.filter.filter(c => c.selected).map(c => c.value);\r\n const selectedCurrencies = filter.currency.filter.filter(c => c.selected).map(c => c.value);\r\n const currency = selectedCurrencies.length && selectedCurrencies.length === 1 ? selectedCurrencies[0] : undefined;\r\n const esg = filter.esg.filter.selectedOption;\r\n const euCompliance = filter.euCompliance.filter.selectedOption;\r\n const staticDeals = filter.staticDeal.filter.selectedOption;\r\n const trustees = filter.trustees.filter.filter(c => c.selected).map(c => c.value);\r\n const amr = filter.amr.filter.selectedOption;\r\n const outOfNC = filter.outOfNC.filter.selectedOption;\r\n const outOfRI = filter.outOfRI.filter.selectedOption;\r\n\r\n const nonCallEndYears = getYearsRange(filter.nonCallEnd);\r\n const reinvestmentEndYears = getYearsRange(filter.reinvestmentEnd);\r\n const nonCallEndDateRange = selectedDateOptions(filter.nonCallEnd);\r\n const reinvestmentEndDateRange = selectedDateOptions(filter.reinvestmentEnd);\r\n\r\n const normalizedDateOptions = {\r\n dateFrom: dateRange?.dateFrom ? dateRange.dateFrom : undefined,\r\n dateTo: dateRange?.dateTo ? dateRange.dateTo : undefined,\r\n currentItems: dateRange?.isCurrentInventory\r\n }\r\n const normalizedMaturityDateOptions = {\r\n maturityFrom: maturityDateRange?.dateFrom ?? undefined,\r\n maturityTo: maturityDateRange?.dateTo ?? undefined\r\n }\r\n const normalizedVintageDateOptions = {\r\n vintageFrom: vintageDateRange?.dateFrom ?? undefined,\r\n vintageTo: vintageDateRange?.dateTo ?? undefined\r\n };\r\n const normalizedClosingDateOptions = {\r\n closingFrom: closingDateRange?.dateFrom ?? undefined,\r\n closingTo: closingDateRange?.dateTo ?? undefined\r\n }\r\n\r\n const requestParams = {\r\n identifiers: searchSecurities,\r\n statuses,\r\n ratings,\r\n managers,\r\n collateralTypes,\r\n collateralManagers,\r\n nonCallEndFromYear: nonCallEndYears.from,\r\n nonCallEndToYear: nonCallEndYears.to,\r\n reinvestmentEndFromYear: reinvestmentEndYears.from,\r\n reinvestmentEndToYear: reinvestmentEndYears.to,\r\n nonCallEndFromDate: nonCallEndDateRange.from,\r\n nonCallEndToDate: nonCallEndDateRange.to,\r\n reinvestmentEndFromDate: reinvestmentEndDateRange.from,\r\n reinvestmentEndToDate: reinvestmentEndDateRange.to,\r\n esg,\r\n euCompliance,\r\n staticDeals,\r\n currency,\r\n dealers: null,\r\n outOfNC,\r\n outOfRI,\r\n orderByColumn: Number(InventorySecurityOrderByColumn[sortField]) || undefined,\r\n sortOrder: Number(InventorySecuritySortOrder[sortDirection]) || undefined,\r\n trustees,\r\n amr,\r\n ...normalizedDateOptions,\r\n ...normalizedMaturityDateOptions,\r\n ...normalizedVintageDateOptions,\r\n ...normalizedClosingDateOptions,\r\n\r\n };\r\n try {\r\n const file: { blob: Blob, name: string } = yield call(inventoryService.exportInventoryList, requestParams);\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(bdInventoryActions.exportInventoryResponse())\r\n }\r\n}\r\n\r\nfunction* watchRequestSendEmail(action: { type: string, payload: { selectedDealerEmail: boolean, selectedBloombergEmail: boolean } }) {\r\n try {\r\n const params = action.payload;\r\n yield call(inventoryService.sendEmail, params);\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n }\r\n}\r\n\r\nfunction* watchAddBloombergEmailRequest(action: { type: string, payload: { email: string } }) {\r\n try {\r\n const { email } = action.payload;\r\n yield call(accountService.saveBloombergEmail, email);\r\n user.setBloombergEmail(email);\r\n yield put(bdInventoryActions.toggleVisibleAddBloombergEmailForm());\r\n } catch (e) {\r\n yield put(errorActions.unexpectedError(e));\r\n } finally {\r\n yield put(bdInventoryActions.addBloombergEmailResponse());\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(bdInventoryActions.reset());\r\n yield put(bdInventoryActions.resetEntities());\r\n}\r\n\r\nfunction* watchPushInventory() {\r\n const isPageActive: boolean = yield select((s: AppState) => !isRequestNone(s.bdInventory.requestStateInventoryExist));\r\n\r\n if (isPageActive) {\r\n yield put(bdInventoryActions.requestInventoryExistFlag());\r\n }\r\n}\r\n\r\nexport function* watchBdInventory() {\r\n yield takeLatest(getType(bdInventoryActions.init), watchInit);\r\n yield takeLatest(getType(bdInventoryActions.requestInventoryExistFlag), watchRequestInventoryExist);\r\n yield takeEvery(getType(bdInventoryActions.loadBdInventory), watchLoadBdInventory);\r\n yield takeLatest(getType(bdInventoryActions.exportInventoryRequest), watchExportInventory);\r\n yield takeLatest(getType(bdInventoryActions.requestSendEmail), watchRequestSendEmail);\r\n yield takeLatest(getType(bdInventoryActions.addBloombergEmailRequest), watchAddBloombergEmailRequest);\r\n yield takeLatest(\r\n [\r\n getType(bdInventoryActions.applyFilter),\r\n getType(bdInventoryActions.clearFilter)\r\n ],\r\n watchRedirectWithFilterArguments\r\n );\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n yield takeEvery(getType(bdInventoryActions.pushInventory), watchPushInventory);\r\n}\r\n","import { getType } from \"typesafe-actions\";\r\nimport { takeEvery, call, put } from \"redux-saga/effects\";\r\nimport { BrokerDealerCompanySlim } from \"../types/company/BrokerDealerCompanySlim\";\r\nimport { brokerDealerListActions } from \"../actions/broker-dealer-list.actions\";\r\nimport { accountActions } from \"../constants\";\r\nimport { companiesService } from \"../services\";\r\nimport { errorActions } from \"../actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\n\r\nfunction* watchRequestBrokerDealers() {\r\n try {\r\n const brokerDealers: BrokerDealerCompanySlim[] = yield call(companiesService.getBrokerDealers);\r\n yield put(brokerDealerListActions.requestResult(RequestState.success, brokerDealers));\r\n } catch (e) {\r\n yield put(brokerDealerListActions.requestResult(RequestState.failure));\r\n yield put(errorActions.criticalError(e));\r\n }\r\n}\r\n\r\nfunction* watchLogout() {\r\n yield put(brokerDealerListActions.resetEntities());\r\n}\r\n\r\nexport function* watchBrokerDealerList() {\r\n yield takeEvery(getType(brokerDealerListActions.request), watchRequestBrokerDealers);\r\n yield takeEvery(accountActions.LOGOUT, watchLogout);\r\n}\r\n"],"names":["watchBidOnBehalfCompaniesRequest","_marked2","_regeneratorRuntime","mark","watchOperationError","_marked3","watchBidOnBehalfBulkSave","_marked4","watchNewBid","_marked5","watchMoveNextBid","_marked6","watchLogout","_marked7","watchBidOnBehalf","state","bwic","companies","wrap","_context","prev","next","select","bidOnBehalf","sent","bidding","isRequesting","abrupt","put","bidOnBehalfActions","setCompainesRequesting","call","bidOnBehalfService","getCompanies","referenceName","sort","a","b","name","localeCompare","storeCompanies","t0","errorActions","unexpectedError","finish","stop","_marked","action","result","conflicts","bidSumitResult","company","editingBid","bid","_context2","payload","event","ApiOperationType","submitBidsOnBehalf","statusCode","response","jsonUtils","tryParse","length","storeConflicts","conflictsPopupVisible","positionId","companyId","s","find","c","id","editState","getEditKey","resetBidEdit","pass","formatUtils","formatBid","Number","value","notificationActions","notificationAddErrorMessage","concat","code","bwicReferenceName","waitingResult","positions","bidsByCompany","bids","bulkList","tokens","_context3","isSubmitting","isConflictsPpopupVisible","resolveConflicts","apiOperation","requests","some","r","RequestState","request","sellerBidding","securities","Map","getBidsToSubmit","forEach","_ref","position","p","_conflicts$find","_position$bidLocks","_position$bidLocks$fi","_bidsByCompany$get","has","set","conflictBidLock","modifiedDate","companyBidLock","bidLocks","bidLock","arrayUtils","max","date","Date","getTime","companyBids","filter","latestBid","get","push","size","axed","final","stagedBiddingStatus","process","_toConsumableArray","entries","map","_ref2","_ref3","_slicedToArray","brokerDealerCompanyId","submitProgress","submitBidsBulk","apiOperationActions","waitResult","apply","token","autoRemove","createdDate","t1","Object","keys","key","_parseKey","parseKey","edit","error","editing","_position$bids$filter","_position$bids","bidOnBehalfUtils","isBidChanged","_parseKey2","_context4","_select","_securities$find","participants","processType","offPlatformCompanies","hiddenState","favorites","agreements","isTraded","isOnPlatform","currentPositionIndex","nextPositionId","nextCompanyId","_companies$find","_companies$find2","currentCompanyIndex","_securities$find2","_context5","_state$bidding$bwic$p","type","BwicProcessType","Standard","dealerListPanel","companyHiddenState","favoriteBrokerDealers","entities","settlementAgentAgreements","items","getSellerBiddingCompanies","trade","status","TradeStatus","pending","affirmed","CompanyStatus","active","findIndex","i","setNextBidIdentifiers","_context6","reset","_context7","takeEvery","getType","requestCompanies","submit","pushDataActions","PUSH_DATA_NEW_BID","moveNextBid","accountActions","LOGOUT","watchLoadUserCompany","registerUser","watchRedirectInvitedClientToTransactionDetails","watchAmrPipelineCommon","companiesService","getCurrentUserCompany","amrPipelineCommonActions","loadUserCompanyResponse","amrPipelineService","user","loadUserCompanyError","transactions","transaction","getTransactionsList","count","history","routes","transactionDetailUrl","dealReferenceName","issuanceMonitorWithNoData","takeLatest","loadUserCompanyRequest","redirectInvitedClientToTransactionDetails","watchAddSecurityToPortfolio","watchAddToPortfolio","portfolio","_action$payload$posit","securityId","isinCusip","ticker","rating","securityModel","newPortfolioName","addToPortfolio","selectedPortfolio","addToPortfolioActions","setSubmittingProgress","portfolioService","createNewPortfolio","saveSecurityPosition","portfolioListActions","message","storeError","addSecurityToPortfolio","watchBrokerDealerFetchContacts","watchBrokerDealerUserList","contacts","usersService","getActiveBrokerDealers","brokerDealerUserListActions","requestResult","success","failure","criticalError","resetEntities","watchBrokerDealerContactList","contactsService","getContacts","brokerDealerContactListActions","watchInit","watchClientsActivityRequest","watchTransactionHistoryActivityRequest","watchTransactionHistoryActivityFiltrByBar","watchAmrTransactionAnalytics","UserAccessTypes","TransactionAccessType","Overview","Structure","TargetPortfolio","Documents","Iois","ComparableDeals","groupByAccessCountAndVersion","sessions","versions","reduce","acc","session","_versions$find","grouped","toPairs","tabsViews","documents","groupDocsWithAccessType","versionDate","v","version","dateTime","accessType","_objectSpread","accessDateTime","moment","startOf","toDate","numberOfAccess","compareDates","groupByViewsAndVersion","_versions$find2","views","mapValues","x","documentsList","_action$payload","transactionReferenceName","endDate","startDate","transactionViewHistory","recentTransactionViewHistory","documentDownloadsDto","daysInMarket","_yield$all","_yield$all2","documentDownloads","totalDocumentsDownloads","recentTransactionViews","totalTransactionViews","clientsActivity","users","setDate","getDate","all","getTransactionViewHistory","getDocumentsDownloads","getDaysInTheMarket","getTransactionVersions","withDate","sumBy","dt","numberOfDocuments","transformToTreeSelect","amrTransactionAnalyticsActions","analyticsInitResponse","_action$payload2","transactionSessions","issuanceMonitor","amrPipelineDetailed","analytics","undefined","endOf","includes","clientsActivityResponse","_action$payload3","alignedStartDate","alignedEndDate","transactionHistoryActivity","transactionViewHistoryResponse","_action$payload4","transactionViewHistoryRequest","analyticsInit","clientsActivityRequest","transactionViewHistoryFilterByBar","watchMessageChange","watchBwicChange","getSubmitFinalRecipients","getStagedProcessRecipients","watchRecpientSelectedChange","updateSelectAllRecipientsState","watchSend","_marked8","watchBlastMessage","updateRecipients","keepSelection","arguments","_callee","panelVisible","bwicParticipants","isSelectAllRecipients","messageType","recipientLevel","recipients","currentRecipients","blastMessage","_s$bidding$bwic","_s$bidding$bwic2","getSecuritiesWithLatestBids","getRecipients","hasOwnProperty","blastMessageActions","storeRecipients","BlastMessageRecipientLevelState","Top3","_callee2","biddingSecurities","rejected","BlastMessageTypes","submitFinal","stage1AboutToEndTimeout","getStage1AboutToEndTimeoutRecipients","getBidOrPassRecipients","isAllToAll","withBids","_iterator","_step","positionRecipients","_s$bidding$bwic3","_s$bids","_createForOfIteratorHelper","n","done","TopX","JumpBall","getStandardProcessRecipients","e","f","getDefaultSelectedState","isBuyside","_step2","_s$bids2","_iterator2","biddingUtils","getBidCompanyIdentifier","err","topX","Top5","groupBidsByLevel","slice","flat","buyerPseudoOrderNumber","allBids","stage2Participants","_state$sellerBidding$","calculateStage2Participants","identifier","OpenBiddingStatus","stage1Ended","parseResult","parseBidCompanyIdentifier","_s$bids3","apiUtils","normalize","String","companyIdentifier","_context8","every","toggleSelectAllParticipantsFlag","_yield$select","blastMessageRecipients","recipientsByPosition","unsold","_iterator3","_step3","_recipients","getFeedbackType","model","_context9","feedbackTypes","_s$bidding$bwic4","_s$bidding$bwic5","isActiveTrade","companyMessages","positionMessages","_s$bids4","_s$bids4$find","bidRequestType","BidRequestType","BidOrPass","feedbackType","feedbackBidId","cm","hide","sending","blastMessageService","send","BlastMessage","_context10","show","messageTypeChange","recipientLevelChange","recipientSelectedChange","pushBwicActions","newBid","tradeAction","setFilterFromSearchString","checkIfArrangerPipelineExist","watchArrangerPipelineRequest","watchSecuritiesRequest","watchExport","watchDealsRequest","watchApplyFilterAndSearch","_marked9","watchSummaryRequest","_marked10","watchInitFilter","_marked11","initFilter","_marked12","watchResetFilter","_marked13","watchEdit","_marked14","watchDeleteArrangerPipeline","_marked15","watchSubmit","_marked16","watchChangeDealReferenceName","_marked17","watchUpdateFields","_marked18","watchChangeDealLegalName","_marked19","watchArrangerPipelineSaga","filterActions","createFilterActions","PipelineType","ArrangerPipeline","convertGridDataItemToArrangerPipeline","gridDataItem","collateralManagerReferenceName","arrangerReferenceName","dealLegalName","collateralType","nonCallPeriodEnd","reinvestmentPeriodEnd","expectedTiming","dealStage","euCompliance","anchor","equity","disclosureFile","disclosureFileReferenceName","getFilterCriteria","collateralManagerReferenceNames","selectedSelectGroupOptions","managers","arrangerReferenceNames","arrangers","collateralTypes","selectedBooleanOption","selectedRangeOptions","riEnd","ncEnd","equities","selectedRadioOption","filterExistingOptions","optionsNames","optionFilter","o","queryString","dealLegalNames","collateralManagersSerializer","arrangersSerializer","serializers","selectOptionFilter","filterName","filterSelectChange","location","search","collateralManagers","dealsLegalNames","legalNames","queryStringSerializer","deserialize","resetFiltersAndUnselectSavedFilter","resetFiltersVisibility","manager","arranger","amrArrangerPipelineActions","selectDealsFromSearch","replace","pathname","onePipeline","anyPipelineExists","amrArrangerPipelineService","getArrangerPipelines","setAnyPipelineExists","_yield$select$deals","sortBy","sortDirection","selectedDealsLegalNames","offset","lastAppliedFilter","filterCriteria","sortCriteria","pipelines","nonVisiblePipelinesCount","arrangerPipelineDeals","dealTickers","amrArrangerPipeline","deals","constants","defaultTransactionsSearchCriteria","mergeSortCriteria","defaultArrangerPipelineOrderCriteria","hasFeatures","SubscriptionFeature","IssuanceMonitorFullAccess","getArrangerPipelinesCount","getDealsLegalNames","dealsSearchResponse","arrangerPipelinesResponse","setEditLoadingStatus","uniq","t","dealTicker","arrangerPipelineSecuritiesRequest","statistics","sorted","bwicDealsService","getDealSecurityStatistics","_s$classes","classes","compareEmpty","closingDate","compareClassName","arrangerPipelineSecuritiesResponse","_yield$select2","_yield$select2$deals","file","exportLoad","exportArrangerPipelines","saveAs","blob","format","issuanceMonitorExportDateFormat","dealsService","getDealsList","searchTerm","changeDealReferenceName","dealsResponse","resetPipelines","applyFilter","arrangerPipelinesRequest","arrangerPipelineStatisticRequest","resetFilter","_yield$select3","summary","getArrangerPipelinesStatistic","arrangerPipelineStatisticResponse","pipelineType","filterSelector","imFilterState","_arrangers","issuanceMonitorFilterSelector","initialFilter","storeFilterData","filterType","amrCompaniesService","getManagersList","HavingDealType","CmHavingAllPublishedDeals","getArrangersList","data","legalName","m","selected","disabled","visible","text","defaultFilter","_context11","init","IssuanceMonitorFiltersEmailAlerts","imUserConfig","filtersConfig","ApFilter","default","selectFilterFromConfig","_context12","userCompany","isBD","_pipelines$map","dataItems","_arrangers2","managerColumn","arrangerGridColumn","arrangerColumn","dealNameColumn","columns","gridInit","gridValidate","_context14","amrPipelineCommon","hasRoles","roles","bd","gridRowsLimit","category","Category","_p$arranger","collateralManager","submitArrangerPipelineStatus","gridActions","gridColumns","required","selectSourceItemsCallback","title","compareStrings","Administrator","DataEntry","dealName","lookup","compareCallback","lookupItem","toLowerCase","startsWith","fetchCallback","_fetchCallback","_asyncToGenerator","abortSignal","_context13","store","dispatch","getDealsNamesList","d","_x","_x2","onLookupItemSelected","deal","changeDealLegalName","updateFields","arrangerPipeline","validate","_context15","deleteArrangerPipeline","_dataItems$reduce","arrangerPipelineState","gridDataItems","arrangerPipelines","deletedPipelines","_context16","arrangerPipelineDealsSelector","grid","g","draft","isValid","pipeline","_pipeline$arranger","removed","pipelineEditItem","added","createOrUpdateArrangerPipeline","_yield$select4","editingPipeline","insertDataItems","_context17","index","replaceDataItem","_yield$select5","_context18","editingGrid","applyEdit","_context19","applyOrCancelEdit","_context20","applyFilterAndSearch","exportPipelines","dealsRequest","submitArrangerPipeline","watchFetchTransactionHistory","watchLoadTransactionDetails","watchTransactionFieldsUpdated","watchTransactionHistory","byEventDateTime","eventDateTime","unix","originatingTransactionDiffer","Differ","syndicateContacts","traverse","Traverse","Skip","iteratee","issuer","Shallow","collateralQualityTests","originatingTransactionClassFieldsDiffer","formatRating","transactionClass","isNil","expectedRatingMoodys","expectedRatingSnP","expectedRatingFitch","expectedRatingKbra","expectedRatingDbrs","amrFormatUtils","countZeroAsNull","fn","arg","calculatedValue","classWithCalculatedFields","coupon","formatInventoryCoupon","floaterIndex","margin","ratingString","priceNumber","price","parseFloat","withCalculatedFields","calculatedTargetPar","dealStructureUtils","calcTargetPar","calculatedBidPrice","calcBidPrice","calculatedAskPrice","calcAskPrice","transactionsHistory","allHistoryClassesList","getTransactionHistory","item","self","previousTransaction","currentTransaction","diff","versionTitle","versionTitleFull","isDetailsLoaded","reverse","uniqBy","flatten","synonyms","amrTransactionHistoryActions","transactionHistoryResponse","companyReferenceName","amrPipelineDetailedActions","transactionDetailsRequesting","storeTransactionDetais","getSyndicateContactsByArranger","classReferenceName","fieldsLastUpdated","classesOnly","difference","guidance","subscription","_difference$reference","_difference$guidance","derivedValue","DifferenceType","Unchanged","_difference$reference2","_difference$subscript","transactionFieldsUpdatedResponse","transactionHistoryRequest","loadTransactionDetais","transactionFieldsUpdatedRequest","watchBwicLogInit","watchBwicLogExport","watchBwicLog","security","bwicService","getSecurityBwicStatistics","bwicLogActions","bwicLogInitSuccess","bwicLogInitFailure","_yield$call","dashboardService","exportBwicStatistic","bwicLogExportDataSuccess","bwicLogExportDataFailure","bwicLogInitRequest","bwicLogExportDataRequest","getSyndicateContacts","watchGetBanks","watchGetBankDetails","watchManagersTransactionCountFilter","watchExportTransactionCountRequest","watchUpdateBank","watchLogUserActivity","watchAnalyticsInit","watchProfileViewHistoryRequest","watchProfileViewHistoryFiltrByBar","watchBanks","BankAccessType","ContactsEventsTab","PrimaryTab","SecondaryTab","groupSessionsByDate","MandatoryContactFields","notEmptyEvent","stringUtils","isHTMLEmpty","description","isContactEmpty","contact","withNeededValues","pick","compact","values","isHeadOfTradingEmpty","headOfTrading","trim","contactOrDefault","primaryDesk","order","firstName","lastName","email","officePhoneNumber","mobilePhoneNumber","distributionListEmail","createEmptyContact","splitIntoHeadAndDistributionList","brokerDealer","headContact","_objectWithoutProperties","_excluded","distributionList","ContactType","DistributionList","convertToBankSyndicateContacts","headOfDeskAndDistributionList","headOfTradingAndDistributionList","primary","secondary","_splitIntoHeadAndDist","headOfDesk","primaryDistributionList","_splitIntoHeadAndDist2","secondaryDistributionList","primaryContacts","numberOfHiddenItems","secondaryContacts","aggregateManagerTransactions","managerTransactions","defaultFilterValues","filtered","managerTransaction","year","currency","allListItem","currencyCode","groupedManager","groupBy","Array","from","group","firstEntry","newIssueCount","transactionType","TransactionType","newIssue","refinancingCount","refi","resetCount","companyLegalName","totalCount","canViewContactsAndEvents","_brokerDealer","_brokerDealer2","bwicContacts","mergedContacts","banksService","getBrokerDealer","office","mobile","distributionListExists","userCompanyReferenceName","_yield$all3","_yield$all4","amrData","bwicData","banks","getBanksList","getBwicBanksList","combineBanks","banksActions","getBanksResult","bank","companyEvents","isNotBrokerDealer","ownCompany","hasEventsFeature","_yield$all5","_yield$all6","getAllRolesExclude","isBrokerDealersOwnCompany","DealerProfileBankEvents","getBankDetails","getEvents","managersTransactions","getBankDetailsResult","managerTransactionsAggregated","_state$banks$selected","_state$banks$selected2","selectedBank","details","managersTransactionCountFilterResult","params","fileName","dateFormat","exportBankManagersTrans","exportTransactionCountResponse","formData","events","bankToSave","linkedIn","formatUrlWithProtocol","updateBankResult","updateBank","manageBanksUrl","logUserActivity","profileViews","getProfileViewHistory","getAnalytics","_yield$call2","bankClientsActivity","_action$payload5","_yield$call3","profileViewHistory","profileViewHistoryResponse","_action$payload6","profileViewHistoryRequest","getBanks","managersTransactionCountFilter","profileViewHistoryFilterByBar","exportTransactionCountRequest","watchBlotterInit","applyQueryStringFilter","loadOwnTradesExistenceInfo","watchBlotterSearchRequest","watchBlotterPushDataTrade","watchBlotterPushDataTradedAway","watchExportRequest","watchBlotterSetVconRequest","watchBlotterSetBookedRequest","watchBlotter","_history$location$sea","qs","blotterSetFilterDefaults","identifierOptions","statusOptions","sellementStatusOptions","currencyOptions","tradeSideOptions","tradeTypeOptions","to","settlementFrom","settlementTo","_getDateRangeOption","option","customRange","settlementDateOptions","blotterFiltersReset","identifiers","parsedIdentifiers","tradesStatuses","parsedStatuses","settlementStatuses","multipleCurrencies","parsedCurrency","tradeSide","parsed","tradeType","dateFrom","parsedDate","dateTo","searchSecuritiesActions","addSearchItem","blotterSetCurrency","statusTitle","tradeStatuses","blotterTogglePending","blotterToggleConfirmed","blotterToggleRejected","tradeSettlementStatusTitle","TradeSettlementStatus","Unsettled","blotterToggleAllocationStatusUnsettled","PendingSettlement","blotterToggleAllocationStatusPendingSettlement","PendingAllocation","blotterToggleAllocationStatusPendingAllocation","PendingProceeds","blotterToggleAllocationStatusPendingProceeds","Settled","blotterToggleAllocationStatusSettled","side","TradeSide","Buy","blotterToggleFilterBuy","Sell","blotterToggleFilterSell","tradeTypeTitle","TradeType","Client","blotterToggleFilterClient","Desk","blotterToggleFilterDesc","getDateRangeOption","blotterDateFilterChange","bwicDateFilterOptions","todayAndUpcoming","today","custom","blotterCustomDateFilterChange","blotterSettlementDateFilterChange","blotterSettlementCustomDateFilterChange","ownTrades","requestState","blotterHasTradesRequest","tradingService","doesExist","blotterHasTradesSuccess","JSON","parse","blotterHasTradesFailure","_action$payload$page","blotter","searchSecurities","searchTermItems","filters","orderByColumn","orderByDirection","page","pageSize","nextPage","searchParams","getSearchParams","sortOrder","companyDetailsActions","blotterSearchSuccess","getSideFilters","getTypeFilter","redirectWithFilterArguments","blotterSearchFailure","statuses","getByKey","serialize","getTradeStatusFilter","confirmed","sellSide","buySide","client","desc","allocationStatus","unsettled","pendingSettlement","pendingAllocation","pendingProceeds","settled","getSettlementStatusFilter","isinCusipsAndTickers","dateRange","getSearchDateRange","settlementDateRange","selectedDateOption","settlementSelectedDateOption","customDateRange","settlementCustomDateRange","settlFrom","settlTo","requestStateSecurities","statusFilters","isPendingStatusActive","isRequestSuccess","blotterSearchRequest","blotterExport","blotterExportSuccess","blotterExportFailure","tradeId","isBuyTrade","blotterSetVconRequest","setVcon","blotterSetVconSuccess","blotterSetVconFailure","blotterSetBookedRequest","setBooked","blotterSetBookedSuccess","blotterSetBookedFailure","blotterInit","blotterSearchRequestNextPage","blotterExportRequest","PUSH_DATA_TRADE","PUSH_DATA_TRADED_AWAY","blotterToggleVcon","blotterToggleBooked","watchLoadBrokerDealerInventory","watchAdminInventoryEdit","_company","adminInventoryEdit","shouldRequest","adminInventoryEditActions","requestInventory","inventoryService","getAdminEditInventory","getCompany","requestInventorySuccess","inventorySecurities","lockModifiedDate","requestInventoryError","loadInventory","watchRequest","watchAssetManager","accounts","getActiveAssetManagers","assetManagerActions","watchLoadCountries","watchLoadStates","watchLoadCities","watchAddress","countries","addressService","getCountries","addressActions","loadCountriesResponse","countryId","states","getStates","loadStatesResponse","stateId","cities","getCities","loadCitiesResponse","loadCountries","loadStates","loadCities","watchSubmitBids","watchSubmitSuccess","watchSubmitError","shouldHandleApiOperationResult","watchCanSubmitChange","watchSetBidCanSubmit","watchTrated","watchStage2Started","watchBrokerDealerBidding","submitResult","targetSecurities","bidAttributes","submitBidsSuccess","submitBidAttributesSuccess","addConflictBidLock","submitBidRequest","resolveApiCall","func","apiOperationType","_len","args","_key","_args2","errorToastDisabled","agreement","bidRequests","_state$b$positionId$b","_state$b$positionId","_state$b$positionId2","_state$b$positionId2$","brokerDealerId","current","commission","currentBid","commissions","salesCoverage","acceptBiddingOverThemself","bidAsDealerRequestService","SubmitBidRequest","_submitResult$model$p","conflict","brokerDealerBidding","submitBidsConfirmation","submitInProgress","bidConfirmationActions","_state$brokerDealerBi","isTradedAway","_action$payload$bids$","numericUtils","numberOrDefault","_bid$value","_bid$axed","_bid$final","_submitResult$s$id","_action$payload$bids$2","Boolean","isBidOverThemself","_action$payload$bids$3","_bid$axed2","_bid$final2","_action$payload$bids$4","bidId","biddingService","submitBids","SubmitBid","updateBidAttributes","SubmitAxedFinal","submitResults","_defineProperty","isLoggedOut","stageTransitionConflict","parseOpenBiddingStageTransitionConflict","parseConflict","validationError","parseValidationError","hasStatusResponse","parseErrorMessage","bidPlacementActions","setBidCanSubmit","_currentBid$value","_currentBid$value2","isColorDistribution","currentBidValue","bidExists","bidChanged","axedChanged","finalChanged","passChanged","isCommissionValid","_currentBid$commissio","_editState$commission","currentCommission","minValue","maxValue","canSubmit","editBid","errors","storeCanSubmitPositionFlag","getCurrentBid","round","bidMinStep","isNumber","commissionRange","min","revert","BestFootForward","revertAll","brokerDealerBiddingActions","axedFinalChange","stagedBiddingStartStage2","watchApiOperationResult","watchEarlyOperationResult","watchStuckOperations","resolveStuckOprtations","watchApiOperation","logger","trace","remove","responses","req","earlyResult","timeout","stuck","pushNotificationService","isConnected","isAuthenticated","delay","operations","pushDataCache","operationTokenByResult","apiOperationTokensWithoutResponse","stuckApiResponses","jsonData","apiOperationResult","console","log","trackStuckOperations","watchBwicStatusChange","watchAllBwics","originalBwic","freshBwic","bidsToUpdate","_s$allBWICS$bwics","allBWICS","bwics","isMy","isParticipant","getByReferenceName","allBWICSActions","addPositionBids","bwicStatusChanged","watchRedirectWithFilterArguments","watchRequestInventoryExist","watchLoadBdInventory","watchExportInventory","watchRequestSendEmail","watchAddBloombergEmailRequest","watchPushInventory","watchBdInventory","BwicFilterType","BDInventory","inventories","allTrusteeNames","trusteeFilterItems","canUseAdvancedFilters","defaultConfigFilter","_mixedDateRange","_mixedDateRange2","ncEndSerializers","getNcEndDeserializeResult","_mixedDateRange3","_mixedDateRange4","riEndSerializers","getRiEndDeserializeResult","ratingsOptions","identifierList","collateralTypeOptions","collateralManagersReferenceNames","isEsg","isEuCompilance","isStaticDeals","maturityFrom","maturityTo","vintageFrom","vintageTo","closingFrom","closingTo","trusteesValues","amrValue","isOutofRI","isOutOfNC","dateOption","ncEndDeserializeResult","riEndDeserializeResult","datesCommand","ratingsCommand","identifiersCommand","statusesCommand","currenciesCommand","collateralTypesCommand","esgCommand","euCompilanceCommand","staticDealsCommand","outOfNCCommand","outofRICommand","nonCallEndCommand","reinvestmentEndCommand","collateralManagersReferenceNamesCommand","trusteesValuesCommand","maturityCommand","vintageCommand","closingCommand","amrValueCommand","bdInventoryActions","requestInventoryExistFlag","loadBdInventory","take","bdInventory","cloneDeep","inventory","_s$trustee","_s$trustee2","trustee","distinct","trustees","bdInventoryFilters","_s$entities$pageConfi","_s$entities$pageConfi2","pageConfig","configs","PageConfigType","Inventory","InventoryAvancedFilters","mixedDateRange","inventoryStatuses","getInventoryPositionStatusByTitle","list","ratings","parsedRatings","Rating","Currency","parsedCollateralTypes","esg","parsedEuCompilance","staticDeals","parsedStaticDeals","outOfNC","outOfRI","amr","getDateOptionByRange","dateRangeFilterOptions","CurrentInventory","canExecute","execute","All","filterDateSelectOption","filterDateSelectCustomRange","ratingOption","shouldExecute","statusOption","toString","collateralTypeOption","filterVisibilityChange","filterRadioChange","dates","years","filterDateQueryStringDeserialized","filterOption","makeFilterVisible","ThisWeek","DeserializeCommandHandler","addCommand","processGenerator","advancedFilterBlocked","criteria","_context21","nonCallEndFrom","nonCallEndTo","reinvestmentEndFrom","reinvestmentEndTo","currentInventory","noop","_nonCallEndYears$from","_nonCallEndYears$to","_reinvestmentEndYears","_reinvestmentEndYears2","_filter$trustees","_filter$amr","nonCallEndYears","getYearsRange","nonCallEnd","reinvestmentEndYears","reinvestmentEnd","nonCallEndDateRange","selectedDateOptions","reinvestmentEndDateRange","defaultDateRange","maturityRange","maturity","selectedOption","convertToApiCriteria","options","vintageRange","vintage","closingRange","closing","staticDeal","exist","_context22","getInventoryExistFlag","inventoryExistFlag","_context23","getBdInventory","_maturityDateRange$da","_maturityDateRange$da2","_vintageDateRange$dat","_vintageDateRange$dat2","_closingDateRange$dat","_closingDateRange$dat2","sortField","maturityDateRange","vintageDateRange","closingDateRange","selectedCurrencies","normalizedDateOptions","normalizedMaturityDateOptions","normalizedVintageDateOptions","normalizedClosingDateOptions","requestParams","_context24","currentItems","isCurrentInventory","nonCallEndFromYear","nonCallEndToYear","reinvestmentEndFromYear","reinvestmentEndToYear","nonCallEndFromDate","nonCallEndToDate","reinvestmentEndFromDate","reinvestmentEndToDate","dealers","InventorySecurityOrderByColumn","InventorySecuritySortOrder","exportInventoryList","exportInventoryResponse","_context25","sendEmail","_context26","accountService","saveBloombergEmail","setBloombergEmail","toggleVisibleAddBloombergEmailForm","addBloombergEmailResponse","_context27","_context28","isRequestNone","requestStateInventoryExist","_context29","exportInventoryRequest","requestSendEmail","addBloombergEmailRequest","clearFilter","pushInventory","watchRequestBrokerDealers","watchBrokerDealerList","brokerDealers","getBrokerDealers","brokerDealerListActions"],"sourceRoot":""}