{"version":3,"file":"static/js/main-a8efc1db.7fb97d5d.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 {\r\n arrangerPipelineDealsSelector,\r\n issuanceMonitorFilterSelector,\r\n} 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 { 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\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 } 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* 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.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 managerTransaction.year === filter.year\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","watchExport","watchDealsRequest","watchApplyFilterAndSearch","watchSummaryRequest","_marked9","watchInitFilter","_marked10","initFilter","_marked11","watchResetFilter","_marked12","watchEdit","_marked13","watchDeleteArrangerPipeline","_marked14","watchSubmit","_marked15","watchChangeDealReferenceName","_marked16","watchUpdateFields","_marked17","watchChangeDealLegalName","_marked18","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","amrArrangerPipeline","deals","constants","defaultTransactionsSearchCriteria","mergeSortCriteria","defaultArrangerPipelineOrderCriteria","hasFeatures","SubscriptionFeature","IssuanceMonitorFullAccess","getArrangerPipelinesCount","getDealsLegalNames","dealsSearchResponse","arrangerPipelinesResponse","setEditLoadingStatus","_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","init","IssuanceMonitorFiltersEmailAlerts","imUserConfig","filtersConfig","ApFilter","default","selectFilterFromConfig","_context11","userCompany","isBD","_pipelines$map","dataItems","_arrangers2","managerColumn","arrangerGridColumn","arrangerColumn","dealNameColumn","columns","gridInit","gridValidate","_context13","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","_context12","store","dispatch","getDealsNamesList","d","_x","_x2","onLookupItemSelected","deal","changeDealLegalName","updateFields","arrangerPipeline","validate","_context14","deleteArrangerPipeline","_dataItems$reduce","arrangerPipelineState","gridDataItems","arrangerPipelines","deletedPipelines","_context15","arrangerPipelineDealsSelector","grid","g","draft","isValid","pipeline","_pipeline$arranger","removed","pipelineEditItem","added","createOrUpdateArrangerPipeline","_yield$select4","editingPipeline","insertDataItems","_context16","index","replaceDataItem","_yield$select5","_context17","editingGrid","applyEdit","_context18","applyOrCancelEdit","_context19","applyFilterAndSearch","exportPipelines","dealsRequest","submitArrangerPipeline","watchFetchTransactionHistory","watchLoadTransactionDetails","watchTransactionFieldsUpdated","watchTransactionHistory","byEventDateTime","eventDateTime","unix","originatingTransactionDiffer","Differ","syndicateContacts","traverse","Traverse","Skip","classes","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","statistics","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","_context20","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":""}