{"version":3,"file":"static/js/main-c8121664.2e74a80d.js","mappings":"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","sources":["components/bwic-history/MessageHistoryPanel.tsx","components/blotter/settlement-account/template/TemplateListItem.tsx","components/blotter/settlement-account/template/TemplateList.tsx","components/blotter/settlement-account/template/useTemplateDelete.ts","components/blotter/settlement-account/template/useTemplateActiveChange.ts","components/blotter/settlement-account/template/TemplateEdit.tsx","components/blotter/settlement-account/template/TradeAllocationTemplatePanel.tsx","components/blotter/settlement-account/BlotterSettlementAccount.tsx","components/blotter/TradeAllocationTableRows.tsx","components/bwic-history/Message.tsx","components/bwic-history/MessageHistory.jsx","components/bwic-history/HistoryButton.tsx","components/blotter/TradeBookedCheckbox.tsx","components/blotter/settlement-account/TradeAllocationPopup.tsx","components/blotter/settlement-account/template/TradeAllocationTemplateButton.tsx","components/blotter/settlement-account/TradeAllocationButton.tsx","components/blotter/VconCheckbox.tsx"],"sourcesContent":["import { useSelector } from 'react-redux';\r\nimport { bwicHistoryActions } from '../../actions';\r\nimport { RightSidePanel } from '../controls';\r\nimport { MessageHistory } from './MessageHistory';\r\nimport { AppState } from '../../types/state/AppState';\r\nimport { Process } from '../../types/models/Process';\r\nimport { useAppDispatch } from '../../effects/useAppDispatch';\r\n\r\n\r\nexport function MessageHistoryPanel({ process, isAllToAll }: { process: Process, isAllToAll: boolean }) {\r\n const dispatch = useAppDispatch();\r\n const ticker = useSelector((store: AppState) => store.bwicHistory.ticker);\r\n const visible = useSelector((store: AppState) => store.bwicHistory.visible);\r\n\r\n if (visible) {\r\n return (\r\n dispatch(bwicHistoryActions.showHistory(false))}\r\n >\r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n}\r\n","import * as React from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport cn from 'classnames';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport {\r\n PercentTradeAllocationTemplateItem,\r\n RatingTradeAllocationTemplateItem,\r\n TradeAllocationTemplateItem\r\n} from '../../../../types/trade-allocation/template/TradeAllocationTemplateItem';\r\nimport { tradeAllocationTypeTitle } from '../../../../types/trade-allocation/TradeAllocationType';\r\nimport ContextMenu from '../../../controls/ContextMenu';\r\nimport { ContextMenuItem } from '../../../controls/ContextMenuItem';\r\nimport { formatUtils } from '../../../../utils/format.utils';\r\nimport { LocationStateBuilder, PanelType } from '../../../../types/state/ui/LocationState';\r\nimport { Confirm } from '../../../alerts';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport { roles } from '../../../../constants';\r\n\r\ninterface Props {\r\n template: TradeAllocationTemplate;\r\n disabled: boolean;\r\n onActiveChange: (temaplteId: number, active: boolean, lock: Date) => void;\r\n onDelete: (temaplteId: number) => void;\r\n}\r\n\r\nexport function TemplateListItem({ template, disabled, onActiveChange, onDelete }: Props) {\r\n const history = useHistory();\r\n const [deleteConfirmationVisible, setDeleteConfirmationVisible] = React.useState(false);\r\n\r\n const formatValue = (item: TradeAllocationTemplateItem) => {\r\n if ((item as PercentTradeAllocationTemplateItem).percent) {\r\n return formatUtils.formatDecimal((item as PercentTradeAllocationTemplateItem).percent) + '%';\r\n } else if ((item as RatingTradeAllocationTemplateItem).rating) {\r\n return (item as RatingTradeAllocationTemplateItem).rating;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

{template.name}

\r\n
\r\n {template.active && Active}\r\n \r\n history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder()\r\n .panel(PanelType.Templates, { editTemplateId: template.id })\r\n .result()\r\n })}\r\n >\r\n Edit\r\n \r\n {\r\n template.active &&\r\n onActiveChange(template.id, false, template.lock)}\r\n >\r\n Deactivate\r\n \r\n }\r\n {\r\n !template.active &&\r\n onActiveChange(template.id, true, template.lock)}\r\n >\r\n Activate\r\n \r\n }\r\n setDeleteConfirmationVisible(true)}\r\n >\r\n Delete\r\n \r\n \r\n
\r\n
\r\n
\r\n {tradeAllocationTypeTitle[template.type]}\r\n
\r\n
    \r\n {\r\n template.items.map(i =>\r\n
  • \r\n \r\n {i.settlementAccount.accountName}\r\n \r\n {formatValue(i)}\r\n
  • \r\n )\r\n }\r\n
