{"version":3,"file":"static/js/main-c1809c58.cf9e1aea.js","mappings":"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","sources":["actions/blast-message.actions.ts","actions/blotter-trade-allocation-template.actions.ts","actions/blotter-trade-allocation.actions.ts","actions/blotter.actions.js","actions/broker-dealer-contact-list.actions.ts","actions/broker-dealer-list.actions.ts","actions/broker-dealer-user-list.actions.ts","actions/brokerDealer.bidding.actions.js","actions/bwic-log.actions.ts","actions/change-subscription.actions.ts","actions/clearing-bank.actions.ts","actions/clients-companies.actions.ts","actions/clo-managers.actions.ts","actions/companies.actions.js","actions/company-details.actions.ts","actions/company-members.actions.ts","actions/control-panel.actions.js","actions/dashboard.actions.js","actions/dealer-list-panel.actions.ts","actions/dealer-list.actions.ts","actions/deals.actions.ts","actions/direct-bidding-agreement-disclaimer.actions.ts","actions/edit-news.actions.ts","actions/edit.company.actions.js","actions/edit.parsed.bwic.actions.js","actions/email-preferences.actions.ts","actions/entities/arrangers-pipeline.actions.ts","actions/entities/availableBrokerDealers.actions.ts","actions/entities/awaitingTrades.actions.ts","actions/entities/cloSystemInfrastructure.ts","actions/entities/collateralManagers.action.ts","actions/entities/latest-transaction.actions.ts","actions/entities/live-bidding.actions.ts","actions/entities/parties.actions.ts","actions/entities/push-history.actions.ts","actions/entities/rejected-trades.actions.ts","actions/entities/trustee.actions.ts","actions/error.actions.js","actions/favorite-broker-dealers.actions.ts","actions/filter.actions.ts","actions/grid.actions.js","actions/help-resources.actions.ts","actions/im-user-config.actions.ts","actions/securities.actions.js","actions/forms.actions.js","actions/newBWIC.actions.js","actions/documents.actions.js","actions/submit.actions.js","actions/edit.portfolio.actions.js","actions/manage.parsed.bwics.actions.js","actions/change.pxTalk.actions.js","actions/change.color.actions.js","actions/contacts.save.actions.js","actions/portfolio.documents.actions.js","actions/otherSeller.bidding.actions.js","actions/dealers.actions.js","actions/push.invitation.actions.js","actions/color.distribution.actions.js","actions/onBoarding.tooltip.actions.js","actions/inviteToJoin.actions.js","actions/bwic-history.actions.js","actions/pxTalk-list.actions.js","actions/seller-buyside-actions.ts","actions/im-details-deals.actions.ts","actions/subscriptions.actions.ts","actions/contact-sales.actions.ts","actions/dealers-stats.actions.ts","actions/inventory-edit.actions.ts","actions/inventory.actions.ts","actions/manage-companies-filter.actions.ts","actions/manage-email-preferences.actions.ts","actions/manage-email.actions.ts","actions/manage-members-filter.actions.ts","actions/manage-tokens.actions.ts","actions/new-bwic-dealers.actions.ts","actions/news.actions.ts","actions/notification.actions.ts","actions/page-config.actions.ts","actions/portfolio-agreement-disclaimer.actions.ts","actions/portfolio-list.actions.ts","actions/portfolio.actions.js","actions/price-talks.actions.ts","actions/process.actions.js","actions/profile.actions.js","actions/push.bwic.actions.ts","actions/push.user.actions.js.ts","actions/release.actions.ts","actions/rules.actions.js","actions/sales-representative.actions.ts","actions/search-transactions.actions.ts","actions/search.securities.actions.js","actions/security.details.actions.ts","actions/seller-admin-dealers.actions.ts","actions/seller-admin-limit.actions.ts","actions/seller-admin-users.actions.ts","actions/seller.bidding.actions.js","actions/settlement-account.actions.ts","actions/settlement-agent-agreement-push.actions.ts","actions/settlement-agent-agreements.actions.ts","actions/signup.actions.ts","actions/subscription-biling-history.actions.ts","actions/table.actions.ts"],"sourcesContent":["import { createAction } from \"typesafe-actions\";\r\nimport { BwicPosition } from \"../types/bwic/BwicPosition\";\r\nimport { CompanySlim } from \"../types/company/CompanySlim\";\r\nimport { TimeSpan } from \"../types/primitives/TimeSpan\";\r\nimport { BlastMessageRecipientLevelState, BlastMessageRecipientsState } from \"../types/state/BlastMessageState\";\r\n\r\nconst show = createAction('blastMessage/SHOW_PANEL');\r\nconst hide = createAction('blastMessage/HIDE_PANEL');\r\nconst messageTypeChange = createAction('blastMessage/MESSAGE_TYPE_CHANGE',\r\n resolve => (messageType: number) => resolve({ messageType })\r\n);\r\nconst recipientLevelChange = createAction('blastMessage/RECIPIENT_LEVEL_CHANGE',\r\n resolve => (recipientLevel: BlastMessageRecipientLevelState) => resolve({ recipientLevel })\r\n);\r\n\r\nconst editMinutesAboutToEnd = createAction('blastMessage/EDIT_MINUTES_ABOUT_TO_END',\r\n resolve => (stage1AboutToEndTimeout: TimeSpan) => resolve({ stage1AboutToEndTimeout })\r\n);\r\n\r\nconst setError = createAction('blastMessage/SET_ERROR',\r\n resolve => (error: string) => resolve({ error })\r\n);\r\nconst storeRecipients = createAction('blastMessage/STORE_RECIPIENTS',\r\n resolve => (recipients: BlastMessageRecipientsState) => resolve({ recipients })\r\n);\r\nconst recipientSelectedChange = createAction('blastMessage/RECIPIENT_SELECTED_CHANGE',\r\n resolve => (companyIdentifier: string) => resolve({ companyIdentifier })\r\n);\r\nconst send = createAction('blastMessage/SEND',\r\n resolve => (\r\n blastMessageRecipients: BlastMessageRecipientsState,\r\n bwicParticipants: CompanySlim[],\r\n securities: BwicPosition[],\r\n ) => resolve({ blastMessageRecipients, bwicParticipants, securities })\r\n);\r\nconst sending = createAction('blastMessage/SEND_STATE',\r\n resolve => (isSending: boolean) => resolve({ isSending })\r\n);\r\nconst selectAllRecipientsChange = createAction('blastMessage/SELECT_ALL_RECIPIENTS',\r\n resolve => (isSelectAllRecipients: boolean) => resolve({ isSelectAllRecipients })\r\n);\r\nconst toggleSelectAllParticipantsFlag = createAction('blastMessage/TPGGLE_SELECT_ALL_FLAG');\r\n\r\nexport const blastMessageActions = {\r\n show,\r\n hide,\r\n messageTypeChange,\r\n recipientLevelChange,\r\n storeRecipients,\r\n recipientSelectedChange,\r\n send,\r\n sending,\r\n selectAllRecipientsChange,\r\n toggleSelectAllParticipantsFlag,\r\n editMinutesAboutToEnd,\r\n setError\r\n};\r\n","import { ThunkDispatch } from 'redux-thunk';\r\nimport { history } from '../history';\r\nimport { AnyAction } from \"redux\";\r\nimport { createAction } from 'typesafe-actions';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { gridActions } from './grid.actions';\r\nimport { notificationActions } from './notification.actions';\r\nimport { errorActions } from './error.actions';\r\nimport { errorMessages } from '../constants/error.messages';\r\nimport { TradeAllocationType } from '../types/trade-allocation/TradeAllocationType';\r\nimport { tradeAllocationTemplateService } from '../services/trade-allocation-template.service';\r\nimport { SaveTradeAllocationTemplate } from '../types/trade-allocation/template/SaveTradeAllocationTemplate';\r\nimport { user } from '../user';\r\nimport { GridDataItem } from '../types/state/GridState';\r\nimport { EditTradeAllocationTemplateItem } from '../types/trade-allocation/template/TradeAllocationTemplateItem';\r\nimport { tradeAllocationTemplateActions } from './trade-allocation-template.actions';\r\nimport { LocationStateBuilder, PanelType } from '../types/state/ui/LocationState';\r\n\r\nconst resetPanelState = createAction('blotter/trade-allocation-template/RESET');\r\nconst saveRequest = createAction('blotter/trade-allocation-template/SAVE_REQUEST');\r\nconst saveSuccess = createAction('blotter/trade-allocation-template/SAVE_SUCCESS');\r\nconst saveFailure = createAction('blotter/trade-allocation-template/SAVE_FAILURE');\r\n\r\nexport const blotterTradeAllocationTemplateActions = {\r\n resetPanelState,\r\n save,\r\n saveRequest,\r\n saveSuccess,\r\n saveFailure\r\n}\r\n\r\nfunction save(templateId: number, name: string, type: TradeAllocationType, activate: boolean, lock?: Date) {\r\n return async (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n dispatch(gridActions.validate());\r\n\r\n if (!getState().grid.isValid) return;\r\n\r\n dispatch(saveRequest());\r\n\r\n const items: GridDataItem[] =\r\n getState().grid.dataItems.filter((i: GridDataItem) => !i.draft && i.settlementAccountId);\r\n const saveModel: SaveTradeAllocationTemplate = {\r\n id: templateId || undefined,\r\n name,\r\n assetManager: { id: user.current()!.companyId },\r\n lock,\r\n type,\r\n items: items.map(i => ({\r\n id: i.id,\r\n settlementAccountId: Number(i.settlementAccountId),\r\n percent: type === TradeAllocationType.PercentOfTrade ? Number(i.percent) : undefined,\r\n rating: type === TradeAllocationType.CreditRatings ? i.rating : undefined\r\n }))\r\n };\r\n\r\n try {\r\n const template = await tradeAllocationTemplateService.saveTemplate(saveModel);\r\n dispatch(tradeAllocationTemplateActions.update(template));\r\n\r\n if (activate) {\r\n try {\r\n const updates = await tradeAllocationTemplateService.setTemplateActive(template.id, true, template.lock);\r\n const activated = updates.find(t => t.active);\r\n const deactivated = updates.find(t => !t.active);\r\n\r\n dispatch(tradeAllocationTemplateActions.activeChange(activated, deactivated));\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n \r\n dispatch(blotterTradeAllocationTemplateActions.saveSuccess());\r\n history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder()\r\n .resetPanel()\r\n .panel(PanelType.Templates)\r\n .result()\r\n });\r\n } catch (e) {\r\n dispatch(saveFailure());\r\n if (e.status === 409) {\r\n dispatch(\r\n notificationActions.notificationAddErrorMessageModal(\r\n errorMessages.refreshPage,\r\n \"Can't save Trade Allocation Template\",\r\n true\r\n )\r\n );\r\n } else {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n };\r\n}\r\n","import { ThunkDispatch } from 'redux-thunk';\r\nimport { createAction } from 'typesafe-actions';\r\nimport { AnyAction } from \"redux\";\r\nimport { AppState } from '../types/state/AppState';\r\nimport { EditTradeAllocationItem } from '../types/state/entities/TradeAllocationState';\r\nimport { GridDataItem } from '../types/state/GridState';\r\nimport { numericUtils } from '../utils';\r\nimport { gridActions } from './grid.actions';\r\nimport { notificationActions } from './notification.actions';\r\nimport { errorActions } from './error.actions';\r\nimport { errorMessages } from '../constants/error.messages';\r\nimport { TradeSettlementStatus } from '../types/settlement/TradeSettlementStatus';\r\nimport { settlementService } from '../services/settlement.service';\r\nimport { SaveTradeAllocationItem } from '../types/trade-allocation/TradeAllocationItem';\r\nimport { tradeAllocationActions } from './trade-allocation.actions';\r\nimport { history } from '../history';\r\nimport { LocationState, LocationStateBuilder } from '../types/state/ui/LocationState';\r\nimport { awaitingTradesActions } from './entities/awaitingTrades.actions';\r\nimport { gridColumns } from '../constants';\r\nimport { TradeSide } from '../types/trades/TradeSide';\r\n\r\nconst resetPopupState = createAction('blotter/trade-allocation/RESET');\r\nconst saveRequest = createAction('blotter/trade-allocation/SAVE_REQUEST');\r\nconst saveSuccess = createAction('blotter/trade-allocation/SAVE_SUCCESS',\r\n resolve => (\r\n tradeId: string,\r\n buyerSettlementStatus: TradeSettlementStatus,\r\n sellerSettlementStatus: TradeSettlementStatus,\r\n allocationLock: Date,\r\n isBuyerAllocationManual: boolean,\r\n isSellerAllocationManual: boolean\r\n ) =>\r\n resolve({ tradeId, allocationLock, buyerSettlementStatus, sellerSettlementStatus, isBuyerAllocationManual, isSellerAllocationManual })\r\n);\r\nconst saveFailure = createAction('blotter/trade-allocation/SAVE_FAILURE');\r\n\r\nexport const blotterTradeAllocationActions = {\r\n resetPopupState,\r\n recalculateAmountOfTrade,\r\n recalculatePercentOfTrade,\r\n save,\r\n saveRequest,\r\n saveSuccess,\r\n saveFailure\r\n}\r\n\r\nfunction recalculateAmountOfTrade(rowIndex: number, tradeId: string) {\r\n // use thunk because gridActions.deleteRow && gridActions.insertDataItems cannot be dispatched from saga\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n const dataItem: GridDataItem =\r\n getState().grid.dataItems[rowIndex];\r\n const trade = getState().blotter.securities.find(t => t.tradeId === tradeId)\r\n\r\n if (dataItem && trade) {\r\n let amount: number | undefined;\r\n\r\n if (dataItem.percent != null && dataItem.percent !== '') {\r\n const percent = numericUtils.numberOrDefault(dataItem.percent);\r\n if (numericUtils.isNumber(percent)) {\r\n amount = numericUtils.round(trade.size / 100 * percent);\r\n }\r\n }\r\n\r\n const updated: GridDataItem = {\r\n ...dataItem,\r\n amount: amount ?? gridColumns.amountOfTrade.initialValue\r\n };\r\n\r\n dispatch(gridActions.deleteRow(rowIndex));\r\n dispatch(gridActions.insertDataItems([updated], rowIndex));\r\n dispatch(gridActions.updateDataItemDraftStatus(rowIndex));\r\n };\r\n };\r\n}\r\n\r\nfunction recalculatePercentOfTrade(rowIndex: number, tradeId: string) {\r\n // use thunk because gridActions.deleteRow && gridActions.insertDataItems cannot be dispatched from saga\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n const dataItem: GridDataItem =\r\n getState().grid.dataItems[rowIndex];\r\n const trade = getState().blotter.securities.find(t => t.tradeId === tradeId)\r\n\r\n if (dataItem && trade) {\r\n let percent: number | undefined;\r\n\r\n if (dataItem.amount != null && dataItem.amount !== '') {\r\n if (numericUtils.isNumber(dataItem.amount)) {\r\n percent = numericUtils.round(Number(dataItem.amount) / (trade.size / 100), 2);\r\n }\r\n }\r\n\r\n const updated: GridDataItem = {\r\n ...dataItem,\r\n percent: percent ?? gridColumns.percentOfTrade.initialValue\r\n };\r\n\r\n dispatch(gridActions.deleteRow(rowIndex));\r\n dispatch(gridActions.insertDataItems([updated], rowIndex));\r\n dispatch(gridActions.updateDataItemDraftStatus(rowIndex));\r\n };\r\n };\r\n}\r\n\r\nfunction save(tradeId: string, allocationLock: Date, side: TradeSide) {\r\n return async (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n dispatch(gridActions.validate());\r\n\r\n if (!getState().grid.isValid) return;\r\n\r\n dispatch(saveRequest());\r\n\r\n const items: SaveTradeAllocationItem[] = getState().grid.dataItems\r\n .filter((i: GridDataItem) => !i.draft)\r\n .map(i => ({\r\n id: i.id,\r\n settlementAccountId: Number(i.settlementAccountId),\r\n amount: Number(i.amount),\r\n percent: Number(i.percent),\r\n proceed: i.proceed == null || i.proceed === '' ? undefined : Number(i.proceed),\r\n side\r\n }));\r\n\r\n try {\r\n const response = await settlementService.saveTradeAllocation(tradeId, allocationLock, items, side);\r\n\r\n dispatch(blotterTradeAllocationActions.saveSuccess(\r\n tradeId,\r\n response.buyerSettlementStatus,\r\n response.sellerSettlementStatus,\r\n response.allocationLock,\r\n response.isBuyerAllocationManual,\r\n response.isSellerAllocationManual,\r\n ));\r\n\r\n // TO DO: Remove when trade allocation push will be implemented\r\n dispatch(\r\n awaitingTradesActions.tradeAllocationCreated(\r\n response.referenceName,\r\n response.buyerSettlementStatus,\r\n response.sellerSettlementStatus\r\n )\r\n )\r\n\r\n dispatch(tradeAllocationActions.update(tradeId, response.items));\r\n\r\n // Close popup\r\n const location = {\r\n ...history.location,\r\n state: new LocationStateBuilder(history.location.state as LocationState)\r\n .resetPopup()\r\n .result()\r\n };\r\n history.replace(location);\r\n\r\n } catch (e) {\r\n dispatch(blotterTradeAllocationActions.saveFailure());\r\n if (e.status === 409) {\r\n dispatch(\r\n notificationActions.notificationAddErrorMessageModal(\r\n errorMessages.refreshPage,\r\n \"Can't save Trade Allocation\",\r\n true\r\n )\r\n );\r\n } else {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n };\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\n\r\nexport const blotterInit = createAction('BLOTTER_INIT');\r\nexport const blotterReset = createAction('BLOTTER_RESET');\r\nexport const blotterFiltersReset = createAction('BLOTTER_FILTERS_RESET');\r\nexport const blotterSetFilterDefaults = createAction('blotter/DEFAULT_FILTER');\r\n\r\nexport const blotterToggleConfirmed = createAction('BLOTTER_TOGGLE_CONFIRMED');\r\nexport const blotterTogglePending = createAction('BLOTTER_TOGGLE_PENDING');\r\nexport const blotterToggleRejected = createAction('BLOTTER_TOGGLE_REJECTED');\r\n\r\nexport const blotterToggleAllocationStatusUnsettled = createAction('blotter/TOGGLE_UNSETTLED');\r\nexport const blotterToggleAllocationStatusPendingSettlement = createAction('blotter/TOGGLE_PENDING_SETTLEMENT');\r\nexport const blotterToggleAllocationStatusPendingAllocation = createAction('blotter/TOGGLE_PENDING_ALLOCATION');\r\nexport const blotterToggleAllocationStatusPendingProceeds = createAction('blotter/TOGGLE_PENDING_PROCEEDS');\r\nexport const blotterToggleAllocationStatusSettled = createAction('blotter/TOGGLE_SETTLED');\r\n\r\nexport const blotterSetCurrency = createAction(\r\n 'BLOTTER_SET_CURRENCY',\r\n resolve => currency => resolve({ currency })\r\n);\r\nexport const blotterResetCurrency = createAction('blotter/CURRENCY_FILTER_RESET');\r\nexport const blotterSelectAllCurrencies = createAction('blotter/CURRENCY_FILTER_SELECT_ALL');\r\n\r\nexport const blotterDateFilterChange = createAction(\r\n 'BLOTTER_DATE_RANGE_FILTER_CHANGED',\r\n resolve => (dateOption) => resolve({ dateOption })\r\n);\r\nexport const blotterCustomDateFilterChange = createAction(\r\n 'BLOTTER_CUSTOM_DATE_RANGE_FILTER_CHANGED',\r\n resolve => (dateRange) => resolve({ dateRange })\r\n);\r\nexport const blotterSettlementDateFilterChange = createAction(\r\n 'blotter/SETTLEMENT_DATE_RANGE_FILTER_CHANGED',\r\n resolve => (dateOption) => resolve({ dateOption })\r\n);\r\nexport const blotterSettlementCustomDateFilterChange = createAction(\r\n 'blotter/SETTLEMENT_CUSTOM_DATE_RANGE_FILTER_CHANGED',\r\n resolve => (dateRange) => resolve({ dateRange })\r\n);\r\nexport const blotterToggleFilterBuy = createAction('BLOTTER_TOGGLE_FILTER_BUY');\r\nexport const blotterToggleFilterSell = createAction('BLOTTER_TOGGLE_FILTER_SELL');\r\nexport const blotterToggleFilterClient = createAction('BLOTTER_TOGGLE_FILTER_CLIENT');\r\nexport const blotterToggleFilterDesc = createAction('BLOTTER_TOGGLE_FILTER_DESC');\r\nexport const blotterSearchRequest = createAction('BLOTTER_SEARCH_REQUEST');\r\nexport const blotterSearchRequestNextPage = createAction('blotter/REQUEST_NEXT_PAGE',\r\n resolve => page => resolve({ page })\r\n);\r\nexport const blotterSearchSuccess = createAction(\r\n 'BLOTTER_SEARCH_SUCCESS',\r\n resolve => ({ result, totalRecordNumber }) => resolve({ result, totalRecordNumber })\r\n);\r\nexport const blotterSearchFailure = createAction(\r\n 'BLOTTER_SEARCH_FAILURE',\r\n resolve => error => resolve({ error })\r\n);\r\nexport const blotterOrderByChange = createAction('blotter/ORDER_BY_CHANGE',\r\n resolve => orderByColumn => resolve({ orderByColumn })\r\n);\r\nexport const blotterHasTradesRequest = createAction('BLOTTER_HAS_TRADES_REQUEST');\r\nexport const blotterHasTradesSuccess = createAction(\r\n 'BLOTTER_HAS_TRADES_SUCCESS',\r\n resolve => hasTrades => resolve({ hasTrades })\r\n);\r\nexport const blotterHasTradesFailure = createAction(\r\n 'BLOTTER_HAS_TRADES_FAILURE',\r\n resolve => error => resolve({ error })\r\n);\r\nexport const blotterExportRequest = createAction('BLOTTER_EXPORT_REQUEST');\r\nexport const blotterExportSuccess = createAction('BLOTTER_EXPORT_SUCCESS');\r\nexport const blotterExportFailure = createAction('BLOTTER_EXPORT_FAILURE');\r\nexport const blotterToggleVcon = createAction(\r\n 'BLOTTER_TOGGLE_VCON',\r\n resolve => (tradeId, isBuyTrade, value) => resolve({ tradeId, isBuyTrade, value })\r\n);\r\nexport const blotterSetVconRequest = createAction(\r\n 'BLOTTER_SET_VCON_REQUEST',\r\n resolve => (tradeId, isBuyTrade) => resolve({ tradeId, isBuyTrade })\r\n);\r\nexport const blotterSetVconSuccess = createAction(\r\n 'BLOTTER_SET_VCON_SUCCESS',\r\n resolve => (tradeId, isBuyTrade, value) => resolve({ tradeId, isBuyTrade, value })\r\n);\r\nexport const blotterSetVconFailure = createAction(\r\n 'BLOTTER_SET_VCON_FAILURE',\r\n resolve => (tradeId, isBuyTrade) => resolve({ tradeId, isBuyTrade })\r\n);\r\nexport const blotterToggleBooked = createAction(\r\n 'BLOTTER_TOGGLE_BOOKED',\r\n resolve => (tradeId, isBuyTrade, value) => resolve({ tradeId, isBuyTrade, value })\r\n);\r\nexport const blotterSetBookedRequest = createAction(\r\n 'BLOTTER_SET_BOOKED_REQUEST',\r\n resolve => (tradeId, isBuyTrade) => resolve({ tradeId, isBuyTrade })\r\n);\r\nexport const blotterSetBookedSuccess = createAction(\r\n 'BLOTTER_SET_BOOKED_SUCCESS',\r\n resolve => (tradeId, isBuyTrade, value) => resolve({ tradeId, isBuyTrade, value })\r\n);\r\nexport const blotterSetBookedFailure = createAction(\r\n 'BLOTTER_SET_BOOKED_FAILURE',\r\n resolve => (tradeId, isBuyTrade) => resolve({ tradeId, isBuyTrade })\r\n);\r\n","import { createAction } from 'typesafe-actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { Contact } from '../types/company/Contact';\r\n\r\nconst request = createAction('entities/broker-dealer-contact-list/REQUEST');\r\nconst requestResult = createAction('entities/broker-dealer-contact-list/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, result: Contact[] = []) =>\r\n resolve({ requestState, result })\r\n);\r\nconst pushUpdateList = createAction(\r\n 'entities/broker-dealer-contact-list/PUSH_UPDATE_LIST',\r\n resolve => (contacts: Contact[] = []) => resolve({ contacts })\r\n);\r\nconst setContactInvitationSent = createAction(\r\n 'entities/broker-dealer-contact-list/PUSH_CONTACT_INVITATION',\r\n resolve => (contactId: number) => resolve({ contactId })\r\n);\r\nconst resetEntities = createAction('entities/broker-dealer-contact-list/RESET');\r\n\r\nexport const brokerDealerContactListActions = {\r\n request,\r\n requestResult,\r\n pushUpdateList,\r\n setContactInvitationSent,\r\n resetEntities\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { CompanySlim } from '../types/company/CompanySlim';\r\n\r\nconst request = createAction('entities/broker-dealer-list/REQUEST');\r\nconst requestResult = createAction('entities/broker-dealer-list/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, result: CompanySlim[] = []) =>\r\n resolve({ requestState, result })\r\n);\r\nconst updateDealerDistributionListInvitationSent = createAction(\r\n 'entities/broker-dealer-list/UPDATE_DEALER_DISTRIBUTION_LIST_INVITATION_SEND',\r\n resolve => (dealerId: number) => resolve({ dealerId })\r\n);\r\nconst updateDealerHeadOfTradingInvitationSent = createAction(\r\n 'entities/broker-dealer-list/UPDATE_DEALER_HEAD_OF_TRADING_INVITATION_SEND',\r\n resolve => (dealerId: number) => resolve({ dealerId })\r\n);\r\nconst resetEntities = createAction('entities/broker-dealer-list/RESET');\r\n\r\n\r\nexport const brokerDealerListActions = {\r\n request,\r\n requestResult,\r\n updateDealerDistributionListInvitationSent,\r\n updateDealerHeadOfTradingInvitationSent,\r\n resetEntities\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { UserSlim } from '../types/account/UserSlim';\r\n\r\nconst request = createAction('entities/broker-dealer-user-list/REQUEST');\r\nconst requestResult = createAction('entities/broker-dealer-user-list/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, result: UserSlim[] = []) =>\r\n resolve({ requestState, result })\r\n);\r\n\r\nconst resetEntities = createAction('entities/broker-dealer-user-list/RESET');\r\n\r\nexport const brokerDealerUserListActions = {\r\n request,\r\n requestResult,\r\n resetEntities\r\n};\r\n","import { keys } from 'lodash';\r\nimport {\r\n brokerDealerBiddingActions as actionTypes,\r\n bwicStatuses\r\n} from '../constants';\r\nimport { biddingService } from '../services';\r\nimport { brokerDealerAccessState } from '../constants/bidding';\r\nimport { errorActions, bidPlacementActions } from '.';\r\nimport { createAction } from 'typesafe-actions';\r\nimport { bidConfirmationActions } from './bid-confirmation.actions';\r\nimport { priceTalksActions } from './price-talks.actions';\r\nimport { RequestState } from '../constants/request-state';\r\n\r\n\r\nconst submitBids = createAction('brokerDealerBidding/SUBMIT_CONFIRMED',\r\n resolve => (positionId, bids) => resolve({ positionId, bids })\r\n);\r\n\r\nexport const brokerDealerBiddingActions = {\r\n init,\r\n reset,\r\n sendInviteRequest,\r\n bidAll,\r\n bidSingle,\r\n submitBids\r\n}\r\n\r\nfunction init(bwic) {\r\n return async dispatch => {\r\n try {\r\n if (!bwic.isParsed) {\r\n const accessState = await biddingService.getAccessState(bwic.referenceName);\r\n dispatch(storeAccessState(accessState));\r\n }\r\n\r\n if (bwic.status === bwicStatuses.scheduled.key) {\r\n dispatch(initScheduled(bwic.securities));\r\n } else {\r\n dispatch(storeSecurities([...bwic.securities]));\r\n }\r\n\r\n dispatch(initPriceTalks(bwic.securities));\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n}\r\n\r\nfunction storeSecurities(securities) {\r\n return {\r\n type: actionTypes.BROKER_DEALER_BIDDING_STORE_SECURITIES,\r\n securities\r\n };\r\n}\r\n\r\nfunction initScheduled(securities) {\r\n return storeSecurities(securities);\r\n}\r\n\r\nfunction initPriceTalks(securities) {\r\n return dispatch =>\r\n securities\r\n .filter(s => s.pxTalks?.length)\r\n .forEach(s => dispatch(priceTalksActions.requestResult(s.id, RequestState.success, s.pxTalks)));\r\n}\r\n\r\nfunction reset() {\r\n return { type: actionTypes.BROKER_DEALER_BIDDING_RESET };\r\n}\r\n\r\nfunction storeAccessState(accessState) {\r\n return {\r\n type: actionTypes.BROKER_DEALER_ACCESS_STATE,\r\n accessState\r\n };\r\n}\r\n\r\nfunction sendInviteRequest(comment = '') {\r\n return (dispatch, getState) => {\r\n const { bwic } = getState().bidding;\r\n\r\n biddingService\r\n .requestAccess(bwic.referenceName, comment.trim())\r\n .then(() => dispatch(storeAccessState(brokerDealerAccessState.accessRequested)))\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n };\r\n}\r\n\r\nfunction bidSingle(positionId) {\r\n return (dispatch, getState) => {\r\n dispatch(bidPlacementActions.validateSingle(positionId));\r\n\r\n const { securities, editBid } = getState().brokerDealerBidding;\r\n const position =\r\n securities &&\r\n securities.length &&\r\n securities.find(s => s.id === positionId);\r\n\r\n if (position && !hasBidErrors([positionId], editBid)) {\r\n dispatch(bidConfirmationActions.confirmation([position.id]));\r\n }\r\n };\r\n}\r\n\r\nfunction bidAll() {\r\n return (dispatch, getState) => {\r\n dispatch(bidPlacementActions.validate());\r\n\r\n const { securities, editBid } = getState().brokerDealerBidding;\r\n const biddingSecurities = securities\r\n .filter(s => editBid[s.id] && editBid[s.id].canSubmit)\r\n .map(s => s.id);\r\n\r\n if (!hasBidErrors(biddingSecurities, editBid)) {\r\n dispatch(bidConfirmationActions.confirmation(biddingSecurities));\r\n }\r\n };\r\n}\r\n\r\nfunction hasBidErrors(securities, editState) {\r\n return securities.some(id => {\r\n const edit = editState[id];\r\n return edit && edit.errors && keys(edit.errors).length\r\n });\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { BwicPositionBase } from '../types/bwic/BwicPositionBase';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { SecurityBwicStatisticsSummary } from '../types/security/SecurityBwicStatisticsSummary';\r\n\r\nconst bwicLogReset = createAction('bwic-log/RESET');\r\nconst bwicLogInitRequest = createAction('bwic-log/INIT_REQUEST',\r\n resolve => (security: BwicPositionBase | InventoryPosition) =>\r\n resolve({ security })\r\n);\r\nconst bwicLogInitSuccess = createAction('bwic-log/INIT_SUCCESS',\r\n resolve => (statistics: SecurityBwicStatisticsSummary) =>\r\n resolve({ statistics })\r\n);\r\nconst bwicLogInitFailure = createAction('bwic-log/INIT_FAILURE',\r\n resolve => (error: string) => resolve({ error })\r\n);\r\nconst bwicLogExportDataRequest = createAction('bwic-log/EXPORT_DATA_REQUEST',\r\n resolve => (securityId: number) => resolve({ securityId })\r\n);\r\nconst bwicLogExportDataSuccess = createAction('bwic-log/EXPORT_DATA_SUCCESS');\r\nconst bwicLogExportDataFailure = createAction('bwic-log/EXPORT_DATA_FAILURE',\r\n resolve => (error: string) => resolve({ error })\r\n);\r\n\r\nexport const bwicLogActions = {\r\n bwicLogInitRequest,\r\n bwicLogInitFailure,\r\n bwicLogInitSuccess,\r\n bwicLogReset,\r\n bwicLogExportDataRequest,\r\n bwicLogExportDataSuccess,\r\n bwicLogExportDataFailure\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { Company } from '../types/management/Company';\r\n\r\nconst show = createAction('changeSubscriptionActions/SHOW', resolve => (company: Company) => resolve({ company }));\r\nconst hide = createAction('changeSubscriptionActions/HIDE');\r\nconst setSubscriptionSavingFlag = createAction(\r\n 'changeSubscriptionActions/SAVING_FLAG',\r\n resolve => (isSubscriptionSavingFlag: boolean) => resolve({ isSubscriptionSavingFlag }),\r\n);\r\nconst saveSubscription = createAction(\r\n 'changeSubscriptionActions/SAVE_SUBSCRIPTION',\r\n resolve => (companyId: number, subscriptionType: string, subscriptionExpiration?: Date) =>\r\n resolve({ companyId, subscriptionType, subscriptionExpiration }),\r\n);\r\n\r\nexport const changeSubscriptionActions = {\r\n show,\r\n hide,\r\n setSubscriptionSavingFlag,\r\n saveSubscription,\r\n};\r\n","import { ActionType, createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { SettlementAgentCommissionByRating } from \"../types/bid-as-dealer/SettlementAgentCommissionByRating\";\r\n\r\nexport type TSettlementAgentCommissionActionType = ActionType<\r\n typeof settlementAgentCommissionRequest |\r\n typeof settlementAgentCommissionResponse\r\n>;\r\n\r\nconst saveClearingBankSettings = createAction('clearingBank/SAVE_SETTINGS',\r\n resolve => (companyId: number, isClearingBank: boolean, commission?: SettlementAgentCommissionByRating) =>\r\n resolve({ companyId, isClearingBank, commission })\r\n);\r\nconst settlementAgentCommissionRequest = createAction('entities/settlement-agent-commission/SETTLEMENT-AGENT-COMMISSION-REQUEST',\r\n resolve => (companyId: number) => resolve({ companyId })\r\n);\r\nconst settlementAgentCommissionResponse = createAction('entities/settlement-agent-commission/SETTLEMENT-AGENT-COMMISSION-RESPONSE',\r\n resolve => (requestState: RequestState, companyId: number, commission?: SettlementAgentCommissionByRating) =>\r\n resolve({ requestState, companyId, commission })\r\n);\r\n\r\nexport const clearingBankActions = {\r\n saveClearingBankSettings,\r\n settlementAgentCommissionRequest,\r\n settlementAgentCommissionResponse\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { SettlementAgentClientAgreement } from '../types/bid-as-dealer/SettlementAgentClientAgreement';\r\nimport { UpdateSettlementAgentAgreementStatus } from '../types/bid-as-dealer/UpdateSettlementAgentAgreementStatus';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { CurrencyRate } from '../types/currency/CurrencyRate';\r\n\r\nconst fetchListRequest = createAction(\r\n 'clientCompanies/FETCH_LIST_REQUEST',\r\n);\r\n\r\nconst fetchListSuccess = createAction(\r\n 'clientCompanies/FETCH_LIST_SUCCESS',\r\n resolve => (data: SettlementAgentClientAgreement[]) => resolve({ data })\r\n);\r\n\r\nconst fetchListFailure = createAction(\r\n 'clientCompanies/FETCH_LIST_FAILURE'\r\n);\r\n\r\nconst setSelectedAgreement = createAction(\r\n 'clientCompanies/ON_SELECTED_COMPANY_FOR_AFFIRM',\r\n resolve => (companyId: number) => resolve({ companyId })\r\n);\r\n\r\nconst resetSelectedAgreement = createAction(\r\n 'clientCompanies/ON_UN_SELECT_COMPANY_FOR_AFFIRM'\r\n);\r\n\r\nconst updateAgreementRequest = createAction(\r\n 'clientCompanies/UPDATE_REQUEST_STATUS_REQUEST',\r\n resolve => (requestData: UpdateSettlementAgentAgreementStatus) => resolve({ requestData })\r\n);\r\n\r\nconst updateAgreementSuccess = createAction(\r\n 'clientCompanies/UPDATE_REQUEST_STATUS_SUCCESS',\r\n resolve => (assetManagerId: number) => resolve( { assetManagerId })\r\n);\r\n\r\nconst updateAgreementFailure = createAction(\r\n 'clientCompanies/UPDATE_REQUEST_STATUS_FAILURE',\r\n resolve => (assetManagerId: number) => resolve( { assetManagerId })\r\n);\r\n\r\nconst setSearchString = createAction(\r\n 'clientCompanies/SET_SEARCH_STRING',\r\n resolve => (searchString: string) => resolve({ searchString })\r\n);\r\n\r\nconst fetchPendingAgreementCountRequest = createAction(\r\n 'clientCompanies/FETCH_PENDING_REQUESTS_COUNT_REQUEST'\r\n);\r\n\r\nconst fetchPendingAgreementsCountSuccess = createAction(\r\n 'clientCompanies/FETCH_PENDING_REQUESTS_COUNT_SUCCESS',\r\n resolve => (count: number) => resolve({ count })\r\n);\r\n\r\nconst fetchPendingAgreementsCountFailure = createAction('clientCompanies/FETCH_PENDING_REQUESTS_COUNT_FAILURE');\r\n\r\nconst hideActivePanels = createAction('clientCompanies/HIDE_ACTIVE_PANELS');\r\n\r\nconst setVisibleUpdateRatePopup = createAction(\r\n 'clientCompanies/SET_VISIBLE_UPDATE_RATE_POPUP',\r\n resolve => (visible: boolean) => resolve({ visible })\r\n);\r\nconst getCurrencyRate = createAction('clientCompanies/GET_CURRENCY_RATE');\r\nconst setResultGetCurrencyRate = createAction(\r\n 'clientCompanies/SET_RESULT_GET_CURRENCY_RATE',\r\n resolve => (requestState: RequestState, rate: CurrencyRate[]) => resolve({ requestState, rate })\r\n);\r\n\r\nconst updateCurrencyRate = createAction(\r\n 'clientCompanies/UPDATE_CURRENCY_RATE',\r\n resolve => (rate: CurrencyRate) => resolve({ rate })\r\n);\r\nconst setResultUpdateCurrencyRate = createAction(\r\n 'clientCompanies/SET_RESULT_UPDATE_CURRENCY_RATE',\r\n resolve => (requestState: RequestState, rate?: CurrencyRate) => resolve({ requestState, rate })\r\n);\r\n\r\nconst reset = createAction(\r\n 'clientCompanies/RESET'\r\n);\r\n\r\nexport const clientsCompaniesActions = {\r\n fetchListRequest,\r\n fetchListSuccess,\r\n fetchListFailure,\r\n setSelectedAgreement,\r\n resetSelectedAgreement,\r\n updateAgreementRequest,\r\n updateAgreementSuccess,\r\n updateAgreementFailure,\r\n setSearchString,\r\n fetchPendingAgreementCountRequest,\r\n fetchPendingAgreementsCountSuccess,\r\n fetchPendingAgreementsCountFailure,\r\n hideActivePanels,\r\n setVisibleUpdateRatePopup,\r\n getCurrencyRate,\r\n setResultGetCurrencyRate,\r\n updateCurrencyRate,\r\n setResultUpdateCurrencyRate,\r\n reset,\r\n};\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { CloManager } from '../types/clo-managers/CloManager';\r\nimport { CloManagerDetailed } from '../types/clo-managers/CloManagerDetailed';\r\nimport { CloManagerSave } from '../types/clo-managers/CloManagerSave';\r\nimport { CloManagerAccessType } from '../types/amr-pipeline/enums/CloManagerAccessType';\r\nimport { CloManagerAnalytics } from '../types/clo-managers/CloManagerAnalytics';\r\nimport { InvestmentTeamMember } from '../types/amr-pipeline/models/InvestmentTeamMember';\r\nimport { CloManagerAnalyticsFilter } from '../types/analytics/AnalyticsFilter';\r\nimport { TreeSelectOption } from '../components/controls/TreeSelect';\r\nimport { CloManagerClientActivity, CloManagerProfileView } from '../types/amr-pipeline/models/CloManagerSession';\r\nimport { DealSecurity } from '../types/security/DealSecurityStatistics';\r\n\r\nconst getCloManagers = createAction(\r\n 'cloManagers/get/REQUEST',\r\n resolve => (companyReferenceName?: string) => resolve({ companyReferenceName })\r\n);\r\n\r\nconst getCloManagersResult = createAction('cloManagers/get/REQUEST_RESULT',\r\n resolve => (cloManagers: CloManager[]) => resolve({ cloManagers })\r\n);\r\n\r\nconst getCloManager = createAction(\r\n 'cloManagers/getOne/REQUEST',\r\n resolve => (referenceName: string) => resolve({ referenceName }),\r\n);\r\n\r\nconst getCloManagerResult = createAction(\r\n 'cloManagers/getOne/REQUEST_RESULT',\r\n resolve => (\r\n referenceName: string,\r\n cloManager: CloManagerDetailed,\r\n bwicCloManagers: InvestmentTeamMember[],\r\n ) => resolve({\r\n referenceName,\r\n cloManager,\r\n bwicCloManagers,\r\n }),\r\n);\r\n\r\nconst createOrUpdateCloManager = createAction(\r\n 'cloManagers/createOrUpdate/REQUEST',\r\n resolve => (referenceName: string, cloManager: CloManagerSave) => resolve({ referenceName, cloManager }),\r\n);\r\n\r\nconst setCloManagerSaveState = createAction(\r\n 'cloManagers/createOrUpdate/STATE',\r\n resolve => (isUpdating: boolean) => resolve({ isUpdating }),\r\n);\r\n\r\nconst logUserActivity = createAction(\r\n 'cloManagers/logUserActivity/REQUEST',\r\n resolve => (companyReferenceName: string, accessType: CloManagerAccessType) =>\r\n resolve({ companyReferenceName, accessType })\r\n);\r\n\r\nconst switchFavoriteRequest = createAction(\r\n 'cloManagers/favorite/REQUEST',\r\n resolve => (companyReferenceName: string, favorite: boolean) => resolve({ companyReferenceName, favorite })\r\n);\r\n\r\nconst switchFavoriteResponse = createAction(\r\n 'cloManagers/favorite/RESPONSE',\r\n resolve => (companyReferenceName: string, favorite: boolean) => resolve({ companyReferenceName, favorite })\r\n);\r\n\r\nconst analyticsInit = createAction(\r\n 'cloManagers/analytics/INIT',\r\n (resolve) => (companyReferenceName: string) => resolve({ companyReferenceName })\r\n);\r\n\r\nconst analyticsInitResponse = createAction(\r\n 'cloManagers/analytics/INIT/RESPONSE',\r\n (resolve) =>\r\n (data: {\r\n users: TreeSelectOption[];\r\n analytics: CloManagerAnalytics;\r\n numberOfHiddenItems: number;\r\n }) =>\r\n resolve(data)\r\n);\r\n\r\nconst analyticsReset = createAction('cloManagers/analytics/RESET');\r\n\r\nconst clientsActivityRequest = createAction(\r\n 'cloManagers/clientsActivity/REQUEST',\r\n resolve => (\r\n companyReferenceName: string,\r\n startDate?: Date,\r\n endDate?: Date,\r\n ) => resolve({\r\n companyReferenceName,\r\n startDate,\r\n endDate,\r\n })\r\n);\r\n\r\nconst clientsActivityResponse = createAction(\r\n 'cloManagers/clientsActivity/RESPONSE',\r\n resolve => (data: CloManagerClientActivity[], numberOfHiddenItems: number) => resolve({ data, numberOfHiddenItems })\r\n);\r\n\r\nconst clientsActivityFilterChange = createAction(\r\n 'cloManagers/clientsActivity/FILTER_CHANGE',\r\n resolve => (filter: CloManagerAnalyticsFilter) => resolve(filter),\r\n);\r\n\r\nconst profileViewHistoryRequest = createAction(\r\n 'cloManagers/profileViewHistory/REQUEST',\r\n resolve => (companyReferenceName: string, startDate?: Date | null, endDate?: Date | null) =>\r\n resolve({\r\n companyReferenceName,\r\n startDate,\r\n endDate,\r\n }),\r\n);\r\n\r\nconst profileViewHistoryResponse = createAction(\r\n 'cloManagers/profileViewHistory/RESPONSE',\r\n resolve => (data: CloManagerProfileView[], numberOfHiddenItems: number) => resolve({ data, numberOfHiddenItems }),\r\n);\r\n\r\nconst setManagerForAlertPopup = createAction(\r\n 'cloManagers/profileViewHistory/SET_MANAGER_FOR_ALERT_POPUP',\r\n resolve => (referenceName?: string) => resolve({ referenceName }),\r\n);\r\n\r\nconst profileViewHistoryFilterChange = createAction(\r\n 'cloManagers/profileViewHistory/FILTER_CHANGE',\r\n resolve => (filter: CloManagerAnalyticsFilter) => resolve(filter),\r\n);\r\n\r\nconst profileViewHistoryFilterByBar = createAction(\r\n 'cloManagers/profileViewHistory/FILTER_BY_BAR',\r\n resolve => (\r\n companyReferenceName: string,\r\n accessType: CloManagerAccessType,\r\n date: Date\r\n ) => resolve({\r\n companyReferenceName,\r\n accessType,\r\n date\r\n }),\r\n);\r\n\r\nconst reset = createAction('cloManagers/RESET');\r\n\r\nconst selectedSecurityChange = createAction(\r\n 'cloManagers/SELECTED_SECURITY_CHANGE',\r\n resolve => (security?: DealSecurity) => resolve({ security })\r\n);\r\n\r\nconst editPlatformUsers = createAction(\r\n 'cloManagers/editPlatformUsers',\r\n resolve => (email: string) => resolve({ email })\r\n);\r\n\r\nconst resetEditPlatformUsers = createAction('cloManagers/resetEditPlatformUsers');\r\n\r\nexport type TCloManagersActions = ActionType;\r\n\r\nexport const cloManagersActions = {\r\n getCloManagers,\r\n getCloManagersResult,\r\n getCloManager,\r\n getCloManagerResult,\r\n setManagerForAlertPopup,\r\n createOrUpdateCloManager,\r\n setCloManagerSaveState,\r\n logUserActivity,\r\n switchFavoriteRequest,\r\n switchFavoriteResponse,\r\n analyticsInit,\r\n analyticsInitResponse,\r\n analyticsReset,\r\n clientsActivityRequest,\r\n clientsActivityResponse,\r\n clientsActivityFilterChange,\r\n profileViewHistoryRequest,\r\n profileViewHistoryResponse,\r\n profileViewHistoryFilterChange,\r\n profileViewHistoryFilterByBar,\r\n reset,\r\n selectedSecurityChange,\r\n editPlatformUsers,\r\n resetEditPlatformUsers,\r\n};\r\n","import { saveAs } from 'file-saver';\r\nimport {\r\n companiesActions as actionTypes,\r\n companyColumnsExportValues,\r\n companyRoles,\r\n companyStatuses,\r\n errorMessages,\r\n routes,\r\n roles,\r\n userStatuses\r\n} from '../constants';\r\nimport { errorActions, notificationActions } from '.';\r\nimport { companiesService, locationService, salesRepresentativesService, usersService } from '../services';\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { history } from '../history';\r\nimport { logger } from '../logging/logger';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\nimport { getSearchDateRange } from '../utils';\r\nimport { UserStatus } from '../types/account/UserStatus';\r\nimport { companyFilterInitialState, memberFilterInitialState } from '../reducers/companies.reducer';\r\nimport { amrPipelineService } from '../services/amr-pipeline.service';\r\nimport { isNil } from 'lodash';\r\n\r\nexport const companiesActions = {\r\n init,\r\n initCreateEditUser,\r\n reset,\r\n resetEditMember,\r\n orderCompaniesBy,\r\n orderMembersBy,\r\n approveCompany,\r\n rejectCompany,\r\n companyRejectReasonSet,\r\n companyApprovalConfirmationShow,\r\n companyApprovalConfirmationHide,\r\n companyRejectionConfirmationShow,\r\n companyRejectionConfirmationHide,\r\n companyStatusChangeConfirmation,\r\n memberStatusChangeConfirmation,\r\n resendInviteConfirmation,\r\n resetPasswordConfirmation,\r\n chnageTfaEnabledStatusConfirmation,\r\n chnageTfaEnabledStatus,\r\n resendInvite,\r\n resetPassword,\r\n changeCompanyStatus,\r\n changeMemberBlockedStatus,\r\n filterCompanies,\r\n filterMembers,\r\n showCompanyMembers,\r\n showMemberCompany,\r\n saveMember,\r\n setMemberOfacStatus,\r\n setCompanyOfacStatus,\r\n exportUsers,\r\n storeUsers,\r\n getUserLoginHistory,\r\n resetUserLoginHistory,\r\n memberSubscriptionChange,\r\n companySubscriptionChange,\r\n changeClearingBankSettings,\r\n setTempPassword,\r\n deleteUser,\r\n exportCompanies,\r\n companyPushDataReceived,\r\n applyCompanyFilters,\r\n applyMemberFilters,\r\n resetCompanyFilters,\r\n resetMemberFilters\r\n};\r\n\r\nfunction init() {\r\n return async (dispatch, getState) => {\r\n try {\r\n const companiesPromise = companiesService.getCompanies();\r\n const usersPromise = usersService.getUsers();\r\n const userRequestsPromise = usersService.getUserCreationRequests();\r\n const countriesPromise = locationService.getCountries();\r\n const salesRepresentativesPromise = salesRepresentativesService.getList();\r\n\r\n const companyList = await companiesPromise;\r\n const users = await usersPromise;\r\n const userRequests = await userRequestsPromise;\r\n const countries = await countriesPromise;\r\n const salesRepresentatives = await salesRepresentativesPromise;\r\n\r\n dispatch(storeCompanies(companyList));\r\n dispatch(storeUsers(users));\r\n dispatch(storeUserRequests(userRequests));\r\n dispatch({ type: actionTypes.COUNTRIES, countries });\r\n dispatch({ type: actionTypes.STORE_SALES_REPRESENTATIVES, salesRepresentatives });\r\n\r\n const { isInitCompleted, companyFilter, memberFilter } = getState().companies;\r\n\r\n if (isInitCompleted) {\r\n dispatch(filterCompanies(companyFilter));\r\n dispatch(filterMembers(memberFilter));\r\n } else {\r\n dispatch(initCompleted());\r\n }\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n}\r\n\r\nfunction initCreateEditUser(userId, companyId = 0) {\r\n return async (dispatch) => {\r\n try {\r\n const companiesPromise = companiesService.getCompanies();\r\n const userPromise = userId\r\n ? usersService.getUser(userId)\r\n : Promise.resolve({\r\n companyId,\r\n firstName: '',\r\n lastName: '',\r\n jobTitle: '',\r\n email: '',\r\n phone: '',\r\n roles: [],\r\n primaryContact: false,\r\n });\r\n const [companies, user] = await Promise.all([companiesPromise, userPromise]);\r\n\r\n if(!userId && companyId){\r\n const company = companies.find(c => c.id === companyId);\r\n if(company?.role === companyRoles.Media){\r\n user.roles = [roles.Media, roles.Viewer];\r\n }\r\n }\r\n\r\n dispatch(storeCompanies(companies));\r\n dispatch(setEditingUser(user))\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch(updateStateEditUserInit(true));\r\n }\r\n }\r\n}\r\n\r\nfunction setEditingUser(user) {\r\n return { type: actionTypes.COMPANY_SET_EDITING_USER, payload: { user } }\r\n}\r\n\r\nfunction updateStateEditUserInit(status) {\r\n return { type: actionTypes.COMPANY_UPDATE_INIT_STATUS_EDIT_USER, payload: { status } }\r\n}\r\n\r\nfunction initCompleted() {\r\n return {\r\n type: actionTypes.INIT_COMPLETED\r\n };\r\n}\r\n\r\nfunction storeUsers(users) {\r\n return { type: actionTypes.USERS, users };\r\n}\r\n\r\nfunction storeCompanies(companies) {\r\n return {\r\n type: actionTypes.COMPANIES,\r\n companies\r\n };\r\n}\r\n\r\nfunction storeUserRequests(userRequests) {\r\n return {\r\n type: actionTypes.USER_REQUESTS,\r\n userRequests\r\n };\r\n}\r\n\r\nfunction orderCompaniesBy(column) {\r\n return (dispatch, getState) => {\r\n const { companyOrderBy } = getState().companies;\r\n\r\n let direction = 'asc';\r\n if (companyOrderBy.column === column) {\r\n direction = companyOrderBy.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.ORDER_BY,\r\n orderBy: { column, direction }\r\n });\r\n };\r\n}\r\n\r\nfunction orderMembersBy(column) {\r\n return (dispatch, getState) => {\r\n const { memberOrderBy } = getState().companies;\r\n\r\n let direction = 'asc';\r\n if (memberOrderBy.column === column) {\r\n direction = memberOrderBy.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.MEMBERS_ORDER_BY,\r\n orderBy: { column, direction }\r\n });\r\n };\r\n}\r\n\r\nfunction companyApprovalConfirmationShow(company) {\r\n return {\r\n type: actionTypes.COMPANY_APPROVAL_CONFIRMATION_SHOW,\r\n company,\r\n }\r\n}\r\n\r\nfunction companyApprovalConfirmationHide() {\r\n return {\r\n type: actionTypes.COMPANY_APPROVAL_CONFIRMATION_SHOW,\r\n }\r\n}\r\n\r\nfunction companyRejectionConfirmationShow(company) {\r\n return {\r\n type: actionTypes.COMPANY_REJECTION_CONFIRMATION_SHOW,\r\n company,\r\n }\r\n}\r\n\r\nfunction companyRejectionConfirmationHide() {\r\n return {\r\n type: actionTypes.COMPANY_REJECTION_CONFIRMATION_HIDE,\r\n }\r\n}\r\n\r\nfunction companyStatusChangeConfirmation(visible, company) {\r\n return {\r\n type: actionTypes.COMPANY_STATUS_CHANGE_CONFIRMATION,\r\n confirmation: { visible, company }\r\n };\r\n}\r\n\r\nfunction memberStatusChangeConfirmation(visible, member) {\r\n return {\r\n type: actionTypes.MEMBER_STATUS_CHANGE_CONFIRMATION,\r\n confirmation: { visible, member }\r\n };\r\n}\r\n\r\nfunction companyApproveRequest(companyId) {\r\n return {\r\n type: actionTypes.COMPANY_APPROVE_REQUEST,\r\n companyId,\r\n }\r\n}\r\n\r\nfunction companyApproveSuccess(companyId) {\r\n return {\r\n type: actionTypes.COMPANY_APPROVE_SUCCESS,\r\n companyId,\r\n }\r\n}\r\n\r\nfunction companyApproveFailure(companyId, error) {\r\n return {\r\n type: actionTypes.COMPANY_APPROVE_FAILURE,\r\n companyId,\r\n error,\r\n }\r\n}\r\n\r\nfunction companyRejectReasonSet(value) {\r\n return {\r\n type: actionTypes.COMPANY_REJECT_REASON_SET,\r\n value\r\n }\r\n}\r\n\r\nfunction approveCompany(companyId) {\r\n return (dispatch) => {\r\n dispatch(companyApproveRequest(companyId));\r\n companiesService.postCompanyApprove(companyId)\r\n .then(() => {\r\n dispatch(companyApproveSuccess(companyId));\r\n })\r\n .catch(e => {\r\n dispatch(companyApproveFailure(companyId, e));\r\n dispatch(notificationActions.notificationAddErrorMessage('Company approval failed'));\r\n })\r\n }\r\n}\r\n\r\nfunction rejectCompany(companyId) {\r\n return (dispatch, getState) => {\r\n dispatch(companyApproveRequest(companyId));\r\n companiesService.postCompanyReject(companyId, getState().companies.rejectionReason)\r\n .then(() => {\r\n dispatch(companyApproveSuccess(companyId));\r\n })\r\n .catch(e => {\r\n dispatch(companyApproveFailure(companyId, e));\r\n dispatch(notificationActions.notificationAddErrorMessage('Company rejection failed'));\r\n });\r\n }\r\n}\r\n\r\nfunction changeCompanyStatus(company, message = '') {\r\n return (dispatch) => {\r\n dispatch(companyStatusChangeConfirmation(false));\r\n\r\n const status =\r\n company.status === companyStatuses.offPlatform.statusCode ||\r\n company.status === companyStatuses.active.statusCode\r\n ? companyStatuses.blocked.statusCode : companyStatuses.active.statusCode;\r\n\r\n companiesService\r\n .changeCompanyStatus(company.id, status, message)\r\n .catch((e) => {\r\n dispatch(errorActions.unexpectedError(e))\r\n });\r\n };\r\n}\r\n\r\nfunction resendInviteConfirmation(visible, member) {\r\n return {\r\n type: actionTypes.RESEND_INVITE_CONFIRMATION,\r\n confirmation: { visible, member }\r\n };\r\n}\r\n\r\nfunction resetPasswordConfirmation(visible, member) {\r\n return {\r\n type: actionTypes.RESET_PASSWORD_CONFIRMATION,\r\n confirmation: { visible, member }\r\n };\r\n}\r\n\r\nfunction resetPassword(member) {\r\n return dispatch => {\r\n dispatch(resetPasswordConfirmation(false));\r\n\r\n usersService\r\n .resetPassword(member.id)\r\n .then(\r\n () => dispatch(notificationActions.warningModal(\r\n 'Password reset',\r\n `Password setup link has been sent to ${member.fullName()}.`)),\r\n e => dispatch(errorActions.unexpectedError(e))\r\n );\r\n };\r\n}\r\n\r\nfunction resendInvite(member) {\r\n return (dispatch, getState) => {\r\n dispatch(resendInviteConfirmation(false));\r\n\r\n usersService\r\n .resendInvite(member.id)\r\n .then(\r\n invited,\r\n e => dispatch(errorActions.unexpectedError(e))\r\n );\r\n\r\n function invited(status) {\r\n dispatch(invitedAlert(`${member.firstName} ${member.lastName}`));\r\n\r\n const users = getState().companies.users.map(u =>\r\n u.id === member.id ? { ...u, status } : u);\r\n dispatch(storeUsers(users));\r\n }\r\n };\r\n}\r\n\r\nfunction invitedAlert(name) {\r\n return dispatch => {\r\n dispatch(\r\n notificationActions.warningModal(\r\n 'Re-Send Invite',\r\n `The invitation email has been sent to ${name}.`\r\n )\r\n )\r\n };\r\n}\r\n\r\nfunction changeMemberBlockedStatus(member, message) {\r\n return (dispatch, getState) => {\r\n dispatch(memberStatusChangeConfirmation(false));\r\n\r\n if (member.status !== userStatuses.blocked.statusCode) {\r\n if (isUserPrimaryContact()) {\r\n dispatch(\r\n notificationActions.notificationAddError(\r\n 'User can\\'t be blocked', 'Primary Contact User can\\'t be blocked. Please update User information.'\r\n )\r\n );\r\n return;\r\n }\r\n\r\n Promise.all([\r\n usersService.disableUser(member.id, message).then(disabled, error),\r\n amrPipelineService.blockUserRequest(member.email),\r\n ]);\r\n } else {\r\n Promise.all([\r\n usersService.enableUser(member.id).then(enabled, error),\r\n amrPipelineService.unblockUserRequest(member.email),\r\n ]);\r\n }\r\n\r\n function isUserPrimaryContact() {\r\n const { users } = getState().companies;\r\n const user = users.find(u => u.id === member.id);\r\n\r\n return user && user.primaryContact;\r\n }\r\n\r\n function disabled() {\r\n const users = getState().companies.users.map(u =>\r\n u.id === member.id ? { ...u, status: userStatuses.blocked.statusCode, blockReason: message } : u);\r\n\r\n dispatch(storeUsers(users));\r\n }\r\n\r\n function enabled(user) {\r\n const users = getState().companies.users.map(u =>\r\n u.id === member.id ? { ...u, status: user.status, blockReason: '' } : u);\r\n\r\n dispatch(storeUsers(users));\r\n }\r\n\r\n function error(e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n };\r\n}\r\n\r\nfunction filterCompanies(filter) {\r\n return {\r\n type: actionTypes.COMPANY_FILTER_CHNAGED,\r\n filter\r\n };\r\n}\r\n\r\nfunction applyCompanyFilters() {\r\n return {\r\n type: actionTypes.COMPANY_FILTER_APPLY\r\n };\r\n}\r\n\r\nfunction applyMemberFilters() {\r\n return {\r\n type: actionTypes.MEMBER_FILTER_APPLY\r\n }\r\n}\r\n\r\nfunction resetCompanyFilters() {\r\n return {\r\n type: actionTypes.COMPANY_FILTER_RESET\r\n };\r\n}\r\n\r\nfunction resetMemberFilters() {\r\n return {\r\n type: actionTypes.MEMBER_FILTER_RESET\r\n }\r\n}\r\n\r\nfunction filterMembers(filter) {\r\n return {\r\n type: actionTypes.MEMBERS_FILTER_CHNAGED,\r\n filter\r\n };\r\n}\r\n\r\nfunction showCompanyMembers(company) {\r\n return (dispatch) => {\r\n const filter = {\r\n ...memberFilterInitialState,\r\n companies: [company.id]\r\n };\r\n dispatch(filterMembers(filter));\r\n dispatch(applyMemberFilters());\r\n history.replace(routes.manageCompanyMembers);\r\n }\r\n}\r\n\r\nfunction showMemberCompany(user) {\r\n return (dispatch) => {\r\n const filter = {\r\n ...companyFilterInitialState,\r\n searchTerm: user.companyName\r\n };\r\n\r\n dispatch(filterCompanies(filter));\r\n history.replace(routes.manageCompanies);\r\n }\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RESET });\r\n dispatch(errorActions.resetError());\r\n };\r\n}\r\n\r\nfunction resetEditMember() {\r\n return { type: actionTypes.RESET_EDIT_MEMBER }\r\n}\r\n\r\nfunction saveMember(user) {\r\n return async (dispatch, getState) => {\r\n const { editMember } = getState().companies;\r\n const isEdit = !!user.id;\r\n const initialUser = editMember.initialUser;\r\n const isPrimaryContactAndCompanyChanged =\r\n isEdit &&\r\n user.primaryContact &&\r\n initialUser.primaryContact &&\r\n initialUser.companyId !== user.companyId;\r\n\r\n const userToSave = {\r\n ...user,\r\n phone: user.phone == null ? user.phone : user.phone.trim(),\r\n primaryContact: !!user.primaryContact,\r\n desk: isNil(user.desk) ? null : user.desk,\r\n };\r\n\r\n if (isPrimaryContactAndCompanyChanged) {\r\n dispatch(notificationActions.notificationAddError(\r\n errorMessages.userInformationCanNotBeChanged,\r\n errorMessages.primaryContactUserCanNotBeMovedToAnotherCompany)\r\n );\r\n return;\r\n }\r\n dispatch(savingUser(true));\r\n try {\r\n await usersService.saveUser(userToSave, editMember.sendInvite);\r\n history.replace(routes.manageCompanyMembers);\r\n } catch (e) {\r\n dispatch(errorActions.error(\r\n e,\r\n errorMessages.unexpectedError,\r\n errorMessages.userInformationCanNotBeChanged)\r\n );\r\n } finally {\r\n dispatch(savingUser(false));\r\n await amrPipelineService.saveUser({\r\n firstName: userToSave.firstName,\r\n lastName: userToSave.lastName,\r\n position: userToSave.jobTitle,\r\n phoneNumber: userToSave.phone,\r\n userEmail: userToSave.email,\r\n linkedIn: userToSave.linkedIn,\r\n location: userToSave.location\r\n })\r\n }\r\n }\r\n}\r\n\r\nfunction savingUser(savingUserFlag) {\r\n return {\r\n type: actionTypes.SAVING_USER,\r\n savingUserFlag\r\n };\r\n}\r\n\r\nfunction setMemberOfacStatus(memberId, status) {\r\n return dispatch => {\r\n dispatch(setMemberOfacRequest(memberId));\r\n companiesService.setMemberOfacStatus(memberId, status)\r\n .then((res) => {\r\n if (res && Number(res.id)) {\r\n dispatch(setMemberOfacSuccess(Number(res.id), res.ofac))\r\n } else {\r\n dispatch(setMemberOfacFailure(memberId))\r\n }\r\n })\r\n .catch((e) => {\r\n dispatch(errorActions.unexpectedError(e));\r\n dispatch(setMemberOfacFailure(memberId));\r\n })\r\n }\r\n}\r\n\r\nfunction setMemberOfacRequest(memberId) {\r\n return (dispatch, getState) => {\r\n const { membersOfacRequestStatus } = getState().companies;\r\n const newStatusList = { ...membersOfacRequestStatus };\r\n newStatusList[memberId] = RequestState.request;\r\n dispatch({\r\n type: actionTypes.COMPANY_MEMBER_SET_OFAC_REQUEST,\r\n payload: { membersOfacRequestStatus: newStatusList }\r\n })\r\n }\r\n}\r\n\r\nfunction setMemberOfacSuccess(memberId, ofac) {\r\n return (dispatch, getState) => {\r\n let { users, membersOfacRequestStatus } = getState().companies;\r\n const newUsers = [...users].map((member) => {\r\n if (member.id === memberId) {\r\n member.ofac = ofac\r\n }\r\n return member\r\n });\r\n\r\n const newStatusList = { ...membersOfacRequestStatus };\r\n if (newStatusList[memberId]) delete newStatusList[memberId];\r\n\r\n dispatch({\r\n type: actionTypes.COMPANY_MEMBER_SET_OFAC_SUCCESS,\r\n payload: { membersOfacRequestStatus: newStatusList, users: newUsers }\r\n })\r\n }\r\n}\r\n\r\nfunction setMemberOfacFailure(memberId) {\r\n return (dispatch, getState) => {\r\n const { membersOfacRequestStatus } = getState().companies;\r\n const newStatusList = { ...membersOfacRequestStatus };\r\n if (newStatusList[memberId]) delete newStatusList[memberId];\r\n dispatch({\r\n type: actionTypes.COMPANY_MEMBER_SET_OFAC_FAILURE,\r\n payload: { membersOfacRequestStatus: newStatusList }\r\n })\r\n }\r\n}\r\n\r\nfunction setCompanyOfacStatus(companyId, status) {\r\n return dispatch => {\r\n dispatch(setCompanyOfacRequest(companyId));\r\n companiesService.setCompanyOfacStatus(companyId, status)\r\n .then((res) => {\r\n if (res && Number(res.id)) {\r\n dispatch(setCompanyOfacSuccess(Number(res.id), res.ofac))\r\n } else {\r\n dispatch(setCompanyOfacFailure(companyId))\r\n }\r\n })\r\n .catch(() => {\r\n dispatch(setCompanyOfacFailure(companyId))\r\n })\r\n }\r\n}\r\n\r\nfunction setCompanyOfacRequest(companyId) {\r\n return (dispatch, getState) => {\r\n const { companiesOfacRequestStatus } = getState().companies;\r\n const newStatusList = { ...companiesOfacRequestStatus };\r\n newStatusList[companyId] = RequestState.request;\r\n dispatch({\r\n type: actionTypes.COMPANY_SET_OFAC_REQUEST,\r\n payload: { companiesOfacRequestStatus: newStatusList }\r\n })\r\n }\r\n}\r\n\r\nfunction setCompanyOfacSuccess(companyId, ofac) {\r\n return (dispatch, getState) => {\r\n let { companies, companiesOfacRequestStatus } = getState().companies;\r\n const newCompanies = [...companies].map((company) => {\r\n if (company.id === companyId) {\r\n company.ofac = ofac\r\n }\r\n return company\r\n });\r\n\r\n const newStatusList = { ...companiesOfacRequestStatus };\r\n if (newStatusList[companyId]) delete newStatusList[companyId];\r\n\r\n dispatch({\r\n type: actionTypes.COMPANY_SET_OFAC_SUCCESS,\r\n payload: { companiesOfacRequestStatus: newStatusList, companies: newCompanies }\r\n })\r\n }\r\n}\r\n\r\nfunction setCompanyOfacFailure(companyId) {\r\n return (dispatch, getState) => {\r\n const { companiesOfacRequestStatus } = getState().companies;\r\n const newStatusList = { ...companiesOfacRequestStatus };\r\n if (newStatusList[companyId]) delete newStatusList[companyId];\r\n dispatch({\r\n type: actionTypes.COMPANY_SET_OFAC_FAILURE,\r\n payload: { companiesOfacRequestStatus: newStatusList }\r\n })\r\n }\r\n}\r\n\r\nfunction getFilterCriteria(filter) {\r\n\r\n const statuses = [\r\n filter.active && UserStatus.Active,\r\n filter.blocked && UserStatus.Blocked,\r\n filter.invited && UserStatus.Invited,\r\n filter.notInvited && UserStatus.NotInvited,\r\n filter.pendingApproval && 'pending-approval'\r\n ].filter(status => status);\r\n\r\n const rolesArray = [\r\n filter.administrator && roles.Administrator,\r\n filter.arrangersClient && roles.ArrangersClient,\r\n filter.brokerDealerTrader && roles.BrokerDealerTrader,\r\n filter.brokerDealerViewer && roles.BrokerDealerViewer,\r\n filter.dataEntry && roles.DataEntry,\r\n filter.sellerAdmin && roles.SellerAdministrator,\r\n filter.sellerTrader && roles.SellerTrader,\r\n filter.sellerViewer && roles.SellerViewer,\r\n filter.subscriptionManager && roles.SubscriptionManager,\r\n filter.viewer && roles.Viewer,\r\n filter.collateralManager && roles.CollateralManager,\r\n filter.media && roles.Media\r\n ].filter(status => status);\r\n\r\n const dateFilter = getSearchDateRange(filter);\r\n const regByFrom = dateFilter.dateFrom;\r\n const regByTo = dateFilter.dateTo;\r\n\r\n return {\r\n searchTerms: filter.searchTerm,\r\n statuses,\r\n roles: rolesArray,\r\n companyIds: filter.companies,\r\n regByIds: filter.regBy,\r\n regByFrom,\r\n regByTo\r\n };\r\n}\r\n\r\nfunction exportUsers() {\r\n return (dispatch, getState) => {\r\n const { exportUsersRequestState } = getState().companies;\r\n const filter = getState().companies.memberFilter;\r\n const filterOptions = getFilterCriteria(filter);\r\n\r\n if (exportUsersRequestState !== RequestState.request) {\r\n dispatch({ type: actionTypes.MANAGE_EXPORT_USERS_REQUEST });\r\n usersService.exportUsers(filterOptions)\r\n .then(file => {\r\n saveAs(file.blob, file.name || 'kopenTech_BWIC_users.xlsx');\r\n dispatch({ type: actionTypes.MANAGE_EXPORT_USERS_SUCCESS });\r\n })\r\n .catch(() => {\r\n dispatch({ type: actionTypes.MANAGE_EXPORT_USERS_FAILURE })\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction chnageTfaEnabledStatusConfirmation(visible, member) {\r\n return {\r\n type: actionTypes.TFA_STATUS_CHANGE_CONFIRMATION,\r\n confirmation: { visible, member }\r\n };\r\n}\r\n\r\nfunction chnageTfaEnabledStatus(member) {\r\n return dispatch => {\r\n dispatch(chnageTfaEnabledStatusConfirmation(false));\r\n\r\n usersService\r\n .updateTfaEnabledState(member.id, !member.tfaEnabled)\r\n .then(() => dispatch({ type: actionTypes.TFA_ENABLED_STATE_CHANGED, userId: member.id }))\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n };\r\n}\r\n\r\nfunction getUserLoginHistory(user) {\r\n return dispatch => {\r\n usersService.getUserLoginHistory(user.id)\r\n .then((history) => dispatch({\r\n type: actionTypes.COMPANY_MEMBER_SET_USER_LAST_LOGIN_HISTORY,\r\n payload: { history, user }\r\n }))\r\n .catch(e => dispatch(errorActions.unexpectedError(e)))\r\n }\r\n}\r\n\r\nfunction resetUserLoginHistory() {\r\n return dispatch => dispatch({ type: actionTypes.COMPANY_MEMBER_RESET_USER_LAST_LOGIN_HISTORY })\r\n}\r\n\r\nfunction memberSubscriptionChange(userId, subscriptionType, trialPeriodEnd) {\r\n return {\r\n type: actionTypes.COMPANY_MEMBER_SUBSCRIPTION_CHANGE,\r\n userId,\r\n subscriptionType,\r\n trialPeriodEnd\r\n };\r\n}\r\n\r\nfunction companySubscriptionChange(companyId, subscriptionType, subscriptionPeriodEnd) {\r\n return {\r\n type: actionTypes.COMPANY_SUBSCRIPTION_CHANGE,\r\n companyId,\r\n subscriptionType,\r\n subscriptionPeriodEnd,\r\n };\r\n}\r\n\r\nfunction changeClearingBankSettings(companyId, isClearingBank) {\r\n return {\r\n type: actionTypes.COMPANY_SET_CLEARING_BANK,\r\n companyId,\r\n isClearingBank\r\n };\r\n}\r\n\r\nfunction deleteUser(userId) {\r\n return async (dispatch, getState) => {\r\n const user = getState().companies.users.find(u => u.id === userId);\r\n const companyUserCount = getState().companies.users.filter(u => u.companyId === user.companyId).length;\r\n try {\r\n await usersService.deleteUser(userId);\r\n dispatch({ type: actionTypes.COMPANY_MEMBER_DELETED, payload: { userId } });\r\n if(companyUserCount === 1) { // Last one deleted\r\n dispatch(resetSubscription(user.companyId));\r\n }\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n}\r\n\r\nfunction resetSubscription(companyId) {\r\n return { type: actionTypes.RESET_SUBSCRIPTION, payload: { companyId } }\r\n}\r\n\r\nfunction setTempPassword(userId) {\r\n return dispatch => {\r\n usersService.setTempPassword(userId)\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n }\r\n}\r\n\r\nfunction getUserListRequestStatus(status) {\r\n return { type: actionTypes.COMPANY_GET_USER_LIST_REQUEST_STATUS, payload: { status } }\r\n}\r\n\r\nfunction getUserList() {\r\n return async (dispatch) => {\r\n dispatch(getUserListRequestStatus(true));\r\n try {\r\n const users = await usersService.getUsers();\r\n dispatch(companiesActions.storeUsers(users));\r\n } catch (e) {\r\n logger.exception(e, 'Failed to load company users');\r\n } finally {\r\n dispatch(getUserListRequestStatus(false));\r\n }\r\n }\r\n}\r\n\r\nfunction companyPushDataReceived(company) {\r\n return async (dispatch, getState) => {\r\n const { companies } = getState().companies;\r\n const targetCompany = companies.find(c => c.id === company.id);\r\n\r\n if (targetCompany && (targetCompany.status !== company.status || targetCompany.role !== company.role)) {\r\n dispatch(getUserList());\r\n }\r\n dispatch({ type: actionTypes.COMPANY_PUSH_DATA_RECEIVED, payload: { company } })\r\n }\r\n}\r\n\r\nfunction exportCompanies() {\r\n return async (dispatch, getState) => {\r\n dispatch(setIsRequestingExportCompany(true))\r\n try {\r\n const filter = getState().companies.companyFilter;\r\n const order = getState().companies.companyOrderBy;\r\n\r\n const searchTerm = filter.searchTerm;\r\n const regByIds = filter.regBy;\r\n const status = [\r\n filter.active && CompanyStatus.active,\r\n filter.blocked && CompanyStatus.blocked,\r\n filter.offPlatform && CompanyStatus.offPlatform\r\n ].filter(status => status);\r\n\r\n const role = [\r\n filter.administrator && companyRoles.Administrator,\r\n filter.brokerDealer && companyRoles.BrokerDealer,\r\n filter.seller && companyRoles.Seller,\r\n filter.viewer && companyRoles.Viewer,\r\n filter.media && companyRoles.Media\r\n ].filter(status => status);\r\n\r\n const dateFilter = getSearchDateRange(filter);\r\n const regByFrom = dateFilter.dateFrom;\r\n const regByTo = dateFilter.dateTo;\r\n const salesRepresentative = filter.salesRepresentatives;\r\n\r\n const orderBy = order.direction;\r\n const orderByColumn = companyColumnsExportValues[order.column];\r\n\r\n const file = await companiesService.exportCompanies(searchTerm, status, role, regByFrom, regByTo, salesRepresentative, regByIds, orderByColumn, orderBy)\r\n\r\n saveAs(file.blob, file.name);\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e))\r\n } finally {\r\n dispatch(setIsRequestingExportCompany(false))\r\n }\r\n }\r\n}\r\n\r\nfunction setIsRequestingExportCompany(status) {\r\n return { type: actionTypes.MANAGE_SET_REQUEST_STATE_EXPORT_COMPANIES, payload: { status } }\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { CompanySlim } from '../types/company/CompanySlim';\r\nimport { Company } from '../types/company/Company';\r\n\r\nconst show = createAction(\r\n 'companyDetails/SET_VISIBLE',\r\n resolve => (company: CompanySlim, isBrokerDealer?: boolean, rowKey?: number) => resolve({ company, isBrokerDealer, rowKey })\r\n);\r\n\r\nconst hide = createAction(\r\n 'companyDetails/HIDE'\r\n);\r\n\r\nconst fetchCompanyDetailsRequest = createAction(\r\n 'companyDetails/FETCH_COMPANY_DETAILS_REQUEST',\r\n resolve => (companyId: number, companyReferenceName: string) => resolve({ companyId, companyReferenceName })\r\n);\r\n\r\nconst fetchCompanyDetailsResponse = createAction(\r\n 'companyDetails/FETCH_COMPANY_DETAILS_RESPONSE',\r\n resolve => (companyId: number) => resolve({ companyId })\r\n);\r\n\r\nconst setCompanyDetails = createAction(\r\n 'companyDetails/SET_COMPANY_DETAILS',\r\n resolve => (companyId: number, company: Company) => resolve({ companyId, company })\r\n);\r\n\r\nconst reset = createAction('companyDetails/RESET');\r\n\r\nexport const companyDetailsActions = {\r\n show,\r\n hide,\r\n fetchCompanyDetailsRequest,\r\n fetchCompanyDetailsResponse,\r\n setCompanyDetails,\r\n reset\r\n};\r\n","import { ActionType, createAsyncAction } from 'typesafe-actions';\r\nimport { CompanyMember } from '../types/company/CompanyMember';\r\n\r\nconst fetchCompanyMembers = createAsyncAction(\r\n 'company-members/COMPANY_MEMBERS_REQUEST',\r\n 'company-members/COMPANY_MEMBERS_SUCCESS',\r\n 'company-members/COMPANY_MEMBERS_FAILURE'\r\n)<{ companyId: number }, { companyId: number, members: CompanyMember[] }, { companyId: number, error: Error }>()\r\n\r\nexport type TCompanyMembersActions = ActionType\r\n\r\nexport const companyMembersActions = {\r\n fetchCompanyMembers\r\n}\r\n","import {\r\n bwicHistoryActions,\r\n autoFeedbackSettingsActions,\r\n securityDetailsActions,\r\n sellerBiddingActions,\r\n pxTalkListActions,\r\n rulesActions\r\n} from \".\";\r\nimport { blastMessageActions } from \"./blast-message.actions\";\r\nimport { dealerListPanelActions } from \"./dealer-list-panel.actions\";\r\nimport { companyDetailsActions } from './company-details.actions';\r\nimport { textRulesPanelActions } from \"./text-rules-panel.actions\"\r\nimport { bwicLogActions } from \"./bwic-log.actions\";\r\nimport { history } from \"../history\";\r\n\r\n\r\nexport const controlPanelActions = {\r\n hide\r\n};\r\n\r\nfunction hide() {\r\n return dispatch => {\r\n dispatch(securityDetailsActions.securityDetailsReset());\r\n dispatch(bwicLogActions.bwicLogReset());\r\n dispatch(sellerBiddingActions.showBidList(false));\r\n dispatch(autoFeedbackSettingsActions.showAutoFeedbackSettingsPanel(false));\r\n dispatch(bwicHistoryActions.showHistory(false));\r\n dispatch(rulesActions.hide());\r\n dispatch(pxTalkListActions.hide());\r\n dispatch(dealerListPanelActions.hide());\r\n dispatch(blastMessageActions.hide());\r\n dispatch(companyDetailsActions.hide());\r\n dispatch(textRulesPanelActions.hide());\r\n\r\n if (history.location?.state?.panel) {\r\n history.replace({ ...history.location, state: undefined });\r\n }\r\n };\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\n\r\nexport const dashboardInit = createAction('dashboard/INIT');\r\nexport const dashboardInitSuccess = createAction('dashboard/INIT_SUCCESS');\r\n\r\nexport const dashboardInitFailure = createAction(\r\n 'dashboard/INIT_FAILURE',\r\n resolve => (error) => resolve({ error })\r\n);\r\n\r\nexport const dashboardFetchBwics = createAction(\r\n 'dashboard/FETCH_BWICS',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchPortfolioExist = createAction(\r\n 'dashboard/FETCH_PORTFOLIO_EXIST',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardInitPortfolioSecurities = createAction(\r\n 'dashboard/INIT_PORTFOLIO_SECURITIES',\r\n);\r\n\r\nexport const dashboardFetchPortfolioSecurities = createAction(\r\n 'dashboard/FETCH_PORTFOLIO_SECURITIES',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchColorRates = createAction(\r\n 'dashboard/FETCH_COLOR_RATES',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchDntRates = createAction(\r\n 'dashboard/FETCH_DNT_RATES',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchSameDayPeriods = createAction(\r\n 'dashboard/FETCH_SAME_DAYS_PERIODS',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardInitTradingStats = createAction(\r\n 'dashboard/INIT_TRADING_STATS',\r\n);\r\n\r\nexport const dashboardFetchTradingStats = createAction(\r\n 'dashboard/FETCH_TRADING_STATS',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardInitPriceLevel = createAction(\r\n 'dashboard/INIT_PRICE_LEVEL',\r\n);\r\n\r\nexport const dashboardFetchPriceLevel = createAction(\r\n 'dashboard/FETCH_PRICE_LEVEL',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchBidRequestsAsSeller = createAction(\r\n 'dashboard/FETCH_BID_REQUESTS_AS_SELLER',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchDtcSellingBuying = createAction(\r\n 'dashboard/FETCH_DTC_SELLING_BUYING',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchAAAPriceLevel = createAction(\r\n 'dashboard/FETCH_AAA_PRICE_LEVEL',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchMostTradedTickers = createAction(\r\n 'dashboard/FETCH_MOST_TRADED_TICKERS',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchBiggestMovers = createAction(\r\n 'dashboard/FETCH_BIGGEST_MOVERS',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchDtcIgHy = createAction(\r\n 'dashboard/FETCH_DTC_INVESTMENT_GRADE',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchPxTalkDeviation = createAction(\r\n 'dashboard/FETCH_PX_TALK_DEVIATION',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchBwicPercentOfTrace = createAction(\r\n 'dashboard/FETCH_BWIC_PERCENT_OF_DEVIATION',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchKWatchNews = createAction(\r\n 'dashboard/FETCH_K_WATCH_NEWS',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardFetchTopIssuers = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_ISSUERS',\r\n resolve => (types, ccy, year, collateralTypes) => resolve({ types, ccy, year, collateralTypes })\r\n);\r\n\r\nexport const dashboardFetchTopIssuersResult = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_ISSUERS_RESULT',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardExportTopIssuers = createAction(\r\n 'dashboard/EXPORT_TOP_ISSUERS',\r\n resolve => (types, ccy, year, collateralTypes, sortingParams) => resolve({ types, ccy, year, collateralTypes, sortingParams })\r\n);\r\n\r\nexport const dashboardSetRequestStatusExportTopIssuers = createAction(\r\n 'dashboard/SET_REQUEST_STATUS_EXPORT_TOP_ISSUERS',\r\n resolve => (requestState) => resolve({ requestState })\r\n);\r\n\r\nexport const dashboardFetchTopArrangers = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_ARRANGERS',\r\n resolve => (types, ccy, year, collat) => resolve({ types, ccy, year, collat })\r\n);\r\n\r\nexport const dashboardFetchTopArrangersResult = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_ARRANGERS_RESULT',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardExportTopArrangers = createAction(\r\n 'dashboard/EXPORT_TOP_ARRANGERS',\r\n resolve => (types, ccy, year, collateralTypes, sortingParams) => resolve({ types, ccy, year, collateralTypes, sortingParams })\r\n);\r\n\r\nexport const dashboardSetRequestStatusExportTopArrangers = createAction(\r\n 'dashboard/SET_REQUEST_STATUS_EXPORT_TOP_ARRANGERS',\r\n resolve => (requestState) => resolve({ requestState })\r\n);\r\n\r\nexport const dashboardFetchTopTrustees = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_TRUSTEES',\r\n resolve => (types, ccy, year, collateralTypes) => resolve({ types, ccy, year, collateralTypes })\r\n);\r\n\r\nexport const dashboardFetchTopTrusteesResult = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_TRUSTEES_RESULT',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardExportTopTrustees = createAction(\r\n 'dashboard/EXPORT_TOP_TRUSTEES',\r\n resolve => (types, ccy, year, collateralTypes, sortingParams) => resolve({ types, ccy, year, collateralTypes, sortingParams })\r\n);\r\n\r\nexport const dashboardSetRequestStatusExportTopTrustees = createAction(\r\n 'dashboard/SET_REQUEST_STATUS_EXPORT_TOP_TRUSTEES',\r\n resolve => (requestState) => resolve({ requestState })\r\n);\r\n\r\nexport const dashboardFetchTopStaticDeals = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_STATIC_DEALS',\r\n resolve => (year) => resolve({ year })\r\n);\r\n\r\nexport const dashboardFetchTopStaticDealsResult = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_STATIC_DEALS_RESULT',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardExportTopStaticDeals = createAction(\r\n 'dashboard/EXPORT_BWIC_TOP_STATIC_DEALS',\r\n resolve => (year, orderByTransaction) => resolve({ year, orderByTransaction })\r\n);\r\n\r\nexport const dashboardSetRequestStatusExportTopStaticDeals = createAction(\r\n 'dashboard/SET_REQUEST_STATUS_EXPORT_BWIC_TOP_STATIC_DEALS',\r\n resolve => (requestState) => resolve({ requestState })\r\n);\r\n\r\nexport const dashboardFetchTopDebutDeals = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_DEBUT_DEALS',\r\n resolve => (year) => resolve({ year })\r\n);\r\n\r\nexport const dashboardFetchTopDebutDealsResult = createAction(\r\n 'dashboard/FETCH_BWIC_TOP_DEBUT_DEALS_RESULT',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardExportTopDebutDeals = createAction(\r\n 'dashboard/EXPORT_BWIC_TOP_DEBUT_DEALS',\r\n resolve => (year, orderByTransaction) => resolve({ year, orderByTransaction })\r\n);\r\n\r\nexport const dashboardSetRequestStatusExportTopDebutDeals = createAction(\r\n 'dashboard/SET_REQUEST_STATUS_EXPORT_BWIC_TOP_DEBUT_DEALS',\r\n resolve => (requestState) => resolve({ requestState })\r\n);\r\n\r\nexport const dashboardFetchKIndicator = createAction(\r\n 'dashboard/FETCH_K_INDICATOR',\r\n resolve => (requestState, data) => resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardSetFilter = createAction(\r\n 'dashboard/SET_FILTER',\r\n resolve => (filter) => resolve({ filter })\r\n);\r\n\r\nexport const dashboardSetNotAppliedFilter = createAction(\r\n 'dashboard/SET_NOT_APPLIED_FILTER',\r\n resolve => (filter) => resolve({ filter })\r\n);\r\n\r\nexport const dashboardClearFilter = createAction(\r\n 'dashboard/CLEAR_FILTER'\r\n);\r\n\r\nexport const dashboardSetFilterActive = createAction(\r\n 'dashboard/SET_FILTER_ACTIVE',\r\n resolve => (active) => resolve({ active })\r\n);\r\n\r\nexport const dashboardResetNotAppliedFilter = createAction('dashboard/RESET_NOT_APPLIED_FILTER');\r\n\r\nexport const dashboardReset = createAction('dashboard/RESET');\r\nexport const dashboardOnSelectedSecurity = createAction('dashboard/ON_SELECTED_SECURITY');\r\n\r\nexport const dashboardSetSearchTermItem = createAction(\r\n 'dashboard/SET_SEARCH_TERM_ITEM',\r\n resolve => (text) => resolve({ text })\r\n);\r\n\r\nexport const dashboardFetchSecurityHistoryRequest = createAction('dashboard/FETCH_SECURITY_HISTORY_REQUEST');\r\n\r\nexport const dashboardFetchSecurityHistorySuccess = createAction(\r\n 'dashboard/FETCH_SECURITY_HISTORY_SUCCESS',\r\n resolve => (securityHistory) => resolve({ securityHistory })\r\n);\r\n\r\nexport const dashboardFetchSecurityHistoryFailure = createAction('dashboard/FETCH_SECURITY_HISTORY_FAILURE');\r\nexport const dashboardExportBwiStatistic = createAction('dashboard/EXPORT_BWIC_STATISTIC');\r\n\r\nexport const dashboardExportTradingStats = createAction(\r\n 'dashboard/EXPORT_TRADING_STATS',\r\n resolve => (currencies, ratings) => resolve({ currencies, ratings })\r\n);\r\n\r\nexport const dashboardSetRequestStatusExportTradingStats = createAction(\r\n 'dashboard/SET_REQUEST_STATUS_EXPORT_TRADING_STATS',\r\n resolve => (status) => resolve({ status })\r\n);\r\n\r\nexport const dashboardPushUpdateTradingStats = createAction(\r\n 'dashboard/PUSH_DATA_UPDATE_TRADING_STATS',\r\n resolve => (tradingStats) => resolve({ tradingStats })\r\n);\r\n\r\nexport const dashboardPushUpdatePriceLevel = createAction(\r\n 'dashboard/PUSH_UPDATE_PRICE_LEVEL',\r\n resolve => (priceLevel) => resolve({ priceLevel })\r\n);\r\n\r\nexport const dashboardPushBiggestMovers = createAction(\r\n 'dashboard/PUSH_UPDATE_BIGGEST_MOVERS',\r\n resolve => (biggestMovers) => resolve({ biggestMovers })\r\n)\r\n\r\nexport const dashboardPushUpdateMostTradedTickers = createAction(\r\n 'dashboard/PUSH_UPDATE_MOST_TRADED_TICKERS',\r\n resolve => (mostTradedTickers) => resolve({ mostTradedTickers })\r\n);\r\n\r\nexport const dashboardInitIssueTransactionVolume = createAction(\r\n 'dashboard/ISSUE_TRANSACTION_VOLUME_INIT',\r\n);\r\n\r\nexport const dashboardIssueTransactionVolumeRequest = createAction(\r\n 'dashboard/ISSUE_TRANSACTION_VOLUME_REQUEST',\r\n resolve => (filter) => resolve({ filter })\r\n);\r\n\r\nexport const dashboardIssueTransactionVolumeResult = createAction(\r\n 'dashboard/ISSUE_TRANSACTION_VOLUME_RESULT',\r\n resolve => (requestState, data) =>\r\n resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardUsBslEsgNewIssueRequest = createAction(\r\n 'dashboard/US_BSL_ESG_NEW_ISSUE_REQUEST',\r\n resolve => (grouping) => resolve({ grouping }),\r\n);\r\n\r\nexport const dashboardUsBslEsgNewIssueResult = createAction(\r\n 'dashboard/US_BSL_ESG_NEW_ISSUE_RESULT',\r\n resolve => (requestState, esgLanguageDeals, usBslNewIssue) =>\r\n resolve({ requestState, esgLanguageDeals, usBslNewIssue })\r\n);\r\n\r\nexport const dashboardGetPortfolioInventorySecuritiesRequest = createAction(\r\n 'dashboard/GET_PORTFOLIO_INVENTORY_SECURITIES_REQUEST',\r\n resolve => (pageNumber, itemsOnPage, sortField, sortOrder) => resolve({ pageNumber, itemsOnPage, sortField, sortOrder })\r\n)\r\n\r\nexport const dashboardGetPortfolioInventorySecuritiesSuccess = createAction(\r\n 'dashboard/GET_PORTFOLIO_INVENTORY_SECURITIES_SUCCESS',\r\n resolve => (securities, pageNumber, totalRecordNumber) => resolve({ securities, pageNumber, totalRecordNumber })\r\n)\r\n\r\nexport const dashboardGetPortfolioInventorySecuritiesFailure = createAction(\r\n 'dashboard/GET_PORTFOLIO_INVENTORY_SECURITIES_FAILURE'\r\n)\r\n\r\nexport const dashboardSetPortfolioInventoryCurrentPage = createAction(\r\n 'dashboard/SET_PORTFOLIO_INVENTORY_CURRENT_PAGE',\r\n resolve => (currentPage) => resolve({ currentPage })\r\n)\r\n\r\nexport const dashboardPortfolioInventorySortParamsChanged = createAction(\r\n 'dashboard/PORTFOLIO_INVENTORY_SORT_PARAMS_CHANGED',\r\n resolve => (sortField, sortOrder) => resolve({ sortField, sortOrder })\r\n)\r\n\r\nexport const dashboardPortfolioInventoryReset = createAction('dashboard/PORTFOLIO_INVENTORY_RESET')\r\n\r\nexport const dashboardUsBslEuCompliantDealsRequest = createAction(\r\n 'dashboard/US_BSL_ESG_EU_COMPLIANT_DEALS_REQUEST',\r\n resolve => (filter) => resolve(filter),\r\n);\r\n\r\nexport const dashboardUsBslEuCompliantDealsResult = createAction(\r\n 'dashboard/US_BSL_ESG_EU_COMPLIANT_DEALS_RESPONSE',\r\n resolve => (requestState, usBslEuCompliantDeals, usBslDeals) =>\r\n resolve({ requestState, usBslEuCompliantDeals, usBslDeals })\r\n);\r\n\r\nexport const dashboardShortLongDatedDealsRequest = createAction(\r\n 'dashboard/SHORT_LONG_DATED_DEALS_REQUEST',\r\n resolve => (filter, managerReferenceName, startDate) => resolve({ filter, managerReferenceName, startDate }),\r\n);\r\n\r\nexport const dashboardShortLongDatedDealsResult = createAction(\r\n 'dashboard/SHORT_LONG_DATED_DEALS_RESPONSE',\r\n resolve => (requestState, data) =>\r\n resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboardIssuanceSpreadRequest = createAction(\r\n 'dashboard/ISSUANCE_SPREAD_REQUEST',\r\n resolve => (filter, managerReferenceName, startDate) => resolve({ filter, managerReferenceName, startDate }),\r\n);\r\n\r\nexport const dashboardIssuanceSpreadResult = createAction(\r\n 'dashboard/ISSUANCE_SPREAD_RESPONSE',\r\n resolve => (requestState, data) =>\r\n resolve({ requestState, data })\r\n);\r\n\r\nexport const dashboarNewIssuedWeeklySpreadsRequest = createAction(\r\n 'dashboard/NEW_ISSUE_WEEKLY_SPREADS_REQUEST'\r\n);\r\n\r\nexport const dashboardNewIssueWeeklySpreadsResult = createAction(\r\n 'dashboard/NEW_ISSUE_WEEKLY_SPREADS_RESPONSE',\r\n resolve => (requestState, data) =>\r\n resolve({ requestState, data })\r\n);\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { BidCompanyIdentifier } from \"../types/bidding/BidCompanyIdentifier\";\r\nimport { BidderCompanySlim } from \"../types/company/BidderCompanySlim\";\r\n\r\nconst show = createAction('dealerListPanel/SHOW');\r\nconst hide = createAction('dealerListPanel/HIDE');\r\nconst toggleCompanyVisible = createAction(\r\n 'dealerListPanel/TOGGLE_COMPANY_VISIBLE',\r\n resolve => (identifier: BidCompanyIdentifier, setLastSelectedCompanyIdentifier?: boolean) => resolve({ identifier, setLastSelectedCompanyIdentifier })\r\n);\r\nconst toggleAllFavoriteCompaniesVisible = createAction(\r\n 'dealerListPanel/TOGGLE_ALL_FAVORITE_COMPANIES_VISIBLE',\r\n resolve => (companies: BidderCompanySlim[]) => resolve({ companies })\r\n);\r\nconst toggleAllPlatformVisible = createAction(\r\n 'dealerListPanel/TOGGLE_ALL_PLATFORM_VISIBLE',\r\n resolve => (companies: BidderCompanySlim[], visible?: boolean) => resolve({ companies, visible })\r\n);\r\nconst toggleAllOffPlatformVisible = createAction(\r\n 'dealerListPanel/TOGGLE_ALL_OFF_PLATFORM_VISIBLE',\r\n resolve => (companies: BidderCompanySlim[], visible?: boolean) => resolve({ companies, visible })\r\n);\r\nconst toggleAllSettlmentsClientsVisible = createAction(\r\n 'dealerListPanel/TOGGLE_ALL_SETTLMENTS_CLIENTS_VISIBLE',\r\n resolve => (companies: BidderCompanySlim[], visible?: boolean) => resolve({ companies, visible })\r\n);\r\nconst toggleAllFavoriteVisibleFlagOnly = createAction('dealerListPanel/TOGGLE_ALL_FAVORITE_VISIBLE_FLAG_ONLY');\r\nconst toggleAllPlatformVisibleFlagOnly = createAction('dealerListPanel/TOGGLE_ALL_PLATFORM_VISIBLE_FLAG_ONLY');\r\nconst toggleAllSettlmentsClientsFlagOnly = createAction('dealerListPanel/TOGGLE_ALL_SETTLMENTS_CLIENTS_FLAG_ONLY');\r\nconst toggleAllOffPlatformVisibleFlagOnly = createAction('dealerListPanel/TOGGLE_ALL_OFF_PLATFORM_VISIBLE_FLAG_ONLY');\r\nconst setDefaultVisibility = createAction(\r\n 'dealerListPanel/SET_DEFAULTS',\r\n resolve => (companiesToHide: BidderCompanySlim[]) => resolve({ companiesToHide })\r\n);\r\nconst setDisabledCompanies = createAction(\r\n 'dealerListPanel/SET_DISABLED_COMPANIES',\r\n resolve => (disabledCompanies: BidderCompanySlim[]) => resolve({ disabledCompanies })\r\n);\r\nconst setBidOnlyFlag = createAction(\r\n 'dealerListPanel/SET_BID_ONLY_FLAG',\r\n resolve => (bidOnlyFlag: boolean) => resolve({ bidOnlyFlag })\r\n);\r\nconst stage2ParticipantsFlagChange = createAction('dealerListPanel/STAGE_2_PARTICIPANTS_FLAG_CHANGE',\r\n resolve => (isStage2participantsOnly: boolean, showAllEnabled?: boolean) => resolve({ isStage2participantsOnly, showAllEnabled })\r\n);\r\nconst showBwicParticipantsOnly = createAction('dealerListPanel/SHOW_BWIC_PARTICIPANTS_ONLY')\r\nconst reset = createAction('dealerListPanel/RESET');\r\n\r\nexport const dealerListPanelActions = {\r\n show,\r\n hide,\r\n toggleCompanyVisible,\r\n toggleAllFavoriteCompaniesVisible,\r\n toggleAllPlatformVisible,\r\n toggleAllOffPlatformVisible,\r\n toggleAllFavoriteVisibleFlagOnly,\r\n toggleAllPlatformVisibleFlagOnly,\r\n toggleAllSettlmentsClientsFlagOnly,\r\n toggleAllOffPlatformVisibleFlagOnly,\r\n toggleAllSettlmentsClientsVisible,\r\n setDefaultVisibility,\r\n setDisabledCompanies,\r\n reset,\r\n setBidOnlyFlag,\r\n stage2ParticipantsFlagChange,\r\n showBwicParticipantsOnly\r\n};\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { Contact } from '../types/company/Contact';\r\nimport { SaveContactModel } from '../types/company/Contact';\r\n\r\nconst setDealerExpanded = createAction(\r\n 'dealer-list/SET_DEALER_EXPANDED',\r\n resolve => (dealerId: number) => resolve({ dealerId })\r\n);\r\nconst expandDealers = createAction(\r\n 'dealer-list/SET_DEALER_EXPANDED_ALL',\r\n resolve => (dealers: { [key: number]: boolean }, expandedAll: boolean) => resolve({ dealers, expandedAll })\r\n);\r\nconst toggleExpandedAllDealers = createAction('dealer-list/TOGGLE_EXPAND_ALL_DEALERS');\r\nconst setExpandAllDealers = createAction('dealer-list/SET_EXPAND_ALL_DEALERS',\r\n resolve => (expandedAll: boolean) => resolve(expandedAll)\r\n);\r\nconst setEditableContact = createAction(\r\n 'dealer-list/SET_EDITABLE_CONTACT',\r\n resolve => (contact: Contact, dealerName?: string) => resolve({ contact, dealerName })\r\n);\r\nconst editableContactUpdateDealer = createAction(\r\n 'dealer-list/EDITABLE_CONTACT_UPDATE_DEALER',\r\n resolve => (dealerName: string) => resolve({ dealerName })\r\n);\r\nconst editableContactSave = createAction(\r\n 'dealer-list/EDITABLE_CONTACT_SAVE',\r\n resolve => (contact: SaveContactModel) => resolve({ contact })\r\n);\r\nconst editableContactSetRequestStatus = createAction(\r\n 'dealer-list/EDITABLE_CONTACT_SET_REQUEST_STATUS',\r\n resolve => (requestStatus: boolean) => resolve({ requestStatus })\r\n);\r\nconst deleteContact = createAction(\r\n 'dealer-list/DELETE_CONTACT',\r\n resolve => (contactId: number) => resolve({ contactId })\r\n);\r\nconst contactInviteToJoin = createAction(\r\n 'dealer-list/CONTACT_INVITE_TO_JOIN',\r\n resolve => (contactId: number) => resolve({ contactId })\r\n);\r\nconst distributionListInviteToJoin = createAction(\r\n 'dealer-list/DISTRIBUTION_LIST_INVITE_TO_JOIN',\r\n resolve => (dealerId: number) => resolve({ dealerId })\r\n);\r\nconst headOfTradingInviteToJoin = createAction(\r\n 'dealer-list/HEAD_OF_TRADING_INVITE_TO_JOIN',\r\n resolve => (dealerId: number) => resolve({ dealerId })\r\n);\r\nconst contactInviteToJoinSetRequestStatus = createAction(\r\n 'dealer-list/CONTACT_INVITE_TO_JOIN_SET_REQUEST_STATUS',\r\n resolve => (contactId: number, requestStatus: boolean) => resolve({ contactId, requestStatus })\r\n);\r\nconst resetEditableContact = createAction('dealer-list/RESET_EDITABLE_CONTACT');\r\nconst reset = createAction('dealer-list/RESET');\r\n\r\nexport const dealerListActions = {\r\n setDealerExpanded,\r\n expandDealers,\r\n toggleExpandedAllDealers,\r\n setExpandAllDealers,\r\n setEditableContact,\r\n editableContactUpdateDealer,\r\n editableContactSave,\r\n editableContactSetRequestStatus,\r\n resetEditableContact,\r\n deleteContact,\r\n contactInviteToJoin,\r\n distributionListInviteToJoin,\r\n headOfTradingInviteToJoin,\r\n contactInviteToJoinSetRequestStatus,\r\n reset\r\n};\r\n","import { createAction, ActionType } from 'typesafe-actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { Deal, DealShortInfo } from '../types/amr-pipeline/models/Deal';\r\nimport { DealDetails } from '../types/amr-pipeline/models/DealDetails';\r\nimport { DealSave } from '../types/deals/DealSave';\r\nimport { Tranche } from '../types/amr-pipeline/models/Tranche';\r\nimport { Security } from '../types/security/Security';\r\nimport { SecurityBwicStatisticsSummary } from '../types/security/SecurityBwicStatisticsSummary';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { AnyAction } from 'redux-saga';\r\nimport { GridDataItem } from '../types/state/GridState';\r\nimport { gridActions } from '.';\r\nimport { clone, isNil } from 'lodash';\r\nimport { TrancheStatus } from '../types/amr-pipeline/enums/TrancheStatus';\r\nimport { SettlementInstructions } from '../types/amr-pipeline/models/SettlementInstructions';\r\nimport { AmrClass } from '../types/amr-pipeline/models/AmrClass';\r\nimport { AmrInfoSaveForm } from '../types/deals/AmrInfoSaveForm';\r\nimport { amrFormatUtils, formatUtils } from '../utils';\r\nimport { Rating } from '../types/enums/Rating';\r\nimport { DealDocumentsWithPattern } from '../types/amr-pipeline/models/DealDocumentsWithPattern';\r\n\r\nconst getDeals = createAction('deals/get/REQUEST', resolve => (searchTerm?: string) => resolve({ searchTerm }));\r\n\r\nconst getDealsResult = createAction(\r\n 'deals/get/REQUEST_RESULT',\r\n resolve => (deals: DealShortInfo[]) => resolve({ deals }),\r\n);\r\n\r\nconst getDealDetails = createAction(\r\n 'deals/getOne/REQUEST',\r\n resolve => (referenceName: string) => resolve({ referenceName }),\r\n);\r\n\r\nconst getDealDetailsResult = createAction(\r\n 'deals/getOne/REQUEST_RESULT',\r\n resolve => (referenceName: string, dealDetails: DealDetails) =>\r\n resolve({\r\n referenceName,\r\n dealDetails,\r\n }),\r\n);\r\n\r\nconst getClassSecondaryInfo = createAction(\r\n 'deals/GET_CLASS_SECONDARY_INFO',\r\n resolve => (selectedClass: Tranche) => resolve({ selectedClass }),\r\n);\r\n\r\nconst getClassSecondaryInfoResult = createAction(\r\n 'deals/GET_CLASS_SECONDARY_INFO_RESULT',\r\n resolve => (security?: Security, securityStatistics?: SecurityBwicStatisticsSummary) =>\r\n resolve({ security, securityStatistics }),\r\n);\r\n\r\nconst resetDeals = createAction('deals/RESET_DEALS');\r\n\r\nconst editDeal = createAction('deals/EDIT');\r\nconst editDealReset = createAction('deals/EDIT_RESET');\r\n\r\nconst updateDeal = createAction(\r\n 'deals/update/REQUEST',\r\n resolve => (referenceName: string, formData: DealSave) =>\r\n resolve({\r\n referenceName,\r\n formData,\r\n }),\r\n);\r\n\r\nconst updateDealResult = createAction(\r\n 'deals/update/RESULT',\r\n resolve => (requestState: RequestState) =>\r\n resolve({\r\n requestState,\r\n }),\r\n);\r\n\r\nconst deleteDealRequest = createAction(\r\n 'deals/delete/REQUEST',\r\n resolve => (referenceName: string) => resolve({ referenceName }),\r\n);\r\n\r\nconst deleteDealResult = createAction(\r\n 'deals/delete/RESULT',\r\n resolve => (requestState: RequestState, referenceName: string) =>\r\n resolve({\r\n requestState,\r\n referenceName,\r\n }),\r\n);\r\n\r\nconst allClassesEdit = createAction('deals/allClasses/edit', resolve => (classes: Tranche[]) => resolve({ classes }));\r\n\r\nconst allClassesEditInit = createAction('deals/allClasses/edit/init', resolve => (deal: Deal) => resolve({ deal }));\r\n\r\nconst allClassesUpdate = createAction(\r\n 'deals/allClasses/update/REQUEST',\r\n resolve => (dealReferenceName: string) => resolve({ dealReferenceName }),\r\n);\r\n\r\nconst allClassesUpdateResponse = createAction('deals/allClasses/update/RESPONSE');\r\n\r\nconst allClassesCacheTranche = createAction(\r\n 'deals/allClasses/edit/CACHE_TRANCHE',\r\n resolve => (rowIndex: number, tranche: Tranche) => resolve({ rowIndex, tranche }),\r\n);\r\n\r\nconst allClassesInvalidateTranceCache = createAction(\r\n 'deals/allClasses/edit/INVALIDATE_TRANCHE_CACHE',\r\n resolve => (rowIndex?: number) => resolve({ rowIndex }),\r\n);\r\n\r\nconst updateGridRow = (rowIndex: number, tranche: Tranche) => {\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n dispatch(gridActions.deleteRow(rowIndex));\r\n dispatch(gridActions.insertDataItems([tranche], rowIndex));\r\n };\r\n};\r\n\r\nconst allClassesUpdateTickers = (rowIndex: number) => {\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n const dataItems: GridDataItem[] = getState().grid.dataItems;\r\n const selectedDeal = getState().deals.selectedDeal;\r\n const dataItem = dataItems[rowIndex];\r\n\r\n if (isNil(dataItem) || isNil(selectedDeal)) {\r\n return;\r\n }\r\n\r\n const updatedDataItem = {\r\n ...dataItem,\r\n ticker144A: formatUtils.formatTickerRule144a(selectedDeal.ticker, dataItem.name, dataItem.rating as Rating),\r\n tickerRegS: formatUtils.formatTickerRuleRegS(selectedDeal.ticker, dataItem.name, dataItem.rating as Rating),\r\n tickerAccdInvCertif: formatUtils.formatTickerRuleAccInvCertif(selectedDeal.ticker, dataItem.name, dataItem.rating as Rating),\r\n }\r\n\r\n dispatch(updateGridRow(rowIndex, updatedDataItem));\r\n dispatch(allClassesInvalidateTranceCache(rowIndex));\r\n };\r\n}\r\n\r\nconst allClassesUpdateStatus = (rowIndex: number) => {\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n const dataItems: GridDataItem[] = getState().grid.dataItems;\r\n\r\n if (isNil(dataItems[rowIndex])) {\r\n return;\r\n }\r\n\r\n const dataItem = clone(dataItems[rowIndex]);\r\n\r\n if (dataItem.status === TrancheStatus.Inactive) {\r\n dispatch(allClassesCacheTranche(rowIndex, dataItem));\r\n\r\n const updatedTranche: Tranche = {\r\n ...dataItem,\r\n balance: 0,\r\n margin: 0,\r\n redeemed: true,\r\n floaterIndex: undefined,\r\n coupon: undefined,\r\n ratingDbrs: undefined,\r\n ratingFitch: undefined,\r\n ratingKbra: undefined,\r\n ratingMoodys: undefined,\r\n ratingSnP: undefined,\r\n };\r\n\r\n dispatch(updateGridRow(rowIndex, updatedTranche));\r\n } else {\r\n const { hasHistoryData } = dataItem;\r\n let updatedTranche: Tranche;\r\n\r\n if (hasHistoryData) {\r\n const {\r\n historyBalance,\r\n historyMargin,\r\n historyFloaterIndex,\r\n historyRatingDbrs,\r\n historyRatingFitch,\r\n historyRatingKbra,\r\n historyRatingMoodys,\r\n historyRatingSnP,\r\n } = dataItem;\r\n\r\n updatedTranche = {\r\n ...dataItem,\r\n balance: historyBalance,\r\n margin: historyMargin,\r\n floaterIndex: historyFloaterIndex,\r\n ratingDbrs: historyRatingDbrs,\r\n ratingFitch: historyRatingFitch,\r\n ratingKbra: historyRatingKbra,\r\n ratingMoodys: historyRatingMoodys,\r\n ratingSnP: historyRatingSnP,\r\n ...(dataItem.status === TrancheStatus.Active && {\r\n redeemed: false,\r\n }),\r\n };\r\n } else {\r\n const cachedItem = getState().deals.allClasses.cachedInactiveClasses[rowIndex];\r\n\r\n if (!cachedItem && dataItem.status === TrancheStatus.Draft) {\r\n return;\r\n }\r\n\r\n let cachedData;\r\n\r\n if (cachedItem) {\r\n const {\r\n balance,\r\n margin,\r\n redeemed,\r\n floaterIndex,\r\n coupon,\r\n ratingDbrs,\r\n ratingFitch,\r\n ratingKbra,\r\n ratingMoodys,\r\n ratingSnP,\r\n } = cachedItem;\r\n\r\n cachedData = {\r\n balance,\r\n margin,\r\n redeemed,\r\n floaterIndex,\r\n coupon,\r\n ratingDbrs,\r\n ratingFitch,\r\n ratingKbra,\r\n ratingMoodys,\r\n ratingSnP,\r\n };\r\n }\r\n\r\n updatedTranche = {\r\n ...dataItem,\r\n ...cachedData,\r\n ...(dataItem.status === TrancheStatus.Active && {\r\n redeemed: false,\r\n }),\r\n };\r\n }\r\n\r\n dispatch(updateGridRow(rowIndex, updatedTranche));\r\n dispatch(allClassesInvalidateTranceCache(rowIndex));\r\n }\r\n };\r\n};\r\n\r\nconst allClassesUpdateCoupon = (rowIndex: number) => {\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n const dataItems: GridDataItem[] = getState().grid.dataItems;\r\n\r\n if (isNil(dataItems[rowIndex])) {\r\n return;\r\n }\r\n\r\n const dataItem = clone(dataItems[rowIndex]);\r\n const { floaterIndex, margin } = dataItem;\r\n\r\n const updatedTrahcne: Tranche = {\r\n ...dataItem,\r\n coupon: amrFormatUtils.formatInventoryCoupon(floaterIndex, margin),\r\n };\r\n\r\n dispatch(updateGridRow(rowIndex, updatedTrahcne));\r\n };\r\n};\r\n\r\nconst updateDealDocuments = createAction(\r\n 'deals/documents/update/REQUEST',\r\n resolve => (referenceName: string, documentsWithPattern: DealDocumentsWithPattern) =>\r\n resolve({\r\n referenceName,\r\n documentsWithPattern,\r\n }),\r\n);\r\n\r\nconst updateDealDocumentsResult = createAction(\r\n 'deals/documents/update/RESULT',\r\n resolve => (requestState: RequestState) =>\r\n resolve({\r\n requestState,\r\n }),\r\n);\r\n\r\nconst amrInfoClassesEdit = createAction('deals/amrInfo/edit', resolve => (classes: AmrClass[]) => resolve({ classes }));\r\n\r\nconst amrInfoSave = createAction(\r\n 'deals/amrInfo/save',\r\n resolve => (dealReferenceName: string, transactionReferenceName: string, amrInfo: AmrInfoSaveForm) =>\r\n resolve({ dealReferenceName, transactionReferenceName, amrInfo }),\r\n);\r\n\r\nconst saveAmrInfoResponse = createAction('deals/amrInfo/save/RESPONSE');\r\nconst deleteAmrTransaction = createAction(\r\n 'deals/amrInfo/delete',\r\n resolve => (dealReferenceName: string, transactionReferenceName: string) =>\r\n resolve({ dealReferenceName, transactionReferenceName }),\r\n);\r\n\r\nconst saveExcludedDealersRequest = createAction(\r\n 'deals/saveExcludedDealers/REQUEST',\r\n resolve =>\r\n (\r\n dealReferenceName: string,\r\n transactionReferenceName: string,\r\n classReferenceName: string,\r\n excludedDealersReferenceNames: string[],\r\n ) =>\r\n resolve({ dealReferenceName, transactionReferenceName, classReferenceName, excludedDealersReferenceNames }),\r\n);\r\n\r\nconst saveExcludedDealersResponse = createAction('deals/saveExcludedDealers/RESPONSE');\r\n\r\nconst saveSettlementInstructionsRequest = createAction(\r\n 'deals/saveSettlementInstructions/REQUEST',\r\n resolve =>\r\n (dealReferenceName: string, classReferenceName: string, settlementInstructions: SettlementInstructions) =>\r\n resolve({ dealReferenceName, classReferenceName, settlementInstructions }),\r\n);\r\n\r\nconst saveSettlementInstructionsResponse = createAction('deals/saveSettlementInstructions/RESPONSE');\r\n\r\nconst exportSettlementInstructions = createAction(\r\n 'deals/exportSettlementInstructions/REQUEST',\r\n resolve =>\r\n (\r\n dealReferenceName: string,\r\n dealLegalName: string,\r\n transactionReferenceName: string,\r\n classReferenceName: string,\r\n classLegalName: string,\r\n ) =>\r\n resolve({ dealReferenceName, dealLegalName, transactionReferenceName, classReferenceName, classLegalName }),\r\n);\r\n\r\nconst openFigiErrorTickersResponse = createAction(\r\n 'deals/openFigiErrorTickers/RESPONSE',\r\n resolve => (errorTickers: string[]) => resolve({ errorTickers }),\r\n)\r\n\r\nconst reset = createAction('deals/RESET');\r\n\r\nexport type TDealsActions = ActionType<(typeof dealsActions)[keyof typeof dealsActions]>;\r\n\r\nexport const dealsActions = {\r\n getDeals,\r\n getDealsResult,\r\n getDealDetails,\r\n resetDeals,\r\n getDealDetailsResult,\r\n getClassSecondaryInfo,\r\n getClassSecondaryInfoResult,\r\n editDeal,\r\n editDealReset,\r\n updateDeal,\r\n updateDealResult,\r\n deleteDealRequest,\r\n deleteDealResult,\r\n allClassesEdit,\r\n allClassesEditInit,\r\n allClassesUpdate,\r\n allClassesUpdateResponse,\r\n allClassesCacheTranche,\r\n allClassesInvalidateTranceCache,\r\n allClassesUpdateStatus,\r\n allClassesUpdateCoupon,\r\n allClassesUpdateTickers,\r\n updateDealDocuments,\r\n updateDealDocumentsResult,\r\n saveExcludedDealersRequest,\r\n saveExcludedDealersResponse,\r\n saveSettlementInstructionsResponse,\r\n saveSettlementInstructionsRequest,\r\n amrInfoClassesEdit,\r\n amrInfoSave,\r\n saveAmrInfoResponse,\r\n deleteAmrTransaction,\r\n exportSettlementInstructions,\r\n openFigiErrorTickersResponse,\r\n reset,\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\n\r\nconst confirmRequest = createAction(\r\n 'directBiddingDisclaimer/CONFIRM_REQUEST',\r\n resolve => (onConfirm?: () => void) => resolve({ onConfirm })\r\n);\r\nconst confirmSuccess = createAction('directBiddingDisclaimer/CONFIRM_SUCCESS');\r\nconst confirmFailure = createAction('directBiddingDisclaimer/CONFIRM_FAILURE');\r\n\r\nconst downloadPdfRequest = createAction('directBiddingDisclaimer/DOWNLOAD_PDF_REQUEST');\r\nconst downloadPdfSuccess = createAction('directBiddingDisclaimer/DOWNLOAD_PDF_SUCCESS');\r\nconst downloadPdfFailure = createAction('directBiddingDisclaimer/DOWNLOAD_PDF_FAILURE');\r\n\r\nconst show = createAction(\r\n 'directBiddingDisclaimer/SHOW',\r\n resolve => (blockerId: string) => resolve({ blockerId })\r\n);\r\nconst hide = createAction(\r\n 'directBiddingDisclaimer/HIDE',\r\n resolve => (confirmed: boolean) => resolve({ confirmed })\r\n);\r\n\r\nconst reset = createAction('directBiddingDisclaimer/RESET');\r\n\r\nexport const directBiddingDisclaimerActions = {\r\n show,\r\n hide,\r\n confirmRequest,\r\n confirmSuccess,\r\n confirmFailure,\r\n downloadPdfRequest,\r\n downloadPdfSuccess,\r\n downloadPdfFailure,\r\n reset\r\n};\r\n","import { ActionType, createAction } from \"typesafe-actions\";\r\nimport { News } from \"../types/news/News\";\r\nimport { Company } from \"../types/amr-pipeline/models/Company\";\r\n\r\nconst init = createAction(\r\n \"editNews/init/REQUEST\",\r\n (resolve) => (initialReferenceName?: string) =>\r\n resolve({ initialReferenceName })\r\n);\r\n\r\nconst getInitResult = createAction(\r\n \"editNews/init/REQUEST_RESULT\",\r\n (resolve) =>\r\n (newsList: News[], managers: Company[], arrangers: Company[]) =>\r\n resolve({ newsList, managers, arrangers })\r\n);\r\n\r\nconst getTotalCountResult = createAction(\r\n \"editNews/getTotalCount/REQUEST_RESULT\",\r\n (resolve) => (totalCount: number) => resolve({ totalCount })\r\n);\r\n\r\nconst loadMoreNewsList = createAction(\r\n \"editNews/getList/REQUEST\",\r\n (resolve) => (searchTerm?: string) => resolve({ searchTerm })\r\n);\r\n\r\nconst loadMoreNewsListResult = createAction(\r\n \"editNews/getList/REQUEST_RESULT\",\r\n (resolve) => (newsList: News[]) => resolve({ newsList })\r\n);\r\n\r\nconst searchNewsList = createAction(\r\n \"editNews/searchList/REQUEST\",\r\n (resolve) => (searchTerm: string) => resolve({ searchTerm })\r\n);\r\n\r\nconst searchNewsListResult = createAction(\r\n \"editNews/searchList/REQUEST_RESULT\",\r\n (resolve) => (newsList: News[]) => resolve({ newsList })\r\n);\r\n\r\nconst setInitialNews = createAction(\r\n \"editNews/setInitial/STATE\",\r\n (resolve) => (initialNews?: News) => resolve({ initialNews })\r\n);\r\n\r\nconst updateNewsList = createAction(\r\n \"editNews/updateList/STATE\",\r\n (resolve) => (newsList: News[]) => resolve({ newsList })\r\n);\r\n\r\nconst setSearchTerm = createAction(\r\n \"editNews/setSearchTerm/STATE\",\r\n (resolve) => (searchTerm: string) => resolve({ searchTerm })\r\n);\r\n\r\nconst getNewsDetails = createAction(\r\n \"editNews/getOne/REQUEST\",\r\n (resolve) => (referenceName: string) => resolve({ referenceName })\r\n);\r\n\r\nconst getNewsDetailsResult = createAction(\r\n \"editNews/getOne/REQUEST_RESULT\",\r\n (resolve) => (newsData: News) => resolve({ newsData })\r\n);\r\n\r\nconst createOrUpdateNews = createAction(\r\n \"editNews/createOrUpdate/REQUEST\",\r\n (resolve) => (newsData: News) => resolve({ newsData })\r\n);\r\n\r\nconst deleteNews = createAction(\r\n \"editNews/delete/REQUEST\",\r\n (resolve) => (referenceName: string) => resolve({ referenceName })\r\n);\r\n\r\nconst resetNewsDetails = createAction(\"editNews/newsDetails/RESET\");\r\n\r\nconst reset = createAction(\"editNews/RESET\");\r\n\r\nexport type TEditNewsActions = ActionType<\r\n (typeof editNewsActions)[keyof typeof editNewsActions]\r\n>;\r\n\r\nexport const editNewsActions = {\r\n init,\r\n getInitResult,\r\n getTotalCountResult,\r\n loadMoreNewsList,\r\n loadMoreNewsListResult,\r\n searchNewsList,\r\n searchNewsListResult,\r\n getNewsDetails,\r\n getNewsDetailsResult,\r\n createOrUpdateNews,\r\n setInitialNews,\r\n updateNewsList,\r\n setSearchTerm,\r\n deleteNews,\r\n resetNewsDetails,\r\n reset,\r\n};\r\n","import {\r\n companyRoles,\r\n constants,\r\n editCompanyActions as actionTypes,\r\n errorMessages,\r\n RegistrationType,\r\n} from '../constants';\r\nimport { errorActions } from '.';\r\nimport { companiesService, locationService, salesRepresentativesService } from '../services';\r\n\r\nexport const editCompanyActions = {\r\n init,\r\n reset,\r\n save,\r\n loadCities,\r\n};\r\n\r\nfunction init(referenceName) {\r\n return async dispatch => {\r\n try {\r\n dispatch(setLoadingCompanyStatus(true));\r\n const companyPromise = referenceName != null\r\n ? companiesService.getCompany(referenceName)\r\n : new Promise(resolve => resolve(undefined));\r\n const countriesPromise = locationService.getCountries();\r\n const statesPromise = locationService.getStates(constants.USCountryCode);\r\n const salesRepresentativesPromise = salesRepresentativesService.getList();\r\n\r\n const company = await companyPromise;\r\n const countries = await countriesPromise;\r\n const states = await statesPromise;\r\n const salesRepresentatives = await salesRepresentativesPromise;\r\n\r\n dispatch(loadCountries(countries));\r\n dispatch(loadStates(states));\r\n dispatch(storeSalesRepresentatives(salesRepresentatives.map(s => (\r\n { ...s, selected: company && company.salesRepresentatives.some(с => с.id === s.id) })))\r\n );\r\n\r\n if (referenceName != null && company) {\r\n if (!company.id) {\r\n throw new Error({ status: 404, message: 'Company not found' });\r\n }\r\n if (company.countryCode === constants.USCountryCode) {\r\n dispatch(loadCities(company.stateId));\r\n }\r\n company.registrationType = company.manualRegistration ? RegistrationType.manual : RegistrationType.sendLink;\r\n if (company.mpid) {\r\n company.mpid = company.mpid.trim();\r\n }\r\n if (company.headOfTrading == null) {\r\n company.headOfTrading = {}\r\n }\r\n }\r\n dispatch(loadCompany(company));\r\n }\r\n catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n finally {\r\n dispatch(setLoadingCompanyStatus(false));\r\n }\r\n };\r\n}\r\n\r\nfunction storeSalesRepresentatives(salesRepresentatives) {\r\n return {\r\n type: actionTypes.SALES_REPRESENTATIVES,\r\n salesRepresentatives\r\n }\r\n}\r\n\r\nfunction loadCities(stateId) {\r\n return dispatch => {\r\n if (stateId) {\r\n locationService\r\n .getCities(stateId)\r\n .then(\r\n cities => dispatch({ type: actionTypes.CITIES, cities }),\r\n e => dispatch(errorActions.error(e))\r\n );\r\n } else {\r\n dispatch({ type: actionTypes.CITIES, cities: [] });\r\n }\r\n };\r\n}\r\n\r\nfunction loadStates(states) {\r\n return {\r\n type: actionTypes.STATES,\r\n states\r\n };\r\n}\r\n\r\nfunction loadCountries(countries) {\r\n return {\r\n type: actionTypes.COUNTRIES,\r\n countries\r\n };\r\n}\r\n\r\nfunction loadCompany(company) {\r\n return { type: actionTypes.COMPANY, company };\r\n}\r\n\r\nfunction save(values) {\r\n return async (dispatch, getState) => {\r\n dispatch(saving(true));\r\n\r\n const { salesRepresentatives, company } = getState().editCompany;\r\n const isBrokerDealer = values.role === companyRoles.BrokerDealer;\r\n const model = {\r\n id: values.id,\r\n name: values.name.trim(),\r\n phone: values.phone ? values.phone.trim() : null,\r\n website: values.website ? values.website.trim() : null,\r\n countryCode: values.countryCode,\r\n stateId: values.stateId,\r\n state: values.stateId ? null : values.state.trim(),\r\n cityId: values.cityId,\r\n city: values.cityId ? null : values.city.trim(),\r\n zipCode: values.zipCode ? values.zipCode.trim() : '',\r\n address: values.address.trim(),\r\n role: values.role,\r\n code: values.code ? values.code.trim().toUpperCase() : '',\r\n distributionList: isBrokerDealer && values.distributionList ? values.distributionList.trim() : null,\r\n mpid: isBrokerDealer && values.mpid ? values.mpid.trim().toUpperCase() : null,\r\n manualRegistration: company ? company.registrationType === RegistrationType.manual : true,\r\n headOfTrading: {\r\n firstName: values.headOfTradingFirstName,\r\n lastName: values.headOfTradingLastName,\r\n email: values.headOfTradingEmail,\r\n office: values.headOfTradingOffice ? values.headOfTradingOffice.trim() : null,\r\n mobile: values.headOfTradingMobile ? values.headOfTradingMobile.trim() : null,\r\n }\r\n };\r\n\r\n const salesRepresentativesToAssign = salesRepresentatives\r\n .filter(s => values.salesRepresentatives.some(v => v === s.id) && (company ? !company.salesRepresentatives.some(c => c.id === s.id) : true))\r\n .map(s => s.id);\r\n const salesRepresentativesToUnassign = salesRepresentatives\r\n .filter(s => !values.salesRepresentatives.some(v => v === s.id) && company && company.salesRepresentatives.some(c => c.id === s.id))\r\n .map(s => s.id);\r\n\r\n try {\r\n const companyId = await companiesService.save(model);\r\n\r\n const assignPromise = salesRepresentativesToAssign.length\r\n ? salesRepresentativesService.assign({ companyId, representativeUserIdList: salesRepresentativesToAssign })\r\n : Promise.resolve();\r\n\r\n const unassignPromise = salesRepresentativesToUnassign.length\r\n ? salesRepresentativesService.unassign({ companyId, representativeUserIdList: salesRepresentativesToUnassign })\r\n : Promise.resolve();\r\n\r\n await assignPromise;\r\n await unassignPromise;\r\n\r\n dispatch(saved());\r\n } catch (e) {\r\n dispatch(errorActions.error(\r\n e,\r\n errorMessages.unexpectedError,\r\n errorMessages.companyInformationCanNotBeChanged\r\n ));\r\n } finally {\r\n dispatch(saving(false))\r\n }\r\n };\r\n}\r\n\r\nfunction setLoadingCompanyStatus(status) {\r\n return {\r\n type: actionTypes.EDIT_COMPANY_LOADING_STATUS,\r\n payload: { status }\r\n }\r\n}\r\n\r\nfunction saving(isSaving) {\r\n return {\r\n type: actionTypes.SAVING,\r\n isSaving\r\n };\r\n}\r\n\r\nfunction saved() {\r\n return {\r\n type: actionTypes.SAVED,\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RESET });\r\n dispatch(errorActions.resetError());\r\n };\r\n}\r\n","import moment from 'moment';\r\nimport {\r\n editParsedBwicActions as actionTypes,\r\n errorMessages,\r\n routes,\r\n gridColumns,\r\n\r\n constants\r\n} from '../constants';\r\nimport { parsedBwicsService, daysService, bwicService } from '../services';\r\nimport { errorActions, notificationActions, securitiesActions } from '.';\r\nimport { dateTimeUtils, numericUtils } from '../utils';\r\nimport { history } from '../history';\r\nimport { gridActions } from './grid.actions';\r\nimport { priceTalksActions } from './price-talks.actions';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { values } from 'lodash';\r\nimport { Stage2Participants } from '../types/models/ParsedBwicProcess';\r\n\r\nexport const editParsedBwicActions = {\r\n init,\r\n reset,\r\n changeDate,\r\n changeDaysToSettle,\r\n changeTimeZone,\r\n changeBidsDueTime,\r\n changeGoodUntilTime,\r\n changeCustomRules,\r\n changeReserveLevelsApply,\r\n changeCanTradeEarly,\r\n changeCanBidEarly,\r\n changePartialBidsAccepted,\r\n changeBwicProcessType,\r\n changeHardCutOffNumber,\r\n changeStage1EndTime,\r\n changeStage2EndTime,\r\n changeBidsGoodForHours,\r\n changeBidsGoodForMinutes,\r\n changeStage2Participants,\r\n showManageParsedBwics,\r\n save,\r\n saveAndPublish,\r\n saveOnExit,\r\n changeEmailReceivedDate,\r\n storeOriginalBwic,\r\n cancelDialog,\r\n cancelBwic\r\n}\r\n\r\nexport const getProcessSpecificSettings = parsedProcess => {\r\n switch (parsedProcess?.processType) {\r\n case BwicProcessType.JumpBall: return parsedProcess.jumpBall;\r\n case BwicProcessType.TopX: return parsedProcess.topX;\r\n case BwicProcessType.BestFootForward: return parsedProcess.bff;\r\n case BwicProcessType.Unknown: return parsedProcess.unknown;\r\n default: return {};\r\n }\r\n}\r\n\r\n\r\nfunction init(bwicReferenceName) {\r\n return async (dispatch, getState) => {\r\n try {\r\n const day = await daysService.getNextBusinessDate();\r\n\r\n const bwicPromise = bwicReferenceName\r\n ? bwicService.getByReferenceName(bwicReferenceName)\r\n : Promise.resolve(getState().editParsedBwic.bwic || { securities: [] });\r\n\r\n const bwic = await bwicPromise;\r\n\r\n if (bwic.referenceName) {\r\n dispatch(changeDate(bwic.date));\r\n dispatch(changeBidsDueTime(bwic.bidsDue));\r\n dispatch(changeGoodUntilTime(bwic.goodUntil));\r\n dispatch(changeTimeZone(bwic.timeZone.id));\r\n dispatch(changeDaysToSettle(bwic.daysToSettle));\r\n dispatch(changeCustomRules((bwic.process && bwic.process.rulesText) || ''));\r\n dispatch(securitiesActions.init(bwic.securities, gridColumns.securities()));\r\n dispatch(storeOriginalBwic(bwic));\r\n dispatch(changeEmailReceivedDate(bwic.emailReceivedDate))\r\n\r\n if (bwic.parsedProcess) {\r\n const processSettings = getProcessSpecificSettings(bwic.parsedProcess);\r\n dispatch(changeReserveLevelsApply(bwic.parsedProcess.reserveLevelsApply))\r\n dispatch(changeCanTradeEarly(bwic.parsedProcess.canTradeEarly))\r\n dispatch(changeCanBidEarly(bwic.parsedProcess.canBidEarly))\r\n dispatch(changePartialBidsAccepted(bwic.parsedProcess.partialBidsAccepted))\r\n dispatch(changeBwicProcessType(bwic.parsedProcess.processType))\r\n dispatch(changeHardCutOffNumber(processSettings.hardCutOff))\r\n dispatch(changeStage1EndTime(processSettings.stage1EndDateUtc))\r\n dispatch(changeStage2EndTime(processSettings.stage2EndDateUtc))\r\n dispatch(changeStage2Participants(processSettings.improverCount))\r\n if (bwic.parsedProcess.bidsGoodFor) {\r\n const timeSpan = dateTimeUtils.parseTimeSpan(bwic.parsedProcess.bidsGoodFor);\r\n if (timeSpan) {\r\n dispatch(changeBidsGoodForHours(timeSpan.hours || ''))\r\n dispatch(changeBidsGoodForMinutes(timeSpan.minutes || ''))\r\n }\r\n }\r\n }\r\n } else {\r\n dispatch(changeDate(day));\r\n dispatch(changeBidsDueTime(dateTimeUtils.timestampToUtcString('10:00 AM')));\r\n dispatch(changeGoodUntilTime(dateTimeUtils.timestampToUtcString('12:00 PM')));\r\n dispatch(changeDaysToSettle(constants.daysToSettleDefault));\r\n dispatch(changeReserveLevelsApply(true));\r\n dispatch(changeBwicProcessType(BwicProcessType.TopX));\r\n dispatch(changeCustomRules(''));\r\n dispatch(securitiesActions.init(bwic.securities, gridColumns.securities()));\r\n dispatch(storeOriginalBwic(bwic));\r\n }\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch({ type: actionTypes.INIT_COMPLETED })\r\n }\r\n }\r\n}\r\n\r\nfunction storeOriginalBwic(bwic) {\r\n return {\r\n type: actionTypes.STORE_ORIGINAL_BWIC,\r\n bwic\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RESET });\r\n dispatch(securitiesActions.reset());\r\n dispatch(errorActions.resetError());\r\n }\r\n}\r\n\r\nfunction changeEmailReceivedDate(date) {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().editParsedBwic;\r\n\r\n dispatch({\r\n type: actionTypes.SET_EMAIL_RECEIVED_DATE,\r\n payload: { date }\r\n });\r\n\r\n if (errors && errors.emailReceivedDate) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\n\r\nfunction changeDate(date) {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().editParsedBwic;\r\n\r\n dispatch({ type: actionTypes.CHANGE_DATE, date });\r\n if (errors && errors.date) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\n\r\nfunction changeDaysToSettle(days) {\r\n return {\r\n type: actionTypes.DAYS_TO_SETTLE,\r\n days\r\n };\r\n}\r\n\r\nfunction changeTimeZone(timeZone) {\r\n return {\r\n type: actionTypes.TIME_ZONE,\r\n timeZone\r\n };\r\n}\r\n\r\nfunction changeBidsDueTime(time) {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().editParsedBwic;\r\n\r\n dispatch({ type: actionTypes.BIDS_DUE, time });\r\n if (hasTimeErrors(errors)) {\r\n dispatch(validate());\r\n }\r\n\r\n const bidsDueTime = moment.utc(time);\r\n const goodUntilTime = moment.utc(time).add(2, 'hour');\r\n\r\n const goodUntil = goodUntilTime.isSame(bidsDueTime, 'day')\r\n ? goodUntilTime.format(constants.dateTimeFormatUtc)\r\n : dateTimeUtils.timestampToUtcString('11:59 PM');\r\n\r\n dispatch(changeGoodUntilTime(goodUntil));\r\n }\r\n}\r\n\r\nfunction changeGoodUntilTime(time) {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().editParsedBwic;\r\n\r\n dispatch({ type: actionTypes.GOOD_UNTIL, time });\r\n if (hasTimeErrors(errors)) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\n\r\nfunction hasTimeErrors(errors = {}) {\r\n return errors.time || errors.bidsGoodFor || errors.stage1EndDateUtc || errors.stage2EndDateUtc;\r\n}\r\n\r\nfunction changeCustomRules(rulesText) {\r\n return {\r\n type: actionTypes.RULES_TEXT,\r\n rulesText\r\n };\r\n}\r\n\r\nfunction changeReserveLevelsApply(value) {\r\n return {\r\n type: actionTypes.RESERVE_LEVELS_APPLY_CHANHE,\r\n value\r\n };\r\n}\r\nfunction changeCanTradeEarly(value) {\r\n return {\r\n type: actionTypes.CAN_TRADE_EARLY_CHANGE,\r\n value\r\n };\r\n}\r\nfunction changeCanBidEarly(value) {\r\n return {\r\n type: actionTypes.CAN_BID_EARLY_CHANGE,\r\n value\r\n };\r\n}\r\nfunction changePartialBidsAccepted(value) {\r\n return {\r\n type: actionTypes.PARTIAL_BIDS_ACCEPTED_CHANHE,\r\n value\r\n };\r\n}\r\nfunction getDefaultStage1EndTimeUtc(processType) {\r\n const defaultValue = '10:30 AM';\r\n return processType === BwicProcessType.TopX ||\r\n processType === BwicProcessType.JumpBall ||\r\n processType === BwicProcessType.BestFootForward ||\r\n processType === BwicProcessType.Unknown\r\n ? dateTimeUtils.timestampToUtcString(defaultValue)\r\n : null;\r\n}\r\nfunction getDefaultStage2EndTimeUtc(processType) {\r\n const defaultValue = '12:00 PM';\r\n return processType === BwicProcessType.TopX ||\r\n processType === BwicProcessType.JumpBall ||\r\n processType === BwicProcessType.Unknown\r\n ? dateTimeUtils.timestampToUtcString(defaultValue)\r\n : null;\r\n}\r\nfunction getDefaultStage2Participants(processType) {\r\n return processType === BwicProcessType.JumpBall ||\r\n processType === BwicProcessType.TopX ||\r\n processType === BwicProcessType.Unknown\r\n ? Stage2Participants.Top3\r\n : null;\r\n}\r\nfunction changeBwicProcessType(value) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.BWIC_PROCESS_TYPE_CHANGE,\r\n value\r\n });\r\n\r\n const hardCutOff = value === BwicProcessType.Standard ? null : 1;\r\n dispatch(changeHardCutOffNumber(hardCutOff));\r\n dispatch(changeStage1EndTime(getDefaultStage1EndTimeUtc(value)));\r\n dispatch(changeStage2EndTime(null))\r\n dispatch(changeStage2Participants(getDefaultStage2Participants(value)));\r\n\r\n if (hasTimeErrors(getState().editParsedBwic.errors)) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\nfunction changeHardCutOffNumber(value) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.HARD_CUT_OFF_NUMBER_CHANGE,\r\n value\r\n });\r\n\r\n const processType = getState().editParsedBwic.bwicProcessType;\r\n\r\n dispatch(changeStage1EndTime(getDefaultStage1EndTimeUtc(processType)));\r\n dispatch(changeStage2EndTime(+value === 2 ? getDefaultStage2EndTimeUtc(processType) : null))\r\n dispatch(changeStage2Participants(getDefaultStage2Participants(processType)));\r\n\r\n if (hasTimeErrors(getState().editParsedBwic.errors)) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\nfunction changeStage1EndTime(value) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.STAGE_1_TIME_CHANGE,\r\n value\r\n });\r\n\r\n const { errors } = getState().editParsedBwic;\r\n if (errors?.stage1EndDateUtc || errors.stage2EndDateUtc) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\nfunction changeStage2EndTime(value) {\r\n return (dispatch, getState) => {\r\n\r\n dispatch({\r\n type: actionTypes.STAGE_2_TIME_CHANGE,\r\n value\r\n });\r\n\r\n const { errors } = getState().editParsedBwic;\r\n if (errors?.stage1EndDateUtc || errors.stage2EndDateUtc) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\nfunction changeBidsGoodForHours(value) {\r\n return (dispatch, getState) => {\r\n const { errors } = getState().editParsedBwic;\r\n\r\n dispatch({\r\n type: actionTypes.BIDS_GOOD_FOR_HOURS_CHANGE,\r\n value\r\n });\r\n\r\n if (errors?.bidsGoodFor) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\nfunction changeBidsGoodForMinutes(value) {\r\n return (dispatch, getState) => {\r\n const { errors } = getState().editParsedBwic;\r\n\r\n dispatch({\r\n type: actionTypes.BIDS_GOOD_FOR_MINUTES_CHANGE,\r\n value\r\n });\r\n\r\n if (errors?.bidsGoodFor) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\nfunction changeStage2Participants(value) {\r\n return {\r\n type: actionTypes.STAGE_2_PARTICIPANTS_CHANGE,\r\n value\r\n };\r\n}\r\nfunction validate() {\r\n return (dispatch, getState) => {\r\n const { date, emailReceivedDate, bidsGoodForHours, bidsGoodForMinutes, ...state } =\r\n getState().editParsedBwic;\r\n\r\n const bidsDue = moment.utc(setBwicDate(date, adjustTime(state.bidsDue)));\r\n const goodUntil = moment.utc(setBwicDate(date, adjustTime(state.goodUntil)));\r\n const stage1EndDateUtc = state.stage1EndDateUtc ? moment.utc(setBwicDate(date, state.stage1EndDateUtc)) : null;\r\n const stage2EndDateUtc = state.stage2EndDateUtc ? moment.utc(setBwicDate(date, state.stage2EndDateUtc)) : null;\r\n\r\n const errors = {};\r\n errors.date = validateDate(date);\r\n errors.time = validateTime(bidsDue, goodUntil);\r\n errors.emailReceivedDate = validateEmailReceivedDate(emailReceivedDate);\r\n errors.bidsGoodFor = validateBidsGoodFor(bidsGoodForHours, bidsGoodForMinutes);\r\n errors.stage1EndDateUtc = validateStage1End(stage1EndDateUtc, stage2EndDateUtc, bidsDue, goodUntil);\r\n errors.stage2EndDateUtc = validateStage2End(stage1EndDateUtc, stage2EndDateUtc, bidsDue, goodUntil);\r\n\r\n const isValid = !values(errors).some(x => !!x);\r\n\r\n dispatch({\r\n type: actionTypes.VALIDATE,\r\n validation: {\r\n errors,\r\n isValid\r\n }\r\n })\r\n };\r\n}\r\n\r\nfunction validateDate(date) {\r\n if (date === '') {\r\n return errorMessages.empty;\r\n } else if (typeof date === 'undefined') {\r\n return errorMessages.invalidValue;\r\n }\r\n\r\n const momentDate = moment(date)\r\n const weekday = momentDate.isoWeekday();\r\n\r\n if ([6, 7].some(d => d === weekday)) {\r\n return errorMessages.bwicDateShouldNotBeWeekend;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction validateEmailReceivedDate(date) {\r\n if (date === '') {\r\n return errorMessages.empty;\r\n } else if (typeof date === 'undefined') {\r\n return errorMessages.invalidValue;\r\n }\r\n\r\n const min = moment().subtract(1, 'year');\r\n const max = moment().add(1, 'year');\r\n\r\n if (min.isAfter(date, 'd') || max.isBefore(date, 'd')) {\r\n return errorMessages.dateRange(\r\n min.format(constants.dateFormat),\r\n max.format(constants.dateFormat)\r\n );\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction validateTime(bidsDue, goodUntil) {\r\n if (bidsDue >= goodUntil) {\r\n return errorMessages.bidsDueShoulbBeLessThanGoodUntil;\r\n }\r\n}\r\n\r\nfunction validateBidsGoodFor(hours, minutes) {\r\n if ((!Number(hours) && !Number(minutes))) return undefined;\r\n\r\n const totalMinutes = numericUtils.numberOrDefault(hours) * 60 + numericUtils.numberOrDefault(minutes)\r\n\r\n const min = 30; // minutes\r\n const maxHours = 12;\r\n\r\n if (totalMinutes < min || totalMinutes > (maxHours * 60)) {\r\n return errorMessages.shouldBeBetween(`${30} minutes`, `${maxHours} hours`)\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction validateStage1End(stage1End, stage2End, start, end) {\r\n if (!stage1End) return undefined;\r\n if (start && end && (stage1End.isBefore(start) || stage1End.isAfter(end))) {\r\n return \"The time should be between start time and end time\";\r\n }\r\n if (stage2End && stage1End.isSameOrAfter(stage2End)) {\r\n return \"The value cannot be greater then the 2nd Stage Hard Cut Off (UTC)\"\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction validateStage2End(stage1End, stage2End, start, end) {\r\n if (!stage2End) return undefined;\r\n if (start && end && (stage2End.isBefore(start) || stage2End.isAfter(end))) {\r\n return \"The time should be between start time and end time\";\r\n }\r\n if (stage1End && stage2End.isSameOrBefore(stage1End)) {\r\n return \"The value cannot be less then the 1st Stage Hard Cut Off (UTC)\"\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction adjustTime(utcTime) {\r\n const time = dateTimeUtils.timestampFromUtcString(utcTime);\r\n\r\n if (time === '12:00 AM') {\r\n return dateTimeUtils.timestampToUtcString('11:59:59 PM');\r\n }\r\n\r\n return utcTime;\r\n}\r\n\r\nexport function setBwicDate(bwicDate, time) {\r\n if (!time) return undefined;\r\n\r\n return (bwicDate ? moment.utc(bwicDate) : moment.utc())\r\n .set('hour', moment.utc(time).hours())\r\n .set('minute', moment.utc(time).minute());\r\n}\r\n\r\nfunction showManageParsedBwics() {\r\n return () => {\r\n history.push(routes.manageParsedBwics);\r\n };\r\n}\r\n\r\nfunction save() {\r\n return (dispatch, getState) => {\r\n dispatch(validate());\r\n dispatch(gridActions.validate());\r\n\r\n const { isValid } = getState().editParsedBwic;\r\n const isPositionsValid = getState().grid.isValid;\r\n\r\n if (isValid && isPositionsValid) {\r\n dispatch(setSaveProgressState(true));\r\n doSave(getState())\r\n .then(() => {\r\n dispatch(saved());\r\n })\r\n .catch(e => {\r\n if (e.status === 409) {\r\n dispatch(\r\n notificationActions.notificationAddErrorMessageModal(\r\n errorMessages.refreshPage,\r\n errorMessages.cantSavePxTalk409,\r\n true\r\n )\r\n );\r\n } else {\r\n dispatch(errorActions.error(e, errorMessages.unexpectedError))\r\n }\r\n })\r\n .finally(() => dispatch(setSaveProgressState(false)));\r\n }\r\n };\r\n}\r\n\r\nfunction setSaveProgressState(isSaving) {\r\n return {\r\n type: actionTypes.SAVING_STATE,\r\n isSaving\r\n };\r\n}\r\n\r\nfunction saveOnExit(pathname, beforeNavigateCallback) {\r\n return async (dispatch, getState) => {\r\n dispatch(validate());\r\n dispatch(gridActions.validate());\r\n\r\n const { isValid } = getState().editParsedBwic;\r\n const isPositionsValid = getState().grid.isValid;\r\n\r\n if (isValid && isPositionsValid) {\r\n dispatch(setSaveProgressState(true));\r\n try {\r\n await doSave(getState());\r\n history.push(pathname);\r\n } catch (e) {\r\n beforeNavigateCallback(false);\r\n dispatch(errorActions.unexpectedError(e));\r\n } finally {\r\n dispatch(setSaveProgressState(false));\r\n }\r\n } else if (beforeNavigateCallback) {\r\n beforeNavigateCallback(false);\r\n }\r\n };\r\n}\r\n\r\nfunction saveAndPublish() {\r\n return async (dispatch, getState) => {\r\n dispatch(validate());\r\n dispatch(gridActions.validate());\r\n\r\n const { isValid } = getState().editParsedBwic;\r\n const isPositionsValid = getState().grid.isValid;\r\n\r\n if (isValid && isPositionsValid) {\r\n dispatch(setSaveProgressState(true));\r\n try {\r\n const referenceName = await doSave(getState());\r\n await parsedBwicsService.publish(referenceName);\r\n dispatch(saved());\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n } finally {\r\n dispatch(setSaveProgressState(false));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction saved() {\r\n return (dispatch, getState) => {\r\n getState().grid.dataItems\r\n .filter(s => !s.draft && s.pxTalks && s.id)\r\n .forEach(s => {\r\n dispatch(priceTalksActions.replacePriceTalks(s.id, s.pxTalks))\r\n });\r\n dispatch({ type: actionTypes.BWIC_SAVED })\r\n }\r\n}\r\n\r\nfunction doSave(state) {\r\n const positions = state.grid.dataItems.filter(s => !s.draft);\r\n const { bwic, date, bidsDue, goodUntil, timeZone, daysToSettle, rulesText, emailReceivedDate,\r\n reserveLevelsApply, canTradeEarly, canBidEarly, partialBidsAccepted, bidsGoodForHours, bidsGoodForMinutes,\r\n bwicProcessType, hardCutOff, stage1EndDateUtc, stage2EndDateUtc, improverCount } = state.editParsedBwic;\r\n\r\n const payload = {\r\n referenceName: bwic.referenceName,\r\n date: moment(date).startOf('day').utcOffset(0, true).toISOString(),\r\n bidsDue: moment.utc(bidsDue).utcOffset(0, true).toISOString(),\r\n goodUntil: moment.utc(goodUntil).utcOffset(0, true).toISOString(),\r\n timeZone,\r\n daysToSettle,\r\n emailReceivedDate,\r\n rulesText: rulesText == null ? rulesText.trim() : rulesText,\r\n reserveLevelsApply,\r\n canTradeEarly,\r\n canBidEarly,\r\n partialBidsAccepted,\r\n bidsGoodFor: bidsGoodForHours || bidsGoodForMinutes\r\n ? dateTimeUtils.timeSpan(\r\n numericUtils.numberOrDefault(bidsGoodForHours),\r\n numericUtils.numberOrDefault(bidsGoodForMinutes),\r\n 0)\r\n : undefined,\r\n processType: bwicProcessType,\r\n hardCutOff,\r\n stage1EndDateUtc: setBwicDate(date, stage1EndDateUtc)?.toISOString(),\r\n stage2EndDateUtc: setBwicDate(date, stage2EndDateUtc)?.toISOString(),\r\n improverCount,\r\n positions\r\n }\r\n\r\n return parsedBwicsService.save(payload);\r\n}\r\n\r\nfunction cancelDialog(visible) {\r\n return {\r\n type: actionTypes.CANCEL_DIALOG,\r\n cancelDialog: { visible }\r\n };\r\n}\r\n\r\nfunction cancelBwic(referenceName) {\r\n return dispatch => {\r\n dispatch(cancelDialog(false));\r\n\r\n parsedBwicsService\r\n .cancel(referenceName)\r\n .then(\r\n () => history.push(routes.manageParsedBwics),\r\n e => dispatch(errorActions.unexpectedError())\r\n );\r\n };\r\n}\r\n\r\n\r\n","import { createAction, ActionType } from \"typesafe-actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { EmailPreferences } from \"../types/email-preferences/EmailPreferences\";\r\nimport { AlertEnabledState } from \"../types/enums/AlertEnabledState\";\r\n\r\nconst request = createAction('entities/email-preferences/REQUEST');\r\nconst requestResult = createAction('entities/email-preferences/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, preferences?: EmailPreferences) => resolve({ preferences, requestState })\r\n);\r\nconst reset = createAction('entities/email-preferences/RESET');\r\nconst inventoryAlertChange = createAction('entities/email-preferences/INVENTORY_ALERT_CHANGE',\r\n resolve => (enabled: AlertEnabledState) => resolve({ enabled })\r\n);\r\nconst bwicAlertChange = createAction('entities/email-preferences/BWIC_ALERT_CHANGE',\r\n resolve => (enabled: AlertEnabledState) => resolve({ enabled })\r\n);\r\n\r\nexport type TEmailPreferecnesActionTypes = ActionType<\r\n typeof request |\r\n typeof requestResult |\r\n typeof reset |\r\n typeof inventoryAlertChange |\r\n typeof bwicAlertChange\r\n>;\r\n\r\nexport const emailPreferencesActions = {\r\n request,\r\n requestResult,\r\n reset,\r\n bwicAlertChange,\r\n inventoryAlertChange\r\n};\r\n","import { ActionType, createAction } from \"typesafe-actions\"\r\nimport { RequestState } from \"../../constants/request-state\";\r\nimport { ArrangerPipeline } from \"../../types/amr-pipeline/models/ArrangerPipeline\";\r\n\r\nconst request = createAction('entities/arrangersPipeline/REQUEST',\r\n resolve => (tickers: string[]) => resolve({ tickers })\r\n);\r\nconst response = createAction('entities/arrangersPipeline/RESPONSE',\r\n resolve => (requestState: RequestState, pipeline: ArrangerPipeline[] = []) =>\r\n resolve({ requestState, pipeline })\r\n);\r\nconst reset = createAction('entities/arrangersPipeline/RESET');\r\n\r\nexport const arrangersPipelineActions = {\r\n request,\r\n response,\r\n reset\r\n}\r\n\r\nexport type TArrangersPipelineActionType =\r\n ActionType\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../../constants/request-state';\r\nimport { Company } from '../../types/amr-pipeline/models/Company';\r\n\r\nconst request = createAction('entities/availableBrokerDealers/REQUEST');\r\nconst requestResult = createAction(\r\n 'entities/availableBrokerDealers/REQUEST_RESULT',\r\n resolve =>\r\n (requestState: RequestState, companies: Company[] = []) =>\r\n resolve({ requestState, companies }),\r\n);\r\n\r\nexport type TAvailableBrokerDealersActionType = ActionType<(typeof availableBrokerDealersActions)[keyof typeof availableBrokerDealersActions]>;\r\n\r\nexport const availableBrokerDealersActions = {\r\n request,\r\n requestResult,\r\n};\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../../constants/request-state';\r\nimport { AwaitingTrade } from '../../types/trades/AwaitingTrade';\r\nimport { TradeSettlementStatus } from '../../types/settlement/TradeSettlementStatus';\r\n\r\nconst requestTrades = createAction('entities/awaitingTrades/REQUEST');\r\nconst requestTradesResult = createAction(\r\n 'entities/awaitingTrades/REQUEST_RESULT',\r\n resolve => (requestStatus: RequestState, awaitingTrades: AwaitingTrade[] = []) => resolve({ requestStatus, awaitingTrades })\r\n);\r\nconst trade = createAction(\r\n 'entities/awaitingTrades/TRADE',\r\n resolve => (trade: AwaitingTrade) => resolve({ trade })\r\n);\r\nconst tradeAllocationCreated = createAction(\r\n 'entities/awaitingTrades/TRADE_ALLOCATION_CREATED',\r\n resolve =>\r\n (tradeId: string, buyerSettlementStatus: TradeSettlementStatus, sellerSettlementStatus: TradeSettlementStatus) =>\r\n resolve({ tradeId, buyerSettlementStatus, sellerSettlementStatus })\r\n);\r\n\r\nexport type AwaitingTradesActionTypes =\r\n ActionType\r\n\r\nexport const awaitingTradesActions = {\r\n requestTrades,\r\n requestTradesResult,\r\n trade,\r\n tradeAllocationCreated,\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../../constants/request-state';\r\nimport { CloSystemInfrastructures } from '../../types/clo-managers/CloSystemInfrastructures';\r\n\r\nconst requestData = createAction(\r\n 'entities/cloSystemInfrastructure/REQUEST',\r\n resolve => (requestState: RequestState) => resolve({ requestState }),\r\n);\r\n\r\nconst responseData = createAction(\r\n 'entities/cloSystemInfrastructure/RESPONSE',\r\n resolve => (requestState: RequestState, cloSystemInfrastructure: CloSystemInfrastructures[]) =>\r\n resolve({ requestState, cloSystemInfrastructure}),\r\n);\r\n\r\nexport const cloSystemInfrastructureActions = {\r\n requestData,\r\n responseData\r\n};\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../../constants/request-state\";\r\nimport { Company } from \"../../types/amr-pipeline/models/Company\";\r\n\r\nconst requestCollateralManagers = createAction('entities/collateral-managers/REQUEST', resolve => (requestState: RequestState) => resolve({ requestState}));\r\n\r\nconst responseCollateralManagers = createAction(\r\n 'entities/collateral-managers/RESPONSE',\r\n resolve => (requestState: RequestState, collateralManagers: Company[]) => resolve({ requestState, collateralManagers })\r\n);\r\n\r\nexport const collateralManagersActions = {\r\n requestCollateralManagers,\r\n responseCollateralManagers\r\n};\r\n","import { ActionType, createAction } from \"typesafe-actions\"\r\nimport { RequestState } from \"../../constants/request-state\";\r\nimport { TransactionSlim } from \"../../types/amr-pipeline/models/TransactionSlim\";\r\n\r\nconst request = createAction('entities/latestTransaction/REQUEST',\r\n resolve => (tickers: string[]) => resolve({ tickers })\r\n);\r\nconst response = createAction('entities/latestTransaction/RESPONSE',\r\n resolve => (requestState: RequestState, transactions: TransactionSlim[] = []) =>\r\n resolve({ requestState, transactions })\r\n);\r\nconst reset = createAction('entities/latestTransaction/RESET');\r\n\r\nexport const latestTransactionActions = {\r\n request,\r\n response,\r\n reset\r\n}\r\n\r\nexport type TLatestTransactionActionType =\r\n ActionType\r\n","import { ActionType, createAction } from \"typesafe-actions\";\r\nimport { CanBidOnPosition, LiveBiddingPosition } from \"../../types/live-bidding/LiveBiddingPosition\";\r\nimport { RequestState } from \"../../constants/request-state\";\r\n\r\nconst request = createAction('entities/live-bidding/REQUEST');\r\nconst response = createAction('entities/live-bidding/RESPONSE',\r\n resolve => (positions: LiveBiddingPosition[], requestState: RequestState) =>\r\n resolve({ positions, requestState })\r\n);\r\nconst reset = createAction('entities/live-bidding/RESET',\r\n resolve => (bwicReferenceName: string) => resolve({ bwicReferenceName })\r\n);\r\nconst stage2LevelChange = createAction('entities/live-bidding/STAGE_2_LEVEL',\r\n resolve => (bwicReferenceName: string, positionId: number, level: number, tiedForBest: boolean, sentDateUtc: Date) =>\r\n resolve({ bwicReferenceName, positionId, level, tiedForBest, sentDateUtc })\r\n);\r\nconst stage2Start = createAction('entities/live-bidding/STAGE_2_START',\r\n resolve => (\r\n bwicReferenceName: string,\r\n canDealerBidOnPositions?: CanBidOnPosition[],\r\n stage1EndDateUtc?: Date) =>\r\n resolve({ bwicReferenceName, canDealerBidOnPositions, stage1EndDateUtc }))\r\n\r\nexport const liveBiddingActions = {\r\n request,\r\n response,\r\n reset,\r\n stage2LevelChange,\r\n stage2Start\r\n};\r\n\r\nexport type TLiveBiddingAction = ActionType;","import { ActionType, createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../../constants/request-state\";\r\nimport { PartiesCompanies } from \"../../types/state/entities/PartiesState\";\r\n\r\nconst request = createAction(\"entities/parties/REQUEST\");\r\nconst requestResult = createAction(\r\n \"entities/parties/REQUEST_RESULT\",\r\n (resolve) => (requestState: RequestState, items?: PartiesCompanies) =>\r\n resolve({\r\n requestState,\r\n items,\r\n })\r\n);\r\n\r\nexport type TPartiesActionType = ActionType<\r\n (typeof partiesActions)[keyof typeof partiesActions]\r\n>;\r\n\r\nexport const partiesActions = {\r\n request,\r\n requestResult,\r\n};\r\n\r\n","import { createAction } from 'typesafe-actions';\r\nimport { PushHistoryStateItem, PushHistoryStateItemType } from '../../types/state/PushHistoryState';\r\n\r\nconst add = createAction(\r\n 'push-history/add',\r\n resolve => (item: PushHistoryStateItem, type: PushHistoryStateItemType) => resolve({ item, type })\r\n);\r\nconst reset = createAction('push-history/reset');\r\nconst resetForType = createAction(\r\n 'push-history/resetHistoryForType',\r\n resolve => (...types: PushHistoryStateItemType[]) => resolve({ types: [...types] })\r\n);\r\n\r\nexport const pushHistoryActions = {\r\n add,\r\n reset,\r\n resetForType,\r\n}\r\n","import { ActionType, createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../../constants/request-state\";\r\nimport { RejectedTrade } from '../../types/trades/RejectedTrade';\r\n\r\nconst request = createAction('entities/rejected-trades/REQUEST');\r\nconst requestResult = createAction('entities/rejected-trades/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, trades: RejectedTrade[] = []) =>\r\n resolve({ requestState, trades })\r\n);\r\nconst setTradesAsResolved = createAction('entities/rejected-trades/SET_AS_RESOLVED',\r\n resolve => (tradeIds: string[]) => resolve({ tradeIds })\r\n);\r\nconst pushBuyerRejectTrade = createAction(\r\n 'entities/rejected-trades/PUSH_BUYER_REJECT_TRADE',\r\n resolve => (trade: RejectedTrade) => resolve({ trade })\r\n);\r\n\r\nexport type TRejectedTradesActionType = ActionType;\r\n\r\nexport const rejectedTradeActions = {\r\n request,\r\n requestResult,\r\n setTradesAsResolved,\r\n pushBuyerRejectTrade,\r\n}\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../../constants/request-state';\r\nimport { Company } from '../../types/amr-pipeline/models/Company';\r\n\r\nconst request = createAction('entities/trustee/REQUEST');\r\nconst requestResult = createAction('entities/trustee/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, trustee: Company[] = []) =>\r\n resolve({ requestState, trustee })\r\n);\r\n\r\nexport type TTrusteeActionType = ActionType<\r\n typeof trusteeActions[keyof typeof trusteeActions]\r\n>;\r\n\r\nexport const trusteeActions = {\r\n request,\r\n requestResult\r\n}\r\n","import { errorActions as actionTypes, errorMessages } from '../constants';\r\nimport { logger } from '../logging/logger';\r\nimport { jsonUtils } from '../utils';\r\nimport { notificationActions } from './notification.actions';\r\n\r\nexport const errorActions = {\r\n criticalError,\r\n error,\r\n unexpectedError,\r\n resetError,\r\n isRequestCancelationError\r\n};\r\n\r\nfunction criticalError(error) {\r\n if (isRequestCancelationError(error)) {\r\n return {\r\n type: actionTypes.REQUEST_CANCELATION_ERROR,\r\n error\r\n };\r\n }\r\n\r\n return {\r\n type: actionTypes.CRITICAL_ERROR,\r\n error\r\n };\r\n}\r\n\r\nexport function isRequestCancelationError(error) {\r\n return error && error.name === 'AbortError';\r\n}\r\n\r\nfunction error(error, message, caption) {\r\n if (isRequestCancelationError(error)) {\r\n return {\r\n type: actionTypes.REQUEST_CANCELATION_ERROR,\r\n error\r\n };\r\n } else if (error && +error.status === 401) {\r\n return criticalError(error);\r\n }\r\n\r\n const errorJson = error && error.message && jsonUtils.tryParse(error.message);\r\n message = (errorJson && errorJson.error) || (error && error.message) || message;\r\n caption = (errorJson && errorJson.title) || caption;\r\n\r\n const isModal = (errorJson && errorJson.displayInModal) || false;\r\n const refreshButtonVisible = Boolean(errorJson && errorJson.refreshButtonVisible);\r\n\r\n logger.exception(message, error);\r\n\r\n return isModal\r\n ? notificationActions.notificationAddErrorMessageModal(message, caption || errorMessages.error, refreshButtonVisible)\r\n : notificationActions.notificationAddErrorMessage(message, caption || errorMessages.error);\r\n}\r\n\r\nfunction unexpectedError(err) {\r\n return error(err, errorMessages.unexpectedError);\r\n}\r\n\r\nfunction resetError() {\r\n return { type: actionTypes.ERROR_RESET }\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\n\r\nconst fetchFavoriteBrokerDealersRequest = createAction(\r\n 'favoriteBd/FETCH_REQUEST'\r\n);\r\n\r\nconst fetchFavoriteBrokerDealersSuccess = createAction(\r\n 'favoriteBd/FETCH_SUCCESS',\r\n resolve => (favorites: {[key: number]: boolean}) => resolve({ favorites })\r\n);\r\n\r\nconst fetchFavoriteBrokerDealersFailure = createAction(\r\n 'favoriteBd/FETCH_FAILURE'\r\n);\r\n\r\nconst updateFavoriteBrokerDealerRequest = createAction(\r\n 'favoriteBd/UPDATE_REQUEST',\r\n resolve => (dealerId: number, isFavorite: boolean) => resolve({ dealerId, isFavorite })\r\n);\r\n\r\nconst updateFavoriteBrokerDealerSuccess = createAction(\r\n 'favoriteBd/UPDATE_SUCCESS',\r\n resolve => (favorites: number[], dealerId: number) => resolve({ favorites, dealerId })\r\n);\r\n\r\nconst updateFavoriteBrokerDealerFailure = createAction(\r\n 'favoriteBd/UPDATE_FAILURE',\r\n resolve => (dealerId: number) => resolve({ dealerId })\r\n);\r\n\r\nconst reset = createAction('favoriteBd/RESET');\r\n\r\nexport const favoriteBrokerDealersActions = {\r\n fetchFavoriteBrokerDealersRequest,\r\n fetchFavoriteBrokerDealersSuccess,\r\n fetchFavoriteBrokerDealersFailure,\r\n updateFavoriteBrokerDealerRequest,\r\n updateFavoriteBrokerDealerSuccess,\r\n updateFavoriteBrokerDealerFailure,\r\n reset,\r\n};\r\n","import { DateTimeRange } from '../types/filters/DateTimeRange';\r\nimport { DateFilterOption } from '../types/filters/DateFilterOption';\r\nimport { DateRange } from '../types/filters/DateRange';\r\nimport { DateTimeFilterOption } from '../types/filters/DateTimeFilterOption';\r\nimport { FilterRangeOption } from '../types/filters/FilterRangeOption';\r\nimport { RedirectFilterOption } from '../types/filters/RedirectFilterOption';\r\nimport { CommonFilter, TFilterType } from '../types/filters/FilterState';\r\nimport { createAction, createAsyncAction } from 'typesafe-actions';\r\nimport { Primitive } from '../utils/differ/types';\r\nimport { UserConfigFilter } from '../types/user-config/UserConfigFilter';\r\nimport { RadioOption } from '../types/filters/RadioOption';\r\nimport { TDeserializeRange } from '../utils/filtering/serializers/serializer.definitions';\r\n\r\nexport const createFilterActions = (filterType?: TFilterType) => {\r\n const init = createAction('filter/INIT', resolve => (filter: CommonFilter) => resolve({ filterType, filter }));\r\n\r\n const selectFilterFromConfig = createAction(\r\n 'filter/SELECT_FILTER_FROM_CONFIG',\r\n resolve => (selectedFilter?: UserConfigFilter, referenceName?: string) =>\r\n resolve({ filterType, selectedFilter, referenceName }),\r\n );\r\n\r\n const filterSelectChange = createAction(\r\n 'filter/SELECT_CHANGE',\r\n resolve => (option: Primitive, filterName: string) => resolve({ filterType, option, filterName }),\r\n );\r\n\r\n const resetFiltersAndUnselectSavedFilter = createAction(\r\n 'filter/RESET_FILTERS_AND_UNSELECT_SAVED_FILTER',\r\n resolve => () => resolve({ filterType }),\r\n );\r\n\r\n const filterSelectSelectAll = createAction(\r\n 'filter/SELECT_SELECT_ALL',\r\n resolve => (filterName: string, searchTerm: string) => resolve({ filterType, filterName, searchTerm }),\r\n );\r\n\r\n const filterSelectClearAll = createAction(\r\n 'filter/SELECT_CLEAR_ALL',\r\n resolve => (filterName: string) => resolve({ filterName, filterType }),\r\n );\r\n\r\n const makeFilterVisible = createAction(\r\n 'filter/MAKE_FILTER_VISIBLE',\r\n resolve => (filterName: string) => resolve({ filterType, filterName }),\r\n );\r\n\r\n const updateFilterState = createAction('filter/UPDATE_FILTER_STATE', resolve => () => resolve({ filterType }));\r\n\r\n const applyFilter = createAction('filter/APPLY_FILTER', resolve => () => resolve({ filterType }));\r\n\r\n const resetFilter = createAction('filter/RESET_FILTER', resolve => () => resolve({ filterType }));\r\n\r\n const resetFilterState = createAction('filter/RESET_FILTER_STATE', resolve => () => resolve({ filterType }));\r\n\r\n const resetFiltersVisibility = createAction(\r\n 'filter/RESET_FILTERS_VISIBILITY',\r\n resolve => () => resolve({ filterType }),\r\n );\r\n\r\n const filterVisibilityChange = createAction(\r\n 'filter/VISIBILITY_CHANGE',\r\n resolve => (filterName: string) => resolve({ filterType, filterName }),\r\n );\r\n\r\n const storeFilterData = createAsyncAction(\r\n 'filter/STORE_FILTER_DATA_REQUEST',\r\n 'filter/STORE_FILTER_DATA_SUCCESS',\r\n 'filter/STORE_FILTER_DATA_FAILURE',\r\n )<\r\n { filterType: TFilterType; filterName: string },\r\n { filterType: TFilterType; filterName: string; data: unknown[] },\r\n { filterType: TFilterType; filterName: string }\r\n >();\r\n\r\n const changeRangeFilter = createAction(\r\n 'filter/CHANGE_RANGE_FILTER',\r\n resolve => (value: FilterRangeOption, filterName: string) => resolve({ filterType, filterName, value }),\r\n );\r\n\r\n const filterRadioChange = createAction(\r\n 'filter/RADIO_CHANGE',\r\n resolve => (option: string | boolean | RadioOption, filterName: string) => resolve({ filterType, option, filterName }),\r\n );\r\n\r\n const filterRadioClearOption = createAction(\r\n 'filter/RADIO_CLEAR_OPTION',\r\n resolve => (filterName: string) => resolve({ filterType, filterName }),\r\n );\r\n\r\n const filterRangeClearSelectedOptions = createAction(\r\n 'filter/RANGE_CLEAR_SELECTED_OPTIONS',\r\n resolve => (filterName: string) => resolve({ filterType, filterName }),\r\n );\r\n\r\n const setFilterByReferenceName = createAction(\r\n 'filter/SET_FILTER_BY_REFERENCE_NAME',\r\n resolve => (selectedFilterReferenceName: string, selectedFilter?: CommonFilter) =>\r\n resolve({ filterType, selectedFilter, selectedFilterReferenceName }),\r\n );\r\n\r\n const filterDateClearSelectedOptions = createAction(\r\n 'filter/DATE_CLEAR_SELECTED_OPTIONS',\r\n resolve => (filterName: string) => resolve({ filterType, filterName }),\r\n );\r\n\r\n const filterDateSelectOption = createAction(\r\n 'filter/FILTER_DATE_SELECT_OPTION',\r\n resolve => (option: DateFilterOption, filterName: string) => resolve({ filterType, option, filterName }),\r\n );\r\n\r\n const filterDateTimeOptionSelected = createAction(\r\n 'filter/FILTER_DATE_TIME_SELECT_OPTION',\r\n resolve => (option: DateTimeFilterOption, filterName: string) => resolve({ filterType, option, filterName }),\r\n );\r\n\r\n const filterDateSelectCustomRange = createAction(\r\n 'filter/FILTER_DATE_SELECT_CUSTOM_RANGE',\r\n resolve => (option: DateRange, filterName: string) => resolve({ filterType, option, filterName }),\r\n );\r\n\r\n const filterDateTimeSelectCustomRange = createAction(\r\n 'filter/FILTER_DATE_TIME_SELECT_CUSTOM_RANGE',\r\n resolve => (option: DateTimeRange, filterName: string) => resolve({ filterType, option, filterName }),\r\n );\r\n\r\n const filterDateSelectYearsRange = createAction(\r\n 'filter/FILTER_DATE_SELECT_YEARS_RANGE',\r\n resolve => (option: FilterRangeOption, filterName: string) => resolve({ filterType, option, filterName }),\r\n );\r\n\r\n const setRedirectFilters = createAction(\r\n 'filter/SET_REDIRECT_FILTERS',\r\n resolve => (filter: RedirectFilterOption) => resolve({ filterType, filter }),\r\n );\r\n\r\n const redirectWithNoFilter = createAction(\r\n 'filter/REDIRECT_WITH_NO_FILTER',\r\n resolve => () => resolve({ filterType }),\r\n );\r\n\r\n const filterDateQueryStringDeserialized = createAction(\r\n 'filter/FILTER_DATE_QUERY_STRING_DESERIALIZED',\r\n resolve => (filterName: string, deserializeResult: TDeserializeRange) => resolve({ filterType, filterName, deserializeResult }),\r\n );\r\n\r\n const resetSelectedFilter = createAction(\r\n 'filter/RESET_SELECTED_FILTER',\r\n resolve => () => resolve({ filterType })\r\n );\r\n\r\n return {\r\n init,\r\n selectFilterFromConfig,\r\n filterSelectChange,\r\n filterSelectSelectAll,\r\n filterSelectClearAll,\r\n makeFilterVisible,\r\n updateFilterState,\r\n applyFilter,\r\n resetFilter,\r\n resetFiltersVisibility,\r\n storeFilterData,\r\n changeRangeFilter,\r\n filterRadioChange,\r\n filterRadioClearOption,\r\n filterRangeClearSelectedOptions,\r\n setFilterByReferenceName,\r\n filterDateClearSelectedOptions,\r\n filterDateSelectOption,\r\n filterDateTimeOptionSelected,\r\n filterDateSelectCustomRange,\r\n filterDateTimeSelectCustomRange,\r\n filterDateSelectYearsRange,\r\n setRedirectFilters,\r\n resetFilterState,\r\n filterVisibilityChange,\r\n resetFiltersAndUnselectSavedFilter,\r\n redirectWithNoFilter,\r\n filterDateQueryStringDeserialized,\r\n resetSelectedFilter\r\n };\r\n};\r\n","import { store } from '../store';\r\nimport {\r\n gridActions as actionTypes,\r\n uploadStatus,\r\n constants,\r\n errorMessages,\r\n} from \"../constants\";\r\nimport { arrayUtils, numericUtils, moneyUtils, formatUtils, stringUtils } from '../utils';\r\nimport { gridColumns as columns } from '../constants';\r\nimport * as compareUtils from '../utils/compare.utils';\r\nimport { changeColorActions, changePxTalkActions, errorActions } from './';\r\nimport { Ratings } from '../types/enums/Rating';\r\nimport { requestCancelationController } from '../services/request-cancelation-controller';\r\nimport { history } from '../history';\r\n\r\nexport const gridActions = {\r\n init,\r\n setColumns,\r\n addColumn,\r\n removeColumn,\r\n moveColumnData,\r\n clearCell,\r\n setFocus,\r\n edit,\r\n cancelEdit,\r\n setInitialPosition,\r\n applyEdit,\r\n applyOrCancelEdit,\r\n orderBy,\r\n deleteRow,\r\n deleteDataItemsWithErrors,\r\n deleteFlaggedDataItems,\r\n editing,\r\n addDataItems,\r\n replaceDataItem,\r\n addFileToDataItem,\r\n insertDataItems,\r\n processKeyCode,\r\n selectRow,\r\n showHelp,\r\n hideHelp,\r\n validate,\r\n setUploadState,\r\n reset,\r\n blockInput,\r\n dataProcessing,\r\n parseValue,\r\n addRow,\r\n moveRowUp,\r\n moveRowDown,\r\n clear,\r\n updateDataItemDraftStatus,\r\n updateRowsLimit\r\n}\r\n\r\nfunction init(dataItems, headers, rowsLimit = constants.gridRowsLimit, minDrafts, autoFocus = true) {\r\n return dispatch => {\r\n dispatch(setMountedKey());\r\n dispatch(setColumns(headers));\r\n dispatch(updateRowsLimit(rowsLimit, minDrafts));\r\n\r\n if (dataItems && dataItems.length) {\r\n dispatch(insertDataItems(dataItems));\r\n }\r\n\r\n dispatch(appendDrafts());\r\n\r\n if (autoFocus) {\r\n dispatch(setInitialPosition(dataItems && dataItems.length));\r\n }\r\n\r\n dispatch(showHelp());\r\n }\r\n}\r\n\r\nfunction updateRowsLimit(rowsLimit, minDrafts) {\r\n return {\r\n type: actionTypes.ROWS_LIMIT,\r\n rowsLimit,\r\n minDrafts\r\n };\r\n}\r\n\r\nfunction setMountedKey() {\r\n return {\r\n type: actionTypes.GRID_SET_MOUNTED_KEY,\r\n payload: { key: new Date().getTime() }\r\n }\r\n}\r\n\r\nfunction setColumns(headers) {\r\n return {\r\n type: actionTypes.SETUP_HEADERS,\r\n headers\r\n };\r\n}\r\n\r\nfunction addColumn(column, positionIndex) {\r\n return {\r\n type: actionTypes.ADD_COLUMN,\r\n column,\r\n positionIndex\r\n };\r\n}\r\n\r\nfunction removeColumn(name) {\r\n return {\r\n type: actionTypes.REMOVE_COLUMN,\r\n name\r\n }\r\n}\r\n\r\nfunction replaceDataItem(dataItem, index) {\r\n return {\r\n type: actionTypes.REPLACE_DATA_ITEM,\r\n payload: {\r\n dataItem,\r\n index\r\n }\r\n };\r\n};\r\n\r\nfunction dataItemsLimitError(rowsLimit) {\r\n return errorActions.error(\r\n null,\r\n errorMessages.gridDataItemsLimitExceeded(rowsLimit || constants.gridRowsLimit),\r\n errorMessages.gridDataItemsLimitExceededTitle\r\n );\r\n}\r\n\r\nfunction addDataItems(newItems) {\r\n return (dispatch, getState) => {\r\n const { dataItems = [], rowsLimit } = getState().grid;\r\n const currentItems = dataItems.filter(item => !item.draft);\r\n\r\n if (currentItems.length + newItems.length > rowsLimit) {\r\n return dispatch(dataItemsLimitError(rowsLimit));\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.ADD_DATA_ITEMS,\r\n payload: {\r\n currentItems,\r\n newItems\r\n }\r\n })\r\n };\r\n}\r\n\r\nfunction moveColumnData(fromColumnName, toColumnName) {\r\n return dispatch => {\r\n dispatch(applyOrCancelEdit());\r\n dispatch({\r\n type: actionTypes.MOVE_COLUMN_DATA,\r\n fromColumnName,\r\n toColumnName\r\n });\r\n }\r\n}\r\n\r\nfunction insertDataItems(newItems, index = 0) {\r\n return (dispatch, getState) => {\r\n const { dataItems, rowsLimit } = getState().grid;\r\n const currentItems = dataItems.filter(item => !item.draft);\r\n\r\n if ((currentItems.length + newItems.length) > rowsLimit) {\r\n return dispatch(dataItemsLimitError(rowsLimit));\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.INSERT_DATA_ITEMS,\r\n payload: {\r\n newItems,\r\n index\r\n }\r\n });\r\n };\r\n}\r\n\r\nfunction appendDataItems(dataItems) {\r\n return dispatch => {\r\n dispatch(hideHelp());\r\n dispatch({ type: actionTypes.APPEND_DATA_ITEMS, dataItems });\r\n }\r\n}\r\n\r\nfunction addRow(index) {\r\n return (dispatch, getState) => {\r\n const { headers } = getState().grid;\r\n const empty = createDraftDataItem(headers);\r\n\r\n dispatch(applyOrCancelEdit());\r\n dispatch(insertDataItems([empty], index));\r\n };\r\n}\r\n\r\nfunction moveRowUp(index) {\r\n return dispatch => {\r\n const newIndex = index - 1;\r\n\r\n if (newIndex >= 0) {\r\n dispatch(applyOrCancelEdit());\r\n\r\n dispatch({\r\n type: actionTypes.CHANGE_ROW_ORDER,\r\n payload: {\r\n index,\r\n newIndex\r\n }\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction moveRowDown(index) {\r\n return (dispatch, getState) => {\r\n const newIndex = index + 1;\r\n if (newIndex < getState().grid.rowsLimit) {\r\n dispatch(applyOrCancelEdit());\r\n\r\n dispatch({\r\n type: actionTypes.CHANGE_ROW_ORDER,\r\n payload: { index, newIndex }\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction clearCell() {\r\n return (dispatch, getState) => {\r\n const { position, headers, dataItems } = getState().grid;\r\n const header = headers.find(h => h.name === position.columnName);\r\n const dataItem = dataItems[position.index];\r\n\r\n if (canEdit(header, dataItem)) {\r\n if (header.type === 'file') {\r\n dispatch(addFileToDataItem(null, position));\r\n requestCancelationController.abort(history.location.pathname);\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { ...position, editing: true, editingValue: header.initialValue || '' }\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction setFocus(index, columnName) {\r\n return (dispatch, getState) => {\r\n const { position } = getState().grid;\r\n\r\n if (index !== position.index || columnName !== position.columnName) {\r\n if (position.editing) {\r\n dispatch(applyOrCancelEdit());\r\n }\r\n\r\n dispatch(hideHelp());\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index, columnName }\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction edit() {\r\n return (dispatch, getState) => {\r\n const { position, dataItems, headers } = getState().grid;\r\n const header = headers.find(h => h.name === position.columnName);\r\n const dataItem = dataItems[position.index];\r\n\r\n if (canEdit(header, dataItem)) {\r\n const value = dataItem[position.columnName];\r\n const error = dataItem.errors && dataItem.errors.find(e => e.columnName === position.columnName);\r\n\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: {\r\n ...position,\r\n editing: true,\r\n editingValue: value,\r\n editingError: error && error.message\r\n }\r\n });\r\n\r\n if (header.pattern) {\r\n const normalized = parseValue(String(value), header);\r\n if (header.pattern && !header.pattern.test(normalized)) {\r\n dispatch(editing(header.defaultValue || ''));\r\n }\r\n }\r\n\r\n if (position.columnName === columns.pxTalks.name) {\r\n dispatch(blockInput(true));\r\n dispatch(changePxTalkActions.init('', dataItem.id, dataItem[columns.ticker.name], value));\r\n } else if (position.columnName === columns.color.name) {\r\n dispatch(blockInput(true));\r\n dispatch(changeColorActions.init(dataItem[columns.ticker.name], value));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction canEdit(header, dataItem) {\r\n if (typeof header.readonlyCallback === 'function') {\r\n return !header.readonlyCallback(dataItem);\r\n }\r\n\r\n return !header.readonly;\r\n}\r\n\r\nfunction moveUp() {\r\n return (dispatch, getState) => {\r\n const { position } = getState().grid;\r\n const index = position.index;\r\n\r\n if (index > 0) {\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index: index - 1, columnName: position.columnName }\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction moveDown() {\r\n return (dispatch, getState) => {\r\n const { dataItems, position } = getState().grid;\r\n const index = position.index;\r\n\r\n if (index < dataItems.length - 1) {\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index: index + 1, columnName: position.columnName }\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction moveLeft(moveNextRow) {\r\n return (dispatch, getState) => {\r\n let { headers, position } = getState().grid;\r\n const index = headers.findIndex(h => h.name === position.columnName);\r\n\r\n if (index > 0) {\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index: position.index, columnName: headers[index - 1].name }\r\n });\r\n } else if (moveNextRow && position.index > 0) {\r\n dispatch(moveUp());\r\n let { headers, position } = getState().grid;\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index: position.index, columnName: headers[headers.length - 1].name }\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction moveRight(moveNextRow) {\r\n return (dispatch, getState) => {\r\n let { headers, position } = getState().grid;\r\n const index = headers.findIndex(h => h.name === position.columnName);\r\n\r\n if (index < headers.length - 1) {\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index: position.index, columnName: headers[index + 1].name }\r\n });\r\n } else if (moveNextRow) {\r\n dispatch(moveDown());\r\n let { headers, position } = getState().grid;\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index: position.index, columnName: headers[0].name }\r\n });\r\n\r\n }\r\n };\r\n}\r\n\r\nfunction cancelEdit() {\r\n return (dispatch, getState) => {\r\n const { position } = getState().grid;\r\n\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index: position.index, columnName: position.columnName }\r\n });\r\n }\r\n}\r\n\r\nfunction setInitialPosition(rowIndex = 0, headerIndex = 0) {\r\n return (dispatch, getState) => {\r\n const { headers } = getState().grid;\r\n\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { index: rowIndex, columnName: headers[headerIndex].name }\r\n });\r\n };\r\n}\r\n\r\nfunction clear() {\r\n return dispatch => {\r\n dispatch(applyOrCancelEdit());\r\n dispatch({ type: actionTypes.CLEAR });\r\n dispatch(appendDrafts());\r\n dispatch(setInitialPosition());\r\n dispatch(validate());\r\n };\r\n}\r\n\r\nfunction updateDataItemDraftStatus(rowIndex) {\r\n return (dispatch, getState) => {\r\n const { dataItems, headers } = getState().grid;\r\n const dataItem = dataItems[rowIndex];\r\n\r\n if (dataItem) {\r\n const draft = headers\r\n .every(h => {\r\n const value = dataItem[h.name];\r\n\r\n if (Array.isArray(h.initialValue)) {\r\n return Array.isArray(value) && value.length === 0;\r\n }\r\n\r\n return (value ?? '') === (h.initialValue ?? '');\r\n });\r\n\r\n dispatch({\r\n type: actionTypes.UPDATE_DRAFT,\r\n rowIndex,\r\n draft\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction applyEdit() {\r\n return (dispatch, getState) => {\r\n const { dataItems, position, headers } = getState().grid;\r\n\r\n if (!position || !position.editing) {\r\n return;\r\n }\r\n\r\n const editingHeader = headers.find(h => h.name === position.columnName);\r\n const dataItem = dataItems[position.index];\r\n const editingValue = parseValue(editingHeader.type === 'file' ? dataItem[editingHeader.name] : position.editingValue, editingHeader);\r\n let errors = (dataItem.errors && dataItem.errors.filter(e => e.columnName !== position.columnName)) || [];\r\n\r\n if (position.editingError) {\r\n errors.push({\r\n columnName: position.columnName,\r\n message: position.editingError\r\n });\r\n }\r\n\r\n dispatch({ type: actionTypes.APPLY_EDIT, editingValue, errors });\r\n dispatch(updateDataItemDraftStatus(position.index));\r\n dispatch(appendDrafts());\r\n\r\n const hasColumnDependencies = typeof editingHeader.updateDependencyColumnsCallback === 'function';\r\n if (hasColumnDependencies) {\r\n dispatch(editingHeader.updateDependencyColumnsCallback(position.index));\r\n }\r\n\r\n if (((editingHeader.unique || hasColumnDependencies) &&\r\n dataItem.errors?.find(e => e.columnName === position.columnName)) || editingHeader.headerError) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\n\r\nfunction applyOrCancelEdit() {\r\n return (dispatch, getState) => {\r\n const { position, headers } = getState().grid;\r\n const header = headers.find(c => c.name === position.columnName);\r\n\r\n if (position.editing) {\r\n if (header.cancelOnLeave) {\r\n dispatch(cancelEdit());\r\n } else {\r\n dispatch(applyEdit());\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction parseValue(value, column) {\r\n if (typeof column.parse === 'function') {\r\n return column.parse(value) || value;\r\n } else if (column.type === 'number' || column.type === 'integer') {\r\n if (value === '') {\r\n return undefined;\r\n }\r\n return numericUtils.numberOrDefault(value, value === undefined ? null : value);\r\n } else if (column.type === 'money') {\r\n return moneyUtils.parse(String(value)) || value;\r\n }\r\n\r\n return typeof value === 'string'\r\n ? value.trim()\r\n : value;\r\n}\r\n\r\nfunction orderBy(targetColumnName) {\r\n return (dispatch, getState) => {\r\n if (getState().grid.position.editing) {\r\n dispatch(applyOrCancelEdit());\r\n }\r\n\r\n const { dataItems, orderBy, position, headers } = getState().grid;\r\n\r\n const orderByUpdate = {\r\n columnName: targetColumnName,\r\n direction: orderBy && orderBy.columnName === targetColumnName\r\n ? !orderBy.direction || orderBy.direction === 'asc' ? 'desc' : 'asc'\r\n : 'asc'\r\n };\r\n\r\n const { columnName, direction } = orderByUpdate;\r\n\r\n const column = headers.find(x => x.name === columnName);\r\n\r\n const isNumber = column.type === 'number' || column.type === 'integer';\r\n const isMoney = column.type === 'money';\r\n\r\n const nonDrafts = dataItems.filter(i => !i.draft);\r\n const drafts = dataItems.filter(i => i.draft);\r\n const allSorted = [...getSortedDataItems(nonDrafts), ...drafts];\r\n\r\n dispatch({\r\n type: actionTypes.ORDER_BY,\r\n ordering: { orderBy: orderByUpdate, dataItems: allSorted }\r\n });\r\n\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { ...position, index: 0, columnName: headers[0].name }\r\n });\r\n\r\n function getSortedDataItems(dataItems) {\r\n if (isNumber || isMoney) {\r\n return dataItems.sort(compareNumbers)\r\n } else if (column.name === columns.pxTalks.name) {\r\n return dataItems.sort(comparePxTalks);\r\n } else if (column.name === columns.color.name) {\r\n return dataItems.sort(compareColors);\r\n } else if (column.name === columns.rating.name) {\r\n return dataItems.sort(compareRatings)\r\n }\r\n return dataItems.sort(compareStrings);\r\n }\r\n\r\n function compareNumbers(a, b) {\r\n const valueA = a[columnName];\r\n const valueB = b[columnName];\r\n\r\n return direction === 'asc'\r\n ? compareUtils.compareNumbersWithNullAcs(valueA, valueB)\r\n : compareUtils.compareNumbersWithNullAcs(valueB, valueA);\r\n }\r\n\r\n function compareStrings(a, b) {\r\n const valueA = a[columnName];\r\n const valueB = b[columnName];\r\n\r\n return direction === 'asc'\r\n ? compareUtils.compareStrings(valueA, valueB)\r\n : compareUtils.compareStrings(valueB, valueA);\r\n }\r\n\r\n function comparePxTalks(a, b) {\r\n const valueA = a[columnName];\r\n const valueB = b[columnName];\r\n\r\n if (direction === 'asc') {\r\n const numberA = valueA && valueA.length ? Math.min(...valueA.map(p => p.normalizedLevel)) : Number.MAX_VALUE;\r\n const numberB = valueB && valueB.length ? Math.min(...valueB.map(p => p.normalizedLevel)) : Number.MAX_VALUE;\r\n\r\n return numberA - numberB;\r\n } else {\r\n const numberA = valueA && valueA.length ? Math.max(...valueA.map(p => p.normalizedLevel)) : -1;\r\n const numberB = valueB && valueB.length ? Math.max(...valueB.map(p => p.normalizedLevel)) : -1;\r\n\r\n return numberB - numberA;\r\n }\r\n }\r\n\r\n function compareColors(a, b) {\r\n const valueA = a[columnName] ? formatUtils.formatColor(a[columnName]) : '';\r\n const valueB = b[columnName] ? formatUtils.formatColor(b[columnName]) : '';\r\n\r\n if (direction === 'asc') {\r\n if (valueA && valueB) {\r\n return valueA.localeCompare(valueB);\r\n } else if (valueA && !valueB) {\r\n return Number.MAX_VALUE;\r\n } else {\r\n return Number.MIN_VALUE;\r\n }\r\n }\r\n\r\n return valueB.localeCompare(valueA);\r\n }\r\n\r\n function compareRatings(a, b) {\r\n const valueA = a[columnName];\r\n const valueB = b[columnName];\r\n\r\n if (!Ratings.includes(valueA)) {\r\n return 1;\r\n }\r\n if (!Ratings.includes(valueB)) {\r\n return -1;\r\n }\r\n if (direction === 'asc') {\r\n return compareUtils.compareRating(valueA, valueB);\r\n }\r\n return compareUtils.compareRating(valueB, valueA);\r\n }\r\n }\r\n}\r\n\r\nfunction deleteRow(index) {\r\n return (dispatch, getState) => {\r\n\r\n const { position, dataItems, headers } = getState().grid;\r\n const dataItem = dataItems[index];\r\n\r\n if (position &&\r\n position.index > index &&\r\n position.editing) {\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: { ...position, index: position.index - 1 }\r\n });\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.DELETE_ROW,\r\n index\r\n });\r\n\r\n const empty = createDraftDataItem(headers);\r\n dispatch(appendDataItems([empty]));\r\n\r\n if (dataItem.errors &&\r\n dataItem.errors.some(e => headers.some(h => h.unique && h.name === e.columnName))) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\n\r\nfunction addFileToDataItem(file, position) {\r\n return (dispatch, getState) => {\r\n const { dataItems } = getState().grid;\r\n\r\n const editingDataItem = dataItems[position.index];\r\n\r\n dispatch(replaceDataItem({...editingDataItem, [position.columnName]: file}, position.index));\r\n dispatch(applyEdit());\r\n }\r\n}\r\n\r\n\r\nfunction editing(value) {\r\n return (dispatch, getState) => {\r\n const { position, dataItems, headers } = getState().grid;\r\n\r\n const editingDataItem = dataItems[position.index];\r\n const error = editingDataItem.errors && editingDataItem.errors.find(e => e.columnName === position.columnName);\r\n\r\n let errorMessage = '';\r\n if (error) { //invalidated\r\n const column = headers.find(h => h.name === position.columnName);\r\n errorMessage =\r\n value === editingDataItem[position.columnName]\r\n ? error.message\r\n : validatePropertyValue(value, column, editingDataItem, dataItems).title;\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.EDITING,\r\n editing: { value, errorMessage }\r\n });\r\n }\r\n}\r\n\r\nfunction createDraftDataItem(headers) {\r\n const draft = { draft: true };\r\n for (const header of headers) {\r\n draft[header.name] = header.initialValue;\r\n }\r\n\r\n return draft;\r\n}\r\n\r\nfunction processKeyCode(keyCode, ctrl, meta, shift, deleteDisabled) {\r\n return (dispatch, getState) => {\r\n const { position, selection, dataItems, inputBlocked, headers } = getState().grid;\r\n\r\n if (inputBlocked) {\r\n return;\r\n }\r\n\r\n const isMovement = !shift && ((keyCode >= 37 && keyCode <= 40) || keyCode === 9);\r\n const moveUpOrDown = isMovement && (keyCode === 38 || keyCode === 40);\r\n const isEnteringValue = !ctrl && !meta && keyCode >= 48 && keyCode <= 90; //0-9, A-Z\r\n dispatch(hideHelp());\r\n\r\n const column = headers.find(h => h.name === position.columnName);\r\n const dataItem = position?.index == null ? undefined : dataItems[position.index];\r\n const readonly = column.readonly || dataItem?.readonly;\r\n\r\n if (!(position && column) && isMovement) {\r\n dispatch(setInitialPosition());\r\n } else {\r\n if ((isMovement || shift) && position.editing) {\r\n if (column.type === 'select' || moveUpOrDown || keyCode === 9) {\r\n dispatch(applyOrCancelEdit());\r\n } else {\r\n return;\r\n }\r\n } else if (isEnteringValue && !position.editing && !readonly) {\r\n dispatch(clearCell());\r\n }\r\n\r\n switch (keyCode) {\r\n case 13: position.editing\r\n ? !column.cancelOnLeave && dispatch(applyEdit())\r\n : !readonly && dispatch(edit());\r\n break;\r\n case 27: dispatch(cancelEdit()); break;\r\n case 37: dispatch(moveLeft()); break;\r\n case 38: shift\r\n ? dispatch(selectTop(selection, position))\r\n : dispatch(moveUp()); break;\r\n case 9: shift\r\n ? dispatch(moveLeft(true))\r\n : dispatch(moveRight(true));\r\n break;\r\n case 39: dispatch(moveRight()); break;\r\n case 40: shift\r\n ? dispatch(selectBottom(selection, position, dataItems.length))\r\n : dispatch(moveDown()); break;\r\n case 8:\r\n case 46: {\r\n if (selection.length && !deleteDisabled) {\r\n dispatch(deleteSelected());\r\n } else if (!readonly && position && !position.editing) {\r\n dispatch(clearCell());\r\n }\r\n break;\r\n }\r\n default:\r\n dispatch({ type: actionTypes.SAME_POSITION });\r\n };\r\n }\r\n }\r\n}\r\n\r\nfunction selectRow(index, ctrl, shift) {\r\n const { selection, position } = store.getState().grid;\r\n if (ctrl) {\r\n const selectedIndex = selection.indexOf(index);\r\n\r\n return selectedIndex >= 0\r\n ? setSelection(arrayUtils.removeAt(selection, selectedIndex))\r\n : setSelection([...new Set([...selection, index])]);\r\n } else if (shift) {\r\n const start = Math.min(index, position.index);\r\n const end = Math.max(index, position.index);\r\n const indexes = arrayUtils.arrayFromRange(start, end);\r\n\r\n return setSelection([...arrayUtils.removeMany(selection, indexes), ...indexes]);\r\n }\r\n\r\n return setSelection([index]);\r\n}\r\n\r\nfunction selectTop(selection, position) {\r\n if (selection.length > 0) {\r\n const lastSelectedIndex = selection[selection.length - 1];\r\n if (lastSelectedIndex > 0) {\r\n const nextIndex = lastSelectedIndex - 1;\r\n const reverse =\r\n selection.indexOf(nextIndex) >= 0 &&\r\n selection.indexOf(lastSelectedIndex + 1) < 0;\r\n\r\n return reverse\r\n ? setSelection(arrayUtils.removeRight(selection)) // reset selection of last selected row\r\n : setSelection([...selection.filter(i => i !== nextIndex), nextIndex]);\r\n }\r\n } else if (position && position.index) {\r\n return setSelection([position.index]);\r\n }\r\n\r\n return { type: actionTypes.SAME_POSITION };\r\n}\r\n\r\nfunction selectBottom(selection, position, limit) {\r\n if (selection.length > 0) {\r\n const lastSelectedIndex = selection[selection.length - 1];\r\n if (lastSelectedIndex < limit - 1) {\r\n const nextIndex = lastSelectedIndex + 1;\r\n const reverse =\r\n selection.indexOf(nextIndex) >= 0 &&\r\n selection.indexOf(lastSelectedIndex - 1) < 0;\r\n\r\n return reverse\r\n ? setSelection(arrayUtils.removeRight(selection)) // reset selection of last selected row\r\n : setSelection([...selection.filter(i => i !== nextIndex), nextIndex]);\r\n }\r\n } else if (position) {\r\n return setSelection([position.index]);\r\n }\r\n\r\n return { type: actionTypes.SAME_POSITION };\r\n}\r\n\r\nfunction setSelection(selection) {\r\n return (dispatch, getState) => {\r\n const { headers, position } = getState().grid;\r\n\r\n if (position.editing) {\r\n dispatch(applyOrCancelEdit());\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.POSITION_CHANGE,\r\n position: {\r\n index: selection.length ? selection[selection.length - 1] : 0,\r\n columnName: headers[0].name\r\n }\r\n });\r\n\r\n dispatch({\r\n type: actionTypes.SET_SELECTION,\r\n selection\r\n });\r\n }\r\n}\r\n\r\nfunction appendDrafts() {\r\n return (dispatch, getState) => {\r\n const { dataItems, headers, rowsLimit, minDrafts } = getState().grid;\r\n\r\n if (dataItems.length < rowsLimit) {\r\n const draftCountToAdd = minDrafts ? calculateMinDraftToAdd(dataItems, minDrafts) : calculateFixedGridDraftToAdd(dataItems, rowsLimit);\r\n\r\n if (draftCountToAdd > 0) {\r\n const draft = createDraftDataItem(headers);\r\n const drafts = Array(draftCountToAdd).fill(draft);\r\n dispatch(appendDataItems(drafts));\r\n }\r\n }\r\n }\r\n\r\n function calculateMinDraftToAdd(dataItems, minDrafts) {\r\n const nonDraftCount = dataItems.filter((i) => !i.draft).length;\r\n\r\n return minDrafts - nonDraftCount;\r\n }\r\n\r\n function calculateFixedGridDraftToAdd(dataItems, rowsLimit) {\r\n return rowsLimit - dataItems.length;\r\n }\r\n}\r\n\r\nfunction deleteSelected() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.DELETE_SELECTED });\r\n dispatch(setInitialPosition());\r\n dispatch(validate());\r\n }\r\n}\r\n\r\nfunction deleteDataItemsWithErrors() {\r\n return dispatch => {\r\n dispatch(validate());\r\n dispatch({ type: actionTypes.DELETE_INVALID });\r\n dispatch(appendDrafts());\r\n dispatch(validate());\r\n }\r\n}\r\n\r\nfunction deleteFlaggedDataItems() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.DELETE_FLAGGED });\r\n dispatch(appendDrafts());\r\n dispatch(validate());\r\n }\r\n}\r\n\r\nfunction validate() {\r\n return (dispatch, getState) => {\r\n const { position } = getState().grid;\r\n\r\n if (position.editing) {\r\n dispatch(applyOrCancelEdit());\r\n }\r\n\r\n const { dataItems, headers } = getState().grid;\r\n\r\n const drafts = dataItems.filter(s => s.draft);\r\n const dirty = dataItems.filter(s => !s.draft);\r\n\r\n const validationResult = dirty.map(s =>\r\n validateDataItem(\r\n headers,\r\n { ...s },\r\n dirty)\r\n );\r\n\r\n const validatedHeaders = validateHeaders(headers, dataItems);\r\n\r\n const isValid =\r\n validatedHeaders.every(h => !h.headerError) &&\r\n validationResult.length > 0 &&\r\n validationResult.every(s => s.errors.length === 0);\r\n\r\n validationResult.push(...drafts);\r\n\r\n dispatch({\r\n type: actionTypes.VALIDATE,\r\n validation: {\r\n headers: validatedHeaders,\r\n dataItems: validationResult,\r\n isValid\r\n }\r\n });\r\n };\r\n}\r\n\r\nfunction validateHeaders(headers, dataItems) {\r\n return headers.map(column => {\r\n if (typeof column.validateHeader === 'function') {\r\n return { ...column, headerError: column.validateHeader(dataItems) }\r\n }\r\n return column;\r\n })\r\n}\r\n\r\nfunction validateDataItem(headers, dataItem, dataItems) {\r\n dataItem.errors = headers\r\n .map(h => {\r\n const message = validatePropertyValue(dataItem[h.name], h, dataItem, dataItems);\r\n return message.title ? { columnName: h.name, message: message.title, isDuplicated: message.isDuplicated } : null;\r\n })\r\n .filter(e => e);\r\n\r\n return dataItem;\r\n}\r\n\r\nfunction validatePropertyValue(value, column, dataItem, dataItems) {\r\n const title = column.titleForError || column.title;\r\n if (column.required && (value == null || value.length === 0)) {\r\n const { required = '' } = column.errorMessages || {};\r\n return { title: required || `${title} is required` };\r\n }\r\n\r\n if (typeof column.validate === 'function') {\r\n const error = column.validate(value, dataItem, dataItems);\r\n if (error) {\r\n return { title: error };\r\n }\r\n }\r\n\r\n if (!stringUtils.isNullOrEmpty(value)) {\r\n if (column.type === 'number' || column.type === 'money' || column.type === 'integer') {\r\n const number = parseValue(value, column);\r\n if (!numericUtils.isNumber(number)) {\r\n return { title: `${title} should be a number` };\r\n }\r\n\r\n if (column.type === 'integer' && !/^[0-9]*$/.test(number)) {\r\n return { title: `${title} should be an integer number` };\r\n }\r\n\r\n const min = typeof column.min === 'function' ? column.min(dataItem) : column.min;\r\n const max = typeof column.max === 'function' ? column.max(dataItem) : column.max;\r\n\r\n if (min != null && max != null) {\r\n if (number < min || number > max) {\r\n return { title: `${title} should be in the range of ${column.format(min)} to ${column.format(max)}` };\r\n }\r\n } else if (min != null && number < min) {\r\n return { title: `${title} should be greater than or equal to ${column.format(min)}` };\r\n } else if (max != null && number > max) {\r\n return { title: `${title} should be less than or equal to ${column.format(max)}` };\r\n }\r\n }\r\n\r\n if (column.length && value.length > column.length) {\r\n return { title: `${title} can be ${column.length} characters max` };\r\n }\r\n\r\n if (column.pattern && !column.pattern.test(String(parseValue(value, column)))) {\r\n return { title: `${title} is invalid` };\r\n }\r\n\r\n if (column.unique) {\r\n const duplicates =\r\n dataItems.filter(item =>\r\n String(value).localeCompare(\r\n item[column.name] || '',\r\n undefined,\r\n { sensitivity: 'accent' }) === 0);\r\n\r\n if (duplicates.length > 1) {\r\n return { title: `${title} is not unique`, isDuplicated: true };\r\n }\r\n }\r\n\r\n let source = column.selectSourceItemsCallback ? column.selectSourceItemsCallback() : [];\r\n const { contactsSave } = store.getState();\r\n if (column.name === columns.company.name) {\r\n source = contactsSave.companies.map(c => c.name);\r\n } else if (column.name === columns.ticker.name) {\r\n if (value.length > columns.ticker.length || !isTickerValid(value)) {\r\n return { title: `${title} is invalid` };\r\n }\r\n }\r\n\r\n if (source.length) {\r\n const errorMessage = validateRange(column.name, value, source);\r\n if (errorMessage) {\r\n return { title: errorMessage };\r\n }\r\n }\r\n }\r\n\r\n return { title: '' };\r\n}\r\n\r\nfunction isTickerValid(ticker) {\r\n const index = ticker.lastIndexOf(' ');\r\n return index > 0 && index < ticker.length - 1;\r\n}\r\n\r\nfunction validateRange(columnName, value, allowedValues) {\r\n const isValid = allowedValues.some(a =>\r\n String(a.key ?? a).localeCompare(value, undefined, { sensitivity: 'accent' }) === 0);\r\n\r\n if (!isValid) {\r\n return `${columnName} is not valid`;\r\n }\r\n}\r\n\r\nfunction showHelp() {\r\n return { type: actionTypes.SHOW_HELP };\r\n}\r\n\r\nfunction hideHelp() {\r\n return (dispatch, getState) => {\r\n const { showHelp } = getState().grid;\r\n\r\n if (showHelp) {\r\n dispatch({ type: actionTypes.HIDE_HELP });\r\n }\r\n }\r\n}\r\n\r\nfunction setUploadState(status, progress = 0, filename) {\r\n return (dispatch, getState) => {\r\n const { upload } = getState().grid;\r\n\r\n if (upload.status !== uploadStatus.uploading ||\r\n upload.progress === 100 ||\r\n status === uploadStatus.uploading) {\r\n dispatch({\r\n type: actionTypes.DATA_ITEMS_UPLOAD_STATE,\r\n state: { status, progress: Math.floor(progress), filename }\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return { type: actionTypes.RESET };\r\n}\r\n\r\nfunction blockInput(block) {\r\n return (dispatch, getState) => {\r\n const { inputBlocked } = getState().grid;\r\n\r\n if (inputBlocked !== block) {\r\n dispatch({\r\n type: actionTypes.BLOCK_INPUT,\r\n block\r\n })\r\n }\r\n };\r\n}\r\n\r\nfunction dataProcessing(isDataProcessing) {\r\n return {\r\n type: actionTypes.DATA_PROCESSING,\r\n isDataProcessing\r\n };\r\n}\r\n","import { createAsyncAction, ActionType, createAction } from 'typesafe-actions';\r\nimport { HelpResourceCategory } from '../types/help-resources/HelpResourceCategory';\r\nimport { HelpResourceArticle } from '../types/help-resources/HelpResourceArticle';\r\nimport { HelpResourceSearchItem } from '../types/help-resources/HelpResourceSearch';\r\n\r\nexport type TResourcesActions = ActionType<\r\n typeof fetchCategories |\r\n typeof fetchSection |\r\n typeof fetchBySearch |\r\n typeof loadMoreSearch |\r\n typeof resetSection |\r\n typeof resetSearch\r\n>;\r\n\r\ninterface SuccessSectionDetails {\r\n categoryName: string;\r\n sectionName: string;\r\n articles: HelpResourceArticle[];\r\n}\r\n\r\nconst fetchSection = createAsyncAction(\r\n 'help-resources/REQUEST_SECTION_DETAILS',\r\n 'help-resources/SUCCESS_SECTION_DETAILS',\r\n 'help-resources/FAILURE_SECTION_DETAILS'\r\n)<{ sectionId: number }, SuccessSectionDetails, Error>()\r\n\r\nconst fetchCategories = createAsyncAction(\r\n 'help-resources/REQUEST_CATEGORIES',\r\n 'help-resources/SUCCESS_CATEGORIES',\r\n 'help-resources/FAILURE_CATEGORIES'\r\n)()\r\n\r\nconst fetchBySearch = createAsyncAction(\r\n 'help-resources/REQUEST_SEARCH',\r\n 'help-resources/SUCCESS_SEARCH',\r\n 'help-resources/FAILURE_SEARCH'\r\n)<{ search: string, categoryId: number | null }, { results: HelpResourceSearchItem[], totalRecordNumber: number }, Error>()\r\n\r\nconst loadMoreSearch = createAsyncAction(\r\n 'help-resources/REQUEST_LOAD_MORE_SEARCH',\r\n 'help-resources/SUCCESS_LOAD_MORE_SEARCH',\r\n 'help-resources/FAILURE_LOAD_MORE_SEARCH'\r\n)<{ search: string, categoryId: number | null, page: number }, { results: HelpResourceSearchItem[], totalRecordNumber: number }, Error>()\r\n\r\nconst resetSection = createAction('help-resources/RESET_SECTION');\r\nconst resetSearch = createAction('help-resources/RESET_SEARCH');\r\n\r\nexport const helpResourcesActions = {\r\n fetchCategories,\r\n fetchSection,\r\n fetchBySearch,\r\n loadMoreSearch,\r\n resetSection,\r\n resetSearch\r\n}","import { createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { StatisticsAlertOption } from \"../types/amr-pipeline/enums/AlertOption\";\r\nimport { AlertOption } from \"../types/email-preferences/EmailPreferences\";\r\nimport { PipelineType } from '../types/amr-pipeline/enums/PipelineType';\r\nimport { UserConfigBase, ImUserConfig, UserConfigFilterType, CompanyAlertsValue } from \"../types/user-config/UserConfig\";\r\nimport { UserConfigFilter, UserFilterAlertStatus } from \"../types/user-config/UserConfigFilter\";\r\nimport { UserConfigType } from \"../types/user-config/UserConfigType\";\r\nimport { UserConfigTransaction } from \"../types/user-config/UserConfigTransaction\";\r\n\r\nconst getUserConfig = createAction(\r\n 'userconfig/get/REQUEST',\r\n resolve => (callback?: () => void) => resolve({ callback })\r\n);\r\n\r\nconst getUserConfigResult = createAction('userconfig/get/REQUEST_RESULT',\r\n resolve => (requestResult: RequestState, userConfig?: ImUserConfig[]) =>\r\n resolve({ requestResult, userConfig })\r\n);\r\n\r\nconst getUserFilterConfig = createAction(\r\n 'userconfig/get/filter/REQUEST',\r\n resolve => (configType?: UserConfigType.imFilter | UserConfigType.apFilter) => resolve({ configType })\r\n);\r\n\r\nconst getUserFilterConfigResult = createAction('userconfig/get/filter/REQUEST_RESULT',\r\n resolve => (requestResult: RequestState, userConfig?: ImUserConfig[]) =>\r\n resolve({ requestResult, userConfig })\r\n);\r\n\r\nconst updateUserConfig = createAction(\r\n 'userconfig/update/REQUEST',\r\n resolve => (userConfig: UserConfigBase[]) => {\r\n const imUserConfig: ImUserConfig[] = userConfig.map(config => ({\r\n ...config,\r\n value: JSON.stringify(config.value),\r\n }));\r\n\r\n return resolve({ userConfig: imUserConfig });\r\n },\r\n);\r\n\r\nconst updateUserConfigResult = createAction(\r\n 'userconfig/update/REQUEST_RESULT',\r\n resolve => (requestResult: RequestState, userConfig?: ImUserConfig[]) =>\r\n resolve({ requestResult, userConfig })\r\n);\r\n\r\nconst reset = createAction('userconfig/RESET');\r\n\r\nconst getDefaultUserColumnsConfig = createAction('userconfig/columns/default/REQUEST');\r\n\r\nconst getDefaultUserColumnsConfigResult = createAction(\r\n 'userconfig/columns/default/REQUEST_RESULT',\r\n resolve => (requestResult: RequestState, columnConfig?: ImUserConfig[]) =>\r\n resolve({ requestResult, columnConfig })\r\n);\r\n\r\nconst selectUserFilter = createAction(\r\n 'userconfig/filter/select/REQUEST',\r\n resolve => (userFilter: UserConfigFilter) =>\r\n resolve(userFilter)\r\n)\r\nconst createUserFilter = createAction(\r\n 'userconfig/filter/create/REQUEST',\r\n resolve => (pipelineType: PipelineType, userFilter: { name: string; default: boolean; alertOption: AlertOption }) =>\r\n resolve({ pipelineType, userFilter })\r\n);\r\n\r\nconst createUserFilterResult = createAction(\r\n 'userconfig/filter/create/REQUEST_RESULT',\r\n resolve => (requestResult: RequestState, userConfigFilter?: UserConfigFilter) =>\r\n resolve({ requestResult, userConfigFilter })\r\n);\r\n\r\nconst updateUserFilter = createAction(\r\n 'userconfig/filter/update/REQUEST',\r\n resolve => (pipelineType: PipelineType, userFilter: { referenceName: string; name: string; default: boolean; alertOption: AlertOption }) =>\r\n resolve({ pipelineType, userFilter })\r\n);\r\n\r\nconst updateUserFilterResult = createAction(\r\n 'userconfig/filter/update/REQUEST_RESULT',\r\n resolve => (requestResult: RequestState, userConfigFilter?: UserConfigFilter) =>\r\n resolve({ requestResult, userConfigFilter })\r\n);\r\n\r\nconst setUserFilterParams = createAction(\r\n 'userconfig/filter/set_params/REQUEST',\r\n resolve => (params: Partial, filterType: UserConfigFilterType) =>\r\n resolve({ filterType, ...params }),\r\n);\r\n\r\nconst setUserFilterParamsResult = createAction(\r\n 'userconfig/filter/set_params/REQUEST_RESULT',\r\n resolve => (requestResult: RequestState, filterType: UserConfigFilterType, userConfigFilter?: UserConfigFilter) =>\r\n resolve({ requestResult, filterType, userConfigFilter })\r\n);\r\n\r\nconst deleteUserFilter = createAction(\r\n 'userconfig/filter/delete/REQUEST',\r\n resolve => (referenceName: string, filterType: UserConfigFilterType) => resolve({ referenceName, filterType })\r\n);\r\n\r\nconst deleteUserFilterResult = createAction(\r\n 'userconfig/filter/delete/REQUEST_RESULT',\r\n resolve => (requestResult: RequestState, filterType: UserConfigFilterType, referenceName?: string) =>\r\n resolve({ requestResult, referenceName, filterType })\r\n);\r\n\r\nconst updateUserFilterEmailAlerts = createAction(\r\n 'userconfig/filter/email-alerts/update/REQUEST',\r\n resolve => (\r\n singleUpdateAlertOption: AlertOption,\r\n newTransactionAlertOption: AlertOption,\r\n statisticAlertOption: StatisticsAlertOption,\r\n filterEmailAlerts: UserFilterAlertStatus[]\r\n ) => resolve({ singleUpdateAlertOption, newTransactionAlertOption, statisticAlertOption, filterEmailAlerts })\r\n);\r\n\r\nconst saveTransactionAlerts = createAction(\r\n 'userconfig/transaction/alerts/save/REQUEST',\r\n resolve => (configs: {type: UserConfigType, value: UserConfigTransaction}[]) => resolve({ configs })\r\n);\r\n\r\nconst saveCompanyAlerts = createAction(\r\n 'userconfig/company/alerts/save/REQUEST',\r\n resolve => (configs: {type: UserConfigType, value: CompanyAlertsValue}[]) => resolve({ configs }));\r\n\r\n\r\n\r\nexport const imUserConfigActions = {\r\n getUserConfig,\r\n getUserConfigResult,\r\n getUserFilterConfig,\r\n getUserFilterConfigResult,\r\n updateUserConfig,\r\n updateUserConfigResult,\r\n saveTransactionAlerts,\r\n saveCompanyAlerts,\r\n getDefaultUserColumnsConfig,\r\n getDefaultUserColumnsConfigResult,\r\n reset,\r\n selectUserFilter,\r\n createUserFilter,\r\n updateUserFilter,\r\n createUserFilterResult,\r\n updateUserFilterResult,\r\n setUserFilterParams,\r\n setUserFilterParamsResult,\r\n deleteUserFilter,\r\n deleteUserFilterResult,\r\n updateUserFilterEmailAlerts,\r\n};\r\n","import * as moment from 'moment';\r\nimport { constants, errorMessages, gridColumns, securitiesActions as actionTypes, uploadStatus } from '../constants';\r\nimport { bwicService, daysService } from '../services';\r\nimport { changeColorActions, changePxTalkActions, errorActions, gridActions } from '.';\r\nimport { processActions } from './process.actions';\r\nimport { dateTimeUtils } from '../utils';\r\nimport { history } from '../history';\r\nimport { appConfig } from '../app-config';\r\n\r\nexport const securitiesActions = {\r\n init,\r\n reset,\r\n uploadSecurities,\r\n insertSelectedSecurity,\r\n handleClipboardData,\r\n savePxTalks,\r\n saveColor,\r\n validateTradeLimits,\r\n setFlaggedModal,\r\n insertSecurityFromQueryParams\r\n};\r\n\r\nfunction init(positions, headers, rowsLimit = constants.gridRowsLimit, loadBwicDates = false, queryParams = '') {\r\n return async (dispatch, getState) => {\r\n const { securities, grid } = getState();\r\n\r\n if (securities.isInitializing || grid.headers) {\r\n return;\r\n }\r\n\r\n try {\r\n dispatch(initializing(true));\r\n if (loadBwicDates) {\r\n const day = await daysService.getNextBusinessDate();\r\n const year = new Date(day).getFullYear();\r\n\r\n const currentYearHolidaysPromise = appConfig.canCreateBwicOnUSFederalHolidays\r\n ? Promise.resolve([])\r\n : daysService.getHolidays(year);\r\n const nextYearHolidaysPromise = appConfig.canCreateBwicOnUSFederalHolidays\r\n ? Promise.resolve([])\r\n : daysService.getHolidays(year + 1);\r\n\r\n const todayIsBusinessDayPromise = daysService.isBusinessDay(new Date());\r\n\r\n const currentYearHolidays = await currentYearHolidaysPromise;\r\n const nextYearHolidays = await nextYearHolidaysPromise;\r\n const todayIsBusinessDay = await todayIsBusinessDayPromise;\r\n\r\n const holidays = [...currentYearHolidays, ...nextYearHolidays];\r\n\r\n const minDate = todayIsBusinessDay\r\n ? moment().startOf('day').toDate()\r\n : moment.utc(day).startOf('day').toDate();\r\n\r\n dispatch(processActions.setMinDate(minDate));\r\n dispatch(processActions.setHolidays(holidays));\r\n\r\n dispatch(processActions.storeNextBusiessDay(day));\r\n dispatch(processActions.changeDate(day));\r\n dispatch(processActions.changeBidsDueTime(dateTimeUtils.timestampToUtcString(constants.bidDueDefaultTimestamp)));\r\n dispatch(processActions.changeGoodUntilTime(dateTimeUtils.timestampToUtcString(constants.goodUntilDefaultTimestamp)));\r\n\r\n const { state = {} } = history.location;\r\n const { dateTime } = state;\r\n\r\n if (dateTime) {\r\n const date = moment(dateTime, constants.dateTimeFormatUtc).format('YYYY-MM-DD[T]00:00:00');\r\n const time = moment(dateTime, constants.formatTimeStringWithoutTimeZone).format('hh A');\r\n const dueTime = dateTimeUtils.timestampToUtcString(time);\r\n dispatch(processActions.changeDate(date));\r\n dispatch(processActions.changeBidsDueTime(dueTime));\r\n }\r\n }\r\n\r\n const columns = (headers || gridColumns.securitiesWithoutPxTalkAndColor())\r\n .map(c => {\r\n if (c.name === gridColumns.isinCusip.name) {\r\n return {\r\n ...c,\r\n type: 'lookup',\r\n lookup: {\r\n compareCallback: (searchTerm, lookupItem) => {\r\n const security = lookupItem.payload;\r\n return (\r\n security.isin?.toLowerCase().startsWith(searchTerm) ||\r\n security.cusip?.toLowerCase().startsWith(searchTerm)\r\n );\r\n },\r\n fetchCallback: async (searchTerm, abortSignal) => {\r\n const securities = await bwicService.searchSecuritiesGlobal(searchTerm, false, abortSignal);\r\n return securities.map(s => ({\r\n text: s.isinCusip,\r\n description: s.ticker,\r\n payload: s\r\n }))\r\n },\r\n onLookupItemSelected: lookupItem => dispatch(insertSelectedSecurity(lookupItem.payload))\r\n }\r\n };\r\n } else if (c.name === gridColumns.ticker.name) {\r\n return {\r\n ...c,\r\n type: 'lookup',\r\n lookup: {\r\n fetchCallback: async (searchTerm, abortSignal) => {\r\n const securities = await bwicService.searchSecuritiesGlobal(searchTerm, true, abortSignal);\r\n return securities.map(s => ({\r\n text: s.ticker,\r\n description: s.isinCusip,\r\n payload: s\r\n }))\r\n },\r\n onLookupItemSelected: lookupItem => dispatch(insertSelectedSecurity(lookupItem.payload))\r\n }\r\n };\r\n }\r\n\r\n return c;\r\n })\r\n\r\n if (queryParams.toString().length > 0) {\r\n dispatch(securitiesActions.insertSecurityFromQueryParams(queryParams))\r\n }\r\n\r\n dispatch(gridActions.init(positions, columns, rowsLimit));\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch(initializing(false));\r\n }\r\n }\r\n}\r\n\r\nfunction insertSecurityFromQueryParams(queryParams) {\r\n return dispatch => {\r\n const tickers = queryParams.get('tickers');\r\n const isins = queryParams.get('isins');\r\n const cusips = queryParams.get('cusips');\r\n\r\n const tickersQueryParams = tickers ? tickers.split(',') : [];\r\n const isinsQueryParams = isins ? isins.split(',') : [];\r\n const cusipsQueryParams = cusips ? cusips.split(',') : [];\r\n\r\n const securityFromQueryParams = [...tickersQueryParams, ...isinsQueryParams, ...cusipsQueryParams].join('\\n');\r\n\r\n dispatch(securitiesActions.handleClipboardData(securityFromQueryParams))\r\n };\r\n}\r\n\r\nfunction initializing(isInitializing) {\r\n return {\r\n type: actionTypes.INITIALIZING,\r\n isInitializing\r\n };\r\n}\r\n\r\nfunction uploadSecurities(file, mergeWithPrevious) {\r\n return (dispatch, getState) => {\r\n const { position, upload, mountedKey } = getState().grid;\r\n\r\n if (upload.status === uploadStatus.uploading) {\r\n return;\r\n }\r\n\r\n const extension = (file.name.split('.').pop() || '').toLowerCase();\r\n\r\n if (extension !== 'csv' && extension !== 'xlsx') {\r\n dispatch(errorActions.error(\r\n null,\r\n errorMessages.invalidFileType,\r\n 'Invalid file type.'\r\n ));\r\n return;\r\n\r\n } else if (file.size > constants.gridFileUploadMaximumSize * 1024 * 1024) {\r\n dispatch(errorActions.error(\r\n null,\r\n errorMessages.fileSizeLimitExceeded(constants.gridFileUploadMaximumSize),\r\n 'The file is too big.'\r\n ));\r\n return;\r\n }\r\n\r\n if (position.editing) {\r\n dispatch(gridActions.applyOrCancelEdit());\r\n }\r\n\r\n bwicService\r\n .uploadSecurities(file, progress)\r\n .then(success, failure);\r\n\r\n dispatch(gridActions.setUploadState(uploadStatus.uploading, 0, file.name));\r\n\r\n function success(positions) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (mountedKey === currentMountedKey) {\r\n if (mergeWithPrevious) {\r\n positions.forEach(s => normalizeParsedInventoryPosition(s));\r\n const dataItems = getState().grid.dataItems.filter((i) => !i.draft);\r\n const merged = mergeDataItems(dataItems, positions);\r\n dispatch(gridActions.clear());\r\n dispatch(gridActions.addDataItems(merged));\r\n dispatch(ensureFlaggedModalShown(merged));\r\n } else {\r\n positions.forEach(s => setSecurityNew(s));\r\n dispatch(gridActions.addDataItems(positions));\r\n }\r\n dispatch(gridActions.validate());\r\n setTimeout(\r\n () => dispatch(gridActions.setUploadState(uploadStatus.none)),\r\n 500\r\n );\r\n }\r\n }\r\n\r\n function failure(e) {\r\n dispatch(gridActions.setUploadState(uploadStatus.none));\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (mountedKey === currentMountedKey) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n\r\n function progress(e) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (e.lengthComputable && mountedKey === currentMountedKey) {\r\n var percentComplete = (e.loaded / e.total) * 100;\r\n dispatch(gridActions.setUploadState(uploadStatus.uploading, percentComplete, file.name));\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch(gridActions.reset());\r\n dispatch({ type: actionTypes.RESET });\r\n };\r\n}\r\n\r\nfunction insertSelectedSecurity(security) {\r\n return (dispatch, getState) => {\r\n const { position, dataItems } = getState().grid;\r\n const { size, errors } = dataItems[position.index] || {};\r\n\r\n const dataItem = {\r\n ...security,\r\n id: undefined,\r\n securityId: security.id,\r\n size\r\n };\r\n\r\n dispatch(gridActions.cancelEdit());\r\n dispatch(gridActions.replaceDataItem(dataItem, position.index));\r\n\r\n if (errors && errors.length) {\r\n // trigger validation to resolve duplicate errors\r\n dispatch(gridActions.validate());\r\n }\r\n }\r\n}\r\n\r\nfunction handleClipboardData(clipboardData, mergeWithPrevious) {\r\n return (dispatch, getState) => {\r\n const { position = { index: 0 } } = getState().grid;\r\n\r\n dispatch(gridActions.dataProcessing(true));\r\n\r\n bwicService\r\n .parseSecuritiesStirng(clipboardData)\r\n .then(success, e => dispatch(errorActions.unexpectedError(e)))\r\n .finally(() => dispatch(gridActions.dataProcessing(false)));\r\n\r\n function success(securities) {\r\n if (mergeWithPrevious) {\r\n securities.forEach(s => normalizeParsedInventoryPosition(s));\r\n const dataItems = getState().grid.dataItems.filter((i) => !i.draft);\r\n const merged = mergeDataItems(dataItems, securities);\r\n dispatch(gridActions.clear());\r\n dispatch(gridActions.addDataItems(merged));\r\n dispatch(ensureFlaggedModalShown(merged));\r\n } else {\r\n securities.forEach(s => setSecurityNew(s));\r\n dispatch(gridActions.insertDataItems(securities, position.index));\r\n }\r\n dispatch(gridActions.validate());\r\n }\r\n };\r\n}\r\n\r\nfunction mergeDataItems(\r\n actualItems,\r\n updatedItems) {\r\n if (!actualItems.length) {\r\n return updatedItems.map(i => ({ ...i, isNew: true }));\r\n }\r\n\r\n const actualItemsCopy = [...actualItems].map(el => ({ ...el, isFlagged: true }));\r\n const newItems = [];\r\n\r\n updatedItems.forEach(u => {\r\n const actualIndex = actualItems.findIndex(a => a.securityId && a.securityId === u.securityId);\r\n if (actualIndex < 0) {\r\n newItems.push({ ...u, isNew: true });\r\n } else if (!isEqual(actualItems[actualIndex], u)) {\r\n actualItemsCopy[actualIndex] = { ...u, isUpdate: true };\r\n } else {\r\n actualItemsCopy[actualIndex] = { ...actualItems[actualIndex], isUpdate: false, isNew: false, isFlagged: false };\r\n }\r\n });\r\n\r\n return actualItemsCopy.concat(newItems);\r\n}\r\n\r\nfunction isEqual(actual, update) {\r\n const valueOrEmpty = (value) => value ?? '';\r\n\r\n return (\r\n actual.securityId === update.securityId &&\r\n actual.isinCusip === update.isinCusip &&\r\n valueOrEmpty(actual.size) === valueOrEmpty(update.size) &&\r\n actual.ticker === update.ticker &&\r\n valueOrEmpty(actual.currency) === valueOrEmpty(update.currency) &&\r\n valueOrEmpty(actual.rating) === valueOrEmpty(update.rating)\r\n );\r\n}\r\n\r\nfunction setSecurityNew(security) {\r\n security.isNew = true;\r\n security.securityId = security.id;\r\n security.id = undefined;\r\n}\r\n\r\nfunction normalizeParsedInventoryPosition(security) {\r\n security.securityId = security.id;\r\n security.id = undefined;\r\n}\r\n\r\nfunction setFlaggedModal(isFlaggedModalVisible) {\r\n return {\r\n type: actionTypes.SECURITIES_SET_FLAGGED_MODAL,\r\n isFlaggedModalVisible\r\n };\r\n}\r\n\r\nconst ensureFlaggedModalShown = (merged) => {\r\n return (dispatch) => {\r\n const isFlaggedExists = merged.some((item => item.isFlagged));\r\n if (isFlaggedExists) {\r\n dispatch(setFlaggedModal(true));\r\n }\r\n }\r\n}\r\n\r\nfunction savePxTalks() {\r\n return (dispatch, getState) => {\r\n const { pxTalks } = getState().changePxTalk;\r\n if (pxTalks.every(p => !p.error)) {\r\n dispatch(gridActions.editing(pxTalks));\r\n dispatch(gridActions.applyEdit());\r\n dispatch(changePxTalkActions.reset());\r\n dispatch(gridActions.blockInput(false));\r\n }\r\n };\r\n}\r\n\r\nfunction saveColor() {\r\n return (dispatch, getState) => {\r\n const { color, errors } = getState().changeColor;\r\n if (errors.isValid) {\r\n dispatch(gridActions.editing(color));\r\n dispatch(gridActions.applyEdit());\r\n dispatch(changeColorActions.reset());\r\n dispatch(gridActions.blockInput(false));\r\n }\r\n };\r\n}\r\n\r\nfunction validateTradeLimits() {\r\n return async (dispatch, getState) => {\r\n const { process, grid } = getState();\r\n const positions = grid.dataItems.filter(item => !item.draft);\r\n\r\n if (!process.date && !positions.length) return;\r\n\r\n dispatch({ type: actionTypes.VALIDATE_TRADE_LIMITS_REQUEST });\r\n\r\n try {\r\n await bwicService.validateTradeLimits(process.date, process.bidsDue, process.timeZone, positions);\r\n dispatch({ type: actionTypes.VALIDATE_TRADE_LIMITS_SUCCESS });\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n dispatch({ type: actionTypes.VALIDATE_TRADE_LIMITS_ERROR });\r\n }\r\n }\r\n\r\n}\r\n","import { formsActions as actionTypes } from '../constants';\r\n\r\nexport const formsActions = {\r\n activateValidation,\r\n reset\r\n}\r\n\r\nfunction activateValidation() {\r\n return { type: actionTypes.DISPLAY_VALIDATION_ERRORS, activate: true }\r\n}\r\n\r\nfunction reset() {\r\n return { type: actionTypes.DISPLAY_VALIDATION_ERRORS, activate: false }\r\n}\r\n","import moment from 'moment';\r\nimport { size } from 'lodash';\r\nimport { store } from '../store';\r\nimport {\r\n newBWICActions as actionTypes,\r\n newBWICSteps as steps,\r\n roles,\r\n routes\r\n} from '../constants';\r\nimport { bwicService } from '../services/bwic.service';\r\nimport {\r\n securitiesActions,\r\n gridActions,\r\n processActions,\r\n documentsActions,\r\n submitActions,\r\n errorActions\r\n} from './';\r\nimport { formsActions } from './forms.actions';\r\nimport { dealerListActions } from './dealer-list.actions';\r\nimport { newBwicDealersActions } from './new-bwic-dealers.actions';\r\nimport { isRequesting, isRequestSuccess } from '../utils/request-state.utils';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { dateTimeUtils } from '../utils';\r\nimport { newBwicDealersSelector } from '../selectors/new-bwic-dealers.selector';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { CompanyStatus } from '../types/company/CompanyStatus';\r\nimport { user } from '../user';\r\nimport { history } from '../history';\r\n\r\nexport const newBWICActions = {\r\n init,\r\n nextStep,\r\n previousStep,\r\n submit,\r\n setSearchTerm,\r\n updateFilterOption,\r\n clearFilterOptions,\r\n reset\r\n};\r\n\r\nfunction init(referenceName) {\r\n return async dispatch => {\r\n if (referenceName) {\r\n try {\r\n const bwic = await bwicService.getByReferenceName(referenceName);\r\n dispatch({\r\n type: actionTypes.EDIT_BWIC,\r\n bwic\r\n });\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n }\r\n dispatch(changeStep(steps.securities));\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch(securitiesActions.reset());\r\n dispatch(processActions.reset());\r\n dispatch(dealerListActions.reset());\r\n dispatch(newBwicDealersActions.reset());\r\n dispatch(documentsActions.reset());\r\n dispatch(submitActions.reset());\r\n dispatch({ type: actionTypes.RESET_WIZARD });\r\n }\r\n}\r\n\r\nfunction nextStep() {\r\n return async (dispatch, getState) => {\r\n let isValid = true;\r\n const { activeStep } = getState().newBWIC;\r\n\r\n if (activeStep === steps.securities) {\r\n dispatch(gridActions.validate());\r\n dispatch(processActions.validate());\r\n const { grid, process } = getState();\r\n isValid = grid.isValid && !process.errors.date && !process.errors.time;\r\n if (isValid) {\r\n await dispatch(securitiesActions.validateTradeLimits());\r\n isValid = isRequestSuccess(getState().securities.validateTradeLimitsRequestState);\r\n }\r\n\r\n } else if (activeStep === steps.process) {\r\n dispatch(processActions.validate());\r\n const { process } = getState();\r\n isValid = process.isValid;\r\n\r\n } else if (activeStep === steps.participants) {\r\n const selectedDealers = getState().newBwicDealers.selectedDealers;\r\n const selectPlatformDealersPopupVisible = getState().newBwicDealers.selectPlatformDealersPopupVisible;\r\n const notSelectedPlatformDealers = newBwicDealersSelector(getState())\r\n .filter(c => !selectedDealers[c.id] && c.status === CompanyStatus.active);\r\n\r\n if (notSelectedPlatformDealers.length !== 0 && !selectPlatformDealersPopupVisible) {\r\n dispatch(newBwicDealersActions.setSelectPlatformDealersPopupVisible(true));\r\n isValid = false;\r\n } else {\r\n isValid = !!size(selectedDealers);\r\n }\r\n } else {\r\n isValid = true;\r\n }\r\n\r\n if (isValid) {\r\n const { newBWIC } = getState();\r\n\r\n const stepKeys = Object.keys(steps);\r\n\r\n const activeStepIndex = stepKeys.findIndex(key => newBWIC.activeStep === steps[key]);\r\n const nextStepKey = stepKeys[activeStepIndex + 1];\r\n\r\n dispatch(changeStep(steps[nextStepKey]));\r\n }\r\n }\r\n}\r\n\r\nfunction previousStep() {\r\n const { newBWIC } = store.getState();\r\n\r\n const stepKeys = Object.keys(steps);\r\n\r\n const activeStepIndex = stepKeys.findIndex(key => newBWIC.activeStep === steps[key]);\r\n const previousStepKey = stepKeys[activeStepIndex - 1];\r\n\r\n return changeStep(steps[previousStepKey]);\r\n}\r\n\r\nfunction changeStep(step) {\r\n return dispatch => {\r\n dispatch(formsActions.reset());\r\n dispatch({\r\n type: actionTypes.CHANGE_STEP,\r\n step\r\n });\r\n }\r\n}\r\n\r\nfunction submit() {\r\n return (dispatch, getState) => {\r\n const requestState = getState().submit.requestState;\r\n\r\n if (isRequesting(requestState) || isRequestSuccess(requestState)) return null;\r\n\r\n const { grid, process, newBwicDealers } = getState();\r\n\r\n const companies = newBwicDealersSelector(getState())\r\n .filter(c => newBwicDealers.selectedDealers[c.id])\r\n .map(c => ({ id: c.id }));\r\n const template = process.templates.current;\r\n\r\n const getLiveBiddingSettings = () => template.type === BwicProcessType.Live\r\n ? {\r\n stage1Deadline: template.liveBidding.stage1Deadline,\r\n improvementRound: template.liveBidding.improvementRound,\r\n minBidIncrement: template.liveBidding.minBidIncrement,\r\n levelSpecificationType: template.liveBidding.levelSpecificationType,\r\n openBiddingImproverCount: template.liveBidding.openBiddingImproverCount\r\n }\r\n : {};\r\n\r\n const getJumpBallSettings = () => template.type === BwicProcessType.JumpBall\r\n ? {\r\n jumpBallAutomaticStage1Deadline: template.jumpBall.automaticStage1Deadline,\r\n jumpBallImproverCount: template.jumpBall.improverCount,\r\n jumpBallImprovementRound: template.jumpBall.improvementRound\r\n }\r\n : {};\r\n\r\n const getTopXSettings = () => template.type === BwicProcessType.TopX\r\n ? {\r\n topXAutomaticStage1Deadline: template.topX.automaticStage1Deadline,\r\n topXImproverCount: template.topX.improverCount,\r\n topXImprovementRound: template.topX.improvementRound\r\n }\r\n : {};\r\n\r\n const getBestFootForwardSettings = () => template.type === BwicProcessType.BestFootForward\r\n ? {\r\n BffStage1Deadline: template.bff.stage1Deadline\r\n }\r\n : {};\r\n\r\n const getAutoFeedbackDelay = () =>\r\n template.type === BwicProcessType.Standard ||\r\n template.type === BwicProcessType.TopX ||\r\n template.type === BwicProcessType.JumpBall\r\n ? template.autoFeedbackDelay\r\n : undefined\r\n\r\n const getMinBidIncrement = () => template.minBidIncrement && (\r\n template.type === BwicProcessType.Standard ||\r\n template.type === BwicProcessType.TopX ||\r\n template.type === BwicProcessType.JumpBall ||\r\n template.type === BwicProcessType.BestFootForward)\r\n ? Number(template.minBidIncrement)\r\n : undefined\r\n\r\n const getIsAlltoAllProtocol = () =>\r\n process.isAllToAll ?? user.hasRoles(roles.BrokerDealerTrader)\r\n ? true\r\n : false\r\n\r\n const bwic = {\r\n bidsDue: dateTimeUtils.setTime(process.date, moment.utc(process.bidsDue)).utcOffset(0, true).toISOString(),\r\n goodUntil: dateTimeUtils.setTime(process.date, moment.utc(process.goodUntil)).utcOffset(0, true).toISOString(),\r\n daysToSettle: process.daysToSettle,\r\n timeZone: process.timeZone,\r\n securities: grid.dataItems.filter(s => !s.draft),\r\n process: {\r\n type: template.type,\r\n reserveLevelsApply: template.reserveLevelsApply,\r\n earlyTrades: template.earlyTrades,\r\n rulesText: template.rulesText,\r\n processTemplateId: template.id,\r\n autoFeedbackDelay: getAutoFeedbackDelay(),\r\n minBidIncrement: getMinBidIncrement(),\r\n cutOffReminder: template.cutOffReminder,\r\n ...getLiveBiddingSettings(),\r\n ...getJumpBallSettings(),\r\n ...getTopXSettings(),\r\n ...getBestFootForwardSettings()\r\n },\r\n companies,\r\n isAllToAll: getIsAlltoAllProtocol()\r\n };\r\n\r\n dispatch(submitActions.submitState(RequestState.request));\r\n\r\n bwicService\r\n .submit(bwic)\r\n .then((bwicReferenceName) => {\r\n dispatch(submitActions.submitState(RequestState.success, bwicReferenceName))\r\n history.replace({\r\n pathname: routes.newBWICCreated,\r\n state: {\r\n date: process.date,\r\n bidsDue: process.bidsDue,\r\n timeZone: process.timeZone,\r\n bwicReferenceName,\r\n }\r\n })\r\n })\r\n .catch(e => {\r\n dispatch(submitActions.submitState(RequestState.failure));\r\n dispatch(errorActions.unexpectedError(e));\r\n });\r\n }\r\n}\r\n\r\nfunction setSearchTerm(searchTerm) {\r\n return {\r\n type: actionTypes.DEALERS_SET_SEARCH_TERM,\r\n payload: { searchTerm }\r\n };\r\n}\r\n\r\nfunction updateFilterOption(filterOption) {\r\n return {\r\n type: actionTypes.DEALERS_UPDATE_FILTER_OPTION,\r\n payload: { filterOption }\r\n };\r\n}\r\n\r\nfunction clearFilterOptions() {\r\n return { type: actionTypes.DEALERS_CLEAR_FILTER_OPTIONS }\r\n}\r\n","import { uploadDocumentsActions } from '.';\r\n\r\nexport const documentsActions = {\r\n init,\r\n reset,\r\n}\r\n\r\nfunction init() {\r\n return (dispatch, getState) => {\r\n const { grid } = getState();\r\n\r\n const securityIdList = grid.dataItems\r\n .filter(s => !s.draft)\r\n .map(s => s.securityId);\r\n\r\n dispatch(uploadDocumentsActions.init(securityIdList));\r\n }\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch(uploadDocumentsActions.reset());\r\n };\r\n}\r\n","import { submitActions as actionTypes } from '../constants';\r\nimport { errorActions } from '.';\r\nimport { companiesService } from '../services';\r\n\r\nexport const submitActions = {\r\n submitState,\r\n init,\r\n reset\r\n}\r\n\r\nfunction init() {\r\n return async (dispatch, getState) => {\r\n const { userCompany } = getState().submit;\r\n\r\n if (userCompany) return;\r\n\r\n try {\r\n const company = await companiesService.getCurrentUserCompany();\r\n\r\n dispatch({\r\n type: actionTypes.STORE_USER_COMPANY,\r\n company\r\n });\r\n }\r\n catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n}\r\n\r\nfunction submitState(state, bwicReferenceName) {\r\n return { type: actionTypes.SUBMIT_STATE, state, bwicReferenceName };\r\n}\r\n\r\nfunction reset() {\r\n return { type: actionTypes.RESET };\r\n}\r\n","import { saveAs } from 'file-saver';\r\nimport { errorActions, notificationActions } from './';\r\nimport { portfolioService } from '../services';\r\nimport { editPortfolioActions as actionTypes, errorMessages, routes } from '../constants';\r\nimport { securitiesActions, gridActions } from '.';\r\nimport { activeInventorySecurityActions } from './active-inventory-security.actions';\r\nimport { history } from '../history';\r\nimport { portfolioListActions } from './portfolio-list.actions';\r\n\r\nexport const editPortfolioActions = {\r\n init,\r\n reset,\r\n createNewPortfolio,\r\n renamePortfolioDialog,\r\n updatePortfolioSecurities,\r\n deletePortfolioDialog,\r\n deletePortfolio,\r\n exportPortfolio\r\n}\r\n\r\nfunction init(portfolioReferenceName) {\r\n return dispatch => {\r\n dispatch(loading(true));\r\n portfolioService\r\n .getPortfolio(portfolioReferenceName)\r\n .then(success, e => dispatch(errorActions.criticalError(e)))\r\n .then(() => dispatch(loading(false)));\r\n\r\n function success(portfolio) {\r\n dispatch({ type: actionTypes.PORTFOLIO_LOADED, portfolio });\r\n dispatch(securitiesActions.init(portfolio.securities));\r\n }\r\n };\r\n}\r\n\r\nfunction loading(isLoading) {\r\n return {\r\n type: actionTypes.EDIT_PORTFOLIO_LOADING,\r\n isLoading\r\n };\r\n}\r\n\r\nfunction renamePortfolioDialog(visible) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.RENAME_DIALOG_VISIBLE,\r\n dialog: { visible }\r\n })\r\n\r\n dispatch(gridActions.blockInput(visible));\r\n };\r\n}\r\n\r\nfunction createNewPortfolio(portfolioName) {\r\n return (dispatch, getState) => {\r\n dispatch(gridActions.validate());\r\n const { grid } = getState();\r\n const securities = grid.dataItems.filter(s => !s.draft);\r\n\r\n if (!grid.isValid && securities.length) {\r\n return dispatch(notificationActions.notificationAddErrorMessage(errorMessages.portfolioSaveSecuritiesMessage, errorMessages.portfolioSaveSecuritiesTitle))\r\n }\r\n dispatch({type: actionTypes.PORTFOLIO_UPDATE_REQUEST});\r\n portfolioService.createNewPortfolio(portfolioName, securities)\r\n .then(() => {\r\n dispatch({type: actionTypes.PORTFOLIO_UPDATE_SUCCESS});\r\n dispatch({ type: actionTypes.PORTFOLIO_SAVED });\r\n dispatch(activeInventorySecurityActions.reset());\r\n dispatch(portfolioListActions.reset());\r\n history.replace(routes.portfolio);\r\n })\r\n .catch((e) => {\r\n dispatch({ type: actionTypes.PORTFOLIO_UPDATE_FAILURE });\r\n dispatch(errorActions.unexpectedError(e));\r\n })\r\n }\r\n}\r\n\r\nfunction updatePortfolioSecurities(updatedPortfolioName) {\r\n return async (dispatch, getState) => {\r\n dispatch(gridActions.validate());\r\n const { editPortfolio, grid } = getState();\r\n const securities = grid.dataItems.filter(s => !s.draft);\r\n\r\n if (!grid.isValid && securities.length) {\r\n return dispatch(notificationActions.notificationAddErrorMessage(errorMessages.portfolioSaveSecuritiesMessage, errorMessages.portfolioSaveSecuritiesTitle))\r\n }\r\n dispatch({type: actionTypes.PORTFOLIO_UPDATE_REQUEST});\r\n\r\n if (updatedPortfolioName) {\r\n try {\r\n await portfolioService.renamePortfolio(editPortfolio.portfolio.id, updatedPortfolioName)\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e))\r\n dispatch({ type: actionTypes.PORTFOLIO_UPDATE_FAILURE });\r\n return;\r\n }\r\n }\r\n try {\r\n await portfolioService.savePositions(editPortfolio.portfolio.id, securities)\r\n dispatch({type: actionTypes.PORTFOLIO_UPDATE_SUCCESS});\r\n dispatch({ type: actionTypes.PORTFOLIO_SAVED });\r\n dispatch(activeInventorySecurityActions.reset());\r\n dispatch(portfolioListActions.reset());\r\n history.replace(routes.portfolio);\r\n } catch (e) {\r\n dispatch({ type: actionTypes.PORTFOLIO_UPDATE_FAILURE });\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n\r\n }\r\n}\r\n\r\nfunction deletePortfolioDialog(visible) {\r\n return {\r\n type: actionTypes.DELETE_PORTFOLIO_DIALOG,\r\n dialog: { visible }\r\n };\r\n}\r\n\r\nfunction deletePortfolio(portfolioId) {\r\n return dispatch => {\r\n portfolioService\r\n .deletePortfolio(portfolioId)\r\n .then(success)\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n\r\n function success() {\r\n dispatch({ type: actionTypes.PORTFOLIO_DELETED });\r\n history.replace(routes.portfolio);\r\n }\r\n }\r\n}\r\n\r\nfunction setRequestingExportState(status) {\r\n return { type: actionTypes.PORTFOLIO_SET_REQUESTING_EXPORT_STATE, payload: { status }}\r\n}\r\n\r\nfunction exportPortfolio(id){\r\n return (dispatch) => {\r\n dispatch(setRequestingExportState(true));\r\n portfolioService\r\n .exportPortfolio(id)\r\n .then(file => saveAs(file.blob, file.name || 'portfolio.csv'))\r\n .catch(e => dispatch(errorActions.unexpectedError(e)))\r\n .finally(() => dispatch(setRequestingExportState(false)));\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RESET });\r\n dispatch(securitiesActions.reset());\r\n dispatch(errorActions.resetError());\r\n }\r\n}\r\n","import {\r\n manageParsedBwicsActions as actionTypes,\r\n bwicDateFilterOptions,\r\n errorMessages,\r\n routes\r\n} from \"../constants\";\r\nimport { parsedBwicsService, pxTalkService, colorService } from \"../services\";\r\nimport {\r\n changePxTalkActions,\r\n changeColorActions,\r\n errorActions,\r\n editParsedBwicActions as editActions,\r\n searchSecuritiesActions,\r\n notificationActions\r\n} from \".\";\r\nimport { getSearchDateRange, getDateRangeOption } from '../utils';\r\nimport { identifiers, dateFrom, dateTo, statuses, published } from '../utils/filtering/serializers/serializer.definitions';\r\nimport { queryStringSerializer } from '../utils/filtering';\r\nimport { priceTalksActions } from './price-talks.actions';\r\nimport { history } from \"../history\";\r\nimport { textRulesPanelActions } from \"./text-rules-panel.actions\";\r\n\r\nexport const manageParsedBwicsActions = {\r\n init,\r\n reset,\r\n search,\r\n refreshLastUpdatedDate,\r\n resetFilters,\r\n filterDateChange,\r\n filterCustomDateChange,\r\n filterStatusChange,\r\n filterPublishedChange,\r\n setBwicCollapsedState,\r\n setCollapseAll,\r\n securitySelectionChange,\r\n publishDialog,\r\n unpublishDialog,\r\n deleteBwicDialog,\r\n publish,\r\n unpublish,\r\n editPxTalk,\r\n savePxTalk,\r\n editColor,\r\n saveColor,\r\n deleteColor,\r\n showNewBwic,\r\n deleteBwic,\r\n changeAmrFlag,\r\n loadNextPage\r\n}\r\n\r\nfunction init(filterQueryString) {\r\n return async (dispatch) => {\r\n dispatch(loading(true));\r\n dispatch(searchSecuritiesActions.reset());\r\n try {\r\n const queryString = filterQueryString && filterQueryString.trim();\r\n\r\n if (queryString) {\r\n dispatch(resetFilters(false));\r\n dispatch(loadFilterFromQueryString(queryString));\r\n }\r\n\r\n dispatch(search());\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n finally {\r\n dispatch(loading(false));\r\n }\r\n }\r\n}\r\n\r\nfunction loadFilterFromQueryString(queryString) {\r\n return dispatch => {\r\n let from, to;\r\n\r\n const serializers = [\r\n identifiers(handleIdentifiersDeserialized),\r\n dateFrom(date => from = date),\r\n dateTo(date => to = date),\r\n statuses(handleStatusDeserialized),\r\n published(published => dispatch(filterPublishedChange(published)))\r\n ];\r\n\r\n queryStringSerializer.deserialize(queryString, serializers);\r\n\r\n dispatch(initFilterDateRange(from, to));\r\n\r\n function handleIdentifiersDeserialized(identifiers) {\r\n identifiers.forEach(i => dispatch(searchSecuritiesActions.addSearchItem(i)));\r\n }\r\n\r\n function handleStatusDeserialized(statuses) {\r\n const statusKeys = statuses.map(s => Number(s))\r\n dispatch(filterStatusChange(...statusKeys));\r\n }\r\n };\r\n}\r\n\r\nfunction initFilterDateRange(dateFrom, dateTo) {\r\n return dispatch => {\r\n const { option, customRange } = getDateRangeOption(dateFrom, dateTo);\r\n\r\n dispatch(filterDateChange(option));\r\n if (option.key === bwicDateFilterOptions.custom.key) {\r\n dispatch(filterCustomDateChange(customRange));\r\n }\r\n };\r\n}\r\n\r\n\r\nfunction reset(hardReset = false) {\r\n return (dispatch, getState) => {\r\n const { lastAppliedSearchTerm } = getState().searchSecurities;\r\n\r\n dispatch(searchSecuritiesActions.reset());\r\n dispatch(errorActions.resetError());\r\n dispatch({\r\n type: actionTypes.RESET,\r\n searchTerm: lastAppliedSearchTerm,\r\n hardReset\r\n });\r\n };\r\n}\r\n\r\nfunction resetFilters(shouldSearch = true) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RESET_FILTERS });\r\n if (shouldSearch) {\r\n dispatch(search());\r\n }\r\n };\r\n}\r\n\r\nfunction refreshLastUpdatedDate() {\r\n return { type: actionTypes.REFRESH_LAST_UPDATED_DATE }\r\n}\r\n\r\nfunction loading(isLoading) {\r\n return {\r\n type: actionTypes.LOADING,\r\n isLoading\r\n };\r\n}\r\n\r\nfunction search() {\r\n return (dispatch, getState) => {\r\n const firstPageNumber = 1;\r\n const { isNextPageRequesting } = getState().manageParsedBwics;\r\n if (!isNextPageRequesting) {\r\n dispatch(resetPaging());\r\n dispatch(searchInProgress());\r\n dispatch(textRulesPanelActions.hide());\r\n }\r\n\r\n const state = getState();\r\n const searchCriteria = getSearchCriteria(state);\r\n const { currentPageNumber, pageSize } = state.manageParsedBwics;\r\n\r\n const nextPageNumber = isNextPageRequesting ? currentPageNumber + 1 : firstPageNumber;\r\n parsedBwicsService\r\n .search(searchCriteria, nextPageNumber, pageSize)\r\n .then(success)\r\n .catch(failure)\r\n .finally(() => dispatch(nextPageRequesting(false)));\r\n\r\n function success({ totalRecordNumber, result }) {\r\n dispatch(redirectWithFilterArguments(searchCriteria));\r\n dispatch({\r\n type: actionTypes.SEARCH_COMPLETE,\r\n bwics: result,\r\n totalRecordNumber,\r\n isNextPageRequesting,\r\n nextPageNumber\r\n });\r\n }\r\n\r\n function failure(e) {\r\n dispatch(resetFilters(false));\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n }\r\n}\r\n\r\nfunction redirectWithFilterArguments(filter) {\r\n return () => {\r\n const serializers = [identifiers(), statuses(), dateFrom(), dateTo(), published()];\r\n const queryString = queryStringSerializer.serialize(filter, serializers);\r\n\r\n if (queryString) {\r\n history.replace(history.location.pathname + '?' + queryString);\r\n }\r\n }\r\n}\r\n\r\nfunction getPublishedOption(options) {\r\n if (options[0] && options[0].selected && !options[1].selected) return true;\r\n if (options[0] && options[1].selected && !options[0].selected) return false;\r\n return null;\r\n}\r\n\r\nfunction getSearchCriteria({ manageParsedBwics, searchSecurities }) {\r\n const { isNextPageRequesting, filter, lastAppliedFilter } = manageParsedBwics;\r\n const { searchTermItems } = searchSecurities;\r\n const theFilter = isNextPageRequesting ? lastAppliedFilter : filter;\r\n\r\n return {\r\n isinCusipsAndTickers: searchTermItems,\r\n statuses: theFilter.statuses.filter(s => s.selected).map(s => s.value),\r\n published: getPublishedOption(theFilter.stateOptions),\r\n ...getSearchDateRange(theFilter)\r\n };\r\n}\r\n\r\nfunction searchInProgress() {\r\n return { type: actionTypes.SEARCH_PROGRESS };\r\n}\r\n\r\nfunction filterDateChange(option) {\r\n return (dispatch, getState) => {\r\n const { filter } = getState().manageParsedBwics;\r\n\r\n dispatch({\r\n type: actionTypes.FILTER_DATE_CHANGE,\r\n option\r\n });\r\n\r\n if (option.key !== bwicDateFilterOptions.custom.key &&\r\n filter.customDateRange &&\r\n filter.customDateRange.from) {\r\n dispatch(filterCustomDateChange({}));\r\n }\r\n }\r\n}\r\n\r\nfunction filterCustomDateChange(dateRange) {\r\n return {\r\n type: actionTypes.FILTER_CUSTOM_DATE_CHANGE,\r\n dateRange\r\n };\r\n}\r\n\r\nfunction filterStatusChange(...statuses) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.FILTER_STATUS_SELECTION_CHANGE,\r\n statuses\r\n });\r\n };\r\n}\r\n\r\nfunction filterPublishedChange(published) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.FILTER_PUBLISHED_STATE_SELECTION_CHANGE,\r\n published\r\n });\r\n }\r\n}\r\n\r\nfunction setBwicCollapsedState(referenceName, collapsed) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.SET_BWIC_COLLAPSED_STATE,\r\n bwic: { referenceName, collapsed }\r\n });\r\n\r\n const { bwics, collapseAll } = getState().manageParsedBwics;\r\n const collapsedCount = bwics.filter(b => b.collapsed).length;\r\n if (collapsedCount === bwics.length && !collapseAll) {\r\n dispatch(setCollapseAll(true));\r\n } else if (collapsedCount === 0 && collapseAll) {\r\n dispatch(setCollapseAll(false));\r\n }\r\n };\r\n}\r\n\r\nfunction setCollapseAll(collapseAll) {\r\n return {\r\n type: actionTypes.SET_COLLAPSE_ALL,\r\n collapseAll\r\n };\r\n}\r\n\r\nfunction securitySelectionChange(bwicReferenceName, positionId, selected) {\r\n return {\r\n type: actionTypes.POSITION_SELECTION_CHANGE,\r\n selection: { bwicReferenceName, positionId, selected }\r\n };\r\n\r\n}\r\n\r\nfunction publishDialog(visible, bwic) {\r\n return {\r\n type: actionTypes.PUBLISH_DIALOG,\r\n dialog: visible ? { visible, bwic } : {}\r\n };\r\n}\r\n\r\nfunction unpublishDialog(visible, bwic) {\r\n return {\r\n type: actionTypes.UNPUBLISH_DIALOG,\r\n dialog: visible ? { visible, bwic } : {}\r\n };\r\n}\r\n\r\nfunction publish(bwic) {\r\n return (dispatch, getState) => {\r\n dispatch(publishDialog(false));\r\n parsedBwicsService\r\n .publish(bwic.referenceName)\r\n .then(\r\n success,\r\n e => dispatch(errorActions.error(e, errorMessages.unexpectedError))\r\n );\r\n\r\n function success() {\r\n const bwics = getState().manageParsedBwics.bwics.map(b =>\r\n b.referenceName === bwic.referenceName\r\n ? { ...b, onReview: false }\r\n : b);\r\n dispatch(updateBwicList(bwics));\r\n }\r\n }\r\n}\r\n\r\nfunction unpublish(bwic) {\r\n return (dispatch, getState) => {\r\n dispatch(unpublishDialog(false));\r\n parsedBwicsService\r\n .unpublish(bwic.referenceName)\r\n .then(\r\n success,\r\n e => dispatch(errorActions.error(e, errorMessages.unexpectedError))\r\n );\r\n\r\n function success() {\r\n const bwics = getState().manageParsedBwics.bwics.map(b =>\r\n b.referenceName === bwic.referenceName\r\n ? { ...b, onReview: true }\r\n : b);\r\n dispatch(updateBwicList(bwics));\r\n }\r\n }\r\n}\r\n\r\nfunction updateBwicList(bwics) {\r\n return { type: actionTypes.UPDATE_BWIC_LIST, payload: { bwics } }\r\n}\r\n\r\nfunction editPxTalk(visible, bwicReferenceName, position) {\r\n return (dispatch, getState) => {\r\n if (visible) {\r\n const preloadedPxTalks = getState().entities.priceTalks.priceTalks[position.id]?.items;\r\n dispatch({\r\n type: actionTypes.EDIT_PXTALK,\r\n editPxTalk: { bwicReferenceName, positionId: position.id, priceTalkLock: position.priceTalkLock }\r\n });\r\n dispatch(changePxTalkActions.init(bwicReferenceName, position.id, position.ticker, preloadedPxTalks || position.pxTalks));\r\n } else {\r\n dispatch({\r\n type: actionTypes.EDIT_PXTALK,\r\n editPxTalk: {}\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction savePxTalk() {\r\n return (dispatch, getState) => {\r\n const state = getState();\r\n const { pxTalks, deletedPriceTalks } = state.changePxTalk;\r\n const { bwicReferenceName, positionId, priceTalkLock } = state.manageParsedBwics.editPxTalk;\r\n\r\n if (pxTalks && pxTalks.every(p => !p.error)) {\r\n dispatch(changePxTalkActions.reset());\r\n dispatch(editPxTalk(false));\r\n pxTalkService\r\n .save(bwicReferenceName, positionId, pxTalks, priceTalkLock, deletedPriceTalks)\r\n .then(newPriceTalkLock => {\r\n dispatch({\r\n type: actionTypes.UPDATE_PXTALK,\r\n update: { bwicReferenceName, positionId, pxTalks, priceTalkLock: newPriceTalkLock }\r\n });\r\n dispatch(priceTalksActions.replacePriceTalks(positionId, pxTalks));\r\n })\r\n .catch(e => {\r\n if (e.status === 409) {\r\n dispatch(\r\n notificationActions.notificationAddErrorMessageModal(\r\n errorMessages.refreshPage,\r\n errorMessages.cantSavePxTalk409,\r\n true\r\n )\r\n );\r\n } else {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n })\r\n }\r\n };\r\n}\r\n\r\nfunction editColor(visible, bwicReferenceName, position) {\r\n return dispatch => {\r\n if (visible) {\r\n dispatch({\r\n type: actionTypes.EDIT_COLOR,\r\n editColor: { bwicReferenceName, positionId: position.id }\r\n });\r\n dispatch(changeColorActions.init(position.ticker, position.color));\r\n } else {\r\n dispatch({\r\n type: actionTypes.EDIT_COLOR,\r\n editColor: {}\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction saveColor() {\r\n return (dispatch, getState) => {\r\n const state = getState();\r\n const { color, errors } = state.changeColor;\r\n const { bwicReferenceName, positionId } = state.manageParsedBwics.editColor;\r\n\r\n if (color && errors.isValid) {\r\n dispatch(changeColorActions.reset());\r\n dispatch(editColor(false));\r\n\r\n colorService\r\n .save(bwicReferenceName, positionId, color)\r\n .then(\r\n () => dispatch({\r\n type: actionTypes.UPDATE_COLOR,\r\n update: { bwicReferenceName, positionId, color: { ...color, isNew: false } }\r\n }),\r\n e => dispatch(errorActions.unexpectedError(e))\r\n );\r\n }\r\n };\r\n}\r\n\r\nfunction deleteColor() {\r\n return (dispatch, getState) => {\r\n const { bwicReferenceName, positionId } = getState().manageParsedBwics.editColor;\r\n\r\n dispatch(changeColorActions.reset());\r\n dispatch(editColor(false));\r\n\r\n colorService\r\n .deleteColor(bwicReferenceName, positionId)\r\n .then(\r\n () => dispatch({\r\n type: actionTypes.UPDATE_COLOR,\r\n update: { bwicReferenceName, positionId, undefined }\r\n }),\r\n e => dispatch(errorActions.unexpectedError(e))\r\n );\r\n };\r\n}\r\n\r\nfunction showNewBwic() {\r\n return (dispatch, getState) => {\r\n const { bwics } = getState().manageParsedBwics;\r\n const securities = [];\r\n\r\n for (let i = 0; i < bwics.length; i++) {\r\n if (bwics[i].positions) {\r\n for (let j = 0; j < bwics[i].positions.length; j++) {\r\n if (bwics[i].positions[j].selected) {\r\n securities.push({\r\n ...bwics[i].positions[j],\r\n pxTalks: [],\r\n color: null\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n dispatch(editActions.storeOriginalBwic({ securities }));\r\n history.push(routes.newParsedBWIC);\r\n };\r\n}\r\n\r\nfunction deleteBwicDialog(visible, referenceName) {\r\n return {\r\n type: actionTypes.DELETE_BWIC_DIALOG,\r\n dialog: { visible, referenceName }\r\n };\r\n}\r\n\r\nfunction deleteBwic(referenceName) {\r\n return (dispatch, getState) => {\r\n dispatch(deleteBwicDialog(false));\r\n\r\n parsedBwicsService\r\n .deleteBwic(referenceName)\r\n .then(success)\r\n .catch(e => dispatch(errorActions.error(e, errorMessages.unexpectedError)));\r\n\r\n function success() {\r\n const bwics = getState().manageParsedBwics.bwics\r\n .filter(b => b.referenceName !== referenceName);\r\n\r\n dispatch(updateBwicList(bwics));\r\n }\r\n };\r\n}\r\n\r\nfunction loadNextPage() {\r\n return (dispatch, getState) => {\r\n const { searchInProgress, isNextPageRequesting } = getState().manageParsedBwics;\r\n\r\n if (!searchInProgress && !isNextPageRequesting) {\r\n dispatch(nextPageRequesting(true));\r\n dispatch(search());\r\n }\r\n }\r\n}\r\n\r\nfunction nextPageRequesting(isRequesting) {\r\n return {\r\n type: actionTypes.MANAGE_PARSED_BWICS_NEXT_PAGE_REQUESTING,\r\n isRequesting\r\n }\r\n}\r\n\r\nfunction resetPaging() {\r\n return {\r\n type: actionTypes.MANAGE_PARSED_BWICS_RESET_PAGING\r\n };\r\n}\r\n\r\nfunction setRequestStatusIsAMR(referenceName, isRequesting) {\r\n return { type: actionTypes.MANAGE_PARSED_BWICS_SET_REQUEST_STATUS_IS_AMR, payload: { referenceName, isRequesting } }\r\n}\r\n\r\nfunction changeAmrFlag(referenceName, status) {\r\n return async (dispatch) => {\r\n dispatch(setRequestStatusIsAMR(referenceName, true));\r\n try {\r\n await parsedBwicsService.changeAmrFlag(referenceName, status);\r\n dispatch({ type: actionTypes.MANAGE_PARSED_BWICS_SET_IS_AMR_FLAG, payload: { referenceName, status } });\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n } finally {\r\n dispatch(setRequestStatusIsAMR(referenceName, false));\r\n }\r\n }\r\n}\r\n\r\n","import { changePxTalkActions as actionTypes, errorMessages } from '../constants';\r\nimport { pxTalkService } from '../services';\r\nimport { jsonUtils, wait, pxTalkUtils, numericUtils, stringUtils } from '../utils';\r\nimport { formsActions } from '.';\r\n\r\nexport const changePxTalkActions = {\r\n init,\r\n reset,\r\n add,\r\n talkChange,\r\n normalizeTalk,\r\n levelTypeChange,\r\n deletePxTalk,\r\n validate,\r\n waitNormalizing\r\n}\r\n\r\nfunction init(bwicReferenceName, positionId, ticker, pxTalks) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.STORE_PXTALKS,\r\n bwicReferenceName,\r\n positionId,\r\n ticker,\r\n pxTalks: pxTalks || []\r\n });\r\n }\r\n}\r\n\r\nfunction reset(resetCompanies = false) {\r\n return {\r\n type: actionTypes.RESET,\r\n resetCompanies\r\n };\r\n}\r\n\r\nfunction add(pxTalk) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.ADD_PXTALK,\r\n pxTalk\r\n });\r\n dispatch(formsActions.reset());\r\n\r\n };\r\n}\r\n\r\nfunction levelTypeChange(companyId, levelType) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.LEVEL_TYPE_CHANGE,\r\n change: { companyId, levelType }\r\n });\r\n\r\n const { pxTalks } = getState().changePxTalk;\r\n const pxTalk = pxTalks.find(p => p.company.id === companyId);\r\n\r\n dispatch(normalizeTalk(companyId, pxTalk.talk, levelType));\r\n };\r\n}\r\n\r\nfunction deletePxTalk(index) {\r\n return {\r\n type: actionTypes.DELETE_PX_TALK,\r\n index\r\n };\r\n}\r\n\r\nfunction talkChange(companyId, talk) {\r\n return {\r\n type: actionTypes.TALK_CHANGE,\r\n change: { companyId, talk: pxTalkUtils.normalizeDecimalPlaces(talk) }\r\n };\r\n}\r\n\r\nfunction normalizeTalk(companyId, talk, levelType) {\r\n return (dispatch, getState) => {\r\n if (stringUtils.isNullOrWhiteSpace(talk)) {\r\n return dispatch(setPxTalkError(companyId, errorMessages.empty));\r\n } if (talk.match(',')) {\r\n return dispatch(setPxTalkError(companyId, errorMessages.invalidValue));\r\n }\r\n\r\n dispatch(normalizing(true));\r\n\r\n pxTalkService\r\n .normalize(talk, levelType)\r\n .then(setNormalizedLevel)\r\n .catch(setNormalizeError)\r\n .finally(() => dispatch(normalizing(false)));\r\n\r\n function setNormalizedLevel(normalized) {\r\n const { pxTalks } = getState().changePxTalk;\r\n if (pxTalks && pxTalks.length) {\r\n dispatch(normalizedLevelChange(companyId, normalized));\r\n }\r\n }\r\n\r\n function setNormalizeError(error) {\r\n const responseMessage = error && error.message && jsonUtils.tryParse(error.message);\r\n const errorMessage = responseMessage ? responseMessage.error : errorMessages.invalidValue;\r\n\r\n dispatch(setPxTalkError(companyId, errorMessage));\r\n }\r\n };\r\n}\r\n\r\nfunction normalizedLevelChange(companyId, normalizedLevel = {}) {\r\n return (dispatch, getState) => {\r\n if (!getState().changePxTalk.pxTalks) return;\r\n\r\n const updateValues = { companyId, normalizedLevel: '', talk: '' };\r\n if (normalizedLevel !== null && numericUtils.isNumber(normalizedLevel.parsedLevel)) {\r\n updateValues.normalizedLevel = normalizedLevel.parsedLevel.toFixed(2);\r\n updateValues.talk = normalizedLevel.level\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.NORMALIZED_LEVEL_CHANGE,\r\n change: updateValues\r\n });\r\n\r\n const { pxTalks } = getState().changePxTalk;\r\n const pxTalk = pxTalks.find(p => p.company.id === companyId);\r\n\r\n if (pxTalk.error) {\r\n const error = validatePxTalk(pxTalk);\r\n if (pxTalk.error !== error) {\r\n dispatch(setPxTalkError(companyId, error));\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction validate() {\r\n return (dispatch, getState) => {\r\n if (!getState().changePxTalk.pxTalks) return;\r\n\r\n const pxTalks = getState().changePxTalk.pxTalks.map(p => {\r\n const error = validatePxTalk(p);\r\n return p.error ? p : { ...p, error }\r\n });\r\n\r\n dispatch({ type: actionTypes.VALIDATION_RESULT, pxTalks });\r\n };\r\n}\r\n\r\nfunction validatePxTalk(pxTalk) {\r\n let error;\r\n\r\n if (pxTalk.talk === '' || pxTalk.talk == null) {\r\n error = errorMessages.empty;\r\n } else if (!pxTalk.normalizedLevel || pxTalk.talk.match(',')) {\r\n error = errorMessages.invalidValue;\r\n }\r\n\r\n return error;\r\n}\r\n\r\nfunction setPxTalkError(companyId, errorMessage) {\r\n return {\r\n type: actionTypes.TALK_ERROR,\r\n error: { companyId, errorMessage }\r\n };\r\n}\r\n\r\nfunction normalizing(isNormalizing) {\r\n return {\r\n type: actionTypes.NORMALIZING,\r\n isNormalizing\r\n };\r\n}\r\n\r\nfunction waitNormalizing(normalizedCallback) {\r\n return async (dispatch, getState) => {\r\n await wait(() => !getState().changePxTalk.isNormalizing);\r\n dispatch(validate());\r\n normalizedCallback();\r\n };\r\n}\r\n","import {\r\n changeColorActions as actionTypes,\r\n errorMessages,\r\n pxTalkLevelTypes,\r\n levelSpecifications,\r\n colorTypes\r\n} from '../constants';\r\nimport { pxTalkService } from '../services';\r\nimport { jsonUtils, wait } from '../utils';\r\n\r\n\r\nexport const changeColorActions = {\r\n init,\r\n reset,\r\n setDm,\r\n tradedChange,\r\n levelSpecificationChange,\r\n levelChange,\r\n normalizeLevel,\r\n levelTypeChange,\r\n validate,\r\n waitNormalizing\r\n}\r\n\r\nfunction init(ticker, color, dm) {\r\n return {\r\n type: actionTypes.SET_COLOR,\r\n data: {\r\n ticker,\r\n color: color\r\n ? {\r\n ...color,\r\n levelSpecificationType: color.levelSpecificationType || levelSpecifications.cover.key\r\n }\r\n : getEmptyColor(),\r\n dm\r\n }\r\n };\r\n}\r\n\r\nfunction setDm(dm) {\r\n return {\r\n type: actionTypes.CHANGE_COLOR_SET_DM,\r\n payload: { dm }\r\n };\r\n}\r\n\r\nfunction getEmptyColor() {\r\n return {\r\n isNew: true,\r\n levelType: pxTalkLevelTypes.price.key,\r\n levelSpecificationType: levelSpecifications.cover.key,\r\n traded: true,\r\n colorType: colorTypes.none.key\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return {\r\n type: actionTypes.RESET\r\n };\r\n}\r\n\r\nfunction tradedChange(traded) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.TRADED_CHANGE,\r\n traded\r\n });\r\n\r\n const { errors } = getState().changeColor;\r\n\r\n if (errors.color) {\r\n dispatch(setColorError());\r\n }\r\n };\r\n}\r\n\r\nfunction levelSpecificationChange(levelSpecification) {\r\n return (dispatch, getState) => {\r\n const { errors } = getState().changeColor;\r\n\r\n dispatch({\r\n type: actionTypes.LEVEL_SPECIFICATION_CHANGE,\r\n levelSpecification\r\n });\r\n\r\n if (errors.color) {\r\n dispatch(setColorError());\r\n }\r\n };\r\n}\r\n\r\nfunction levelChange(level) {\r\n return {\r\n type: actionTypes.LEVEL_CHANGE,\r\n level\r\n };\r\n}\r\n\r\nfunction normalizeLevel(level, levelType) {\r\n return (dispatch, getState) => {\r\n if (level !== '' && level != null) {\r\n dispatch(normalizing(true));\r\n pxTalkService\r\n .normalize(level, levelType)\r\n .then(setNormalizedLevel)\r\n .then(() => dispatch(normalizing(false)))\r\n .catch((e = {}) => {\r\n setNormalizedLevel(null)\r\n const errorMessage = jsonUtils.tryParse(e.message);\r\n if (errorMessage && errorMessage.error) {\r\n dispatch(setLevelError(errorMessage.error));\r\n }\r\n });\r\n } else {\r\n setNormalizedLevel(null);\r\n }\r\n\r\n function setNormalizedLevel(normalized) {\r\n const { color } = getState().changeColor;\r\n if (color) { //change color state is not reset\r\n dispatch(normalizedLevelChange(normalized));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction normalizedLevelChange(normalizedLevel) {\r\n return (dispatch, getState) => {\r\n const updateColor = { normalizedLevel: '', level: '' };\r\n if (normalizedLevel !== null) {\r\n updateColor.normalizedLevel = normalizedLevel.parsedLevel;\r\n updateColor.level = normalizedLevel.level\r\n }\r\n dispatch({\r\n type: actionTypes.NORMALIZED_LEVEL_CHANGE,\r\n ...updateColor\r\n });\r\n\r\n const { color, errors } = getState().changeColor;\r\n\r\n if (errors.level) {\r\n const error = validateLevel(color);\r\n if (error !== errors.level) {\r\n dispatch(setLevelError(error));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction validateLevel(color) {\r\n let error;\r\n if (color.level === '' || color.level == null) {\r\n error = null;\r\n } else if (!color.normalizedLevel) {\r\n error = errorMessages.invalidValue;\r\n }\r\n\r\n return error;\r\n}\r\n\r\nfunction validateColor(color) {\r\n const tradedBest = color.traded && color.levelSpecificationType === levelSpecifications.best.key;\r\n const dntCover = !color.traded && color.levelSpecificationType === levelSpecifications.cover.key;\r\n\r\n if (tradedBest || dntCover) {\r\n return errorMessages.invalidColor;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction setLevelError(error) {\r\n return {\r\n type: actionTypes.SET_LEVEL_ERROR,\r\n error\r\n }\r\n}\r\n\r\nfunction setColorError() {\r\n return (dispatch, getState) => {\r\n const { color } = getState().changeColor;\r\n const colorError = validateColor(color);\r\n\r\n if (color.error !== colorError) {\r\n dispatch({\r\n type: actionTypes.SET_COLOR_ERROR,\r\n error: colorError\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction levelTypeChange(levelType) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.LEVEL_TYPE_CHANGE,\r\n levelType\r\n });\r\n\r\n const { color } = getState().changeColor;\r\n dispatch(normalizeLevel(color.level, levelType));\r\n };\r\n}\r\n\r\nfunction validate() {\r\n return (dispatch, getState) => {\r\n const { color } = getState().changeColor;\r\n const levelError = validateLevel(color);\r\n\r\n dispatch(setLevelError(levelError));\r\n\r\n if (!levelError) {\r\n dispatch(setColorError());\r\n }\r\n };\r\n}\r\n\r\nfunction normalizing(isNormalizing) {\r\n return {\r\n type: actionTypes.NORMALIZING,\r\n isNormalizing\r\n };\r\n}\r\n\r\nfunction waitNormalizing(normalizedCallback) {\r\n return async (dispatch, getState) => {\r\n await wait(() => !getState().changeColor.isNormalizing);\r\n\r\n const { color } = getState().changeColor;\r\n if (color) {\r\n dispatch(validate());\r\n normalizedCallback();\r\n }\r\n };\r\n}\r\n","import {\r\n contactsSaveActions as actionTypes,\r\n gridColumns,\r\n routes,\r\n contactsSaveViews,\r\n errorMessages,\r\n uploadStatus,\r\n contactConflictTypes,\r\n constants\r\n} from '../constants';\r\nimport { errorActions, gridActions } from '.';\r\nimport { companiesService, contactsService } from '../services';\r\nimport { nameUtils } from '../utils';\r\nimport { history } from '../history';\r\n\r\n\r\nexport const contactsSaveActions = {\r\n init,\r\n reset,\r\n loadCompanies,\r\n selectCompany,\r\n resetCompaniesLookup,\r\n filterCompanies,\r\n uploadContacts,\r\n handleClipboardData,\r\n save,\r\n saveResolved,\r\n switchView,\r\n deleteContact,\r\n deleteDuplicate,\r\n backToContactsEdit,\r\n setCompanyNameByEmailDomain,\r\n}\r\n\r\nfunction init(isEdit) {\r\n return async dispatch => {\r\n dispatch(loading(true));\r\n try {\r\n const companiesPromise = companiesService.getBrokerDealers();\r\n const companyDomainsPromise = companiesService.getCompanyDomains();\r\n\r\n const companies = await companiesPromise;\r\n const companyDomains = await companyDomainsPromise;\r\n\r\n dispatch(loadCompanies(companies));\r\n dispatch(loadCompanyDomains(companyDomains));\r\n\r\n const columns = gridColumns.contacts().map(c =>\r\n c.name === gridColumns.email.name\r\n ? { ...c, updateDependencyColumnsCallback: setCompanyNameByEmailDomain }\r\n : c\r\n );\r\n\r\n if (isEdit) {\r\n const allContacts = await contactsService.getContacts();\r\n const contacts = allContacts.filter(c => !c.readonly && companies.some(company => company.id === c.companyId));\r\n\r\n contacts.forEach(c => c.company = companies.find(company => company.id === c.companyId).name)\r\n\r\n dispatch(storeInitialContacts(contacts));\r\n dispatch(gridActions.init(contacts, columns));\r\n } else {\r\n dispatch(gridActions.init([], columns));\r\n }\r\n\r\n dispatch(setEditMode(isEdit));\r\n }\r\n catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch(loading(false));\r\n }\r\n };\r\n}\r\n\r\nfunction loading(isLoading) {\r\n return {\r\n type: actionTypes.CONTACT_SAVE_LOADING,\r\n isLoading\r\n };\r\n}\r\n\r\nfunction storeInitialContacts(contacts) {\r\n return {\r\n type: actionTypes.INITIAL_CONTACTS,\r\n contacts\r\n }\r\n}\r\n\r\nfunction setEditMode(isEdit) {\r\n return {\r\n type: actionTypes.EDIT_MODE,\r\n isEdit\r\n }\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RESET })\r\n dispatch(gridActions.reset());\r\n dispatch(errorActions.resetError());\r\n };\r\n}\r\n\r\nfunction loadCompanies(companies) {\r\n return {\r\n type: actionTypes.LOAD_COMPANIES,\r\n companies\r\n };\r\n}\r\n\r\nfunction loadCompanyDomains(companyDomains) {\r\n return {\r\n type: actionTypes.LOAD_COMPANY_DOMAINS,\r\n companyDomains\r\n };\r\n}\r\n\r\nfunction selectCompany(company) {\r\n return dispatch => {\r\n dispatch(gridActions.editing(company.name));\r\n dispatch(gridActions.applyEdit());\r\n dispatch(resetCompaniesLookup());\r\n };\r\n}\r\n\r\nfunction resetCompaniesLookup() {\r\n return {\r\n type: actionTypes.COMPANIES_LOOKUP,\r\n lookup: {\r\n companies: [],\r\n searchTerm: ''\r\n }\r\n };\r\n}\r\n\r\nfunction filterCompanies(searchTerm) {\r\n return (dispatch, getState) => {\r\n const { companies, companiesLookup } = getState().contactsSave;\r\n\r\n if (searchTerm.length) {\r\n const searchTermLowerCase = searchTerm.toLowerCase();\r\n dispatch({\r\n type: actionTypes.COMPANIES_LOOKUP,\r\n lookup: {\r\n searchTerm,\r\n companies: companies.filter(s =>\r\n s.name.toLowerCase().startsWith(searchTermLowerCase))\r\n }\r\n });\r\n\r\n } else if (companiesLookup.searchTerm) {\r\n dispatch(resetCompaniesLookup());\r\n }\r\n };\r\n}\r\n\r\nfunction uploadContacts(file) {\r\n return (dispatch, getState) => {\r\n const { position, upload } = getState().grid;\r\n\r\n if (upload.status === uploadStatus.uploading) {\r\n return;\r\n }\r\n\r\n const extension = (file.name.split('.').pop() || '').toLowerCase();\r\n\r\n if (extension !== 'csv' && extension !== 'xlsx') {\r\n dispatch(errorActions.error(\r\n null,\r\n errorMessages.invalidFileType,\r\n 'Invalid file type.'\r\n ));\r\n return;\r\n\r\n } else if (file.size > constants.gridFileUploadMaximumSize * 1024 * 1024) {\r\n dispatch(errorActions.error(\r\n null,\r\n errorMessages.fileSizeLimitExceeded(constants.gridFileUploadMaximumSize),\r\n 'The file is too big.'\r\n ));\r\n return;\r\n }\r\n\r\n if (position.editing) {\r\n dispatch(gridActions.applyEdit());\r\n }\r\n\r\n contactsService\r\n .uploadContacts(file, progress)\r\n .then(success, e => failure(e));\r\n\r\n dispatch(gridActions.setUploadState(uploadStatus.uploading, 0, file.name));\r\n\r\n function success(contacts) {\r\n contacts.forEach(s => {\r\n s.company = s.company ? s.company.trim() : '';\r\n s.email = s.email ? s.email.trim() : '';\r\n s.isNew = true;\r\n });\r\n dispatch(gridActions.addDataItems(contacts));\r\n dispatch(gridActions.validate());\r\n setTimeout(\r\n () => dispatch(gridActions.setUploadState(uploadStatus.none)),\r\n 500\r\n );\r\n }\r\n\r\n function failure(e) {\r\n dispatch(gridActions.setUploadState(uploadStatus.none));\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n\r\n function progress(e) {\r\n if (e.lengthComputable) {\r\n var percentComplete = (e.loaded / e.total) * 100;\r\n dispatch(gridActions.setUploadState(uploadStatus.uploading, percentComplete, file.name));\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction handleClipboardData(clipboardText) {\r\n return (dispatch, getState) => {\r\n const { position = { index: 0 } } = getState().grid;\r\n\r\n dispatch(gridActions.dataProcessing(true));\r\n\r\n contactsService\r\n .parseContactsStirng(clipboardText)\r\n .then(success, e => dispatch(errorActions.unexpectedError(e)))\r\n .finally(() => dispatch(gridActions.dataProcessing(false)));\r\n\r\n function success(contacts) {\r\n contacts.forEach(s => s.isNew = true);\r\n dispatch(gridActions.insertDataItems(contacts, position.index));\r\n dispatch(gridActions.validate());\r\n }\r\n };\r\n}\r\n\r\nfunction save() {\r\n return async (dispatch, getState) => {\r\n dispatch(gridActions.validate());\r\n\r\n const { grid } = getState();\r\n const contacts = grid.dataItems.filter(i => !i.draft);\r\n if (!grid.isValid && contacts.length) {\r\n return;\r\n }\r\n\r\n const { deletedContacts } = getState().contactsSave;\r\n\r\n dispatch(loading(true));\r\n await dispatch(findConflicts(contacts, deletedContacts));\r\n\r\n const { conflicts } = getState().contactsSave;\r\n if (conflicts && conflicts.length) {\r\n dispatch(loading(false));\r\n return dispatch(switchView(contactsSaveViews.conflicts));\r\n }\r\n\r\n dispatch(doSave(contacts));\r\n };\r\n}\r\n\r\nfunction saveResolved() {\r\n return (dispatch, getState) => {\r\n const { grid } = getState();\r\n const contacts = grid.dataItems.filter(i => !i.draft);\r\n\r\n dispatch(loading(true));\r\n dispatch(doSave(contacts));\r\n };\r\n}\r\n\r\nfunction doSave(contacts) {\r\n return (dispatch, getState) => {\r\n const { deletedContacts, companies, conflicts } = getState().contactsSave;\r\n\r\n const contactIndexesToSkip = conflicts\r\n .map(c => c.duplicates.filter(d => d.isDeleted && !d.id))\r\n .flat()\r\n .map(d => d.contactIndex);\r\n\r\n const contactsToSave = contacts\r\n .filter((contact, index) =>\r\n !deletedContacts.some(id => contact.id === id) &&\r\n !contactIndexesToSkip.some(i => i === index))\r\n .map(c => {\r\n const company = companies.find(company =>\r\n company.name.localeCompare(\r\n c.company,\r\n undefined,\r\n { sensitivity: 'accent' }) === 0\r\n );\r\n\r\n return { ...c, companyId: company && company.id };\r\n });\r\n\r\n contactsService\r\n .bulkSave(contactsToSave, deletedContacts)\r\n .then(success)\r\n .catch(failed)\r\n .finally(() => dispatch(loading(false)))\r\n\r\n function success() {\r\n dispatch(storeConflicts(null));\r\n history.replace(routes.dealers);\r\n }\r\n\r\n function failed(e) {\r\n if (+e.status === 409) {\r\n dispatch(findConflicts(contacts));\r\n } else {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction switchView(view) {\r\n return {\r\n type: actionTypes.SWITCH_VIEW,\r\n view\r\n };\r\n}\r\n\r\nfunction findConflicts(contacts, deletedContacts) {\r\n return async dispatch => {\r\n let currentContacts;\r\n\r\n try {\r\n currentContacts = await\r\n contactsService.getContacts()\r\n }\r\n catch (e) {\r\n return dispatch(errorActions.unexpectedError(e));\r\n }\r\n\r\n currentContacts = currentContacts\r\n .filter(c => !deletedContacts.some(d => d === c.id))\r\n .filter(c => !contacts.some(cc => cc.id === c.id));\r\n\r\n const contactsIndexed = contacts.map((c, contactIndex) => ({ ...c, contactIndex }));\r\n\r\n const nameDuplicates = new Map();\r\n const emailDuplicates = new Map();\r\n\r\n contactsIndexed\r\n .forEach(c => {\r\n findNameDuplicates(c);\r\n findEmailDuplicates(c);\r\n });\r\n\r\n const nameConflicts = [...nameDuplicates.values()].map(d => ({\r\n conflictType: contactConflictTypes.duplicateName,\r\n duplicates: d,\r\n isResolved: false\r\n }));\r\n\r\n const emailConflicts = [...emailDuplicates.values()].map(d => ({\r\n conflictType: contactConflictTypes.duplicateEmail,\r\n duplicates: d,\r\n isResolved: false\r\n }));\r\n\r\n const conflicts = nameConflicts.concat(emailConflicts);\r\n dispatch(storeConflicts(conflicts));\r\n\r\n function findNameDuplicates(contact) {\r\n const fullName = nameUtils.getFullName(contact.firstName, contact.lastName, '');\r\n const nameEquals = ({ firstName, lastName }) => {\r\n const otherFullName = nameUtils.getFullName(firstName, lastName, '');\r\n return otherFullName && fullName.localeCompare(otherFullName, undefined, { sensitivity: 'accent' }) === 0;\r\n }\r\n\r\n if (fullName && !nameDuplicates.has(fullName)) {\r\n const currentDuplicates = currentContacts.filter(current => nameEquals(current));\r\n const localDuplicates = contactsIndexed.filter(c => nameEquals(c));\r\n const duplicates = currentDuplicates.concat(localDuplicates);\r\n\r\n if (duplicates.length > 1) {\r\n nameDuplicates.set(fullName, duplicates);\r\n }\r\n }\r\n }\r\n\r\n function findEmailDuplicates(contact) {\r\n if (!emailDuplicates.has(contact.email)) {\r\n const duplicates = currentContacts.filter(current =>\r\n current.email.localeCompare(contact.email, undefined, { sensitivity: 'accent' }) === 0);\r\n\r\n if (duplicates.length) {\r\n duplicates.push(contact);\r\n emailDuplicates.set(contact.email, duplicates);\r\n }\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction storeConflicts(conflicts) {\r\n return {\r\n type: actionTypes.STORE_CONFLICTS,\r\n conflicts\r\n };\r\n}\r\n\r\nfunction resetConflicts() {\r\n return {\r\n type: actionTypes.RESET_CONFLICTS\r\n };\r\n}\r\n\r\nfunction deleteContact(...contacts) {\r\n return dispatch => {\r\n const exstingContacts = contacts.filter(id => id);\r\n if (exstingContacts.length) {\r\n dispatch({\r\n type: actionTypes.DELETE_CONTACT,\r\n contacts: exstingContacts\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction deleteDuplicate(contact) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.DELETE_DUPLICATE_CONTACT,\r\n contact\r\n });\r\n dispatch(deleteContact(contact.id));\r\n dispatch(ensureConflictsResolved());\r\n };\r\n}\r\n\r\nfunction ensureConflictsResolved() {\r\n return {\r\n type: actionTypes.ENSURE_CONFLICTS_RESOLVED\r\n }\r\n}\r\n\r\nfunction backToContactsEdit() {\r\n return dispatch => {\r\n dispatch(resetConflicts());\r\n dispatch(switchView(contactsSaveViews.grid));\r\n };\r\n}\r\n\r\nfunction setCompanyNameByEmailDomain(gridItemIndex) {\r\n return (dispatch, getState) => {\r\n const { dataItems } = getState().grid;\r\n const contact = dataItems[gridItemIndex];\r\n const domainName = contact.email.substring(contact.email.lastIndexOf(\"@\") + 1);\r\n\r\n if (domainName) {\r\n const { companyDomains } = getState().contactsSave;\r\n const domains = companyDomains.find(c =>\r\n c.domainNames.some(d => d.localeCompare(\r\n domainName,\r\n undefined,\r\n { sensitivity: 'accent' }) === 0));\r\n if (domains) {\r\n const { companies } = getState().contactsSave;\r\n const company = companies.find(c => c.id === domains.companyId);\r\n const dataItem = {\r\n ...contact,\r\n company: company.name\r\n };\r\n\r\n dispatch(gridActions.deleteRow(gridItemIndex));\r\n dispatch(gridActions.insertDataItems([dataItem], gridItemIndex));\r\n }\r\n }\r\n };\r\n}\r\n","import { uploadDocumentsActions, errorActions } from \".\";\r\nimport { portfolioService } from \"../services\";\r\n\r\nexport const portfolioDocumentsActions = {\r\n init,\r\n reset\r\n};\r\n\r\nfunction init() {\r\n return async dispatch => {\r\n try {\r\n const portfolios = await portfolioService.getPortfolios();\r\n const securityIdList = getSecurityIdList(portfolios);\r\n\r\n dispatch(uploadDocumentsActions.init(securityIdList));\r\n }\r\n catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n}\r\n\r\nfunction getSecurityIdList(portfolios) {\r\n return portfolios\r\n .map(p => p.securities || [])\r\n .flat()\r\n .map(s => s.securityId);\r\n}\r\n\r\nfunction reset() {\r\n return uploadDocumentsActions.reset();\r\n}\r\n","import { otherSellerBiddingActions as actionTypes } from '../constants';\r\n\r\nexport const otherSellerBiddingActions = {\r\n init,\r\n reset\r\n}\r\n\r\nfunction init(bwic) {\r\n return dispatch => {\r\n dispatch(storeSecurities(bwic.securities));\r\n };\r\n}\r\n\r\nfunction storeSecurities(securities) {\r\n return {\r\n type: actionTypes.OTHER_SELLER_BIDDING_STORE_SECURITIES,\r\n securities\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return {\r\n type: actionTypes.OTHER_SELLER_BIDDING_RESET\r\n };\r\n}\r\n","import { dealersActions as actionTypes } from '../constants';\r\nimport { errorActions } from '.';\r\nimport { settlementAgentAgreementService } from '../services/settlement-agent-agreement.service';\r\nimport { createAction } from 'typesafe-actions';\r\n\r\nconst updateFilterOptions = createAction(\r\n 'dealers/UPDATE_FILTER_OPTIONS',\r\n resolve => (filterOption) => resolve({ filterOption })\r\n);\r\n\r\nconst clearFilterOptions = createAction('dealers/CLEAR_FILTER_OPTIONS');\r\n\r\nconst setSearchTerm = createAction(\r\n 'dealers/SET_SEARCH_TERM',\r\n resolve => (searchTerm) => resolve({ searchTerm })\r\n);\r\n\r\nexport const dealersActions = {\r\n requestToBid,\r\n reset,\r\n updateFilterOptions,\r\n clearFilterOptions,\r\n setSearchTerm,\r\n showBidRequestConfirmPopup,\r\n hideBidRequestConfirmPopup,\r\n};\r\n\r\nfunction reset() {\r\n return { type: actionTypes.DEALERS_RESET_STATE };\r\n}\r\n\r\nfunction requestToBid(settlementAgentId) {\r\n return (dispatch) => {\r\n dispatch(setRequestStatus(true));\r\n settlementAgentAgreementService.sendRequest({ settlementAgentId })\r\n .then(() => {\r\n dispatch(hideBidRequestConfirmPopup());\r\n })\r\n .catch(e => dispatch(errorActions.unexpectedError(e)))\r\n .finally(() => dispatch(setRequestStatus(false)));\r\n };\r\n}\r\n\r\nfunction setRequestStatus(status) {\r\n return {\r\n type: actionTypes.DEALERS_REQUEST_TO_BID_SET_REQUEST_STATUS,\r\n payload: { status }\r\n };\r\n}\r\n\r\nfunction showBidRequestConfirmPopup(dealerId) {\r\n return { type: actionTypes.DEALERS_SHOW_CONFIRM_BID_REQUEST_POPUP, payload: { dealerId } }\r\n}\r\n\r\nfunction hideBidRequestConfirmPopup() {\r\n return { type: actionTypes.DEALERS_HIDE_CONFIRM_BID_REQUEST_POPUP }\r\n}\r\n","import { logger } from '../logging/logger';\r\nimport { brokerDealerContactListActions } from './broker-dealer-contact-list.actions';\r\nimport { brokerDealerListActions } from './broker-dealer-list.actions';\r\n\r\nexport const pushInvitationActions = {\r\n dataPushReceived: (data) => {\r\n return dispatch => {\r\n logger.trace('Push', 'Invitation', data);\r\n if (data.contactId) {\r\n dispatch(brokerDealerContactListActions.setContactInvitationSent(data.contactId))\r\n }\r\n if (data.companyId) {\r\n dispatch(brokerDealerListActions.updateDealerDistributionListInvitationSent(data.companyId));\r\n dispatch(brokerDealerListActions.updateDealerHeadOfTradingInvitationSent(data.companyId))\r\n }\r\n }\r\n }\r\n};\r\n","import { colorDistributionActions as actionTypes, colorDistributionTypes} from '../constants';\r\nimport { bwicService } from '../services';\r\nimport { errorActions } from './error.actions';\r\nimport { TradeStatus } from '../types/trades/TradeStatus';\r\n\r\nexport const colorDistributionActions = {\r\n setBwicColorDistribution,\r\n cancelColorDistribution,\r\n completeBwic,\r\n tradedTypeChange,\r\n dntTypeChange,\r\n positionColorTypeChange\r\n}\r\n\r\nfunction setBwicColorDistribution(isColorDistribution) {\r\n return {\r\n type: actionTypes.COLOR_DISTRIBUTION_SET_BWIC_COLOR_DISTRIBUTION,\r\n isColorDistribution\r\n };\r\n}\r\n\r\nfunction setCompleteInProgress(inProgress) {\r\n return {\r\n type: actionTypes.COLOR_DISTRIBUTION_COMPLETE_IN_PROGRESS,\r\n inProgress\r\n };\r\n}\r\n\r\nfunction cancelColorDistribution(bwicReferenceName) {\r\n return (dispatch, getState) => {\r\n const { isCompleteInProgress } = getState().sellerBidding;\r\n\r\n if (!isCompleteInProgress) {\r\n bwicService\r\n .setColorDistribution(bwicReferenceName, false)\r\n .then(success, e => dispatch(errorActions.unexpectedError(e)));\r\n }\r\n\r\n function success() {\r\n dispatch(setBwicColorDistribution(false))\r\n dispatch(reset());\r\n }\r\n };\r\n}\r\n\r\nfunction tradedTypeChange(tradedType) {\r\n return {\r\n type: actionTypes.COLOR_DISTRIBUTION_TRADED_TYPE_CHANGE,\r\n tradedType\r\n };\r\n}\r\n\r\nfunction dntTypeChange(dntType) {\r\n return {\r\n type: actionTypes.COLOR_DISTRIBUTION_DNT_TYPE_CHANGE,\r\n dntType\r\n };\r\n}\r\n\r\nfunction positionColorTypeChange(positionId, colorType) {\r\n return {\r\n type: actionTypes.COLOR_DISTRIBUTION_POSITION_COLOR_TYPE_CHANGE,\r\n positionId,\r\n colorType\r\n };\r\n}\r\n\r\nfunction completeBwic() {\r\n return (dispatch, getState) => {\r\n const { bwic } = getState().bidding;\r\n const { securities, colorDistribution, isCompleteInProgress } = getState().sellerBidding;\r\n\r\n if (isCompleteInProgress) return;\r\n\r\n dispatch(setCompleteInProgress(true));\r\n\r\n const colorDistributionModel =\r\n securities\r\n .map(s => ({\r\n positionId: s.id,\r\n colorDistributionType:\r\n s.colorDistribution ||\r\n (s.trade && (s.trade.status === TradeStatus.pending || s.trade.status === TradeStatus.affirmed)\r\n ? colorDistribution.forTradedType\r\n : s?.bids?.length ? colorDistribution.forDNTType: colorDistributionTypes.status.key)\r\n }));\r\n\r\n bwicService\r\n .completeBwic(bwic.referenceName, colorDistributionModel)\r\n .catch(e => dispatch(errorActions.unexpectedError(e)))\r\n .then(() => dispatch(setCompleteInProgress(false)));\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return {\r\n type: actionTypes.COLOR_DISTRIBUTION_RESET\r\n };\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\n\r\nexport const onBoardingTooltipNav = createAction(\r\n 'ON_BOARDING_TOOLTIP_NAV',\r\n resolve => (page, next) => resolve({ page, next })\r\n);\r\n\r\nexport const onBoardingTooltipClose = createAction(\r\n 'ON_BOARDING_TOOLTIP_CLOSE',\r\n resolve => (page) => resolve({ page })\r\n);\r\n\r\nexport const onBoardingTooltipGotIt = createAction(\r\n 'ON_BOARDING_TOOLTIP_GOT_IT',\r\n resolve => (page, doNotShowSupportPopup) => resolve({ page, doNotShowSupportPopup })\r\n);\r\n\r\nexport const onBoardingTooltipSetVisible = createAction(\r\n 'ON_BOARDING_TOOLTIP_SET_VISIBLE',\r\n resolve => (status) => resolve({ status })\r\n);\r\n\r\nexport const onBoardingTooltipSetCountRequest = createAction(\r\n 'ON_BOARDING_TOOLTIP_SET_COUNT_REQUEST',\r\n resolve => (data) => resolve({ data })\r\n);\r\n\r\nexport const onBoardingTooltipSetCountSuccess = createAction(\r\n 'ON_BOARDING_TOOLTIP_SET_COUNT_SUCCESS',\r\n resolve => () => resolve()\r\n);\r\n\r\nexport const onBoardingTooltipSetCountFailure = createAction(\r\n 'ON_BOARDING_TOOLTIP_SET_COUNT_FAILURE',\r\n resolve => () => resolve()\r\n);\r\n\r\nexport const onBoardingTooltipSetVisibleSupportPopup = createAction(\r\n 'ON_BOARDING_TOOLTIP_SET_VISIBLE_SUPPORT_POPUP',\r\n resolve => (status) => resolve({ status })\r\n);\r\n\r\nexport const onBoardingReset = createAction(\r\n 'ON_BOARDING_TOOLTIP_RESET'\r\n);\r\n","import { inviteToJoinActionTypes } from '../constants';\r\nimport { contactsService } from '../services';\r\n\r\nfunction setVisiblePopup(visible) {\r\n return dispatch => {\r\n dispatch({\r\n type: inviteToJoinActionTypes.INVITE_TO_JOIN_TOGGLE_VISIBLE_POPUP,\r\n payload: { visible }\r\n })\r\n }\r\n}\r\n\r\nfunction sendInviteToJoin(message) {\r\n return dispatch => {\r\n dispatch({ type: inviteToJoinActionTypes.INVITE_TO_JOIN_INVITE_ALL_REQUEST });\r\n contactsService.inviteAllToJoin(message)\r\n .then(() => dispatch({ type: inviteToJoinActionTypes.INVITE_TO_JOIN_INVITE_ALL_SUCCESS }))\r\n .catch((e) => {\r\n dispatch({ type: inviteToJoinActionTypes.INVITE_TO_JOIN_INVITE_ALL_FAILURE, payload: e })\r\n })\r\n }\r\n}\r\n\r\nexport const inviteToJoinActions = {\r\n setVisiblePopup,\r\n sendInviteToJoin\r\n};\r\n","import { bwicHistoryActions as actionTypes } from '../constants';\r\nimport { bwicService } from '../services';\r\nimport { controlPanelActions } from '.';\r\nimport { isRequesting } from '../utils';\r\nimport { RequestState } from '../constants/request-state';\r\n\r\nexport const bwicHistoryActions = {\r\n init,\r\n loadHistory,\r\n showHistory,\r\n toggleHistory,\r\n markHistoryMessagesAsRead,\r\n reset\r\n}\r\n\r\nfunction init(bwicReferenceName, historyActions, positionId) {\r\n return {\r\n type: actionTypes.STORE_BWIC_HISTORY,\r\n bwicReferenceName,\r\n historyActions,\r\n positionId\r\n };\r\n}\r\n\r\nfunction loadHistory(bwicReferenceName, positionId) {\r\n return async (dispatch, getState) => {\r\n const historyState = getState().bwicHistory;\r\n\r\n if (!isRequesting(historyState.requestState) && historyState.bwicReferenceName !== bwicReferenceName) {\r\n dispatch(loadHistoryState(RequestState.request));\r\n\r\n try {\r\n const history = await bwicService.getBwicHistory(bwicReferenceName);\r\n dispatch(init(bwicReferenceName, history, positionId));\r\n dispatch(loadHistoryState(RequestState.success));\r\n } catch (e) {\r\n dispatch(loadHistoryState(RequestState.failure));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction loadHistoryState(requestState) {\r\n return {\r\n type: actionTypes.LOAD_HISTORY_REQUEST_STATE,\r\n requestState\r\n }\r\n}\r\n\r\nfunction reset() {\r\n return {\r\n type: actionTypes.RESET\r\n };\r\n}\r\n\r\nfunction toggleHistory(positionId, ticker) {\r\n return (dispatch, getState) => {\r\n const history = getState().bwicHistory;\r\n const shouldShow = !history.visible || positionId !== history.positionId;\r\n\r\n dispatch(showHistory(shouldShow, positionId, ticker));\r\n };\r\n}\r\n\r\nfunction showHistory(visible, positionId, ticker) {\r\n return dispatch => {\r\n if (visible) {\r\n dispatch(controlPanelActions.hide());\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.SHOW_BWIC_HISTORY,\r\n visible,\r\n positionId: visible && positionId,\r\n ticker: visible && ticker\r\n });\r\n };\r\n}\r\n\r\nfunction markHistoryMessagesAsRead(messages) {\r\n return dispatch => {\r\n dispatch({\r\n type: actionTypes.MARK_HISTORY_MESSAGES_AS_READ,\r\n messages\r\n });\r\n\r\n bwicService\r\n .markHistoryMessagesAsRead(messages)\r\n .catch(() => console.log('Failed to mark history action as read'));\r\n };\r\n}\r\n","import { pxTalkListActions as actionTypes } from '../constants';\r\nimport { controlPanelActions } from '.';\r\n\r\nexport const pxTalkListActions = {\r\n show,\r\n hide\r\n}\r\n\r\nfunction show(positionId) {\r\n return dispatch => {\r\n dispatch(controlPanelActions.hide());\r\n dispatch({\r\n type: actionTypes.PX_TALK_LIST_VISIBLE,\r\n visible: true,\r\n positionId\r\n });\r\n };\r\n}\r\n\r\nfunction hide() {\r\n return (dispatch, getState) => {\r\n if (getState().pxTalkList.visible) {\r\n dispatch({\r\n type: actionTypes.PX_TALK_LIST_VISIBLE,\r\n visible: false\r\n })\r\n }\r\n };\r\n}\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { DateFilterOption } from \"../types/filters/DateFilterOption\";\r\nimport { DateRange } from \"../types/filters/DateRange\";\r\nimport { PaginationResult } from \"../types/PaginationResult\";\r\nimport { SellerBuysideSearchResult } from \"../types/bid-as-dealer/SellerBuysideSearchResult\";\r\nimport { Rating } from \"../types/enums/Rating\";\r\nimport { RequestState } from '../constants/request-state';\r\nimport { EditBidRequestState, SellerBuysideFilterState } from \"../types/state/SellerBuysideState\";\r\nimport { BwicType } from \"../types/enums/BwicType\";\r\nimport { SettlementAgentAgreement } from '../types/bid-as-dealer/SettlementAgentAgreement';\r\nimport { BwicMonitorSortByOptions } from \"../types/state/AllBwicsState\";\r\nimport { SellerBuysideSearchResultSummary } from \"../types/bid-as-dealer/SellerBuysideSearchResultSummary\";\r\n\r\nconst init = createAction('sellerBuyside/INIT', resolve => () => resolve());\r\nconst initRequestStatus = createAction(\r\n 'sellerBuyside/INIT_REQUEST_STATUS',\r\n resolve => (requestStatus: RequestState, bidAsDealerRequestExist: boolean = false) => resolve({ requestStatus, bidAsDealerRequestExist })\r\n);\r\nconst reset = createAction('sellerBuyside/RESET', resolve => () => resolve());\r\nconst dateFilterChange = createAction(\r\n 'sellerBuyside/DATE_FILTER_CHANGE',\r\n resolve => (dateOption: DateFilterOption) => resolve({ dateOption })\r\n);\r\nconst customDateFilterChange = createAction(\r\n 'sellerBuyside/CUSTOM_DATE_FILTER_CHANGE',\r\n resolve => (dateRange: DateRange) => resolve({ dateRange })\r\n);\r\nconst bwicStatusFilterChange = createAction(\r\n 'sellerBuyside/BWIC_STATUS_FILTER_CHANGE',\r\n resolve => (status: number, selected: boolean) => resolve({ status, selected })\r\n);\r\nconst currencyFilterChange = createAction(\r\n 'sellerBuyside/CURRENCY_FILTER_CHANGE',\r\n resolve => (currency: string, selected: boolean) => resolve({ currency, selected })\r\n);\r\nconst ratingFilterChange = createAction(\r\n 'sellerBuyside/RATING_FILTER_CHANGE',\r\n resolve => (rating: Rating, selected: boolean) => resolve({ rating, selected })\r\n);\r\n\r\nconst typeFilterChange = createAction(\r\n 'sellerBuyside/TYPE_FILTER_CHANGE',\r\n resolve => (type: BwicType, selected: boolean) => resolve({ type, selected })\r\n);\r\nconst sizeFilterChange = createAction(\r\n 'sellerBuyside/SIZE_FILTER_CHANGE',\r\n resolve => (size: { min?: number | string, max?: number | string }) => resolve({ size })\r\n)\r\nconst filterApply = createAction('sellerBuyside/FILTER_APPLY',\r\n resolve => (isApply?: boolean, isSearchTermChange?: boolean) => resolve({ isApply, isSearchTermChange }));\r\nconst filterReset = createAction('sellerBuyside/FILTER_RESET', resolve => () => resolve());\r\nconst dataItemsLoadingState = createAction(\r\n 'sellerBuyside/LOADING',\r\n resolve => (isLoading: boolean) => resolve({ isLoading })\r\n);\r\nconst storeSearchResult = createAction(\r\n 'sellerBuyside/STORE_SEARCH_RESULT',\r\n resolve => (result: PaginationResult, summary?: SellerBuysideSearchResultSummary) =>\r\n resolve({ result, summary })\r\n);\r\nconst storeCurrencySelectedStatus = createAction(\r\n 'sellerBuyside/SET_CURRENCIES_SELECTED_STATUS',\r\n resolve => (isSelected: boolean) => resolve({ isSelected })\r\n);\r\nexport type SubmitBidRequestPayloadType = {\r\n bwicReferenceName: string;\r\n positionId: number;\r\n level: number;\r\n axed: boolean;\r\n final: boolean;\r\n positionSize: number;\r\n agreementBrokerDealerId: number;\r\n agreementCommission: number;\r\n commission: number;\r\n modifiedDate?: Date;\r\n};\r\nconst submitBidRequest = createAction(\r\n 'sellerBuyside/SUBMIT_BID_REQUEST',\r\n resolve => (data: SubmitBidRequestPayloadType) => resolve({ data })\r\n);\r\n\r\nconst updateBidRequests = createAction(\r\n 'sellerBuyside/UPDATE_BID_REQUESTS',\r\n resolve => (dataItems: SellerBuysideSearchResult[]) => resolve({ dataItems })\r\n);\r\nconst updateRequestStateSubmitBid = createAction(\r\n 'sellerBuyside/UPDATE_REQUEST_STATE_SUBMIT_BID_REQUEST',\r\n resolve => (status: boolean, positionId: number) => resolve({ status, positionId })\r\n);\r\nconst saveSearchTermItems = createAction(\r\n 'sellerBuyside/SAVE_SEARCH_TERM_ITEMS',\r\n resolve => (searchItems: string[]) => resolve({ searchItems })\r\n);\r\nconst loadNextPage = createAction('sellerBuyside/LOAD_NEXT_PAGE');\r\nconst pagingReset = createAction('sellerBuyside/PAGING_RESET');\r\nconst storeAppliedFilter = createAction(\r\n 'sellerBuyside/STORE_APPLIED_FILTER',\r\n resolve => (filter: SellerBuysideFilterState) => resolve({ filter })\r\n);\r\nconst confirmBidRequestPopup = createAction(\r\n 'sellerBuyside/CONFIRM_BID_REQUEST_POPUP',\r\n resolve => (positionId: number, visible: boolean) => resolve({ positionId, visible })\r\n);\r\nconst exportBidRequestsRequest = createAction('sellerBuyside/EXPORT_BID_REQUESTS_REQUEST');\r\nconst exportBidRequestsSuccess = createAction('sellerBuyside/EXPORT_BID_REQUESTS_SUCCESS');\r\nconst exportBidRequestsFailure = createAction('sellerBuyside/EXPORT_BID_REQUESTS_FAILURE');\r\n\r\n\r\nconst updateEditBidRequestState = createAction(\r\n 'sellerBuyside/EDIT_BID_REQUEST_STATE',\r\n resolve => (editBidRequestState: EditBidRequestState) => resolve({ editBidRequestState })\r\n);\r\nconst hardReset = createAction('sellerBuyside/HARD_RESET');\r\nconst levelChange = createAction('sellerBuyside/LEVEL_CHANGE',\r\n resolve => (positionId: number, valueRaw: string, value: number | undefined, error: string, agreement: SettlementAgentAgreement) =>\r\n resolve({ positionId, valueRaw, value, error, agreement })\r\n);\r\nconst axedChange = createAction('sellerBuyside/AXED_CHANGE',\r\n resolve => (positionId: number, axed: boolean, agreement: SettlementAgentAgreement) =>\r\n resolve({ positionId, axed, agreement })\r\n);\r\nconst finalChange = createAction('sellerBuyside/FINAL_CHANGE',\r\n resolve => (positionId: number, final: boolean, agreement: SettlementAgentAgreement) =>\r\n resolve({ positionId, final, agreement })\r\n);\r\nconst commissionChange = createAction('sellerBuyside/COMMISSION_CHANGE',\r\n resolve => (positionId: number, commission: number, error: string, agreement: SettlementAgentAgreement) =>\r\n resolve({ positionId, commission, error, agreement })\r\n);\r\nconst resetPositionEditState = createAction('sellerBuyside/RESET_POSITION_EDIT_STATE',\r\n resolve => (positionId: number) => resolve({ positionId })\r\n);\r\nconst submittedBidsFilterChange = createAction('sellerBuyside/SUBMITTED_BIDS_FILTER_CHANGE',\r\n resolve => (submittedBidsFilterValue: boolean | null) => resolve({ submittedBidsFilterValue })\r\n);\r\nconst liveBiddingStage2TimerExpired = createAction('sellerBuyside/LIVE_BIDING_STAGE2_TIME_ENDED',\r\n resolve => (positionId: number) => resolve({ positionId })\r\n);\r\nconst sortChanged = createAction('sellerBuyside/SORTING_CHANGED',\r\n resolve => (sortBy: BwicMonitorSortByOptions) => resolve({ sortBy })\r\n);\r\nconst sortFieldChanged = createAction('sellerBuyside/SORTING_FIELD_CHANGED',\r\n resolve => (sortBy: BwicMonitorSortByOptions) => resolve({ sortBy })\r\n);\r\nconst advancedFiltersBlocked = createAction('sellerBuyside/ADVANCED_FILTERS_BLOCKED',\r\n resolve => (blocked: boolean) => resolve({ blocked })\r\n);\r\nconst resetSummary = createAction('sellerBuyside/RESET_SUMMARY');\r\n\r\nexport const sellerBuysideActions = {\r\n init,\r\n initRequestStatus,\r\n reset,\r\n hardReset,\r\n dateFilterChange,\r\n customDateFilterChange,\r\n bwicStatusFilterChange,\r\n currencyFilterChange,\r\n ratingFilterChange,\r\n typeFilterChange,\r\n sizeFilterChange,\r\n filterApply,\r\n filterReset,\r\n dataItemsLoadingState,\r\n storeSearchResult,\r\n loadNextPage,\r\n pagingReset,\r\n storeCurrencySelectedStatus,\r\n submitBidRequest,\r\n updateBidRequests,\r\n updateRequestStateSubmitBid,\r\n saveSearchTermItems,\r\n storeAppliedFilter,\r\n confirmBidRequestPopup,\r\n updateEditBidRequestState,\r\n exportBidRequestsRequest,\r\n exportBidRequestsSuccess,\r\n exportBidRequestsFailure,\r\n levelChange,\r\n axedChange,\r\n finalChange,\r\n commissionChange,\r\n resetPositionEditState,\r\n submittedBidsFilterChange,\r\n liveBiddingStage2TimerExpired,\r\n sortChanged,\r\n sortFieldChanged,\r\n advancedFiltersBlocked,\r\n resetSummary\r\n};\r\n\r\n","import { Dispatch } from \"redux\";\r\nimport { Deal } from \"../types/amr-pipeline/models/Deal\";\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { AmrClass } from \"../types/amr-pipeline/models/AmrClass\";\r\nimport { amrPipelineService } from \"../services/amr-pipeline.service\";\r\nimport { constants, imDetailsDealsActions as actionTypes, roles } from '../constants';\r\nimport { errorActions } from \"./error.actions\";\r\nimport { AmrDocument } from \"../types/amr-pipeline/models/AmrDocument\";\r\nimport moment from \"moment\";\r\nimport { dealsService } from \"../services/deals.service\";\r\nimport { user } from \"../user\";\r\nimport { getDealDocLastDate } from \"../utils/amr-pipeline.utils\";\r\nimport { DealDocumentsWithPattern } from \"../types/amr-pipeline/models/DealDocumentsWithPattern\";\r\n\r\nexport const imDetailsDealsActions = {\r\n loadDealDetails,\r\n loadTrancheDetails,\r\n documentsSearchTermChange,\r\n resetDocumentsSearch\r\n}\r\n\r\nfunction storeDeals(deals: Deal[]) {\r\n return {\r\n type: actionTypes.DEALS_STORE_DEALS,\r\n deals\r\n };\r\n}\r\n\r\nfunction storeDocumentsSearchResults(\r\n filteredDocuments: AmrDocument[],\r\n dealReferenceName: string\r\n) {\r\n return {\r\n type: actionTypes.DEALS_STORE_DOCUMENTS_SEARCH_RESULTS,\r\n filteredDocuments,\r\n dealReferenceName\r\n };\r\n}\r\n\r\nfunction resetDocumentsSearch() {\r\n return {\r\n type: actionTypes.DEALS_RESET_DOCUMENTS_SEARCH,\r\n };\r\n}\r\n\r\n\r\nfunction documentsSearchTermChange(\r\n searchTerm: string,\r\n dealReferenceName: string\r\n) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const searchTermLowerCase = searchTerm.toLowerCase();\r\n const { deals } = getState().imDetailsDeals;\r\n if (deals) {\r\n const selectedDeal = deals?.find(\r\n (d) => d.referenceName === dealReferenceName\r\n );\r\n if (selectedDeal && selectedDeal.documents) {\r\n const {\r\n documents: { dealDocuments },\r\n } = selectedDeal;\r\n const filteredDocuments = dealDocuments?.filter(\r\n (d) => {\r\n const date = getDealDocLastDate(d);\r\n const dateText = moment(date).format(constants.dateFormat);\r\n\r\n return d.name.toLowerCase().includes(searchTermLowerCase) || dateText.toLowerCase().includes(searchTermLowerCase)\r\n }\r\n );\r\n dispatch(storeDocumentsSearchResults(filteredDocuments, dealReferenceName));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction loadDealDetails(dealReferenceName: string, transactionReferenceName: string) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const { deals, loadedDealReferenceNames } = getState().imDetailsDeals;\r\n const currentDeal = deals?.find(d => d.referenceName === dealReferenceName);\r\n\r\n if (!loadedDealReferenceNames.some((referenceName: string) => referenceName === dealReferenceName)) {\r\n dispatch(dealDetailsRequesting(true));\r\n\r\n try {\r\n const isMedia = user.hasRoles(roles.Media);\r\n\r\n const actualAuctionsPromise = dealsService.getLatestDealAuctions(dealReferenceName);\r\n const amrDocumentsPromise = isMedia ? null : amrPipelineService.getAmrDocuments(dealReferenceName, transactionReferenceName);\r\n const dealDocumentsPromise = dealsService.getDealDocuments(dealReferenceName);\r\n\r\n if (!currentDeal) {\r\n const deal = await dealsService.getDeal(dealReferenceName);\r\n const loadedDeals = deals || [];\r\n dispatch(storeDeals([...loadedDeals, deal]));\r\n }\r\n\r\n const [amrDocuments, dealDocuments, actualAuctions] = await Promise.all([\r\n amrDocumentsPromise,\r\n dealDocumentsPromise,\r\n actualAuctionsPromise,\r\n ]);\r\n\r\n dispatch(storeDocuments(dealReferenceName, dealDocuments, amrDocuments));\r\n dispatch(storeActualAmrClasses(dealReferenceName, actualAuctions));\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch(dealDetailsRequesting(false));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction loadTrancheDetails(dealReferenceName: string, classReferenceName: string) {\r\n return async (dispatch: Dispatch, getState: () => AppState) => {\r\n const { deals } = getState().imDetailsDeals;\r\n const selectedDeal = deals?.find(d => d.referenceName === dealReferenceName);\r\n const selectedTranche = selectedDeal?.classes.find(c => c.referenceName === classReferenceName);\r\n\r\n if (selectedDeal && selectedTranche && selectedTranche.auctions == null) {\r\n dispatch(trancheDetailsRequesting(true));\r\n\r\n try {\r\n const auctions = await dealsService.getClassAuctions(dealReferenceName, selectedTranche.referenceName);\r\n dispatch(storeAmrClasses(dealReferenceName, classReferenceName, auctions));\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch(trancheDetailsRequesting(false));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction storeActualAmrClasses(dealReferenceName: string, amrClasses: AmrClass[]) {\r\n return {\r\n type: actionTypes.DEALS_STORE_ACTUAL_AMR_CLASSES,\r\n dealReferenceName,\r\n amrClasses\r\n };\r\n}\r\n\r\nfunction storeAmrClasses(dealReferenceName: string, classReferenceName: string, amrClasses: AmrClass[]) {\r\n return {\r\n type: actionTypes.DEALS_STORE_AMR_CLASSES,\r\n dealReferenceName,\r\n classReferenceName,\r\n amrClasses\r\n };\r\n}\r\n\r\nfunction storeDocuments(dealReferenceName: string, dealDocuments: DealDocumentsWithPattern, amrDocuments: Document[]) {\r\n return {\r\n type: actionTypes.DEALS_STORE_DOCUMENTS,\r\n dealReferenceName,\r\n documents: {\r\n dealDocuments: [...dealDocuments.dealDocuments, ...amrDocuments],\r\n }\r\n };\r\n}\r\n\r\nfunction dealDetailsRequesting(isRequesting: boolean) {\r\n return {\r\n type: actionTypes.DEAL_DETAILS_REQUESTING_STATE,\r\n isRequesting\r\n };\r\n}\r\n\r\nfunction trancheDetailsRequesting(isRequesting: boolean) {\r\n return {\r\n type: actionTypes.DEALS_TRANCHE_DETAILS_REQUESTUNG_STATE,\r\n isRequesting\r\n };\r\n}\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { BillingContact } from \"../types/billing/BillingContact\";\r\nimport { PaymentCard } from \"../types/billing/PaymentCard\";\r\nimport { SaveBillingContact } from \"../types/billing/SaveBillingContact\";\r\nimport { SavePaymentCard } from \"../types/billing/SavePaymentCard\";\r\nimport { City } from \"../types/location/City\";\r\nimport { Country } from \"../types/location/Country\";\r\nimport { State } from \"../types/location/State\";\r\nimport { SubscriptionType } from \"../types/billing/SubscriptionType\";\r\nimport { UpgradeSubscriptionStep } from \"../types/state/SubscriptionsState\";\r\nimport { SubscriptionPush } from \"../types/billing/SubscriptionPush\";\r\n\r\nconst init = createAction('subscriptions/INIT');\r\nconst reset = createAction('subscriptions/RESET');\r\nconst loadingFlag = createAction(\r\n 'subscriptions/LOADING',\r\n resolve => (isLoading: boolean) => resolve({ isLoading })\r\n);\r\nconst paymentCardSavingFlag = createAction(\r\n 'subscriptions/PAYMENT_CARD_SAVING',\r\n resolve => (isSaving: boolean) => resolve({ isSaving })\r\n);\r\nconst storePaymentCards = createAction(\r\n 'subscriptions/STORE_PAYMENT_CARDS',\r\n resolve => (paymentCards: PaymentCard[]) => resolve({ paymentCards })\r\n);\r\nconst sortPaymentCards = createAction(\r\n 'subscriptions/SORT_PAYMENT_CARDS'\r\n);\r\nconst primaryCardChange = createAction(\r\n 'subscriptions/PRIMARY_CARD_CHANGE',\r\n resolve => (paymentCard: PaymentCard, moveOnTop?: boolean) => resolve({ paymentCard, moveOnTop })\r\n);\r\nconst primaryCardChangeCompleted = createAction(\r\n 'subscriptions/PRIMARY_CARD_CHANGE_COMPLETED',\r\n resolve => (paymentCard: PaymentCard, moveOnTop?: boolean) => resolve({ paymentCard, moveOnTop })\r\n);\r\nconst deletePaymentCard = createAction(\r\n 'subscriptions/DELETE_PAYMENT_CARD',\r\n resolve => (paymentCard: PaymentCard) => resolve({ paymentCard })\r\n);\r\nconst deletePaymentCardCompleted = createAction(\r\n 'subscriptions/DELETE_PAYMENT_CARD_COMPLETED',\r\n resolve => (paymentCard: PaymentCard) => resolve({ paymentCard })\r\n);\r\nconst addPaymentCardPopupVisible = createAction(\r\n 'subscriptions/ADD_PAYMENT_CARD_POPUP_VISIBLE',\r\n resolve => (visible: boolean) => resolve({ visible })\r\n);\r\nconst addPaymentCard = createAction(\r\n 'subscriptions/ADD_PAYMENT_CARD',\r\n resolve => (paymentCard: SavePaymentCard, isLoadingVisible: boolean, setAsPrimary: boolean) =>\r\n resolve({ paymentCard, isLoadingVisible, setAsPrimary })\r\n);\r\nconst storeBillingContact = createAction(\r\n 'subscriptions/BILLING_CONTACT',\r\n resolve => (billingContact: BillingContact) => resolve({ billingContact })\r\n);\r\nconst storeCountries = createAction(\r\n 'subscriptions/COUNTRIES',\r\n resolve => (countries: Country[]) => resolve({ countries })\r\n);\r\nconst storeStates = createAction(\r\n 'subscriptions/STATES',\r\n resolve => (states: State[]) => resolve({ states })\r\n);\r\nconst storeCities = createAction(\r\n 'subscriptions/CITIES',\r\n resolve => (cities: City[]) => resolve({ cities })\r\n);\r\nconst billingContactEditFlag = createAction(\r\n 'subscriptions/BILLING_CONTACT_EDIT',\r\n resolve => (isBillingContactEdit: boolean) => resolve({ isBillingContactEdit })\r\n);\r\nconst billingContactSavingFlag = createAction(\r\n 'subscriptions/BILLING_CONTACT_SAVING',\r\n resolve => (isBillingContactSaving: boolean) => resolve({ isBillingContactSaving })\r\n);\r\nconst saveBillingContact = createAction(\r\n 'subscriptions/SAVE_BILLING_CONTACT',\r\n resolve => (billingContact: SaveBillingContact) => resolve({ billingContact })\r\n);\r\nconst loadCities = createAction(\r\n 'subscriptions/LOAD_CITIES',\r\n resolve => (stateId: number) => resolve({ stateId })\r\n);\r\nconst citiesLoadingFlag = createAction(\r\n 'subscriptions/CITIES_LOADING_FLAG',\r\n resolve => (isCitiesLoading: boolean) => resolve({ isCitiesLoading })\r\n);\r\nconst billingContactSaved = createAction(\r\n 'subscriptions/BILLING_CONTACT_SAVED',\r\n resolve => (billingContact: BillingContact) => resolve({ billingContact })\r\n);\r\nconst subscriptionPushReceived = createAction(\r\n 'subscriptions/SUBSCRIPTION_CHANGE_PUSH',\r\n resolve => (subscription: SubscriptionPush) => resolve({ subscription })\r\n);\r\nconst upgradeSubscription = createAction(\r\n 'subscriptions/UPGRADE',\r\n resolve => (targetSubscriptionType: SubscriptionType) => resolve({ targetSubscriptionType })\r\n);\r\nconst showUpgradeSubscriptionWizard = createAction(\r\n 'subscriptions/SHOW_UPGRADE_SUBSCRIPTION_WIZARD',\r\n resolve => (targetSubscriptionType: SubscriptionType, activeStep: UpgradeSubscriptionStep = UpgradeSubscriptionStep.BillingContact) =>\r\n resolve({ targetSubscriptionType, activeStep })\r\n);\r\nconst hideUpgradeSubscriptionWizard = createAction('subscriptions/HIDE_UPGRADE_SUBSCRIPTION_WIZARD');\r\nconst setUpgradeSubscriptionStep = createAction(\r\n 'subscriptions/UPGRADE_SUBSCRIPTION_STEP',\r\n resolve => (step: UpgradeSubscriptionStep) => resolve({ step })\r\n);\r\n\r\nexport const subscriptionsActions = {\r\n init,\r\n reset,\r\n loadingFlag,\r\n paymentCardSavingFlag,\r\n storePaymentCards,\r\n sortPaymentCards,\r\n storeBillingContact,\r\n storeCountries,\r\n storeStates,\r\n storeCities,\r\n loadCities,\r\n citiesLoadingFlag,\r\n primaryCardChange,\r\n primaryCardChangeCompleted,\r\n deletePaymentCard,\r\n deletePaymentCardCompleted,\r\n addPaymentCardPopupVisible,\r\n addPaymentCard,\r\n billingContactEditFlag,\r\n billingContactSavingFlag,\r\n saveBillingContact,\r\n billingContactSaved,\r\n subscriptionPushReceived,\r\n upgradeSubscription,\r\n showUpgradeSubscriptionWizard,\r\n hideUpgradeSubscriptionWizard,\r\n setUpgradeSubscriptionStep\r\n};\r\n\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { ContactSalesRequest } from '../types/contact-sales/ContactSalesRequest';\r\n\r\nconst show = createAction('contactSales/SHOW');\r\nconst hide = createAction('contactSales/HIDE');\r\nconst requestSendingFlag = createAction('contactSales/REQUEST_SENDING', resolve => (isSending: boolean) => resolve({ isSending }));\r\nconst send = createAction('contactSales/SEND', resolve => (request: ContactSalesRequest) => resolve({ request }));\r\n\r\nexport const contactSalesActions = {\r\n show,\r\n hide,\r\n requestSendingFlag,\r\n send\r\n}\r\n","import { dashboardService } from \"../services\";\r\nimport { user } from \"../user\";\r\nimport { roles } from \"../constants\";\r\nimport { dealersStatsActions as actionTypes } from '../constants/actionTypes/dealers-stats.actions'\r\nimport { errorActions } from \"./error.actions\";\r\nimport { Dispatch } from \"redux\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { IDealersStats } from \"../types/models/DealersStats\";\r\n\r\ninterface GetDealersStatsService {\r\n exist: () => Promise;\r\n fetch: () => Promise<{ data: IDealersStats[] }>;\r\n export: () => Promise<{ name: string, blob: Blob }>;\r\n}\r\n\r\nexport const dealersStatsActions = {\r\n checkStatsExist,\r\n fetchStats,\r\n exportDealersStats,\r\n setExportDealerStatsRequestStatus,\r\n};\r\n\r\nfunction getDealersStatsService(): GetDealersStatsService {\r\n const isSeller: boolean = user.hasRoles(...roles.seller());\r\n return {\r\n exist: isSeller ? dashboardService.fetchDealersStatsExists : dashboardService.fetchSellersStatsExists,\r\n fetch: isSeller ? dashboardService.fetchDealersStats : dashboardService.fetchClientsStats,\r\n export: isSeller ? dashboardService.exportDealersStats : dashboardService.exportSellerStats,\r\n }\r\n}\r\n\r\nfunction checkStatsExist() {\r\n return async (dispatch: Dispatch) => {\r\n try {\r\n dispatch(setRequestStateFetchDealerStatsExist(true));\r\n const statsExist = await getDealersStatsService().exist();\r\n dispatch(storeDealersStatsExist(statsExist));\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n } finally {\r\n dispatch(setRequestStateFetchDealerStatsExist(false));\r\n }\r\n };\r\n}\r\n\r\nfunction setRequestStateFetchDealerStatsExist(status: boolean) {\r\n return {\r\n type: actionTypes.FETCH_STATS_EXIST_REQUEST_STATUS,\r\n payload: {status}\r\n };\r\n}\r\n\r\nfunction storeDealersStatsExist(existStatus: boolean) {\r\n return {\r\n type: actionTypes.STORE_STATS_EXIST_STATUS,\r\n payload: {existStatus}\r\n };\r\n}\r\n\r\n\r\nfunction fetchStats() {\r\n return async (dispatch: Dispatch) => {\r\n try {\r\n dispatch(setFetchStatsRequestStatus(true));\r\n const fetchStats = await getDealersStatsService().fetch();\r\n\r\n if (fetchStats) {\r\n dispatch(storeStats(fetchStats.data))\r\n }\r\n } catch (e) {\r\n errorActions.unexpectedError(e)\r\n } finally {\r\n dispatch(setFetchStatsRequestStatus(false))\r\n }\r\n };\r\n}\r\n\r\n\r\nfunction storeStats(stats: IDealersStats[]) {\r\n return {\r\n type: actionTypes.STORE_STATS,\r\n payload: {stats}\r\n };\r\n}\r\n\r\nfunction setFetchStatsRequestStatus(status: boolean) {\r\n return {\r\n type: actionTypes.FETCH_STATS_REQUEST_STATUS,\r\n payload: {status}\r\n };\r\n}\r\n\r\nfunction exportDealersStats() {\r\n return async (dispatch: Dispatch) => {\r\n try {\r\n const exportStats = await getDealersStatsService().export();\r\n\r\n if (exportStats) {\r\n dispatch(setExportDealerStatsRequestStatus(true));\r\n saveAs(exportStats.blob, exportStats.name);\r\n }\r\n\r\n } catch (e) {\r\n errorActions.unexpectedError(e)\r\n } finally {\r\n dispatch(setExportDealerStatsRequestStatus(false))\r\n }\r\n };\r\n}\r\n\r\nfunction setExportDealerStatsRequestStatus(status: boolean) {\r\n return {\r\n type: actionTypes.EXPORT_STATS_REQUEST_STATUS,\r\n payload: {status}\r\n };\r\n}\r\n","import { AnyAction } from \"redux\";\r\nimport { entries, isUndefined, omitBy } from \"lodash\";\r\nimport { ThunkDispatch } from \"redux-thunk\";\r\nimport { createAction } from \"typesafe-actions\"\r\nimport { constants, errorMessages, uploadStatus } from \"../constants\";\r\nimport { inventoryService } from \"../services/inventory.service\";\r\nimport { InventoryFloatingIndex, inventoryFloatingIndexTitles } from '../types/inventory/InventoryFloatingIndex';\r\nimport { AppState } from \"../types/state/AppState\";\r\nimport { dateTimeUtils, formatUtils, moneyUtils, numericUtils, stringUtils } from \"../utils\";\r\nimport { gridActions, errorActions } from \".\";\r\nimport { ParsedInventoryPosition } from '../types/inventory/ParsedInventoryPosition';\r\nimport { GridDataItem } from \"../types/state/GridState\";\r\nimport { InventoryPosition } from \"../types/inventory/InventoryPosition\";\r\nimport { EditingInventoryPosition } from \"../types/state/InventoryEditState\";\r\nimport { RequestState } from '../constants/request-state';\r\n\r\nconst setSavingState = createAction('inventoryEdit/IS_SAVING',\r\n resolve => (requestState: RequestState) => resolve({ requestState })\r\n);\r\nconst save = createAction(\r\n 'inventoryEdit/SAVE',\r\n resolve => (lockModifiedDate?: Date, companyId?: number) => resolve({ lockModifiedDate, companyId })\r\n);\r\nconst setConflictsPopupVisible = createAction(\r\n 'inventoryEdit/SET_VISIBLE_WARNING_POPUP',\r\n resolve => (visible: boolean) => resolve({ visible })\r\n);\r\nconst setTradedStatus = createAction(\r\n 'inventoryEdit/SET_TRADED_STATUS',\r\n resolve => (inventoryPositionId: number, lockModifiedDate: Date, tradeDate: Date) => resolve({ inventoryPositionId, lockModifiedDate, tradeDate })\r\n);\r\nconst setTradedRequestStatus = createAction('inventoryEdit/SET_TRADED_REQUEST_STATUS',\r\n resolve => (inventoryId: number, status: boolean) => resolve({ inventoryId, status })\r\n);\r\nconst reset = createAction('inventoryEdit/RESET');\r\n\r\nconst setFlaggedModal = createAction(\r\n 'inventoryEdit/SET_FLAGGED_MODAL',\r\n resolve => (isFlaggedModalVisible: boolean) => resolve(isFlaggedModalVisible)\r\n)\r\n\r\nconst updateCoupon = (rowIndex: number) => {\r\n // use thunk because gridActions.deleteRow && gridActions.insertDataItems cannot be dispatched from saga\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n const dataItems: GridDataItem[] = getState().grid.dataItems;\r\n const dataItem = dataItems[rowIndex] && { ...dataItems[rowIndex] };\r\n\r\n if (dataItem) {\r\n dataItem.coupon = formatUtils.formatInventoryCoupon({\r\n floaterIndex: dataItem.floaterIndex ? dataItem.floaterIndex as unknown as InventoryFloatingIndex : undefined,\r\n spread: numericUtils.isNumber(dataItem.spread) ? Number(dataItem.spread) : undefined\r\n });\r\n\r\n dispatch(gridActions.deleteRow(rowIndex));\r\n dispatch(gridActions.insertDataItems([dataItem], rowIndex));\r\n }\r\n };\r\n}\r\n\r\nconst uploadSecurities = (file: File) => {\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n const { position, upload, mountedKey } = getState().grid;\r\n\r\n if (upload.status === uploadStatus.uploading) {\r\n return;\r\n }\r\n\r\n const extension = (file.name.split('.').pop() || '').toLowerCase();\r\n\r\n if (extension !== 'csv' && extension !== 'xlsx') {\r\n dispatch(errorActions.error(\r\n null,\r\n errorMessages.invalidFileType,\r\n 'Invalid file type.'\r\n ));\r\n return;\r\n\r\n } else if (file.size > constants.gridFileUploadMaximumSize * 1024 * 1024) {\r\n dispatch(errorActions.error(\r\n null,\r\n errorMessages.fileSizeLimitExceeded(constants.gridFileUploadMaximumSize),\r\n 'The file is too big.'\r\n ));\r\n return;\r\n }\r\n\r\n if (position?.editing) {\r\n dispatch(gridActions.applyOrCancelEdit());\r\n }\r\n\r\n inventoryService\r\n .uploadSecurities(file, progress)\r\n .then(success, failure)\r\n .finally(() => dispatch(gridActions.setUploadState(uploadStatus.none)));\r\n\r\n dispatch(gridActions.setUploadState(uploadStatus.uploading, 0, file.name));\r\n\r\n function success(positions: ParsedInventoryPosition[]) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (mountedKey === currentMountedKey) {\r\n const dataItems = getState().grid.dataItems.filter((i: GridDataItem) => !i.draft);\r\n const parsed: EditingInventoryPosition[] = positions.map(p => normalizeParsedInventoryPosition(p));\r\n const merged = mergeDataItems(dataItems, parsed);\r\n dispatch(gridActions.setUploadState(uploadStatus.ready))\r\n dispatch(gridActions.clear());\r\n dispatch(gridActions.addDataItems(merged));\r\n dispatch(ensureFlaggedModalShown(merged));\r\n dispatch(gridActions.validate());\r\n }\r\n }\r\n\r\n function failure(e: Error) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (mountedKey === currentMountedKey) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n dispatch(gridActions.setUploadState(uploadStatus.ready))\r\n }\r\n\r\n function progress(e: ProgressEvent) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (e.lengthComputable && mountedKey === currentMountedKey) {\r\n const percentComplete = (e.loaded / e.total) * 100;\r\n dispatch(gridActions.setUploadState(uploadStatus.uploading, percentComplete, file.name));\r\n }\r\n }\r\n };\r\n};\r\n\r\nconst handleClipboardData = (clipboardData: string) => {\r\n return (dispatch: ThunkDispatch, getState: () => AppState) => {\r\n const { mountedKey } = getState().grid;\r\n dispatch(gridActions.dataProcessing(true));\r\n\r\n inventoryService\r\n .parseSecuritiesStirng(clipboardData)\r\n .then(success)\r\n .catch(e => dispatch(errorActions.unexpectedError(e)))\r\n .finally(() => dispatch(gridActions.dataProcessing(false)));\r\n\r\n function success(securities: ParsedInventoryPosition[]) {\r\n const currentMountedKey = getState().grid.mountedKey;\r\n if (mountedKey === currentMountedKey) {\r\n const dataItems = getState().grid.dataItems.filter((i: GridDataItem) => !i.draft);\r\n const parsed: any[] = securities.map(p => normalizeParsedInventoryPosition(p));\r\n const merged = mergeDataItems(dataItems, parsed);\r\n dispatch(gridActions.clear());\r\n dispatch(gridActions.addDataItems(merged));\r\n dispatch(ensureFlaggedModalShown(merged));\r\n dispatch(gridActions.validate());\r\n }\r\n }\r\n };\r\n};\r\n\r\nconst ensureFlaggedModalShown = (merged: GridDataItem[]) => {\r\n return (dispatch: ThunkDispatch) => {\r\n const isFlaggedExists = merged.some((item => item.isFlagged));\r\n if (isFlaggedExists) {\r\n dispatch(setFlaggedModal(true));\r\n }\r\n }\r\n}\r\n\r\nconst excludeComputedProps = (source: EditingInventoryPosition) => {\r\n const withoutComputedProps = {\r\n ...source,\r\n coupon: undefined,\r\n cusip: undefined,\r\n draft: undefined,\r\n errors: undefined,\r\n isin: undefined,\r\n securityId: undefined,\r\n currency: undefined,\r\n ncEndMonth: undefined,\r\n ncEndYear: undefined,\r\n riEndMonth: undefined,\r\n riEndYear: undefined,\r\n size: source.size ? Number(source.size) : undefined,\r\n offer: source.offer ? Number(source.offer) : undefined,\r\n floaterIndex: source.floaterIndex ? Number(source.floaterIndex) : undefined\r\n };\r\n return omitBy(withoutComputedProps, isUndefined);\r\n}\r\n\r\nfunction mergeDataItems(\r\n actualItems: GridDataItem[],\r\n updatedItems: EditingInventoryPosition[]) {\r\n if (!actualItems.length) {\r\n return updatedItems.map(i => ({ ...i, isNew: true }));\r\n }\r\n\r\n const actualItemsCopy: GridDataItem[] = [...actualItems].map(el => ({ ...el, isFlagged: true }));\r\n const newItems: GridDataItem[] = [];\r\n\r\n updatedItems.forEach(u => {\r\n const actualIndex = actualItems.findIndex(a => a.securityId && a.securityId === u.securityId);\r\n if (actualIndex < 0) {\r\n newItems.push({ ...u, isNew: true });\r\n } else if (!isEqual(excludeComputedProps(actualItems[actualIndex]), excludeComputedProps(u))) {\r\n actualItemsCopy[actualIndex] = { ...u, isUpdate: true };\r\n } else {\r\n actualItemsCopy[actualIndex] = { ...actualItems[actualIndex], isUpdate: false, isNew: false, isFlagged: false };\r\n }\r\n });\r\n\r\n return actualItemsCopy.concat(newItems);\r\n}\r\n\r\nfunction isEqual(actual: GridDataItem, update: GridDataItem) {\r\n const valueOrEmpty = (value?: T | null) => value ?? '';\r\n\r\n return (\r\n actual.securityId === update.securityId &&\r\n actual.isinCusip === update.isinCusip &&\r\n actual.ticker === update.ticker &&\r\n valueOrEmpty(actual.rating) === valueOrEmpty(update.rating) &&\r\n valueOrEmpty(actual.offer) === valueOrEmpty(update.offer) &&\r\n valueOrEmpty(actual.size) === valueOrEmpty(update.size) &&\r\n valueOrEmpty(actual.offerDmBps) === valueOrEmpty(update.offerDmBps) &&\r\n valueOrEmpty(actual.offerYield) === valueOrEmpty(update.offerYield) &&\r\n valueOrEmpty(actual.spread) === valueOrEmpty(update.spread) &&\r\n valueOrEmpty(actual.walYears) === valueOrEmpty(update.walYears) &&\r\n valueOrEmpty(actual.mvoc) === valueOrEmpty(update.mvoc) &&\r\n valueOrEmpty(actual.manager) === valueOrEmpty(update.manager) &&\r\n valueOrEmpty(actual.description) === valueOrEmpty(update.description) &&\r\n valueOrEmpty(actual.ncEnd) === valueOrEmpty(update.ncEnd) &&\r\n valueOrEmpty(actual.riEnd) === valueOrEmpty(update.riEnd) &&\r\n valueOrEmpty(actual.floaterIndex) === valueOrEmpty(update.floaterIndex) &&\r\n valueOrEmpty(actual.creditEnhancement) === valueOrEmpty(update.creditEnhancement)\r\n );\r\n}\r\n\r\nfunction normalizeParsedInventoryPosition(position: ParsedInventoryPosition): EditingInventoryPosition {\r\n const dataItem: EditingInventoryPosition = {};\r\n\r\n if (position.floaterIndex) {\r\n const key = entries(inventoryFloatingIndexTitles)\r\n .find(([, title]) => title.localeCompare(position.floaterIndex || '', undefined, { sensitivity: 'accent' }) === 0)\r\n ?.[0];\r\n\r\n const floaterIndexEnumKey = InventoryFloatingIndex[key as keyof typeof InventoryFloatingIndex];\r\n\r\n dataItem.floaterIndex = floaterIndexEnumKey ? InventoryFloatingIndex[floaterIndexEnumKey] : undefined;\r\n }\r\n\r\n dataItem.securityId = position.securityId;\r\n dataItem.isinCusip = position.isinCusip;\r\n dataItem.ticker = position.ticker;\r\n dataItem.rating = position.rating;\r\n dataItem.spread = normalizeNumeric(position.spread);\r\n dataItem.coupon = formatUtils.formatInventoryCoupon({\r\n floaterIndex: dataItem.floaterIndex ? dataItem.floaterIndex as unknown as InventoryFloatingIndex : undefined,\r\n spread: numericUtils.isNumber(dataItem.spread) ? Number(dataItem.spread) : undefined\r\n });\r\n dataItem.bid = position.bid ? normalizeNumeric(position.bid): undefined;\r\n dataItem.offer = normalizeNumeric(position.offer); \r\n dataItem.bidSize = numericUtils.isNumber(position.bidSize) ? moneyUtils.amountToMM(+position.bidSize) : position.bidSize; \r\n dataItem.size = numericUtils.isNumber(position.size) ? moneyUtils.amountToMM(+position.size) : position.size;\r\n dataItem.bidDmBps = position.bidDmBps ? normalizeNumeric(position.bidDmBps) : undefined;\r\n dataItem.offerDmBps = normalizeNumeric(position.offerDmBps);\r\n dataItem.offerYield = normalizeNumeric(position.offerYield);\r\n dataItem.walYears = normalizeNumeric(position.walYears);\r\n dataItem.mvoc = normalizeNumeric(position.mvoc);\r\n dataItem.ncEnd = stringUtils.isNullOrWhiteSpace(position.ncEnd) ? undefined : formatUtils.formatMonthAndYear(position.ncEnd, position.ncEnd);\r\n dataItem.riEnd = stringUtils.isNullOrWhiteSpace(position.riEnd) ? undefined : formatUtils.formatMonthAndYear(position.riEnd, position.riEnd);\r\n const ncEndParseResult = dateTimeUtils.parseMonthAndYearStamp(position.ncEnd);\r\n const riEndParseResult = dateTimeUtils.parseMonthAndYearStamp(position.riEnd);\r\n if (ncEndParseResult.isMonthValid && ncEndParseResult.isYearValid) {\r\n dataItem.ncEndYear = ncEndParseResult.year;\r\n dataItem.ncEndMonth = ncEndParseResult.month;\r\n }\r\n if (riEndParseResult.isMonthValid && riEndParseResult.isYearValid) {\r\n dataItem.riEndYear = riEndParseResult.year;\r\n dataItem.riEndMonth = riEndParseResult.month;\r\n }\r\n dataItem.manager = stringUtils.isNullOrWhiteSpace(position.manager) ? undefined : position.manager.trim();\r\n dataItem.description = stringUtils.isNullOrWhiteSpace(position.description) ? undefined : position.description.trim();\r\n dataItem.creditEnhancement = normalizeNumeric(position.creditEnhancement);\r\n return dataItem;\r\n}\r\n\r\nfunction normalizeNumeric(raw?: string | null, defaultValue?: number): number | string | undefined {\r\n if (raw == null || stringUtils.isNullOrWhiteSpace(raw)) {\r\n return defaultValue;\r\n }\r\n\r\n const trimmed = raw.trim();\r\n\r\n return numericUtils.isNumber(trimmed) ? +trimmed : raw;\r\n}\r\n\r\nexport const inventoryEditActions = {\r\n save,\r\n setSavingState,\r\n updateCoupon,\r\n uploadSecurities,\r\n handleClipboardData,\r\n setConflictsPopupVisible,\r\n setTradedStatus,\r\n setTradedRequestStatus,\r\n reset,\r\n setFlaggedModal,\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\nimport { InventoryPositionStatus } from '../types/inventory/InventoryPositionStatus';\r\nimport { InventorySecurityOrderByColumn, InventorySecuritySortOrder } from '../types/inventory/InventorySecurityOrderByColumn';\r\nimport { InventoryResultSummary } from '../types/inventory/InventoryResultSummary';\r\n\r\nconst request = createAction('entities/inventory/REQUEST');\r\nconst requestResult = createAction('entities/inventory/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, result: InventoryPosition[] = [], totalRecordNumber: number = 0, summary?: InventoryResultSummary) =>\r\n resolve({ requestState, result, totalRecordNumber, summary })\r\n);\r\nconst resetEntities = createAction('entities/inventory/RESET');\r\nconst reset = createAction('inventory/RESET');\r\nconst resetSummary = createAction('inventory/RESET_SUMMARY');\r\nconst loadNextPage = createAction('entities/inventory/LOAD_NEXT_PAGE');\r\nconst init = createAction(\r\n 'inventory/INIT',\r\n resolve => (sortField: InventorySecurityOrderByColumn, sortDirection: InventorySecuritySortOrder) => resolve({ sortField, sortDirection })\r\n);\r\nconst requestInventoryExistFlag = createAction('invetory/INVENTORY_EXIST_FLAG_REQUEST');\r\nconst inventoryExistFlag = createAction(\r\n 'inventory/INVENTORY_EXIST_FLAG',\r\n resolve => (exist: boolean) => resolve({ exist })\r\n);\r\nconst loadSellerInventory = createAction(\r\n 'inventory/LOAD_SELLER_INVENTORY',\r\n resolve => (sortField: InventorySecurityOrderByColumn, sortDirection: InventorySecuritySortOrder, loadSummary: boolean, applyFilter: boolean = true) => resolve({ sortField, sortDirection, loadSummary, applyFilter })\r\n);\r\n\r\nconst exportInventoryRequest = createAction(\r\n 'inventory/EXPORT_INVENTORY_REQUEST',\r\n resolve => (sortField: string, sortDirection: string) => resolve({ sortField, sortDirection })\r\n);\r\nconst exportInventoryResponse = createAction('inventory/EXPORT_INVENTORY_RESPONSE');\r\nconst pushInventory = createAction(\r\n 'entities/inventory/PUSH_INVENTORY',\r\n resolve => (inventories: InventoryPosition[], lockModifiedDate?: Date) => resolve({ inventories, lockModifiedDate })\r\n);\r\nconst inventoryStatusChange = createAction(\r\n 'entities/inventory/INVENTORY_STATUS_CHANGE',\r\n resolve => (inventoryPositionId: number, status: InventoryPositionStatus) => resolve({ inventoryPositionId, status })\r\n);\r\nconst advancedFilterBlocked = createAction('inventory/ADVANCED_FILTER_BLOCKED', resolve => (blocked: boolean) => resolve({ blocked }));\r\n\r\nexport const inventoryActions = {\r\n init,\r\n requestInventoryExistFlag,\r\n inventoryExistFlag,\r\n loadNextPage,\r\n request,\r\n resetEntities,\r\n requestResult,\r\n reset,\r\n loadSellerInventory,\r\n exportInventoryRequest,\r\n exportInventoryResponse,\r\n pushInventory,\r\n inventoryStatusChange,\r\n advancedFilterBlocked,\r\n resetSummary\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { DateFilterOption } from '../types/filters/DateFilterOption';\r\nimport { DateRange } from '../types/filters/DateRange';\r\n\r\nconst toogleFilterSalesRepresentative = createAction('manage-companies/COMPANY_FILTER_TOOGLE_SALES_REPS',\r\n resolve => (salesRepresentatives: number[]) => resolve({ salesRepresentatives })\r\n)\r\n\r\nconst setFilterSalesRepresentative = createAction('manage-companies/COMPANY_FILTER_SET_SALES_REPS',\r\n resolve => (salesRepresentatives: number[]) => resolve({ salesRepresentatives })\r\n)\r\n\r\nconst toogleFilterRegBy = createAction('manage-companies/COMPANY_FILTER_TOOGLE_REG_BY',\r\n resolve => (regBy: number[]) => resolve({ regBy })\r\n)\r\n\r\nconst setFilterRegBy = createAction('manage-companies/COMPANY_FILTER_SET_REG_BY',\r\n resolve => (regBy: number[]) => resolve({ regBy })\r\n)\r\n\r\nconst toogleFilterStatusActive = createAction('manage-companies/COMPANY_FILTER_TOOGLE_STATUS_ACTIVE');\r\nconst toogleFilterStatusBlocked = createAction('manage-companies/COMPANY_FILTER_TOOGLE_STATUS_BLOCKED');\r\nconst toogleFilterStatusOffPlatform = createAction('manage-companies/COMPANY_FILTER_TOOGLE_STATUS_OFF_PLATFORM');\r\n\r\nconst toogleFilterRoleAdministrator = createAction('manage-companies/COMPANY_FILTER_TOOGLE_ROLE_ADMINISTRATOR')\r\nconst toogleFilterRoleBrokerDealer = createAction('manage-companies/COMPANY_FILTER_TOOGLE_ROLE_BROKER_DEALER')\r\nconst toogleFilterRoleSeller = createAction('manage-companies/COMPANY_FILTER_TOOGLE_ROLE_SELLER')\r\nconst toogleFilterRoleViewer = createAction('manage-companies/COMPANY_FILTER_TOOGLE_ROLE_VIEWER')\r\nconst toogleFilterRoleMedia = createAction('manage-companies/COMPANY_FILTER_TOOGLE_ROLE_MEDIA')\r\n\r\nconst setDateFilterChange = createAction('manage-companies/COMPANY_FILTER_DATE_CHANGED',\r\n resolve => (dateOption: DateFilterOption) => resolve({ dateOption })\r\n)\r\n\r\nconst setDateFilterRangeChange = createAction('manage-companies/COMPANY_FILTER_DATE_RANGE_CHANGED',\r\n resolve => (dateRange: DateRange) => resolve({ dateRange })\r\n)\r\n\r\nexport const manageCompaniesFiltersActions = {\r\n toogleFilterSalesRepresentative,\r\n setFilterSalesRepresentative,\r\n toogleFilterRegBy,\r\n setFilterRegBy,\r\n toogleFilterStatusActive,\r\n toogleFilterStatusBlocked,\r\n toogleFilterStatusOffPlatform,\r\n toogleFilterRoleAdministrator,\r\n toogleFilterRoleBrokerDealer,\r\n toogleFilterRoleSeller,\r\n toogleFilterRoleViewer,\r\n toogleFilterRoleMedia,\r\n setDateFilterChange,\r\n setDateFilterRangeChange\r\n}","import { createAction } from 'typesafe-actions';\r\nimport { Currency } from '../types/enums/Currency';\r\nimport { AlertOption, EmailPreferences } from '../types/email-preferences/EmailPreferences';\r\nimport { Rating } from '../types/enums/Rating';\r\nimport { DailyStatsAlertsConfig, CompanyAlertsConfig, ImUserConfig, SecondaryStatsAlertsConfig } from '../types/user-config/UserConfig';\r\nimport { UserConfigFilter } from '../types/user-config/UserConfigFilter';\r\nimport { StatisticsAlertOption } from '../types/amr-pipeline/enums/AlertOption';\r\nimport { AlertEnabledState } from '../types/enums/AlertEnabledState';\r\nimport { CloManager } from '../types/clo-managers/CloManager';\r\nimport { SavedFiltersPreferencesState } from '../types/state/ManageEmailPreferencesState';\r\nimport { Bank } from '../types/banks/Bank';\r\n\r\nconst getInitialDataRequest = createAction(\r\n 'manageEmailPreferences/GET_INITIAL_DATA_REQUEST',\r\n resolve => (withIssuanceMonitorAccess: boolean = false) => resolve({ withIssuanceMonitorAccess })\r\n);\r\nconst getInitialDataSuccess = createAction(\r\n 'manageEmailPreferences/GET_INITIAL_DATA_SUCCESS',\r\n resolve => (\r\n preferences: EmailPreferences,\r\n userConfig?: ImUserConfig[],\r\n managers?: CloManager[],\r\n banks?: Bank[],\r\n ) => resolve({ preferences, userConfig, managers, banks })\r\n);\r\nconst setRatingCheckedState = createAction(\r\n 'manageEmailPreferences/SET_RATING_CHECKED_STATE',\r\n resolve => (rating: Rating, currency: Currency, checked: boolean) => resolve({ rating, currency, checked })\r\n);\r\nconst setRatingInCurrencyCheckedState = createAction(\r\n 'manageEmailPreferences/SET_RATING_IN_CURRENCY_CHECKED_STATE',\r\n resolve => (currency: Currency, checked: boolean) => resolve({ currency, checked })\r\n);\r\nconst setAllRatingCheckedState = createAction(\r\n 'manageEmailPreferences/SET_ALL_RATING_CHECKED_STATE',\r\n resolve => (checked: boolean) => resolve({ checked })\r\n);\r\nconst setRatingSize = createAction(\r\n 'manageEmailPreferences/SET_RATING_MIN_SIZE',\r\n resolve => (rating: Rating, size: number, type: 'minSize' | 'maxSize') => resolve({ rating, size, type })\r\n);\r\nconst setCheckedDailyDashboardEmail = createAction(\r\n 'manageEmailPreferences/SET_CHECKED_DAILY_DASHBOARD_EMAIL',\r\n resolve => (alertOption: AlertOption) => resolve({ alertOption })\r\n);\r\nconst setPortfolioBwicAlerts = createAction(\r\n 'manageEmailPreferences/SET_PORTFOLIO_BWIC_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\nconst setPortfolioCleansingNoticeAlerts = createAction(\r\n 'manageEmailPreferences/SET_PORTFOLIO_CLEANSING_NOTICE_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\nconst setPortfolioIssuanceMonitorAlerts = createAction(\r\n 'manageEmailPreferences/SET_PORTFOLIO_ISSUANCE_MONITOR_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\n\r\nconst setPortfolioRiAlerts = createAction(\r\n 'manageEmailPreferences/SET_PORTFOLIO_RI_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\n\r\nconst setPortfolioNcAlerts = createAction(\r\n 'manageEmailPreferences/SET_PORTFOLIO_NC_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\n\r\nconst setPortfolioRollerDeadlineAlerts = createAction(\r\n 'manageEmailPreferences/SET_PORTFOLIO_ROLLER_DEADLINE_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\n\r\nconst setNewBiwicAlerts = createAction(\r\n 'manageEmailPreferences/SET_NEW_BIWIC_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\nconst setBiwicReminderAlerts = createAction(\r\n 'manageEmailPreferences/SET_BIWIC_REMINDER_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\nconst setPortfolioInventoryAlerts = createAction(\r\n 'manageEmailPreferences/SET_PORTFOLIO_INVENTORY_ALERTS',\r\n resolve => (status: AlertEnabledState) => resolve({ status })\r\n);\r\nconst setBwicByRatingPreferences = createAction(\r\n 'manageEmailPreferences/SET_BWIC_BY_RATING_PREFERENCES',\r\n resolve => (bwicByRatingAlertState: AlertOption) => resolve({ bwicByRatingAlertState })\r\n)\r\nconst setDealerInventoryAlertState = createAction(\r\n 'manageEmailPreferences/SET_DEALER_INVENTORY_ALERTS',\r\n resolve => (dealerInventoryAlertState: AlertOption) => resolve({ dealerInventoryAlertState })\r\n)\r\nconst setIssuanceMonitorSingleAlert = createAction(\r\n 'manageEmailPreferences/SET_ISSUANCE_MONITOR_SINGLE_ALERT',\r\n resolve => (singleAlertState: AlertOption) => resolve({ singleAlertState })\r\n);\r\nconst setIssuanceMonitorNewTransactionAlert = createAction(\r\n 'manageEmailPreferences/SET_ISSUANCE_MONITOR_NEW_TRANSACTION_ALERT',\r\n resolve => (transactionAlertState: AlertOption) => resolve({ transactionAlertState })\r\n);\r\nconst setIssuanceMonitorStatisticsAlert = createAction(\r\n 'manageEmailPreferences/SET_ISSUANCE_MONITOR_STATISTICS_ALERT',\r\n resolve => (statisticAlertState: StatisticsAlertOption) => resolve({ statisticAlertState })\r\n);\r\nconst setIssuanceMonitorFiltersAlert = createAction(\r\n 'manageEmailPreferences/SET_ISSUANCE_MONITOR_FILTERS_ALERT',\r\n resolve => (filtersAlertState: UserConfigFilter[]) => resolve({ filtersAlertState })\r\n);\r\n\r\nconst setArrangerPipelineAlert = createAction(\r\n 'manageEmailPreferences/SET_ARRANGER_PIPELINE_ALERT',\r\n resolve => (apAlertOption: AlertOption) => resolve({ apAlertOption }),\r\n);\r\n\r\nconst setCloManagersAnalyticsAlert = createAction(\r\n 'manageEmailPreferences/SET_CLO_MANAGERS_ANALYTICS_ALERT',\r\n resolve => (cloManagerAnalyticsAlert: CompanyAlertsConfig) => resolve({ cloManagerAnalyticsAlert }),\r\n);\r\n\r\nconst setCloManagersIssuanceMonitorAlert = createAction(\r\n 'manageEmailPreferences/SET_CLO_MANAGERS_ISSUANCE_MONITOR_ALERT',\r\n resolve => (cloManagerImAlertsConfig: CompanyAlertsConfig) => resolve({ cloManagerImAlertsConfig }),\r\n);\r\n\r\nconst setCloManagersArrangerPipelineAlert = createAction(\r\n 'manageEmailPreferences/SET_CLO_MANAGERS_ARRANGER_PIPELINE_ALERT',\r\n resolve => (cloManagerImAlertsConfig: CompanyAlertsConfig) => resolve({ cloManagerImAlertsConfig }),\r\n);\r\n\r\nconst setCloManagersBwicAlert = createAction(\r\n 'manageEmailPreferences/SET_CLO_MANAGERS_BWIC_ALERT',\r\n resolve => (cloManagerBwicAlert: SecondaryStatsAlertsConfig) => resolve({ cloManagerBwicAlert }),\r\n);\r\n\r\nconst setCloManagersDealerInventoryAlert = createAction(\r\n 'manageEmailPreferences/SET_CLO_MANAGERS_DEALER_INVENTORY_ALERT',\r\n resolve => (cloManagerDealerInventoryAlert: SecondaryStatsAlertsConfig) => resolve({ cloManagerDealerInventoryAlert }),\r\n);\r\n\r\nconst setBanksAnalyticsAlert = createAction(\r\n 'manageEmailPreferences/SET_BANKS_ANALYTICS_ALERT',\r\n resolve => (bankAnalyticsAlertConfig: DailyStatsAlertsConfig) => resolve({ bankAnalyticsAlertConfig }),\r\n);\r\n\r\nconst setBanksDealerInventoryAlert = createAction(\r\n 'manageEmailPreferences/SET_BANKS_DEALER_INVENTORY_ALERT',\r\n resolve => (bankDiAlertConfig: SecondaryStatsAlertsConfig) => resolve({ bankDiAlertConfig }),\r\n);\r\n\r\nconst setBanksIssuanceMonitorAlert = createAction(\r\n 'manageEmailPreferences/SET_BANKS_ISSUANCE_MONITOR_ALERT',\r\n resolve => (bankImAlertsConfig: CompanyAlertsConfig) => resolve({ bankImAlertsConfig }),\r\n);\r\n\r\nconst setBanksArrangerPipelineAlert = createAction(\r\n 'manageEmailPreferences/SET_BANKS_ARRANGER_PIPELINE_ALERT',\r\n resolve => (bankApAlertsConfig: CompanyAlertsConfig) => resolve({ bankApAlertsConfig }),\r\n);\r\n\r\nconst unsubscribeAllBWICsNotifications = createAction('manageEmailPreferences/UNSUBSCRIBE_ALL_BWIC_NOTIFICATIONS');\r\nconst unsubscribeAllIssuanceMonitor = createAction('manageEmailPreferences/UNSUBSCRIBE_ALL_ISSUANCE_MONITOR');\r\nconst unsubscribeAllCloManagers = createAction(\r\n 'manageEmailPreferences/UNSUBSCRIBE_ALL_CLO_MANAGERS',\r\n resolve => (userCompanyReferenceName?: string) => resolve({ userCompanyReferenceName }),\r\n);\r\nconst unsubscribeAllBanks = createAction(\r\n 'manageEmailPreferences/UNSUBSCRIBE_ALL_BANKS',\r\n resolve => (userCompanyReferenceName?: string) => resolve({ userCompanyReferenceName }),\r\n);\r\n\r\nconst unsubscribeAllPortfolio = createAction('manageEmailPreferences/UNSUBSCRIBE_ALL_PORTFOLIO');\r\nconst rollbackDashboardEmails = createAction('manageEmailPreferences/ROLLBACK_DASHBOARD_EMAILS');\r\nconst rollbackBWICPipelines = createAction('manageEmailPreferences/ROLLBACK_BWIC_PIPELINES');\r\nconst rollbackBWICNotifications = createAction('manageEmailPreferences/ROLLBACK_BWIC_NOTIFICATIONS');\r\nconst rollbackIssuanceMonitor = createAction('manageEmailPreferences/ROLLBACK_ISSUANCE_MONITOR');\r\nconst rollbackArrangerPipeline = createAction('manageEmailPreferences/ROLLBACK_ARRANGER_PIPELINE');\r\nconst rollbackCloManagers = createAction('manageEmailPreferences/ROLLBACK_CLO_MANAGERS');\r\nconst rollbackPortfolio = createAction('manageEmailPreferences/ROLLBACK_PORTFOLIO');\r\nconst rollbackInventory = createAction('manageEmailPreferences/ROLLBACK_INVENTORY');\r\nconst rollbackBanks = createAction('manageEmailPreferences/ROLLBACK_BANKS');\r\nconst saveBwicByRatingPreferencesRequest = createAction('manageEmailPreferences/BWIC_BY_RATING_SAVE_REQUEST');\r\nconst saveBwicByRatingPreferencesSuccess = createAction('manageEmailPreferences/BWIC_BY_RATING_SAVE_SUCCESS');\r\nconst saveBwicByRatingPreferencesFailure = createAction('manageEmailPreferences/BWIC_BY_RATING_SAVE_FAILURE');\r\nconst saveRequest = createAction('manageEmailPreferences/SAVE_REQUEST');\r\nconst saveArrangerPipelineRequest = createAction('manageEmailPreferences/SAVE_ARRANGER_PIPELINE_REQUEST');\r\nconst saveBanksRequest = createAction('manageEmailPreferences/SAVE_BANKS_REQUEST');\r\nconst saveSuccess = createAction('manageEmailPreferences/SAVE_SUCCESS');\r\nconst saveFailure = createAction('manageEmailPreferences/SAVE_FAILURE');\r\nconst saveEmailPreferencesRequest = createAction('manageEmailPreferences/SAVE_EMAIL_PREFERENCES_REQUEST');\r\nconst saveEmailPreferencesSuccess = createAction(\r\n 'manageEmailPreferences/SAVE_EMAIL_PREFERENCES_SUCCESS',\r\n resolve => (emailPreferences: EmailPreferences) => resolve({ emailPreferences })\r\n);\r\nconst saveEmailPreferencesFailure = createAction('manageEmailPreferences/SAVE_EMAIL_PREFERENCES_FAILURE');\r\nconst savedFilterAlertOptionChange = createAction('manageEmailPreferences/SAVED_FILTER_ALERT_OPTION_CHANGE',\r\n resolve => (updated: SavedFiltersPreferencesState) => resolve({ updated })\r\n);\r\nconst savedFilterAlertOptionsReset = createAction('manageEmailPreferences/SAVED_FILTER_ALERT_OPTION_RESET');\r\nconst reset = createAction('manageEmailPreferences/RESET');\r\nconst initPortfolioFilterAlerts = createAction('manageEmailPreferences/INIT_PORTFOLIO_FILTER_ALERTS',\r\n resolve => (portfolioFilterAlerts: UserConfigFilter[]) => resolve({ portfolioFilterAlerts })\r\n);\r\nconst resetPortfolioFilterAlerts = createAction('manageEmailPreferences/RESET_PORTFOLIO_FILTER_ALERTS');\r\nconst portfolioSavedFilterAlertChange = createAction(\"manageEmailPreferences/SAVED_FILTER_ALERT_CHHANGE\",\r\n resolve => (filterReferenceName: string, bwicAlert: AlertOption | null, inventoryAlert: AlertOption | null) =>\r\n resolve({ filterReferenceName, bwicAlert, inventoryAlert }));\r\nconst portfolioSavedFilterGlobalAlertChange = createAction(\"manageEmailPreferences/SAVED_FILTER_GLOBAL_ALERT_CHANGE\",\r\n resolve => (bwicAlert?: AlertOption, inventoryAlert?: AlertOption) =>\r\n resolve({ bwicAlert, inventoryAlert }));\r\nconst portfolioGlobalAlertsChange = createAction(\r\n 'manageEmailPreferences/PORTFOLIO_GLOBAL_ALERTS_CHANGE',\r\n resolve =>\r\n (\r\n bwicGlobalAlertEnabled?: boolean,\r\n inventoryGlobalAlertEnabled?: boolean,\r\n cleansingNoticeAlertEnabled?: boolean,\r\n issuanceMonitorAlertEnabled?: boolean,\r\n outOfRiAlertEnabled?: boolean,\r\n outOfNcAlertEnabled?: boolean,\r\n rollerDeadlineAlertEnabled?: boolean,\r\n ) =>\r\n resolve({\r\n bwicGlobalAlertEnabled,\r\n inventoryGlobalAlertEnabled,\r\n cleansingNoticeAlertEnabled,\r\n issuanceMonitorAlertEnabled,\r\n outOfRiAlertEnabled,\r\n outOfNcAlertEnabled,\r\n rollerDeadlineAlertEnabled,\r\n }),\r\n);\r\n\r\nexport const manageEmailPreferencesActions = {\r\n getInitialDataRequest,\r\n getInitialDataSuccess,\r\n setRatingCheckedState,\r\n setRatingInCurrencyCheckedState,\r\n setAllRatingCheckedState,\r\n setRatingSize,\r\n setCheckedDailyDashboardEmail,\r\n setPortfolioBwicAlerts,\r\n setPortfolioCleansingNoticeAlerts,\r\n setPortfolioInventoryAlerts,\r\n setBwicByRatingPreferences,\r\n setDealerInventoryAlertState,\r\n setIssuanceMonitorSingleAlert,\r\n setIssuanceMonitorNewTransactionAlert,\r\n setIssuanceMonitorStatisticsAlert,\r\n setIssuanceMonitorFiltersAlert,\r\n setArrangerPipelineAlert,\r\n setCloManagersAnalyticsAlert,\r\n setCloManagersIssuanceMonitorAlert,\r\n setCloManagersArrangerPipelineAlert,\r\n setCloManagersBwicAlert,\r\n setCloManagersDealerInventoryAlert,\r\n setBanksAnalyticsAlert,\r\n setBanksDealerInventoryAlert,\r\n setBanksIssuanceMonitorAlert,\r\n setBanksArrangerPipelineAlert,\r\n setNewBiwicAlerts,\r\n setBiwicReminderAlerts,\r\n setPortfolioIssuanceMonitorAlerts,\r\n setPortfolioRiAlerts,\r\n setPortfolioNcAlerts,\r\n setPortfolioRollerDeadlineAlerts,\r\n unsubscribeAllBWICsNotifications,\r\n unsubscribeAllIssuanceMonitor,\r\n unsubscribeAllCloManagers,\r\n unsubscribeAllPortfolio,\r\n unsubscribeAllBanks,\r\n rollbackDashboardEmails,\r\n rollbackBWICPipelines,\r\n rollbackBWICNotifications,\r\n rollbackIssuanceMonitor,\r\n rollbackArrangerPipeline,\r\n rollbackPortfolio,\r\n rollbackInventory,\r\n rollbackCloManagers,\r\n rollbackBanks,\r\n saveRequest,\r\n saveArrangerPipelineRequest,\r\n saveBanksRequest,\r\n saveSuccess,\r\n saveFailure,\r\n saveEmailPreferencesRequest,\r\n saveEmailPreferencesSuccess,\r\n saveEmailPreferencesFailure,\r\n saveBwicByRatingPreferencesRequest,\r\n saveBwicByRatingPreferencesSuccess,\r\n saveBwicByRatingPreferencesFailure,\r\n savedFilterAlertOptionChange,\r\n savedFilterAlertOptionsReset,\r\n reset,\r\n initPortfolioFilterAlerts,\r\n resetPortfolioFilterAlerts,\r\n portfolioSavedFilterAlertChange,\r\n portfolioSavedFilterGlobalAlertChange,\r\n portfolioGlobalAlertsChange\r\n};\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { ManageEmailFilterState } from '../types/state/ManageEmailState';\r\n\r\nconst setFilter = createAction(\r\n 'manageEmail/UPDATE_FILTER',\r\n resolve => (filter: ManageEmailFilterState) => resolve({ filter })\r\n)\r\n\r\nexport type manageEmailActionsType = ActionType\r\n\r\nexport const manageEmailActions = {\r\n setFilter,\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { DateFilterOption } from '../types/filters/DateFilterOption';\r\nimport { DateRange } from '../types/filters/DateRange';\r\n\r\nconst toogleFilterRegBy = createAction('manage-members/MEMBER_FILTER_TOOGLE_REG_BY',\r\n resolve => (regBy: number[]) => resolve({ regBy })\r\n)\r\n\r\nconst setFilterRegBy = createAction('manage-members/MEMBER_FILTER_SET_REG_BY',\r\n resolve => (regBy: number[]) => resolve({ regBy })\r\n)\r\n\r\nconst toogleFilterCompanies = createAction('manage-members/MEMBER_FILTER_TOOGLE_COMPANIES',\r\n resolve => (companies: number[]) => resolve({ companies })\r\n)\r\n\r\nconst setFilterCompanies = createAction('manage-members/MEMBER_FILTER_SET_COMPANIES',\r\n resolve => (companies: number[]) => resolve({ companies })\r\n)\r\n\r\nconst toogleFilterStatusActive = createAction('manage-members/MEMBER_FILTER_TOOGLE_STATUS_ACTIVE');\r\nconst toogleFilterStatusBlocked = createAction('manage-members/MEMBER_FILTER_TOOGLE_STATUS_BLOCKED');\r\nconst toogleFilterStatusInvited = createAction('manage-members/MEMBER_FILTER_TOOGLE_STATUS_INVITED');\r\nconst toogleFilterStatusNotInvited = createAction('manage-members/MEMBER_FILTER_TOOGLE_STATUS_NOT_INVITED');\r\nconst toogleFilterStatusPendingApproval = createAction('manage-members/MEMBER_FILTER_TOOGLE_STATUS_PENDING_APPROVAL');\r\n\r\nconst toogleFilterRoleAdministrator = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_ADMINISTRATOR');\r\nconst toggleFilterRoleArrangersClient = createAction('manage-members/MEMBER_FILTER_TOGGLE_ROLE_ARRANGERSCLIENT')\r\nconst toogleFilterRoleBrokerDealerTrader = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_BROKER_DEALER_TRADER');\r\nconst toogleFilterRoleBrokerDealerViewer = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_BROKER_DEALER_VIEWER');\r\nconst toogleFilterRolesDataEntry = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_DATA_ENTRY')\r\nconst toogleFilterRoleSellerAdministrator = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_SELLER_AMINISTARTOR');\r\nconst toogleFilterRoleSellerTrader = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_SELLER_TRADER');\r\nconst toogleFilterRoleSellerViewer = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_SELLER_VIEWER');\r\nconst toogleFilterRolesSubscriptionManager = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_SUBSCRIPTION_MANAGER')\r\nconst toogleFilterRoleViewer = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_VIEWER');\r\nconst toogleFilterCollateralManager = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_COLLATERAL_MANAGER');\r\nconst toogleFilterRoleMedia = createAction('manage-members/MEMBER_FILTER_TOOGLE_ROLE_MEDIA');\r\n\r\nconst setDateFilterChange = createAction('manage-members/MEMBER_FILTER_DATE_CHANGED',\r\n resolve => (dateOption: DateFilterOption) => resolve({ dateOption })\r\n)\r\n\r\nconst setDateFilterRangeChange = createAction('manage-members/MEMBER_FILTER_DATE_RANGE_CHANGED',\r\n resolve => (dateRange: DateRange) => resolve({ dateRange })\r\n)\r\n\r\nexport const manageMembersFiltersActions = {\r\n toogleFilterRegBy,\r\n setFilterRegBy,\r\n toogleFilterCompanies,\r\n setFilterCompanies,\r\n toogleFilterStatusActive,\r\n toogleFilterStatusBlocked,\r\n toogleFilterStatusInvited,\r\n toogleFilterStatusNotInvited,\r\n toogleFilterStatusPendingApproval,\r\n toogleFilterRoleAdministrator,\r\n toggleFilterRoleArrangersClient,\r\n toogleFilterRoleBrokerDealerTrader,\r\n toogleFilterRoleBrokerDealerViewer,\r\n toogleFilterRolesDataEntry,\r\n toogleFilterRoleSellerAdministrator,\r\n toogleFilterRoleSellerTrader,\r\n toogleFilterRoleSellerViewer,\r\n toogleFilterRolesSubscriptionManager,\r\n toogleFilterRoleViewer,\r\n toogleFilterCollateralManager,\r\n toogleFilterRoleMedia,\r\n setDateFilterChange,\r\n setDateFilterRangeChange\r\n}\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { DateFilterOption } from '../types/filters/DateFilterOption';\r\nimport { DateRange } from '../types/filters/DateRange';\r\nimport { AccessToken, AccessTokenApi } from '../types/management/AccessToken';\r\nimport { Company } from '../types/management/Company';\r\n\r\nconst requestTokens = createAction('manageToken/REQUEST_TOKENS');\r\nconst storeTokens = createAction('manageToken/GET_TOKENS',\r\n resolve => (tokens: AccessToken[]) => resolve({ tokens })\r\n);\r\nconst requestCompanies = createAction('manageToken/REQUEST_COMPANIES');\r\nconst storeCompanies = createAction('manageToken/COMPANIESS',\r\n resolve => (companies: Company[]) => resolve({ companies })\r\n);\r\nconst setSearchTerm = createAction('manageToken/SET_SEARCH_TERM',\r\n resolve => (searchTerm: string) => resolve({ searchTerm })\r\n);\r\nconst setTokenRequestStatus = createAction('manageToken/TOKENS_REQUEST_STATUS',\r\n resolve => (requestStatus: RequestState) => resolve({ requestStatus })\r\n);\r\nconst setCompanyRequestStatus = createAction('manageToken/COMPANIES_REQUEST_STATUS',\r\n resolve => (requestStatus: RequestState) => resolve({ requestStatus })\r\n);\r\nconst setGenerateRequestStatus = createAction('manageToken/GENERATE_REQUEST_STATUS',\r\n resolve => (requestStatus: RequestState) => resolve({ requestStatus })\r\n);\r\nconst setUpdateTokenRequestStatus = createAction('manageToken/UPDATE_REQUEST_STATUS',\r\n resolve => (requestStatus: RequestState) => resolve({ requestStatus })\r\n);\r\nconst storeGeneratedToken = createAction('manageToken/STORE_GENERATED_TOKEN',\r\n resolve => (token?: AccessToken) => resolve({ token })\r\n);\r\nconst generate = createAction('manageToken/GENERATE',\r\n resolve => (companyId: number, apis: AccessTokenApi[]) => resolve({ companyId, apis })\r\n);\r\nconst update = createAction('manageToken/UPDATE',\r\n resolve => (tokenId: number, companyId: number, apis: AccessTokenApi[]) => resolve({ tokenId, companyId, apis })\r\n);\r\nconst tokenUpdated = createAction('manageToken/UPDATED',\r\n resolve => (token: AccessToken) => resolve({ token })\r\n);\r\nconst revoke = createAction('manageToken/REVOKE', resolve => (tokenId: number) => resolve({ tokenId }));\r\nconst tokenRevoked = createAction('manageToken/REVOKED', resolve => (tokenId: number) => resolve({ tokenId }));\r\nconst setRevokeTokenRequestStatus = createAction(\r\n 'manageToken/SER_REVOKE_TOKEN_REQUEST_STATUS',\r\n resolve => (tokenId: number, status: RequestState) => resolve({tokenId, status})\r\n);\r\nconst toogleFilterStatusActive = createAction('manageToken/filter/TOOGLE_STATUS_ACTIVE');\r\nconst toogleFilterStatusExpired = createAction('manageToken/filter/TOOGLE_STATUS_EXPIRED');\r\nconst toogleFilterStatusRevoked = createAction('manageToken/filter/TOOGLE_STATUS_REVOKED');\r\nconst toogleFilterApiBlotterApiReader = createAction('manageToken/filter/TOOGLE_API_BLOTTER');\r\nconst toogleFilterApiBwicMonitorApiReader = createAction('manageToken/filter/TOOGLE_API_BWIC_MONITOR');\r\nconst toogleFilterApiIssuanceMonitorApiReader = createAction('manageToken/filter/TOOGLE_API_ISSUANCE_MONITOR');\r\nconst toogleFilterApiPortfolioApi = createAction('manageToken/filter/TOOGLE_API_PORTFOLIO');\r\nconst toogleFilterApiEvalApiReader = createAction('manageToken/filter/TOOGLE_API_EVAL');\r\nconst toogleFilterApiDashboardApiReader = createAction('manageToken/filter/TOOGLE_API_DASHBOARD');\r\nconst toogleFilterCompanies = createAction('manageToken/filter/_TOOGLE_COMPANIES',\r\n resolve => (companies: number[]) => resolve({ companies })\r\n);\r\nconst setFilterCompanies = createAction('manageToken/filter/SET_COMPANIES',\r\n resolve => (companies: number[]) => resolve({ companies })\r\n);\r\nconst setDateFilterChange = createAction('manageToken/filter/DATE_CHANGED',\r\n resolve => (dateOption: DateFilterOption) => resolve({ dateOption })\r\n);\r\nconst setDateFilterRangeChange = createAction('manageToken/filter/DATE_RANGE_CHANGED',\r\n resolve => (dateRange: DateRange) => resolve({ dateRange })\r\n);\r\nconst resetTokenFilters = createAction('manageToken/filter/RESET');\r\nconst applyTokenFilters = createAction('manageToken/filter/APPLY');\r\n\r\nconst reset = createAction('manageToken/RESET');\r\n\r\nexport type ManageTokenActionsType = ActionType\r\n\r\nexport const manageTokenActions = {\r\n storeTokens,\r\n toogleFilterStatusActive,\r\n toogleFilterStatusExpired,\r\n toogleFilterStatusRevoked,\r\n toogleFilterApiBlotterApiReader,\r\n toogleFilterApiBwicMonitorApiReader,\r\n toogleFilterApiIssuanceMonitorApiReader,\r\n toogleFilterApiPortfolioApi,\r\n toogleFilterApiEvalApiReader,\r\n toogleFilterApiDashboardApiReader,\r\n applyTokenFilters,\r\n resetTokenFilters,\r\n setSearchTerm,\r\n toogleFilterCompanies,\r\n setFilterCompanies,\r\n setDateFilterChange,\r\n setDateFilterRangeChange,\r\n setTokenRequestStatus,\r\n requestTokens,\r\n requestCompanies,\r\n storeCompanies,\r\n setCompanyRequestStatus,\r\n generate,\r\n update,\r\n tokenUpdated,\r\n revoke,\r\n tokenRevoked,\r\n setRevokeTokenRequestStatus,\r\n setGenerateRequestStatus,\r\n storeGeneratedToken,\r\n setUpdateTokenRequestStatus,\r\n reset\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\nimport { SettlementAgentAgreement } from '../types/bid-as-dealer/SettlementAgentAgreement';\r\nimport { DealerListFilterOption } from '../types/state/DealerListState';\r\n\r\nconst selectDealers = createAction(\r\n 'newBwicDealers/SET_SELECTED_DEALER',\r\n resolve => (selectedDealers: { [dealerId: number]: boolean }) => resolve({ selectedDealers })\r\n);\r\n\r\nconst selectDealer = createAction(\r\n 'newBwicDealers/SET_DEALER_SELECTED',\r\n resolve => (dealerId: number) => resolve({ dealerId })\r\n);\r\n\r\nconst selectDealersByDefault = createAction(\r\n 'newBwicDealers/SELECT_DEALERS_BY_DEFAULT',\r\n resolve => (dealers: BrokerDealerCompanySlim[]) => resolve({ dealers })\r\n);\r\n\r\nconst resetSelectedByDefaultFlag = createAction('newBwicDealers/SELECT_DEALERS_BY_DEFAULT_RESET');\r\n\r\nconst sellerBidAsDealerAgreementsPushDataReceived = createAction(\r\n 'newBwicDealers/BID_AS_DEALER_AGREEMENT_PUSH_DATA_RECEIVED',\r\n resolve => (agreement: SettlementAgentAgreement) => resolve({ agreement })\r\n);\r\n\r\nconst updateFilterOptions = createAction(\r\n 'newBwicDealers/UPDATE_FILTER_OPTIONS',\r\n resolve => (filterOption: DealerListFilterOption) => resolve({ filterOption })\r\n);\r\n\r\nconst clearFilterOptions = createAction('newBwicDealers/CLEAR_FILTER_OPTIONS');\r\n\r\nconst setSearchTerm = createAction(\r\n 'newBwicDealers/SET_SEARCH_TERM',\r\n resolve => (searchTerm: string) => resolve({ searchTerm })\r\n);\r\n\r\nconst reset = createAction('newBwicDealers/RESET');\r\n\r\nconst setSelectPlatformDealersPopupVisible = createAction(\r\n 'newBwicDealers/SET_SELECT_PLATFORM_DEALERS_POPUP_VISIBLE',\r\n resolve => (visible: boolean) => resolve({ visible })\r\n);\r\n\r\nexport const newBwicDealersActions = {\r\n selectDealersByDefault,\r\n selectDealers,\r\n selectDealer,\r\n sellerBidAsDealerAgreementsPushDataReceived,\r\n updateFilterOptions,\r\n clearFilterOptions,\r\n setSearchTerm,\r\n resetSelectedByDefaultFlag,\r\n reset,\r\n setSelectPlatformDealersPopupVisible\r\n};\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { MarketingEvent } from '../types/marketing/MarketingEvent';\r\nimport { News } from '../types/news/News';\r\nimport { NewsQueryParams } from '../types/news/NewsQueryParams';\r\nimport { NewsTabCategory } from '../types/news/enums/NewsTabCategory';\r\nimport { NewsAccessType } from '../types/amr-pipeline/enums/NewsAccessType';\r\n\r\nconst fetchMarketingEventsRequest = createAction('news/FETCH_MARKETING_EVENTS_REQUEST');\r\nconst fetchMarketingEventsResponse = createAction(\r\n 'news/FETCH_MARKETING_EVENTS_RESPONSE',\r\n resolve => (events: MarketingEvent[]) => resolve({ events }),\r\n);\r\n\r\n\r\nconst fetchNewsRequest = createAction('news/FETCH_REQUEST', resolve => (page: number, tab: NewsTabCategory) => resolve({ page, tab }));\r\nconst fetchNewsResponse = createAction(\r\n 'news/FETCH_RESPONSE',\r\n resolve => (news: News[], page: number, tab: NewsTabCategory) => resolve({ news, page, tab }),\r\n);\r\n\r\nconst fetchNewsDetails = createAction(\r\n 'news/FETCH_DETAILS',\r\n resolve => (newsReferenceName: string, queryParams?: NewsQueryParams) =>\r\n resolve({ newsReferenceName, queryParams }),\r\n);\r\n\r\nconst fetchNewsDetailsResponse = createAction(\r\n 'news/FETCH_DETAILS_RESPONSE',\r\n resolve => (news: News) => resolve({ news }),\r\n);\r\n\r\nconst fetchTotalNewsCountRequest = createAction('news/FETCH_TOTAL_NEWS_COUNT_REQUEST');\r\nconst fetchTotalNewsCountResponse = createAction(\r\n 'news/FETCH_TOTAL_NEWS_COUNT_RESPONSE',\r\n resolve => (totalNews: {\r\n [NewsTabCategory.All]: number,\r\n [NewsTabCategory.Primary]: number,\r\n [NewsTabCategory.Secondary]: number,\r\n [NewsTabCategory.Research]: number,\r\n }) => resolve({ totalNews }),\r\n);\r\n\r\nconst deleteNews = createAction(\r\n 'news/DELETE',\r\n resolve => (referenceName: string, page: number, tab: NewsTabCategory) => resolve({ referenceName, page, tab }),\r\n);\r\n\r\nconst deleteSingleNews = createAction(\r\n 'news/DELETE_SINGLE_NEWS',\r\n resolve => (referenceName: string) => resolve({ referenceName }),\r\n);\r\n\r\nconst resetNewsList = createAction('news/RESET_NEWS_LIST');\r\nconst reset = createAction('news/RESET');\r\n\r\nconst logUserActivity = createAction('news/LOG_USER_ACTIVITY', resolve => (accessType: NewsAccessType, link?: string) => resolve({ accessType, link }));\r\n\r\nconst downloadDocument = createAction(\r\n 'news/DOWNLOAD_DOCUMENT',\r\n resolve => (newsReferenceName: string, documentReferenceName: string, fileName: string) =>\r\n resolve({ newsReferenceName, documentReferenceName, fileName })\r\n);\r\n\r\nconst downloadDocuments = createAction(\r\n 'news/DOWNLOAD_DOCUMENTS',\r\n resolve => (newsItem: News) => resolve({ newsItem })\r\n);\r\n\r\nexport type TNewsActions = ActionType<\r\n typeof newsActions[keyof typeof newsActions]\r\n>;\r\n\r\nexport const newsActions = {\r\n fetchNewsRequest,\r\n fetchNewsResponse,\r\n fetchMarketingEventsRequest,\r\n fetchMarketingEventsResponse,\r\n fetchTotalNewsCountRequest,\r\n fetchTotalNewsCountResponse,\r\n fetchNewsDetails,\r\n fetchNewsDetailsResponse,\r\n deleteNews,\r\n deleteSingleNews,\r\n reset,\r\n resetNewsList,\r\n logUserActivity,\r\n downloadDocument,\r\n downloadDocuments,\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport moment from 'moment';\r\nimport { NotificationType } from '../types/notifications/NotificationType';\r\nimport { Notification } from '../types/notifications/Notification';\r\nimport { NotificationAttributes } from '../types/notifications/NotificationAttributes';\r\nimport { StatusMessageSectionType } from '../types/state/NotificationState';\r\nimport { ModalNotification } from '../types/notifications/ModalNotification';\r\n\r\nconst notificationReset = createAction('notification/RESET');\r\nconst notificationPushReceived = createAction('notification/PUSH_RECEIVED',\r\n resolve => (notification: Notification) => resolve({ notification, type: NotificationType.PushNotification })\r\n);\r\nconst notificationAddInfo = createAction('notification/ADD_INFO',\r\n resolve => (title: string, message: string, date: Date | null = null) => resolve({\r\n notification: createNotificationModel(\r\n uuidv4(),\r\n false,\r\n title || '',\r\n message || '',\r\n date || moment.utc().toDate(),\r\n ),\r\n type: NotificationType.Info\r\n })\r\n);\r\nconst notificationAddInfoMessage = createAction('notification/ADD_INFO_MESSAGE',\r\n resolve => (message: string) => resolve({\r\n notification: createNotificationModel(\r\n uuidv4(),\r\n false,\r\n 'Notification',\r\n message || '',\r\n moment.utc().toDate(),\r\n ),\r\n type: NotificationType.Info\r\n })\r\n);\r\nconst notificationAddError = createAction('notification/ADD_ERROR',\r\n resolve => (title: string, message: string, date: Date) => resolve({\r\n notification: createNotificationModel(\r\n uuidv4(),\r\n false,\r\n title,\r\n message || '',\r\n date || moment.utc().toDate(),\r\n ),\r\n type: NotificationType.Error\r\n })\r\n);\r\nconst notificationAddErrorMessage = createAction('notification/ADD_ERROR_MESSAGE',\r\n resolve => (message: string, title?: string) => resolve({\r\n notification: createNotificationModel(\r\n uuidv4(),\r\n false,\r\n title || 'Error',\r\n message || '',\r\n moment.utc().toDate(),\r\n ),\r\n type: NotificationType.Error\r\n })\r\n);\r\nconst notificationAddErrorMessageModal = createAction('notification/ADD_ERROR_MESSAGE_MODAL',\r\n resolve => (message: string, title: string, refreshButtonVisible?: boolean) =>\r\n resolve({ notification: createModalNotificationModel(title, message, StatusMessageSectionType.Error, refreshButtonVisible, undefined, undefined, undefined) })\r\n);\r\nconst infoModal = createAction('notification/INFO_MODAL',\r\n resolve => (message: string, title: string, blinkBrowserTabText?: string[], popupClassName?: string) =>\r\n resolve({ notification: createModalNotificationModel(title, message, StatusMessageSectionType.Info, false, blinkBrowserTabText, popupClassName) })\r\n);\r\nconst infoModalReplace = createAction('notification/INFO_MODAL',\r\n resolve => (modalKey: string, message: string, title: string, blinkBrowserTabText?: string[], popupClassName?: string) =>\r\n resolve({ notification: createModalNotificationModel(title, message, StatusMessageSectionType.Info, false, blinkBrowserTabText, popupClassName, modalKey) })\r\n);\r\nconst warningModal = createAction('notification/WARN_MODAL',\r\n resolve => (title: string, message: string) =>\r\n resolve({ notification: createModalNotificationModel(title, message, StatusMessageSectionType.Alert) })\r\n);\r\nconst notificationListHideToast = createAction('notification/LIST_REMOVE_ITEM',\r\n resolve => (referenceName: string) => resolve({ referenceName })\r\n);\r\nconst notificationListRemoveModalItem = createAction('notification/LIST_REMOVE_MODAL_ITEM',\r\n resolve => (index: number) => resolve({ index })\r\n);\r\nconst notificationListToastExpired = createAction('notification/LIST_SHIFT',\r\n resolve => (referenceName: string) => resolve({ referenceName })\r\n);\r\nconst modalNotificationListReset = createAction('notification/RESET_MODAL');\r\nconst notificationServiceConnect = createAction('notification/SERVICE_CONNECT');\r\nconst notificationServiceConnected = createAction('notification/SERVICE_CONNECTED');\r\nconst notificationServiceDisconnected = createAction('notification/SERVICE_DISCONNECTED');\r\nconst notificationServiceReconnecting = createAction('notification/SERVICE_RECONNECTING');\r\nconst notificationServiceReconnected = createAction('notification/SERVICE_RECONNECTED');\r\nconst notificationGetList = createAction('notification/GET_LIST');\r\nconst appendNotifications = createAction('notification/SET_LIST',\r\n resolve =>\r\n (notificationList: Notification[], notificationAttributes: NotificationAttributes) =>\r\n resolve({ notificationList, notificationAttributes })\r\n);\r\nconst notificationGetListFailure = createAction('notification/GET_LIST_FAILURE');\r\nconst notificationsGetCountUnread = createAction('notification/GET_COUNT_UNREAD');\r\nconst notificationsGetCountUnreadFailure = createAction('notification/GET_COUNT_UNREAD_FAILURE');\r\nconst notificationsSetCountUnread = createAction('notification/SET_COUNT_UNREAD',\r\n resolve => (count: number) => resolve({ count })\r\n);\r\nconst notificationSetReadRequest = createAction('notification/SET_READ_REQUEST',\r\n resolve => (referenceName: string) => resolve({ referenceName })\r\n);\r\nconst notificationSetReadSuccess = createAction('notification/SET_READ_SUCCESS',\r\n resolve => (referenceName: string) => resolve({ referenceName })\r\n);\r\nconst notificationSetReadFailure = createAction('notification/SET_READ_SUCCESS',\r\n resolve => (referenceName: string) => resolve({ referenceName })\r\n);\r\nconst notificationsReadAllRequest = createAction('notification/READ_ALL_REQUEST');\r\nconst notificationsReadAllSuccess = createAction('notification/READ_ALL_SUCCESS');\r\nconst notificationsReadAllFailure = createAction('notification/READ_ALL_FAILURE');\r\nconst notificationRead = createAction('notification/PUSH_READ',\r\n resolve => (referenceName: string) => resolve({ referenceName })\r\n);\r\nconst notificationReadAll = createAction('notification/PUSH_READ_ALL');\r\n\r\nexport const notificationActions = {\r\n notificationReset,\r\n notificationPushReceived,\r\n notificationRead,\r\n notificationReadAll,\r\n notificationAddInfo,\r\n notificationAddInfoMessage,\r\n notificationAddError,\r\n notificationAddErrorMessage,\r\n notificationAddErrorMessageModal,\r\n infoModal,\r\n infoModalReplace,\r\n warningModal,\r\n notificationListHideToast,\r\n notificationListRemoveModalItem,\r\n notificationListToastExpired,\r\n modalNotificationListReset,\r\n notificationServiceConnect,\r\n notificationServiceConnected,\r\n notificationServiceDisconnected,\r\n notificationServiceReconnecting,\r\n notificationServiceReconnected,\r\n notificationGetList,\r\n appendNotifications,\r\n notificationGetListFailure,\r\n notificationsGetCountUnread,\r\n notificationsGetCountUnreadFailure,\r\n notificationsSetCountUnread,\r\n notificationSetReadRequest,\r\n notificationSetReadSuccess,\r\n notificationSetReadFailure,\r\n notificationsReadAllRequest,\r\n notificationsReadAllSuccess,\r\n notificationsReadAllFailure\r\n};\r\n\r\nconst createNotificationModel = (\r\n referenceName: string,\r\n isReadByUser: boolean,\r\n subject: string,\r\n message: string,\r\n sentDateUtc: Date,\r\n): Notification => (\r\n { isReadByUser, subject, message, sentDateUtc, referenceName }\r\n);\r\n\r\nconst createModalNotificationModel = (\r\n title: string,\r\n message: string,\r\n type: StatusMessageSectionType = StatusMessageSectionType.Error,\r\n refreshButtonVisible: boolean = false,\r\n blinkBrowserTabText?: string[],\r\n popupClassName?: string,\r\n modalKey?: string\r\n\r\n): ModalNotification => ({\r\n title,\r\n message,\r\n type,\r\n refreshButtonVisible,\r\n blinkBrowserTabText,\r\n popupClassName,\r\n modalKey\r\n})","import { ActionType, createAsyncAction } from 'typesafe-actions';\r\nimport { PageConfigType } from \"../types/page-config/PageConfigType\";\r\nimport { PageConfig } from \"../types/page-config/PageConfig\";\r\nimport { PageConfigList } from \"../types/state/entities/PageConfigState\";\r\nimport { UserConfigColumn } from '../types/user-config/UserConfigColumn';\r\n\r\nconst getConfigs = createAsyncAction(\r\n 'entities/page-config/REQUEST_CONFIG',\r\n 'entities/page-config/SUCCESS_CONFIG',\r\n 'entities/page-config/FAILURE_CONFIG'\r\n)();\r\n\r\nconst getDefaultConfig = createAsyncAction(\r\n 'entities/page-config/REQUEST_DEFAULT_CONFIG',\r\n 'entities/page-config/SUCCESS_DEFAULT_CONFIG',\r\n 'entities/page-config/FAILURE_DEFAULT_CONFIG'\r\n)<{ configType: PageConfigType }, { configType: PageConfigType, config: PageConfig }, { configType: PageConfigType }>();\r\n\r\nconst saveColumns = createAsyncAction(\r\n 'entities/page-config/REQUEST_SAVE_CONFIG',\r\n 'entities/page-config/SUCCESS_SAVE_CONFIG',\r\n 'entities/page-config/FAILURE_SAVE_CONFIG'\r\n)<{ configType: PageConfigType }, { configType: PageConfigType, columns: UserConfigColumn[] }, { configType: PageConfigType }>();\r\n\r\nexport type TPageConfigActions = ActionType\r\n\r\nexport const pageConfigActions = {\r\n getConfigs,\r\n getDefaultConfig,\r\n saveColumns\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\n\r\nconst confirmRequest = createAction(\r\n 'portfolioAgreementDisclaimer/CONFIRM_REQUEST',\r\n resolve => (onConfirm?: () => void) => resolve({ onConfirm })\r\n);\r\nconst confirmSuccess = createAction('portfolioAgreementDisclaimer/CONFIRM_SUCCESS');\r\nconst confirmFailure = createAction('portfolioAgreementDisclaimer/CONFIRM_FAILURE');\r\n\r\nconst downloadFileRequest = createAction('portfolioAgreementDisclaimer/DOWNLOAD_FILE_REQUEST');\r\nconst downloadFileSuccess = createAction('portfolioAgreementDisclaimer/DOWNLOAD_FILE_SUCCESS');\r\nconst downloadFileFailure = createAction('portfolioAgreementDisclaimer/DOWNLOAD_FILE_FAILURE');\r\n\r\nconst show = createAction(\r\n 'portfolioAgreementDisclaimer/SHOW',\r\n resolve => (blockerId: string, text?:string) => resolve({ blockerId, text })\r\n);\r\nconst hide = createAction(\r\n 'portfolioAgreementDisclaimer/HIDE',\r\n resolve => (confirmed: boolean) => resolve({ confirmed })\r\n);\r\n\r\nconst reset = createAction('portfolioAgreementDisclaimer/RESET');\r\n\r\nexport const portfolioAgreementDisclaimerActions = {\r\n show,\r\n hide,\r\n confirmRequest,\r\n confirmSuccess,\r\n confirmFailure,\r\n downloadFileRequest,\r\n downloadFileSuccess,\r\n downloadFileFailure,\r\n reset\r\n};\r\n","import { createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { Portfolio } from \"../types/portfolio/Portfolio\";\r\nimport { Color } from \"../types/bwic/Color\";\r\n\r\nconst request = createAction('entities/portfolio-list/Request');\r\nconst requestResult = createAction('entities/portfolio-list/RequestResult',\r\n resolve => (requestResult: RequestState, result: Portfolio[] = []) =>\r\n resolve({ requestResult, result })\r\n);\r\nconst resetEntities = createAction('entities/portfolio-list/Reset');\r\nconst colorDistributionSend = createAction('entities/portfolios-list/PublicColors',\r\n resolve => (data: { colors: { positionId: number, color: Color[] }, bwicReferenceName: string, historyAction: {} }) => resolve({ data })\r\n);\r\nconst bwicStatusChanged = createAction('entities/portfolio-list/BwicStatusChange',\r\n resolve => (data: { bwicStatus: string, bwicReferenceName: string, historyAction: {} }) => resolve({ data })\r\n);\r\nconst updateSendAlertState = createAction(\r\n 'entities/portfolio-list/UpdateSendAlertState',\r\n resolve =>\r\n (\r\n sendAlertState: {\r\n portfolioId: number;\r\n bwicAlert?: boolean;\r\n dealersInventoryAlert?: boolean;\r\n cleansingNoticeAlert?: boolean;\r\n issuanceMonitorAlert?: boolean;\r\n outOfRiPeriodAlert?: boolean;\r\n outOfNcPeriodAlert?: boolean;\r\n rollerDeadlineAlert?: boolean;\r\n }[],\r\n ) =>\r\n resolve({ sendAlertState }),\r\n);\r\n\r\nconst deletePortfolio = createAction('entities/portfolio-list/DeletePortfolio',\r\n resolve => (portfolioId: number) => resolve({ portfolioId }));\r\n\r\nconst reset = createAction('entities/portfolio-list/Reset');\r\n\r\nexport const portfolioListActions = {\r\n request,\r\n requestResult,\r\n resetEntities,\r\n colorDistributionSend,\r\n bwicStatusChanged,\r\n updateSendAlertState,\r\n deletePortfolio,\r\n reset\r\n}\r\n","import { saveAs } from 'file-saver';\r\nimport { cloneDeep, noop } from 'lodash';\r\nimport { portfolioActions as actionTypes, routes } from '../constants';\r\nimport { controlPanelActions, errorActions, rulesActions, searchSecuritiesActions } from '.';\r\nimport { portfolioService } from '../services/portfolio.service';\r\nimport { apiUtils } from '../utils';\r\nimport { securityDetailsActions } from './security.details.actions';\r\nimport { portfolioListActions } from './portfolio-list.actions';\r\nimport { getPortfolios } from '../selectors/portfolio.selector';\r\nimport { createFilterActions } from \"./filter.actions\";\r\nimport { BwicFilterType } from \"../types/filters/FilterState\";\r\nimport {\r\n identifiers, multipleCurrencies, ratings, dealsLegalNames, collateralTypes, collateralManagers, esg, euCompliance,\r\n staticDeals, nonCallEndFrom, nonCallEndTo, reinvestmentEndFrom, reinvestmentEndTo, dateFrom, dateTo, trustees, amr, outOfRI, outOfNC\r\n} from \"../utils/filtering/serializers/serializer.definitions\";\r\nimport { queryStringSerializer } from \"../utils/filtering\";\r\nimport { convertToApiCriteria, getYearsRange } from '../utils/filtering/filter.utils';\r\nimport { selectedDateOptions } from \"../utils/amr-pipeline-filter.utils\";\r\nimport { bwicLogActions } from './bwic-log.actions';\r\nimport { history } from '../history';\r\nimport { emailPreferencesActions } from './email-preferences.actions';\r\nimport { latestTransactionActions } from './entities/latest-transaction.actions';\r\nimport { arrangersPipelineActions } from './entities/arrangers-pipeline.actions';\r\n\r\nconst filterActions = createFilterActions(BwicFilterType.Portfolio);\r\n\r\nexport const portfolioActions = {\r\n applyFilter,\r\n reset,\r\n togglePortfolioExpanded,\r\n portfolioSelectionChange,\r\n deletePortfolioConfirmation,\r\n deletePortfolio,\r\n portfolioSecuritySelectionChange,\r\n showBwicDetails,\r\n resetRowSelection,\r\n newPortfolioDialog,\r\n newPortfolio,\r\n exportAll,\r\n createBwicConfirmed,\r\n expandAllChange,\r\n updatePortfoliosAlertStatus,\r\n hideActivePanels,\r\n applySearchInput,\r\n resetFilter,\r\n advancedFilterBlocked\r\n}\r\n\r\nfunction applyFilter() {\r\n return (dispatch) => {\r\n dispatch(filterActions.applyFilter());\r\n dispatch(redirectWithFilterArguments());\r\n }\r\n}\r\n\r\nfunction applySearchInput() {\r\n return dispatch => {\r\n dispatch(hideActivePanels());\r\n dispatch(redirectWithFilterArguments());\r\n }\r\n}\r\n\r\nfunction resetFilter() {\r\n return dispatch => {\r\n dispatch(filterActions.resetFiltersAndUnselectSavedFilter());\r\n dispatch(redirectWithFilterArguments());\r\n dispatch(filterActions.applyFilter());\r\n }\r\n}\r\n\r\nfunction redirectWithFilterArguments() {\r\n return (dispatch, getState) => {\r\n const { filters, searchSecurities } = getState();\r\n const filterCriteria = getFilterCriteria(filters.portfolio.filter, searchSecurities?.searchTermItems);\r\n const serializers = [\r\n identifiers(),\r\n ratings(),\r\n multipleCurrencies(),\r\n dealsLegalNames(),\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 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 const queryString = queryStringSerializer.serialize(filterCriteria, serializers);\r\n history.replace(`${history.location.pathname}${queryString ? '?' : ''}${queryString}`);\r\n };\r\n}\r\n\r\nfunction getFilterCriteria(filter, searchTermItems) {\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: searchTermItems,\r\n currency: filter.currency?.filter.filter(f => f.selected).map(f => f.value),\r\n ratings: filter.ratings?.filter.filter(f => f.selected).map(f => f.value),\r\n dealsLegalNames: filter.dealName?.filter.filter(f => f.selected).map(f => f.value),\r\n collateralTypes: filter.collateralType?.filter.filter(f => f.selected).map(f => f.value),\r\n collateralManagers: filter.managers?.filter.filter(f => f.selected).map(f => f.value),\r\n esg: filter.esg?.filter.selectedOption,\r\n euCompliance: filter.euCompliance?.filter.selectedOption,\r\n staticDeals: filter.staticDeal?.filter.selectedOption,\r\n nonCallEndFrom: nonCallEndYears.from ?? nonCallEndDateRange.from,\r\n nonCallEndTo: nonCallEndYears.to ?? nonCallEndDateRange.to,\r\n nonCallEndFromDate: nonCallEndDateRange.from,\r\n nonCallEndToDate: nonCallEndDateRange.to,\r\n reinvestmentEndFrom: reinvestmentEndYears.from ?? reinvestmentEndDateRange.from,\r\n reinvestmentEndTo: reinvestmentEndYears.to ?? reinvestmentEndDateRange.to,\r\n reinvestmentEndFromDate: reinvestmentEndDateRange.from,\r\n reinvestmentEndToDate: reinvestmentEndDateRange.to,\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 outOfNC: filter.outOfNC?.filter.selectedOption,\r\n outOfRI: filter.outOfRI?.filter.selectedOption,\r\n }\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch(filterActions.resetFiltersAndUnselectSavedFilter());\r\n dispatch({ type: actionTypes.RESET });\r\n dispatch(searchSecuritiesActions.reset());\r\n dispatch(errorActions.resetError());\r\n dispatch(controlPanelActions.hide());\r\n dispatch(latestTransactionActions.reset());\r\n dispatch(arrangersPipelineActions.reset());\r\n };\r\n}\r\n\r\nfunction togglePortfolioExpanded(portfolioId) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.EXPANDED_CHANGE,\r\n portfolioId\r\n });\r\n\r\n const { expandedState, expandAll } = getState().portfolio;\r\n const filteredPortfolios = getPortfolios(getState());\r\n\r\n if (filteredPortfolios.every(p => getExpandedState(p.id) !== expandAll)) {\r\n dispatch(expandAllChange(!expandAll, expandedState));\r\n }\r\n\r\n function getExpandedState(portfolioId) {\r\n return expandedState[portfolioId] == null ? true : expandedState[portfolioId];\r\n }\r\n };\r\n}\r\n\r\nfunction portfolioSelectionChange(portfolioId, selectAll) {\r\n return (dispatch, getState) => {\r\n const portfolio = getPortfolios(getState()).find(p => p.id === portfolioId);\r\n\r\n if (!portfolio) return;\r\n\r\n const selectedState = {\r\n ...getState().portfolio.selectedState,\r\n [portfolioId]: {\r\n selectAll,\r\n securitiesSelectedState: selectAll\r\n ? apiUtils.normalize(portfolio.securities, p => p.id, () => true)\r\n : {}\r\n }\r\n };\r\n\r\n dispatch({\r\n type: actionTypes.PORTFOLIO_SELECTED_CHANGE,\r\n selectedState\r\n });\r\n }\r\n}\r\n\r\nfunction portfolioSecuritySelectionChange(portfolioId, portfolioSecurityId, selected) {\r\n return (dispatch, getState) => {\r\n const portfolio = getState().entities.portfolios.items.find(p => p.id === portfolioId);\r\n\r\n if (!portfolio) return;\r\n\r\n const currentSelectedState = getState().portfolio.selectedState;\r\n const portfolioSelectedState = currentSelectedState[portfolioId]\r\n ? { ...currentSelectedState[portfolioId] }\r\n : { securitiesSelectedState: {} };\r\n\r\n const checkSelectedState = selected =>\r\n portfolio.securities.every(s => Boolean(portfolioSelectedState.securitiesSelectedState[s.id]) === selected)\r\n\r\n portfolioSelectedState.securitiesSelectedState[portfolioSecurityId] = selected;\r\n portfolioSelectedState.selectAll = checkSelectedState(true)\r\n ? true\r\n : checkSelectedState(false) ? false : !!portfolioSelectedState.selectAll;\r\n\r\n const selectedState = {\r\n ...currentSelectedState,\r\n [portfolioId]: portfolioSelectedState\r\n };\r\n\r\n dispatch({\r\n type: actionTypes.PORTFOLIO_SELECTED_CHANGE,\r\n selectedState\r\n });\r\n }\r\n}\r\n\r\nfunction deletePortfolioConfirmation(visible, portfolio) {\r\n if (visible) {\r\n return {\r\n type: actionTypes.DELETE_PORTFOLIO_CONFIRMATION,\r\n confirmation: {\r\n visible,\r\n portfolio\r\n }\r\n };\r\n }\r\n\r\n return {\r\n type: actionTypes.DELETE_PORTFOLIO_CONFIRMATION,\r\n confirmation: {}\r\n };\r\n}\r\n\r\nfunction deletePortfolio(portfolioId) {\r\n return (dispatch, getState) => {\r\n dispatch(deletePortfolioConfirmation());\r\n portfolioService\r\n .deletePortfolio(portfolioId)\r\n .then(deleted)\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n\r\n function deleted() {\r\n dispatch(portfolioListActions.deletePortfolio(portfolioId));\r\n const { securityDetails, entities } = getState();\r\n\r\n if (securityDetails.security &&\r\n !entities.portfolios.items.some(p => p.securities.some(s => s.id === securityDetails.security.id))) {\r\n dispatch(securityDetailsActions.securityDetailsReset());\r\n }\r\n\r\n if (securityDetails.security &&\r\n !entities.portfolios.items.some(p => p.securities.some(s => s.id === bwicLogActions.security.id))) {\r\n dispatch(bwicLogActions.bwicLogReset());\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction showBwicDetails(selectedSecurity, currentBwicHistoryItem) {\r\n return {\r\n type: actionTypes.SHOW_BWIC_DETAILS,\r\n currentBwicHistoryItem,\r\n selectedSecurity\r\n };\r\n}\r\n\r\nfunction resetRowSelection() {\r\n return { type: actionTypes.SHOW_BWIC_DETAILS }\r\n}\r\n\r\nfunction newPortfolioDialog(visible) {\r\n return {\r\n type: actionTypes.NEW_PORTFOLIO_DIALOG,\r\n newPortfolio: { visible }\r\n };\r\n}\r\n\r\nfunction newPortfolio(title) {\r\n return dispatch => {\r\n dispatch(newPortfolioDialog(false));\r\n portfolioService\r\n .createPortfolio(title)\r\n .then(({ referenceName }) => history.push(routes.editPortfolioUrl(referenceName)))\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n };\r\n}\r\n\r\nfunction setPortfolioExportingStatus(status) {\r\n return { type: actionTypes.PORTFOLIO_SET_IS_REQUESTING_EXPORT, payload: { status } }\r\n}\r\n\r\nfunction exportAll() {\r\n return (dispatch, getState) => {\r\n const { filters, searchSecurities } = getState();\r\n const filterCriteria = getFilterCriteria(filters.portfolio.filter, searchSecurities?.searchTermItems);\r\n filterCriteria.identifiers = filterCriteria.isinCusipsAndTickers;\r\n filterCriteria.currency = filterCriteria.currency.length === 1 ? filterCriteria.currency[0] : undefined;\r\n filterCriteria.nonCallEndFromYear = filterCriteria.nonCallEndFromDate ? undefined : filterCriteria.nonCallEndFrom;\r\n filterCriteria.nonCallEndToYear = filterCriteria.nonCallEndToDate ? undefined : filterCriteria.nonCallEndTo;\r\n filterCriteria.reinvestmentEndFromYear = filterCriteria.reinvestmentEndFromDate ? undefined : filterCriteria.reinvestmentEndFrom;\r\n filterCriteria.reinvestmentEndToYear = filterCriteria.reinvestmentEndToDate ? undefined : filterCriteria.reinvestmentEndTo;\r\n\r\n dispatch(setPortfolioExportingStatus(true));\r\n portfolioService\r\n .exportPortfolios(filterCriteria)\r\n .then(file => saveAs(file.blob, file.name || 'portfolios.csv'))\r\n .catch((e) => errorActions.unexpectedError(e))\r\n .finally(() => dispatch(setPortfolioExportingStatus(false)));\r\n };\r\n}\r\n\r\nfunction createBwicConfirmed() {\r\n return (dispatch, getState) => {\r\n const portfolios = getState().entities.portfolios.items;\r\n const selectedState = getState().portfolio.selectedState;\r\n\r\n const securities = getSelectedSecurities(portfolios, selectedState);\r\n history.push(routes.newBWIC, { securities: cloneDeep(groupSecurities(securities)) });\r\n };\r\n}\r\n\r\nfunction groupSecurities(securities) {\r\n const grouped = [];\r\n\r\n securities.forEach(s => {\r\n const duplicate = grouped.find(g => g.securityId === s.securityId);\r\n if (duplicate) {\r\n duplicate.size += +s.size;\r\n } else {\r\n grouped.push(s);\r\n }\r\n });\r\n\r\n return grouped;\r\n}\r\n\r\nfunction getSelectedSecurities(portfolios, selectedState) {\r\n return portfolios\r\n .map(p => p.securities.filter(s =>\r\n selectedState[p.id] &&\r\n selectedState[p.id].securitiesSelectedState &&\r\n selectedState[p.id].securitiesSelectedState[s.id]))\r\n .flat();\r\n}\r\n\r\nfunction expandAllChange(expandAll, expandedState) {\r\n return {\r\n type: actionTypes.EXPAND_ALL,\r\n expandAll,\r\n expandedState\r\n };\r\n}\r\n\r\n//BWIC Alerts\r\nfunction updatePortfoliosAlertStatus(list) { // list: [{ portfolioId: number, bwicAlert?: boolean, dealersInventoryAlert?: boolean, issuanceMonitorAlert?: boolean, outOfRiPeriodAlert?: boolean, outOfNcPeriodAlert?: boolean rollerDeadlineAlert?: boolean}]\r\n return (dispatch, getState) => {\r\n const portfolios = apiUtils.normalize(\r\n getState().entities.portfolios.items,\r\n portfolio => portfolio.id,\r\n portfolio => portfolio\r\n );\r\n\r\n const dataToSend = list.map(x => ({\r\n ...x,\r\n bwicAlert: x.bwicAlert ?? portfolios[x.portfolioId].bwicAlert,\r\n dealersInventoryAlert: x.dealersInventoryAlert ?? portfolios[x.portfolioId].dealersInventoryAlert,\r\n cleansingNoticeAlert: x.cleansingNoticeAlert ?? portfolios[x.portfolioId].cleansingNoticeAlert,\r\n issuanceMonitorAlert: x.issuanceMonitorAlert ?? portfolios[x.portfolioId].issuanceMonitorAlert,\r\n outOfRiPeriodAlert: x.outOfRiPeriodAlert ?? portfolios[x.portfolioId].outOfRiPeriodAlert,\r\n outOfNcPeriodAlert: x.outOfNcPeriodAlert ?? portfolios[x.portfolioId].outOfNcPeriodAlert,\r\n rollerDeadlineAlert: x.rollerDeadlineAlert ?? portfolios[x.portfolioId].rollerDeadlineAlert\r\n }));\r\n\r\n const bwicAlertChanges = list.filter(x => x.bwicAlert != null).map(x => x.portfolioId);\r\n const inventoryAlertChanges = list.filter(x => x.dealersInventoryAlert != null).map(x => x.portfolioId);\r\n const cleansingNoticeAlertChanges = list.filter(x => x.cleansingNoticeAlert != null).map(x => x.portfolioId);\r\n const issuanceMonitorAlertChanges = list.filter(x => x.issuanceMonitorAlert != null).map(x => x.portfolioId);\r\n const outOfRiPeriodAlertChanges = list.filter(x => x.outOfRiPeriodAlert != null).map(x => x.portfolioId);\r\n const outOfNcPeriodAlertChanges = list.filter(x => x.outOfNcPeriodAlert != null).map(x => x.portfolioId);\r\n const rollerDeadlineAlertChanges = list.filter(x => x.rollerDeadlineAlert != null).map(x => x.portfolioId);\r\n\r\n dispatch(updateBwicAlertStatusRequest(bwicAlertChanges));\r\n dispatch(updateInventoryAlertStatusRequest(inventoryAlertChanges));\r\n dispatch(updateCleansingNoticeAlertStatusRequest(cleansingNoticeAlertChanges));\r\n dispatch(updateIssuanceMonitorAlertStatusRequest(issuanceMonitorAlertChanges));\r\n dispatch(updateOutOfRiAlertStatusRequest(outOfRiPeriodAlertChanges));\r\n dispatch(updateOutOfNcAlertStatusRequest(outOfNcPeriodAlertChanges));\r\n dispatch(updateRollerDeadlineAlertStatusRequest(rollerDeadlineAlertChanges));\r\n\r\n\r\n portfolioService.updatePortfoliosAlert(dataToSend)\r\n .then(() => {\r\n dispatch(portfolioListActions.updateSendAlertState(list));\r\n dispatch(updateBwicAlertStatusSuccess(bwicAlertChanges));\r\n dispatch(updateInventoryAlertStatusSuccess(inventoryAlertChanges));\r\n dispatch(updateCleansingNoticeAlertStatusSuccess(cleansingNoticeAlertChanges));\r\n dispatch(updateIssuanceMonitorAlertStatusSuccess(issuanceMonitorAlertChanges));\r\n dispatch(updateOutOfRiAlertStatusSuccess(outOfRiPeriodAlertChanges));\r\n dispatch(updateOutOfNcAlertStatusSuccess(outOfNcPeriodAlertChanges));\r\n dispatch(updateRollerDeadlineAlertStatusSuccess(rollerDeadlineAlertChanges));\r\n dispatch(emailPreferencesActions.request());\r\n })\r\n .catch(e => {\r\n dispatch(updateBwicAlertStatusFailure(bwicAlertChanges));\r\n dispatch(updateInventoryAlertStatusFailure(inventoryAlertChanges));\r\n dispatch(updateCleansingNoticeAlertStatusFailure(cleansingNoticeAlertChanges));\r\n dispatch(updateIssuanceMonitorAlertStatusFailure(issuanceMonitorAlertChanges));\r\n dispatch(updateOutOfRiAlertStatusFailure(outOfRiPeriodAlertChanges));\r\n dispatch(updateOutOfNcAlertStatusFailure(outOfNcPeriodAlertChanges));\r\n dispatch(updateRollerDeadlineAlertStatusFailure(rollerDeadlineAlertChanges));\r\n dispatch(errorActions.unexpectedError(e));\r\n });\r\n };\r\n}\r\n\r\nfunction updateBwicAlertStatusRequest(list) {\r\n return {\r\n type: actionTypes.PORTFOLIO_UPDATE_ALERT_STATUS_REQUEST,\r\n payload: { list }\r\n };\r\n}\r\n\r\nfunction updateBwicAlertStatusSuccess(list) {\r\n return {\r\n type: actionTypes.PORTFOLIO_UPDATE_ALERT_STATUS_SUCCESS,\r\n payload: { list }\r\n };\r\n}\r\n\r\n\r\nfunction updateBwicAlertStatusFailure(list) {\r\n return {\r\n type: actionTypes.PORTFOLIO_UPDATE_ALERT_STATUS_FAILURE,\r\n payload: { list }\r\n };\r\n}\r\n\r\nfunction updateInventoryAlertStatusRequest(list) {\r\n return {\r\n type: actionTypes.UPDATE_INVENTORY_ALERT_STATUS_REQUEST,\r\n payload: { list }\r\n };\r\n}\r\n\r\nfunction updateInventoryAlertStatusSuccess(list) {\r\n return {\r\n type: actionTypes.UPDATE_INVENTORY_ALERT_STATUS_SUCCESS,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateInventoryAlertStatusFailure(list) {\r\n return {\r\n type: actionTypes.UPDATE_INVENTORY_ALERT_STATUS_FAILURE,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateIssuanceMonitorAlertStatusRequest(list) {\r\n return {\r\n type: actionTypes.UPDATE_ISSUANCE_MONITOR_ALERT_STATUS_REQUEST,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateIssuanceMonitorAlertStatusSuccess(list) {\r\n return {\r\n type: actionTypes.UPDATE_ISSUANCE_MONITOR_ALERT_STATUS_SUCCESS,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateIssuanceMonitorAlertStatusFailure(list) {\r\n return {\r\n type: actionTypes.UPDATE_ISSUANCE_MONITOR_ALERT_STATUS_FAILURE,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateCleansingNoticeAlertStatusRequest(list) {\r\n return {\r\n type: actionTypes.UPDATE_CLEANSING_NOTICE_ALERT_STATUS_REQUEST,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateCleansingNoticeAlertStatusSuccess(list) {\r\n return {\r\n type: actionTypes.UPDATE_CLEANSING_NOTICE_ALERT_STATUS_SUCCESS,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateCleansingNoticeAlertStatusFailure(list) {\r\n return {\r\n type: actionTypes.UPDATE_CLEANSING_NOTICE_ALERT_STATUS_FAILURE,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateOutOfRiAlertStatusRequest(list) {\r\n return {\r\n type: actionTypes.UPDATE_OUT_OF_RI_PERIOD_ALERT_STATUS_REQUEST,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateOutOfRiAlertStatusSuccess(list) {\r\n return {\r\n type: actionTypes.UPDATE_OUT_OF_RI_PERIOD_ALERT_STATUS_SUCCESS,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateOutOfRiAlertStatusFailure(list) {\r\n return {\r\n type: actionTypes.UPDATE_OUT_OF_RI_PERIOD_ALERT_STATUS_FAILURE,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateOutOfNcAlertStatusRequest(list) {\r\n return {\r\n type: actionTypes.UPDATE_OUT_OF_NC_PERIOD_ALERT_STATUS_REQUEST,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateOutOfNcAlertStatusSuccess(list) {\r\n return {\r\n type: actionTypes.UPDATE_OUT_OF_NC_PERIOD_ALERT_STATUS_SUCCESS,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateOutOfNcAlertStatusFailure(list) {\r\n return {\r\n type: actionTypes.UPDATE_OUT_OF_NC_PERIOD_ALERT_STATUS_FAILURE,\r\n payload: { list }\r\n };\r\n};\r\n\r\nfunction updateRollerDeadlineAlertStatusRequest(list) {\r\n return {\r\n type: actionTypes.UPDATE_ROLLER_DEADLINE_ALERT_STATUS_REQUEST,\r\n payload: { list }\r\n };\r\n}\r\n\r\nfunction updateRollerDeadlineAlertStatusSuccess(list) {\r\n return {\r\n type: actionTypes.UPDATE_ROLLER_DEADLINE_ALERT_STATUS_SUCCESS,\r\n payload: { list }\r\n };\r\n}\r\n\r\nfunction updateRollerDeadlineAlertStatusFailure(list) {\r\n return {\r\n type: actionTypes.UPDATE_ROLLER_DEADLINE_ALERT_STATUS_FAILURE,\r\n payload: { list }\r\n };\r\n}\r\n\r\n\r\n\r\n\r\nfunction hideActivePanels() {\r\n return dispatch => {\r\n dispatch(resetRowSelection());\r\n dispatch(rulesActions.hide());\r\n dispatch(securityDetailsActions.securityDetailsReset());\r\n dispatch(bwicLogActions.bwicLogReset());\r\n }\r\n}\r\n\r\nfunction advancedFilterBlocked(blocked) {\r\n return {\r\n type: actionTypes.ADVANCED_FILTER_BLOCKED,\r\n payload: { blocked }\r\n }\r\n}\r\n","import { ActionType, createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { PxTalk } from \"../types/bwic/PxTalk\";\r\n\r\nconst request = createAction(\"entities/priceTalks/REQUEST\",\r\n resolve => (bwicReferenceName: string, positionId: number) => resolve({ bwicReferenceName, positionId })\r\n);\r\nconst requestResult = createAction(\"entities/priceTalks/REQUEST_RESULT\",\r\n resolve => (positionId: number, requestState: RequestState, priceTalks: PxTalk[] = []) => resolve({ positionId, requestState, priceTalks })\r\n);\r\nconst addPriceTalk = createAction(\"entities/priceTalks/ADD\",\r\n resolve => (positionId: number, priceTalk: PxTalk) => resolve({ positionId, priceTalk })\r\n);\r\nconst replacePriceTalks = createAction(\"entities/priceTalks/REPLACE\",\r\n resolve => (positionId: number, priceTalks: PxTalk[]) => resolve({ positionId, priceTalks })\r\n);\r\nconst resetFailed = createAction(\"entities/priceTalks/RESET_FAILED\");\r\nconst reset = createAction(\"entities/priceTalks/RESET\");\r\n\r\nexport const priceTalksActions = {\r\n request,\r\n requestResult,\r\n addPriceTalk,\r\n replacePriceTalks,\r\n resetFailed,\r\n reset\r\n}\r\n\r\nexport type TPriceTalksActionType = ActionType<\r\n typeof request |\r\n typeof requestResult |\r\n typeof addPriceTalk |\r\n typeof replacePriceTalks |\r\n typeof resetFailed |\r\n typeof reset\r\n>;\r\n","import moment from 'moment';\r\nimport { values, isEqual } from 'lodash';\r\nimport {\r\n processActions as actionTypes,\r\n errorMessages,\r\n constants\r\n} from '../constants';\r\nimport { bwicProcessService as processService } from '../services';\r\nimport { errorActions } from '.';\r\nimport { dateTimeUtils, arrayUtils, numericUtils, formatUtils } from '../utils';\r\nimport { LevelSpecificationType } from '../types/enums/LevelSpecificationType';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { JumpBallStage2Participants } from '../types/bwic-process/JumpBallSettings';\r\nimport { TopXStage2Participants } from '../types/bwic-process/TopXSettings';\r\nimport { appConfig } from '../app-config';\r\nimport { OpenBiddingImproverCount } from '../types/enums/OpenBiddingImproverCount';\r\n\r\nexport const processActions = {\r\n init,\r\n reset,\r\n changeDate,\r\n changeDaysToSettle,\r\n changeTimeZone,\r\n changeBidsDueTime,\r\n changeGoodUntilTime,\r\n validate,\r\n\r\n storeNextBusiessDay,\r\n selectTemplate,\r\n reserveLevelsApplyEnabled,\r\n earlyTradesEnabled,\r\n rulesText,\r\n setStage1Deadline,\r\n setImprovementRound,\r\n setMinBidIncrement,\r\n setLevelSpecificationType,\r\n setOpenBiddingImproverCount,\r\n resetStage1DeadlineError,\r\n resetImprovementRoundError,\r\n resetMinBidIncrementError,\r\n resetJumpBallStage2DurationMinutes,\r\n resetBestFootForwardDurationMinutes,\r\n resetJumpBallStage1AutomaticMinutes,\r\n resetTopXStage1AutomaticMinutes,\r\n resetTopXStage2DurationMinutes,\r\n titleChange,\r\n descriptionChange,\r\n setMinDate,\r\n setHolidays,\r\n resetChanges,\r\n\r\n jumpBallStage1EndManual,\r\n jumpBallStage1EndAuto,\r\n jumpBallStage1EndAutomaticMinutesChange,\r\n jumpBallStage2ParticipantsChange,\r\n jumpBallStage2DurationUnspecified,\r\n jumpBallStage2DurationPreset,\r\n jumpBallStage2DurationMinutesChange,\r\n\r\n autoFeedbackDelayChange,\r\n autoFeedbackDelayEnabled,\r\n autoFeedbackDelayDisabled,\r\n minBidIncrementChange,\r\n minBidIncrementEnabled,\r\n minBidIncrementDisabled,\r\n\r\n cutOffReminderChange,\r\n\r\n topXStage1EndManual,\r\n topXStage1EndAuto,\r\n topXStage1EndAutomaticMinutesChange,\r\n topXStage2ParticipantsChange,\r\n topXStage2DurationUnspecified,\r\n topXStage2DurationPreset,\r\n topXStage2DurationMinutesChange,\r\n\r\n bestFootForwardDurationMinutesChange,\r\n setAllToAllProtocol\r\n}\r\n\r\nfunction init() {\r\n return async (dispatch, getState) => {\r\n const { process } = getState();\r\n\r\n if (process.templates.all?.length) {\r\n return; // already initialized\r\n }\r\n\r\n try {\r\n const templates = await processService.getTemplates();\r\n dispatch(addTemplates(templates));\r\n dispatch(selectTemplate(0));\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n }\r\n}\r\n\r\nfunction setMinDate(minimumDate) {\r\n return {\r\n type: actionTypes.MIN_DATE,\r\n minimumDate\r\n };\r\n}\r\n\r\nfunction setBwicDisabledTime() {\r\n return (dispatch, getState) => {\r\n const { bidsDue, goodUntil, timeZone, timeZones } = getState().process;\r\n const { fromTime, toTime } = getBwicAllowedTimeRange(timeZone, timeZones);\r\n const all = arrayUtils.arrayFromRange(0, 23);\r\n const allowed = arrayUtils.arrayFromRange(fromTime.hour(), toTime.hour());\r\n const disabledHours = all.filter(h => !allowed.some(a => a === h));\r\n\r\n const selectedTimeZone = timeZones.find(t => t.id === timeZone);\r\n const frameEndHour = toTime.hour();\r\n const isBidsDueMinutesDisabled = shouldDisableMinutes(bidsDue, selectedTimeZone, frameEndHour);\r\n const isGoodUntilMinutesDisabled = shouldDisableMinutes(goodUntil, selectedTimeZone, frameEndHour);\r\n\r\n dispatch({\r\n type: actionTypes.SET_DISABLED_TIME,\r\n disabledHours,\r\n isBidsDueMinutesDisabled,\r\n isGoodUntilMinutesDisabled\r\n });\r\n };\r\n}\r\n\r\nfunction shouldDisableMinutes(time, timeZone, frameEndHour) {\r\n const hour = moment\r\n .utc(time)\r\n .utcOffset(timeZone.utcOffsetMinutes, true)\r\n .hour();\r\n\r\n return hour === frameEndHour;\r\n}\r\n\r\nfunction getBwicAllowedTimeRange(timeZoneId, timeZones) {\r\n const est = timeZones.find(t => t.abbreviation === 'EST');\r\n const selected = timeZones.find(t => t.id === timeZoneId);\r\n const { from, to } = constants.bwicAllowedTimeRange;\r\n const fromTime = moment.utc(dateTimeUtils.timestampToUtcString(from)).utcOffset(est.utcOffsetMinutes, true).utcOffset(selected.utcOffsetMinutes);\r\n const toTime = moment.utc(dateTimeUtils.timestampToUtcString(to)).utcOffset(est.utcOffsetMinutes, true).utcOffset(selected.utcOffsetMinutes);\r\n\r\n return { fromTime, toTime };\r\n}\r\n\r\nfunction storeNextBusiessDay(date) {\r\n return {\r\n type: actionTypes.NEXT_BUSINESS_DAY,\r\n date\r\n };\r\n}\r\n\r\nfunction changeDate(date) {\r\n return (dispatch, getState) => {\r\n const { process } = getState();\r\n if (process.date !== date) {\r\n dispatch({ type: actionTypes.CHANGE_DATE, date });\r\n if (process.errors) {\r\n dispatch(validate());\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setHolidays(holidays) {\r\n return {\r\n type: actionTypes.HOLIDAYS,\r\n holidays\r\n }\r\n}\r\n\r\nfunction changeDaysToSettle(days) {\r\n return {\r\n type: actionTypes.DAYS_TO_SETTLE,\r\n days\r\n };\r\n}\r\n\r\nfunction changeTimeZone(timeZone) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.TIME_ZONE,\r\n timeZone\r\n });\r\n dispatch(setBwicDisabledTime());\r\n\r\n const { errors = {} } = getState().process;\r\n if (errors.time) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\n\r\nfunction changeBidsDueTime(time) {\r\n return (dispatch, getState) => {\r\n const { errors = {}, goodUntil } = getState().process;\r\n\r\n dispatch({ type: actionTypes.BIDS_DUE, time });\r\n\r\n if (errors.time || hasTemplateErrors(errors)) {\r\n dispatch(validate());\r\n }\r\n\r\n if (time) {\r\n const bidsDueTime = moment.utc(time);\r\n const goodUntilCurrentTime = moment.utc(goodUntil);\r\n const frameEnd = dateTimeUtils.timestampToUtcString(constants.bwicAllowedTimeRange.to);\r\n\r\n const goodUntilNewTime = goodUntilCurrentTime.isSame(bidsDueTime, 'day') && goodUntilCurrentTime <= moment.utc(frameEnd)\r\n ? goodUntilCurrentTime.format(constants.dateTimeFormatUtc)\r\n : frameEnd;\r\n\r\n dispatch(changeGoodUntilTime(goodUntilNewTime));\r\n }\r\n }\r\n}\r\n\r\nfunction changeGoodUntilTime(time) {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n\r\n dispatch({ type: actionTypes.GOOD_UNTIL, time });\r\n if (errors.time || hasTemplateErrors(errors)) {\r\n dispatch(validate());\r\n }\r\n\r\n if (time) {\r\n dispatch(setBwicDisabledTime());\r\n }\r\n }\r\n}\r\n\r\nfunction hasTemplateErrors(errors) {\r\n return errors.templates && Object.values(errors.templates).some(e => e);\r\n}\r\n\r\nfunction validate() {\r\n return (dispatch, getState) => {\r\n const { process } = getState();\r\n const errors = {};\r\n errors.date = validateDate(process.date, process.holidays);\r\n errors.time = validateTime(!errors.date && process.date, process.bidsDue, process.goodUntil, process.timeZone, process.timeZones);\r\n errors.templates = validateTemplate(process.bidsDue, process.goodUntil, process.templates.current || {});\r\n const isDateValid = !(errors.date || errors.time);\r\n const isTemplateValid = !hasTemplateErrors(errors);\r\n const isValid = !(errors.date || errors.time || !isTemplateValid);\r\n\r\n dispatch({\r\n type: actionTypes.VALIDATE,\r\n validation: {\r\n errors,\r\n isValid,\r\n isTemplateValid,\r\n isDateValid\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction validateDate(date, holidays) {\r\n if (date === '') {\r\n return errorMessages.empty;\r\n } else if (typeof date === 'undefined') {\r\n return errorMessages.invalidValue;\r\n }\r\n\r\n const momentDate = moment(date);\r\n\r\n if (momentDate.diff(new Date(), 'days') < 0) {\r\n return errorMessages.dateShouldNotBeInPast;\r\n }\r\n\r\n const weekday = momentDate.isoWeekday();\r\n\r\n if ([6, 7].some(d => d === weekday)) {\r\n return errorMessages.bwicDateShouldNotBeWeekend;\r\n }\r\n\r\n if (holidays.some(h => moment(h).isSame(momentDate, 'day'))) {\r\n return errorMessages.bwicDateShouldNotBeHoliday;\r\n }\r\n}\r\n\r\nfunction validateTime(date, start, end, timeZoneId, timeZones) {\r\n const bidsDueUtc = moment.utc(start);\r\n const goodUntilUtc = moment.utc(end);\r\n\r\n if (bidsDueUtc >= goodUntilUtc) {\r\n return errorMessages.bidsDueShoulbBeLessThanGoodUntil;\r\n }\r\n\r\n const timeZone = timeZones.find(t => t.id === timeZoneId)\r\n const bidsDue = bidsDueUtc.utcOffset(timeZone.utcOffsetMinutes, true);\r\n const goodUntil = goodUntilUtc.utcOffset(timeZone.utcOffsetMinutes, true);\r\n\r\n if (!appConfig.enableAnyTimeNewBwic) { // for testing purposes\r\n const { fromTime, toTime } = getBwicAllowedTimeRange(timeZoneId, timeZones);\r\n\r\n if (bidsDue < fromTime || bidsDue > toTime || goodUntil < fromTime || goodUntil > toTime) {\r\n return errorMessages.bwicTimeInvalidRange(moment(fromTime).format(constants.timeFormat3), moment(toTime).format(constants.timeFormat3), timeZone.abbreviation);\r\n }\r\n }\r\n\r\n if (date) {\r\n const bwicDate = moment(date).utcOffset(timeZone.utcOffsetMinutes, true);\r\n const now = moment.utc().utcOffset(timeZone.utcOffsetMinutes);\r\n\r\n if (now.isSame(bwicDate, 'day')) {\r\n const bidsDueDateTime = bidsDue.set({ date: bwicDate.date(), month: bwicDate.month(), year: bwicDate.year() });\r\n if (bidsDueDateTime < now) {\r\n return errorMessages.bwicTimeShouldNotBeInPast;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction validateTemplate(start, end, template) {\r\n const bidsDueTimestamp = dateTimeUtils.timestampFromUtcString(start);\r\n const goodUntilTimestamp = dateTimeUtils.timestampFromUtcString(end);\r\n\r\n const bidsDue = moment.utc(bidsDueTimestamp, constants.timeFormat);\r\n const goodUntil = moment.utc(goodUntilTimestamp, constants.timeFormat);\r\n\r\n const bwicDuration = goodUntil.diff(bidsDue, 'minutes');\r\n\r\n return {\r\n ...validateMinBidIncrementTemplate(template),\r\n ...validateAutoFeedbackDelay(template, bwicDuration),\r\n ...validateCutOffReminder(template, bwicDuration),\r\n ...validateLive(template, bwicDuration),\r\n ...validateJumpBall(template, bwicDuration),\r\n ...validateTopX(template, bwicDuration),\r\n ...validateBestFootForward(template, bwicDuration)\r\n };\r\n}\r\n\r\nfunction validateLive(template, bwicDurationMinutes) {\r\n const result = {};\r\n\r\n if (template.type === BwicProcessType.Live) {\r\n const stage1Max = template.liveBidding.improvementRound\r\n ? bwicDurationMinutes - template.liveBidding.improvementRound\r\n : bwicDurationMinutes - constants.openBiddingMinStage2Duration\r\n\r\n result.stage1Deadline = validateNumber(\r\n template.liveBidding.stage1Deadline, {\r\n min: constants.openBiddingMinStage1Duration,\r\n max: Math.max(constants.openBiddingMinStage1Duration, stage1Max)\r\n });\r\n\r\n if (bwicDurationMinutes < (template.liveBidding.improvementRound + template.liveBidding.stage1Deadline)) {\r\n result.improvementRound = errorMessages.setMoreThanTotalDuration(bwicDurationMinutes);\r\n result.stage1Deadline = errorMessages.setMoreThanTotalDuration(bwicDurationMinutes);\r\n }\r\n else {\r\n result.improvementRound = validateNumber(\r\n template.liveBidding.improvementRound, {\r\n min: constants.openBiddingMinStage2Duration,\r\n max: constants.openBiddingMaxStage2Duration\r\n });\r\n }\r\n\r\n result.minBidIncrement = validateMinBidIncrement(template.liveBidding.minBidIncrement);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction validateCutOffReminder(template, bwicDuration) {\r\n const result = {};\r\n\r\n let processRange = {\r\n range: {},\r\n lessThanErrorMessage: '',\r\n greaterThenErrorMessage: ''\r\n };\r\n\r\n function getBestFootForwardCutOffReminderRange(stageDuration) {\r\n\r\n const stageDurationMinutes =\r\n stageDuration > constants.minBwicDuration\r\n ? stageDuration\r\n : constants.minBwicDuration\r\n\r\n return processRange = {\r\n range: {\r\n min: constants.cutOffReminderRange.min,\r\n max: stageDurationMinutes - constants.differenceBetweenStageAndCutOffReminder,\r\n }\r\n }\r\n }\r\n\r\n function getRangeWithStage1Deadline(stage1Deadline) {\r\n const stage1DeadlineMinutes =\r\n stage1Deadline > constants.minBwicDuration\r\n ? stage1Deadline\r\n : constants.minBwicDuration\r\n\r\n return processRange = {\r\n range: stage1Deadline\r\n ? {\r\n min: constants.cutOffReminderRange.min,\r\n max: stage1DeadlineMinutes - constants.differenceBetweenStageAndCutOffReminder,\r\n }\r\n : {\r\n min: constants.cutOffReminderRange.min,\r\n max: constants.cutOffReminderRange.max,\r\n }\r\n }\r\n }\r\n\r\n switch (template.type) {\r\n case BwicProcessType.JumpBall: getRangeWithStage1Deadline(dateTimeUtils.parseTimeSpan(template.jumpBall.automaticStage1Deadline).totalMinutes); break;\r\n case BwicProcessType.TopX: getRangeWithStage1Deadline(dateTimeUtils.parseTimeSpan(template.topX.automaticStage1Deadline).totalMinutes); break;\r\n case BwicProcessType.Live: getRangeWithStage1Deadline(template.liveBidding.stage1Deadline); break;\r\n case BwicProcessType.BestFootForward: getBestFootForwardCutOffReminderRange(\r\n dateTimeUtils.parseTimeSpan(template.bff.stage1Deadline).totalMinutes,\r\n dateTimeUtils.parseTimeSpan(template.cutOffReminder).totalMinutes); break;\r\n default: processRange = { range: constants.cutOffReminderRange };\r\n }\r\n result.cutOffReminder = validateNumber(\r\n dateTimeUtils.parseTimeSpan(template.cutOffReminder).totalMinutes,\r\n processRange.range,\r\n processRange.lessThanErrorMessage,\r\n processRange.greaterThenErrorMessage\r\n );\r\n\r\n return result\r\n}\r\nfunction validateAutoFeedbackDelay(template, bwicDuration) {\r\n const result = {};\r\n\r\n if (template.autoFeedbackDelay != null) {\r\n result.autoFeedbackDelay = validateNumber(\r\n dateTimeUtils.parseTimeSpan(template.autoFeedbackDelay).totalMinutes, {\r\n min: constants.autoFeedbackDelayRange.min,\r\n max: Math.min(constants.autoFeedbackDelayRange.max, bwicDuration)\r\n }\r\n );\r\n }\r\n return result;\r\n}\r\nfunction validateMinBidIncrementTemplate(template) {\r\n const result = {};\r\n\r\n if (template.minBidIncrement != null) {\r\n result.minBidIncrement = validateNumber(\r\n template.minBidIncrement, {\r\n min: constants.minBidIncrementRange.min,\r\n max: constants.minBidIncrementRange.max\r\n }\r\n );\r\n }\r\n return result;\r\n}\r\n\r\nfunction validateJumpBall(template, bwicDuration) {\r\n const result = {};\r\n\r\n if (template.type === BwicProcessType.JumpBall) {\r\n const settings = template.jumpBall ?? {};\r\n\r\n if (settings.automaticStage1Deadline != null) {\r\n result.jumpBallStage1AutomaticMinutes = validateNumber(\r\n dateTimeUtils.parseTimeSpan(settings.automaticStage1Deadline).totalMinutes,\r\n constants.jumpBall.stage1EndAutoRange\r\n );\r\n }\r\n\r\n if (settings.improvementRound != null) {\r\n result.jumpBallStage2DurationMinutes = validateNumber(\r\n dateTimeUtils.parseTimeSpan(settings.improvementRound).totalMinutes,\r\n constants.jumpBall.stage2DurationRange\r\n );\r\n }\r\n\r\n const stagesDuration = (\r\n dateTimeUtils.parseTimeSpan(settings.automaticStage1Deadline).totalMinutes + dateTimeUtils.parseTimeSpan(settings.improvementRound).totalMinutes);\r\n if (stagesDuration > 0 && bwicDuration < stagesDuration && !values(result).some(r => r)) {\r\n result.jumpBallStage1AutomaticMinutes = result.jumpBallStage2DurationMinutes =\r\n `Total of first and second stages should not be greater than ${bwicDuration}`;\r\n }\r\n\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction validateTopX(template, bwicDuration) {\r\n const result = {};\r\n\r\n if (template.type === BwicProcessType.TopX) {\r\n const settings = template.topX ?? {};\r\n\r\n if (settings.automaticStage1Deadline != null) {\r\n result.topXStage1AutomaticMinutes = validateNumber(\r\n dateTimeUtils.parseTimeSpan(settings.automaticStage1Deadline).totalMinutes,\r\n constants.topX.stage1EndAutoRange\r\n );\r\n }\r\n\r\n if (settings.improvementRound != null) {\r\n result.topXStage2DurationMinutes = validateNumber(\r\n dateTimeUtils.parseTimeSpan(settings.improvementRound).totalMinutes,\r\n constants.topX.stage2DurationRange\r\n );\r\n }\r\n\r\n const stagesDuration = (\r\n dateTimeUtils.parseTimeSpan(settings.automaticStage1Deadline).totalMinutes + dateTimeUtils.parseTimeSpan(settings.improvementRound).totalMinutes);\r\n if (stagesDuration > 0 && bwicDuration < stagesDuration && !values(result).some(r => r)) {\r\n result.topXStage1AutomaticMinutes = result.topXStage2DurationMinutes =\r\n `Total of first and second stages should not be greater than ${bwicDuration}`;\r\n }\r\n\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction validateBestFootForward(template, bwicDuration) {\r\n const result = {};\r\n\r\n if (template.type === BwicProcessType.BestFootForward) {\r\n const settings = template.bff ?? {};\r\n\r\n if (settings.stage1Deadline != null) {\r\n result.bestFootForwardDurationMinutes = validateNumber(\r\n dateTimeUtils.parseTimeSpan(settings.stage1Deadline).totalMinutes,\r\n constants.bestFootForward.stage1DeadlineRange\r\n );\r\n }\r\n\r\n if (dateTimeUtils.parseTimeSpan(settings.stage1Deadline).totalMinutes > 0 &&\r\n bwicDuration < dateTimeUtils.parseTimeSpan(settings.stage1Deadline).totalMinutes &&\r\n !values(result).some(r => r)) {\r\n result.bestFootForwardDurationMinutes = `Bidding period should not be greater than ${bwicDuration}`;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction validateNumber(value, range, lessThanErrorMessage = '', greaterThenErrorMessage = '') {\r\n if (!value || !String(value).trim()) {\r\n return errorMessages.empty;\r\n } else if (!numericUtils.isNumber(value)) {\r\n return errorMessages.invalidValue;\r\n } else if (+value < range.min && lessThanErrorMessage) {\r\n return lessThanErrorMessage;\r\n } else if (+value > range.max && greaterThenErrorMessage) {\r\n return greaterThenErrorMessage;\r\n } else if (+value < range.min || +value > range.max) {\r\n return errorMessages.invalidRange(range.min, range.max);\r\n }\r\n return '';\r\n}\r\n\r\nfunction validateMinBidIncrement(minBidIncrement) {\r\n return validateNumber(minBidIncrement, { min: constants.openBiddingMinBidIncrement, max: constants.openBiddingMaxBidIncrement });\r\n}\r\n\r\nfunction addTemplates(templates) {\r\n return {\r\n type: actionTypes.ADD_TEMPLATES,\r\n templates: templates.map(t => ({ // add defaults\r\n ...t,\r\n cutOffReminder: dateTimeUtils.timeSpan(0, constants.cutOffReminderRangeDefaultMinutes),\r\n autoFeedbackDelay: dateTimeUtils.timeSpan(0, constants.autoFeedbackDelayDefaultMinutes),\r\n\r\n //Live Bidding\r\n liveBidding: {\r\n levelSpecificationType: t.levelSpecificationType || LevelSpecificationType.best,\r\n openBiddingImproverCount: t.openBiddingImproverCount || OpenBiddingImproverCount.top3,\r\n stage1Deadline: t.stage1Deadline || constants.openBiddingDefaultStage1Deadline,\r\n improvementRound: t.improvementRound || constants.openBiddingMinStage2Duration,\r\n minBidIncrement: formatUtils.formatBid(t.minBidIncrement || constants.defaultMinBidIncrement),\r\n },\r\n\r\n // JumpBall\r\n jumpBall: {\r\n improverCount: JumpBallStage2Participants.Top3,\r\n improvementRound: dateTimeUtils.timeSpan(0, constants.jumpBall.stage2DurationDefaultMinutes),\r\n automaticStage1Deadline: dateTimeUtils.timeSpan(0, constants.jumpBall.stage1EndAutoDefaultMinutes),\r\n },\r\n\r\n // TopX\r\n topX: {\r\n improverCount: TopXStage2Participants.Top3,\r\n improvementRound: dateTimeUtils.timeSpan(0, constants.topX.stage2DurationDefaultMinutes),\r\n automaticStage1Deadline: dateTimeUtils.timeSpan(0, constants.topX.stage1EndAutoDefaultMinutes),\r\n },\r\n // BestFootForward\r\n bff: {\r\n stage1Deadline: dateTimeUtils.timeSpan(0, constants.bestFootForward.stage1DeadlineDefaultMinutes),\r\n }\r\n }))\r\n };\r\n}\r\n\r\nfunction selectTemplate(index) {\r\n return (dispatch, getState) => {\r\n const { isValid } = getState().process;\r\n\r\n dispatch({\r\n type: actionTypes.SELECT_TEMPLATE,\r\n index\r\n });\r\n\r\n if (!isValid) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\n\r\nfunction reserveLevelsApplyEnabled(enabled) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RESERVE_LEVELS_APPLY_ENABLED, enabled });\r\n dispatch(updateTemplateDirty());\r\n };\r\n}\r\n\r\nfunction earlyTradesEnabled(enabled) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.EARLY_TRADES_ENABLED, enabled });\r\n dispatch(updateTemplateDirty());\r\n };\r\n}\r\n\r\nfunction rulesText(text) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RULES_TEXT, text });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction setStage1Deadline(value) {\r\n return (dispatch, getState) => {\r\n const {\r\n cutOffReminder,\r\n stage1Deadline\r\n } = getState().process.errors.templates;\r\n\r\n dispatch({ type: actionTypes.SET_STAGE1_DEADLINE, payload: { value } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (cutOffReminder || stage1Deadline) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\n\r\nfunction setImprovementRound(value) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.SET_IMPROVEMENT_ROUND, payload: { value } });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction setMinBidIncrement(value) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.SET_MIN_BID_INCREMENT, payload: { value } });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction setLevelSpecificationType(value) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.SET_LEVEL_SPECIFICATION_TYPE, payload: { value } });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction setOpenBiddingImproverCount(value) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.SET_OPEN_BIDDING_IMPROVER_COUNT, payload: { value } });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction resetStage1DeadlineError() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.stage1Deadline) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\nfunction resetImprovementRoundError() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.improvementRound) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\nfunction resetMinBidIncrementError() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.minBidIncrement) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\n\r\nfunction resetJumpBallStage2DurationMinutes() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.jumpBallStage2DurationMinutes) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\nfunction resetTopXStage1AutomaticMinutes() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.topXStage1AutomaticMinutes) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\nfunction resetTopXStage2DurationMinutes() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.topXStage2DurationMinutes) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\nfunction resetJumpBallStage1AutomaticMinutes() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.jumpBallStage1AutomaticMinutes) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\nfunction updateTemplateDirty() {\r\n return (dispatch, getState) => {\r\n const { all, current } = getState().process.templates;\r\n const original = all.find(t => t.id === current.id);\r\n const dirty = !isEqual(original, current)\r\n\r\n dispatch({\r\n type: actionTypes.SET_TEMPLATE_DIRTY_STATE,\r\n dirty\r\n })\r\n }\r\n}\r\n\r\nfunction titleChange(title) {\r\n return { type: actionTypes.TITLE_CHANGE, title };\r\n}\r\n\r\nfunction descriptionChange(description) {\r\n return { type: actionTypes.DESCRIPTION_CHANGE, description };\r\n}\r\n\r\nfunction resetChanges() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.RESET_CHANGES });\r\n dispatch(validate());\r\n }\r\n}\r\n\r\nfunction reset() {\r\n return { type: actionTypes.RESET };\r\n}\r\n\r\nfunction jumpBallStage1EndManual() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.JUMP_BALL_STAGE_1_END_MANUAL });\r\n dispatch({ type: actionTypes.RESET_CUT_OFF_REMINDER_MINS });\r\n dispatch(updateTemplateDirty());\r\n dispatch(validate());\r\n }\r\n}\r\n\r\nfunction autoFeedbackDelayChange(minutes) {\r\n return (dispatch, getState) => {\r\n const { autoFeedbackDelay } = getState().process.errors.templates;\r\n\r\n dispatch({ type: actionTypes.AUTO_FEEDBACK_DELAY_MINS, payload: { minutes } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (autoFeedbackDelay) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\n\r\nfunction minBidIncrementChange(value) {\r\n return (dispatch, getState) => {\r\n const { minBidIncrement } = getState().process.errors.templates;\r\n\r\n dispatch({ type: actionTypes.MIN_BID_INCREMENT_CHANGED, payload: { value } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (minBidIncrement) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\n\r\nfunction autoFeedbackDelayEnabled() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.AUTO_FEEDBACK_DELAY_ENABLED });\r\n dispatch(updateTemplateDirty());\r\n }\r\n\r\n}\r\n\r\nfunction autoFeedbackDelayDisabled() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.AUTO_FEEDBACK_DELAY_DISABLED });\r\n dispatch(resetAutoFeedbackDelay());\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction minBidIncrementEnabled() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.MIN_BID_INCREMENT_ENABLED });\r\n dispatch(updateTemplateDirty());\r\n }\r\n\r\n}\r\n\r\nfunction minBidIncrementDisabled() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.MIN_BID_INCREMENT_DISABLED });\r\n dispatch(resetMinimumBidIncrement());\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction cutOffReminderChange(minutes) {\r\n return (dispatch, getState) => {\r\n const {\r\n cutOffReminder,\r\n jumpBallStage1AutomaticMinutes,\r\n topXStage1AutomaticMinutes,\r\n bestFootForwardDurationMinutes\r\n } = getState().process.errors.templates;\r\n\r\n dispatch({ type: actionTypes.CUT_OFF_REMINDER_MINS, payload: { minutes } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (cutOffReminder ||\r\n jumpBallStage1AutomaticMinutes ||\r\n topXStage1AutomaticMinutes ||\r\n bestFootForwardDurationMinutes) {\r\n dispatch(validate());\r\n }\r\n };\r\n}\r\n\r\nfunction jumpBallStage1EndAuto() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.JUMP_BALL_STAGE_1_END_AUTO });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\n\r\nfunction jumpBallStage1EndAutomaticMinutesChange(minutes) {\r\n return (dispatch, getState) => {\r\n const { jumpBallStage1AutomaticMinutes, cutOffReminder, jumpBallStage2DurationMinutes } = getState().process.errors.templates;\r\n dispatch({ type: actionTypes.JUMP_BALL_STAGE_1_END_AUTO_MINS, payload: { minutes } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (jumpBallStage1AutomaticMinutes || cutOffReminder || jumpBallStage2DurationMinutes) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\n\r\nfunction jumpBallStage2ParticipantsChange(participants) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.JUMP_BALL_STAGE_2_PARTICIPANTS_CHANGE, payload: { participants } });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction jumpBallStage2DurationUnspecified() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.JUMP_BALL_STAGE_2_DURATION_UNSPECIFIED });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction jumpBallStage2DurationPreset() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.JUMP_BALL_STAGE_2_DURATION_PRESET });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction jumpBallStage2DurationMinutesChange(minutes) {\r\n return (dispatch, getState) => {\r\n const { jumpBallStage2DurationMinutes, jumpBallStage1AutomaticMinutes } = getState().process.errors.templates;\r\n\r\n dispatch({ type: actionTypes.JUMP_BALL_STAGE_2_DURATION_MINS, payload: { minutes } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (jumpBallStage2DurationMinutes || jumpBallStage1AutomaticMinutes) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\n\r\nfunction resetAutoFeedbackDelay() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.autoFeedbackDelay) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\nfunction resetMinimumBidIncrement() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.minBidIncrement) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\n\r\nfunction topXStage1EndManual() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.TOP_X_STAGE_1_END_MANUAL });\r\n dispatch({ type: actionTypes.RESET_CUT_OFF_REMINDER_MINS });\r\n dispatch(updateTemplateDirty());\r\n dispatch(validate());\r\n }\r\n}\r\n\r\nfunction topXStage1EndAuto() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.TOP_X_STAGE_1_END_AUTO });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction topXStage1EndAutomaticMinutesChange(minutes) {\r\n return (dispatch, getState) => {\r\n const { topXStage1AutomaticMinutes, cutOffReminder, topXStage2DurationMinutes } = getState().process.errors.templates;\r\n dispatch({ type: actionTypes.TOP_X_STAGE_1_END_AUTO_MINS, payload: { minutes } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (topXStage1AutomaticMinutes || cutOffReminder || topXStage2DurationMinutes) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\n\r\nfunction topXStage2ParticipantsChange(participants) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.TOP_X_STAGE_2_PARTICIPANTS_CHANGE, payload: { participants } });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction topXStage2DurationUnspecified() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.TOP_X_STAGE_2_DURATION_UNSPECIFIED });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction topXStage2DurationPreset() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.TOP_X_STAGE_2_DURATION_PRESET });\r\n dispatch(updateTemplateDirty());\r\n }\r\n}\r\n\r\nfunction topXStage2DurationMinutesChange(minutes) {\r\n return (dispatch, getState) => {\r\n const { topXStage2DurationMinutes, topXStage1AutomaticMinutes } = getState().process.errors.templates;\r\n\r\n dispatch({ type: actionTypes.TOP_X_STAGE_2_DURATION_MINS, payload: { minutes } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (topXStage2DurationMinutes || topXStage1AutomaticMinutes) {\r\n dispatch(validate());\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\nfunction bestFootForwardDurationMinutesChange(minutes) {\r\n return (dispatch, getState) => {\r\n const { cutOffReminder, bestFootForwardDurationMinutes } = getState().process.errors.templates;\r\n\r\n dispatch({ type: actionTypes.BEST_FOOT_FORWARD_DURATION_MINS, payload: { minutes } });\r\n dispatch(updateTemplateDirty());\r\n\r\n if (cutOffReminder || bestFootForwardDurationMinutes) {\r\n dispatch(validate());\r\n }\r\n }\r\n\r\n\r\n}\r\nfunction resetBestFootForwardDurationMinutes() {\r\n return (dispatch, getState) => {\r\n const { errors = {} } = getState().process;\r\n if (errors.templates.bestFootForwardDurationMinutes) {\r\n dispatch(validate());\r\n }\r\n\r\n };\r\n}\r\n\r\nfunction setAllToAllProtocol(isAllToAll) {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.SET_ALL_TO_ALL_PROTOCOL, payload: isAllToAll });\r\n }\r\n}\r\n\r\n","import { profileActions as actionTypes } from '../constants';\r\nimport { accountActions, errorActions } from '.';\r\nimport { accountService } from '../services';\r\nimport { userProfilePhotoActions } from './user-profile-photo.actions';\r\nimport { user } from '../user';\r\nimport { sellerAdminUsersActions } from './seller-admin-users.actions';\r\nimport { sellerAdminDealerActions } from './seller-admin-dealers.actions';\r\nimport { sellerAdminLimitActions } from './seller-admin-limit.actions';\r\nimport { RequestState } from '../constants/request-state';\r\n\r\nexport const profileActions = {\r\n init,\r\n toggleEditPhoneMode,\r\n toggleEditBloombergEmail,\r\n savePhoneNumber,\r\n savePhoneNumberFailure,\r\n changeContactPopupVisible,\r\n changePasswordFormVisible,\r\n personalInfoReset,\r\n passwordSettingsReset,\r\n reset,\r\n addNewCompanyTraderToStore,\r\n editNewCompanyTraderInStore,\r\n editCompanyContact,\r\n enableCompanyTrader,\r\n disableCompanyTrader,\r\n setVisibleUploadImagePopup,\r\n uploadUserImage,\r\n deleteUserImage,\r\n saveBloombergEmail,\r\n changeBwicAnnouncementNotifications\r\n};\r\n\r\nfunction init() {\r\n return async dispatch => {\r\n dispatch({ type: actionTypes.PROFILE_INIT, requestState: RequestState.request });\r\n try {\r\n const profilePromise = accountService.getProfile();\r\n const companyPromise = accountService.getProfileCompany();\r\n const profile = await profilePromise;\r\n const company = await companyPromise;\r\n dispatch({ type: actionTypes.GET_PROFILE_SUCCESS, profile });\r\n dispatch({ type: actionTypes.GET_PROFILE_COMPANY_SUCCESS, payload: { company } });\r\n dispatch({ type: actionTypes.PROFILE_INIT, requestState: RequestState.success });\r\n\r\n } catch (e) {\r\n dispatch({ type: actionTypes.PROFILE_INIT, requestState: RequestState.failure });\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n}\r\n\r\nfunction toggleEditPhoneMode(changePhoneVisible) {\r\n return {\r\n type: actionTypes.CHANGE_PHONE_VISIBLE,\r\n changePhoneVisible\r\n };\r\n}\r\n\r\nfunction toggleEditBloombergEmail() {\r\n return { type: actionTypes.TOGGLE_VISIBILITY_FORM_BLOOMBERG_EMAIL }\r\n}\r\n\r\nfunction saveBloombergEmail(bloombergEmail) {\r\n return async dispatch => {\r\n try {\r\n dispatch(setRequestStatusSaveBloombergEmail(true));\r\n await accountService.saveBloombergEmail(bloombergEmail);\r\n user.setBloombergEmail(bloombergEmail);\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n } finally {\r\n dispatch(setRequestStatusSaveBloombergEmail(false));\r\n }\r\n }\r\n}\r\n\r\nfunction setRequestStatusSaveBloombergEmail(status) {\r\n return { type: actionTypes.IS_REQUEST_SAVE_BLOOMBERG_EMAIL, payload: { status } }\r\n}\r\n\r\nfunction savePhoneNumber(phone) {\r\n return (dispatch, getState) => {\r\n const profile = getState().profile.profile;\r\n profile.phone = phone;\r\n\r\n dispatch({\r\n type: actionTypes.SAVE_PHONE_NUMBER,\r\n profile: {\r\n ...profile\r\n }\r\n });\r\n };\r\n}\r\n\r\nfunction savePhoneNumberFailure(errorMessage) {\r\n return {\r\n type: actionTypes.CHANGE_PHONE_NUMBER_FAILURE,\r\n error: { errorMessage: errorMessage }\r\n };\r\n}\r\n\r\nfunction changeContactPopupVisible(changeContactPopupVisible, contactId) {\r\n return {\r\n type: actionTypes.CHANGE_CONTACT_POPUP_VISIBLE,\r\n contact: {\r\n changeContactPopupVisible,\r\n contactId\r\n }\r\n };\r\n}\r\n\r\nfunction changePasswordFormVisible(changePasswordVisible) {\r\n return {\r\n type: actionTypes.CHANGE_PASSWORD_FORM_VISIBLE,\r\n changePasswordVisible\r\n };\r\n}\r\n\r\nfunction personalInfoReset() {\r\n return dispatch => {\r\n dispatch(toggleEditPhoneMode(false));\r\n };\r\n}\r\n\r\nfunction passwordSettingsReset() {\r\n return dispatch => {\r\n dispatch(accountActions.changePasswordReset());\r\n dispatch(changePasswordFormVisible(false));\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch({ type: actionTypes.ACCOUNT_SETTINGS_RESET });\r\n dispatch(sellerAdminUsersActions.reset());\r\n dispatch(sellerAdminDealerActions.reset());\r\n dispatch(sellerAdminLimitActions.reset());\r\n };\r\n}\r\n\r\nfunction addNewCompanyTraderToStore(trader) {\r\n return (dispatch, getState) => {\r\n const profile = getState().profile;\r\n if (profile.company && profile.company.traders) {\r\n const company = { ...profile.company };\r\n company.traders.push(trader);\r\n dispatch({ type: actionTypes.PROFILE_COMPANY_ADD_NEW_TRADER, payload: { company } })\r\n }\r\n }\r\n}\r\n\r\nfunction editNewCompanyTraderInStore(trader, traderId) {\r\n return (dispatch, getState) => {\r\n const profile = getState().profile;\r\n if (profile.company && profile.company.traders) {\r\n const company = { ...profile.company };\r\n company.traders = company.traders.map((item) => {\r\n if (item.id === traderId) {\r\n return { ...trader }\r\n }\r\n return item\r\n });\r\n dispatch({ type: actionTypes.PROFILE_COMPANY_EDIT_TRADER, payload: { company } })\r\n }\r\n }\r\n}\r\n\r\nfunction editCompanyContact(submitModel, departmentValue) {\r\n return (dispatch) => {\r\n accountService.editCompanyContact(submitModel, departmentValue)\r\n .then(() => {\r\n dispatch({ type: actionTypes.PROFILE_COMPANY_CONTACT_CHANGED, payload: { submitModel, departmentValue } });\r\n })\r\n .catch((e) => {\r\n dispatch(errorActions.unexpectedError(e));\r\n });\r\n };\r\n}\r\n\r\nfunction enableCompanyTrader(contact) {\r\n return async (dispatch) => {\r\n dispatch({ type: actionTypes.ENABLE_COMPANY_TRADER_REQUEST });\r\n try {\r\n const { id, status } = await accountService.enableCompanyTrader(contact.id);\r\n\r\n dispatch({ type: actionTypes.ENABLE_COMPANY_TRADER_SUCCESS });\r\n dispatch(editNewCompanyTraderInStore({ ...contact, status }, id));\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n dispatch({ type: actionTypes.ENABLE_COMPANY_TRADER_FAIL });\r\n }\r\n };\r\n}\r\n\r\nfunction disableCompanyTrader(contact) {\r\n return async (dispatch) => {\r\n dispatch({ type: actionTypes.DISABLE_COMPANY_TRADER_REQUEST });\r\n try {\r\n const { id, status } = await accountService.disableCompanyTrader(contact.id);\r\n\r\n dispatch({ type: actionTypes.DISABLE_COMPANY_TRADER_SUCCESS });\r\n dispatch(editNewCompanyTraderInStore({ ...contact, status }, id));\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n dispatch({ type: actionTypes.DISABLE_COMPANY_TRADER_FAIL });\r\n }\r\n };\r\n}\r\n\r\nfunction setVisibleUploadImagePopup(visible) {\r\n return {\r\n type: actionTypes.PROFILE_SET_VISIBLE_UPLOAD_USER_IMAGE_POPUP,\r\n payload: { visible }\r\n };\r\n}\r\n\r\nfunction requestStateUploadUserImage(requestState) {\r\n return {\r\n type: actionTypes.PROFILE_SET_REQUEST_STATE_UPLOAD_USER_IMAGE,\r\n payload: { requestState }\r\n };\r\n}\r\n\r\nfunction requestStateDeleteUserImage(requestState) {\r\n return {\r\n type: actionTypes.PROFILE_SET_REQUEST_STATE_DELETE_USER_IMAGE,\r\n payload: { requestState }\r\n }\r\n}\r\n\r\nfunction uploadUserImage(file) {\r\n return dispatch => {\r\n dispatch(requestStateUploadUserImage(true));\r\n accountService.uploadUserImage(file)\r\n .then(() => {\r\n const currentUser = user.current();\r\n dispatch(userProfilePhotoActions.fetchUserImage(currentUser.id));\r\n dispatch(setVisibleUploadImagePopup(false));\r\n })\r\n .catch(e => dispatch(errorActions.unexpectedError(e)))\r\n .finally(() => dispatch(requestStateUploadUserImage(false)));\r\n };\r\n}\r\n\r\nfunction deleteUserImage() {\r\n return dispatch => {\r\n dispatch(requestStateDeleteUserImage(true));\r\n accountService.deleteUserImage()\r\n .then(() => {\r\n const currentUser = user.current();\r\n dispatch(userProfilePhotoActions.fetchUserImage(currentUser.id));\r\n dispatch(setVisibleUploadImagePopup(false));\r\n })\r\n .catch(e => dispatch(errorActions.unexpectedError(e)))\r\n .finally(() => dispatch(requestStateDeleteUserImage(false)))\r\n };\r\n}\r\n\r\nfunction changeBwicAnnouncementNotifications(bwicAnnouncementNotifications) {\r\n return dispatch => {\r\n dispatch(sellerAdminUsersActions.changeBwicAnnouncementNotificationsRequest(RequestState.request));\r\n accountService.saveBwicAnnouncementNotifications(bwicAnnouncementNotifications)\r\n .then((bwicAnnouncementNotifications) => {\r\n dispatch(sellerAdminUsersActions.changeBwicAnnouncementNotificationsRequest(RequestState.success));\r\n dispatch(sellerAdminUsersActions.changeBwicAnnouncementNotifications({\r\n bwicCreateNotifyAdmins: bwicAnnouncementNotifications.bwicCreateNotifyAdmins,\r\n bwicCreateNotifyViewers: bwicAnnouncementNotifications.bwicCreateNotifyViewers\r\n }));\r\n })\r\n .catch(e => {\r\n dispatch(errorActions.unexpectedError(e));\r\n dispatch(sellerAdminUsersActions.changeBwicAnnouncementNotificationsRequest(RequestState.failure));\r\n })\r\n }\r\n}","import { AnyAction } from 'redux';\r\nimport { ThunkDispatch } from 'redux-thunk';\r\nimport { createCustomAction } from 'typesafe-actions';\r\nimport { biddingActions, notificationActions, sellerBiddingActions, tradeConfirmActions } from '.';\r\nimport { pushDataActions as actionTypes, roles } from '../constants';\r\nimport { logger } from '../logging/logger';\r\nimport { getSecuritiesWithLatestBids } from '../selectors';\r\nimport { BidRequest as BidAsDealerRequest } from '../types/bid-as-dealer/BidRequest';\r\nimport { SellerBuysideSearchResult } from '../types/bid-as-dealer/SellerBuysideSearchResult';\r\nimport { Bid } from '../types/bidding/Bid';\r\nimport { BidRequest, BidRequestType } from '../types/bidding/BidRequest';\r\nimport { Feedback } from '../types/bidding/Feedback';\r\nimport { BwicHistoryAction } from '../types/bwic-history/BwicHistoryAction';\r\nimport { Color } from '../types/bwic/Color';\r\nimport { PxTalk } from '../types/bwic/PxTalk';\r\nimport { BwicStatus } from '../types/enums/BwicStatus';\r\nimport { AutoFeedbackSettings } from '../types/models/AutoFeedbackSettings';\r\nimport { AppState } from '../types/state/AppState';\r\nimport { PushHistoryStateItemType } from '../types/state/PushHistoryState';\r\nimport { Trade } from '../types/trades/Trade';\r\nimport { user } from '../user';\r\nimport { biddingUtils, formatUtils, moneyUtils } from '../utils';\r\nimport { pushHistoryActions } from './entities/push-history.actions';\r\nimport { rejectedTradeActions } from './entities/rejected-trades.actions';\r\nimport { BwicHistoryActionType } from '../types/bwic-history/BwicHisoryActionType';\r\nimport { BidLevel } from '../types/bidding/BidLevel';\r\nimport { liveBiddingActions } from './entities/live-bidding.actions';\r\nimport { CanBidOnPosition } from '../types/live-bidding/LiveBiddingPosition';\r\nimport { CompanySlim } from '../types/company/CompanySlim';\r\n\r\ntype TDispatch = ThunkDispatch;\r\n\r\ninterface PushData {\r\n bwicReferenceName: string;\r\n action: BwicHistoryAction;\r\n}\r\nexport function dataPushReceived(data: any) {\r\n return (dispatch: TDispatch) => {\r\n switch (data.action.actionType) {\r\n case BwicHistoryActionType.NewBid:\r\n case BwicHistoryActionType.DirectBid:\r\n dispatch(handleNewBid(data));\r\n break;\r\n case BwicHistoryActionType.AxedFinalChanged:\r\n dispatch(handleAxedFinalChange(data));\r\n break;\r\n case BwicHistoryActionType.PriceTalk:\r\n dispatch(newPriceTalk(data));\r\n break;\r\n case BwicHistoryActionType.QuickFeedback:\r\n case BwicHistoryActionType.DirectFeedback:\r\n dispatch(handleQuickFeedback(data));\r\n break;\r\n case BwicHistoryActionType.TargetLevel:\r\n dispatch(targetLevel(data));\r\n break;\r\n case BwicHistoryActionType.TradedAway:\r\n dispatch(handleTradedAway(data));\r\n break;\r\n case BwicHistoryActionType.TradeSubmitted:\r\n dispatch(trade(data));\r\n break;\r\n case BwicHistoryActionType.TradeAffirmed:\r\n dispatch(tradeStatus(data));\r\n break;\r\n case BwicHistoryActionType.TradeRejected:\r\n dispatch(tradeStatus(data));\r\n break;\r\n case BwicHistoryActionType.ColorDistribution:\r\n dispatch(handleColorDistribution(data));\r\n break;\r\n case BwicHistoryActionType.ColorDistributionSend:\r\n dispatch(handleColorDistributionSend(data));\r\n break;\r\n case BwicHistoryActionType.Bidding:\r\n dispatch(handleBwicStatusChanged(data, BwicStatus.bidding));\r\n break;\r\n case BwicHistoryActionType.Finished:\r\n dispatch(handleBwicStatusChanged(data, BwicStatus.finished));\r\n break;\r\n case BwicHistoryActionType.Canceled:\r\n dispatch(handleBwicStatusChanged(data, BwicStatus.canceled));\r\n break;\r\n // TO DO: nothing is happen ON FE when stage 1 is started\r\n //case BwicHistoryActionType.OpenBiddingStage1Started:\r\n // dispatch(stagedBiddingStatusChange(data));\r\n // break;\r\n case BwicHistoryActionType.OpenBiddingStage1Ended:\r\n dispatch(handleStagedBiddingStartStage2(data));\r\n break;\r\n case BwicHistoryActionType.OpenBiddingStage2Ended:\r\n dispatch(handleStagedBiddingFinishStage2(data));\r\n break;\r\n case BwicHistoryActionType.OpenBiddingStage2Level:\r\n dispatch(handleLiveBiddingStage2Level(data));\r\n break;\r\n case BwicHistoryActionType.ModifyAutoFeedbackConfig:\r\n dispatch(handleAutoFeedbackSettingsChanged(data));\r\n break;\r\n case BwicHistoryActionType.BidAsDealerRequest:\r\n dispatch(handleBidAsDealerRequest(data));\r\n break;\r\n case BwicHistoryActionType.BuyerRejectedTrade:\r\n dispatch(rejectedTradeActions.pushBuyerRejectTrade(data.trade))\r\n break;\r\n case BwicHistoryActionType.BiddingCompleteReminder:\r\n dispatch(handleBwicCompleteReminder(data));\r\n break;\r\n default:\r\n return null;\r\n };\r\n };\r\n}\r\n\r\nconst newBid = createCustomAction('push/bwic/NEW_BID', type =>\r\n (bwicReferenceName: string, positionId: number, historyAction: BwicHistoryAction, bid: Bid) =>\r\n ({ type, bwicReferenceName, positionId, historyAction, bid })\r\n);\r\ntype TNewBidPushData = { bwicReferenceName: string; action: BwicHistoryAction; bid: Bid, bwicName: string; };\r\n\r\nfunction handleNewBid({ bwicReferenceName, action, bid, bwicName }: TNewBidPushData) {\r\n logger.trace(`Push: New Bid: ${bid.value}`);\r\n\r\n return (dispatch: TDispatch, getState: () => AppState) => {\r\n dispatch(newBid(bwicReferenceName, action.positionId!, action, bid));\r\n dispatch(pushHistoryActions.add(\r\n { receivedDate: new Date(), positionId: action.positionId, bwicReferenceName },\r\n PushHistoryStateItemType.NewBid\r\n ))\r\n if (user.hasRoles(roles.SellerTrader) && action.positionId != null) {\r\n const { securities, tradingPositions } = getState().sellerBidding;\r\n const isPositionTrading = !!(tradingPositions && Object.keys(tradingPositions).length && tradingPositions[action.positionId]);\r\n\r\n if (isPositionTrading) {\r\n const position = securities.find(p => p.id === action.positionId);\r\n if (position) {\r\n const [positionWithActualBids] = getSecuritiesWithLatestBids({ securities: [position] });\r\n const [best] = biddingUtils.getBidsByLevel(positionWithActualBids.bids, BidLevel.Best);\r\n if (best && +best.value <= +bid.value) {\r\n dispatch(sellerBiddingActions.tradingPositionCompanyChange(action.positionId, biddingUtils.getBidCompanyIdentifier(bid)));\r\n dispatch(sellerBiddingActions.tradeConfirm(false));\r\n dispatch(notificationActions.warningModal(\r\n 'New Bid Notification',\r\n `
The Best level changed. Please review bids and re-submit the trade.
New bid from ${bid.company.name}.\r\n ${bwicName}\r\n ${position.ticker} ${moneyUtils.amountToMM(position.size, true)} @${formatUtils.formatBid(bid.value)}`\r\n ));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n\r\nconst axedFinalChange = createCustomAction('push/bwic/AXED_FINAL_CHANGE', type => (\r\n bwicReferenceName: string,\r\n positionId: number,\r\n historyAction: BwicHistoryAction,\r\n modifiedDate: Date,\r\n bidId: number,\r\n axed: boolean,\r\n final: boolean,\r\n createdBy: string,\r\n company: CompanySlim) => ({\r\n type,\r\n bwicReferenceName,\r\n positionId,\r\n historyAction,\r\n modifiedDate,\r\n bidId,\r\n axed,\r\n final,\r\n createdBy,\r\n company\r\n }));\r\ninterface TAxedFinalChangePushData extends PushData {\r\n modifiedDate: Date;\r\n bidId: number;\r\n axed: boolean;\r\n final: boolean;\r\n createdBy: string;\r\n company: CompanySlim;\r\n}\r\nfunction handleAxedFinalChange({ bwicReferenceName, action, bidId, axed, final, modifiedDate, createdBy, company }: TAxedFinalChangePushData) {\r\n logger.trace(`Push: Axed Final Change for Bid ${bidId} axed=${axed} final=${final}`);\r\n return axedFinalChange(bwicReferenceName, action.positionId!, action, modifiedDate, bidId, axed, final, createdBy, company);\r\n}\r\n\r\ninterface PriceTalkPushData extends PushData {\r\n priceTalk: PxTalk;\r\n}\r\nfunction newPriceTalk({ bwicReferenceName, action, priceTalk }: PriceTalkPushData) {\r\n logger.trace(`Push: New Price Talk: ${priceTalk.talk}`);\r\n\r\n return {\r\n type: actionTypes.PUSH_DATA_NEW_PX_TALK,\r\n bwicReferenceName,\r\n positionId: action.positionId,\r\n priceTalk,\r\n historyAction: action\r\n }\r\n}\r\n\r\nconst quickFeedback = createCustomAction('push/bwic/QUICK_FEEDBACK', type =>\r\n (bwicReferenceName: string, feedback: Feedback, historyAction: BwicHistoryAction, positionId?: number) =>\r\n ({ type, bwicReferenceName, feedback, historyAction, positionId })\r\n);\r\nconst bidRequest = createCustomAction('push/bwic/BID_REQUEST_FEEDBACK', type =>\r\n (bwicReferenceName: string, bidRequest: BidRequest, historyAction: BwicHistoryAction, positionId?: number) =>\r\n ({ type, bwicReferenceName, bidRequest, historyAction, positionId })\r\n);\r\ninterface QuickFeedbackPushData extends PushData {\r\n feedback: Feedback;\r\n}\r\nfunction handleQuickFeedback({ bwicReferenceName, action, feedback }: QuickFeedbackPushData) {\r\n logger.trace(`Push: Quick Feedback: ${feedback.feedback}`);\r\n return (dispatch: TDispatch) => {\r\n dispatch(pushHistoryActions.add(\r\n { receivedDate: new Date(), positionId: action.positionId, bwicReferenceName },\r\n PushHistoryStateItemType.Feedback\r\n ))\r\n\r\n if (feedback.bidId) {\r\n return dispatch(quickFeedback(bwicReferenceName, feedback, action, action.positionId));\r\n }\r\n\r\n const request: BidRequest = {\r\n bidRequestType: BidRequestType.BidOrPass,\r\n created: new Date()\r\n }\r\n\r\n dispatch(bidRequest(bwicReferenceName, request, action, action.positionId));\r\n }\r\n}\r\ninterface TradeLevelPushData extends PushData {\r\n targetLevel?: number;\r\n}\r\n\r\nfunction targetLevel({ bwicReferenceName, action, targetLevel }: TradeLevelPushData) {\r\n logger.trace(`Push: Target Level: ${targetLevel}`);\r\n\r\n return {\r\n type: actionTypes.PUSH_DATA_TARGET_LEVEL,\r\n bwicReferenceName,\r\n positionId: action.positionId,\r\n targetLevel\r\n };\r\n}\r\n\r\nconst tradedAway = createCustomAction('push/bwic/TRADED_AWAY', type =>\r\n (bwicReferenceName: string, positionId: number, historyAction: BwicHistoryAction, isTradedAway: boolean) =>\r\n ({ type, bwicReferenceName, positionId, historyAction, isTradedAway })\r\n);\r\ninterface TradedAwayPushData extends PushData {\r\n isTradedAway: boolean;\r\n}\r\nfunction handleTradedAway({ bwicReferenceName, action, isTradedAway }: TradedAwayPushData) {\r\n logger.trace(`Push: Traded away ${bwicReferenceName}: ${isTradedAway}`);\r\n return tradedAway(bwicReferenceName, action.positionId!, action, isTradedAway);\r\n}\r\n\r\ninterface TradePushData extends PushData {\r\n trade: Trade;\r\n}\r\nfunction trade({ bwicReferenceName, action, trade }: TradePushData) {\r\n logger.trace('Push: Trade');\r\n return (dispatch: TDispatch) => {\r\n dispatch(tradeAction(bwicReferenceName, action.positionId!, action, trade));\r\n dispatch(checkAwaitingTrades());\r\n };\r\n}\r\n\r\nfunction checkAwaitingTrades() {\r\n return (dispatch: TDispatch) => {\r\n if (user.hasRoles(roles.BrokerDealerTrader, roles.SellerTrader)) {\r\n dispatch(tradeConfirmActions.checkAwaitingTrades());\r\n }\r\n };\r\n}\r\n\r\ninterface TradeStatusPushData extends PushData {\r\n trade: Trade;\r\n}\r\nfunction tradeStatus({ bwicReferenceName, action, trade }: TradeStatusPushData) {\r\n logger.trace(`Push: Trade Status: ${trade.status}`);\r\n\r\n return (dispatch: TDispatch) => {\r\n dispatch(tradeAction(bwicReferenceName, action.positionId!, action, trade));\r\n\r\n if (user.hasRoles(roles.BrokerDealerTrader, roles.SellerTrader)) {\r\n dispatch(tradeConfirmActions.setAwaitingBwicTradeStatus(\r\n [action.positionId],\r\n trade.status,\r\n trade.rejectReason\r\n ));\r\n }\r\n };\r\n}\r\n\r\nconst tradeAction = createCustomAction('push/bwic/TRADE', type =>\r\n (bwicReferenceName: string, positionId: number, historyAction: BwicHistoryAction, trade: Trade) =>\r\n ({ type, bwicReferenceName, historyAction, trade, positionId })\r\n);\r\n\r\nconst colorDistribution = createCustomAction('push/bwic/COLOR_DISTRIBUTION', type =>\r\n (bwicReferenceName: string, historyAction: BwicHistoryAction, isColorDistribution: boolean) =>\r\n ({ type, bwicReferenceName, isColorDistribution, historyAction })\r\n);\r\ninterface ColorDistributionPushData extends PushData {\r\n isColorDistribution: boolean;\r\n}\r\nfunction handleColorDistribution({ bwicReferenceName, action, isColorDistribution }: ColorDistributionPushData) {\r\n logger.trace(`Push: Color Distribution ${bwicReferenceName}: ${isColorDistribution}`);\r\n return colorDistribution(bwicReferenceName, action, isColorDistribution);\r\n}\r\n\r\nexport type TPositionColor = { positionId: number; color: Color };\r\n\r\ninterface ColorDistributionSendPushData extends PushData {\r\n colors: TPositionColor[]\r\n}\r\n\r\nconst publicColors = createCustomAction('push/bwic/PUBLIC_COLORS', type =>\r\n (bwicReferenceName: string, historyAction: BwicHistoryAction, colors: TPositionColor[]) =>\r\n ({ type, bwicReferenceName, colors, historyAction })\r\n);\r\n\r\nfunction handleColorDistributionSend({ bwicReferenceName, action, colors }: ColorDistributionSendPushData) {\r\n logger.trace('Push: Colors Sent');\r\n return publicColors(bwicReferenceName, action, colors);\r\n}\r\n\r\nconst bwicStatusChanged = createCustomAction('push/bwic/BWIC_STATUS_CHANGE', type =>\r\n (bwicReferenceName: string, historyAction: BwicHistoryAction, bwicStatus: BwicStatus) =>\r\n ({ type, bwicReferenceName, historyAction, bwicStatus })\r\n);\r\n\r\nfunction handleBwicStatusChanged({ bwicReferenceName, action }: PushData, bwicStatus: BwicStatus) {\r\n logger.trace(`Push: BWIC Status Changed: ${bwicStatus}`);\r\n\r\n return (dispatch: TDispatch) => {\r\n dispatch(liveBiddingActions.reset(bwicReferenceName));\r\n dispatch(bwicStatusChanged(bwicReferenceName, action, bwicStatus));\r\n dispatch(pushHistoryActions.add(\r\n { receivedDate: new Date(), bwicReferenceName },\r\n PushHistoryStateItemType.BwicStatusChanged\r\n ));\r\n dispatch(biddingActions.bwicStatusChange(bwicReferenceName, bwicStatus));\r\n if (bwicStatus === BwicStatus.finished) {\r\n dispatch(checkAwaitingTrades());\r\n }\r\n };\r\n}\r\n\r\ninterface StartStage2PushData extends PushData {\r\n bwicName: string;\r\n stage1EndDateUtc?: Date;\r\n canDealerBidOnPositions?: CanBidOnPosition[];\r\n}\r\n\r\nconst stagedBiddingStartStage2 = createCustomAction('push/bwic/STAGED_BIDDING_START_STAGE2', type => (\r\n bwicReferenceName: string,\r\n historyAction: BwicHistoryAction,\r\n canDealerBidOnPositions?: CanBidOnPosition[],\r\n stage1EndDateUtc?: Date) =>\r\n ({ type, bwicReferenceName, historyAction, canDealerBidOnPositions, stage1EndDateUtc })\r\n);\r\nfunction handleStagedBiddingStartStage2({ bwicReferenceName, stage1EndDateUtc, canDealerBidOnPositions, action }: StartStage2PushData) {\r\n logger.trace('Push: Open Bidding Start Stage 2');\r\n return (dispatch: TDispatch) => {\r\n dispatch(liveBiddingActions.stage2Start(bwicReferenceName, canDealerBidOnPositions, stage1EndDateUtc));\r\n dispatch(stagedBiddingStartStage2(bwicReferenceName, action, canDealerBidOnPositions, stage1EndDateUtc));\r\n dispatch(pushHistoryActions.add(\r\n { receivedDate: new Date(), positionId: action.positionId, bwicReferenceName },\r\n PushHistoryStateItemType.BwicStage1Ended\r\n ));\r\n };\r\n}\r\n\r\nconst stagedBiddingFinishStage2 = createCustomAction('push/bwic/STAGED_BIDDING_FINISH_STAGE2', type =>\r\n (bwicReferenceName: string, historyAction: BwicHistoryAction) =>\r\n ({ type, bwicReferenceName, historyAction })\r\n);\r\n\r\nfunction handleStagedBiddingFinishStage2({ bwicReferenceName, action }: PushData) {\r\n logger.trace(`Push: Finish Stage 2 ${bwicReferenceName}`);\r\n return (dispatch: TDispatch) => {\r\n dispatch(liveBiddingActions.reset(bwicReferenceName));\r\n dispatch(stagedBiddingFinishStage2(bwicReferenceName, action));\r\n dispatch(pushHistoryActions.add(\r\n { receivedDate: new Date(), positionId: action.positionId, bwicReferenceName },\r\n PushHistoryStateItemType.BwicStage2Ended\r\n ));\r\n };\r\n}\r\n\r\ninterface LiveBiddingStage2LevelPushData extends PushData {\r\n level: number;\r\n tiedForBest: boolean;\r\n}\r\n\r\nconst liveBiddingStage2Level = createCustomAction('push/bwic/LIVE_BIDDING_STAGE2_LEVEL', type =>\r\n (bwicReferenceName: string, positionId: number, level: number, tiedForBest: boolean, sentDateUtc: Date) =>\r\n ({ type, bwicReferenceName, positionId, level, tiedForBest, sentDateUtc })\r\n);\r\n\r\nfunction handleLiveBiddingStage2Level({ bwicReferenceName, level, tiedForBest, action }: LiveBiddingStage2LevelPushData) {\r\n logger.trace(`Push: Open Bidding Feedback: ${level}`);\r\n\r\n return (dispatch: TDispatch) => {\r\n dispatch(liveBiddingActions.stage2LevelChange(bwicReferenceName, action.positionId!, level, tiedForBest, action.sentDateUtc));\r\n dispatch(liveBiddingStage2Level(bwicReferenceName, action.positionId!, level, tiedForBest, action.sentDateUtc));\r\n }\r\n}\r\n\r\ninterface AutoFeedbackSettingsChangedPushData extends PushData {\r\n autoFeedbackConfiguration: AutoFeedbackSettings;\r\n}\r\nfunction handleAutoFeedbackSettingsChanged({ bwicReferenceName, autoFeedbackConfiguration }: AutoFeedbackSettingsChangedPushData) {\r\n logger.trace('Push: Auto-Feedback config update');\r\n\r\n return {\r\n type: actionTypes.PUSH_DATA_AUTO_FEEDBACK_CONFIG,\r\n bwicReferenceName,\r\n settings: autoFeedbackConfiguration\r\n };\r\n}\r\n\r\nconst bidAsDealerRequest = createCustomAction('push/bwic/BID_REQUEST',\r\n type => (bwicReferenceName: string, bidAsDealerRequest: BidAsDealerRequest | SellerBuysideSearchResult) =>\r\n ({ type, bwicReferenceName, bidAsDealerRequest })\r\n);\r\n\r\ninterface TBidAsDealerRequestPushData {\r\n bwicReferenceName: string;\r\n bidAsDealerRequest?: BidAsDealerRequest;\r\n sellerBidAsDealerRequest?: SellerBuysideSearchResult;\r\n}\r\n\r\nfunction handleBidAsDealerRequest(data: TBidAsDealerRequestPushData) {\r\n logger.trace(`Push: Bid as dealer request.`);\r\n return (dispatch: TDispatch) => {\r\n const bidRequest = data.bidAsDealerRequest ?? data.sellerBidAsDealerRequest;\r\n if (bidRequest != null) {\r\n dispatch(bidAsDealerRequest(data.bwicReferenceName, bidRequest));\r\n }\r\n }\r\n}\r\n\r\ninterface TBwicCompleteReminderData extends PushData {\r\n bwicName: string;\r\n}\r\nfunction handleBwicCompleteReminder({ bwicReferenceName, bwicName, action }: TBwicCompleteReminderData) {\r\n return pushHistoryActions.add(\r\n { receivedDate: new Date(), bwicReferenceName, payload: { bwicName, remainingMinutes: Number(action.payload) } },\r\n PushHistoryStateItemType.BiddingCompleteReminder\r\n );\r\n}\r\n\r\nexport const pushBwicActions = {\r\n newBid,\r\n axedFinalChange,\r\n bidAsDealerRequest,\r\n quickFeedback,\r\n bidRequest,\r\n publicColors,\r\n colorDistribution,\r\n bwicStatusChanged,\r\n tradeAction,\r\n tradedAway,\r\n stagedBiddingStartStage2,\r\n stagedBiddingFinishStage2,\r\n liveBiddingStage2Level\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { User } from '../types/account/User';\r\n\r\nconst user = createAction(\r\n 'PUSH_USER_ACTION_USER',\r\n resolve => (user: User) => resolve({ user })\r\n);\r\n\r\nexport const pushUserActions = {\r\n user\r\n};\r\n\r\n","import { createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { Releases } from '../types/marketing/Release';\r\n\r\nconst fetchReleases = createAction('release/FETCH_RELEASES');\r\nconst getReleaseRequest = createAction('release/GET_RELEASE_REQUEST');\r\nconst getReleaseResponse = createAction('release/GET_RELEASE_RESPONSE',\r\n resolve => (requestStatus: RequestState, releases?: Releases) => resolve({ requestStatus, releases })\r\n);\r\n\r\nconst markAsReadRequest = createAction('release/MARK_AS_READ_REQUEST');\r\nconst markAsReadResponse = createAction('release/MARK_AS_READ_RESPONSE');\r\n\r\nexport const releaseActions = {\r\n fetchReleases,\r\n getReleaseRequest,\r\n getReleaseResponse,\r\n markAsReadRequest,\r\n markAsReadResponse\r\n};\r\n","import { rulesActions as actionTypes } from '../constants';\r\nimport { controlPanelActions } from './control-panel.actions';\r\n\r\nexport const rulesActions = {\r\n show,\r\n hide\r\n}\r\n\r\nfunction show(positionId, separatePanel) {\r\n return dispatch => {\r\n dispatch(controlPanelActions.hide());\r\n dispatch({ type: actionTypes.RULES_SHOW, positionId, separatePanel });\r\n };\r\n}\r\n\r\nfunction hide() {\r\n return (dispatch, getState) => {\r\n if (getState().rules.show) {\r\n dispatch({ type: actionTypes.RULES_HIDE });\r\n }\r\n };\r\n}\r\n","import { createAction } from \"typesafe-actions\"\r\nimport { SalesRepresentative } from \"../types/sales-representative/SalesRepresentative\";\r\n\r\nconst loadUserSalesRepresentatives = createAction('salesRepresentatives/LOAD');\r\nconst storeSalesRepresentatives = createAction('salesRepresentatives/STORE',\r\n resolve => (salesRepresentatives: SalesRepresentative[]) => resolve({ salesRepresentatives})\r\n);\r\nconst reset = createAction('salesRepresentatives/RESET');\r\n\r\nexport const salesRepresentativeActions = {\r\n loadUserSalesRepresentatives,\r\n storeSalesRepresentatives,\r\n reset\r\n}\r\n","import { AppState } from \"../types/state/AppState\";\r\nimport {\r\n searchTransactionsActions as actionTypes,\r\n constants,\r\n} from \"../constants\";\r\nimport { errorActions } from \"./error.actions\";\r\nimport { Deal } from \"../types/amr-pipeline/models/Deal\";\r\nimport { SearchTermItem } from \"../components/amrPipeline/types/SearchTermItem\";\r\nimport { ThunkDispatch } from \"redux-thunk\";\r\nimport { AnyAction } from \"redux\";\r\nimport { PipelineType } from '../types/amr-pipeline/enums/PipelineType';\r\nimport { amrPipelineSelector } from '../selectors/amr-pipeline.selector';\r\nimport { dealsService } from \"../services/deals.service\";\r\n\r\ntype TDispatch = ThunkDispatch;\r\n\r\nlet loadSearchLookupTimeout: number | null = null;\r\n\r\nexport const createSearchTransactionActions = (pipelineType: PipelineType) => {\r\n function searchTermChange(searchTerm = '', showLookup = true) {\r\n return (dispatch: TDispatch) => {\r\n dispatch({\r\n type: actionTypes.SEARCH_TERM_CHANGE,\r\n pipelineType,\r\n searchTerm,\r\n });\r\n\r\n const trimmedSearchTerm = searchTerm.trim();\r\n\r\n if (showLookup && trimmedSearchTerm.length > constants.searchTermAcceptedLength) {\r\n dispatch(requestSearchLookup(trimmedSearchTerm));\r\n } else {\r\n dispatch(resetSearchLookup());\r\n }\r\n };\r\n }\r\n\r\n function requestSearchLookup(searchTerm: string) {\r\n return (dispatch: TDispatch) => {\r\n if (loadSearchLookupTimeout) {\r\n clearTimeout(loadSearchLookupTimeout);\r\n }\r\n dispatch(resetLookupCache());\r\n dispatch(searchItemsRequesting(true));\r\n loadSearchLookupTimeout = window.setTimeout(\r\n () => dispatch(loadSearchLookup(searchTerm)),\r\n 400\r\n );\r\n }\r\n }\r\n\r\n function loadSearchLookup(searchTerm: string, isLoadMore: boolean = false) {\r\n return async (dispatch: TDispatch, getState: () => AppState) => {\r\n dispatch(searchItemsRequesting(true));\r\n try {\r\n const {\r\n searchTransactions: {\r\n offset,\r\n },\r\n } = amrPipelineSelector(pipelineType)(getState());\r\n const deals = await dealsService.getDealsList(searchTerm, offset);\r\n\r\n const lookupData = deals.map((deal: Deal) => ({\r\n ...deal,\r\n isDeal: true,\r\n }));\r\n\r\n dispatch({\r\n type: actionTypes.SEARCH_LOOKUP_CACHE,\r\n pipelineType,\r\n lookupData,\r\n searchTerm,\r\n isLoadMore,\r\n });\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n } finally {\r\n dispatch(searchItemsRequesting(false))\r\n }\r\n };\r\n }\r\n\r\n function applyLookupItem(\r\n label: string,\r\n dealReferenceName: string,\r\n classNames?: string[],\r\n ) {\r\n return (\r\n dispatch: TDispatch,\r\n getState: () => AppState\r\n ) => {\r\n const { searchTransactions } = amrPipelineSelector(pipelineType)(getState());\r\n\r\n if (\r\n label &&\r\n !searchTransactions.searchTermItems.map(i => i.label).includes(label)\r\n ) {\r\n dispatch(addSearchItem({\r\n label,\r\n referenceName: dealReferenceName,\r\n classNames,\r\n }));\r\n\r\n }\r\n dispatch(searchTermChange(\"\"));\r\n dispatch(resetSearchLookup());\r\n };\r\n }\r\n\r\n function moveBack() {\r\n return {\r\n type: actionTypes.SEARCH_MOVE_BACK,\r\n pipelineType,\r\n };\r\n }\r\n\r\n function moveForward() {\r\n return {\r\n type: actionTypes.SEARCH_MOVE_FORWARD,\r\n pipelineType,\r\n };\r\n }\r\n\r\n function addSearchItem(item: SearchTermItem) {\r\n return {\r\n type: actionTypes.SEARCH_ITEM_ADD,\r\n pipelineType,\r\n item,\r\n };\r\n }\r\n\r\n function removeSearchItem(index: number) {\r\n return {\r\n type: actionTypes.SEARCH_ITEM_REMOVE,\r\n pipelineType,\r\n index,\r\n };\r\n }\r\n\r\n function removeCurrentItem() {\r\n return {\r\n type: actionTypes.SEARCH_REMOVE_CURRENT_ITEM,\r\n pipelineType,\r\n };\r\n }\r\n\r\n function resetSearchLookup() {\r\n return {\r\n type: actionTypes.SEARCH_LOOKUP,\r\n pipelineType,\r\n lookupData: [],\r\n };\r\n }\r\n\r\n function searchItemsRequesting(isSearching: boolean) {\r\n return {\r\n type: actionTypes.SEARCH_ITEMS_REQUESTING,\r\n pipelineType,\r\n isSearching\r\n }\r\n }\r\n\r\n function reset() {\r\n return {\r\n type: actionTypes.SEARCH_RESET,\r\n pipelineType,\r\n };\r\n }\r\n\r\n function resetLookupCache() {\r\n return {\r\n type: actionTypes.SEARCH_RESET_LOOKUP_CACHE,\r\n pipelineType,\r\n };\r\n }\r\n\r\n return {\r\n searchTermChange,\r\n applyLookupItem,\r\n loadSearchLookup,\r\n moveBack,\r\n moveForward,\r\n addSearchItem,\r\n removeCurrentItem,\r\n removeSearchItem,\r\n resetSearchLookup,\r\n reset,\r\n resetLookupCache,\r\n };\r\n};\r\n","import { searchSecuritiesActions as actionTypes, constants } from '../constants';\r\nimport { errorActions } from '../actions';\r\nimport { bwicService } from '../services';\r\n\r\nexport const searchSecuritiesActions = {\r\n searchTermChange,\r\n resetSearchLookup,\r\n applyLookupItem,\r\n removeSearchItem,\r\n moveBack,\r\n moveForward,\r\n removeCurrentItem,\r\n addSearchItem,\r\n reset\r\n};\r\n\r\nlet loadSearchLookupTimeout = null;\r\n\r\nfunction searchTermChange(searchTerm = '', showLookup = true) {\r\n return (dispatch, getState) => {\r\n dispatch({ type: actionTypes.SEARCH_TERM_CHANGE, search: { searchTerm } });\r\n\r\n const trimmedSearchTerm = searchTerm.trim();\r\n\r\n if (trimmedSearchTerm && trimmedSearchTerm.length > constants.searchTermAcceptedLength) {\r\n const { searchTermCache, lookupCache } = getState().searchSecurities;\r\n const searchTermLowerCase = trimmedSearchTerm.toLowerCase();\r\n\r\n if (searchTermCache &&\r\n searchTermLowerCase.startsWith(searchTermCache.toLowerCase())) {\r\n dispatch(searchInLookupCache(searchTermLowerCase, lookupCache));\r\n } else if (showLookup) {\r\n if (loadSearchLookupTimeout) {\r\n clearTimeout(loadSearchLookupTimeout)\r\n }\r\n loadSearchLookupTimeout = setTimeout(() => dispatch(loadSearchLookup(trimmedSearchTerm)), 400);\r\n }\r\n } else {\r\n dispatch(resetSearchLookup());\r\n }\r\n };\r\n}\r\n\r\nfunction searchInLookupCache(searchTerm, lookupCache) {\r\n return {\r\n type: actionTypes.SEARCH_LOOKUP,\r\n lookupData: lookupCache.filter(l =>\r\n (l.isin && l.isin.toLowerCase().startsWith(searchTerm)) ||\r\n (l.cusip && l.cusip.toLowerCase().startsWith(searchTerm)) ||\r\n (l.ticker && l.ticker.toLowerCase().startsWith(searchTerm))\r\n )\r\n };\r\n}\r\n\r\nfunction loadSearchLookup(searchTerm) {\r\n return dispatch => {\r\n bwicService\r\n .searchSecurities(searchTerm, true)\r\n .then(success)\r\n .catch(e => dispatch(errorActions.error(e)));\r\n\r\n function success(securities) {\r\n dispatch({\r\n type: actionTypes.SEARCH_LOOKUP_CACHE,\r\n lookupData: securities.map(s => ({\r\n id: s.id,\r\n isin: s.isin,\r\n cusip: s.cusip,\r\n isinCusip: s.isinCusip,\r\n ticker: s.ticker\r\n })),\r\n searchTerm\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction applyLookupItem(lookupItem) {\r\n return (dispatch, getState) => {\r\n const { searchSecurities } = getState();\r\n let searchTerm;\r\n if (typeof lookupItem === 'object') {\r\n const stateSearchTerm = searchSecurities.searchTerm.toLowerCase();\r\n if (lookupItem.isin && lookupItem.isin.toLowerCase().startsWith(stateSearchTerm)) {\r\n searchTerm = lookupItem.isin;\r\n } else if (lookupItem.cusip && lookupItem.cusip.toLowerCase().startsWith(stateSearchTerm)) {\r\n searchTerm = lookupItem.cusip;\r\n } else {\r\n searchTerm = lookupItem.ticker;\r\n }\r\n } else {\r\n searchTerm = lookupItem.trim();\r\n }\r\n\r\n if (searchTerm && !searchSecurities.searchTermItems.includes(searchTerm)) {\r\n dispatch(addSearchItem(searchTerm));\r\n }\r\n dispatch(searchTermChange(''));\r\n dispatch(resetSearchLookup());\r\n };\r\n}\r\n\r\nfunction moveBack() {\r\n return {\r\n type: actionTypes.SECURITY_SEARCH_MOVE_BACK,\r\n };\r\n}\r\n\r\nfunction moveForward() {\r\n return {\r\n type: actionTypes.SECURITY_SEARCH_MOVE_FORWARD,\r\n };\r\n}\r\nfunction addSearchItem(item) {\r\n return {\r\n type: actionTypes.SECURITY_SEARCH_ITEM_ADD,\r\n payload: { item }\r\n };\r\n}\r\n\r\nfunction removeSearchItem(index) {\r\n return {\r\n type: actionTypes.SECURITY_SEARCH_ITEM_REMOVE,\r\n payload: { index }\r\n };\r\n}\r\n\r\nfunction removeCurrentItem() {\r\n return {\r\n type: actionTypes.SECURITY_SEARCH_REMOVE_CURRENT_ITEM,\r\n };\r\n}\r\n\r\nfunction resetSearchLookup() {\r\n return {\r\n type: actionTypes.SEARCH_LOOKUP,\r\n lookupData: []\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return {\r\n type: actionTypes.RESET\r\n };\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { AgencyRatings } from '../types/models/rating/AgencyRatings';\r\nimport { RatingMap } from '../types/models/rating/RatingMap';\r\nimport { BwicPositionBase } from '../types/bwic/BwicPositionBase';\r\nimport { InventoryPosition } from '../types/inventory/InventoryPosition';\r\n\r\nconst securityDetailsReset = createAction('securityDetails/RESET');\r\nconst securityDetailsInitRequest = createAction('securityDetails/INIT_REQUEST',\r\n resolve => (security: BwicPositionBase | InventoryPosition, fetchAgencyRatings?: boolean) =>\r\n resolve({ security, fetchAgencyRatings })\r\n);\r\nconst securityDetailsInitSuccess = createAction('securityDetails/INIT_SUCCESS',\r\n resolve => (ratings: AgencyRatings, mappings: RatingMap[]) =>\r\n resolve({ ratings, mappings })\r\n);\r\nconst securityDetailsInitFailure = createAction('securityDetails/INIT_FAILURE',\r\n resolve => (error: string) => resolve({ error })\r\n);\r\n\r\nexport const securityDetailsActions = {\r\n securityDetailsInitRequest,\r\n securityDetailsInitFailure,\r\n securityDetailsInitSuccess,\r\n securityDetailsReset\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { BrokerDealerCompanySlim } from '../types/company/BrokerDealerCompanySlim';\r\n\r\nconst setEditModeStatus = createAction(\r\n 'sellerAdminDealers/SET_EDIT_MODE_STATUS',\r\n resolve => (status: boolean) => resolve({ status })\r\n);\r\nconst getExcludedDealersRequest = createAction('sellerAdminDealers/GET_EXCLUDED_REQUEST');\r\nconst getExcludedDealersSuccess = createAction(\r\n 'sellerAdminDealers/GET_EXCLUDED_SUCCESS',\r\n resolve => (excludeNewCompany: boolean, dealers: BrokerDealerCompanySlim[]) => resolve({ excludeNewCompany, dealers })\r\n);\r\nconst getExcludedDealersFailure = createAction('sellerAdminDealers/GET_EXCLUDED_FAILURE');\r\n\r\nconst saveExcludedDealersRequest = createAction(\r\n 'sellerAdminDealers/SAVE_EXCLUDED_REQUEST',\r\n resolve => (dealerIds: number[], excludeNewCompany: boolean) => resolve({ dealerIds, excludeNewCompany })\r\n);\r\nconst saveExcludedDealersSuccess = createAction('sellerAdminDealers/SAVE_EXCLUDED_SUCCESS');\r\nconst saveExcludedDealersFailure = createAction('sellerAdminDealers/SAVE_EXCLUDED_FAILURE');\r\nconst reset = createAction('sellerAdminDealers/RESET');\r\n\r\nexport const sellerAdminDealerActions = {\r\n setEditModeStatus,\r\n getExcludedDealersRequest,\r\n getExcludedDealersSuccess,\r\n getExcludedDealersFailure,\r\n saveExcludedDealersRequest,\r\n saveExcludedDealersSuccess,\r\n saveExcludedDealersFailure,\r\n reset\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { SellerAdminTradingLimitValuesState } from '../types/seller-admin/SellerAdminTradingLimitValuesState';\r\n\r\nconst setEditModeStatus = createAction(\r\n 'sellerAdminLimit/SET_EDIT_MODE_STATUS',\r\n resolve => (status: boolean) => resolve({ status })\r\n);\r\n\r\nconst getTradeLimitsRequest = createAction('sellerAdminLimit/GET_TRADING_LIMITS_REQUEST');\r\nconst getTradeLimitsSuccess = createAction(\r\n 'sellerAdminLimit/GET_TRADING_LIMITS_SUCCESS',\r\n resolve => (limits: { currency: string, type: number, size: number | null }[]) => resolve({ limits})\r\n);\r\n\r\nconst updateTradeLimitsRequest = createAction(\r\n 'sellerAdminLimit/UPDATE_TRADE_LIMITS_REQUEST',\r\n resolve => (limits: SellerAdminTradingLimitValuesState) => resolve({ limits })\r\n);\r\nconst updateTradeLimitsSuccess = createAction('sellerAdminLimit/UPDATE_TRADE_LIMITS_SUCCESS');\r\nconst updateTradeLimitsFailure = createAction('sellerAdminLimit/UPDATE_TRADE_LIMITS_FAILURE');\r\n\r\nconst reset = createAction('sellerAdminLimit/RESET');\r\n\r\nexport const sellerAdminLimitActions = {\r\n setEditModeStatus,\r\n getTradeLimitsRequest,\r\n getTradeLimitsSuccess,\r\n updateTradeLimitsRequest,\r\n updateTradeLimitsSuccess,\r\n updateTradeLimitsFailure,\r\n reset\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { SellerAdminEditFormModel } from '../types/seller-admin/SellerAdminEditFormModel';\r\nimport { CompanyUser } from '../types/management/CompanyUser';\r\nimport { UserCreationRequest } from '../types/management/UserCreationRequest';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { UserStatus } from '../types/account/UserStatus';\r\nimport { UpdateBwicAnnouncementNotifications } from '../types/profile/UpdateBwicAnnouncementNotifications';\r\n\r\nconst getUserListRequest = createAction('sellerAdminUsers/GET_USERS_LIST/REQUEST');\r\nconst getUserListSuccess = createAction(\r\n 'sellerAdminUsers/GET_USERS_LIST/SUCCESS',\r\n resolve => (users: CompanyUser[], requestUsers: UserCreationRequest[]) => resolve({ users, requestUsers })\r\n);\r\nconst getUserListFailure = createAction('sellerAdminUsers/GET_USERS_LIST/FAILURE');\r\n\r\nconst saveUser = createAction(\r\n 'sellerAdminUsers/SAVE_USER',\r\n resolve => (data: SellerAdminEditFormModel, userId: number) => resolve({ data, userId })\r\n);\r\nconst setUserUpdateState = createAction(\r\n 'sellerAdminUsers/DET_UPDATE_USER_STATE',\r\n resolve => (requestState: RequestState, user?: CompanyUser) => resolve({ requestState, user })\r\n);\r\nconst userSaved = createAction(\r\n 'sellerAdminUsers/SET_USER_SAVED',\r\n resolve => (user: CompanyUser) => resolve({ user })\r\n);\r\n\r\nconst saveUserRequest = createAction(\r\n 'sellerAdminUsers/SAVE_USER_REQUEST',\r\n resolve =>\r\n (data: SellerAdminEditFormModel, userRequestId: number, concurrencyStamp?: Date | undefined) =>\r\n resolve({ data, userRequestId, concurrencyStamp })\r\n);\r\nconst setUserRequestUpdateState = createAction(\r\n 'sellerAdminUsers/SET_USER_REQUEST_UPDATE_STATE',\r\n resolve => (requestState: RequestState) => resolve({ requestState })\r\n);\r\nconst userRequestSaved = createAction(\r\n 'sellerAdminUsers/SET_USER_REQUEST_SAVED',\r\n resolve => (userRequest: UserCreationRequest) => resolve({ userRequest })\r\n);\r\n\r\nconst disableUser = createAction(\r\n 'sellerAdminUsers/DISABLE_USER',\r\n resolve => (userId: number, blockReason: string) => resolve({ userId, blockReason })\r\n);\r\nconst enableUser = createAction(\r\n 'sellerAdminUsers/ENABLE_USER',\r\n resolve => (userId: number) => resolve({ userId })\r\n);\r\nconst setUserOperationState = createAction(\r\n 'sellerAdminUsers/SET_USER_OPERATION_STATE',\r\n resolve => (requestState: RequestState, userId: number) => resolve({ requestState, userId, })\r\n);\r\nconst setUserEnabled = createAction(\r\n 'sellerAdminUsers/SET_ENABLED_USER',\r\n resolve => (userId: number, status: UserStatus) => resolve({ userId, status })\r\n);\r\nconst setUserDisable = createAction(\r\n 'sellerAdminUsers/SET_DISABLED_USER',\r\n resolve => (userId: number, blockReason: string) => resolve({ userId, blockReason })\r\n);\r\n\r\nconst disableUserRequest = createAction(\r\n 'sellerAdminUsers/DISABLE_USER_REQUEST',\r\n resolve => (userRequestId: number, concurrencyStamp: Date, blockReason: string,) => resolve({\r\n userRequestId,\r\n concurrencyStamp,\r\n blockReason\r\n })\r\n);\r\nconst enableUserRequest = createAction(\r\n 'sellerAdminUsers/ENABLE_USER_REQUEST',\r\n resolve => (userRequestId: number, concurrencyStamp: Date) => resolve({ userRequestId, concurrencyStamp })\r\n);\r\nconst setUserRequestOperationState = createAction(\r\n 'sellerAdminUsers/SET_USER_REQUEST_OPERATION_STATE',\r\n resolve => (requestState: RequestState, userId: number) => resolve({\r\n requestState,\r\n userId\r\n })\r\n);\r\nconst userRequestEnabled = createAction(\r\n 'sellerAdminUsers/SET_USER_REQUEST_ENABLED',\r\n resolve => (userRequest: UserCreationRequest) => resolve({ userRequest })\r\n);\r\nconst userRequestDisabled = createAction(\r\n 'sellerAdminUsers/SET_USER_REQUEST_DISABLED',\r\n resolve => (userRequest: UserCreationRequest) => resolve({ userRequest })\r\n);\r\n\r\nconst exportUsersRequest = createAction('sellerAdminUsers/EXPORT_REQUEST');\r\nconst exportUsersResponse = createAction('sellerAdminUsers/EXPORT_RESPONSE');\r\n\r\nconst reset = createAction('sellerAdminUsers/RESET');\r\n\r\nconst changeBwicAnnouncementNotificationsRequest = createAction(\r\n 'sellerAdminUsers/CHANGE_BWIC_ANNOUNCMENT_NOTIFICATIONS_REQUEST',\r\n resolve => (requestState: RequestState) => resolve({ requestState })\r\n)\r\n\r\nconst changeBwicAnnouncementNotifications = createAction(\r\n 'sellerAdminUsers/CHANGE_BWIC_ANNOUNCMENT_NOTIFICATIONS',\r\n resolve => (bwicAnnouncementNotifications: UpdateBwicAnnouncementNotifications) =>\r\n resolve({\r\n bwicCreateNotifyAdmins: bwicAnnouncementNotifications.bwicCreateNotifyAdmins,\r\n bwicCreateNotifyViewers: bwicAnnouncementNotifications.bwicCreateNotifyViewers\r\n })\r\n)\r\n\r\nexport const sellerAdminUsersActions = {\r\n getUserListRequest,\r\n getUserListSuccess,\r\n getUserListFailure,\r\n saveUserRequest,\r\n setUserRequestUpdateState,\r\n userRequestSaved,\r\n saveUser,\r\n setUserUpdateState,\r\n userSaved,\r\n disableUser,\r\n enableUser,\r\n setUserOperationState,\r\n setUserEnabled,\r\n setUserDisable,\r\n disableUserRequest,\r\n enableUserRequest,\r\n reset,\r\n setUserRequestOperationState,\r\n userRequestEnabled,\r\n userRequestDisabled,\r\n exportUsersRequest,\r\n exportUsersResponse,\r\n changeBwicAnnouncementNotificationsRequest,\r\n changeBwicAnnouncementNotifications\r\n};\r\n","import moment from 'moment';\r\nimport { sellerBiddingActions as actionTypes, errorMessages, constants, roles } from '../constants';\r\nimport { bwicService, biddingService, daysService } from '../services';\r\nimport { biddingActions, errorActions, colorDistributionActions, notificationActions } from '.';\r\nimport { biddingUtils, numericUtils } from '../utils';\r\nimport { feedbackTypes } from '../constants/bidding';\r\nimport { controlPanelActions } from './control-panel.actions';\r\nimport { dealerListPanelActions } from './dealer-list-panel.actions';\r\nimport { bidOnBehalfActions } from './bid-on-behalf.actions';\r\nimport { BwicStatus } from '../types/enums/BwicStatus';\r\nimport { apiOperationActions } from './api-operation.actions';\r\nimport { ApiOperationType } from '../types/api-operation/ApiOperationType';\r\nimport { user } from '../user';\r\nimport { favoriteBrokerDealersActions } from './favorite-broker-dealers.actions';\r\nimport { getSecuritiesWithLatestBids } from '../selectors';\r\nimport { dealerListActions } from './dealer-list.actions';\r\nimport { BwicProcessType } from '../types/models/Process';\r\nimport { OpenBiddingStatus } from \"../types/enums/OpenBiddingStatus\";\r\nimport { BidLevel } from '../types/bidding/BidLevel';\r\n\r\nexport const sellerBiddingActions = {\r\n init,\r\n cancelBwic,\r\n reset,\r\n tradeAll,\r\n completeBwic,\r\n setTargetLevel,\r\n sendTargetLevel,\r\n trade,\r\n tradeConfirm,\r\n sendQuickFeedback,\r\n tradingPositionSelectionChange,\r\n tradeAllSelectionChange,\r\n tradingPositionSettleDateChange,\r\n tradingPositionCommentChange,\r\n tradingPositionCompanyChange,\r\n tradingPositionBidChange,\r\n submitTrade,\r\n cancelTrade,\r\n showBidList,\r\n toggleBidList,\r\n sendBidRequest,\r\n markBidsShown\r\n}\r\n\r\nfunction init(bwic) {\r\n return async dispatch => {\r\n const year = new Date().getFullYear();\r\n\r\n try {\r\n const nextBusinessDayPromise = daysService.getNextBusinessDate();\r\n const todayIsBusinessDayPromise = daysService.isBusinessDay(new Date());\r\n const currentYearHolidaysPromise = daysService.getHolidays(year);\r\n const nextYearHolidaysPromise = daysService.getHolidays(year + 1);\r\n const isBidingOrFinished = (bwic.status === BwicStatus.bidding || bwic.status === BwicStatus.finished);\r\n if (!bwic.isAllToAll && isBidingOrFinished && bwic.process.type !== BwicProcessType.Live) {\r\n dispatch(bidOnBehalfActions.requestCompanies());\r\n }\r\n if (!bwic.isAllToAll && user.hasRoles(roles.SellerTrader)) {\r\n dispatch(favoriteBrokerDealersActions.fetchFavoriteBrokerDealersRequest());\r\n }\r\n\r\n const nextBusinessDay = await nextBusinessDayPromise;\r\n const todayIsBusinessDay = await todayIsBusinessDayPromise;\r\n const currentYearHolidays = await currentYearHolidaysPromise;\r\n const nextYearHolidays = await nextYearHolidaysPromise;\r\n\r\n const minDate = todayIsBusinessDay\r\n ? moment().startOf('day').toDate()\r\n : moment(nextBusinessDay).startOf('day').toDate();\r\n\r\n const holidays = [...currentYearHolidays, ...nextYearHolidays];\r\n\r\n dispatch(storeMinSettleDate(minDate));\r\n dispatch(storeHolidays(holidays));\r\n dispatch(storeSecurities(bwic.securities));\r\n } catch (e) {\r\n dispatch(errorActions.criticalError(e));\r\n }\r\n };\r\n}\r\n\r\nfunction storeMinSettleDate(minimumDate) {\r\n return {\r\n type: actionTypes.STORE_MIN_SETTLE_DATE,\r\n minimumDate\r\n };\r\n}\r\n\r\nfunction storeSecurities(securities) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_STORE_SECURITIES,\r\n securities\r\n };\r\n}\r\n\r\nfunction storeHolidays(holidays) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_STORE_HOLIDAYS,\r\n holidays\r\n };\r\n}\r\n\r\nfunction cancelBwic(referenceName, reason) {\r\n return dispatch => {\r\n bwicService\r\n .cancel(referenceName, reason ? reason.trim() : reason)\r\n .then(\r\n () => dispatch(biddingActions.init(referenceName)),\r\n e => dispatch(errorActions.unexpectedError(e))\r\n );\r\n };\r\n}\r\n\r\nfunction reset() {\r\n return dispatch => {\r\n dispatch(dealerListPanelActions.reset());\r\n dispatch({ type: actionTypes.SELLER_BIDDING_RESET });\r\n dispatch(apiOperationActions.resetEvent(ApiOperationType.submitBidsOnBehalf));\r\n dispatch(bidOnBehalfActions.resetEdit());\r\n dispatch(dealerListActions.reset());\r\n };\r\n}\r\n\r\nfunction tradeAll() {\r\n return (dispatch, getState) => {\r\n const { securities } = getState().sellerBidding;\r\n const tradingPositions = securities.filter(s => biddingUtils.canTradePosition(s));\r\n\r\n dispatch(storeTradingPositions(tradingPositions));\r\n }\r\n}\r\n\r\nfunction trade(positionId) {\r\n return (dispatch, getState) => {\r\n const { securities } = getState().sellerBidding;\r\n const tradingPosition = securities.find(s => s.id === positionId);\r\n\r\n dispatch(storeTradingPositions([tradingPosition]));\r\n };\r\n}\r\n\r\nfunction tradeConfirm(visible) {\r\n return (dispatch, getState) => {\r\n let hasErrors = false;\r\n\r\n if (visible) {\r\n const { tradingPositions, holidays, minimumSettleDate } = getState().sellerBidding;\r\n const validationResult = validateTradingPositions(tradingPositions, minimumSettleDate, holidays);\r\n hasErrors = validationResult.some(r => r.errors);\r\n\r\n if (hasErrors) {\r\n dispatch({\r\n type: actionTypes.SELLER_BIDING_STORE_TRADING_POSITIONS_VALIDATION_RESULT,\r\n validationResult\r\n });\r\n }\r\n }\r\n\r\n if (!hasErrors) {\r\n dispatch({\r\n type: actionTypes.SELLER_BIDDING_TRADING_CONFIRMATION_VISIBLE,\r\n visible\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction storeTradingPositions(positions) {\r\n return (dispatch, getState) => {\r\n const { bwic } = getState().bidding;\r\n const tradingPositions = positions && positions.map(p => {\r\n const [positionWithActualBids] = getSecuritiesWithLatestBids({ securities: [p] });\r\n const [best] = biddingUtils.getBidsByLevel(positionWithActualBids.bids, BidLevel.Best);\r\n\r\n return {\r\n id: p.id,\r\n selected: true,\r\n tradingCompanyId: best.company.id,\r\n tradingCompanyIdentifier: biddingUtils.getBidCompanyIdentifier(best),\r\n tradingBidId: best.id,\r\n settleDate: bwic.defaultSettleDate,\r\n comment: '',\r\n errors: null\r\n };\r\n });\r\n\r\n dispatch({\r\n type: actionTypes.SELLER_BIDDING_STORE_TRADING_POSITIONS,\r\n tradingPositions\r\n });\r\n };\r\n}\r\n\r\nfunction completeBwic(bwicReferenceName) {\r\n return dispatch => {\r\n bwicService\r\n .setColorDistribution(bwicReferenceName, true)\r\n .then(\r\n () => dispatch(colorDistributionActions.setBwicColorDistribution(true)),\r\n e => dispatch(errorActions.unexpectedError(e))\r\n );\r\n };\r\n}\r\n\r\nfunction sendQuickFeedback(positionId, bidsList, feedbackType) {\r\n return (dispatch, getState) => {\r\n const { bwic } = getState().bidding;\r\n sendOnBehalfFeedback();\r\n sendRegularFeedback();\r\n\r\n function excludeJumpBallStage2Bids(bids){\r\n if (\r\n bwic.process.type === BwicProcessType.JumpBall &&\r\n bwic.process.stagedBiddingStatus === OpenBiddingStatus.stage1Ended &&\r\n feedbackType === feedbackTypes.submitFinal &&\r\n bids?.some(b => b.stagedBiddingStatus === OpenBiddingStatus.stage1Ended)\r\n ) {\r\n return bids.filter(b => b.stagedBiddingStatus == null) // Take Stage1 bids only\r\n }\r\n return bids;\r\n }\r\n\r\n function sendOnBehalfFeedback() {\r\n const onBehalfBids = excludeJumpBallStage2Bids(bidsList.filter(b => b.onBehalf));\r\n if (onBehalfBids.length) {\r\n const bidIdList = onBehalfBids.map((b) => b.id);\r\n return biddingService\r\n .sendOnBehalfQuickFeedback(bwic.referenceName, positionId, bidIdList, feedbackType)\r\n .then(() => dispatch(feedbackSent(positionId, onBehalfBids, feedbackType)))\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n }\r\n }\r\n function sendRegularFeedback() {\r\n const bids = excludeJumpBallStage2Bids(bidsList.filter(b => !b.onBehalf));\r\n if (bids.length) {\r\n const bidIdList = bids.map((b) => b.id);\r\n return biddingService\r\n .sendQuickFeedback(bwic.referenceName, positionId, bidIdList, feedbackType)\r\n .then(() => dispatch(feedbackSent(positionId, bids, feedbackType)))\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction sendBidRequest(positionId, companies, requestType) {\r\n return (dispatch, getState) => {\r\n const { bwic } = getState().bidding;\r\n\r\n biddingService\r\n .sendBidRequest(bwic.referenceName, positionId, companies.map(c => c.id), requestType)\r\n .catch(e => dispatch(errorActions.unexpectedError(e)));\r\n };\r\n}\r\n\r\nfunction feedbackSent(positionId, bids, feedbackType) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_QUICK_FEEDBACK_SENT,\r\n positionId,\r\n bids,\r\n feedbackType\r\n };\r\n}\r\n\r\nfunction tradingPositionSelectionChange(positionId, selected) {\r\n return (dispatch, getState) => {\r\n dispatch({\r\n type: actionTypes.SELLER_BIDDING_TRADING_POSITION_SELECTION_CHANGE,\r\n positionId,\r\n selected\r\n });\r\n\r\n const { tradeAllChecked } = getState().sellerBidding;\r\n\r\n if (tradeAllChecked !== selected) {\r\n const { tradingPositions } = getState().sellerBidding;\r\n const tradingPositionIdList = Object.keys(tradingPositions).map(key => +key);\r\n\r\n if (tradingPositionIdList.every(id => tradingPositions[id].selected)) {\r\n dispatch(tradeAllSelectionChange(true));\r\n } else if (tradingPositionIdList.every(id => !tradingPositions[id].selected)) {\r\n dispatch(tradeAllSelectionChange(false));\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction tradeAllSelectionChange(tradeAllChecked) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_TRADING_TRADE_ALL_SELECTION_CHANGE,\r\n tradeAllChecked\r\n };\r\n}\r\n\r\nfunction submitTrade() {\r\n return (dispatch, getState) => {\r\n const { securities, tradingPositions } = getState().sellerBidding;\r\n const { bwic } = getState().bidding;\r\n\r\n const positions = Object\r\n .keys(tradingPositions)\r\n .map(positionId => +positionId)\r\n .filter(positionId => tradingPositions[positionId].selected)\r\n .map(positionId => {\r\n const p = tradingPositions[positionId];\r\n const position = securities.find(s => s.id === positionId);\r\n const bid = position.bids.find(b => b.id === p.tradingBidId && biddingUtils.getBidCompanyIdentifier(b) === p.tradingCompanyIdentifier);\r\n const companyBidLock = position.bidLocks && position.bidLocks.find(l => l.companyId === p.tradingCompanyId);\r\n\r\n return {\r\n positionId,\r\n buyerCompany: {\r\n id: p.tradingCompanyId,\r\n },\r\n settleDate: moment(p.settleDate).toISOString(true),\r\n bidId: bid.id,\r\n bidLock: companyBidLock && companyBidLock.bidLock,\r\n comment: p.comment\r\n };\r\n });\r\n\r\n dispatch(cancelTrade());\r\n\r\n biddingService\r\n .trade(bwic.referenceName, positions)\r\n .catch(e => {\r\n if (e.status === 409) {\r\n dispatch(notificationActions.warningModal(\r\n 'New Bid Notification',\r\n 'New bids were received. Please try again or refresh the page.'\r\n ));\r\n } else {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n });\r\n };\r\n}\r\n\r\nfunction validateTradingPositions(tradingPositions, minimumSettleDate, holidays) {\r\n const minimumDate = moment(minimumSettleDate);\r\n const momentHolidays = holidays.map(h => moment(h).startOf('day'));\r\n\r\n return Object\r\n .keys(tradingPositions)\r\n .map(positionId => +positionId)\r\n .map(positionId => {\r\n if (!tradingPositions[positionId].selected) {\r\n return { positionId, errors: null };\r\n }\r\n\r\n const settleDate = validateTradingPositionSettleDate(tradingPositions[positionId].settleDate, minimumDate, momentHolidays);\r\n const errors = settleDate ? { settleDate } : null;\r\n\r\n return { positionId, errors };\r\n });\r\n}\r\n\r\nfunction validateTradingPositionSettleDate(settleDate, minimumDate, holidays) {\r\n\r\n if (settleDate === '') {\r\n return errorMessages.empty;\r\n } else if (typeof settleDate === 'undefined') {\r\n return errorMessages.invalidValue;\r\n } else if (minimumDate.diff(settleDate, 'days') > 0) {\r\n return errorMessages.dateShouldNotBeInPast;\r\n }\r\n\r\n const momentSettleDate = moment(settleDate);\r\n const weekday = momentSettleDate.weekday();\r\n\r\n \r\n\r\n if ([0, 6].some(d => d === weekday)) {\r\n return errorMessages.bwicDateShouldNotBeWeekend;\r\n } else if (holidays.some(h => h.isSame(momentSettleDate, 'day'))) {\r\n return errorMessages.bwicDateShouldNotBeHoliday;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction cancelTrade() {\r\n return dispatch => {\r\n dispatch(tradeConfirm(false));\r\n dispatch(storeTradingPositions(null));\r\n }\r\n}\r\n\r\nfunction tradingPositionCompanyChange(positionId, tradingCompanyIdentifier) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_TRADING_COMPANY_CHANGE,\r\n positionId,\r\n tradingCompanyIdentifier\r\n }\r\n}\r\n\r\nfunction tradingPositionBidChange(positionId, bidId) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_TRADING_BID_CHANGE,\r\n positionId,\r\n bidId\r\n };\r\n}\r\n\r\nfunction tradingPositionSettleDateChange(positionId, date) {\r\n return (dispatch, getState) => {\r\n const { tradingPositions } = getState().sellerBidding;\r\n const position = tradingPositions[positionId];\r\n\r\n let settleDateError = null;\r\n if (position.errors && position.errors.settleDate) {\r\n const { holidays, minimumSettleDate } = getState().sellerBidding;\r\n const minimumDate = moment(minimumSettleDate);\r\n const momentHolidays = holidays.map(h => moment(h).startOf('day'));\r\n\r\n settleDateError = validateTradingPositionSettleDate(date, minimumDate, momentHolidays);\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.SELLER_BIDDING_TRADING_SETTLE_DATE_CHANGE,\r\n positionId,\r\n date,\r\n settleDateError\r\n });\r\n };\r\n}\r\n\r\nfunction tradingPositionCommentChange(positionId, comment) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_TADING_COMMENT_CHANGE,\r\n positionId,\r\n comment\r\n };\r\n}\r\n\r\nfunction setTargetLevel(securityId, value) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_SET_TARGET_LEVEL,\r\n payload: { securityId, value }\r\n }\r\n}\r\n\r\nfunction targetLevelRequest(securityId) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_TARGET_LEVEL_REQUEST,\r\n payload: { securityId }\r\n }\r\n}\r\n\r\nfunction targetLevelSuccess(securityId) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_TARGET_LEVEL_SUCCESS,\r\n payload: { securityId }\r\n }\r\n}\r\n\r\nfunction targetLevelFailure(securityId, error) {\r\n return {\r\n type: actionTypes.SELLER_BIDDING_TARGET_LEVEL_FAILURE,\r\n payload: { securityId, error }\r\n }\r\n}\r\n\r\nfunction sendTargetLevel(securityId) {\r\n return (dispatch, getState) => {\r\n const { bwic } = getState().bidding;\r\n const { securities, editTargetLevel } = getState().sellerBidding;\r\n const security = securities.find(s => s.id === securityId);\r\n const edit = editTargetLevel[securityId];\r\n const targetLevel = edit && numericUtils.isNumber(edit.targetLevel) && +edit.targetLevel;\r\n\r\n if (targetLevel != null && security) {\r\n if (targetLevel < constants.targetLevelRange.min || targetLevel > constants.targetLevelRange.max) {\r\n dispatch(setTargetLevel(securityId, undefined));\r\n } else if (security.targetLevel !== targetLevel) {\r\n dispatch(setTargetLevel(securityId, targetLevel.toFixed(4)));\r\n dispatch(targetLevelRequest(securityId));\r\n biddingService\r\n .saveTargetLevel(bwic.referenceName, securityId, targetLevel)\r\n .then(() => dispatch(targetLevelSuccess(securityId)))\r\n .catch(e => dispatch(targetLevelFailure(securityId, e)));\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction showBidList(visible, positionId) {\r\n return dispatch => {\r\n if (visible) {\r\n dispatch(controlPanelActions.hide());\r\n }\r\n\r\n dispatch({\r\n type: actionTypes.SELLER_BIDDING_SHOW_BID_LIST,\r\n payload: {\r\n visible,\r\n positionId: visible ? positionId : undefined\r\n }\r\n });\r\n };\r\n}\r\n\r\nfunction toggleBidList(positionId) {\r\n return (dispatch, getState) => {\r\n const { bidList } = getState().sellerBidding;\r\n\r\n const visible = positionId !== bidList.positionId;\r\n dispatch(showBidList(visible, positionId));\r\n };\r\n}\r\n\r\nfunction markBidsShown(bidList, positionId, bwicReferenceName) {\r\n return {\r\n type: actionTypes.MARK_BIDS_SHOWN,\r\n bwicReferenceName,\r\n positionId,\r\n bidList\r\n };\r\n}\r\n\r\n","import { ActionType, createAction } from \"typesafe-actions\";\r\nimport { RequestState } from \"../constants/request-state\";\r\nimport { SettlementAccount } from \"../types/settlement/SettlementAccount\";\r\n\r\nconst request = createAction('entities/settlement-account/REQUEST');\r\nconst requestResult = createAction('entities/settlement-account/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, settlementAccounts: SettlementAccount[] = []) =>\r\n resolve({ requestState, settlementAccounts })\r\n);\r\nconst update = createAction('entities/settlement-account/UPDATE',\r\n resolve => (account: SettlementAccount) => resolve({ account })\r\n);\r\nconst deleteAccount = createAction('entities/settlement-account/DELETE',\r\n resolve => (accountId: number) => resolve({ accountId })\r\n);\r\nconst reset = createAction('entities/settlement-account/RESET');\r\n\r\nexport type TSettlementAccountActionType =\r\n ActionType<\r\n typeof request |\r\n typeof requestResult |\r\n typeof update |\r\n typeof deleteAccount |\r\n typeof reset\r\n >;\r\n\r\nexport const settlementAccountActions = {\r\n request,\r\n requestResult,\r\n update,\r\n deleteAccount,\r\n reset\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { SettlementAgentClientAgreement } from '../types/bid-as-dealer/SettlementAgentClientAgreement';\r\nimport { SettlementAgentAgreement } from '../types/bid-as-dealer/SettlementAgentAgreement';\r\nimport { BidRequest } from '../types/bid-as-dealer/BidRequest';\r\n\r\nconst settlementAgentAgreementPushReceived = createAction(\r\n 'push/settlement-agent-agreement/AGREEMENT_DATA_RECEIVED',\r\n resolve => (data: SettlementAgentClientAgreement | SettlementAgentAgreement) => resolve({data})\r\n);\r\n\r\nconst settlementAgentRequestPushReceived = createAction(\r\n 'push/settlement-agent-agreement/REQUEST_DATA_RECEIVED',\r\n resolve => (data: BidRequest) => resolve({ data })\r\n);\r\n\r\n\r\nexport const settlementAgentAgeementPushActions = {\r\n settlementAgentAgreementPushReceived,\r\n settlementAgentRequestPushReceived\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\nimport { RequestState } from '../constants/request-state';\r\nimport { SettlementAgentAgreement } from '../types/bid-as-dealer/SettlementAgentAgreement';\r\n\r\nconst request = createAction('entities/settlement-agent-agreements/REQUEST');\r\nconst requestResult = createAction('entities/settlement-agent-agreements/REQUEST_RESULT',\r\n resolve => (requestState: RequestState, result: SettlementAgentAgreement[] = []) =>\r\n resolve({ requestState, result })\r\n);\r\nconst pushDataReceived = createAction(\r\n 'entities/settlement-agent-agreements/PUSH_DATA_RECEIVED',\r\n resolve => (agreement: SettlementAgentAgreement) => resolve({ agreement })\r\n);\r\nconst resetEntities = createAction('entities/settlement-agent-agreements/RESET');\r\n\r\nexport const settlementAgentAgreementActions = {\r\n request,\r\n requestResult,\r\n pushDataReceived,\r\n resetEntities\r\n};\r\n","import { ActionType, createAction } from 'typesafe-actions';\r\nimport { SignupRequest } from '../types/account/SignupRequest';\r\n\r\nconst submit = createAction(\"signup/SUBMIT\", resolve => (request: SignupRequest) => resolve({ request }));\r\nconst submitSuccess = createAction(\"signup/SUBMIT_SUCCESS\");\r\nconst submitError = createAction(\"signup/SUBMIT_ERROR\");\r\n\r\nexport type TSignupAction = ActionType<\r\n typeof submit |\r\n typeof submitSuccess |\r\n typeof submitError\r\n>;\r\n\r\nexport const signupActions = {\r\n submit,\r\n submitSuccess,\r\n submitError\r\n}\r\n","import { createAction } from 'typesafe-actions';\r\nimport { SubscriptionBillingHistoryFilterState } from '../types/state/SubscriptionsState';\r\nimport { BillingHistory } from '../types/billing/BillingHistory';\r\nimport { FilterOption } from '../types/filters/FilterOption';\r\nimport { RequestState } from '../constants/request-state';\r\n\r\nconst fetchBillingHistory = createAction(\r\n 'subscriptionBillingHistory/FETCH_HISTORY',\r\n resolve =>\r\n (requestState: RequestState, billingHistory?: BillingHistory[]) =>\r\n resolve({ requestState, billingHistory})\r\n)\r\n\r\nconst updateFilter = createAction(\r\n 'subscriptionBillingHistory/UPDATE_FILTER',\r\n resolve =>\r\n (filterField: keyof SubscriptionBillingHistoryFilterState, filterOption: FilterOption) =>\r\n resolve({ filterField, filterOption })\r\n);\r\n\r\nconst applyFilter = createAction('subscriptionBillingHistory/APPLY_FILTER');\r\nconst setApplyFilter = createAction('subscriptionBillingHistory/SET_APPLY_FILTER');\r\nconst applyReset = createAction('subscriptionBillingHistory/RESET');\r\nconst resetFilter = createAction('subscriptionBillingHistory/RESET_FILTER');\r\n\r\n\r\nexport const billingHistoryActions = {\r\n updateFilter,\r\n applyFilter,\r\n resetFilter,\r\n setApplyFilter,\r\n fetchBillingHistory,\r\n applyReset\r\n};\r\n","import { createAction } from 'typesafe-actions';\r\n\r\nconst reset = createAction('ui/table/RESET');\r\nconst hoverChange = createAction('ui/table/HOVER',\r\n resolve => (rowKey: string, hover: boolean) => resolve({ rowKey, hover })\r\n);\r\nconst expandedChange = createAction('ui/table/EXPANDED',\r\n resolve => (rowKey: string, expanded: boolean) => resolve({ rowKey, expanded })\r\n);\r\nconst resetExpanded = createAction('ui/table/RESET_EXPANDED');\r\n\r\nconst sortByChange = createAction('ui/table/SORT_BY',\r\n resolve => (tableKey: string, sortBy: string, sortDirection: string, sortingType: string) =>\r\n resolve({ tableKey, sortBy, sortDirection, sortingType })\r\n);\r\n\r\nexport const tableActions = {\r\n hoverChange,\r\n expandedChange,\r\n resetExpanded,\r\n sortByChange,\r\n reset\r\n};\r\n"],"names":["show","createAction","hide","messageTypeChange","resolve","messageType","recipientLevelChange","recipientLevel","editMinutesAboutToEnd","stage1AboutToEndTimeout","setError","error","blastMessageActions","storeRecipients","recipients","recipientSelectedChange","companyIdentifier","send","blastMessageRecipients","bwicParticipants","securities","sending","isSending","selectAllRecipientsChange","isSelectAllRecipients","toggleSelectAllParticipantsFlag","resetPanelState","saveRequest","saveSuccess","saveFailure","blotterTradeAllocationTemplateActions","save","templateId","name","type","activate","lock","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","dispatch","getState","items","saveModel","template","updates","activated","deactivated","wrap","_context","prev","next","gridActions","validate","grid","isValid","abrupt","dataItems","filter","i","draft","settlementAccountId","id","undefined","assetManager","user","current","companyId","map","Number","percent","TradeAllocationType","PercentOfTrade","rating","CreditRatings","tradeAllocationTemplateService","saveTemplate","sent","tradeAllocationTemplateActions","update","setTemplateActive","find","t","active","activeChange","t0","errorActions","unexpectedError","history","replace","_objectSpread","location","state","LocationStateBuilder","resetPanel","panel","PanelType","Templates","result","t1","status","notificationActions","notificationAddErrorMessageModal","errorMessages","refreshPage","stop","_x","_x2","apply","arguments","resetPopupState","tradeId","buyerSettlementStatus","sellerSettlementStatus","allocationLock","isBuyerAllocationManual","isSellerAllocationManual","blotterTradeAllocationActions","recalculateAmountOfTrade","rowIndex","dataItem","trade","blotter","_amount","amount","numericUtils","numberOrDefault","isNumber","round","size","updated","gridColumns","amountOfTrade","initialValue","deleteRow","insertDataItems","updateDataItemDraftStatus","recalculatePercentOfTrade","_percent","percentOfTrade","side","response","proceed","settlementService","saveTradeAllocation","awaitingTradesActions","tradeAllocationCreated","referenceName","tradeAllocationActions","resetPopup","blotterInit","blotterReset","blotterFiltersReset","blotterSetFilterDefaults","blotterToggleConfirmed","blotterTogglePending","blotterToggleRejected","blotterToggleAllocationStatusUnsettled","blotterToggleAllocationStatusPendingSettlement","blotterToggleAllocationStatusPendingAllocation","blotterToggleAllocationStatusPendingProceeds","blotterToggleAllocationStatusSettled","blotterSetCurrency","currency","blotterResetCurrency","blotterSelectAllCurrencies","blotterDateFilterChange","dateOption","blotterCustomDateFilterChange","dateRange","blotterSettlementDateFilterChange","blotterSettlementCustomDateFilterChange","blotterToggleFilterBuy","blotterToggleFilterSell","blotterToggleFilterClient","blotterToggleFilterDesc","blotterSearchRequest","blotterSearchRequestNextPage","page","blotterSearchSuccess","totalRecordNumber","blotterSearchFailure","blotterOrderByChange","orderByColumn","blotterHasTradesRequest","blotterHasTradesSuccess","hasTrades","blotterHasTradesFailure","blotterExportRequest","blotterExportSuccess","blotterExportFailure","blotterToggleVcon","isBuyTrade","value","blotterSetVconRequest","blotterSetVconSuccess","blotterSetVconFailure","blotterToggleBooked","blotterSetBookedRequest","blotterSetBookedSuccess","blotterSetBookedFailure","request","requestResult","requestState","length","pushUpdateList","contacts","brokerDealerContactListActions","setContactInvitationSent","contactId","resetEntities","brokerDealerListActions","updateDealerDistributionListInvitationSent","dealerId","updateDealerHeadOfTradingInvitationSent","brokerDealerUserListActions","brokerDealerBiddingActions","init","bwic","accessState","isParsed","biddingService","getAccessState","storeAccessState","bwicStatuses","scheduled","key","storeSecurities","_toConsumableArray","initPriceTalks","criticalError","reset","actionTypes","BROKER_DEALER_BIDDING_RESET","sendInviteRequest","comment","bidding","requestAccess","trim","then","brokerDealerAccessState","accessRequested","catch","e","bidAll","bidPlacementActions","_getState$brokerDeale2","brokerDealerBidding","editBid","biddingSecurities","s","canSubmit","hasBidErrors","bidConfirmationActions","confirmation","bidSingle","positionId","validateSingle","_getState$brokerDeale","position","submitBids","bids","BROKER_DEALER_BIDDING_STORE_SECURITIES","_s$pxTalks","pxTalks","forEach","priceTalksActions","RequestState","success","BROKER_DEALER_ACCESS_STATE","editState","some","edit","errors","keys","bwicLogReset","bwicLogInitRequest","security","bwicLogInitSuccess","statistics","bwicLogActions","bwicLogInitFailure","bwicLogExportDataRequest","securityId","bwicLogExportDataSuccess","bwicLogExportDataFailure","changeSubscriptionActions","company","setSubscriptionSavingFlag","isSubscriptionSavingFlag","saveSubscription","subscriptionType","subscriptionExpiration","clearingBankActions","saveClearingBankSettings","isClearingBank","commission","settlementAgentCommissionRequest","settlementAgentCommissionResponse","clientsCompaniesActions","fetchListRequest","fetchListSuccess","data","fetchListFailure","setSelectedAgreement","resetSelectedAgreement","updateAgreementRequest","requestData","updateAgreementSuccess","assetManagerId","updateAgreementFailure","setSearchString","searchString","fetchPendingAgreementCountRequest","fetchPendingAgreementsCountSuccess","count","fetchPendingAgreementsCountFailure","hideActivePanels","setVisibleUpdateRatePopup","visible","getCurrencyRate","setResultGetCurrencyRate","rate","updateCurrencyRate","setResultUpdateCurrencyRate","getCloManagers","companyReferenceName","getCloManagersResult","cloManagers","getCloManager","getCloManagerResult","cloManager","bwicCloManagers","createOrUpdateCloManager","setCloManagerSaveState","isUpdating","logUserActivity","accessType","switchFavoriteRequest","favorite","switchFavoriteResponse","analyticsInit","analyticsInitResponse","analyticsReset","clientsActivityRequest","startDate","endDate","clientsActivityResponse","numberOfHiddenItems","clientsActivityFilterChange","profileViewHistoryRequest","profileViewHistoryResponse","cloManagersActions","setManagerForAlertPopup","profileViewHistoryFilterChange","profileViewHistoryFilterByBar","date","selectedSecurityChange","editPlatformUsers","email","resetEditPlatformUsers","companiesActions","companiesPromise","usersPromise","userRequestsPromise","countriesPromise","salesRepresentativesPromise","companyList","users","userRequests","countries","salesRepresentatives","_getState$companies","isInitCompleted","companyFilter","memberFilter","companiesService","getCompanies","usersService","getUsers","getUserCreationRequests","locationService","getCountries","salesRepresentativesService","getList","storeCompanies","storeUsers","storeUserRequests","COUNTRIES","STORE_SALES_REPRESENTATIVES","companies","filterCompanies","filterMembers","INIT_COMPLETED","initCreateEditUser","userId","_ref2","_callee2","userPromise","_yield$Promise$all","_yield$Promise$all2","_context2","getUser","Promise","firstName","lastName","jobTitle","phone","roles","primaryContact","all","_slicedToArray","c","role","companyRoles","Media","Viewer","setEditingUser","COMPANY_UPDATE_INIT_STATUS_EDIT_USER","payload","finish","_x3","RESET","resetError","resetEditMember","RESET_EDIT_MEMBER","orderCompaniesBy","column","companyOrderBy","direction","ORDER_BY","orderBy","orderMembersBy","memberOrderBy","MEMBERS_ORDER_BY","approveCompany","companyApproveRequest","postCompanyApprove","companyApproveSuccess","companyApproveFailure","notificationAddErrorMessage","rejectCompany","postCompanyReject","rejectionReason","companyRejectReasonSet","COMPANY_REJECT_REASON_SET","companyApprovalConfirmationShow","COMPANY_APPROVAL_CONFIRMATION_SHOW","companyApprovalConfirmationHide","companyRejectionConfirmationShow","COMPANY_REJECTION_CONFIRMATION_SHOW","companyRejectionConfirmationHide","COMPANY_REJECTION_CONFIRMATION_HIDE","companyStatusChangeConfirmation","memberStatusChangeConfirmation","resendInviteConfirmation","resetPasswordConfirmation","chnageTfaEnabledStatusConfirmation","chnageTfaEnabledStatus","member","updateTfaEnabledState","tfaEnabled","TFA_ENABLED_STATE_CHANGED","resendInvite","concat","warningModal","u","resetPassword","fullName","changeCompanyStatus","message","companyStatuses","offPlatform","statusCode","blocked","changeMemberBlockedStatus","userStatuses","isUserPrimaryContact","notificationAddError","disableUser","blockReason","amrPipelineService","blockUserRequest","enableUser","unblockUserRequest","showCompanyMembers","memberFilterInitialState","applyMemberFilters","routes","manageCompanyMembers","showMemberCompany","companyFilterInitialState","searchTerm","companyName","manageCompanies","saveMember","_ref3","_callee3","editMember","isEdit","initialUser","isPrimaryContactAndCompanyChanged","userToSave","_context3","desk","isNil","userInformationCanNotBeChanged","primaryContactUserCanNotBeMovedToAnotherCompany","savingUser","saveUser","sendInvite","phoneNumber","userEmail","linkedIn","_x4","_x5","setMemberOfacStatus","memberId","membersOfacRequestStatus","newStatusList","COMPANY_MEMBER_SET_OFAC_REQUEST","setMemberOfacRequest","res","ofac","_getState$companies2","newUsers","COMPANY_MEMBER_SET_OFAC_SUCCESS","setMemberOfacSuccess","setMemberOfacFailure","setCompanyOfacStatus","companiesOfacRequestStatus","COMPANY_SET_OFAC_REQUEST","setCompanyOfacRequest","_getState$companies3","newCompanies","COMPANY_SET_OFAC_SUCCESS","setCompanyOfacSuccess","setCompanyOfacFailure","exportUsers","exportUsersRequestState","filterOptions","statuses","UserStatus","Active","Blocked","invited","Invited","notInvited","NotInvited","pendingApproval","rolesArray","administrator","Administrator","arrangersClient","ArrangersClient","brokerDealerTrader","BrokerDealerTrader","brokerDealerViewer","BrokerDealerViewer","dataEntry","DataEntry","sellerAdmin","SellerAdministrator","sellerTrader","SellerTrader","sellerViewer","SellerViewer","subscriptionManager","SubscriptionManager","viewer","collateralManager","CollateralManager","media","dateFilter","getSearchDateRange","regByFrom","dateFrom","regByTo","dateTo","searchTerms","companyIds","regByIds","regBy","getFilterCriteria","MANAGE_EXPORT_USERS_REQUEST","file","saveAs","blob","MANAGE_EXPORT_USERS_SUCCESS","MANAGE_EXPORT_USERS_FAILURE","getUserLoginHistory","COMPANY_MEMBER_SET_USER_LAST_LOGIN_HISTORY","resetUserLoginHistory","COMPANY_MEMBER_RESET_USER_LAST_LOGIN_HISTORY","memberSubscriptionChange","trialPeriodEnd","COMPANY_MEMBER_SUBSCRIPTION_CHANGE","companySubscriptionChange","subscriptionPeriodEnd","COMPANY_SUBSCRIPTION_CHANGE","changeClearingBankSettings","COMPANY_SET_CLEARING_BANK","setTempPassword","deleteUser","_ref4","_callee4","companyUserCount","_context4","COMPANY_MEMBER_DELETED","RESET_SUBSCRIPTION","_x6","_x7","exportCompanies","_ref7","_callee7","order","salesRepresentative","_context7","setIsRequestingExportCompany","CompanyStatus","brokerDealer","BrokerDealer","seller","Seller","companyColumnsExportValues","_x11","_x12","companyPushDataReceived","_ref6","_callee6","targetCompany","_context6","_ref5","_callee5","_context5","getUserListRequestStatus","logger","exception","_x8","COMPANY_PUSH_DATA_RECEIVED","_x9","_x10","applyCompanyFilters","COMPANY_FILTER_APPLY","resetCompanyFilters","COMPANY_FILTER_RESET","resetMemberFilters","MEMBER_FILTER_RESET","COMPANY_SET_EDITING_USER","USERS","COMPANIES","USER_REQUESTS","COMPANY_STATUS_CHANGE_CONFIRMATION","MEMBER_STATUS_CHANGE_CONFIRMATION","COMPANY_APPROVE_REQUEST","COMPANY_APPROVE_SUCCESS","COMPANY_APPROVE_FAILURE","RESEND_INVITE_CONFIRMATION","RESET_PASSWORD_CONFIRMATION","COMPANY_FILTER_CHNAGED","MEMBER_FILTER_APPLY","MEMBERS_FILTER_CHNAGED","savingUserFlag","SAVING_USER","COMPANY_MEMBER_SET_OFAC_FAILURE","COMPANY_SET_OFAC_FAILURE","TFA_STATUS_CHANGE_CONFIRMATION","COMPANY_GET_USER_LIST_REQUEST_STATUS","MANAGE_SET_REQUEST_STATE_EXPORT_COMPANIES","companyDetailsActions","isBrokerDealer","rowKey","fetchCompanyDetailsRequest","fetchCompanyDetailsResponse","setCompanyDetails","companyMembersActions","fetchCompanyMembers","createAsyncAction","controlPanelActions","_history$location","_history$location$sta","securityDetailsActions","securityDetailsReset","sellerBiddingActions","showBidList","autoFeedbackSettingsActions","showAutoFeedbackSettingsPanel","bwicHistoryActions","showHistory","rulesActions","pxTalkListActions","dealerListPanelActions","textRulesPanelActions","dashboardInit","dashboardInitSuccess","dashboardInitFailure","dashboardFetchBwics","dashboardFetchPortfolioExist","dashboardInitPortfolioSecurities","dashboardFetchPortfolioSecurities","dashboardFetchColorRates","dashboardFetchDntRates","dashboardFetchSameDayPeriods","dashboardInitTradingStats","dashboardFetchTradingStats","dashboardInitPriceLevel","dashboardFetchPriceLevel","dashboardFetchBidRequestsAsSeller","dashboardFetchDtcSellingBuying","dashboardFetchAAAPriceLevel","dashboardFetchMostTradedTickers","dashboardFetchBiggestMovers","dashboardFetchDtcIgHy","dashboardFetchPxTalkDeviation","dashboardFetchBwicPercentOfTrace","dashboardFetchKWatchNews","dashboardFetchTopIssuers","types","ccy","year","collateralTypes","dashboardFetchTopIssuersResult","dashboardExportTopIssuers","sortingParams","dashboardSetRequestStatusExportTopIssuers","dashboardFetchTopArrangers","collat","dashboardFetchTopArrangersResult","dashboardExportTopArrangers","dashboardSetRequestStatusExportTopArrangers","dashboardFetchTopTrustees","dashboardFetchTopTrusteesResult","dashboardExportTopTrustees","dashboardSetRequestStatusExportTopTrustees","dashboardFetchTopStaticDeals","dashboardFetchTopStaticDealsResult","dashboardExportTopStaticDeals","orderByTransaction","dashboardSetRequestStatusExportTopStaticDeals","dashboardFetchTopDebutDeals","dashboardFetchTopDebutDealsResult","dashboardExportTopDebutDeals","dashboardSetRequestStatusExportTopDebutDeals","dashboardFetchKIndicator","dashboardSetFilter","dashboardSetNotAppliedFilter","dashboardClearFilter","dashboardSetFilterActive","dashboardResetNotAppliedFilter","dashboardReset","dashboardOnSelectedSecurity","dashboardSetSearchTermItem","text","dashboardFetchSecurityHistoryRequest","dashboardFetchSecurityHistorySuccess","securityHistory","dashboardFetchSecurityHistoryFailure","dashboardExportBwiStatistic","dashboardExportTradingStats","currencies","ratings","dashboardSetRequestStatusExportTradingStats","dashboardPushUpdateTradingStats","tradingStats","dashboardPushUpdatePriceLevel","priceLevel","dashboardPushBiggestMovers","biggestMovers","dashboardPushUpdateMostTradedTickers","mostTradedTickers","dashboardInitIssueTransactionVolume","dashboardIssueTransactionVolumeRequest","dashboardIssueTransactionVolumeResult","dashboardUsBslEsgNewIssueRequest","grouping","dashboardUsBslEsgNewIssueResult","esgLanguageDeals","usBslNewIssue","dashboardGetPortfolioInventorySecuritiesRequest","pageNumber","itemsOnPage","sortField","sortOrder","dashboardGetPortfolioInventorySecuritiesSuccess","dashboardGetPortfolioInventorySecuritiesFailure","dashboardSetPortfolioInventoryCurrentPage","currentPage","dashboardPortfolioInventorySortParamsChanged","dashboardPortfolioInventoryReset","dashboardUsBslEuCompliantDealsRequest","dashboardUsBslEuCompliantDealsResult","usBslEuCompliantDeals","usBslDeals","dashboardShortLongDatedDealsRequest","managerReferenceName","dashboardShortLongDatedDealsResult","dashboardIssuanceSpreadRequest","dashboardIssuanceSpreadResult","dashboarNewIssuedWeeklySpreadsRequest","dashboardNewIssueWeeklySpreadsResult","toggleCompanyVisible","identifier","setLastSelectedCompanyIdentifier","toggleAllFavoriteCompaniesVisible","toggleAllPlatformVisible","toggleAllOffPlatformVisible","toggleAllSettlmentsClientsVisible","toggleAllFavoriteVisibleFlagOnly","toggleAllPlatformVisibleFlagOnly","toggleAllSettlmentsClientsFlagOnly","toggleAllOffPlatformVisibleFlagOnly","setDefaultVisibility","companiesToHide","setDisabledCompanies","disabledCompanies","setBidOnlyFlag","bidOnlyFlag","stage2ParticipantsFlagChange","isStage2participantsOnly","showAllEnabled","showBwicParticipantsOnly","setDealerExpanded","expandDealers","dealers","expandedAll","toggleExpandedAllDealers","setExpandAllDealers","setEditableContact","contact","dealerName","editableContactUpdateDealer","editableContactSave","editableContactSetRequestStatus","requestStatus","deleteContact","contactInviteToJoin","distributionListInviteToJoin","headOfTradingInviteToJoin","contactInviteToJoinSetRequestStatus","dealerListActions","resetEditableContact","getDeals","getDealsResult","deals","getDealDetails","getDealDetailsResult","dealDetails","getClassSecondaryInfo","selectedClass","getClassSecondaryInfoResult","securityStatistics","resetDeals","editDeal","editDealReset","updateDeal","formData","updateDealResult","deleteDealRequest","deleteDealResult","allClassesEdit","classes","allClassesEditInit","deal","allClassesUpdate","dealReferenceName","allClassesUpdateResponse","allClassesCacheTranche","tranche","allClassesInvalidateTranceCache","updateGridRow","updateDealDocuments","documentsWithPattern","updateDealDocumentsResult","amrInfoClassesEdit","amrInfoSave","transactionReferenceName","amrInfo","saveAmrInfoResponse","deleteAmrTransaction","saveExcludedDealersRequest","classReferenceName","excludedDealersReferenceNames","saveExcludedDealersResponse","saveSettlementInstructionsRequest","settlementInstructions","saveSettlementInstructionsResponse","exportSettlementInstructions","dealLegalName","classLegalName","openFigiErrorTickersResponse","errorTickers","dealsActions","allClassesUpdateStatus","clone","TrancheStatus","Inactive","updatedTranche","balance","margin","redeemed","floaterIndex","coupon","ratingDbrs","ratingFitch","ratingKbra","ratingMoodys","ratingSnP","hasHistoryData","historyBalance","historyMargin","historyFloaterIndex","historyRatingDbrs","historyRatingFitch","historyRatingKbra","historyRatingMoodys","historyRatingSnP","cachedData","cachedItem","allClasses","cachedInactiveClasses","Draft","allClassesUpdateCoupon","updatedTrahcne","amrFormatUtils","formatInventoryCoupon","allClassesUpdateTickers","selectedDeal","updatedDataItem","ticker144A","formatUtils","formatTickerRule144a","ticker","tickerRegS","formatTickerRuleRegS","tickerAccdInvCertif","formatTickerRuleAccInvCertif","confirmRequest","onConfirm","confirmSuccess","confirmFailure","downloadPdfRequest","downloadPdfSuccess","downloadPdfFailure","directBiddingDisclaimerActions","blockerId","confirmed","initialReferenceName","getInitResult","newsList","managers","arrangers","getTotalCountResult","totalCount","loadMoreNewsList","loadMoreNewsListResult","searchNewsList","searchNewsListResult","setInitialNews","initialNews","updateNewsList","setSearchTerm","editNewsActions","getNewsDetails","getNewsDetailsResult","newsData","createOrUpdateNews","deleteNews","resetNewsDetails","editCompanyActions","companyPromise","statesPromise","states","setLoadingCompanyStatus","getCompany","getStates","constants","USCountryCode","loadCountries","loadStates","storeSalesRepresentatives","selected","с","Error","countryCode","loadCities","stateId","registrationType","manualRegistration","RegistrationType","manual","sendLink","mpid","headOfTrading","loadCompany","values","_getState$editCompany","model","salesRepresentativesToAssign","salesRepresentativesToUnassign","assignPromise","unassignPromise","saving","editCompany","website","cityId","city","zipCode","address","code","toUpperCase","distributionList","headOfTradingFirstName","headOfTradingLastName","headOfTradingEmail","office","headOfTradingOffice","mobile","headOfTradingMobile","v","assign","representativeUserIdList","unassign","SAVED","companyInformationCanNotBeChanged","SALES_REPRESENTATIVES","getCities","cities","CITIES","STATES","COMPANY","EDIT_COMPANY_LOADING_STATUS","isSaving","SAVING","editParsedBwicActions","bwicReferenceName","day","bwicPromise","processSettings","timeSpan","daysService","getNextBusinessDate","bwicService","getByReferenceName","editParsedBwic","changeDate","changeBidsDueTime","bidsDue","changeGoodUntilTime","goodUntil","changeTimeZone","timeZone","changeDaysToSettle","daysToSettle","changeCustomRules","process","rulesText","securitiesActions","storeOriginalBwic","changeEmailReceivedDate","emailReceivedDate","parsedProcess","getProcessSpecificSettings","changeReserveLevelsApply","reserveLevelsApply","changeCanTradeEarly","canTradeEarly","changeCanBidEarly","canBidEarly","changePartialBidsAccepted","partialBidsAccepted","changeBwicProcessType","processType","changeHardCutOffNumber","hardCutOff","changeStage1EndTime","stage1EndDateUtc","changeStage2EndTime","stage2EndDateUtc","changeStage2Participants","improverCount","bidsGoodFor","dateTimeUtils","parseTimeSpan","changeBidsGoodForHours","hours","changeBidsGoodForMinutes","minutes","timestampToUtcString","daysToSettleDefault","BwicProcessType","TopX","showManageParsedBwics","push","manageParsedBwics","isPositionsValid","setSaveProgressState","doSave","saved","cantSavePxTalk409","finally","saveAndPublish","parsedBwicsService","publish","saveOnExit","pathname","beforeNavigateCallback","cancelDialog","cancelBwic","cancel","JumpBall","jumpBall","topX","BestFootForward","bff","Unknown","unknown","STORE_ORIGINAL_BWIC","_getState$editParsedB","SET_EMAIL_RECEIVED_DATE","_getState$editParsedB2","CHANGE_DATE","days","DAYS_TO_SETTLE","TIME_ZONE","time","_getState$editParsedB3","BIDS_DUE","hasTimeErrors","bidsDueTime","moment","goodUntilTime","add","isSame","format","dateTimeFormatUtc","_getState$editParsedB4","GOOD_UNTIL","RULES_TEXT","RESERVE_LEVELS_APPLY_CHANHE","CAN_TRADE_EARLY_CHANGE","CAN_BID_EARLY_CHANGE","PARTIAL_BIDS_ACCEPTED_CHANHE","getDefaultStage1EndTimeUtc","getDefaultStage2Participants","Stage2Participants","Top3","BWIC_PROCESS_TYPE_CHANGE","Standard","HARD_CUT_OFF_NUMBER_CHANGE","bwicProcessType","getDefaultStage2EndTimeUtc","STAGE_1_TIME_CHANGE","STAGE_2_TIME_CHANGE","BIDS_GOOD_FOR_HOURS_CHANGE","BIDS_GOOD_FOR_MINUTES_CHANGE","STAGE_2_PARTICIPANTS_CHANGE","_getState$editParsedB5","bidsGoodForHours","bidsGoodForMinutes","_objectWithoutProperties","_excluded","setBwicDate","adjustTime","empty","invalidValue","momentDate","weekday","isoWeekday","d","bwicDateShouldNotBeWeekend","validateDate","bidsDueShoulbBeLessThanGoodUntil","validateTime","min","subtract","max","isAfter","isBefore","dateFormat","validateEmailReceivedDate","totalMinutes","maxHours","shouldBeBetween","validateBidsGoodFor","stage1End","stage2End","start","end","isSameOrAfter","validateStage1End","isSameOrBefore","validateStage2End","x","VALIDATE","validation","utcTime","timestampFromUtcString","bwicDate","set","minute","SAVING_STATE","replacePriceTalks","BWIC_SAVED","_setBwicDate","_setBwicDate2","positions","_state$editParsedBwic","startOf","utcOffset","toISOString","CANCEL_DIALOG","preferences","inventoryAlertChange","enabled","emailPreferencesActions","bwicAlertChange","tickers","pipeline","arrangersPipelineActions","availableBrokerDealersActions","requestTrades","requestTradesResult","awaitingTrades","cloSystemInfrastructureActions","responseData","cloSystemInfrastructure","collateralManagersActions","requestCollateralManagers","responseCollateralManagers","collateralManagers","transactions","latestTransactionActions","liveBiddingActions","stage2LevelChange","level","tiedForBest","sentDateUtc","stage2Start","canDealerBidOnPositions","partiesActions","item","resetForType","_len","Array","_key","pushHistoryActions","trades","rejectedTradeActions","setTradesAsResolved","tradeIds","pushBuyerRejectTrade","trustee","trusteeActions","err","ERROR_RESET","isRequestCancelationError","REQUEST_CANCELATION_ERROR","CRITICAL_ERROR","caption","errorJson","jsonUtils","tryParse","title","isModal","displayInModal","refreshButtonVisible","Boolean","favoriteBrokerDealersActions","fetchFavoriteBrokerDealersRequest","fetchFavoriteBrokerDealersSuccess","favorites","fetchFavoriteBrokerDealersFailure","updateFavoriteBrokerDealerRequest","isFavorite","updateFavoriteBrokerDealerSuccess","updateFavoriteBrokerDealerFailure","createFilterActions","filterType","selectFilterFromConfig","selectedFilter","filterSelectChange","option","filterName","resetFiltersAndUnselectSavedFilter","filterSelectSelectAll","filterSelectClearAll","makeFilterVisible","updateFilterState","applyFilter","resetFilter","resetFilterState","resetFiltersVisibility","filterVisibilityChange","storeFilterData","changeRangeFilter","filterRadioChange","filterRadioClearOption","filterRangeClearSelectedOptions","setFilterByReferenceName","selectedFilterReferenceName","filterDateClearSelectedOptions","filterDateSelectOption","filterDateTimeOptionSelected","filterDateSelectCustomRange","filterDateTimeSelectCustomRange","filterDateSelectYearsRange","setRedirectFilters","redirectWithNoFilter","filterDateQueryStringDeserialized","deserializeResult","resetSelectedFilter","headers","rowsLimit","gridRowsLimit","minDrafts","autoFocus","GRID_SET_MOUNTED_KEY","Date","getTime","setColumns","updateRowsLimit","appendDrafts","setInitialPosition","showHelp","addColumn","positionIndex","ADD_COLUMN","removeColumn","REMOVE_COLUMN","moveColumnData","fromColumnName","toColumnName","applyOrCancelEdit","MOVE_COLUMN_DATA","clearCell","setFocus","index","columnName","editing","hideHelp","POSITION_CHANGE","cancelEdit","applyEdit","targetColumnName","_getState$grid13","orderByUpdate","isMoney","nonDrafts","drafts","allSorted","sort","compareNumbers","columns","comparePxTalks","color","compareColors","compareRatings","compareStrings","getSortedDataItems","a","b","valueA","valueB","compareUtils","Math","p","normalizedLevel","MAX_VALUE","numberA","formatColor","localeCompare","MIN_VALUE","Ratings","includes","ordering","_getState$grid14","DELETE_ROW","appendDataItems","createDraftDataItem","h","unique","deleteDataItemsWithErrors","DELETE_INVALID","deleteFlaggedDataItems","DELETE_FLAGGED","addDataItems","newItems","_getState$grid","_getState$grid$dataIt","currentItems","dataItemsLimitError","ADD_DATA_ITEMS","replaceDataItem","addFileToDataItem","processKeyCode","keyCode","ctrl","meta","shift","deleteDisabled","_getState$grid16","selection","inputBlocked","isMovement","moveUpOrDown","isEnteringValue","readonly","cancelOnLeave","moveLeft","lastSelectedIndex","nextIndex","setSelection","indexOf","arrayUtils","removeRight","SAME_POSITION","selectTop","moveUp","moveRight","limit","selectBottom","moveDown","DELETE_SELECTED","selectRow","_store$getState$grid","store","selectedIndex","removeAt","Set","indexes","arrayFromRange","removeMany","setUploadState","progress","filename","upload","uploadStatus","uploading","DATA_ITEMS_UPLOAD_STATE","floor","blockInput","dataProcessing","isDataProcessing","DATA_PROCESSING","parseValue","addRow","moveRowUp","newIndex","CHANGE_ROW_ORDER","moveRowDown","clear","CLEAR","ROWS_LIMIT","SETUP_HEADERS","REPLACE_DATA_ITEM","gridDataItemsLimitExceeded","gridDataItemsLimitExceededTitle","_getState$grid2","INSERT_DATA_ITEMS","APPEND_DATA_ITEMS","_getState$grid3","header","canEdit","requestCancelationController","abort","editingValue","_getState$grid4","editingError","pattern","normalized","String","test","defaultValue","changePxTalkActions","changeColorActions","readonlyCallback","_getState$grid5","moveNextRow","_getState$grid6","findIndex","_getState$grid7","_getState$grid8","_getState$grid9","headerIndex","_getState$grid10","every","_h$initialValue","isArray","UPDATE_DRAFT","_dataItem$errors","_getState$grid11","editingHeader","APPLY_EDIT","hasColumnDependencies","updateDependencyColumnsCallback","headerError","_getState$grid12","parse","moneyUtils","editingDataItem","_defineProperty","_getState$grid15","errorMessage","validatePropertyValue","EDITING","_step","_iterator","_createForOfIteratorHelper","n","done","f","_getState$grid17","SET_SELECTION","_getState$grid18","draftCountToAdd","nonDraftCount","calculateMinDraftToAdd","calculateFixedGridDraftToAdd","fill","_getState$grid19","dirty","validationResult","isDuplicated","validateDataItem","validatedHeaders","validateHeader","validateHeaders","titleForError","required","_ref$required","stringUtils","isNullOrEmpty","number","sensitivity","source","selectSourceItemsCallback","contactsSave","lastIndexOf","isTickerValid","allowedValues","_a$key","validateRange","SHOW_HELP","HIDE_HELP","block","BLOCK_INPUT","fetchSection","helpResourcesActions","fetchCategories","fetchBySearch","loadMoreSearch","resetSection","resetSearch","getUserConfig","callback","getUserConfigResult","userConfig","getUserFilterConfig","configType","getUserFilterConfigResult","updateUserConfig","imUserConfig","config","JSON","stringify","updateUserConfigResult","getDefaultUserColumnsConfig","getDefaultUserColumnsConfigResult","columnConfig","selectUserFilter","userFilter","createUserFilter","pipelineType","createUserFilterResult","userConfigFilter","updateUserFilter","updateUserFilterResult","setUserFilterParams","params","setUserFilterParamsResult","deleteUserFilter","deleteUserFilterResult","updateUserFilterEmailAlerts","singleUpdateAlertOption","newTransactionAlertOption","statisticAlertOption","filterEmailAlerts","imUserConfigActions","saveTransactionAlerts","configs","saveCompanyAlerts","loadBwicDates","queryParams","_getState","currentYearHolidaysPromise","nextYearHolidaysPromise","todayIsBusinessDayPromise","currentYearHolidays","nextYearHolidays","todayIsBusinessDay","holidays","minDate","dateTime","dueTime","isInitializing","initializing","getFullYear","appConfig","canCreateBwicOnUSFederalHolidays","getHolidays","isBusinessDay","toDate","utc","processActions","setMinDate","setHolidays","storeNextBusiessDay","bidDueDefaultTimestamp","goodUntilDefaultTimestamp","formatTimeStringWithoutTimeZone","securitiesWithoutPxTalkAndColor","isinCusip","lookup","compareCallback","lookupItem","_security$isin","_security$cusip","isin","toLowerCase","startsWith","cusip","fetchCallback","_fetchCallback","abortSignal","searchSecuritiesGlobal","description","onLookupItemSelected","insertSelectedSecurity","_fetchCallback2","toString","insertSecurityFromQueryParams","uploadSecurities","mergeWithPrevious","mountedKey","extension","split","pop","gridFileUploadMaximumSize","fileSizeLimitExceeded","currentMountedKey","lengthComputable","percentComplete","loaded","total","normalizeParsedInventoryPosition","merged","mergeDataItems","ensureFlaggedModalShown","setSecurityNew","setTimeout","none","invalidFileType","handleClipboardData","clipboardData","_getState$grid$positi","parseSecuritiesStirng","savePxTalks","changePxTalk","saveColor","_getState$changeColor","changeColor","validateTradeLimits","_getState2","VALIDATE_TRADE_LIMITS_REQUEST","VALIDATE_TRADE_LIMITS_SUCCESS","VALIDATE_TRADE_LIMITS_ERROR","setFlaggedModal","get","isins","cusips","tickersQueryParams","isinsQueryParams","cusipsQueryParams","securityFromQueryParams","join","INITIALIZING","actualItems","updatedItems","isNew","actualItemsCopy","el","isFlagged","actualIndex","actual","valueOrEmpty","isEqual","isUpdate","isFlaggedModalVisible","SECURITIES_SET_FLAGGED_MODAL","formsActions","activateValidation","DISPLAY_VALIDATION_ERRORS","newBWICActions","EDIT_BWIC","changeStep","steps","nextStep","activeStep","_process","selectedDealers","selectPlatformDealersPopupVisible","_getState3","newBWIC","stepKeys","activeStepIndex","nextStepKey","isRequestSuccess","validateTradeLimitsRequestState","participants","newBwicDealers","newBwicDealersSelector","newBwicDealersActions","setSelectPlatformDealersPopupVisible","Object","previousStep","previousStepKey","submit","isRequesting","_getState4","templates","setTime","earlyTrades","processTemplateId","autoFeedbackDelay","minBidIncrement","cutOffReminder","Live","stage1Deadline","liveBidding","improvementRound","levelSpecificationType","openBiddingImproverCount","jumpBallAutomaticStage1Deadline","automaticStage1Deadline","jumpBallImproverCount","jumpBallImprovementRound","topXAutomaticStage1Deadline","topXImproverCount","topXImprovementRound","BffStage1Deadline","isAllToAll","_process$isAllToAll","hasRoles","getIsAlltoAllProtocol","submitActions","submitState","newBWICCreated","failure","DEALERS_SET_SEARCH_TERM","updateFilterOption","filterOption","DEALERS_UPDATE_FILTER_OPTION","clearFilterOptions","DEALERS_CLEAR_FILTER_OPTIONS","documentsActions","RESET_WIZARD","step","CHANGE_STEP","securityIdList","uploadDocumentsActions","SUBMIT_STATE","userCompany","getCurrentUserCompany","STORE_USER_COMPANY","editPortfolioActions","portfolioReferenceName","loading","portfolioService","getPortfolio","portfolio","PORTFOLIO_LOADED","createNewPortfolio","portfolioName","portfolioSaveSecuritiesMessage","portfolioSaveSecuritiesTitle","PORTFOLIO_UPDATE_REQUEST","PORTFOLIO_UPDATE_SUCCESS","PORTFOLIO_SAVED","activeInventorySecurityActions","portfolioListActions","PORTFOLIO_UPDATE_FAILURE","renamePortfolioDialog","RENAME_DIALOG_VISIBLE","dialog","updatePortfolioSecurities","updatedPortfolioName","editPortfolio","renamePortfolio","savePositions","deletePortfolioDialog","DELETE_PORTFOLIO_DIALOG","deletePortfolio","portfolioId","PORTFOLIO_DELETED","exportPortfolio","setRequestingExportState","isLoading","EDIT_PORTFOLIO_LOADING","PORTFOLIO_SET_REQUESTING_EXPORT_STATE","manageParsedBwicsActions","filterQueryString","queryString","searchSecuritiesActions","resetFilters","loadFilterFromQueryString","search","hardReset","lastAppliedSearchTerm","searchSecurities","refreshLastUpdatedDate","REFRESH_LAST_UPDATED_DATE","filterDateChange","filterCustomDateChange","filterStatusChange","filterPublishedChange","setBwicCollapsedState","collapsed","SET_BWIC_COLLAPSED_STATE","_getState$manageParse","bwics","collapseAll","collapsedCount","setCollapseAll","securitySelectionChange","POSITION_SELECTION_CHANGE","publishDialog","unpublishDialog","deleteBwicDialog","onReview","updateBwicList","unpublish","editPxTalk","savePxTalk","_state$changePxTalk","deletedPriceTalks","_state$manageParsedBw2","priceTalkLock","pxTalkService","newPriceTalkLock","UPDATE_PXTALK","editColor","_state$changeColor","_state$manageParsedBw3","colorService","UPDATE_COLOR","deleteColor","_getState$manageParse2","showNewBwic","j","editActions","newParsedBWIC","deleteBwic","changeAmrFlag","setRequestStatusIsAMR","MANAGE_PARSED_BWICS_SET_IS_AMR_FLAG","loadNextPage","_getState$manageParse3","searchInProgress","isNextPageRequesting","nextPageRequesting","from","to","serializers","identifiers","addSearchItem","statusKeys","published","queryStringSerializer","deserialize","_getDateRangeOption","getDateRangeOption","customRange","bwicDateFilterOptions","custom","shouldSearch","RESET_FILTERS","LOADING","MANAGE_PARSED_BWICS_RESET_PAGING","SEARCH_PROGRESS","searchCriteria","lastAppliedFilter","searchTermItems","theFilter","isinCusipsAndTickers","getPublishedOption","stateOptions","getSearchCriteria","_state$manageParsedBw","currentPageNumber","pageSize","nextPageNumber","serialize","SEARCH_COMPLETE","options","FILTER_DATE_CHANGE","customDateRange","FILTER_CUSTOM_DATE_CHANGE","FILTER_STATUS_SELECTION_CHANGE","FILTER_PUBLISHED_STATE_SELECTION_CHANGE","SET_COLLAPSE_ALL","PUBLISH_DIALOG","UNPUBLISH_DIALOG","UPDATE_BWIC_LIST","_getState$entities$pr","preloadedPxTalks","entities","priceTalks","EDIT_PXTALK","EDIT_COLOR","DELETE_BWIC_DIALOG","MANAGE_PARSED_BWICS_NEXT_PAGE_REQUESTING","MANAGE_PARSED_BWICS_SET_REQUEST_STATUS_IS_AMR","STORE_PXTALKS","resetCompanies","pxTalk","ADD_PXTALK","talkChange","talk","TALK_CHANGE","change","pxTalkUtils","normalizeDecimalPlaces","normalizeTalk","levelTypeChange","levelType","LEVEL_TYPE_CHANGE","deletePxTalk","DELETE_PX_TALK","waitNormalizing","normalizedCallback","wait","isNormalizing","isNullOrWhiteSpace","setPxTalkError","match","normalizing","normalize","updateValues","parsedLevel","toFixed","NORMALIZED_LEVEL_CHANGE","validatePxTalk","normalizedLevelChange","responseMessage","VALIDATION_RESULT","TALK_ERROR","NORMALIZING","dm","SET_COLOR","levelSpecifications","cover","pxTalkLevelTypes","price","traded","colorType","colorTypes","setDm","CHANGE_COLOR_SET_DM","tradedChange","TRADED_CHANGE","setColorError","levelSpecificationChange","levelSpecification","LEVEL_SPECIFICATION_CHANGE","levelChange","LEVEL_CHANGE","normalizeLevel","setNormalizedLevel","updateColor","validateLevel","setLevelError","SET_LEVEL_ERROR","colorError","tradedBest","best","dntCover","invalidColor","validateColor","SET_COLOR_ERROR","levelError","contactsSaveActions","companyDomainsPromise","companyDomains","allContacts","getBrokerDealers","getCompanyDomains","loadCompanies","loadCompanyDomains","setCompanyNameByEmailDomain","contactsService","getContacts","storeInitialContacts","setEditMode","selectCompany","resetCompaniesLookup","_getState$contactsSav","companiesLookup","searchTermLowerCase","COMPANIES_LOOKUP","uploadContacts","clipboardText","parseContactsStirng","deletedContacts","conflicts","findConflicts","switchView","contactsSaveViews","saveResolved","deleteDuplicate","DELETE_DUPLICATE_CONTACT","ENSURE_CONFLICTS_RESOLVED","backToContactsEdit","RESET_CONFLICTS","CONTACT_SAVE_LOADING","INITIAL_CONTACTS","EDIT_MODE","LOAD_COMPANIES","LOAD_COMPANY_DOMAINS","_getState$contactsSav2","contactIndexesToSkip","duplicates","isDeleted","flat","contactIndex","contactsToSave","bulkSave","storeConflicts","view","SWITCH_VIEW","currentContacts","contactsIndexed","nameDuplicates","emailDuplicates","nameConflicts","emailConflicts","findNameDuplicates","findEmailDuplicates","has","nameUtils","getFullName","nameEquals","otherFullName","currentDuplicates","localDuplicates","cc","Map","conflictType","contactConflictTypes","duplicateName","isResolved","duplicateEmail","STORE_CONFLICTS","exstingContacts","DELETE_CONTACT","gridItemIndex","domainName","substring","domains","domainNames","portfolioDocumentsActions","portfolios","getPortfolios","getSecurityIdList","otherSellerBiddingActions","OTHER_SELLER_BIDDING_STORE_SECURITIES","OTHER_SELLER_BIDDING_RESET","dealersActions","requestToBid","settlementAgentId","setRequestStatus","settlementAgentAgreementService","sendRequest","hideBidRequestConfirmPopup","DEALERS_RESET_STATE","updateFilterOptions","showBidRequestConfirmPopup","DEALERS_SHOW_CONFIRM_BID_REQUEST_POPUP","DEALERS_REQUEST_TO_BID_SET_REQUEST_STATUS","DEALERS_HIDE_CONFIRM_BID_REQUEST_POPUP","pushInvitationActions","dataPushReceived","trace","colorDistributionActions","setBwicColorDistribution","cancelColorDistribution","sellerBidding","isCompleteInProgress","setColorDistribution","COLOR_DISTRIBUTION_RESET","completeBwic","_getState$sellerBiddi","colorDistribution","setCompleteInProgress","colorDistributionModel","_s$bids","colorDistributionType","TradeStatus","pending","affirmed","forDNTType","colorDistributionTypes","forTradedType","tradedTypeChange","tradedType","COLOR_DISTRIBUTION_TRADED_TYPE_CHANGE","dntTypeChange","dntType","COLOR_DISTRIBUTION_DNT_TYPE_CHANGE","positionColorTypeChange","COLOR_DISTRIBUTION_POSITION_COLOR_TYPE_CHANGE","isColorDistribution","COLOR_DISTRIBUTION_SET_BWIC_COLOR_DISTRIBUTION","inProgress","COLOR_DISTRIBUTION_COMPLETE_IN_PROGRESS","onBoardingTooltipNav","onBoardingTooltipClose","onBoardingTooltipGotIt","doNotShowSupportPopup","onBoardingTooltipSetVisible","onBoardingTooltipSetCountRequest","onBoardingTooltipSetCountSuccess","onBoardingTooltipSetCountFailure","onBoardingTooltipSetVisibleSupportPopup","onBoardingReset","inviteToJoinActions","setVisiblePopup","inviteToJoinActionTypes","INVITE_TO_JOIN_TOGGLE_VISIBLE_POPUP","sendInviteToJoin","INVITE_TO_JOIN_INVITE_ALL_REQUEST","inviteAllToJoin","INVITE_TO_JOIN_INVITE_ALL_SUCCESS","INVITE_TO_JOIN_INVITE_ALL_FAILURE","loadHistory","historyState","bwicHistory","loadHistoryState","getBwicHistory","toggleHistory","markHistoryMessagesAsRead","messages","MARK_HISTORY_MESSAGES_AS_READ","console","log","historyActions","STORE_BWIC_HISTORY","LOAD_HISTORY_REQUEST_STATE","SHOW_BWIC_HISTORY","PX_TALK_LIST_VISIBLE","pxTalkList","initRequestStatus","bidAsDealerRequestExist","dateFilterChange","customDateFilterChange","bwicStatusFilterChange","currencyFilterChange","ratingFilterChange","typeFilterChange","sizeFilterChange","filterApply","isApply","isSearchTermChange","filterReset","dataItemsLoadingState","storeSearchResult","summary","storeCurrencySelectedStatus","isSelected","submitBidRequest","updateBidRequests","updateRequestStateSubmitBid","saveSearchTermItems","searchItems","pagingReset","storeAppliedFilter","confirmBidRequestPopup","exportBidRequestsRequest","exportBidRequestsSuccess","exportBidRequestsFailure","updateEditBidRequestState","editBidRequestState","sellerBuysideActions","valueRaw","agreement","axedChange","axed","finalChange","final","commissionChange","resetPositionEditState","submittedBidsFilterChange","submittedBidsFilterValue","liveBiddingStage2TimerExpired","sortChanged","sortBy","sortFieldChanged","advancedFiltersBlocked","resetSummary","imDetailsDealsActions","loadDealDetails","_getState$imDetailsDe","loadedDealReferenceNames","currentDeal","isMedia","actualAuctionsPromise","amrDocumentsPromise","dealDocumentsPromise","loadedDeals","amrDocuments","dealDocuments","actualAuctions","imDetailsDeals","dealDetailsRequesting","dealsService","getLatestDealAuctions","getAmrDocuments","getDealDocuments","getDeal","storeDeals","storeDocuments","storeActualAmrClasses","loadTrancheDetails","selectedTranche","auctions","trancheDetailsRequesting","getClassAuctions","storeAmrClasses","documentsSearchTermChange","filteredDocuments","documents","getDealDocLastDate","dateText","storeDocumentsSearchResults","resetDocumentsSearch","DEALS_RESET_DOCUMENTS_SEARCH","DEALS_STORE_DEALS","DEALS_STORE_DOCUMENTS_SEARCH_RESULTS","amrClasses","DEALS_STORE_ACTUAL_AMR_CLASSES","DEALS_STORE_AMR_CLASSES","DEALS_STORE_DOCUMENTS","DEAL_DETAILS_REQUESTING_STATE","DEALS_TRANCHE_DETAILS_REQUESTUNG_STATE","loadingFlag","paymentCardSavingFlag","storePaymentCards","paymentCards","sortPaymentCards","primaryCardChange","paymentCard","moveOnTop","primaryCardChangeCompleted","deletePaymentCard","deletePaymentCardCompleted","addPaymentCardPopupVisible","addPaymentCard","isLoadingVisible","setAsPrimary","storeBillingContact","billingContact","storeCountries","storeStates","storeCities","billingContactEditFlag","isBillingContactEdit","billingContactSavingFlag","isBillingContactSaving","saveBillingContact","citiesLoadingFlag","isCitiesLoading","billingContactSaved","subscriptionPushReceived","subscription","upgradeSubscription","targetSubscriptionType","showUpgradeSubscriptionWizard","UpgradeSubscriptionStep","BillingContact","subscriptionsActions","hideUpgradeSubscriptionWizard","setUpgradeSubscriptionStep","contactSalesActions","requestSendingFlag","dealersStatsActions","checkStatsExist","statsExist","setRequestStateFetchDealerStatsExist","getDealersStatsService","exist","existStatus","STORE_STATS_EXIST_STATUS","fetchStats","_fetchStats","setFetchStatsRequestStatus","fetch","stats","STORE_STATS","exportDealersStats","exportStats","export","setExportDealerStatsRequestStatus","isSeller","dashboardService","fetchDealersStatsExists","fetchSellersStatsExists","fetchDealersStats","fetchClientsStats","exportSellerStats","FETCH_STATS_EXIST_REQUEST_STATUS","FETCH_STATS_REQUEST_STATUS","EXPORT_STATS_REQUEST_STATUS","setSavingState","lockModifiedDate","setConflictsPopupVisible","setTradedStatus","inventoryPositionId","tradeDate","setTradedRequestStatus","inventoryId","excludeComputedProps","withoutComputedProps","ncEndMonth","ncEndYear","riEndMonth","riEndYear","offer","omitBy","isUndefined","offerDmBps","offerYield","spread","walYears","mvoc","manager","ncEnd","riEnd","creditEnhancement","_entries$find","entries","inventoryFloatingIndexTitles","floaterIndexEnumKey","InventoryFloatingIndex","normalizeNumeric","bid","bidSize","amountToMM","bidDmBps","formatMonthAndYear","ncEndParseResult","parseMonthAndYearStamp","riEndParseResult","isMonthValid","isYearValid","month","raw","trimmed","inventoryEditActions","updateCoupon","inventoryService","ready","sortDirection","requestInventoryExistFlag","inventoryExistFlag","loadSellerInventory","loadSummary","inventoryActions","exportInventoryRequest","exportInventoryResponse","pushInventory","inventories","inventoryStatusChange","advancedFilterBlocked","manageCompaniesFiltersActions","toogleFilterSalesRepresentative","setFilterSalesRepresentative","toogleFilterRegBy","setFilterRegBy","toogleFilterStatusActive","toogleFilterStatusBlocked","toogleFilterStatusOffPlatform","toogleFilterRoleAdministrator","toogleFilterRoleBrokerDealer","toogleFilterRoleSeller","toogleFilterRoleViewer","toogleFilterRoleMedia","setDateFilterChange","setDateFilterRangeChange","getInitialDataRequest","withIssuanceMonitorAccess","getInitialDataSuccess","banks","setRatingCheckedState","checked","setRatingInCurrencyCheckedState","setAllRatingCheckedState","setRatingSize","setCheckedDailyDashboardEmail","alertOption","setPortfolioBwicAlerts","setPortfolioCleansingNoticeAlerts","setPortfolioIssuanceMonitorAlerts","setPortfolioRiAlerts","setPortfolioNcAlerts","setPortfolioRollerDeadlineAlerts","setNewBiwicAlerts","setBiwicReminderAlerts","setPortfolioInventoryAlerts","setBwicByRatingPreferences","bwicByRatingAlertState","setDealerInventoryAlertState","dealerInventoryAlertState","setIssuanceMonitorSingleAlert","singleAlertState","setIssuanceMonitorNewTransactionAlert","transactionAlertState","setIssuanceMonitorStatisticsAlert","statisticAlertState","setIssuanceMonitorFiltersAlert","filtersAlertState","setArrangerPipelineAlert","apAlertOption","setCloManagersAnalyticsAlert","cloManagerAnalyticsAlert","setCloManagersIssuanceMonitorAlert","cloManagerImAlertsConfig","setCloManagersArrangerPipelineAlert","setCloManagersBwicAlert","cloManagerBwicAlert","setCloManagersDealerInventoryAlert","cloManagerDealerInventoryAlert","setBanksAnalyticsAlert","bankAnalyticsAlertConfig","setBanksDealerInventoryAlert","bankDiAlertConfig","setBanksIssuanceMonitorAlert","bankImAlertsConfig","setBanksArrangerPipelineAlert","bankApAlertsConfig","unsubscribeAllBWICsNotifications","unsubscribeAllIssuanceMonitor","unsubscribeAllCloManagers","userCompanyReferenceName","unsubscribeAllBanks","unsubscribeAllPortfolio","rollbackDashboardEmails","rollbackBWICPipelines","rollbackBWICNotifications","rollbackIssuanceMonitor","rollbackArrangerPipeline","rollbackCloManagers","rollbackPortfolio","rollbackInventory","rollbackBanks","saveBwicByRatingPreferencesRequest","saveBwicByRatingPreferencesSuccess","saveBwicByRatingPreferencesFailure","manageEmailPreferencesActions","saveArrangerPipelineRequest","saveBanksRequest","saveEmailPreferencesRequest","saveEmailPreferencesSuccess","emailPreferences","saveEmailPreferencesFailure","savedFilterAlertOptionChange","savedFilterAlertOptionsReset","initPortfolioFilterAlerts","portfolioFilterAlerts","resetPortfolioFilterAlerts","portfolioSavedFilterAlertChange","filterReferenceName","bwicAlert","inventoryAlert","portfolioSavedFilterGlobalAlertChange","portfolioGlobalAlertsChange","bwicGlobalAlertEnabled","inventoryGlobalAlertEnabled","cleansingNoticeAlertEnabled","issuanceMonitorAlertEnabled","outOfRiAlertEnabled","outOfNcAlertEnabled","rollerDeadlineAlertEnabled","manageEmailActions","setFilter","manageMembersFiltersActions","toogleFilterCompanies","setFilterCompanies","toogleFilterStatusInvited","toogleFilterStatusNotInvited","toogleFilterStatusPendingApproval","toggleFilterRoleArrangersClient","toogleFilterRoleBrokerDealerTrader","toogleFilterRoleBrokerDealerViewer","toogleFilterRolesDataEntry","toogleFilterRoleSellerAdministrator","toogleFilterRoleSellerTrader","toogleFilterRoleSellerViewer","toogleFilterRolesSubscriptionManager","toogleFilterCollateralManager","requestTokens","storeTokens","tokens","requestCompanies","setTokenRequestStatus","setCompanyRequestStatus","setGenerateRequestStatus","setUpdateTokenRequestStatus","storeGeneratedToken","token","generate","apis","tokenId","tokenUpdated","revoke","tokenRevoked","setRevokeTokenRequestStatus","toogleFilterStatusExpired","toogleFilterStatusRevoked","toogleFilterApiBlotterApiReader","toogleFilterApiBwicMonitorApiReader","toogleFilterApiIssuanceMonitorApiReader","toogleFilterApiPortfolioApi","toogleFilterApiEvalApiReader","toogleFilterApiDashboardApiReader","resetTokenFilters","manageTokenActions","applyTokenFilters","selectDealers","selectDealer","selectDealersByDefault","resetSelectedByDefaultFlag","sellerBidAsDealerAgreementsPushDataReceived","fetchMarketingEventsRequest","fetchMarketingEventsResponse","events","fetchNewsRequest","tab","fetchNewsResponse","news","fetchNewsDetails","newsReferenceName","fetchNewsDetailsResponse","fetchTotalNewsCountRequest","fetchTotalNewsCountResponse","totalNews","deleteSingleNews","resetNewsList","newsActions","link","downloadDocument","documentReferenceName","fileName","downloadDocuments","newsItem","notificationReset","notificationPushReceived","notification","NotificationType","PushNotification","notificationAddInfo","createNotificationModel","uuidv4","Info","notificationAddInfoMessage","createModalNotificationModel","StatusMessageSectionType","infoModal","blinkBrowserTabText","popupClassName","infoModalReplace","modalKey","Alert","notificationListHideToast","notificationListRemoveModalItem","notificationListToastExpired","modalNotificationListReset","notificationServiceConnect","notificationServiceConnected","notificationServiceDisconnected","notificationServiceReconnecting","notificationServiceReconnected","notificationGetList","appendNotifications","notificationList","notificationAttributes","notificationGetListFailure","notificationsGetCountUnread","notificationsGetCountUnreadFailure","notificationsSetCountUnread","notificationSetReadRequest","notificationSetReadSuccess","notificationSetReadFailure","notificationsReadAllRequest","notificationsReadAllSuccess","notificationsReadAllFailure","notificationRead","notificationReadAll","isReadByUser","subject","pageConfigActions","getConfigs","getDefaultConfig","saveColumns","downloadFileRequest","downloadFileSuccess","downloadFileFailure","portfolioAgreementDisclaimerActions","colorDistributionSend","bwicStatusChanged","updateSendAlertState","sendAlertState","filterActions","BwicFilterType","Portfolio","portfolioActions","redirectWithFilterArguments","togglePortfolioExpanded","EXPANDED_CHANGE","_getState$portfolio","expandedState","expandAll","getExpandedState","expandAllChange","portfolioSelectionChange","selectAll","selectedState","securitiesSelectedState","apiUtils","PORTFOLIO_SELECTED_CHANGE","deletePortfolioConfirmation","securityDetails","portfolioSecuritySelectionChange","portfolioSecurityId","currentSelectedState","portfolioSelectedState","checkSelectedState","showBwicDetails","selectedSecurity","currentBwicHistoryItem","SHOW_BWIC_DETAILS","resetRowSelection","newPortfolioDialog","newPortfolio","createPortfolio","editPortfolioUrl","exportAll","filters","filterCriteria","nonCallEndFromYear","nonCallEndFromDate","nonCallEndFrom","nonCallEndToYear","nonCallEndToDate","nonCallEndTo","reinvestmentEndFromYear","reinvestmentEndFromDate","reinvestmentEndFrom","reinvestmentEndToYear","reinvestmentEndToDate","reinvestmentEndTo","setPortfolioExportingStatus","exportPortfolios","createBwicConfirmed","getSelectedSecurities","cloneDeep","groupSecurities","updatePortfoliosAlertStatus","list","dataToSend","_x$bwicAlert","_x$dealersInventoryAl","_x$cleansingNoticeAle","_x$issuanceMonitorAle","_x$outOfRiPeriodAlert","_x$outOfNcPeriodAlert","_x$rollerDeadlineAler","dealersInventoryAlert","cleansingNoticeAlert","issuanceMonitorAlert","outOfRiPeriodAlert","outOfNcPeriodAlert","rollerDeadlineAlert","bwicAlertChanges","inventoryAlertChanges","cleansingNoticeAlertChanges","issuanceMonitorAlertChanges","outOfRiPeriodAlertChanges","outOfNcPeriodAlertChanges","rollerDeadlineAlertChanges","PORTFOLIO_UPDATE_ALERT_STATUS_REQUEST","updateBwicAlertStatusRequest","UPDATE_INVENTORY_ALERT_STATUS_REQUEST","updateInventoryAlertStatusRequest","UPDATE_CLEANSING_NOTICE_ALERT_STATUS_REQUEST","updateCleansingNoticeAlertStatusRequest","UPDATE_ISSUANCE_MONITOR_ALERT_STATUS_REQUEST","updateIssuanceMonitorAlertStatusRequest","UPDATE_OUT_OF_RI_PERIOD_ALERT_STATUS_REQUEST","updateOutOfRiAlertStatusRequest","UPDATE_OUT_OF_NC_PERIOD_ALERT_STATUS_REQUEST","updateOutOfNcAlertStatusRequest","UPDATE_ROLLER_DEADLINE_ALERT_STATUS_REQUEST","updateRollerDeadlineAlertStatusRequest","updatePortfoliosAlert","PORTFOLIO_UPDATE_ALERT_STATUS_SUCCESS","updateBwicAlertStatusSuccess","UPDATE_INVENTORY_ALERT_STATUS_SUCCESS","updateInventoryAlertStatusSuccess","UPDATE_CLEANSING_NOTICE_ALERT_STATUS_SUCCESS","updateCleansingNoticeAlertStatusSuccess","UPDATE_ISSUANCE_MONITOR_ALERT_STATUS_SUCCESS","updateIssuanceMonitorAlertStatusSuccess","UPDATE_OUT_OF_RI_PERIOD_ALERT_STATUS_SUCCESS","updateOutOfRiAlertStatusSuccess","UPDATE_OUT_OF_NC_PERIOD_ALERT_STATUS_SUCCESS","updateOutOfNcAlertStatusSuccess","UPDATE_ROLLER_DEADLINE_ALERT_STATUS_SUCCESS","updateRollerDeadlineAlertStatusSuccess","PORTFOLIO_UPDATE_ALERT_STATUS_FAILURE","updateBwicAlertStatusFailure","UPDATE_INVENTORY_ALERT_STATUS_FAILURE","updateInventoryAlertStatusFailure","UPDATE_CLEANSING_NOTICE_ALERT_STATUS_FAILURE","updateCleansingNoticeAlertStatusFailure","UPDATE_ISSUANCE_MONITOR_ALERT_STATUS_FAILURE","updateIssuanceMonitorAlertStatusFailure","UPDATE_OUT_OF_RI_PERIOD_ALERT_STATUS_FAILURE","updateOutOfRiAlertStatusFailure","UPDATE_OUT_OF_NC_PERIOD_ALERT_STATUS_FAILURE","updateOutOfNcAlertStatusFailure","UPDATE_ROLLER_DEADLINE_ALERT_STATUS_FAILURE","updateRollerDeadlineAlertStatusFailure","applySearchInput","ADVANCED_FILTER_BLOCKED","multipleCurrencies","dealsLegalNames","esg","euCompliance","staticDeals","noop","trustees","amr","outOfNC","outOfRI","_filter$currency","_filter$ratings","_filter$dealName","_filter$collateralTyp","_filter$managers","_filter$esg","_filter$euCompliance","_filter$staticDeal","_nonCallEndYears$from","_nonCallEndYears$to","_reinvestmentEndYears","_reinvestmentEndYears2","_filter$trustees","_filter$amr","_filter$outOfNC","_filter$outOfRI","nonCallEndYears","getYearsRange","nonCallEnd","reinvestmentEndYears","reinvestmentEnd","nonCallEndDateRange","selectedDateOptions","reinvestmentEndDateRange","defaultDateRange","maturityRange","maturity","selectedOption","convertToApiCriteria","vintageRange","vintage","closingRange","closing","dealName","collateralType","staticDeal","maturityFrom","maturityTo","vintageFrom","vintageTo","closingFrom","closingTo","DELETE_PORTFOLIO_CONFIRMATION","NEW_PORTFOLIO_DIALOG","PORTFOLIO_SET_IS_REQUESTING_EXPORT","grouped","duplicate","g","EXPAND_ALL","addPriceTalk","priceTalk","resetFailed","_process$templates$al","processService","getTemplates","addTemplates","selectTemplate","setBwicDisabledTime","_getState$process$err","_getState$process2","_getState$process2$er","hasTemplateErrors","goodUntilCurrentTime","frameEnd","bwicAllowedTimeRange","NEXT_BUSINESS_DAY","reserveLevelsApplyEnabled","RESERVE_LEVELS_APPLY_ENABLED","updateTemplateDirty","earlyTradesEnabled","EARLY_TRADES_ENABLED","setStage1Deadline","_getState$process$err3","SET_STAGE1_DEADLINE","setImprovementRound","SET_IMPROVEMENT_ROUND","setMinBidIncrement","SET_MIN_BID_INCREMENT","setLevelSpecificationType","SET_LEVEL_SPECIFICATION_TYPE","setOpenBiddingImproverCount","SET_OPEN_BIDDING_IMPROVER_COUNT","resetStage1DeadlineError","_getState$process$err4","resetImprovementRoundError","_getState$process$err5","resetMinBidIncrementError","_getState$process$err6","resetJumpBallStage2DurationMinutes","_getState$process$err7","jumpBallStage2DurationMinutes","resetBestFootForwardDurationMinutes","_getState$process$err19","bestFootForwardDurationMinutes","resetJumpBallStage1AutomaticMinutes","_getState$process$err10","jumpBallStage1AutomaticMinutes","resetTopXStage1AutomaticMinutes","_getState$process$err8","topXStage1AutomaticMinutes","resetTopXStage2DurationMinutes","_getState$process$err9","topXStage2DurationMinutes","titleChange","TITLE_CHANGE","descriptionChange","DESCRIPTION_CHANGE","minimumDate","MIN_DATE","HOLIDAYS","resetChanges","RESET_CHANGES","jumpBallStage1EndManual","JUMP_BALL_STAGE_1_END_MANUAL","RESET_CUT_OFF_REMINDER_MINS","jumpBallStage1EndAuto","JUMP_BALL_STAGE_1_END_AUTO","jumpBallStage1EndAutomaticMinutesChange","_getState$process$err12","JUMP_BALL_STAGE_1_END_AUTO_MINS","jumpBallStage2ParticipantsChange","JUMP_BALL_STAGE_2_PARTICIPANTS_CHANGE","jumpBallStage2DurationUnspecified","JUMP_BALL_STAGE_2_DURATION_UNSPECIFIED","jumpBallStage2DurationPreset","JUMP_BALL_STAGE_2_DURATION_PRESET","jumpBallStage2DurationMinutesChange","_getState$process$err13","JUMP_BALL_STAGE_2_DURATION_MINS","autoFeedbackDelayChange","AUTO_FEEDBACK_DELAY_MINS","autoFeedbackDelayEnabled","AUTO_FEEDBACK_DELAY_ENABLED","autoFeedbackDelayDisabled","AUTO_FEEDBACK_DELAY_DISABLED","_getState$process$err14","minBidIncrementChange","MIN_BID_INCREMENT_CHANGED","minBidIncrementEnabled","MIN_BID_INCREMENT_ENABLED","minBidIncrementDisabled","MIN_BID_INCREMENT_DISABLED","_getState$process$err15","cutOffReminderChange","_getState$process$err11","CUT_OFF_REMINDER_MINS","topXStage1EndManual","TOP_X_STAGE_1_END_MANUAL","topXStage1EndAuto","TOP_X_STAGE_1_END_AUTO","topXStage1EndAutomaticMinutesChange","_getState$process$err16","TOP_X_STAGE_1_END_AUTO_MINS","topXStage2ParticipantsChange","TOP_X_STAGE_2_PARTICIPANTS_CHANGE","topXStage2DurationUnspecified","TOP_X_STAGE_2_DURATION_UNSPECIFIED","topXStage2DurationPreset","TOP_X_STAGE_2_DURATION_PRESET","topXStage2DurationMinutesChange","_getState$process$err17","TOP_X_STAGE_2_DURATION_MINS","bestFootForwardDurationMinutesChange","_getState$process$err18","BEST_FOOT_FORWARD_DURATION_MINS","setAllToAllProtocol","SET_ALL_TO_ALL_PROTOCOL","_getState$process","timeZones","_getBwicAllowedTimeRa","getBwicAllowedTimeRange","fromTime","toTime","allowed","hour","disabledHours","selectedTimeZone","frameEndHour","isBidsDueMinutesDisabled","shouldDisableMinutes","isGoodUntilMinutesDisabled","SET_DISABLED_TIME","utcOffsetMinutes","timeZoneId","est","abbreviation","_constants$bwicAllowe","_getState$process$err2","diff","dateShouldNotBeInPast","bwicDateShouldNotBeHoliday","bidsDueUtc","goodUntilUtc","enableAnyTimeNewBwic","_getBwicAllowedTimeRa2","bwicTimeInvalidRange","timeFormat3","now","bwicTimeShouldNotBeInPast","bidsDueTimestamp","goodUntilTimestamp","timeFormat","bwicDuration","validateNumber","minBidIncrementRange","validateMinBidIncrementTemplate","autoFeedbackDelayRange","validateAutoFeedbackDelay","processRange","range","lessThanErrorMessage","greaterThenErrorMessage","getBestFootForwardCutOffReminderRange","stageDuration","stageDurationMinutes","minBwicDuration","cutOffReminderRange","differenceBetweenStageAndCutOffReminder","getRangeWithStage1Deadline","stage1DeadlineMinutes","validateCutOffReminder","bwicDurationMinutes","stage1Max","openBiddingMinStage2Duration","openBiddingMinStage1Duration","setMoreThanTotalDuration","openBiddingMaxStage2Duration","openBiddingMinBidIncrement","openBiddingMaxBidIncrement","validateLive","_template$jumpBall","settings","stage1EndAutoRange","stage2DurationRange","stagesDuration","r","validateJumpBall","_template$topX","validateTopX","_template$bff","bestFootForward","stage1DeadlineRange","validateBestFootForward","validateTemplate","isDateValid","isTemplateValid","invalidRange","ADD_TEMPLATES","cutOffReminderRangeDefaultMinutes","autoFeedbackDelayDefaultMinutes","LevelSpecificationType","OpenBiddingImproverCount","top3","openBiddingDefaultStage1Deadline","formatBid","defaultMinBidIncrement","JumpBallStage2Participants","stage2DurationDefaultMinutes","stage1EndAutoDefaultMinutes","TopXStage2Participants","stage1DeadlineDefaultMinutes","SELECT_TEMPLATE","_getState$process$tem","original","SET_TEMPLATE_DIRTY_STATE","profileActions","profilePromise","profile","PROFILE_INIT","accountService","getProfile","getProfileCompany","GET_PROFILE_SUCCESS","GET_PROFILE_COMPANY_SUCCESS","toggleEditPhoneMode","toggleEditBloombergEmail","TOGGLE_VISIBILITY_FORM_BLOOMBERG_EMAIL","savePhoneNumber","SAVE_PHONE_NUMBER","savePhoneNumberFailure","CHANGE_PHONE_NUMBER_FAILURE","changeContactPopupVisible","CHANGE_CONTACT_POPUP_VISIBLE","changePasswordFormVisible","personalInfoReset","passwordSettingsReset","accountActions","changePasswordReset","ACCOUNT_SETTINGS_RESET","sellerAdminUsersActions","sellerAdminDealerActions","sellerAdminLimitActions","addNewCompanyTraderToStore","trader","traders","PROFILE_COMPANY_ADD_NEW_TRADER","editNewCompanyTraderInStore","editCompanyContact","submitModel","departmentValue","PROFILE_COMPANY_CONTACT_CHANGED","enableCompanyTrader","_yield$accountService","ENABLE_COMPANY_TRADER_REQUEST","ENABLE_COMPANY_TRADER_SUCCESS","ENABLE_COMPANY_TRADER_FAIL","disableCompanyTrader","_yield$accountService2","DISABLE_COMPANY_TRADER_REQUEST","DISABLE_COMPANY_TRADER_SUCCESS","DISABLE_COMPANY_TRADER_FAIL","setVisibleUploadImagePopup","uploadUserImage","requestStateUploadUserImage","currentUser","userProfilePhotoActions","fetchUserImage","deleteUserImage","requestStateDeleteUserImage","saveBloombergEmail","bloombergEmail","setRequestStatusSaveBloombergEmail","setBloombergEmail","changeBwicAnnouncementNotifications","bwicAnnouncementNotifications","changeBwicAnnouncementNotificationsRequest","saveBwicAnnouncementNotifications","bwicCreateNotifyAdmins","bwicCreateNotifyViewers","changePhoneVisible","CHANGE_PHONE_VISIBLE","IS_REQUEST_SAVE_BLOOMBERG_EMAIL","changePasswordVisible","CHANGE_PASSWORD_FORM_VISIBLE","traderId","PROFILE_COMPANY_EDIT_TRADER","PROFILE_SET_VISIBLE_UPLOAD_USER_IMAGE_POPUP","PROFILE_SET_REQUEST_STATE_UPLOAD_USER_IMAGE","PROFILE_SET_REQUEST_STATE_DELETE_USER_IMAGE","action","actionType","BwicHistoryActionType","NewBid","DirectBid","bwicName","newBid","receivedDate","PushHistoryStateItemType","tradingPositions","_getSecuritiesWithLat","getSecuritiesWithLatestBids","positionWithActualBids","_biddingUtils$getBids","biddingUtils","getBidsByLevel","BidLevel","Best","tradingPositionCompanyChange","getBidCompanyIdentifier","tradeConfirm","handleNewBid","AxedFinalChanged","bidId","modifiedDate","createdBy","axedFinalChange","handleAxedFinalChange","PriceTalk","PUSH_DATA_NEW_PX_TALK","historyAction","newPriceTalk","QuickFeedback","DirectFeedback","feedback","Feedback","quickFeedback","bidRequestType","BidRequestType","BidOrPass","created","bidRequest","handleQuickFeedback","TargetLevel","targetLevel","PUSH_DATA_TARGET_LEVEL","TradedAway","isTradedAway","tradedAway","handleTradedAway","TradeSubmitted","tradeAction","checkAwaitingTrades","TradeAffirmed","TradeRejected","tradeStatus","ColorDistribution","_ref9","handleColorDistribution","ColorDistributionSend","_ref10","colors","publicColors","handleColorDistributionSend","Bidding","handleBwicStatusChanged","BwicStatus","Finished","finished","Canceled","canceled","OpenBiddingStage1Ended","_ref12","stagedBiddingStartStage2","BwicStage1Ended","handleStagedBiddingStartStage2","OpenBiddingStage2Ended","_ref13","stagedBiddingFinishStage2","BwicStage2Ended","handleStagedBiddingFinishStage2","OpenBiddingStage2Level","_ref14","liveBiddingStage2Level","handleLiveBiddingStage2Level","ModifyAutoFeedbackConfig","_ref15","autoFeedbackConfiguration","PUSH_DATA_AUTO_FEEDBACK_CONFIG","handleAutoFeedbackSettingsChanged","BidAsDealerRequest","_data$bidAsDealerRequ","bidAsDealerRequest","sellerBidAsDealerRequest","handleBidAsDealerRequest","BuyerRejectedTrade","BiddingCompleteReminder","_ref16","remainingMinutes","handleBwicCompleteReminder","createCustomAction","tradeConfirmActions","_ref8","setAwaitingBwicTradeStatus","rejectReason","bwicStatus","_ref11","BwicStatusChanged","biddingActions","bwicStatusChange","pushBwicActions","pushUserActions","releaseActions","fetchReleases","getReleaseRequest","getReleaseResponse","releases","markAsReadRequest","markAsReadResponse","separatePanel","RULES_SHOW","rules","RULES_HIDE","salesRepresentativeActions","loadUserSalesRepresentatives","loadSearchLookupTimeout","createSearchTransactionActions","searchTermChange","showLookup","SEARCH_TERM_CHANGE","trimmedSearchTerm","searchTermAcceptedLength","clearTimeout","resetLookupCache","searchItemsRequesting","window","loadSearchLookup","requestSearchLookup","resetSearchLookup","isLoadMore","_amrPipelineSelector","offset","lookupData","amrPipelineSelector","searchTransactions","getDealsList","isDeal","SEARCH_LOOKUP_CACHE","SEARCH_ITEM_ADD","SEARCH_LOOKUP","isSearching","SEARCH_ITEMS_REQUESTING","SEARCH_RESET_LOOKUP_CACHE","applyLookupItem","label","classNames","moveBack","SEARCH_MOVE_BACK","moveForward","SEARCH_MOVE_FORWARD","removeCurrentItem","SEARCH_REMOVE_CURRENT_ITEM","removeSearchItem","SEARCH_ITEM_REMOVE","SEARCH_RESET","stateSearchTerm","SECURITY_SEARCH_ITEM_REMOVE","SECURITY_SEARCH_MOVE_BACK","SECURITY_SEARCH_MOVE_FORWARD","SECURITY_SEARCH_REMOVE_CURRENT_ITEM","_getState$searchSecur","searchTermCache","lookupCache","l","searchInLookupCache","SECURITY_SEARCH_ITEM_ADD","securityDetailsInitRequest","fetchAgencyRatings","securityDetailsInitSuccess","mappings","securityDetailsInitFailure","setEditModeStatus","getExcludedDealersRequest","getExcludedDealersSuccess","excludeNewCompany","getExcludedDealersFailure","dealerIds","saveExcludedDealersSuccess","saveExcludedDealersFailure","getTradeLimitsRequest","getTradeLimitsSuccess","limits","updateTradeLimitsRequest","updateTradeLimitsSuccess","updateTradeLimitsFailure","getUserListRequest","getUserListSuccess","requestUsers","getUserListFailure","setUserUpdateState","userSaved","saveUserRequest","userRequestId","concurrencyStamp","setUserRequestUpdateState","userRequestSaved","userRequest","setUserOperationState","setUserEnabled","setUserDisable","disableUserRequest","enableUserRequest","setUserRequestOperationState","userRequestEnabled","userRequestDisabled","exportUsersRequest","exportUsersResponse","nextBusinessDayPromise","isBidingOrFinished","nextBusinessDay","bidOnBehalfActions","STORE_MIN_SETTLE_DATE","storeHolidays","SELLER_BIDDING_STORE_SECURITIES","reason","SELLER_BIDDING_RESET","apiOperationActions","resetEvent","ApiOperationType","submitBidsOnBehalf","resetEdit","tradeAll","storeTradingPositions","canTradePosition","setTargetLevel","sendTargetLevel","_getState$sellerBiddi4","editTargetLevel","targetLevelRange","SELLER_BIDDING_TARGET_LEVEL_REQUEST","targetLevelRequest","saveTargetLevel","SELLER_BIDDING_TARGET_LEVEL_SUCCESS","targetLevelSuccess","SELLER_BIDDING_TARGET_LEVEL_FAILURE","targetLevelFailure","sendQuickFeedback","bidsList","feedbackType","excludeJumpBallStage2Bids","stagedBiddingStatus","OpenBiddingStatus","stage1Ended","feedbackTypes","submitFinal","onBehalfBids","onBehalf","bidIdList","sendOnBehalfQuickFeedback","feedbackSent","sendOnBehalfFeedback","sendRegularFeedback","tradingPositionSelectionChange","SELLER_BIDDING_TRADING_POSITION_SELECTION_CHANGE","tradeAllChecked","tradingPositionIdList","tradeAllSelectionChange","tradingPositionSettleDateChange","settleDateError","settleDate","_getState$sellerBiddi3","minimumSettleDate","momentHolidays","validateTradingPositionSettleDate","SELLER_BIDDING_TRADING_SETTLE_DATE_CHANGE","tradingPositionCommentChange","SELLER_BIDDING_TADING_COMMENT_CHANGE","tradingCompanyIdentifier","SELLER_BIDDING_TRADING_COMPANY_CHANGE","tradingPositionBidChange","SELLER_BIDDING_TRADING_BID_CHANGE","submitTrade","_getState$sellerBiddi2","tradingBidId","companyBidLock","bidLocks","tradingCompanyId","buyerCompany","bidLock","cancelTrade","toggleBidList","bidList","sendBidRequest","requestType","markBidsShown","MARK_BIDS_SHOWN","SELLER_BIDDING_STORE_HOLIDAYS","hasErrors","validateTradingPositions","SELLER_BIDING_STORE_TRADING_POSITIONS_VALIDATION_RESULT","SELLER_BIDDING_TRADING_CONFIRMATION_VISIBLE","defaultSettleDate","SELLER_BIDDING_STORE_TRADING_POSITIONS","SELLER_BIDDING_QUICK_FEEDBACK_SENT","SELLER_BIDDING_TRADING_TRADE_ALL_SELECTION_CHANGE","momentSettleDate","SELLER_BIDDING_SET_TARGET_LEVEL","SELLER_BIDDING_SHOW_BID_LIST","settlementAccounts","settlementAccountActions","account","deleteAccount","accountId","settlementAgentAgeementPushActions","settlementAgentAgreementPushReceived","settlementAgentRequestPushReceived","settlementAgentAgreementActions","pushDataReceived","signupActions","submitSuccess","submitError","fetchBillingHistory","billingHistory","updateFilter","filterField","setApplyFilter","applyReset","billingHistoryActions","tableActions","hoverChange","hover","expandedChange","expanded","resetExpanded","sortByChange","tableKey","sortingType"],"sourceRoot":""}