\r\n {\r\n deleteConfirmationVisible &&\r\n Would you like to remove {template.name} template?}\r\n onConfirm={() => {\r\n setDeleteConfirmationVisible(false);\r\n onDelete(template.id);\r\n }}\r\n onCancel={() => setDeleteConfirmationVisible(false)}\r\n />\r\n }\r\n
\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { TemplateListItem } from './TemplateListItem';\r\nimport { useTempateActiveChange } from './useTemplateActiveChange';\r\nimport { useTempateDelete } from './useTemplateDelete';\r\nimport { isRequesting } from '../../../../utils/request-state.utils';\r\n\r\ninterface Props {\r\n templates: TradeAllocationTemplate[];\r\n}\r\n\r\nexport function TemplateList({ templates }: Props) {\r\n const { deleteRequestState, onDelete } = useTempateDelete();\r\n const { activateRequestState, onActiveChange } = useTempateActiveChange();\r\n\r\n return (\r\n
\r\n {\r\n templates.map(t =>\r\n \r\n )\r\n }\r\n
\r\n );\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { tradeAllocationTemplateActions } from '../../../../actions/trade-allocation-template.actions';\r\nimport { RequestState } from \"../../../../constants/request-state\";\r\nimport { tradeAllocationTemplateService } from '../../../../services/trade-allocation-template.service';\r\nimport { errorActions } from '../../../../actions/error.actions';\r\n\r\nexport function useTempateDelete() {\r\n const dispatch = useDispatch();\r\n const [requestState, setRequestState] = React.useState(RequestState.none);\r\n\r\n const onDelete = async (templateId: number) => {\r\n try {\r\n setRequestState(RequestState.request);\r\n await tradeAllocationTemplateService.deleteTemplate(templateId);\r\n setRequestState(RequestState.success);\r\n dispatch(tradeAllocationTemplateActions.deleteTemplate(templateId));\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n setRequestState(RequestState.failure);\r\n }\r\n };\r\n\r\n return { deleteRequestState: requestState, onDelete };\r\n}\r\n","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { tradeAllocationTemplateActions } from '../../../../actions/trade-allocation-template.actions';\r\nimport { notificationActions } from '../../../../actions/notification.actions';\r\nimport { errorMessages } from '../../../../constants/error.messages';\r\nimport { RequestState } from \"../../../../constants/request-state\";\r\nimport { tradeAllocationTemplateService } from '../../../../services/trade-allocation-template.service';\r\nimport { errorActions } from '../../../../actions/error.actions';\r\n\r\nexport function useTempateActiveChange() {\r\n const dispatch = useDispatch();\r\n const [requestState, setRequestState] = React.useState(RequestState.none);\r\n\r\n const onActiveChange = async (templateId: number, active: boolean, lock: Date) => {\r\n try {\r\n setRequestState(RequestState.request);\r\n const updates = await tradeAllocationTemplateService.setTemplateActive(templateId, active, lock);\r\n setRequestState(RequestState.success);\r\n\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 setRequestState(RequestState.failure);\r\n if (e.status === 409) {\r\n dispatch(\r\n notificationActions.notificationAddErrorMessageModal(\r\n errorMessages.refreshPage,\r\n \"Can't activate 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 return { activateRequestState: requestState, onActiveChange };\r\n}\r\n","import * as React from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport { sumBy, values } from 'lodash';\r\nimport cn from 'classnames';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { Grid } from '../../../grid/Grid';\r\nimport RouteLeavingGuard from '../../../routing/RouteLeavingGuard';\r\nimport { RadioButton } from '../../../controls/RadioButton';\r\nimport { TradeAllocationType } from '../../../../types/trade-allocation/TradeAllocationType';\r\nimport { useSelector } from 'react-redux';\r\nimport { gridActions } from '../../../../actions';\r\nimport { errorMessages, gridColumns, constants } from '../../../../constants';\r\nimport { Ratings } from '../../../../types/enums/Rating';\r\nimport {\r\n EditTradeAllocationTemplateItem,\r\n PercentTradeAllocationTemplateItem,\r\n RatingTradeAllocationTemplateItem,\r\n TradeAllocationTemplateItem\r\n} from '../../../../types/trade-allocation/template/TradeAllocationTemplateItem';\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { GridColumn, GridDataItem } from '../../../../types/state/GridState';\r\nimport { formatUtils, isRequesting, isRequestSuccess, numericUtils, stringUtils } from '../../../../utils';\r\nimport { FormFieldLabel } from '../../../forms';\r\nimport { SettlementAccount } from '../../../../types/settlement/SettlementAccount';\r\nimport { blotterTradeAllocationTemplateActions } from '../../../../actions/blotter-trade-allocation-template.actions';\r\nimport { FormError } from '../../../controls';\r\nimport { LocationState, LocationStateBuilder, PanelType } from '../../../../types/state/ui/LocationState';\r\nimport { StatusMessageSection } from '../../../status-message/StatusMessageSection';\r\nimport { StatusMessageSectionType } from '../../../../types/state/NotificationState';\r\nimport { Location } from 'history';\r\nimport { useAppDispatch } from '../../../../effects/useAppDispatch';\r\n\r\ninterface Props {\r\n template?: TradeAllocationTemplate;\r\n settlementAccounts: SettlementAccount[];\r\n existTemplateNames: string[];\r\n}\r\n\r\nexport function TemplateEdit({ template, existTemplateNames, settlementAccounts }: Props) {\r\n const history = useHistory();\r\n const dispatch = useAppDispatch();\r\n\r\n const dataItems: GridDataItem[] = useSelector((s: AppState) => s.grid.dataItems);\r\n const saveRequestState = useSelector((s: AppState) => s.blotter.tradeAllocationTemplate.saveRequestState);\r\n\r\n const [editTemplateName, setEditTemplateName] = React.useState(template?.name ?? '');\r\n const [editTemplateNameError, setEditTemplateNameError] = React.useState('');\r\n const [editTempateType, setEditTemplateType] = React.useState(template?.type ?? TradeAllocationType.PercentOfTrade);\r\n const [percentError, setPercentError] = React.useState(false);\r\n\r\n const editDataItems = dataItems.filter(i => !i.draft);\r\n const percent = editTempateType === TradeAllocationType.PercentOfTrade\r\n ? sumBy(editDataItems, i => numericUtils.numberOrDefault(i.percent))\r\n : 100;\r\n const hasErrors =\r\n percentError ||\r\n Boolean(editTemplateNameError) ||\r\n editDataItems.some(i => i.errors && values(i.errors).length);\r\n\r\n const hasChanges = () => {\r\n const isChangedOrRemoved = (\r\n original: TradeAllocationTemplateItem,\r\n edit?: EditTradeAllocationTemplateItem) => {\r\n if (!edit) return true;\r\n\r\n return (\r\n original.settlementAccount.id !== Number(edit.settlementAccountId) || (\r\n editTempateType === TradeAllocationType.PercentOfTrade &&\r\n (original as PercentTradeAllocationTemplateItem).percent !== Number(edit.percent)\r\n ) || (\r\n editTempateType === TradeAllocationType.CreditRatings &&\r\n (original as RatingTradeAllocationTemplateItem).rating !== edit.rating\r\n )\r\n );\r\n }\r\n\r\n return (\r\n editTemplateName.trim() !== (template?.name ?? '') ||\r\n editTempateType !== (template?.type ?? TradeAllocationType.PercentOfTrade) ||\r\n editDataItems.length !== (template?.items.length ?? 0) ||\r\n editDataItems.some(i => !i.id) ||\r\n (template?.items ?? []).some(i => isChangedOrRemoved(i, editDataItems.find(e => e.id === i.id)))\r\n );\r\n }\r\n\r\n const validateTemplateName = (name: string) => {\r\n if (stringUtils.isNullOrWhiteSpace(name)) {\r\n return errorMessages.empty;\r\n } else if (existTemplateNames.some(n => n === name.trim())) {\r\n return \"Template with the same name already exists\";\r\n }\r\n\r\n return '';\r\n }\r\n\r\n const saveDisabled =\r\n hasErrors ||\r\n stringUtils.isNullOrWhiteSpace(editTemplateName) ||\r\n !editDataItems.length ||\r\n isRequesting(saveRequestState) ||\r\n !hasChanges() || (\r\n editTempateType === TradeAllocationType.CreditRatings &&\r\n !editDataItems.some(i => i.settlementAccountId)\r\n );\r\n\r\n React.useEffect(() => {\r\n if (percentError && percent === 100) {\r\n setPercentError(false);\r\n }\r\n }, [percent, percentError]);\r\n\r\n React.useEffect(() => {\r\n return () => {\r\n dispatch(gridActions.reset());\r\n }\r\n }, [dispatch])\r\n\r\n React.useEffect(() => {\r\n const settlementAccount: GridColumn = {\r\n ...gridColumns.settlementAccount,\r\n type: \"select\",\r\n selectSourceItemsCallback: () => settlementAccounts.map(a => ({\r\n key: a.id, title: a.accountName\r\n }))\r\n };\r\n\r\n const columns: GridColumn[] = editTempateType === TradeAllocationType.PercentOfTrade\r\n ? [settlementAccount, { ...gridColumns.percentOfTrade, type: 'number' }]\r\n : [\r\n { ...settlementAccount, unique: false, required: false, keepEmptyOption: true, format: (value?: number | string) => value ? String(value) : constants.emptyPlaceholder },\r\n { ...gridColumns.rating, type: 'select', readonly: true, required: false, disabledSort: true, title: 'Rtg' }\r\n ];\r\n const rowLimit = editTempateType === TradeAllocationType.PercentOfTrade\r\n ? 20\r\n : Ratings.length;\r\n\r\n let dataItems: EditTradeAllocationTemplateItem[] = [];\r\n\r\n if (editTempateType === TradeAllocationType.PercentOfTrade &&\r\n template &&\r\n template.type === TradeAllocationType.PercentOfTrade) {\r\n dataItems.push(\r\n ...template.items.map(i => ({\r\n id: i.id,\r\n settlementAccountId: i.settlementAccount.id,\r\n percent: (i as PercentTradeAllocationTemplateItem).percent\r\n }))\r\n );\r\n } else if (editTempateType === TradeAllocationType.CreditRatings) {\r\n dataItems.push(...Ratings.map(rating => ({\r\n settlementAccountId: template?.type === TradeAllocationType.CreditRatings\r\n ? template?.items.find(ti => (ti as RatingTradeAllocationTemplateItem).rating === rating)?.settlementAccount.id\r\n : undefined,\r\n rating\r\n })));\r\n }\r\n\r\n dispatch(gridActions.reset());\r\n dispatch(gridActions.init(dataItems, columns, rowLimit));\r\n\r\n }, [editTempateType, template, settlementAccounts, dispatch]);\r\n\r\n const handleNameChange = (e: React.ChangeEvent) => {\r\n setEditTemplateName(e.target.value);\r\n if (editTemplateNameError) {\r\n const error = validateTemplateName(e.target.value);\r\n setEditTemplateNameError(error);\r\n }\r\n };\r\n\r\n const handleCancel = () => {\r\n history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder().panel(PanelType.Templates).result()\r\n });\r\n };\r\n\r\n const handleSave = (activate: boolean) => {\r\n const nameError = validateTemplateName(editTemplateName);\r\n setEditTemplateNameError(nameError);\r\n\r\n dispatch(gridActions.validate());\r\n\r\n const percentError = percent !== 100;\r\n setPercentError(percentError);\r\n\r\n if (!nameError && !percentError) {\r\n dispatch(\r\n blotterTradeAllocationTemplateActions.save(\r\n template?.id ?? 0,\r\n editTemplateName,\r\n editTempateType,\r\n activate,\r\n template?.lock\r\n ));\r\n };\r\n }\r\n\r\n const renderGridFooter = () => {\r\n if (editTempateType === TradeAllocationType.PercentOfTrade) {\r\n return (\r\n \r\n \r\n \r\n Total\r\n \r\n \r\n {formatUtils.formatDecimal(percent, 2)}% / 100%\r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n setEditTemplateType(TradeAllocationType.PercentOfTrade)}\r\n />\r\n setEditTemplateType(TradeAllocationType.CreditRatings)}\r\n />\r\n
\r\n
\r\n \r\n {\r\n percentError &&\r\n \r\n Entered total % of trade should equal 100.\r\n \r\n }\r\n
\r\n
\r\n \r\n Cancel\r\n \r\n handleSave(false)}\r\n >\r\n Save\r\n \r\n handleSave(true)}\r\n >\r\n Save & activate\r\n \r\n
\r\n \r\n history.replace({ pathname, search, state })\r\n }\r\n shouldBlockNavigation={(nextLocation: Location>) => {\r\n return (\r\n !isRequesting(saveRequestState) &&\r\n !isRequestSuccess(saveRequestState) && !(\r\n nextLocation?.state?.panel?.type === PanelType.Templates &&\r\n nextLocation?.state?.panel?.payload?.editTemplateId === (template?.id ?? 0)\r\n ) &&\r\n hasChanges()\r\n )\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n","import * as React from 'react'\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { RightSidePanel } from '../../../controls/RightSidePanel';\r\nimport { EmptyPlaceholder } from '../../../common/EmptyPlaceholder';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { TemplateList } from './TemplateList';\r\nimport { TemplateEdit } from './TemplateEdit';\r\nimport { LocationState, LocationStateBuilder, PanelType } from '../../../../types/state/ui/LocationState';\r\nimport { blotterTradeAllocationTemplateActions } from '../../../../actions/blotter-trade-allocation-template.actions';\r\nimport { isRequesting, isRequestSuccess } from '../../../../utils';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport { useSettlementAccounts } from '../../../../effects/data-accessors/useSettlementAccounts';\r\nimport IconSVG from \"../../../../styles/svg-icons\";\r\nimport { FeatureButton } from '../../../access/FeatureButton';\r\nimport { RoleActionBlocker } from '../../../access/RoleActionBlocker';\r\nimport { roles } from '../../../../constants/roles';\r\n\r\ninterface Props {\r\n templates: TradeAllocationTemplate[];\r\n}\r\n\r\nconst minSettlementAccounts = 2;\r\nconst maxTemplates = 20;\r\n\r\nexport function TradeAllocationTemplatePanel({ templates }: Props) {\r\n const locationState = useLocation>().state;\r\n\r\n if (locationState?.panel?.type !== PanelType.Templates) return null;\r\n\r\n return \r\n}\r\n\r\nfunction TradeAllocationTemplatePanelContent({ templates, editTemplateId }: Props & { editTemplateId?: number }) {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const savingState = useSelector((s: AppState) => s.blotter.tradeAllocationTemplate.saveRequestState);\r\n const { settlementAccounts, settlementAccountsRequestState } = useSettlementAccounts(false);\r\n\r\n const isCreate = editTemplateId === 0;\r\n const isEdit = Boolean(editTemplateId);\r\n const editTemplate = isEdit ? templates.find(t => t.id === editTemplateId) : undefined;\r\n\r\n const notEnoughSettlementAccounts =\r\n !isRequestSuccess(settlementAccountsRequestState) ||\r\n settlementAccounts.length < minSettlementAccounts;\r\n\r\n React.useEffect(() => {\r\n return () => {\r\n dispatch(blotterTradeAllocationTemplateActions.resetPanelState());\r\n };\r\n }, [dispatch]);\r\n\r\n\r\n const handleClose = () => {\r\n if (!isRequesting(savingState)) {\r\n history.replace({ ...history.location, state: undefined });\r\n }\r\n }\r\n\r\n const renderTitle = () => {\r\n return (\r\n <>\r\n Allocation Templates\r\n \r\n \r\n \r\n = maxTemplates\r\n }\r\n onClick={() => history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder<{ editTemplateId?: number }>()\r\n .panel(PanelType.Templates, { editTemplateId: 0 })\r\n .result()\r\n })}\r\n >\r\n \r\n Template\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {\r\n !templates.length &&\r\n editTemplateId == null &&\r\n \r\n }\r\n\r\n {!isCreate && !isEdit && templates.length > 0 && }\r\n {\r\n (isCreate || isEdit) &&\r\n t.id !== editTemplateId)\r\n .map(t => t.name)\r\n }\r\n />\r\n }\r\n \r\n );\r\n}\r\n","import { useHistory, useLocation } from 'react-router';\r\nimport { SettlementAccountsView } from '../../settlement/SettlementAccountsView';\r\nimport { routes } from '../../../constants/routes';\r\nimport { SettlementAccountView } from '../../settlement/view/SettlementAccountView';\r\nimport { LocationState, PanelType } from '../../../types/state/ui/LocationState';\r\nimport { TradeAllocationTemplate } from '../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { TradeAllocationTemplatePanel } from './template/TradeAllocationTemplatePanel';\r\n\r\ninterface Props {\r\n templates: TradeAllocationTemplate[];\r\n}\r\n\r\nexport function BlotterSettlementAccount({ templates }: Props) {\r\n const history = useHistory();\r\n const locationState = useLocation().state;\r\n const templatePanelState = locationState?.panel?.type === PanelType.Templates\r\n ? locationState\r\n : undefined;\r\n\r\n\r\n return (\r\n {\r\n const path = routes.blotterSettlementAccountDetailsUrl(account.id);\r\n replace ? history.replace(path, templatePanelState) : history.push(path, templatePanelState);\r\n }}\r\n\r\n >\r\n {\r\n (activeSettlementAccount) => {\r\n return (\r\n <>\r\n {\r\n activeSettlementAccount &&\r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n }\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport { TableColumnStickType } from '../bidding/common/table/types/TableColumnStickType';\r\nimport { useTradeAllocation } from '../../effects/data-accessors/useTradeAllocation';\r\nimport { Preloader } from '../common';\r\nimport { formatUtils, isRequestSuccess, moneyUtils } from '../../utils';\r\nimport { StickyTableRow } from '../bidding/common/table/sticky/StickyTableRow';\r\nimport { IColumnDefinition } from '../bidding/common/table/types/ColumnDefinition';\r\nimport { TradeAllocationItem } from '../../types/trade-allocation/TradeAllocationItem';\r\nimport { ColumnBuilder } from '../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { SecurityListHeader } from '../bidding/common';\r\nimport { constants } from '../../constants';\r\nimport { TradeSide } from '../../types/trades/TradeSide';\r\n\r\ninterface Props {\r\n tradeId: string;\r\n columnType: TableColumnStickType;\r\n collapseLevel: number;\r\n side: TradeSide;\r\n}\r\n\r\nexport function TradeAllocationTableRows({ tradeId, columnType, collapseLevel, side }: Props) {\r\n const { requestState, tradeAllocationItems } = useTradeAllocation(tradeId, columnType !== TableColumnStickType.Middle);\r\n\r\n const columnDefinitions: IColumnDefinition[] =\r\n columnType === TableColumnStickType.Right\r\n ? [{\r\n columnKey: 'action',\r\n renderColumnHeaderContent: () => null,\r\n renderColumnContent: () => null,\r\n headerClassName: \"\",\r\n bodyClassName: \"\"\r\n }]\r\n : [{\r\n columnKey: \"settlementAccout\",\r\n renderColumnHeaderContent: () => \"Settlement Account\",\r\n renderColumnContent: item => item.settlementAccount.accountName,\r\n headerClassName: \"data-list-cell-xxl\",\r\n bodyClassName: \"data-list-cell-xxl\"\r\n },{\r\n columnKey: \"miraeAccount\",\r\n renderColumnHeaderContent: () => \"Mirae Acc #\",\r\n renderColumnContent: item => item.settlementAccount.miraeAcc ? item.settlementAccount.miraeAcc : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-md\",\r\n bodyClassName: \"data-list-cell-md\"\r\n }, {\r\n columnKey: \"percentOfTrade\",\r\n renderColumnHeaderContent: () => \"% of Trade\",\r\n renderColumnContent: item => formatUtils.formatDecimal(item.percent),\r\n headerClassName: \"text-right\",\r\n bodyClassName: \"text-right\"\r\n }, {\r\n columnKey: \"amountOfTrade\",\r\n renderColumnHeaderContent: () => \"Amount of Trade\",\r\n renderColumnContent: item => moneyUtils.money(item.amount, true, 3),\r\n headerClassName: \"data-list-cell-md text-right\",\r\n bodyClassName: \"data-list-cell-md text-right\"\r\n }\r\n ];\r\n\r\n if (side === TradeSide.Sell && columnType === TableColumnStickType.Middle) {\r\n const proceeds: IColumnDefinition = {\r\n columnKey: \"proceeds\",\r\n renderColumnHeaderContent: () => \"Proceeds\",\r\n renderColumnContent: item => item.proceed ? moneyUtils.money(item.proceed, true, 3) : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\"\r\n };\r\n\r\n columnDefinitions.push(proceeds);\r\n }\r\n\r\n const columns = columnDefinitions.map(c => new ColumnBuilder(c));\r\n const className = cn({ [`collapsed-content-level-${collapseLevel}`]: true });\r\n\r\n return (\r\n
\r\n \r\n {\r\n isRequestSuccess(requestState) &&\r\n <>\r\n \r\n {columns.map(c => c.renderHeader())}\r\n \r\n {\r\n tradeAllocationItems\r\n .filter(a => a.side === side)\r\n .map(a =>\r\n \r\n )\r\n }\r\n \r\n }\r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect, useRef } from 'react';\r\nimport moment from 'moment';\r\nimport classNames from 'classnames';\r\nimport { constants } from '../../constants';\r\nimport { formatUtils, moneyUtils, numericUtils } from '../../utils';\r\nimport { BidLevelDelta } from '../common/bidding/BidLevelDelta';\r\nimport { BidOnBehalfIcon } from '../bidding/seller/bid-on-behalf/BidOnBehalfIcon';\r\nimport { BwicProcessType, Process } from '../../types/models/Process';\r\nimport { AxedIcon } from '../bidding/common/AxedIcon';\r\nimport { FinalIcon } from '../bidding/common/FinalIcon';\r\nimport { BwicVisitorType } from '../../types/state/BiddingState';\r\nimport { BwicHistoryActionSelector } from '../../selectors';\r\nimport { BwicHistoryActionType } from '../../types/bwic-history/BwicHisoryActionType';\r\n\r\ninterface MessageProps {\r\n action: BwicHistoryActionSelector;\r\n containerClientRect: DOMRect | null;\r\n onRead: (referenceName: string) => void;\r\n visitorType: BwicVisitorType;\r\n isAllToAll: boolean;\r\n process: Process;\r\n}\r\n\r\ninterface TradeDetailsPayload {\r\n size: number;\r\n price: number;\r\n ticker: string;\r\n}\r\n\r\nexport const Message = ({ action, containerClientRect, onRead, visitorType, isAllToAll, process }: MessageProps) => {\r\n const _message = useRef(null);\r\n\r\n useEffect(() => {\r\n if (!action.isRead && containerClientRect != null && _message.current !== null) {\r\n const messageClientRect = _message.current.getBoundingClientRect();\r\n if (messageClientRect.top < containerClientRect.bottom) {\r\n onRead(action.referenceName);\r\n }\r\n }\r\n }, [action.isRead, action.referenceName, containerClientRect, onRead])\r\n\r\n const renderActionContent = (action: BwicHistoryActionSelector) => {\r\n switch (action.actionType) {\r\n case BwicHistoryActionType.Scheduled: return BWIC scheduled;\r\n case BwicHistoryActionType.Bidding: return BWIC opened, initial bid placement started;\r\n case BwicHistoryActionType.AxedFinalChanged:\r\n case BwicHistoryActionType.DirectBid:\r\n case BwicHistoryActionType.NewBid: return renderNewBidMessage(action.payload);\r\n case BwicHistoryActionType.DirectFeedback:\r\n case BwicHistoryActionType.QuickFeedback: return renderFeedbackMessage(action);\r\n case BwicHistoryActionType.TradedAway: return renderTradedAwayMessage(action.payload);\r\n case BwicHistoryActionType.TradeSubmitted: return renderTradeMessage(action);\r\n case BwicHistoryActionType.TradeAffirmed: return renderTradeAffirmedMessage(action.payload);\r\n case BwicHistoryActionType.TradeRejected: return renderTradeRejectedMessage(action.payload);\r\n case BwicHistoryActionType.TradeCanceled: return renderTradeCanceledMessage(action.payload)\r\n case BwicHistoryActionType.ColorDistributionSend: return BWIC color added;\r\n case BwicHistoryActionType.Finished: return BWIC completed;\r\n case BwicHistoryActionType.Canceled: return BWIC canceled;\r\n case BwicHistoryActionType.OpenBiddingStage1Started: return Stage 1 started;\r\n case BwicHistoryActionType.OpenBiddingStage1Ended: return renderStage1Ended();\r\n case BwicHistoryActionType.OpenBiddingStage2Ended: return renderStage2Ended();\r\n case BwicHistoryActionType.PriceTalk: return renderPxTalkMessage(action);\r\n default: return null;\r\n };\r\n };\r\n\r\n const renderStage1Ended = () => {\r\n let message = 'Stage 2 started';\r\n\r\n if (process?.type === BwicProcessType.BestFootForward) {\r\n if (visitorType === BwicVisitorType.Seller) {\r\n message = 'Bidding is finished. Please submit your trades';\r\n } else if (visitorType === BwicVisitorType.BrokerDealer || visitorType === BwicVisitorType.Buyer) {\r\n message = 'Bidding is completed. No bids are accepted';\r\n }\r\n }\r\n\r\n return {message}\r\n }\r\n\r\n const renderStage2Ended = () => {\r\n let message = 'Stage 2 ended';\r\n if (visitorType === BwicVisitorType.BrokerDealer || visitorType === BwicVisitorType.Buyer) {\r\n message = 'Bidding is completed. No bids are accepted';\r\n } else if (visitorType === BwicVisitorType.Seller) {\r\n message = 'Bidding is finished. Please submit your trades';\r\n }\r\n\r\n return {message};\r\n }\r\n\r\n const renderPxTalkMessage = (action: BwicHistoryActionSelector) => {\r\n if (action.payload) {\r\n if (action.payload.talk) {\r\n return Px Talk: {action.payload.ticker} @ {action.payload.talk}\r\n }\r\n return Px Talk removed for: {action.payload.ticker}\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const renderTradeMessage = (action: BwicHistoryActionSelector) => {\r\n const { isMyMessage, payload } = action;\r\n return (\r\n \r\n {isMyMessage && }\r\n Trading {formatTradeDetails(payload)}, please affirm\r\n \r\n );\r\n }\r\n\r\n const renderTradeAffirmedMessage = (payload: TradeDetailsPayload) => Trade affirmed: {formatTradeDetails(payload)}\r\n\r\n const renderTradeRejectedMessage = (payload: TradeDetailsPayload) => Trade rejected: {formatTradeDetails(payload)}\r\n\r\n const renderTradeCanceledMessage = (payload: TradeDetailsPayload) => Trade @ {formatUtils.formatBid(payload.price)} canceled automatically\r\n\r\n const formatTradeDetails = (payload: TradeDetailsPayload) => {\r\n const amount = moneyUtils.amountToMM(payload.size, true);\r\n const bid = formatUtils.formatBid(payload.price);\r\n\r\n return (\r\n <>\r\n {payload.ticker} {amount} @ {bid}\r\n \r\n )\r\n }\r\n\r\n const renderTradedAwayMessage = (payload: { ticker: string, isTradedAway: string }) => {\r\n if (payload.isTradedAway) {\r\n return (\r\n <>\r\n {payload.ticker} traded away\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n const renderFeedbackMessage = (action: BwicHistoryActionSelector) =>\r\n \r\n {\r\n action.payload &&\r\n action.payload.onBehalf &&\r\n \r\n }\r\n {action.isMyMessage && }\r\n {\r\n !!action.payload.ticker &&\r\n <>\r\n {action.payload.ticker}\r\n {!!action.payload.value && <> @ {formatUtils.formatBid(action.payload.value)}}\r\n : {action.payload.feedback}\r\n \r\n\r\n }\r\n {!action.payload.ticker && action.payload.feedback}\r\n \r\n\r\n const renderNewBidMessage = (payload: { onBehalf: boolean, pass: boolean, axed: boolean, final: boolean, value?: number, delta?: number, ticker: string }) =>\r\n <>\r\n {payload.onBehalf && }\r\n {payload.ticker} @ \r\n\r\n {payload.pass && PASS}\r\n {\r\n !payload.pass &&\r\n <>\r\n {formatUtils.formatBid(payload.value)}\r\n {\r\n numericUtils.isNumber(payload.value) &&\r\n numericUtils.isNumber(payload.delta) &&\r\n \r\n }\r\n {payload.axed && {}}\r\n {payload.final && {}}\r\n \r\n }\r\n \r\n\r\n const getReceiverCode = (payload: { buyerPseudoOrderNumber?: number, receiverCode: string }) => {\r\n return (isAllToAll && visitorType === BwicVisitorType.Buyer) || !payload.buyerPseudoOrderNumber\r\n ? payload.receiverCode\r\n : `${payload.receiverCode}-${payload.buyerPseudoOrderNumber}`\r\n }\r\n\r\n const getDirectBidCompanyCode = (action: BwicHistoryActionSelector) => {\r\n const { buyerPseudoOrderNumber, code, receiverCode } = action.payload;\r\n const companyCode = code || receiverCode;\r\n\r\n if (!companyCode) {\r\n return '';\r\n }\r\n\r\n if (visitorType === BwicVisitorType.Buyer) {\r\n return companyCode;\r\n }\r\n if (companyCode && buyerPseudoOrderNumber) {\r\n return `${companyCode}-${buyerPseudoOrderNumber}`;\r\n }\r\n\r\n }\r\n\r\n const getDirectBidCompanyName = (action: BwicHistoryActionSelector) => {\r\n const { legalName, code, receiverCode, buyerPseudoOrderNumber } = action.payload;\r\n const companyName = legalName || code || receiverCode;\r\n\r\n if (!companyName) {\r\n return '';\r\n }\r\n\r\n if (visitorType === BwicVisitorType.Buyer) {\r\n return companyName;\r\n }\r\n\r\n if (buyerPseudoOrderNumber) {\r\n return `${companyName}-${buyerPseudoOrderNumber}`;\r\n }\r\n\r\n }\r\n\r\n\r\n const isBidOnBehalf =\r\n action.actionType === BwicHistoryActionType.NewBid &&\r\n !action.isResponseMessage &&\r\n !!action.payload.onBehalf;\r\n\r\n const messageCssClasses = classNames('history-message', {\r\n 'bwic-common-message': !action.isMyMessage && !action.isResponseMessage,\r\n 'my-message': action.isMyMessage,\r\n 'response-message': action.isResponseMessage\r\n });\r\n\r\n const content = renderActionContent(action);\r\n\r\n return (\r\n
\r\n {\r\n content &&\r\n
\r\n {isBidOnBehalf &&
{action.payload.onBehalf} - Bid on behalf
}\r\n {\r\n action.isResponseMessage &&\r\n !isBidOnBehalf &&\r\n
\r\n {action.submittedBy ? action.submittedBy.name : getDirectBidCompanyName(action)}\r\n {\r\n action.isResponseMessage &&\r\n \r\n {action.submittedBy ? action.submittedBy.code : getDirectBidCompanyCode(action)}\r\n \r\n }\r\n
\r\n }\r\n
\r\n {!action.isRead && action.isResponseMessage && }\r\n\r\n
\r\n \r\n {content}\r\n \r\n {moment(action.sentDateUtc).local().format(constants.timeFormat)}\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment';\r\nimport ImageSVG from '../../styles/svg';\r\nimport { bwicHistoryActions } from '../../actions';\r\nimport { arrayUtils, isRequesting } from '../../utils';\r\nimport { constants, roles } from '../../constants';\r\nimport { Message } from './Message';\r\nimport { getHistory } from '../../selectors';\r\nimport { Preloader } from '../common';\r\nimport { ShowFor } from '../access';\r\nimport { BwicHistoryActionType } from '../../types/bwic-history/BwicHisoryActionType';\r\nimport { RequiredRole } from '../access/RequiredRole';\r\n\r\nclass MessageHistory extends React.Component {\r\n awaitingReadMessages = [];\r\n readMessages = [];\r\n firstUnreadMessageIndex = -1;\r\n state = {\r\n scrollableContainerClientRect: null\r\n }\r\n\r\n componentDidMount = () => {\r\n if (this.state.scrollableContainerClientRect == null && this._scrollableContainer != null) {\r\n this.awaitingReadMessages = [];\r\n this.readMessages = [];\r\n this.firstUnreadMessageIndex = this.getFirstUnreadActionIndex();\r\n this.setState({ scrollableContainerClientRect: this._scrollableContainer.getBoundingClientRect() });\r\n }\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.firstUnreadMessageIndex < 0) {\r\n const previousActions = prevProps.history.actions || [];\r\n const currentActions = this.props.history.actions || [];\r\n if (currentActions.length !== previousActions.length) {\r\n this.firstUnreadMessageIndex = this.getFirstUnreadActionIndex();\r\n }\r\n }\r\n }\r\n\r\n getFirstUnreadActionIndex = () => {\r\n return this.props.history.actions && this.props.history.actions.findIndex(a => !a.isRead);\r\n }\r\n\r\n handleContainerScroll = e => this.setState({ scrollableContainerClientRect: e.target.getBoundingClientRect() });\r\n\r\n handleMessageRead = referencName => {\r\n if (!this.awaitingReadMessages.some(m => m === referencName) &&\r\n !this.readMessages.some(m => m === referencName)) {\r\n this.awaitingReadMessages.push(referencName);\r\n setTimeout(() => this.markMessageRead(referencName), 1000);\r\n }\r\n }\r\n\r\n markMessageRead = referenceName => {\r\n if (this.awaitingReadMessages[this.awaitingReadMessages.length - 1] === referenceName) {\r\n this.readMessages.push(...this.awaitingReadMessages);\r\n this.props.dispatch(bwicHistoryActions.markHistoryMessagesAsRead(this.awaitingReadMessages));\r\n this.awaitingReadMessages = [];\r\n }\r\n }\r\n\r\n isTradeAwayCancelation = action => action.actionType === BwicHistoryActionType.TradedAway && !action.payload.isTradedAway;\r\n\r\n renderEmptyContent = () =>\r\n
\r\n \r\n

BWIC message history will be shown here

\r\n
\r\n\r\n renderActionItems = historyActions => {\r\n const hasReadMessages = historyActions.some(a => a.isRead);\r\n const actionsByDate = arrayUtils\r\n .groupBy(\r\n historyActions,\r\n action => moment(action.sentDateUtc)\r\n .startOf('day')\r\n .format(constants.dateShortFormat)\r\n );\r\n\r\n return Array\r\n .from(actionsByDate, ([key, value]) => ({ key, value }))\r\n .map(group => this.renderActionGroup(group, hasReadMessages));\r\n }\r\n\r\n renderActionGroup = (group, hasReadMessages) => {\r\n const result = [];\r\n\r\n result.push(this.renderDate(group.key));\r\n result.push(group.value.map((action, index) => {\r\n const shouldRenderUnreadLine =\r\n hasReadMessages &&\r\n this.firstUnreadMessageIndex >= 0 &&\r\n this.props.history.actions.indexOf(action) === this.firstUnreadMessageIndex &&\r\n !this.isTradeAwayCancelation(action);\r\n\r\n return (\r\n
\r\n {shouldRenderUnreadLine && this.renderUnreadMessagesLine()}\r\n \r\n
\r\n );\r\n }));\r\n\r\n return result;\r\n }\r\n\r\n renderDate = groupDate => {\r\n let text = groupDate;\r\n\r\n const date = moment(groupDate, constants.dateShortFormat);\r\n const today = new Date();\r\n\r\n if (date.isSame(today, 'day')) {\r\n text = 'Today';\r\n } else if (date.clone().add(1, 'days').isSame(today, 'day')) {\r\n text = 'Yesterday';\r\n }\r\n\r\n return
{text}
\r\n }\r\n\r\n renderUnreadMessagesLine = () =>\r\n
\r\n Unread notifications\r\n
\r\n\r\n renderContent = history => {\r\n const hasHistoryItems = !!history.actions.length;\r\n\r\n return (\r\n <>\r\n
{hasHistoryItems && this.renderActionItems(history.actions)}
\r\n {!hasHistoryItems && this.renderEmptyContent()}\r\n \r\n );\r\n }\r\n\r\n render = () => {\r\n const { history } = this.props;\r\n\r\n if (!history.visible) {\r\n return null;\r\n }\r\n\r\n if (!history.actions) {\r\n return \r\n }\r\n\r\n return (\r\n this._scrollableContainer = node}\r\n onScroll={this.handleContainerScroll}\r\n >\r\n \r\n \r\n {this.renderContent(history)}\r\n \r\n \r\n \r\n {this.renderContent(history)}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = ({ bwicHistory }) => ({\r\n visitorType: bwicHistory.visitorType,\r\n history: getHistory(bwicHistory)\r\n});\r\n\r\nconst connectedMessageHistory = connect(mapStateToProps)(MessageHistory);\r\nexport { connectedMessageHistory as MessageHistory };\r\n","import classNames from 'classnames';\r\nimport { useSelector } from 'react-redux';\r\nimport { bwicHistoryActions } from '../../actions';\r\nimport IconSVG from '../../styles/svg-icons';\r\nimport { FeatureButton } from '../access/FeatureButton';\r\nimport { ShowFor } from '../access';\r\nimport { roles } from '../../constants';\r\nimport { user } from '../../user';\r\nimport { AppState } from '../../types/state/AppState';\r\nimport { RoleActionBlocker } from '../access/RoleActionBlocker';\r\nimport { useAppDispatch } from '../../effects/useAppDispatch';\r\n\r\ninterface HistoryButtonProps {\r\n positionId?: number;\r\n ticker?: string;\r\n text?: string;\r\n unreadCountVisble?: boolean;\r\n disabled?: boolean;\r\n onClick?: (active: boolean) => void\r\n}\r\n\r\nexport function HistoryButton({ positionId, ticker = '', text = '', unreadCountVisble = true, disabled = false, onClick }: HistoryButtonProps) {\r\n const dispatch = useAppDispatch();\r\n const history = useSelector((s: AppState) => s.bwicHistory);\r\n const historyActions = (positionId ? history.actions?.filter(a => a.positionId === positionId) : history.actions) ?? [];\r\n const unreadCount =\r\n unreadCountVisble &&\r\n user.hasRoles(roles.SellerTrader, roles.BrokerDealerTrader) &&\r\n historyActions.filter(a => !a.isRead).length;\r\n const isActive = history.visible && history.positionId === positionId;\r\n\r\n function handleClick(e: React.MouseEvent) {\r\n dispatch(bwicHistoryActions.showHistory(!isActive, positionId, ticker));\r\n e.stopPropagation();\r\n onClick?.(!isActive);\r\n }\r\n\r\n function renderButton() {\r\n return (\r\n \r\n {text}\r\n {!!unreadCount && {unreadCount}}\r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {renderButton()}\r\n \r\n \r\n \r\n {renderButton()}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\nHistoryButton.defaultProps = {\r\n positionId: null,\r\n onClick: null\r\n}","import React from 'react';\r\nimport { Checkbox } from '../controls/Checkbox';\r\nimport { useSelector } from 'react-redux';\r\nimport { AppState } from '../../types/state/AppState';\r\nimport { TradeSide } from '../../types/trades/TradeSide';\r\nimport { Preloader } from '../common/Preloader';\r\n\r\ninterface Props {\r\n onClick: (tradeId: string, isBuyTrade: boolean, value: boolean) => void;\r\n bookedBuy: boolean;\r\n bookedSell: boolean;\r\n tradeSide: TradeSide;\r\n tradeId: string;\r\n}\r\n\r\nexport const TradeBookedCheckbox: React.FC = ({ onClick, tradeId, tradeSide, bookedSell, bookedBuy }) => {\r\n const isBuyTrade = tradeSide === TradeSide.Buy;\r\n const isRequesting = useSelector((state: AppState) => state.blotter.requestStatusSetBooked[`${tradeId}_${isBuyTrade}`]);\r\n\r\n const handleClick = () => {\r\n if (!isRequesting) {\r\n onClick(tradeId, tradeSide === TradeSide.Buy, isBuyTrade ? !bookedBuy : !bookedSell)\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n};\r\n","import * as React from 'react';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { useSelector } from 'react-redux';\r\nimport { sumBy, values } from 'lodash';\r\nimport { useTradeAllocation } from '../../../effects/data-accessors/useTradeAllocation';\r\nimport Popup from '../../controls/Popup';\r\nimport { PopupBody } from '../../controls/PopupBody';\r\nimport { PopupFooter } from '../../controls/PopupFooter';\r\nimport { Preloader } from '../../common/Preloader';\r\nimport { isRequestSuccess, isRequesting } from '../../../utils/request-state.utils';\r\nimport { gridActions } from '../../../actions/grid.actions';\r\nimport { gridColumns } from '../../../constants/grid.columns';\r\nimport { GridColumn, GridDataItem } from '../../../types/state/GridState';\r\nimport { EditTradeAllocationItem } from '../../../types/state/entities/TradeAllocationState';\r\nimport { AppState } from '../../../types/state/AppState';\r\nimport { TradeAllocationItem } from '../../../types/trade-allocation/TradeAllocationItem';\r\nimport { Grid } from '../../grid/Grid';\r\nimport { BlotterSearchResult } from '../../../types/blotter/BlotterSearchResult';\r\nimport { moneyUtils } from '../../../utils/money.utils';\r\nimport { numericUtils } from '../../../utils/numeric.utils';\r\nimport { UnsavedChangesPopup } from '../../routing/UnsavedChangesPopup'\r\nimport RouteLeavingGuard from '../../routing/RouteLeavingGuard';\r\nimport { blotterTradeAllocationActions } from '../../../actions/blotter-trade-allocation.actions';\r\nimport { SettlementAccount } from '../../../types/settlement/SettlementAccount';\r\nimport { user } from '../../../user';\r\nimport { roles } from '../../../constants';\r\nimport { formatUtils } from '../../../utils';\r\nimport { LocationState, LocationStateBuilder, PopupType } from '../../../types/state/ui/LocationState';\r\nimport { StatusMessageSection } from '../../status-message/StatusMessageSection';\r\nimport { StatusMessageSectionType } from '../../../types/state/NotificationState';\r\nimport { TradeSettlementStatus } from '../../../types/settlement/TradeSettlementStatus';\r\nimport { TradeSide } from '../../../types/trades/TradeSide';\r\nimport { useAppDispatch } from '../../../effects/useAppDispatch';\r\n\r\ninterface Props {\r\n settlementAccounts: SettlementAccount[];\r\n}\r\n\r\nexport type TradeAllocationPopupLocationPayload = {\r\n tradeAllocationTradeId: string;\r\n side: TradeSide;\r\n companyId: number;\r\n}\r\n\r\nexport function TradeAllocationPopup({ settlementAccounts }: Props) {\r\n const locationState = useLocation>().state;\r\n const trade = useSelector((s: AppState) =>\r\n locationState?.popup?.type === PopupType.TradeAllocationPopup &&\r\n locationState?.popup?.payload?.tradeAllocationTradeId &&\r\n s.blotter.securities.find(t => t.tradeId === locationState?.popup?.payload?.tradeAllocationTradeId)\r\n );\r\n\r\n if (!trade || !locationState?.popup?.payload?.companyId || !locationState?.popup?.payload?.side) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n a.assetManager.id === locationState!.popup!.payload!.companyId)}\r\n />\r\n );\r\n}\r\n\r\ninterface ContentProps {\r\n side: TradeSide;\r\n trade: BlotterSearchResult;\r\n settlementAccounts: SettlementAccount[];\r\n}\r\n\r\nconst TOTAL_TRADE_AMOUNT_ERROR = 'Entered amounts of trade should be equal to the total traded amount'\r\nconst TOTAL_TRADE_PERCENT_ERROR = 'The sum of all percentages of trade should be equal 100%.'\r\n\r\nfunction TradeAllocationPopupContent({ trade, settlementAccounts, side }: ContentProps) {\r\n const dispatch = useAppDispatch();\r\n const history = useHistory();\r\n\r\n const [unsavedChangesAlertVisible, setUnsavedChangesAlertVisible] = React.useState(false);\r\n const [amountError, setAmountError] = React.useState(false);\r\n\r\n const tradeAllocationState = useTradeAllocation(trade.tradeId);\r\n const requestState = tradeAllocationState.requestState;\r\n const tradeAllocationItems = React.useMemo(\r\n () => tradeAllocationState.tradeAllocationItems.filter(i => i.side === side),\r\n [side, tradeAllocationState]\r\n );\r\n\r\n const gridMountedKey = useSelector((s: AppState) => s.grid.mountedKey);\r\n const saveTradeAllocationRequestState = useSelector((s: AppState) => s.blotter.requestStateSaveTradeAllocation);\r\n const dataItems = useSelector((s: AppState) => s.grid.dataItems);\r\n\r\n const editTradeAllocationItems: GridDataItem[] = React.useMemo(() => dataItems.filter(i => !i.draft), [dataItems]);\r\n const hasErrors = React.useMemo(() => editTradeAllocationItems.some(i => i.errors && values(i.errors).length), [editTradeAllocationItems]);\r\n const isSeller = user.hasRoles(...roles.seller());\r\n const isBd = user.hasRoles(...roles.bd());\r\n const isProceedsVisible = side === TradeSide.Sell;\r\n const requesting = isRequesting(saveTradeAllocationRequestState) || isRequesting(requestState);\r\n const { percent, amount, proceeds } = React.useMemo(() => {\r\n const percent = sumBy(editTradeAllocationItems, i => numericUtils.numberOrDefault(i.percent));\r\n const amount = sumBy(editTradeAllocationItems, i => numericUtils.numberOrDefault(i.amount));\r\n const proceeds =\r\n isProceedsVisible\r\n ? sumBy(editTradeAllocationItems, i => numericUtils.numberOrDefault(i.proceed))\r\n : 0;\r\n\r\n return {\r\n percent: numericUtils.round(percent, 2),\r\n amount: numericUtils.round(amount, 3),\r\n proceeds: numericUtils.round(proceeds, 3)\r\n };\r\n }, [editTradeAllocationItems, isProceedsVisible]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (amountError && amount === trade.size) {\r\n setAmountError(false);\r\n }\r\n }, [trade, amount, amountError]);\r\n\r\n React.useEffect(() => {\r\n return () => {\r\n // reset when on mount\r\n dispatch(blotterTradeAllocationActions.resetPopupState());\r\n dispatch(gridActions.reset());\r\n };\r\n }, [dispatch]);\r\n\r\n React.useEffect(() => {\r\n // Initialize Grid\r\n if (isRequestSuccess(requestState) && !gridMountedKey) {\r\n const isTotalTradeAllocationValid = (dataItems: GridDataItem[]) => {\r\n const amount = sumBy(dataItems, i => numericUtils.numberOrDefault(i.amount));\r\n return amount === trade.size\r\n }\r\n\r\n const settlementAccountColumn: GridColumn = {\r\n ...gridColumns.settlementAccount as GridColumn,\r\n selectSourceItemsCallback: () => settlementAccounts.map(a => ({\r\n key: a.id, title: a.accountName\r\n }))\r\n };\r\n const percentOfTradeColumn: GridColumn = {\r\n ...gridColumns.percentOfTrade as GridColumn,\r\n validate: (value, __, dataItems: GridDataItem[]) => {\r\n if (\r\n !numericUtils.isNumber(value) ||\r\n +value < gridColumns.percentOfTrade.min ||\r\n +value > gridColumns.percentOfTrade.max\r\n ) {\r\n return ''\r\n }\r\n return isTotalTradeAllocationValid(dataItems)\r\n ? \"\"\r\n : TOTAL_TRADE_PERCENT_ERROR\r\n },\r\n updateDependencyColumnsCallback: (rowIndex: number) => {\r\n dispatch(blotterTradeAllocationActions.recalculateAmountOfTrade(rowIndex, trade.tradeId));\r\n return { type: 'AMOUNT_CHANGED' };\r\n }\r\n };\r\n const amountOfTradeColumn: GridColumn = {\r\n ...gridColumns.amountOfTrade as GridColumn,\r\n validate: (_, __, dataItems: GridDataItem[]) => {\r\n return isTotalTradeAllocationValid(dataItems)\r\n ? \"\"\r\n : TOTAL_TRADE_AMOUNT_ERROR\r\n },\r\n updateDependencyColumnsCallback: (rowIndex: number) => {\r\n dispatch(blotterTradeAllocationActions.recalculatePercentOfTrade(rowIndex, trade.tradeId));\r\n return { type: 'PERCENT_CHANGED' };\r\n }\r\n };\r\n const columns = [settlementAccountColumn, percentOfTradeColumn, amountOfTradeColumn];\r\n\r\n if (isProceedsVisible) {\r\n const proceedsColumn: GridColumn = {\r\n ...gridColumns.proceeds as GridColumn,\r\n readonly: isSeller\r\n };\r\n\r\n columns.push(proceedsColumn);\r\n }\r\n\r\n const rowLimit = 20;\r\n\r\n const editItems: EditTradeAllocationItem[] = tradeAllocationItems.map(i => ({\r\n id: i.id,\r\n settlementAccountId: i.settlementAccount.id,\r\n percent: i.percent,\r\n amount: i.amount,\r\n proceed: i.proceed\r\n }));\r\n dispatch(gridActions.init(editItems, columns, rowLimit));\r\n }\r\n }, [requestState, tradeAllocationItems, trade, settlementAccounts, gridMountedKey, isSeller, isProceedsVisible, dispatch]);\r\n\r\n const hasChanges = () => {\r\n const isChangedOrRemoved = (original: TradeAllocationItem, edit?: EditTradeAllocationItem) => {\r\n if (!edit) return true;\r\n\r\n const originProceed = original.proceed == null ? -1 : original.proceed;\r\n const editProceed = edit.proceed == null || edit.proceed === '' ? -1 : Number(edit.proceed);\r\n\r\n return (\r\n original.amount !== moneyUtils.parse(String(edit.amount)) ||\r\n original.percent !== Number(edit.percent) ||\r\n originProceed !== editProceed ||\r\n original.settlementAccount.id !== edit.settlementAccountId\r\n );\r\n }\r\n\r\n return (\r\n tradeAllocationItems.length !== editTradeAllocationItems.length ||\r\n editTradeAllocationItems.some(i => !i.id) || // new items added\r\n tradeAllocationItems.some(i => isChangedOrRemoved(i, editTradeAllocationItems.find(e => e.id === i.id)))\r\n );\r\n }\r\n\r\n const canSaveUnchanged = () => {\r\n const settlementStatus = side === TradeSide.Buy ? trade.sellerSettlementStatus : trade.buyerSettlementStatus;\r\n if (isBd && settlementStatus === TradeSettlementStatus.PendingProceeds) {\r\n return true;\r\n }\r\n\r\n return hasChanges();\r\n }\r\n\r\n const handleSave = () => {\r\n if (amount !== trade.size) {\r\n setAmountError(true);\r\n dispatch(gridActions.validate());\r\n } else {\r\n dispatch(blotterTradeAllocationActions.save(trade.tradeId, trade.allocationLock, side));\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n if (!requesting) {\r\n history.replace({\r\n ...history.location,\r\n state: new LocationStateBuilder(history.location.state).resetPopup().result()\r\n });\r\n }\r\n }\r\n\r\n const renderTitle = () =>\r\n

\r\n Trade Allocation\r\n {trade.ticker}\r\n

\r\n\r\n const renderGridFooter = React.useCallback(() => {\r\n return (\r\n \r\n \r\n \r\n Total\r\n \r\n \r\n \r\n {formatUtils.formatDecimal(percent, 2)}% / 100.00%\r\n \r\n \r\n {moneyUtils.money(amount, true, 3)} / {moneyUtils.money(trade.size, true, 3)}\r\n \r\n {\r\n isProceedsVisible &&\r\n {moneyUtils.money(proceeds, true, 3)}\r\n }\r\n \r\n \r\n );\r\n }, [percent, amount, proceeds, isProceedsVisible, trade]);\r\n\r\n return (\r\n <>\r\n {\r\n unsavedChangesAlertVisible &&\r\n setUnsavedChangesAlertVisible(false)}\r\n />\r\n }\r\n \r\n history.replace({ pathname, search, state })\r\n }\r\n shouldBlockNavigation={() =>\r\n !isRequesting(saveTradeAllocationRequestState) &&\r\n !isRequestSuccess(saveTradeAllocationRequestState) &&\r\n hasChanges()\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n amountError &&\r\n \r\n
  • {TOTAL_TRADE_AMOUNT_ERROR}
  • \r\n
  • {TOTAL_TRADE_PERCENT_ERROR}
  • \r\n
    \r\n }\r\n
    \r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport cn from 'classnames';\r\nimport { isRequestSuccess } from '../../../../utils/request-state.utils';\r\nimport { RequestState } from '../../../../constants/request-state';\r\nimport { TradeAllocationTemplate } from '../../../../types/trade-allocation/template/TradeAllocationTemplate';\r\nimport { LocationState, LocationStateBuilder, PanelType } from '../../../../types/state/ui/LocationState';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport { TooltipPlacement } from '../../../common/Tooltip';\r\nimport { useSettlementAccounts } from '../../../../effects/data-accessors/useSettlementAccounts';\r\nimport IconSVG from '../../../../styles/svg-icons';\r\n\r\ninterface Props {\r\n templates: TradeAllocationTemplate[];\r\n requestState: RequestState;\r\n onShow: (location: LocationState) => void;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function TradeAllocationTemplateButton({ templates, requestState, onShow, disabled = false }: Props) {\r\n const minSettlementAccounts = 2;\r\n const history = useHistory();\r\n const locationState = useLocation().state;\r\n const activeTemplate = templates.find(t => t.active);\r\n const { settlementAccounts, settlementAccountsRequestState } = useSettlementAccounts(false);\r\n const isLoading = !isRequestSuccess(settlementAccountsRequestState) || !isRequestSuccess(requestState);\r\n const templatePanelState = locationState?.panel?.type === PanelType.Templates;\r\n\r\n const handleClick = () => {\r\n if (templatePanelState) {\r\n history.replace(history.location.pathname, undefined);\r\n } else {\r\n onShow(new LocationStateBuilder().panel(PanelType.Templates).result());\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n = minSettlementAccounts}\r\n placement={TooltipPlacement.BottomRight}\r\n wrapperClass=\"allocation-overlay-btn\"\r\n >\r\n \r\n Allocation Templates\r\n \r\n \r\n {!templates.length && No Templates}\r\n {!!templates.length && activeTemplate == null && No active templates}\r\n {!!templates.length && activeTemplate != null && {activeTemplate.name}}\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport cn from \"classnames\";\r\nimport { TradeSettlementStatus } from '../../../types/settlement/TradeSettlementStatus';\r\nimport { user } from '../../../user';\r\nimport { roles, routes } from '../../../constants';\r\nimport { Confirm } from '../../alerts';\r\nimport { SettlementAccount } from '../../../types/settlement/SettlementAccount';\r\nimport { notificationActions } from '../../../actions';\r\nimport { BlotterSearchResult } from '../../../types/blotter/BlotterSearchResult';\r\nimport { LocationState, LocationStateBuilder, PanelType, PopupType } from '../../../types/state/ui/LocationState';\r\nimport IconSVG from \"../../../styles/svg-icons\";\r\nimport { FeatureButton } from '../../access/FeatureButton';\r\nimport { ContextMenu } from '../../controls';\r\nimport { ContextMenuItem } from '../../controls/ContextMenuItem';\r\nimport { TradeSide } from '../../../types/trades/TradeSide';\r\nimport { TradeAllocationPopupLocationPayload } from './TradeAllocationPopup';\r\nimport { CompanySlim } from '../../../types/company/CompanySlim';\r\nimport { RoleActionBlocker } from '../../access/RoleActionBlocker';\r\n\r\ninterface Props {\r\n trade: BlotterSearchResult;\r\n settlementAccounts: SettlementAccount[];\r\n}\r\n\r\nexport function TradeAllocationButton({ trade, settlementAccounts }: Props) {\r\n const history = useHistory>();\r\n\r\n const handleClick = (companyId: number, side: TradeSide) => {\r\n let locationStateBuilder = new LocationStateBuilder(history.location.state)\r\n .popup(\r\n PopupType.TradeAllocationPopup,\r\n { tradeAllocationTradeId: trade.tradeId, companyId, side }\r\n );\r\n\r\n const isTemplatePanelEdit =\r\n history.location.state?.panel?.type === PanelType.Templates &&\r\n history.location.state?.panel?.payload?.editTemplateId != null;\r\n\r\n if (isTemplatePanelEdit) {\r\n // Reset TradeAllocationPanel edit state\r\n locationStateBuilder.panel(history.location.state!.panel!.type);\r\n }\r\n\r\n history.replace({ ...history.location, state: undefined }, locationStateBuilder.result());\r\n }\r\n\r\n return user.hasRoles(...roles.seller())\r\n ? \r\n : \r\n}\r\n\r\ninterface RoleTradeAllocationButtonProps extends Props {\r\n onClick: (companyId: number, side: TradeSide) => void;\r\n}\r\n\r\nfunction SellerTradeAllocationButton({ trade, settlementAccounts, onClick }: RoleTradeAllocationButtonProps) {\r\n const dispatch = useDispatch();\r\n const settlementStatus = trade.directBuyerCompany ? trade.buyerSettlementStatus : trade.sellerSettlementStatus\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n const companyId: number = user.current()!.companyId;\r\n const accounts = settlementAccounts.filter(a => a.assetManager.id === companyId);\r\n\r\n if (accounts.length) {\r\n const side = trade.directBuyerCompany ? TradeSide.Sell : TradeSide.Buy;\r\n onClick(companyId, side);\r\n } else {\r\n dispatch(notificationActions.warningModal(\r\n \"Settlement Account is not created\",\r\n `You don’t have any settlement accounts yet. Please contact ${trade.counterparty.name} company for more details.`\r\n ));\r\n }\r\n }\r\n\r\n const renderButton = () => {\r\n switch (settlementStatus) {\r\n case TradeSettlementStatus.PendingAllocation:\r\n case TradeSettlementStatus.PendingProceeds:\r\n case TradeSettlementStatus.PendingSettlement:\r\n return (\r\n \r\n \r\n Allocation\r\n \r\n );\r\n default: return null;\r\n }\r\n }\r\n\r\n return (\r\n \r\n {renderButton()}\r\n \r\n );\r\n}\r\n\r\nfunction DealerTradeAllocationButton({ trade, settlementAccounts, onClick }: RoleTradeAllocationButtonProps) {\r\n const history = useHistory>();\r\n const [noSettlementAccountCompany, setNoSettlementAccountCompany] = React.useState();\r\n const [expanded, setExpanded] = React.useState(false);\r\n const isClearingBank = user.current()?.isClearingBank;\r\n\r\n const handleClick = (side: TradeSide) => {\r\n const company = side === TradeSide.Sell\r\n ? trade.directBuyerCompany!\r\n : trade.counterparty;\r\n\r\n const accounts = settlementAccounts.filter(a => a.assetManager.id === company.id);\r\n\r\n if (accounts.length) {\r\n onClick(company.id, side);\r\n } else {\r\n setNoSettlementAccountCompany(company);\r\n }\r\n }\r\n\r\n const getSellTradeText = () => {\r\n switch (trade.buyerSettlementStatus) {\r\n case TradeSettlementStatus.PendingAllocation:\r\n return \"Add Allocation for Sell Trade\";\r\n case TradeSettlementStatus.PendingSettlement:\r\n return \"Edit Allocation for Sell Trade\";\r\n case TradeSettlementStatus.PendingProceeds:\r\n return \"Add Proceeds for Sell Trade\";\r\n default: return '';\r\n }\r\n }\r\n\r\n const getBuyTradeText = () => {\r\n switch (trade.sellerSettlementStatus) {\r\n case TradeSettlementStatus.PendingAllocation:\r\n return \"Add Allocation for Buy Trade\";\r\n case TradeSettlementStatus.PendingSettlement:\r\n return \"Edit Allocation for Buy Trade\";\r\n case TradeSettlementStatus.PendingProceeds:\r\n return \"Add Proceeds for Buy Trade\";\r\n default: return '';\r\n }\r\n }\r\n\r\n const sellText = getSellTradeText();\r\n const buyText = getBuyTradeText();\r\n\r\n if (!sellText && !buyText) return null;\r\n\r\n return (\r\n <>\r\n setExpanded(true)}\r\n onHide={() => setExpanded(false)}\r\n customTargetComponent={\r\n \r\n \r\n Allocation\r\n \r\n \r\n }\r\n >\r\n { e.stopPropagation(); handleClick(TradeSide.Buy) }}\r\n >\r\n {buyText}\r\n \r\n { e.stopPropagation(); handleClick(TradeSide.Sell) }}\r\n >\r\n {sellText}\r\n \r\n \r\n {\r\n noSettlementAccountCompany != null &&\r\n
    ) => e.stopPropagation()}>\r\n Client {noSettlementAccountCompany.name} doesn't have any settlement accounts yet. Would you like to create?}\r\n confirmButtonText=\"Create\"\r\n onConfirm={() => history.push(routes.createClientsSettlementAccountUrl(noSettlementAccountCompany.id))}\r\n onCancel={() => setNoSettlementAccountCompany(undefined)}\r\n />\r\n
    \r\n }\r\n \r\n )\r\n}\r\n","import React from 'react';\r\nimport { Checkbox } from '../controls/Checkbox';\r\nimport { useSelector } from 'react-redux';\r\nimport { AppState } from '../../types/state/AppState';\r\nimport { TradeSide } from '../../types/trades/TradeSide';\r\nimport { Preloader } from '../common/Preloader';\r\n\r\ninterface Props {\r\n vconBuy: boolean;\r\n vconSell: boolean;\r\n tradeSide: TradeSide;\r\n onClick: (tradeId: string, isBuyTrade: boolean, value: boolean) => void;\r\n tradeId: string;\r\n}\r\n\r\nexport const VconCheckbox: React.FC = ({ onClick, tradeId, vconBuy, vconSell, tradeSide }) => {\r\n const isBuyTrade = tradeSide === TradeSide.Buy;\r\n const isRequesting = useSelector((state: AppState) => state.blotter.requestStatusSetVcon[`${tradeId}_${isBuyTrade}`]);\r\n\r\n const handleClick = () => {\r\n if (!isRequesting) {\r\n onClick(tradeId, isBuyTrade, isBuyTrade ? !vconBuy : !vconSell)\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n};\r\n"],"names":["MessageHistoryPanel","_ref","process","isAllToAll","dispatch","useAppDispatch","ticker","useSelector","store","bwicHistory","visible","_jsx","RightSidePanel","className","title","concat","onClose","bwicHistoryActions","showHistory","children","MessageHistory","TemplateListItem","template","disabled","onActiveChange","onDelete","history","useHistory","_React$useState","React","_React$useState2","_slicedToArray","deleteConfirmationVisible","setDeleteConfirmationVisible","_jsxs","cn","active","name","ContextMenu","ContextMenuItem","requiredRoles","roles","SellerTrader","onClick","replace","_objectSpread","location","state","LocationStateBuilder","panel","PanelType","Templates","editTemplateId","id","result","lock","classNames","sectionBlock","tradeAllocationTypeTitle","type","items","map","i","OnHoverTooltip","wrapperClass","overlay","settlementAccount","accountName","item","percent","formatUtils","formatDecimal","rating","Confirm","text","_Fragment","onConfirm","onCancel","TemplateList","templates","_useTempateDelete","useDispatch","RequestState","none","requestState","setRequestState","_asyncToGenerator","_regeneratorRuntime","mark","_callee","templateId","wrap","_context","prev","next","request","tradeAllocationTemplateService","deleteTemplate","success","tradeAllocationTemplateActions","t0","errorActions","unexpectedError","failure","stop","_x","apply","arguments","deleteRequestState","useTempateDelete","_useTempateActiveChan","updates","activated","deactivated","setTemplateActive","sent","find","t","activeChange","status","notificationActions","notificationAddErrorMessageModal","errorMessages","refreshPage","_x2","_x3","activateRequestState","useTempateActiveChange","isRequesting","TemplateEdit","_template$name","_template$type","existTemplateNames","settlementAccounts","dataItems","s","grid","saveRequestState","blotter","tradeAllocationTemplate","editTemplateName","setEditTemplateName","_React$useState3","_React$useState4","editTemplateNameError","setEditTemplateNameError","_React$useState5","TradeAllocationType","PercentOfTrade","_React$useState6","editTempateType","setEditTemplateType","_React$useState7","_React$useState8","percentError","setPercentError","editDataItems","filter","draft","sumBy","numericUtils","numberOrDefault","hasErrors","Boolean","some","errors","values","length","hasChanges","_template$name2","_template$type2","_template$items$lengt","_template$items","trim","original","edit","e","Number","settlementAccountId","CreditRatings","validateTemplateName","stringUtils","isNullOrWhiteSpace","empty","n","saveDisabled","gridActions","reset","gridColumns","selectSourceItemsCallback","a","key","columns","percentOfTrade","unique","required","keepEmptyOption","format","value","String","constants","emptyPlaceholder","readonly","disabledSort","rowLimit","Ratings","push","_toConsumableArray","_template$items$find","ti","undefined","init","handleSave","activate","nameError","validate","_template$id","blotterTradeAllocationTemplateActions","save","FormFieldLabel","maxLength","placeholder","onChange","target","error","FormError","message","RadioButton","label","checked","Grid","dataUploadDisabled","deleteDisabled","addRowVisible","moveRowVisible","renderFooter","StatusMessageSection","StatusMessageSectionType","Error","RouteLeavingGuard","navigate","pathname","search","shouldBlockNavigation","nextLocation","_nextLocation$state","_nextLocation$state$p","_nextLocation$state2","_nextLocation$state2$","_nextLocation$state2$2","_template$id2","isRequestSuccess","payload","minSettlementAccounts","maxTemplates","TradeAllocationTemplatePanel","_locationState$panel","_locationState$panel2","_locationState$panel3","locationState","useLocation","TradeAllocationTemplatePanelContent","_ref2","savingState","_useSettlementAccount","useSettlementAccounts","settlementAccountsRequestState","isCreate","isEdit","editTemplate","notEnoughSettlementAccounts","resetPanelState","RoleActionBlocker","FeatureButton","IconSVG","width","height","EmptyPlaceholder","textView","BlotterSettlementAccount","templatePanelState","SettlementAccountsView","onAccountChange","account","path","routes","blotterSettlementAccountDetailsUrl","activeSettlementAccount","SettlementAccountView","TradeAllocationTableRows","tradeId","columnType","collapseLevel","side","_useTradeAllocation","useTradeAllocation","TableColumnStickType","Middle","tradeAllocationItems","columnDefinitions","Right","columnKey","renderColumnHeaderContent","renderColumnContent","headerClassName","bodyClassName","miraeAcc","moneyUtils","money","amount","TradeSide","Sell","proceeds","proceed","c","ColumnBuilder","_defineProperty","Preloader","small","inProgress","SecurityListHeader","renderHeader","StickyTableRow","rowKey","dataItem","context","Message","action","containerClientRect","onRead","visitorType","_message","useRef","useEffect","isRead","current","getBoundingClientRect","top","bottom","referenceName","renderStage1Ended","BwicProcessType","BestFootForward","BwicVisitorType","Seller","BrokerDealer","Buyer","renderStage2Ended","renderPxTalkMessage","talk","renderTradeMessage","isMyMessage","getReceiverCode","formatTradeDetails","renderTradeAffirmedMessage","renderTradeRejectedMessage","renderTradeCanceledMessage","formatBid","price","amountToMM","size","bid","renderTradedAwayMessage","isTradedAway","renderFeedbackMessage","onBehalf","BidOnBehalfIcon","feedback","renderNewBidMessage","pass","isNumber","delta","BidLevelDelta","currentLevel","updatedLevel","updatedLevelVisible","axed","AxedIcon","final","FinalIcon","buyerPseudoOrderNumber","receiverCode","isBidOnBehalf","actionType","BwicHistoryActionType","NewBid","isResponseMessage","messageCssClasses","content","Scheduled","Bidding","AxedFinalChanged","DirectBid","DirectFeedback","QuickFeedback","TradedAway","TradeSubmitted","TradeAffirmed","TradeRejected","TradeCanceled","ColorDistributionSend","Finished","Canceled","OpenBiddingStage1Started","OpenBiddingStage1Ended","OpenBiddingStage2Ended","PriceTalk","renderActionContent","ref","submittedBy","_action$payload2","legalName","code","companyName","getDirectBidCompanyName","_action$payload","companyCode","getDirectBidCompanyCode","moment","sentDateUtc","local","timeFormat","_React$Component","_this","_classCallCheck","_len","args","Array","_key","_callSuper","awaitingReadMessages","readMessages","firstUnreadMessageIndex","scrollableContainerClientRect","componentDidMount","_scrollableContainer","getFirstUnreadActionIndex","setState","componentDidUpdate","prevProps","previousActions","actions","props","findIndex","handleContainerScroll","handleMessageRead","referencName","m","setTimeout","markMessageRead","_this$readMessages","markHistoryMessagesAsRead","isTradeAwayCancelation","renderEmptyContent","ImageSVG","renderActionItems","historyActions","hasReadMessages","actionsByDate","arrayUtils","groupBy","startOf","dateShortFormat","from","group","renderActionGroup","renderDate","index","shouldRenderUnreadLine","indexOf","renderUnreadMessagesLine","groupDate","date","today","Date","isSame","clone","add","renderContent","hasHistoryItems","render","node","onScroll","ShowFor","seller","bd","RequiredRole","requiredRole","BrokerDealerTrader","_inherits","_createClass","connectedMessageHistory","connect","_ref3","getHistory","HistoryButton","_history$actions","positionId","_ref$ticker","_ref$text","_ref$unreadCountVisbl","unreadCountVisble","_ref$disabled","unreadCount","user","hasRoles","isActive","handleClick","stopPropagation","renderButton","defaultProps","TradeBookedCheckbox","tradeSide","bookedSell","bookedBuy","isBuyTrade","Buy","requestStatusSetBooked","Checkbox","TradeAllocationPopup","_locationState$popup6","_locationState$popup7","_locationState$popup8","_locationState$popup9","trade","_locationState$popup","_locationState$popup2","_locationState$popup3","popup","PopupType","tradeAllocationTradeId","securities","_locationState$popup4","_locationState$popup5","companyId","TradeAllocationPopupContent","assetManager","TOTAL_TRADE_AMOUNT_ERROR","TOTAL_TRADE_PERCENT_ERROR","unsavedChangesAlertVisible","setUnsavedChangesAlertVisible","amountError","setAmountError","tradeAllocationState","gridMountedKey","mountedKey","saveTradeAllocationRequestState","requestStateSaveTradeAllocation","editTradeAllocationItems","isSeller","isBd","isProceedsVisible","requesting","_React$useMemo","round","blotterTradeAllocationActions","resetPopupState","isTotalTradeAllocationValid","settlementAccountColumn","percentOfTradeColumn","__","min","max","updateDependencyColumnsCallback","rowIndex","recalculateAmountOfTrade","amountOfTradeColumn","amountOfTrade","_","recalculatePercentOfTrade","proceedsColumn","editItems","originProceed","editProceed","parse","isChangedOrRemoved","handleClose","resetPopup","renderGridFooter","UnsavedChangesPopup","Popup","modalClass","renderTitle","renderInBody","PopupBody","PopupFooter","settlementStatus","sellerSettlementStatus","buyerSettlementStatus","TradeSettlementStatus","PendingProceeds","canSaveUnchanged","allocationLock","TradeAllocationTemplateButton","onShow","activeTemplate","isLoading","placement","TooltipPlacement","BottomRight","TradeAllocationButton","_history$location$sta","_history$location$sta2","_history$location$sta3","_history$location$sta4","_history$location$sta5","locationStateBuilder","SellerTradeAllocationButton","DealerTradeAllocationButton","directBuyerCompany","warningModal","counterparty","PendingAllocation","PendingSettlement","_user$current","noSettlementAccountCompany","setNoSettlementAccountCompany","expanded","setExpanded","isClearingBank","company","sellText","getSellTradeText","buyText","getBuyTradeText","onHide","customTargetComponent","confirmButtonText","createClientsSettlementAccountUrl","VconCheckbox","vconBuy","vconSell","requestStatusSetVcon"],"sourceRoot":""}