{"version":3,"file":"static/js/main-c90dfd18.aee14615.js","mappings":"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","sources":["components/amrPipeline/common-columns.tsx","components/amrPipeline/common/AddToPortfolioLink.tsx","components/amrPipeline/common/AmrClassStatusLabel.tsx","components/amrPipeline/common/BankLink.tsx","components/amrPipeline/common/BwicInventoryLink.tsx","components/amrPipeline/common/BwicMonitorLink.tsx","components/amrPipeline/common/DetailedPageLink.tsx","components/amrPipeline/common/ExportButton.tsx","components/amrPipeline/common/FilterLink.tsx","components/amrPipeline/common/FilterLinkIcon.tsx","components/amrPipeline/common/FilterRelatedTransactionsIcon.tsx","components/amrPipeline/common/FormField.tsx","components/amrPipeline/common/Highlighter.tsx","components/amrPipeline/common/ImDealLookupLink.tsx","components/amrPipeline/common/ImTransactionDetailsLink.tsx","components/amrPipeline/common/InlineAlertPanel.tsx","components/amrPipeline/common/InviteClientsTransactionPopup/MailPreview/columns.tsx","components/amrPipeline/common/InviteClientsTransactionPopup/MailPreview/GeneralInfo.tsx","components/amrPipeline/common/InviteClientsTransactionPopup/MailPreview/MailPreview.tsx","components/amrPipeline/common/InviteClientsTransactionPopup/useRequestInviteClients.ts","components/amrPipeline/common/InviteClientsTransactionPopup/useRequestTransactionDetails.ts","components/amrPipeline/common/InviteClientsTransactionPopup/InviteClientsTransactionPopup.tsx","components/amrPipeline/common/ManagerLink.tsx","components/amrPipeline/common/NewDebutAmrLabel.tsx","components/amrPipeline/common/NonAmrPeriod.tsx","components/amrPipeline/common/OverlayClassNameContent.tsx","components/amrPipeline/common/RelatedTransDropdown.tsx","components/amrPipeline/common/SecurityBwicLink.tsx","components/amrPipeline/common/AutoCompleteInput.tsx","components/amrPipeline/common/SelectionPanelSearch.tsx","components/amrPipeline/common/ShowMore.tsx","components/amrPipeline/common/TransactionHistoryLink.tsx","components/amrPipeline/common/analytics/AnalyticsFilter.tsx","components/amrPipeline/common/analytics/AnalyticsWidget.tsx","components/amrPipeline/common/constants/index.ts","components/amrPipeline/common/customize-columns/CustomizeColumnsDialog.tsx","components/amrPipeline/common/documents/DocumentGroup.tsx","components/amrPipeline/common/documents/documents-columns.tsx","components/amrPipeline/common/documents/DocumentSection.tsx","components/amrPipeline/common/documents/DownloadDocument.tsx","components/amrPipeline/common/documents/FileUploader.tsx","components/amrPipeline/common/section/EmptySectionContent.tsx","components/amrPipeline/common/section/SectionContent.tsx","components/amrPipeline/common/tabs/TabBody.jsx","components/amrPipeline/common/tabs/TabContent.jsx","components/amrPipeline/common/transactionAlerts/TransactionAlertsButton.tsx","components/amrPipeline/common/transactionAlerts/TransactionAlertsPopup.tsx"],"sourcesContent":["import moment from 'moment';\r\nimport { pipelineColumnLabels, pipelineTooltipText, SORTING_TYPE } from '../../constants';\r\nimport { constants } from '../../constants/constants';\r\nimport IconSVG from '../../styles/svg-icons';\r\nimport { formatUtils } from '../../utils';\r\nimport { PeriodPopover } from '../amrPipeline/aggregated/PeriodPopover';\r\nimport { PipelineColumn } from '../amrPipeline/types/PipelineColumn';\r\nimport { IColumnDefinition } from '../bidding/common/table/types/ColumnDefinition';\r\nimport { OnHoverTooltip } from '../common';\r\nimport { MarkdownViewer, renderMarkdownOrEmpty } from '../common/markdown-editor';\r\nimport { Popover } from '../controls';\r\nimport { DataFromAmr } from './types/DataFromAmr';\r\nimport { ManagerLink } from './common/ManagerLink';\r\nimport { ColumnConfigKey } from '../../types/page-config/column-customizer/ColumnConfigKey';\r\nimport { bwicColumnsLabels } from '../../constants/bwicColumnsLabels';\r\n\r\n\r\nenum CommonAmrColumns {\r\n dealName = 'dealName',\r\n manager = 'manager',\r\n nonCallPeriodEnd = 'nonCallPeriodEnd',\r\n reinvestmentPeriodEnd = 'reinvestmentPeriodEnd',\r\n nonCallPeriodEndYears = 'nonCallPeriodEndYears',\r\n reinvestmentPeriodEndYears = 'reinvestmentPeriodEndYears',\r\n maturity = 'maturity',\r\n vintage = 'vintage',\r\n trustee = 'trustee',\r\n amrDeal = 'amrDeal',\r\n staticDeal = 'staticDeal',\r\n euCompliance = 'euCompliance',\r\n esg = 'esg',\r\n collateralType = 'collateralType',\r\n closingDate = 'closingDate',\r\n outOfNC = 'outOfNC',\r\n outOfRI = 'outOfRI'\r\n}\r\n\r\nexport function getAmrColumns(): { [key in CommonAmrColumns]: IColumnDefinition } {\r\n return {\r\n [PipelineColumn.dealName]: {\r\n columnKey: PipelineColumn.dealName,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.dealName],\r\n renderColumnContent: ({ dealLegalName }) => {\r\n return dealLegalName ? (\r\n {dealLegalName}\r\n ) : (\r\n constants.emptyPlaceholder\r\n );\r\n },\r\n sortingField: 'dealLegalName',\r\n sortingType: SORTING_TYPE.string,\r\n className: 'data-list-cell-xl',\r\n configKey: ColumnConfigKey.DealName\r\n },\r\n [PipelineColumn.manager]: {\r\n columnKey: PipelineColumn.manager,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.manager],\r\n renderColumnContent: ({ collateralManager }) => {\r\n if (collateralManager) {\r\n return (\r\n \r\n )\r\n }\r\n return constants.emptyPlaceholder\r\n },\r\n sortingField: 'collateralManager',\r\n sortingType: SORTING_TYPE.company,\r\n headerClassName: 'data-list-cell-xl',\r\n bodyClassName: 'data-list-cell-xl',\r\n configKey: ColumnConfigKey.CollateralManager\r\n },\r\n [PipelineColumn.closingDate]: {\r\n columnKey: PipelineColumn.closingDate,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.closingDate],\r\n renderColumnContent: ({ closingDate }) =>\r\n closingDate ? moment(closingDate).format(constants.dateFormat) : constants.emptyPlaceholder,\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm',\r\n sortingType: SORTING_TYPE.date,\r\n sortingField: PipelineColumn.closingDate,\r\n configKey: ColumnConfigKey.ClosingDate\r\n },\r\n [PipelineColumn.nonCallPeriodEnd]: {\r\n columnKey: 'ncEnd',\r\n configKey: ColumnConfigKey.NcEnd,\r\n renderColumnHeaderContent: () => bwicColumnsLabels[ColumnConfigKey.NcEnd],\r\n renderColumnContent: ({ nonCallPeriodEnd }) => \r\n nonCallPeriodEnd ? moment(nonCallPeriodEnd).format('MMM DD, YYYY'): constants.emptyPlaceholder,\r\n className: 'data-list-cell-sm',\r\n },\r\n [PipelineColumn.nonCallPeriodEndYears]: {\r\n columnKey: PipelineColumn.nonCallPeriodEnd,\r\n renderColumnHeaderContent: () => (\r\n \r\n {pipelineColumnLabels[PipelineColumn.nonCallPeriodEndYears]}\r\n \r\n \r\n ),\r\n renderColumnContent: ({ nonCallPeriodEnd, reinvestmentPeriodEnd, nonCallPeriodEndYears }) => (\r\n <>\r\n \r\n }\r\n >\r\n \r\n {nonCallPeriodEndYears?.toFixed(2) ?? constants.emptyPlaceholder}\r\n \r\n \r\n \r\n ),\r\n sortingField: PipelineColumn.nonCallPeriodEndYears,\r\n sortingType: SORTING_TYPE.number,\r\n headerClassName: 'data-list-cell-sm text-right',\r\n bodyClassName: 'data-list-cell-sm text-right popover-column',\r\n configKey: ColumnConfigKey.NcEndYrs\r\n },\r\n [PipelineColumn.outOfNC]: {\r\n columnKey: PipelineColumn.outOfNC,\r\n renderColumnHeaderContent: () => (\r\n \r\n {pipelineColumnLabels[PipelineColumn.outOfNC]}\r\n \r\n \r\n ),\r\n renderColumnContent: ({ reinvestmentPeriodEnd, nonCallPeriodEnd, outOfNC }) => {\r\n const columnText = outOfNC == null\r\n ? constants.emptyPlaceholder\r\n : formatUtils.formatBoolean(outOfNC)\r\n return (\r\n \r\n }\r\n >\r\n {columnText}\r\n \r\n );\r\n },\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm popover-column text-capitalize',\r\n configKey: ColumnConfigKey.OutOfNc\r\n },\r\n [PipelineColumn.reinvestmentPeriodEnd]: {\r\n columnKey: 'riEnd',\r\n configKey: ColumnConfigKey.RiEnd,\r\n renderColumnHeaderContent: () => bwicColumnsLabels[ColumnConfigKey.RiEnd],\r\n renderColumnContent: ({ reinvestmentPeriodEnd }) =>\r\n reinvestmentPeriodEnd ? moment(reinvestmentPeriodEnd).format(constants.dateFormat) : constants.emptyPlaceholder,\r\n className: 'data-list-cell-sm',\r\n },\r\n [PipelineColumn.reinvestmentPeriodEndYears]: {\r\n columnKey: PipelineColumn.reinvestmentPeriodEnd,\r\n renderColumnHeaderContent: () => (\r\n \r\n {pipelineColumnLabels[PipelineColumn.reinvestmentPeriodEndYears]}\r\n \r\n \r\n ),\r\n renderColumnContent: ({ reinvestmentPeriodEnd, nonCallPeriodEnd, reinvestmentPeriodEndYears }) => (\r\n <>\r\n \r\n }\r\n >\r\n \r\n {reinvestmentPeriodEndYears?.toFixed(2) ?? constants.emptyPlaceholder}\r\n \r\n \r\n \r\n ),\r\n sortingField: PipelineColumn.reinvestmentPeriodEndYears,\r\n sortingType: SORTING_TYPE.number,\r\n headerClassName: 'data-list-cell-sm text-right',\r\n bodyClassName: 'data-list-cell-sm text-right popover-column',\r\n configKey: ColumnConfigKey.RiEndYrs\r\n },\r\n [PipelineColumn.outOfRI]: {\r\n columnKey: PipelineColumn.outOfRI,\r\n renderColumnHeaderContent: () => (\r\n \r\n {pipelineColumnLabels[PipelineColumn.outOfRI]}\r\n \r\n \r\n ),\r\n renderColumnContent: ({ reinvestmentPeriodEnd, nonCallPeriodEnd, outOfRI }) => {\r\n const columnText = outOfRI == null\r\n ? constants.emptyPlaceholder\r\n : formatUtils.formatBoolean(outOfRI)\r\n return (\r\n \r\n }\r\n >\r\n {columnText}\r\n \r\n );\r\n },\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm popover-column text-capitalize',\r\n configKey: ColumnConfigKey.OutOfRi\r\n },\r\n [PipelineColumn.maturity]: {\r\n columnKey: PipelineColumn.maturity,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.maturity],\r\n renderColumnContent: ({ statedMaturity, finalMaturity }) => {\r\n const maturity = statedMaturity || finalMaturity;\r\n return maturity ? moment(maturity).format(constants.dateFormat) : constants.emptyPlaceholder;\r\n },\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm',\r\n sortingField: 'statedMaturity',\r\n sortingType: SORTING_TYPE.date,\r\n configKey: ColumnConfigKey.Maturity\r\n },\r\n [PipelineColumn.vintage]: {\r\n columnKey: PipelineColumn.vintage,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.vintage],\r\n renderColumnContent: ({ vintage }) => {\r\n return vintage ? moment(vintage).year() : constants.emptyPlaceholder;\r\n },\r\n sortingField: PipelineColumn.vintage,\r\n sortingType: SORTING_TYPE.date,\r\n configKey: ColumnConfigKey.Vintage\r\n },\r\n [PipelineColumn.trustee]: {\r\n columnKey: PipelineColumn.trustee,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.trustee],\r\n renderColumnContent: ({ trustee }) => {\r\n if (trustee) {\r\n return {trustee.legalName};\r\n }\r\n\r\n return constants.emptyPlaceholder;\r\n },\r\n headerClassName: 'data-list-cell-xl',\r\n bodyClassName: 'data-list-cell-xl',\r\n sortingField: PipelineColumn.trustee,\r\n sortingType: SORTING_TYPE.company,\r\n configKey: ColumnConfigKey.Trustee\r\n },\r\n [PipelineColumn.amrDeal]: {\r\n columnKey: PipelineColumn.amrDeal,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.amrDeal],\r\n renderColumnContent: ({ amr }) => formatUtils.formatBooleanWithPlaceholder(amr),\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm',\r\n sortingField: 'amr',\r\n sortingType: SORTING_TYPE.boolean,\r\n configKey: ColumnConfigKey.AmrDeal\r\n },\r\n [PipelineColumn.staticDeal]: {\r\n columnKey: PipelineColumn.staticDeal,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.staticDeal],\r\n renderColumnContent: transaction => formatUtils.formatBooleanWithPlaceholder(transaction.staticDeal),\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm',\r\n sortingField: PipelineColumn.staticDeal,\r\n sortingType: SORTING_TYPE.boolean,\r\n configKey: ColumnConfigKey.StaticDeal\r\n },\r\n [PipelineColumn.euCompliance]: {\r\n columnKey: PipelineColumn.euCompliance,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.euCompliance],\r\n renderColumnContent: ({\r\n dealLegalName,\r\n euCompliance,\r\n euRiskRetentionRequirements,\r\n euDisclosureRequirements,\r\n }) => {\r\n const columnText = formatUtils.formatBooleanWithPlaceholder(euCompliance);\r\n\r\n if (euCompliance && (euRiskRetentionRequirements || euDisclosureRequirements)) {\r\n return (\r\n \r\n {dealLegalName}\r\n \r\n }\r\n actionButton={}\r\n >\r\n

EU Risk Retention Requirements

\r\n
{renderMarkdownOrEmpty(euRiskRetentionRequirements)}
\r\n

EU Disclosure Requirements

\r\n
{renderMarkdownOrEmpty(euDisclosureRequirements)}
\r\n \r\n );\r\n }\r\n\r\n return columnText;\r\n },\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm',\r\n sortingField: PipelineColumn.euCompliance,\r\n sortingType: SORTING_TYPE.boolean,\r\n configKey: ColumnConfigKey.EuCompliance\r\n },\r\n [PipelineColumn.esg]: {\r\n columnKey: PipelineColumn.esg,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.esg],\r\n renderColumnContent: ({ dealLegalName, esg, esgComment }) => {\r\n const columnText = formatUtils.formatBooleanWithPlaceholder(esg);\r\n\r\n if (esg && esgComment) {\r\n return (\r\n \r\n {dealLegalName}\r\n \r\n }\r\n actionButton={}\r\n className=\"popover-esg-comments\"\r\n >\r\n \r\n \r\n );\r\n }\r\n\r\n return columnText;\r\n },\r\n headerClassName: 'data-list-cell-xs',\r\n bodyClassName: 'data-list-cell-xs',\r\n sortingField: PipelineColumn.esg,\r\n sortingType: SORTING_TYPE.boolean,\r\n configKey: ColumnConfigKey.Esg\r\n },\r\n [PipelineColumn.collateralType]: {\r\n columnKey: PipelineColumn.collateralType,\r\n renderColumnHeaderContent: () => pipelineColumnLabels[PipelineColumn.collateralType],\r\n renderColumnContent: ({ collateralType }) => formatUtils.formatCollateralType(collateralType),\r\n headerClassName: 'data-list-cell-xs',\r\n bodyClassName: 'data-list-cell-xs',\r\n sortingField: PipelineColumn.collateralType,\r\n sortingType: SORTING_TYPE.string,\r\n configKey: ColumnConfigKey.CollateralType\r\n },\r\n };\r\n}\r\n","import IconSVG from \"../../../styles/svg-icons\";\r\nimport cn from \"classnames\";\r\nimport { constants } from \"../../../constants\";\r\nimport { ImSubscriptionActionBlocker } from \"../../amrPipeline/subscription/ImSubscriptionActionBlocker\";\r\nimport { OnHoverTooltip } from \"../../common\";\r\nimport { TransactionStatus } from \"../../../types/amr-pipeline/enums/TransactionStatus\";\r\nimport {\r\n Tooltip,\r\n TooltipPlacement,\r\n TooltipTriggerType,\r\n} from \"../../common/Tooltip\";\r\nimport { useMemo, useState } from \"react\";\r\nimport { ContextMenuItem } from \"../../controls/ContextMenuItem\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { AddToPortfolioPopup } from \"../../portfolio/add-to-portfolio/AddToPortfolioPopup\";\r\nimport { addToPortfolioActions } from \"../../../actions/add-to-portfolio.actions\";\r\nimport { Transaction } from \"../../../types/amr-pipeline/models/Transaction\";\r\nimport { Currency } from \"../../../types/enums/Currency\";\r\nimport { OriginatingTransactionClass } from \"../../../types/amr-pipeline/models/OriginatingTransactionClass\";\r\nimport { usePortfolios } from \"../../../effects/usePortfolios\";\r\nimport { AmrClass } from \"../../../types/amr-pipeline/models/AmrClass\";\r\nimport { TransactionType } from \"../../../types/amr-pipeline/enums/TransactionType\";\r\nimport { PortfolioSecurity } from \"../../../types/portfolio/PortfolioSecurity\";\r\nimport { Rating } from \"../../../types/enums/Rating\";\r\n\r\nconst AddToPortfolioIcon = () => (\r\n \r\n);\r\n\r\ninterface Identifier {\r\n isinCusip: string;\r\n ticker: string;\r\n}\r\n\r\ninterface IdentifierList extends Identifier {\r\n label: string;\r\n}\r\n\r\ninterface Props {\r\n wrapperClassName?: string;\r\n className?: string;\r\n disabled?: boolean;\r\n checkSubscription?: boolean;\r\n transaction: Transaction;\r\n transactionClass: OriginatingTransactionClass | AmrClass;\r\n withText?: boolean;\r\n withEmptyPlaceholder?: boolean;\r\n}\r\nexport function AddToPortfolioLink({\r\n wrapperClassName,\r\n className,\r\n disabled = false,\r\n checkSubscription = false,\r\n transaction,\r\n transactionClass,\r\n withText,\r\n withEmptyPlaceholder = true,\r\n}: Props) {\r\n const [isPopupVisible, setIsPopupVisible] = useState(false);\r\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\r\n const [selectedIdentifier, setSelectedIdentifier] =\r\n useState(null);\r\n const { status, currency, type } = transaction;\r\n const { rating } = transactionClass;\r\n const tranche =\r\n type === TransactionType.amr\r\n ? (transactionClass as AmrClass).class\r\n : (transactionClass as OriginatingTransactionClass).tranche;\r\n\r\n const isEuro = currency && currency.code === Currency.EUR;\r\n\r\n const cusip144A = tranche?.cusip144A;\r\n const cusipRegS = tranche?.cusipRegS;\r\n const cusipAccdInvCertif = tranche?.cusipAccdInvCertif;\r\n\r\n const isin144A = tranche?.isin144A;\r\n const isinRegS = tranche?.isinRegS;\r\n const isinAccdInvCertif = tranche?.isinAccdInvCertif;\r\n\r\n const ticker144A = tranche?.ticker144A;\r\n const tickerRegS = tranche?.tickerRegS;\r\n const tickerAccdInvCertif = tranche?.tickerAccdInvCertif;\r\n\r\n const identifier144A = isEuro ? isin144A : cusip144A;\r\n const identifierRegS = isEuro ? isinRegS : cusipRegS;\r\n const identifierAccdInvCertif = isEuro ? isinAccdInvCertif : cusipAccdInvCertif;\r\n\r\n const dispatch = useDispatch();\r\n const { items: portfolios } = usePortfolios(true);\r\n\r\n const identifierList = [\r\n { isinCusip: identifier144A, ticker: ticker144A, label: \"144A\" },\r\n { isinCusip: identifierRegS, ticker: tickerRegS, label: \"Reg S\" },\r\n {\r\n isinCusip: identifierAccdInvCertif,\r\n ticker: tickerAccdInvCertif,\r\n label: \"Acc’d Inv./Certif.\",\r\n },\r\n ].filter((c) => !!c.isinCusip && !!c.ticker) as IdentifierList[];\r\n\r\n const withButton = !!(\r\n status === TransactionStatus.Closed &&\r\n identifierList.length &&\r\n rating\r\n );\r\n\r\n const security = useMemo(() => {\r\n let result: PortfolioSecurity | undefined;\r\n if (withButton) {\r\n for (let i = 0; i < portfolios.length; i++) {\r\n result = portfolios[i].securities.find(\r\n (s) =>\r\n s.isinCusip === selectedIdentifier?.isinCusip ||\r\n s.isinCusip === identifier144A ||\r\n s.isinCusip === identifierRegS ||\r\n s.isinCusip === identifierAccdInvCertif\r\n );\r\n if (!!result) {\r\n break;\r\n }\r\n }\r\n }\r\n return result;\r\n }, [\r\n selectedIdentifier?.isinCusip,\r\n identifier144A,\r\n identifierRegS,\r\n identifierAccdInvCertif,\r\n portfolios,\r\n withButton,\r\n ]);\r\n\r\n if (!withButton) {\r\n return withEmptyPlaceholder ? (\r\n \r\n {constants.emptyPlaceholder}\r\n \r\n ) : null;\r\n }\r\n\r\n if (disabled) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const handleVisibilityChange = (isVisible: boolean) =>\r\n setIsTooltipVisible(isVisible);\r\n\r\n const handleClose = () => {\r\n setIsPopupVisible(false);\r\n setSelectedIdentifier(null);\r\n dispatch(addToPortfolioActions.reset());\r\n };\r\n\r\n const renderBlockedView = () => (\r\n \r\n );\r\n const getMenuItems = () =>\r\n identifierList.map(({ isinCusip, ticker, label }) => (\r\n {\r\n setIsTooltipVisible(false);\r\n setIsPopupVisible(true);\r\n setSelectedIdentifier({ isinCusip, ticker });\r\n }}\r\n key={label}\r\n >\r\n {isinCusip} ({label})\r\n \r\n ));\r\n\r\n const renderTooltip = () => {\r\n const withAddedItem = !!security;\r\n return (\r\n \r\n withAddedItem ? null : (\r\n
\r\n
    {getMenuItems()}
\r\n
\r\n )\r\n }\r\n >\r\n e.stopPropagation()}>\r\n \r\n setIsPopupVisible(true)\r\n : undefined\r\n }\r\n >\r\n {withAddedItem ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {withText &&\r\n (withAddedItem ? (\r\n Added to Portfolio\r\n ) : (\r\n Add to Portfolio\r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const renderPopup = () => {\r\n const isinCusip = security?.isinCusip || selectedIdentifier?.isinCusip;\r\n const ticker = security?.ticker || selectedIdentifier?.ticker;\r\n if (!isPopupVisible || !isinCusip || !ticker) {\r\n return null;\r\n }\r\n const positionCurrency = security?.currency || currency?.code;\r\n const position = {\r\n isinCusip,\r\n securityId: security?.securityId,\r\n size: security?.size || 0,\r\n ticker,\r\n currency: positionCurrency\r\n ? (positionCurrency as Currency)\r\n : Currency.USD,\r\n rating: (security?.rating || rating) as Rating,\r\n };\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {(blocked) => (\r\n
\r\n {blocked ? (\r\n renderBlockedView()\r\n ) : (\r\n <>\r\n {renderTooltip()}\r\n {renderPopup()}\r\n \r\n )}\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport classNames from 'classnames';\r\nimport { AmrTrancheStatus } from '../../../types/amr-pipeline/enums/AmrTrancheStatus';\r\nimport { amrTrancheStatuses } from '../../../constants/amr.tranche.statuses';\r\n\r\ninterface AmrClassStatusLabelProps {\r\n status?: AmrTrancheStatus\r\n}\r\n\r\nexport function AmrClassStatusLabel({ status }: AmrClassStatusLabelProps) {\r\n if (!status) {\r\n return null;\r\n }\r\n\r\n const statusText: string = amrTrancheStatuses.getStatusText(status);\r\n const classStatus = `label-status-${statusText.toLowerCase().replace(' ', '-')}`;\r\n\r\n return {statusText};\r\n}\r\n","import React from \"react\";\r\nimport { routes } from \"../../../constants/routes\";\r\nimport { OnHoverTooltip } from \"../../common/OnHoverTooltip\";\r\nimport { user } from \"../../../user\";\r\nimport { roles } from \"../../../constants\";\r\n\r\ninterface Props {\r\n referenceName: string;\r\n legalName: string;\r\n overlayText?: string;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function BankLink({ referenceName, legalName, overlayText, onClick }: Props) {\r\n const isLinkAvailable = user.hasRoles(...roles.banksAccess());\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n\r\n if (onClick) {\r\n onClick();\r\n }\r\n\r\n window.open(\r\n window.location.origin + routes.manageBanksUrl(referenceName)\r\n );\r\n };\r\n\r\n return (\r\n \r\n {isLinkAvailable ? (\r\n \r\n {legalName}\r\n \r\n ) : (\r\n {legalName}\r\n )}\r\n \r\n );\r\n}\r\n","import { ClassIndicators } from '../../../types/amr-pipeline/models/ClassIndicators';\r\nimport { routes } from '../../../constants';\r\nimport { SecurityBwicLink } from './SecurityBwicLink';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { Currency } from '../../../types/amr-pipeline/models/Currency';\r\n\r\ntype Props = {\r\n identifier?: string;\r\n identifiers?: ClassIndicators;\r\n className?: string;\r\n disabled?: boolean;\r\n secondaryPlaceholderColor?: boolean;\r\n currency?: Currency;\r\n};\r\n\r\nexport function BwicInventoryLink({ identifiers, identifier, currency, className, secondaryPlaceholderColor }: Props) {\r\n return (\r\n \r\n );\r\n}\r\n","import { routes } from '../../../constants';\r\nimport { ClassIndicators } from '../../../types/amr-pipeline/models/ClassIndicators';\r\nimport { Currency } from '../../../types/amr-pipeline/models/Currency';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { SecurityBwicLink } from './SecurityBwicLink';\r\n\r\ntype Props = {\r\n identifier?: string;\r\n identifiers?: ClassIndicators;\r\n className?: string;\r\n disabled?: boolean;\r\n secondaryPlaceholderColor?: boolean;\r\n currency?: Currency;\r\n};\r\n\r\nexport function BwicMonitorLink({ identifiers, identifier, currency, className, secondaryPlaceholderColor }: Props) {\r\n return (\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport cn from \"classnames\";\r\nimport { routes } from \"../../../constants/routes\";\r\nimport { Transaction } from \"../../../types/amr-pipeline/models/Transaction\";\r\nimport { useHistory } from \"react-router\";\r\n\r\ninterface Props {\r\n transaction: Transaction;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function DetailedPageLink({ transaction, disabled }: Props) {\r\n const history = useHistory();\r\n\r\n const { dealLegalName, dealReferenceName, referenceName } = transaction;\r\n\r\n const handleClick = (\r\n e: React.MouseEvent\r\n ) => {\r\n e.preventDefault();\r\n history.push(routes.transactionDetailUrl(referenceName, dealReferenceName));\r\n };\r\n\r\n return (\r\n \r\n {dealLegalName}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { ImSubscriptionActionBlocker } from \"../subscription/ImSubscriptionActionBlocker\";\r\nimport { Preloader } from \"../../common\";\r\nimport IconSVG from \"../../../styles/svg-icons\";\r\n\r\ninterface Props {\r\n isExportLoad: boolean;\r\n handleExport: () => void;\r\n disabled?: boolean;\r\n}\r\n\r\nexport default function ExportButton({\r\n isExportLoad,\r\n handleExport,\r\n disabled = false,\r\n}: Props) {\r\n return (\r\n \r\n {(blocked) => (\r\n \r\n \r\n \r\n Export\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { routes } from \"../../../constants/routes\";\r\nimport {\r\n createAmrPipelineActions,\r\n createSearchTransactionActions,\r\n} from \"../../../actions\";\r\nimport { TopFilterTypes } from \"../../../types/dashboard/RedirectFilterTypes\";\r\nimport { OnHoverTooltip } from \"../../common\";\r\nimport { roles } from \"../../../constants\";\r\nimport { user } from \"../../../user\";\r\nimport { PipelineType } from '../../../types/amr-pipeline/enums/PipelineType';\r\nimport { createFilterActions } from \"../../../actions/filter.actions\";\r\nimport { useAppDispatch } from \"../../../effects/useAppDispatch\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nexport interface FilterLinkBaseProps {\r\n referenceName: string;\r\n legalName: string;\r\n code?: string;\r\n tooltip?: string;\r\n filter: TopFilterTypes;\r\n disabled?: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\ninterface FilterLinkProps extends FilterLinkBaseProps {\r\n renderContent: (isLinkAvailable: boolean, onClick: (e: React.MouseEvent) => void) => React.ReactNode;\r\n}\r\n\r\nexport function FilterLink({\r\n referenceName,\r\n legalName,\r\n filter,\r\n code,\r\n tooltip,\r\n disabled = false,\r\n onClick,\r\n renderContent,\r\n}: FilterLinkProps) {\r\n const dispatch = useAppDispatch();\r\n const history = useHistory();\r\n\r\n // Manager link should change state in Deals tab only\r\n const amrPipelineActions = createAmrPipelineActions(PipelineType.Deals);\r\n const searchTransactionsActions = createSearchTransactionActions(PipelineType.Deals);\r\n const filterActions = createFilterActions(PipelineType.Deals);\r\n\r\n const isMedia = user.hasRoles(roles.Media);\r\n const isLinkAvailable = (!user.hasRoles(roles.Viewer) || isMedia) && !disabled;\r\n\r\n const apply = () => {\r\n dispatch(searchTransactionsActions.reset());\r\n dispatch(filterActions.redirectWithNoFilter());\r\n\r\n dispatch(\r\n filterActions.setRedirectFilters({\r\n [filter]: [{\r\n value: referenceName,\r\n text: legalName + (code ? \" (\" + code + \")\" : \"\"),\r\n }],\r\n })\r\n );\r\n };\r\n\r\n const handleClick = (\r\n e: React.MouseEvent\r\n ) => {\r\n e.preventDefault();\r\n\r\n if (!isLinkAvailable) {\r\n return;\r\n }\r\n\r\n if (history.location.pathname === routes.AMRPipeline) {\r\n if (onClick) {\r\n onClick();\r\n }\r\n\r\n dispatch(amrPipelineActions.reset());\r\n apply();\r\n dispatch(amrPipelineActions.init());\r\n } else {\r\n apply();\r\n }\r\n\r\n history.push(routes.AMRPipeline);\r\n };\r\n\r\n return (\r\n \r\n {renderContent(isLinkAvailable, handleClick)}\r\n \r\n );\r\n}\r\n","import classnames from 'classnames';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { FilterLink, FilterLinkBaseProps } from './FilterLink';\r\n\r\nexport function FilterLinkIcon(props: FilterLinkBaseProps) {\r\n return (\r\n \r\n \r\n }\r\n />\r\n );\r\n}\r\n","import { OnHoverTooltip } from '../../common';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { createAmrPipelineActions } from '../../../actions';\r\nimport { PipelineType } from '../../../types/amr-pipeline/enums/PipelineType';\r\nimport { useAppDispatch } from '../../../effects/useAppDispatch';\r\n\r\ninterface Props {\r\n dealLegalName: string;\r\n dealReferenceName: string;\r\n disabled?: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function FilterRelatedTransactionsIcon({\r\n dealLegalName,\r\n dealReferenceName,\r\n disabled = false,\r\n onClick,\r\n}: Props) {\r\n const dispatch = useAppDispatch();\r\n const amrPipelineActions = createAmrPipelineActions(PipelineType.Deals);\r\n\r\n return (\r\n \r\n {\r\n e.stopPropagation();\r\n onClick && onClick();\r\n dispatch(\r\n amrPipelineActions.changeDealSelectFromTable(dealLegalName, dealReferenceName)\r\n );\r\n }}\r\n className=\"btn-link\"\r\n >\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { OnHoverTooltip } from \"../../common\";\r\nimport IconSVG from \"../../../styles/svg-icons\";\r\n\r\ninterface Props {\r\n title: string | React.ReactNode,\r\n required?: boolean,\r\n value?: any,\r\n error?: string,\r\n tooltip?: string,\r\n tooltipLabel?: boolean,\r\n children?: React.ReactNode,\r\n className?: string;\r\n capitalize?: boolean;\r\n infoTooltip?: string;\r\n}\r\n\r\nexport function FormField({ title, value = null, error = '', tooltip = '', tooltipLabel = false, children = null, required = false, className = \"\", capitalize = true, infoTooltip }: Props) {\r\n\r\n function renderTitle() {\r\n return (\r\n
\r\n {title}\r\n {required && *}\r\n {!!infoTooltip && (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n function renderDataItem() {\r\n return (\r\n
\r\n {!!value &&
{value}
}\r\n {children}\r\n {!!error &&
{error}
}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {!!tooltip && tooltipLabel\r\n ? \r\n {renderTitle()}\r\n \r\n : renderTitle()\r\n }\r\n\r\n {!!tooltip && !tooltipLabel\r\n ? \r\n {renderDataItem()}\r\n \r\n : renderDataItem()\r\n }\r\n
\r\n );\r\n}\r\n\r\n","import { findAll } from \"../../../utils/highlightWord.utils\";\r\nimport { createElement } from \"react\";\r\ninterface Props {\r\n activeClassName?: string;\r\n activeIndex?: number;\r\n activeStyle?: React.CSSProperties;\r\n autoEscape?: boolean;\r\n caseSensitive?: boolean;\r\n className?: string;\r\n findChunks?: () => {};\r\n highlightClassName?: string;\r\n highlightStyle?: React.CSSProperties;\r\n highlightTag?: string;\r\n sanitize?: (s: string) => string;\r\n searchWords: string[];\r\n textToHighlight: string;\r\n unhighlightClassName?: string;\r\n unhighlightStyle?: React.CSSProperties;\r\n}\r\n\r\nexport default function Highlighter({\r\n activeClassName = \"\",\r\n activeIndex = -1,\r\n activeStyle = {},\r\n autoEscape = false,\r\n caseSensitive = false,\r\n className = \"\",\r\n highlightClassName = \"\",\r\n highlightStyle = {},\r\n highlightTag = \"mark\",\r\n sanitize = undefined,\r\n searchWords,\r\n textToHighlight,\r\n unhighlightClassName = \"\",\r\n unhighlightStyle = {},\r\n ...rest\r\n}: Props) {\r\n const chunks = findAll({\r\n autoEscape,\r\n caseSensitive,\r\n sanitize,\r\n searchWords,\r\n textToHighlight,\r\n });\r\n const HighlightTag = highlightTag;\r\n let highlightIndex = -1;\r\n let highlightClassNames = \"\";\r\n let highlightStyles;\r\n\r\n return createElement(\"span\", {\r\n className,\r\n ...rest,\r\n children: chunks.map((chunk, index) => {\r\n const text = textToHighlight.substr(\r\n chunk.start,\r\n chunk.end - chunk.start\r\n );\r\n\r\n if (chunk.highlight) {\r\n highlightIndex++;\r\n\r\n let highlightClass = highlightClassName;\r\n\r\n const isActive = highlightIndex === +activeIndex;\r\n\r\n highlightClassNames = `${highlightClass} ${\r\n isActive ? activeClassName : \"\"\r\n }`;\r\n highlightStyles =\r\n isActive === true && activeStyle != null\r\n ? Object.assign({}, highlightStyle, activeStyle)\r\n : highlightStyle;\r\n\r\n const props = {\r\n children: text,\r\n className: highlightClassNames,\r\n key: index,\r\n style: highlightStyles,\r\n };\r\n\r\n return createElement(HighlightTag, props);\r\n } else {\r\n return createElement(\"span\", {\r\n children: text,\r\n className: unhighlightClassName,\r\n key: index,\r\n style: unhighlightStyle,\r\n });\r\n }\r\n }),\r\n });\r\n}\r\n","import { roles, routes } from '../../../constants';\r\nimport { OnHoverTooltip } from '../../common';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { FeatureLink } from '../../access/FeatureLink';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { RoleAndFeatureBlocker } from '../../access/RoleAndFeatureBlocker';\r\n\r\ninterface Props {\r\n dealReferenceName: string;\r\n dealLegalName: string;\r\n children?: React.ReactNode;\r\n iconVisible?: boolean;\r\n requiredFeatures?: SubscriptionFeature[];\r\n tooltip?: string;\r\n}\r\n\r\nexport function ImDealLookupLink({\r\n dealReferenceName,\r\n dealLegalName,\r\n tooltip = \"Related Transactions\",\r\n requiredFeatures = [SubscriptionFeature.IssuanceMonitorFullAccess],\r\n iconVisible = true,\r\n children }: Props) {\r\n return (\r\n \r\n {\r\n blocked =>\r\n \r\n \r\n {iconVisible && }\r\n <>{children}\r\n \r\n \r\n }\r\n \r\n );\r\n}","import { roles, routes } from \"../../../constants\";\r\nimport { SubscriptionFeature } from \"../../../types/billing/SubscriptionFeature\";\r\nimport { ActionBlocker } from \"../../access/ActionBlocker\";\r\nimport { FeatureLink } from \"../../access/FeatureLink\";\r\nimport { RoleActionBlocker } from \"../../access/RoleActionBlocker\";\r\n\r\ninterface Props {\r\n transactionReferenceName: string;\r\n dealReferenceName: string;\r\n children?: React.ReactNode;\r\n requiredFeatures?: SubscriptionFeature[];\r\n onClick?: () => void;\r\n}\r\n\r\n\r\nexport function ImTransactionDetailsLink({\r\n transactionReferenceName, dealReferenceName, requiredFeatures, onClick, children }: Props) {\r\n\r\n return (\r\n \r\n {\r\n roleBlocked =>\r\n \r\n \r\n <>{children}\r\n \r\n \r\n }\r\n \r\n\r\n );\r\n}\r\n","import * as React from 'react';\r\n\r\ninterface InlineAlertPanelProps {\r\n isWarning?: boolean,\r\n children: any,\r\n className: string\r\n}\r\n\r\nexport function InlineAlertPanel({ isWarning = false, children, className }: InlineAlertPanelProps) {\r\n return (\r\n

\r\n {isWarning && }\r\n {children}\r\n

\r\n );\r\n}\r\n","import { IColumnDefinition } from \"../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { constants } from \"../../../../../constants\";\r\nimport { amrFormatUtils, moneyUtils, numericUtils } from \"../../../../../utils\";\r\nimport { transactionClassStatusTitles } from \"../../../../../types/amr-pipeline/enums/OriginatingTransactionClassStatus\";\r\nimport { OriginatingTransCapitalStructure } from \"../../../detailed/new-issue/capital-structure/CapitalStructure\";\r\n\r\nconst mailColumnDefinitions: IColumnDefinition[] =\r\n [\r\n {\r\n columnKey: \"className\",\r\n renderColumnHeaderContent: () => \"Class\",\r\n renderColumnContent: (transactionClass) => transactionClass.name,\r\n className: \"data-list-cell-xxs-02\",\r\n },\r\n {\r\n columnKey: \"rating\",\r\n renderColumnHeaderContent: () => \"Rtg (M/S/F/K/D)\",\r\n renderColumnContent: (transactionClass) =>\r\n amrFormatUtils.formatRating(transactionClass),\r\n className: \"data-list-cell-md\",\r\n },\r\n {\r\n columnKey: \"balance\",\r\n renderColumnHeaderContent: () => \"Balance\",\r\n renderColumnContent: (\r\n transactionClass: OriginatingTransCapitalStructure\r\n ) =>\r\n transactionClass.balance != null &&\r\n numericUtils.isNumber(transactionClass.balance)\r\n ? moneyUtils.money(transactionClass.balance)\r\n : constants.emptyPlaceholder,\r\n className: \"text-right\",\r\n },\r\n {\r\n columnKey: \"coupon\",\r\n renderColumnHeaderContent: () => \"Coupon\",\r\n renderColumnContent: (transactionClass) => transactionClass.coupon,\r\n className: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: \"price\",\r\n renderColumnHeaderContent: () => \"Price\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.price || constants.emptyPlaceholder,\r\n className: \"data-list-cell-xs text-right\"\r\n },\r\n {\r\n columnKey: \"guidance\",\r\n renderColumnHeaderContent: () => \"Guidance\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.guidance || constants.emptyPlaceholder,\r\n },\r\n {\r\n columnKey: \"subscription\",\r\n renderColumnHeaderContent: () => \"Subscription\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.subscription || constants.emptyPlaceholder,\r\n },\r\n {\r\n columnKey: \"originatingTransactionClassStatus\",\r\n renderColumnHeaderContent: () => \"Class Status\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.originatingTransactionClassStatus\r\n ? transactionClassStatusTitles[\r\n transactionClass.originatingTransactionClassStatus\r\n ]\r\n : constants.emptyPlaceholder,\r\n },\r\n ];\r\n\r\nexport const mailColumns = mailColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n});\r\n","import { dateTimeUtils, formatUtils, moneyUtils } from \"../../../../../utils\";\r\nimport { FormField } from \"../../FormField\";\r\nimport { OriginatingTransaction } from \"../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport StatusLabel from \"../../../StatusLabel\";\r\nimport { transactionStatusTitles } from \"../../../../../types/amr-pipeline/enums/TransactionStatus\";\r\nimport { collateralTypes } from \"../../../../../constants/collateral-types\";\r\nimport moment from \"moment\";\r\nimport { startCase } from \"lodash\";\r\nimport { CollateralQualityTest } from \"../../../../../types/amr-pipeline/models/CollateralQualityTest\";\r\nimport { CollateralQualityTestValue } from \"../../../../../types/amr-pipeline/enums/CollateralQualityTestValue\";\r\nimport { constants } from \"../../../../../constants\";\r\nimport { AmrTransaction } from \"../../../../../types/amr-pipeline/models/AmrTransaction\";\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction | AmrTransaction;\r\n}\r\n\r\nfunction getAssetPar(collateralQualityTests?: CollateralQualityTest[]) {\r\n const assetPar = collateralQualityTests?.find(\r\n (cqt) => cqt.value === CollateralQualityTestValue.AssetPar\r\n );\r\n\r\n return assetPar?.target\r\n ? moneyUtils.money(assetPar.target, true)\r\n : constants.emptyPlaceholder;\r\n}\r\n\r\nexport function GeneralInfo({ transaction }: Props) {\r\n const formatDateWithPeriod = (transactionDate?: Date) => {\r\n if (!transactionDate) {\r\n return constants.emptyPlaceholder;\r\n }\r\n const yearsLeft = dateTimeUtils.yrsLeftToDateFrom(\r\n transactionDate,\r\n transaction.closingDate\r\n );\r\n\r\n return `${moment(transactionDate).format(constants.dateFormat)} ${yearsLeft ? \"[\" + yearsLeft + \"]\" : \"\"\r\n }`;\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n Details\r\n \r\n \r\n {transaction.dealTicker || constants.emptyPlaceholder}\r\n \r\n \r\n {transaction.collateralManager?.legalName ||\r\n constants.emptyPlaceholder}\r\n \r\n \r\n {transaction.arranger?.legalName ||\r\n constants.emptyPlaceholder}\r\n \r\n \r\n {startCase(transaction.type)}\r\n \r\n \r\n \r\n \r\n \r\n {collateralTypes[transaction.collateralType]}\r\n \r\n \r\n {transaction.currency?.code ||\r\n constants.emptyPlaceholder}\r\n \r\n \r\n {moneyUtils.money(transaction.dealBalance) ||\r\n constants.emptyPlaceholder}\r\n \r\n
\r\n
\r\n \r\n Details\r\n \r\n \r\n {transaction.pricingDate\r\n ? moment(transaction.pricingDate).format(\r\n constants.dateFormat\r\n )\r\n : constants.emptyPlaceholder}\r\n \r\n \r\n {transaction.closingDate\r\n ? moment(transaction.closingDate).format(\r\n constants.dateFormat\r\n )\r\n : constants.emptyPlaceholder}\r\n \r\n \r\n {formatDateWithPeriod(transaction.nonCallPeriodEnd)}\r\n \r\n\r\n \r\n {formatDateWithPeriod(\r\n transaction.reinvestmentPeriodEnd\r\n )}\r\n \r\n \r\n {formatDateWithPeriod(\r\n (transaction as OriginatingTransaction)\r\n .statedMaturity\r\n )}\r\n \r\n \r\n {getAssetPar(\r\n (transaction as OriginatingTransaction)\r\n .collateralQualityTests\r\n )}\r\n \r\n \r\n {formatUtils.formatDecimal(\r\n (transaction as OriginatingTransaction).was\r\n ) || constants.emptyPlaceholder}\r\n \r\n\r\n \r\n {formatUtils.formatDecimal(\r\n (transaction as OriginatingTransaction).warf\r\n ) || constants.emptyPlaceholder}\r\n \r\n\r\n \r\n {formatUtils.formatDecimal(\r\n (transaction as OriginatingTransaction).ds\r\n ) || constants.emptyPlaceholder}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { routes } from '../../../../../constants';\r\nimport { OriginatingTransactionClass } from \"../../../../../types/amr-pipeline/models/OriginatingTransactionClass\";\r\nimport { Table } from \"../../../../bidding/common/table\";\r\nimport { amrFormatUtils } from \"../../../../../utils\";\r\nimport { TotalBalance } from \"../../../detailed/new-issue/capital-structure/TotalBalance\";\r\nimport { mailColumns } from \"./columns\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { OriginatingTransaction } from \"../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { GeneralInfo } from \"./GeneralInfo\";\r\nimport { AmrTransaction } from \"../../../../../types/amr-pipeline/models/AmrTransaction\";\r\nimport { TransactionType } from \"../../../../../types/amr-pipeline/enums/TransactionType\";\r\nimport { CollateralQualityTest } from '../../../../../types/amr-pipeline/models/CollateralQualityTest';\r\nimport { Preloader } from '../../../../common';\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction | AmrTransaction;\r\n collateralQualityTests: CollateralQualityTest[];\r\n text: string;\r\n loading: boolean;\r\n setLoading: (status: boolean) => void;\r\n}\r\n\r\nexport function MailPreview({\r\n transaction,\r\n collateralQualityTests,\r\n text,\r\n loading,\r\n setLoading\r\n}: Props) {\r\n const { classes } = transaction;\r\n const isOriginatingTransaction = transaction.type !== TransactionType.amr;\r\n const capitalStructureTransactionClasses = isOriginatingTransaction\r\n ? (classes as OriginatingTransactionClass[]).map((tc) => {\r\n const {\r\n tranche,\r\n floaterIndex,\r\n margin,\r\n ...capitalStructureClass\r\n } = tc;\r\n const coupon = amrFormatUtils.formatInventoryCoupon(\r\n floaterIndex,\r\n margin\r\n );\r\n return { ...capitalStructureClass, ...tranche, coupon };\r\n })\r\n : [];\r\n\r\n useEffect(() => {\r\n if(isOriginatingTransaction && !collateralQualityTests) {\r\n setLoading(true)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n
\r\n

Hello,

\r\n

\r\n {transaction.arranger?.legalName} shared {transaction.dealLegalName} transaction with you.\r\n

\r\n \r\n {text}\r\n

\r\n
\r\n \r\n {isOriginatingTransaction && (\r\n []\r\n ) => (\r\n \r\n )}\r\n />\r\n )}\r\n

\r\n Please use the link below to view the transaction:\r\n

\r\n

\r\n Here will be a shareable link to the transaction\r\n

\r\n

\r\n If you do not have an account on the KTX ATS platform, you will be redirected to the registration page first.\r\n

\r\n
\r\n

Regards,

\r\n

Team KopenTech

\r\n
\r\n
\r\n
\r\n This email (including any attachments) is confidential and, by accepting this email,\r\n you agree that you will treat it as such and act or refrain from acting in accordance\r\n with applicable law. It does not constitute investment advice, is only for the use of\r\n the intended recipient and copying, redistributing or acting upon such email by unintended\r\n recipients is unauthorized and may be unlawful. Receipt by anyone other than the intended\r\n recipient is not a waiver of any protections or work-product or attorney-client privilege.\r\n If you received this email in error, please notify KopenTech, LLC (\"KopenTech\") immediately.\r\n KopenTech makes no representation or warranty as to the accuracy or completeness of the email\r\n and its contents and is not obligated to update or revise any information. This email is not an\r\n official confirmation of any transaction and is not offer to sell or the solicitation for the\r\n purchase of any security, financial instrument or interest in an investment vehicle. Such\r\n offering shall be made only by a final confidential offering circular to eligible investors.\r\n Any comments or opinions expressed in this communication do not necessarily reflect those of\r\n KopenTech or its affiliates. Emails sent to and from this address may be monitored and stored\r\n in accordance with internal policy. This email and any attachments are confidential and may\r\n be privileged or otherwise protected from disclosure. If you are not the intended recipient,\r\n please telephone or email the sender and delete this message and any attachment from your\r\n system immediately. If you are not the intended recipient you must not copy this message or\r\n attachment or disclose the contents to any other person. For more details, see the \r\n Terms and Conditions and Privacy Policy\r\n
\r\n
\r\n );\r\n}\r\n","import { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { notificationActions } from \"../../../../actions\";\r\nimport { amrPipelineService } from \"../../../../services/amr-pipeline.service\";\r\nimport { AmrTransaction } from \"../../../../types/amr-pipeline/models/AmrTransaction\";\r\nimport { OriginatingTransaction } from \"../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\n\r\nexport const useRequestInviteClients = (\r\n transaction: OriginatingTransaction | AmrTransaction,\r\n emailList: string[],\r\n message: string,\r\n sending: boolean,\r\n setSending: (isSending: boolean) => void,\r\n onLoadSuccess: () => void\r\n) => {\r\n const { dealReferenceName, referenceName, dealLegalName } = transaction;\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n const request = async () => {\r\n try {\r\n await amrPipelineService.shareTransactionToClients(\r\n dealReferenceName,\r\n referenceName,\r\n emailList,\r\n message\r\n );\r\n onLoadSuccess();\r\n dispatch(\r\n notificationActions.notificationAddInfo(\r\n \"Transaction shared\",\r\n `${dealLegalName} transaction was shared with recipients.`\r\n )\r\n );\r\n } catch (e) {\r\n dispatch(\r\n notificationActions.notificationAddErrorMessage(\r\n \"Could not send invitation\"\r\n )\r\n );\r\n } finally {\r\n setSending(false);\r\n }\r\n };\r\n\r\n if (sending) {\r\n request();\r\n }\r\n // eslint-disable-next-line\r\n }, [sending]);\r\n};\r\n","import { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { errorActions } from \"../../../../actions\";\r\nimport { amrPipelineService } from \"../../../../services/amr-pipeline.service\";\r\nimport { CollateralQualityTest } from \"../../../../types/amr-pipeline/models/CollateralQualityTest\";\r\nimport { OriginatingTransaction } from \"../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { AmrTransaction } from \"../../../../types/amr-pipeline/models/AmrTransaction\";\r\n\r\ntype PreviewTransaction = OriginatingTransaction | AmrTransaction;\r\n\r\nexport const useRequestTransactionDetails = (\r\n transactionForPreview: PreviewTransaction,\r\n updateTransactionForPreview: (trans: PreviewTransaction) => void,\r\n withGetTransaction: boolean,\r\n loading: boolean,\r\n setLoading: (isSending: boolean) => void,\r\n onLoadSuccess: (collateralQualityTest: CollateralQualityTest[]) => void,\r\n) => {\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n const request = async () => {\r\n try {\r\n let transaction = transactionForPreview;\r\n\r\n if(withGetTransaction) {\r\n transaction = await amrPipelineService.getTransaction(transactionForPreview.dealReferenceName, transactionForPreview.referenceName);\r\n updateTransactionForPreview(transaction);\r\n }\r\n\r\n const { dealReferenceName, referenceName } = transaction;\r\n const collateralQualityTest: CollateralQualityTest[] = await amrPipelineService.getCollateralQualityTest(\r\n dealReferenceName,\r\n referenceName\r\n );\r\n onLoadSuccess(collateralQualityTest);\r\n } catch (error) {\r\n dispatch(errorActions.criticalError(error));\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n if (loading) {\r\n request();\r\n }\r\n // eslint-disable-next-line\r\n }, [loading]);\r\n};\r\n","import { useState } from \"react\";\r\nimport { Popup, PopupBody, PopupFooter } from \"../../../controls\";\r\nimport { FlexRow, Preloader } from \"../../../common\";\r\nimport { OriginatingTransaction } from \"../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { MailPreview } from \"./MailPreview/MailPreview\";\r\nimport { AmrTransaction } from \"../../../../types/amr-pipeline/models/AmrTransaction\";\r\nimport { useRequestInviteClients } from \"./useRequestInviteClients\";\r\nimport { StatusMessageSection } from \"../../../status-message/StatusMessageSection\";\r\nimport { StatusMessageSectionType } from \"../../../../types/state/NotificationState\";\r\nimport { validateEmail } from \"../../../../utils/validate-email.utils\";\r\nimport { EmailChipList } from \"../../../common/EmailChipList\";\r\nimport { useRequestTransactionDetails } from './useRequestTransactionDetails';\r\nimport { CollateralQualityTest } from \"../../../../types/amr-pipeline/models/CollateralQualityTest\";\r\n\r\nconst emailMaxCount = 500;\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction | AmrTransaction;\r\n onClose: () => void;\r\n defaultEmailList?: string[];\r\n withGetTransaction?: boolean;\r\n}\r\n\r\nexport function InviteClientsTransactionPopup({\r\n transaction,\r\n onClose,\r\n defaultEmailList = [],\r\n withGetTransaction = false,\r\n}: Props) {\r\n const [transactionForPreview, setTransactionForPreview] = useState(transaction);\r\n const [collateralQualityTests, setCollateralQualityTests] = useState((transaction as OriginatingTransaction).collateralQualityTests);\r\n const [emailList, setEmailList] = useState(defaultEmailList);\r\n const [textContent, setTextContent] = useState(\"\");\r\n const [sending, setSending] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const { dealLegalName } = transactionForPreview;\r\n\r\n const handleClose = () => {\r\n if (!sending) {\r\n onClose();\r\n }\r\n };\r\n\r\n useRequestInviteClients(\r\n transactionForPreview,\r\n emailList,\r\n textContent,\r\n sending,\r\n setSending,\r\n onClose\r\n );\r\n\r\n useRequestTransactionDetails(\r\n transactionForPreview,\r\n setTransactionForPreview,\r\n withGetTransaction,\r\n loading,\r\n setLoading,\r\n (data: CollateralQualityTest[]) => setCollateralQualityTests(data),\r\n );\r\n\r\n const isLimitExceeded = emailList.length > emailMaxCount;\r\n const isDataInvalid = emailList.some((e) => !validateEmail(e));\r\n\r\n const renderInviteForm = () => (\r\n <>\r\n {isDataInvalid || isLimitExceeded ? (\r\n \r\n {isLimitExceeded\r\n ? `Max recipients count is ${emailMaxCount}`\r\n : \"Please fix invalid email addresses\"}\r\n \r\n ) : (\r\n \r\n Invite clients or share the deal with your team\r\n \r\n )}\r\n setEmailList(list)}\r\n allowInvalid\r\n withClearAll\r\n placeholder=\"Enter recipients or Ctrl+C / Ctrl+V emails from Excel\"\r\n className=\"email-chips-list-with-clear\"\r\n />\r\n setTextContent(e.target.value)}\r\n className=\"form-control share-transaction-message\"\r\n placeholder=\"Enter message (optional)\"\r\n />\r\n \r\n );\r\n\r\n return (\r\n \r\n Share Transaction{\" \"}\r\n {dealLegalName}\r\n \r\n }\r\n modalClass=\"modal-share-transaction\"\r\n onClose={handleClose}\r\n >\r\n \r\n
\r\n
\r\n {renderInviteForm()}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {sending && (\r\n \r\n )}\r\n \r\n Cancel\r\n \r\n setSending(true)}\r\n disabled={isDataInvalid || !emailList.length || sending || loading || isLimitExceeded}\r\n >\r\n Send invitation\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { routes } from \"../../../constants/routes\";\r\nimport { OnHoverTooltip } from \"../../common\";\r\nimport { roles } from \"../../../constants\";\r\nimport { user } from \"../../../user\";\r\n\r\ninterface Props {\r\n referenceName: string;\r\n legalName: string;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function ManagerLink({\r\n referenceName,\r\n legalName,\r\n onClick,\r\n}: Props) {\r\n\r\n const isMedia = user.hasRoles(roles.Media);\r\n const isLinkAvailable =\r\n !user.hasRoles(roles.Viewer, roles.ArrangersClient) || isMedia;\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n\r\n onClick?.();\r\n\r\n window.open(window.location.origin + routes.manageCloManagerUrl(referenceName));\r\n };\r\n\r\n return (\r\n \r\n {isLinkAvailable ? (\r\n \r\n {legalName}\r\n \r\n ) : (\r\n {legalName}\r\n )}\r\n \r\n );\r\n}\r\n","import { TransactionStatus } from \"../../../types/amr-pipeline/enums/TransactionStatus\";\r\nimport { OriginatingTransaction } from \"../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { Transaction } from \"../../../types/amr-pipeline/models/Transaction\";\r\nimport { OnHoverTooltip } from \"../../common/OnHoverTooltip\";\r\n\r\ninterface NewAmrDebutLabelProps {\r\n transaction: Transaction;\r\n ignoreDebut?: boolean;\r\n}\r\n\r\nconst labelClassName = \"state-new\";\r\n\r\nexport const NewDebutAmrLabel = ({ transaction, ignoreDebut }: NewAmrDebutLabelProps) => {\r\n const { isNew, status } = transaction;\r\n const { isDebut, amr } = transaction as OriginatingTransaction;\r\n\r\n const showClosedAmr = amr && status === TransactionStatus.Closed;\r\n const showDebut = isDebut && !ignoreDebut; \r\n\r\n if (isNew) {\r\n return
new
;\r\n }\r\n\r\n if (showDebut && showClosedAmr) {\r\n return (\r\n \r\n AMR(+1)\r\n \r\n );\r\n }\r\n\r\n if (showClosedAmr) {\r\n return (\r\n \r\n AMR\r\n \r\n );\r\n }\r\n\r\n if (showDebut) {\r\n return (\r\n \r\n debut\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n","import * as React from 'react';\r\nimport { constants } from '../../../constants/constants';\r\nimport { Pluralize } from '../../common';\r\n\r\n\r\ninterface NonAmrPeriodProps {\r\n period?: number,\r\n emptyValue?: string\r\n}\r\n\r\nexport function NonAmrPeriod({ period, emptyValue = constants.emptyPlaceholder }: NonAmrPeriodProps) {\r\n if (!period) {\r\n return <>{emptyValue};\r\n }\r\n\r\n return (\r\n <>\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { OriginatingTransactionClassStatus } from \"../../../types/amr-pipeline/enums/OriginatingTransactionClassStatus\";\r\nimport { OriginatingTransactionClass } from \"../../../types/amr-pipeline/models/OriginatingTransactionClass\";\r\n\r\ninterface Props {\r\n transactionClass: OriginatingTransactionClass;\r\n}\r\nexport function OverlayClassNameContent({ transactionClass }: Props) {\r\n return (\r\n
\r\n {transactionClass.name}\r\n {(transactionClass as OriginatingTransactionClass)\r\n .originatingTransactionClassStatus ===\r\n OriginatingTransactionClassStatus.NotOffered && (\r\n <>\r\n
\r\n Not Offered\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import { useState } from \"react\";\r\nimport IconSVG from \"../../../styles/svg-icons\";\r\nimport { constants, routes } from \"../../../constants\";\r\nimport { ClickOutside, OnHoverTooltip, Preloader } from \"../../common\";\r\nimport { useDealTransactions } from \"../../../effects/useDealTransactions\";\r\nimport classNames from \"classnames\";\r\nimport { Table } from \"../../bidding/common/table\";\r\nimport { isRequesting } from \"../../../utils\";\r\nimport { compareDates } from \"../../../utils/compare.utils\";\r\nimport { Transaction } from \"../../../types/amr-pipeline/models/Transaction\";\r\nimport { IColumnDefinition } from \"../../bidding/common/table/types/ColumnDefinition\";\r\nimport moment from \"moment\";\r\nimport { startCase } from \"lodash\";\r\nimport { ColumnBuilder } from \"../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\n\r\nconst renderRelatedTransIcon = (isExpanded = false, disabled = false) => (\r\n \r\n);\r\n\r\nconst renderDisabledButton = () => (\r\n \r\n {renderRelatedTransIcon(false, true)}\r\n \r\n);\r\n\r\ninterface Props {\r\n dealReferenceName: string;\r\n dealLegalName: string;\r\n hasTransactions: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nconst relatedTransColumnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: \"type\",\r\n renderColumnHeaderContent: () => \"Trans. Type\",\r\n renderColumnContent: (transaction) =>\r\n transaction?.type ? (\r\n startCase(transaction.type)\r\n ) : (\r\n All Trans\r\n ),\r\n },\r\n {\r\n columnKey: \"closingDate\",\r\n renderColumnHeaderContent: () => \"Closing\",\r\n renderColumnContent: (transaction) =>\r\n transaction?.closingDate\r\n ? moment(transaction.closingDate).format(constants.dateFormat)\r\n : constants.emptyPlaceholder,\r\n },\r\n {\r\n columnKey: \"icon\",\r\n renderColumnHeaderContent: () => \"\",\r\n renderColumnContent: () => ,\r\n className: \"data-list-cell-xxxs\"\r\n },\r\n];\r\n\r\nconst relatedColumns = relatedTransColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n});\r\n\r\nexport function RelatedTransDropdown({ dealLegalName, dealReferenceName, hasTransactions, disabled }: Props) {\r\n const [expanded, setExpanded] = useState(false);\r\n const { dealTransactions, requestState } = useDealTransactions(\r\n dealReferenceName,\r\n expanded\r\n );\r\n\r\n if (disabled) {\r\n return renderRelatedTransIcon(false, disabled);\r\n }\r\n\r\n if (!hasTransactions) {\r\n return renderDisabledButton();\r\n }\r\n\r\n const sortedTrans =\r\n dealTransactions?.sort((a, b) =>\r\n compareDates(b.closingDate, a.closingDate)\r\n ) || [];\r\n\r\n const onRowClick = (transaction?: Transaction) => {\r\n const transactionUrl = transaction\r\n ? routes.transactionDetailUrl(\r\n transaction.referenceName,\r\n transaction.dealReferenceName\r\n )\r\n : `${routes.AMRPipeline}/?dealsReferenceNames=${dealReferenceName}&dealsLegalNames=${dealLegalName}`;\r\n\r\n window.open(transactionUrl);\r\n };\r\n\r\n return (\r\n setExpanded(false)}\r\n >\r\n setExpanded(!expanded)}\r\n >\r\n {renderRelatedTransIcon(expanded)}\r\n \r\n {expanded && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n\r\n","import { constants } from '../../../constants/constants';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { ClassIndicators } from '../../../types/amr-pipeline/models/ClassIndicators';\r\nimport cn from 'classnames';\r\nimport { OnHoverTooltip } from '../../common';\r\nimport { Link } from 'react-router-dom';\r\nimport { ActionBlocker } from '../../access/ActionBlocker';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { Currency as TCurrency } from '../../../types/amr-pipeline/models/Currency';\r\n\r\ntype Props = {\r\n identifier?: string;\r\n identifiers?: ClassIndicators;\r\n text?: string;\r\n className?: string;\r\n disabled?: boolean;\r\n placeholderIfEmpty?: boolean;\r\n secondaryPlaceholderColor?: boolean;\r\n checkSubscription?: boolean;\r\n route: string;\r\n tooltipText: string;\r\n iconName: string;\r\n requiredFeatures: SubscriptionFeature[];\r\n currency?: TCurrency;\r\n};\r\n\r\nexport function SecurityBwicLink({\r\n identifiers,\r\n identifier,\r\n className,\r\n placeholderIfEmpty,\r\n secondaryPlaceholderColor,\r\n disabled = false,\r\n route,\r\n tooltipText,\r\n iconName,\r\n requiredFeatures,\r\n currency\r\n}: Props) {\r\n const identifierForLink = identifier ?? getIdentifier(identifiers);\r\n\r\n if (!identifierForLink) {\r\n return placeholderIfEmpty ? (\r\n \r\n {constants.emptyPlaceholder}\r\n \r\n ) : null;\r\n }\r\n\r\n if (disabled) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n function getIdentifier(identifiers?: ClassIndicators) {\r\n if (!identifiers) {\r\n return undefined;\r\n }\r\n\r\n return identifiers.ticker144A;\r\n }\r\n\r\n const renderBlockedView = () => (\r\n \r\n );\r\n\r\n const renderTooltip = () => (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {blocked => (blocked ? renderBlockedView() : renderTooltip())}\r\n \r\n );\r\n}\r\n","import classNames from 'classnames';\r\nimport React, { useRef, useState } from 'react';\r\nimport { useEffect } from 'react';\r\nimport { constants } from '../../../constants/';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { EmptyPlaceholder } from '../../common';\r\nimport { AutoCompleteSourceItem } from '../types/AutoCompleteInputSourceItem';\r\nimport Highlighter from './Highlighter';\r\n\r\ninterface Props {\r\n sourceItems: AutoCompleteSourceItem[];\r\n value: string;\r\n searchTermAcceptedLength?: number;\r\n required?: boolean;\r\n maxLength?: number;\r\n emptyMessage?: string;\r\n className?: string;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n pattern?: string;\r\n keyboardControl?: boolean;\r\n showNoResultsPlaceholder?: boolean;\r\n expandOnFocus?: boolean;\r\n highlightResults?: boolean;\r\n listName?: string;\r\n onChange?: (value: string) => void;\r\n onBlur?: (e: React.FocusEvent) => void;\r\n onClear?: () => void;\r\n}\r\n\r\nexport const AutoCompleteInput = ({\r\n sourceItems,\r\n pattern,\r\n required = false,\r\n searchTermAcceptedLength = 0,\r\n maxLength = 256,\r\n className = 'form-control-search',\r\n value,\r\n highlightResults = false,\r\n placeholder = '',\r\n expandOnFocus = false,\r\n disabled = false,\r\n keyboardControl = true,\r\n showNoResultsPlaceholder = true,\r\n listName = 'Suggested searches',\r\n onChange,\r\n onBlur,\r\n onClear\r\n}: Props) => {\r\n const inputRef = useRef(null);\r\n const refScrollableContainer = useRef(null);\r\n const refActiveItem = useRef(null);\r\n const [expanded, setExpanded] = useState(false);\r\n const [index, setIndex] = useState(0);\r\n const [filteredItems, setFilteredItems] = useState(sourceItems);\r\n const [focusInput, setFocusInput] = useState(false);\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [expanded]);\r\n\r\n useEffect(() => {\r\n if (refScrollableContainer.current && refActiveItem.current && filteredItems.length) {\r\n const container = refScrollableContainer.current.getBoundingClientRect();\r\n const item = refActiveItem.current.getBoundingClientRect();\r\n if (item.top < container.top || item.bottom > container.bottom) {\r\n refActiveItem.current.scrollIntoView(false);\r\n }\r\n }\r\n }, [filteredItems, index]);\r\n\r\n useEffect(() => {\r\n if (value) setFilteredItems(getFilteredItems(value));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [sourceItems]);\r\n\r\n function handleInputChange(e: React.ChangeEvent) {\r\n const value = e.target.value;\r\n setIndex(0);\r\n setFilteredItems(getFilteredItems(value));\r\n setExpanded(true);\r\n document.addEventListener('mousedown', handleClickOutside);\r\n\r\n if (onChange) onChange(value);\r\n }\r\n\r\n function handleItemSelected(item: AutoCompleteSourceItem) {\r\n setIndex(0);\r\n inputRef.current && inputRef.current.focus();\r\n setExpanded(false);\r\n onChange && onChange(item.text);\r\n }\r\n\r\n function handleOnBlur(e: React.FocusEvent) {\r\n if (onBlur) onBlur(e);\r\n setFocusInput(false);\r\n }\r\n\r\n const handleOnFocus = () => {\r\n setFocusInput(true);\r\n\r\n if (expandOnFocus) {\r\n setFilteredItems(value ? getFilteredItems(value) : sourceItems);\r\n setExpanded(true);\r\n }\r\n };\r\n\r\n function getFilteredItems(value: string) {\r\n const valueLowerCase = value.trim().toLowerCase();\r\n\r\n return sourceItems.filter(i => i.text.toLowerCase().includes(valueLowerCase) || i.synonyms?.some(s => s.toLowerCase().includes(valueLowerCase)));\r\n }\r\n\r\n function handleKeyDown(e: React.KeyboardEvent) {\r\n if (!keyboardControl) {\r\n if (e.keyCode === 13) {\r\n // enter\r\n setExpanded(false);\r\n return;\r\n }\r\n }\r\n\r\n if (filteredItems.length) {\r\n if (e.keyCode === 13) {\r\n // enter\r\n handleItemSelected(filteredItems[index]);\r\n } else if (e.keyCode === 38) {\r\n // move up\r\n e.preventDefault();\r\n if (index > 0) {\r\n setIndex(index - 1);\r\n }\r\n } else if (e.keyCode === 40 && index < filteredItems.length - 1) {\r\n // move down\r\n setIndex(index + 1);\r\n }\r\n }\r\n }\r\n\r\n function renderLookupItem(item: AutoCompleteSourceItem, i: number) {\r\n if (item.hidden) {\r\n return null;\r\n }\r\n\r\n return (\r\n (refActiveItem.current = index === i ? node : refActiveItem.current)}\r\n onClick={() => handleItemSelected(item)}\r\n >\r\n \r\n {highlightResults ? (\r\n \r\n ) : (\r\n item.text\r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n function handleClickOutside(e: globalThis.MouseEvent) {\r\n if (\r\n expanded &&\r\n refScrollableContainer.current &&\r\n !refScrollableContainer.current.contains(e.target as Element) &&\r\n inputRef.current &&\r\n inputRef.current !== e.target\r\n ) {\r\n setExpanded(false);\r\n }\r\n }\r\n\r\n function handleClear() {\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n setFilteredItems(sourceItems);\r\n onClear && onClear();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n {!!value &&\r\n \r\n }\r\n {((value && value.length > searchTermAcceptedLength) || expandOnFocus) && expanded && (\r\n \r\n \r\n {filteredItems.length ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {filteredItems.map((i, index) => renderLookupItem(i, index))}\r\n \r\n ) : (\r\n showNoResultsPlaceholder && \r\n )}\r\n
{listName}
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n","import { useEffect } from \"react\";\r\nimport { SearchInput, OnHoverTooltip } from \"../../common\";\r\nimport IconSVG from \"../../../styles/svg-icons\";\r\nimport { AutoCompleteInput } from \"./AutoCompleteInput\";\r\nimport { AutoCompleteSourceItem } from \"../types/AutoCompleteInputSourceItem\";\r\n\r\ninterface Props {\r\n searchTerm: string;\r\n placeholder?: string;\r\n collapsed: boolean;\r\n showCollapseButton?: boolean;\r\n suggestedList?: AutoCompleteSourceItem[];\r\n prevRoute?: string;\r\n onSearch: (searchTerm: string) => void;\r\n onCollapseClick?: (collapsed: boolean) => void;\r\n}\r\n\r\nexport const SelectionPanelSearch = ({\r\n searchTerm,\r\n suggestedList = [],\r\n placeholder = 'Search',\r\n collapsed,\r\n showCollapseButton = true,\r\n onSearch,\r\n onCollapseClick,\r\n}: Props) => {\r\n\r\n useEffect(() => {\r\n var customEvent = document.createEvent('Events');\r\n customEvent.initEvent('resize', true, true);\r\n window.dispatchEvent(customEvent);\r\n }, [collapsed]);\r\n\r\n return (\r\n
\r\n {suggestedList ? (\r\n onSearch('')}\r\n sourceItems={suggestedList}\r\n value={searchTerm}\r\n onChange={onSearch}\r\n placeholder={placeholder}\r\n />\r\n ) : (\r\n onSearch('')}\r\n onChange={onSearch}\r\n placeholder={placeholder}\r\n />\r\n )}\r\n
\r\n {showCollapseButton && onCollapseClick && (\r\n \r\n onCollapseClick(!collapsed)}\r\n >\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useState, ReactNode } from 'react';\r\nimport classNames from 'classnames';\r\nimport IconSVG from '../../../styles/svg-icons';\r\n\r\ninterface ShowMoreProps {\r\n defaultExpanded?: boolean;\r\n showMoreText?: string;\r\n showLessText?: string;\r\n className?: string;\r\n renderMore: () => ReactNode;\r\n renderLess: () => ReactNode;\r\n}\r\n\r\nexport const ShowMore = ({\r\n defaultExpanded = false,\r\n showMoreText = 'Show More',\r\n showLessText = 'Show Less',\r\n className = \"btn btn-ghost btn-ghost-secondary btn-sm\",\r\n renderMore,\r\n renderLess,\r\n}: ShowMoreProps) => {\r\n const [expanded, setExpanded] = useState(defaultExpanded);\r\n\r\n return (\r\n <>\r\n {expanded && renderMore()}\r\n {!expanded && renderLess()}\r\n
\r\n setExpanded(prev => !prev)}\r\n >\r\n {expanded ? showLessText : showMoreText}\r\n \r\n \r\n
\r\n \r\n )\r\n};\r\n","import cn from 'classnames';\r\nimport { isNil } from 'lodash';\r\nimport { Link } from \"react-router-dom\";\r\nimport { routes } from \"../../../constants\";\r\nimport IconSVG from \"../../../styles/svg-icons\";\r\nimport { OnHoverTooltip } from \"../../common/OnHoverTooltip\";\r\n\r\ninterface TransactionHistoryProps {\r\n referenceName: string;\r\n dealReferenceName: string;\r\n target?: React.HTMLAttributeAnchorTarget;\r\n overlayText?: string;\r\n label?: boolean;\r\n version?: number;\r\n disabled?: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const TransactionHistoryLink = ({\r\n referenceName,\r\n dealReferenceName,\r\n target = '_blank',\r\n overlayText = 'Transaction History',\r\n label = true,\r\n disabled = false,\r\n version,\r\n onClick,\r\n}: TransactionHistoryProps) =>\r\n !disabled ? (\r\n \r\n \r\n \r\n {label && Trans History }\r\n \r\n {label && !isNil(version) && V.{version}}\r\n \r\n ) : (\r\n \r\n );\r\n","import { isEqual } from 'lodash';\r\nimport { analyticDefaultFilters } from '../../../../constants';\r\nimport { dateRangeFilterOptions } from '../../../../constants/date-range.filter';\r\nimport { DateFilterOption } from '../../../../types/filters/DateFilterOption';\r\nimport { DateRange } from '../../../../types/filters/DateRange';\r\nimport { FilterOption } from '../../../../types/filters/FilterOption';\r\nimport { FilterDateRange } from '../../../common/filters/FilterDateRange';\r\nimport { FilterSelect } from '../../../common/filters/FilterSelect';\r\nimport { TreeSelectOption, TreeSelect } from '../../../controls/TreeSelect';\r\nimport { FilterClear, FilterPanel, FilterSection } from '../../../filters';\r\nimport { AnalyticsFilterBase } from '../../../../types/analytics/AnalyticsFilter';\r\nimport { useMemo } from 'react';\r\n\r\ninterface AnalyticsFilterProps extends AnalyticsFilterBase {\r\n data: TreeSelectOption[];\r\n tabDefinitions: { text: string, value: T }[],\r\n onChange: (value: AnalyticsFilterBase) => void;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function AnalyticsFilter({\r\n data,\r\n tabDefinitions,\r\n dateOption,\r\n onChange,\r\n disabled,\r\n ...filters\r\n}: AnalyticsFilterProps) {\r\n const isFilterChanged = !isEqual({ ...filters, dateOption }, analyticDefaultFilters);\r\n\r\n const tabTypes = useMemo(() => tabDefinitions.map(x => ({\r\n ...x,\r\n selected: true,\r\n visible: true,\r\n disabled: false,\r\n })), [tabDefinitions]);\r\n\r\n const handleDateClear = () => {\r\n onChange({\r\n ...filters,\r\n dateOption: undefined,\r\n date: {\r\n },\r\n });\r\n };\r\n\r\n const handleDateOptionChange = (dateOption: DateFilterOption) => {\r\n if (dateOption?.key === dateRangeFilterOptions.Custom.key) {\r\n return onChange({\r\n ...filters,\r\n dateOption,\r\n date: {\r\n dateFrom: undefined,\r\n dateTo: undefined,\r\n }\r\n });\r\n }\r\n\r\n onChange({\r\n ...filters,\r\n dateOption,\r\n });\r\n };\r\n\r\n const handleDateChange = (dateFilterOption: DateRange) => {\r\n onChange({\r\n ...filters,\r\n date: {\r\n ...filters.date,\r\n dateFrom: dateFilterOption.from,\r\n dateTo: dateFilterOption.to,\r\n },\r\n });\r\n };\r\n\r\n const handleUsersChange = (users: string[]) => {\r\n onChange({\r\n ...filters,\r\n users,\r\n });\r\n };\r\n\r\n const handleTabsChange = (filterOption: FilterOption, checked: boolean) => {\r\n const prevValue = filters.tabs || [];\r\n const tabs = checked ? [...prevValue, filterOption.value] : prevValue.filter(x => x !== filterOption.value);\r\n\r\n onChange({\r\n ...filters,\r\n tabs,\r\n });\r\n };\r\n\r\n const handleTabsSelectAll = () => {\r\n onChange({\r\n ...filters,\r\n tabs: tabDefinitions.map(x => x.value),\r\n });\r\n };\r\n\r\n const handleTabsClearAll = () => {\r\n onChange({ ...filters, tabs: [] });\r\n };\r\n\r\n const handleReset = () => {\r\n onChange(analyticDefaultFilters);\r\n }\r\n\r\n return (\r\n \r\n \r\n {option.meta?.views} views}\r\n onChange={handleUsersChange}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n ({ ...x, selected: filters.tabs?.includes(x.value) }))}\r\n onChangeItemSelection={handleTabsChange}\r\n />\r\n \r\n \r\n \r\n );\r\n}\r\n","import { Preloader } from '../../../common';\r\nimport { DashboardNoSelectedFilters } from '../../../dashboard/DashboardNoSelectedFilters';\r\nimport { AnalyticsFilter } from './AnalyticsFilter';\r\nimport { AnalyticsFilterBase } from '../../../../types/analytics/AnalyticsFilter';\r\nimport { TreeSelectOption } from '../../../controls/TreeSelect';\r\nimport { AnalyticWidgetState } from '../../../../types/state/Analytics';\r\nimport { SubscriptionFeature } from '../../../../types/billing/SubscriptionFeature';\r\nimport { ActionBlocker } from '../../../access/ActionBlocker';\r\n\r\ninterface AnalyticWidgetProps {\r\n title: string;\r\n users: TreeSelectOption[];\r\n tabDefinitions: { text: string; value: T }[];\r\n isLoading: boolean;\r\n children: React.ReactElement;\r\n feature?: SubscriptionFeature;\r\n features?: SubscriptionFeature[];\r\n state: AnalyticWidgetState>;\r\n onFilterChange: (filterState: AnalyticsFilterBase) => void;\r\n}\r\n\r\nexport function AnalyticsWidget({\r\n title,\r\n users,\r\n tabDefinitions,\r\n children,\r\n feature,\r\n features,\r\n state,\r\n onFilterChange,\r\n}: AnalyticWidgetProps) {\r\n const { data, isLoading, filter } = state;\r\n\r\n const isDataLoaded = !!data.length && !isLoading;\r\n\r\n return (\r\n
\r\n
\r\n

{title}

\r\n \r\n {blocked => (\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {isDataLoaded ? children : }\r\n \r\n
\r\n
\r\n );\r\n}\r\n","export const constants = {\r\n notOffered: '(N.O.)',\r\n subject: '(Subj.)'\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { imUserConfigActions } from '../../../../actions/';\r\nimport { Popup, PopupBody, PopupFooter } from '../../../controls';\r\nimport { Transfer } from '../../../common/transfer/Transfer';\r\nimport { TabList, TabItem } from '../../../bidding/common/tab-list';\r\nimport { PipelineView } from '../../types/PipelineView';\r\nimport { TransferOption } from '../../../common/transfer/types';\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { UserConfigState } from '../../../../types/state/UserConfigState';\r\nimport { UserConfigType } from '../../../../types/user-config/UserConfigType';\r\nimport { UserConfigBase, ColumnsConfig } from '../../../../types/user-config/UserConfig';\r\nimport { UserConfigColumn } from '../../../../types/user-config/UserConfigColumn';\r\nimport { pipelineColumnLabels } from '../../../../constants';\r\nimport { PipelineColumn } from '../../types/PipelineColumn';\r\nimport { isEqual } from 'lodash';\r\n\r\ninterface CustomizeColumnsDialogProps {\r\n defaultTab: PipelineView;\r\n onClose: () => void;\r\n}\r\n\r\ninterface TabState {\r\n options: TransferOption[];\r\n selected: TransferOption[];\r\n}\r\n\r\nconst TabConfigMap = {\r\n [PipelineView.Class]: UserConfigType.imColumnsClassTab,\r\n [PipelineView.Deal]: UserConfigType.imColumnsDealTab,\r\n};\r\n\r\nexport const CustomizeColumnsDialog = ({\r\n defaultTab,\r\n onClose,\r\n}: CustomizeColumnsDialogProps) => {\r\n const dispatch = useDispatch();\r\n const { isUpdating, isLoadingDefault, columnsConfig, columnsDefaultConfig } = useSelector(state => state.imUserConfig);\r\n const [activeTab, setActiveTab] = useState(defaultTab);\r\n\r\n const disabled = isUpdating || isLoadingDefault;\r\n\r\n const transferOptionFromColumn = (column: UserConfigColumn) => ({\r\n key: column.name,\r\n title: pipelineColumnLabels[column.name as PipelineColumn],\r\n permanent: column.required,\r\n fixed: column.fixed,\r\n order: column.order,\r\n available: column.available\r\n } as TransferOption);\r\n\r\n const deriveTabStateFromConfig = (userConfig: ColumnsConfig[], tab: PipelineView) => {\r\n const { value = [] } = userConfig.find(({ type }) => type === TabConfigMap[tab]) || {};\r\n\r\n const options = value.map(transferOptionFromColumn);\r\n\r\n const selected = value\r\n .filter(({ displayed }) => displayed)\r\n .map(transferOptionFromColumn);\r\n\r\n return {\r\n options,\r\n selected,\r\n } as TabState;\r\n };\r\n\r\n const getDefaultTabState = () => [PipelineView.Class, PipelineView.Deal]\r\n .reduce((acc, tab) => ({\r\n ...acc,\r\n [tab]: deriveTabStateFromConfig(columnsConfig, tab),\r\n }), {} as Record);\r\n\r\n const [tabState, setTabState] = useState>(getDefaultTabState());\r\n const [tabDefaultState, setTabDefaultState] = useState>(tabState);\r\n\r\n useEffect(() => {\r\n // Changed internal state after Reset\r\n setTabState((prevState) => ({\r\n ...prevState,\r\n [activeTab]: deriveTabStateFromConfig(columnsConfig, activeTab),\r\n }));\r\n }, [columnsConfig]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n useEffect(() => {\r\n if(columnsDefaultConfig.length) {\r\n setTabDefaultState({\r\n [PipelineView.Class]: deriveTabStateFromConfig(columnsDefaultConfig, PipelineView.Class),\r\n [PipelineView.Deal]: deriveTabStateFromConfig(columnsDefaultConfig, PipelineView.Deal),\r\n });\r\n } else {\r\n dispatch(imUserConfigActions.getDefaultUserColumnsConfig());\r\n }\r\n }, [columnsDefaultConfig]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const getUserConfig = (options: TransferOption[], selected: TransferOption[]) => {\r\n const selectedKeys = selected.map(({ key }) => key);\r\n\r\n const selectedColumns = selected\r\n .reduce((acc: UserConfigColumn[], option: TransferOption, index: number) => ([\r\n ...acc,\r\n {\r\n name: option.key,\r\n order: index,\r\n available: option.available,\r\n required: option.permanent === true,\r\n displayed: true,\r\n fixed: option.fixed,\r\n } as UserConfigColumn\r\n ]), []);\r\n\r\n return options\r\n .filter(option => !selectedKeys.includes(option.key))\r\n .map(option => ({\r\n name: option.key,\r\n order: 0,\r\n required: option.permanent === true,\r\n displayed: false,\r\n available: option.available,\r\n fixed: option.fixed,\r\n }))\r\n .concat(selectedColumns);\r\n };\r\n\r\n const handleSave = () => {\r\n const userConfig = [PipelineView.Class, PipelineView.Deal]\r\n .reduce((acc: UserConfigBase[], tab: PipelineView) => (\r\n tabState ? [\r\n ...acc,\r\n {\r\n type: TabConfigMap[tab],\r\n value: getUserConfig(tabState[tab].options, tabState[tab].selected),\r\n } as UserConfigBase\r\n ] : acc\r\n ), []);\r\n\r\n dispatch(imUserConfigActions.updateUserConfig(userConfig));\r\n };\r\n\r\n const handleTransferChange = (value: TransferOption[]) => {\r\n setTabState((prevState) => ({\r\n ...prevState,\r\n [activeTab]: {\r\n ...prevState[activeTab],\r\n selected: value,\r\n }\r\n }));\r\n };\r\n\r\n const handleReset = () => setTabState((prevState) => ({\r\n ...prevState,\r\n [activeTab]: tabDefaultState[activeTab],\r\n }));\r\n\r\n const checkIsConfigDefault = () => {\r\n const values = tabState[activeTab].selected.map((v, order) => ({...v, order}));\r\n const defaultValues = tabDefaultState[activeTab].selected.map((v, order) => ({...v, order}));\r\n return isEqual(values, defaultValues);\r\n };\r\n\r\n return (\r\n \r\n \r\n

\r\n There are default columns in the \"Selected Columns\" list, which you can't remove. You may adjust the table view by adding or removing additional columns from the lists. Additionally, you may change the order of the columns by dragging and dropping them in the \"Selected Columns\" list.\r\n

\r\n \r\n setActiveTab(PipelineView.Deal)}\r\n />\r\n setActiveTab(PipelineView.Class)}\r\n />\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","import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport { EmptySectionContent } from '../section/EmptySectionContent';\r\nimport IconSVG from '../../../../styles/svg-icons';\r\nimport { Preloader } from '../../../common';\r\nimport { useDownloadDocument } from '../../../../effects/useDownloadDocument';\r\nimport { DownloadFile } from '../../../../types/amr-pipeline/models/DownloadedDocument';\r\nimport { Nullable } from '../../../../types/primitives/Nullable';\r\n\r\ninterface Props {\r\n title: string;\r\n itemsCount?: number;\r\n children: React.ReactNode;\r\n emptyPlaceholder?: string;\r\n downloadAllFetch: (...args: TArgs) => Promise;\r\n downloadAllArgs: TArgs;\r\n fileNameForSave: Nullable;\r\n renderAdditionalButton?: () => React.ReactNode;\r\n}\r\n\r\nexport function DocumentGroup({\r\n title,\r\n itemsCount = 0,\r\n children,\r\n downloadAllFetch,\r\n downloadAllArgs,\r\n fileNameForSave,\r\n emptyPlaceholder,\r\n renderAdditionalButton,\r\n}: Props) {\r\n const [collapsed, setCollapsed] = React.useState(false);\r\n const { handleDownload, isDownloading } = useDownloadDocument({\r\n downloadRequest: downloadAllFetch,\r\n requestArgs: downloadAllArgs,\r\n fileNameForSave,\r\n });\r\n\r\n return (\r\n
\r\n
\r\n
setCollapsed(!collapsed)}>\r\n \r\n

\r\n {title}\r\n {itemsCount}\r\n

\r\n
\r\n {renderAdditionalButton?.()}\r\n {!!itemsCount && (\r\n
\r\n {\r\n e.preventDefault();\r\n handleDownload();\r\n }}\r\n >\r\n \r\n \r\n Download All\r\n \r\n \r\n
\r\n )}\r\n
\r\n {!collapsed && (\r\n
\r\n {itemsCount || !emptyPlaceholder ? children : }\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import DownloadDocument from \"./DownloadDocument\";\r\nimport { IColumnDefinition } from \"../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { ColumnBuilder } from \"../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport FileIcon from \"../../../controls/FileIcon\";\r\nimport { constants, SORTING_TYPE } from \"../../../../constants\";\r\nimport moment from \"moment\";\r\nimport IconSVG from '../../../../styles/svg-icons';\r\nimport { FieldDifferenceLabel } from '../../detailed/new-issue/DifferenceLabel';\r\nimport { OriginatingTransactionDocument } from '../../../../types/amr-pipeline/models/OriginatingTransactionDocument';\r\n\r\ninterface FileWithLastDate extends OriginatingTransactionDocument {\r\n lastDate: Date\r\n}\r\n\r\nconst documentName: IColumnDefinition = {\r\n columnKey: \"name\",\r\n renderColumnHeaderContent: () => \"Name\",\r\n headerClassName: \"data-list-cell-xl-flexible\",\r\n bodyClassName: \"data-list-cell-xl-flexible\",\r\n renderColumnContent: (document, { dealReferenceName, isRemoved, handleClick }) => (\r\n handleClick(document)}\r\n >\r\n {isRemoved ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {document.name}\r\n \r\n ),\r\n sortingField: \"name\",\r\n sortingType: SORTING_TYPE.string,\r\n};\r\n\r\nconst downloadButton: IColumnDefinition = {\r\n columnKey: \"downloadButton\",\r\n renderColumnHeaderContent: () => \"\",\r\n headerClassName: \"data-list-cell-xxs-02\",\r\n bodyClassName: \"data-list-cell-xxs-02\",\r\n renderColumnContent: (document, { handleClick, isLoading }) => (\r\n handleClick(document)}\r\n >\r\n \r\n \r\n ),\r\n};\r\n\r\nconst uploadedDate: IColumnDefinition = {\r\n columnKey: \"lastDate\",\r\n renderColumnHeaderContent: () => \"Date\",\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n renderColumnContent: (document) => {\r\n const lastDate = document.executionDate || document.uploadTime;\r\n return moment(lastDate).format(constants.dateFormat);\r\n },\r\n sortingField: \"lastDate\",\r\n sortingType: SORTING_TYPE.date\r\n};\r\n\r\nconst differenceLabel: IColumnDefinition = {\r\n columnKey: \"difference\",\r\n renderColumnHeaderContent: () => \"\",\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n renderColumnContent: (document, { difference }) => (\r\n \r\n ),\r\n};\r\n\r\nexport const dealDocumentsColumns = () => {\r\n const documentsColumnDefinitions: IColumnDefinition[] = [\r\n documentName,\r\n differenceLabel,\r\n uploadedDate,\r\n downloadButton\r\n ];\r\n return documentsColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n });\r\n};\r\n","import { AmrDocument } from '../../../../types/amr-pipeline/models/AmrDocument';\r\nimport { OriginatingTransactionDocument } from '../../../../types/amr-pipeline/models/OriginatingTransactionDocument';\r\nimport { Table } from '../../../bidding/common/table';\r\nimport { dealDocumentsColumns } from './documents-columns';\r\nimport { AmrFile } from '../../../../types/amr-pipeline/models/AmrFile';\r\nimport { DifferenceType, ObjectArrayDifference, ObjectArrayItemDifference } from '../../../../utils/differ/types';\r\nimport { DifferenceListProps, withDeletedItems } from '../../detailed/new-issue/withDeletedItems';\r\nimport { DocumentGroup } from './DocumentGroup';\r\nimport { DownloadFile } from '../../../../types/amr-pipeline/models/DownloadedDocument';\r\nimport { Nullable } from '../../../../types/primitives/Nullable';\r\nimport useDownloadDocumentList from '../../../../effects/useDownloadDocumentList';\r\nimport { amrPipelineService } from '../../../../services/amr-pipeline.service';\r\nimport { dealsService } from '../../../../services/deals.service';\r\n\r\ntype TransactionDocument = AmrDocument | OriginatingTransactionDocument;\r\n\r\ninterface DocumentGroupProps\r\n extends DifferenceListProps {\r\n title: string;\r\n dealReferenceName: string;\r\n transactionReferenceName?: string;\r\n items: TransactionDocument[];\r\n difference?: ObjectArrayDifference;\r\n downloadAllFetch: (...args: TArgs) => Promise;\r\n downloadAllArgs: TArgs;\r\n fileNameForSave: Nullable;\r\n emptyPlaceholder?: string;\r\n}\r\n\r\nfunction isRemoved(documentDifference: ObjectArrayItemDifference | undefined) {\r\n return documentDifference?.type === DifferenceType.Removed;\r\n}\r\n\r\nfunction Component({\r\n dealReferenceName,\r\n transactionReferenceName,\r\n title,\r\n items,\r\n difference,\r\n emptyPlaceholder,\r\n downloadAllFetch,\r\n downloadAllArgs,\r\n fileNameForSave,\r\n}: DocumentGroupProps) {\r\n const { loadingState, loadHandler } = useDownloadDocumentList({\r\n documents: items,\r\n downloadRequest:transactionReferenceName\r\n ? (referenceName) => amrPipelineService.getTransactionDocument(dealReferenceName, transactionReferenceName, referenceName)\r\n : (referenceName: string) => dealsService.getDealDocument(dealReferenceName, referenceName),\r\n dealReferenceName,\r\n transactionReferenceName,\r\n });\r\n\r\n async function onRowClick(document: AmrFile) {\r\n const documentDifference = getDifference(document.referenceName);\r\n\r\n if (isRemoved(documentDifference)) {\r\n return null;\r\n }\r\n\r\n loadHandler(document.referenceName, document.name);\r\n }\r\n\r\n function getDifference(referenceName: string) {\r\n // Find array item difference by item reference name\r\n // Default currentValue with previousValue for deleted documents\r\n return difference?.find(({ derivedValue }) => derivedValue?.referenceName === referenceName);\r\n }\r\n\r\n return (\r\n \r\n {\r\n const itemDifference = getDifference(item.referenceName);\r\n const isDocRemoved = isRemoved(itemDifference);\r\n\r\n return {\r\n dealReferenceName,\r\n handleClick: isDocRemoved ? () => null : onRowClick,\r\n difference: itemDifference,\r\n isRemoved: isDocRemoved,\r\n isLoading: loadingState[item.referenceName],\r\n };\r\n }}\r\n createSecurityCustomClassName={(item: AmrDocument | OriginatingTransactionDocument) => {\r\n const itemDifference = getDifference(item.referenceName);\r\n if (isRemoved(itemDifference)) {\r\n //NOTE FOR MARKUP DEVS. Please, create class for disabled document rows\r\n return 'disabled';\r\n }\r\n }}\r\n />\r\n \r\n );\r\n}\r\n\r\nexport const DocumentSection = withDeletedItems(Component);\r\n","import classNames from 'classnames';\r\nimport React from 'react';\r\nimport { AmrFile } from '../../../../types/amr-pipeline/models/AmrFile';\r\nimport { OnHoverTooltip, Preloader } from '../../../common';\r\n\r\ninterface DownloadDocumentProps {\r\n document?: AmrFile;\r\n children: React.ReactNode;\r\n secondary?: boolean;\r\n onClick?: () => void;\r\n disabled?: boolean;\r\n isLoading?: boolean;\r\n loadingText?: boolean;\r\n tooltipOverlay?: string;\r\n}\r\n\r\nexport default function DownloadDocument({\r\n document,\r\n children,\r\n secondary = false,\r\n isLoading,\r\n loadingText,\r\n tooltipOverlay,\r\n onClick,\r\n disabled,\r\n}: DownloadDocumentProps) {\r\n const handleClick = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (onClick && !disabled && !isLoading) {\r\n return onClick();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n children\r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import { memo, useEffect, useRef, useState } from \"react\";\r\nimport cn from \"classnames\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { DragFileZone } from \"../../../common/DragFileZone\";\r\nimport { isEqual } from \"lodash\";\r\nimport { SelectFile } from \"../../../grid/SelectFile\";\r\nimport IconSVG from \"../../../../styles/svg-icons\";\r\nimport { errorActions } from \"../../../../actions\";\r\nimport { constants, errorMessages } from \"../../../../constants\";\r\nimport { AmrFile } from \"../../../../types/amr-pipeline/models/AmrFile\";\r\nimport { amrPipelineService } from \"../../../../services/amr-pipeline.service\";\r\n\r\ninterface UploadingProgress {\r\n [fileName: string]: number;\r\n}\r\n\r\nexport interface FilesUploaderChildProps {\r\n referenceName?: string;\r\n documents: AmrFile[];\r\n progress: UploadingProgress;\r\n handleDeleteFile: (\r\n documentReferenceName: string\r\n ) => (e: React.MouseEvent) => void;\r\n}\r\n\r\ninterface Props {\r\n referenceName?: string;\r\n documents: AmrFile[];\r\n maxFileSizeInMb?: number;\r\n onChange: (documents: AmrFile[]) => void;\r\n onUploading: (uploading: boolean) => void;\r\n children: (props: FilesUploaderChildProps) => React.ReactNode;\r\n}\r\n\r\nconst acceptedExtensions = [\r\n \"csv\",\r\n \"doc\",\r\n \"docx\",\r\n \"pdf\",\r\n \"ppt\",\r\n \"pptx\",\r\n \"xls\",\r\n \"xlsx\",\r\n];\r\n\r\nfunction DocumentListComponent({\r\n referenceName,\r\n documents,\r\n maxFileSizeInMb = constants.documentMaxFilesizeInMb,\r\n children,\r\n onChange,\r\n onUploading,\r\n}: Props) {\r\n const dispatch = useDispatch();\r\n const uploadedDocuments = useRef([]);\r\n const [dragEnter, setDragEnter] = useState(false);\r\n const [progress, setProgress] = useState({});\r\n\r\n const acceptedExtensionsList = acceptedExtensions\r\n .map((extension) => `.${extension}`)\r\n .join(\", \");\r\n\r\n const onUploadDocument = async (file: File) => {\r\n try {\r\n const response = await amrPipelineService.uploadDocument(\r\n file,\r\n (progressEvent: ProgressEvent) =>\r\n setProgress((progress) => ({\r\n ...progress,\r\n [file.name]: Math.floor(\r\n (progressEvent.loaded / progressEvent.total) * 100\r\n ),\r\n }))\r\n );\r\n\r\n return response[0];\r\n } catch (e) {\r\n dispatch(errorActions.unexpectedError(e));\r\n }\r\n };\r\n\r\n const uploadFiles = async (files: File[]) => {\r\n uploadedDocuments.current = files;\r\n const uploadedFiles = await Promise.all(\r\n files.map((f) => onUploadDocument(f))\r\n );\r\n\r\n onChange([...uploadedFiles, ...documents]);\r\n uploadedDocuments.current = [];\r\n };\r\n\r\n const isUploading = Object.values(progress).some(p => p < 100);\r\n\r\n useEffect(() => { \r\n onUploading(isUploading);\r\n }, [onUploading, isUploading]);\r\n\r\n const handleDrop = (files: FileList) => {\r\n if (!files) {\r\n return;\r\n }\r\n\r\n const filesToUpload = [...files].reduce((accum, file) => {\r\n const splitFile = file.name?.split(\".\");\r\n const fileExtension = splitFile[splitFile.length - 1];\r\n\r\n const isInvalidSize = file.size > 1024 * 1024 * maxFileSizeInMb;\r\n const isInvalidExtension =\r\n acceptedExtensions &&\r\n !acceptedExtensions.some(\r\n (ext) => ext.toLowerCase() === fileExtension.toLowerCase()\r\n );\r\n\r\n if (isInvalidSize) {\r\n dispatch(\r\n errorActions.error(\r\n \"\",\r\n errorMessages.documentMaxFileSizeMessageText(\r\n maxFileSizeInMb\r\n ),\r\n errorMessages.documentMaxFileSizeMessageTitle\r\n )\r\n );\r\n return accum;\r\n }\r\n if (isInvalidExtension) {\r\n dispatch(\r\n errorActions.error(\r\n \"\",\r\n errorMessages.documentInvalidFileTypeText(\r\n fileExtension,\r\n acceptedExtensions.map((ext) => `.${ext}`).join(\",\")\r\n ),\r\n errorMessages.documentInvalidFileTypeTitle\r\n )\r\n );\r\n return accum;\r\n }\r\n return [...accum, file];\r\n }, []);\r\n\r\n uploadFiles(filesToUpload);\r\n };\r\n\r\n const handleDeleteFile =\r\n (documentReferenceName: string) =>\r\n (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n let documentList = documents;\r\n\r\n if (!referenceName) {\r\n documentList = documents.filter(\r\n (document) =>\r\n document.referenceName !== documentReferenceName\r\n );\r\n } else {\r\n documentList = documents.reduce(\r\n (accum: AmrFile[], document) => {\r\n if (document.referenceName === documentReferenceName) {\r\n return document.uploadTime\r\n ? [...accum, { ...document, remove: true }]\r\n : accum;\r\n }\r\n\r\n return [...accum, { ...document }];\r\n },\r\n []\r\n );\r\n }\r\n\r\n onChange(documentList);\r\n };\r\n\r\n const getTableData = (): AmrFile[] => {\r\n const documentsToDisplay = [\r\n ...uploadedDocuments.current,\r\n ...documents,\r\n ] as AmrFile[];\r\n\r\n return documentsToDisplay.filter(({ remove }) => !remove);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n setDragEnter(true)}\r\n onDragLeave={() => setDragEnter(false)}\r\n className=\"component-file-upload\"\r\n >\r\n
\r\n {dragEnter ? (\r\n <>Uploading...\r\n ) : (\r\n <>\r\n \r\n
\r\n
\r\n Drag & Drop file here or \r\n \r\n
\r\n \r\n Format: {acceptedExtensionsList}{\" \"}\r\n (max{\" \"}\r\n {maxFileSizeInMb}\r\n MB)\r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n {children({\r\n referenceName,\r\n documents: getTableData(),\r\n progress,\r\n handleDeleteFile,\r\n })}\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport const FileUploader = memo(\r\n DocumentListComponent,\r\n (prevProps: Props, nextProps: Props) =>\r\n isEqual(prevProps.documents, nextProps.documents)\r\n);\r\n","import React from 'react';\r\n\r\nexport function EmptySectionContent({ text = 'There is no information yet.' }) {\r\n return
{text}
;\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\n\r\ninterface Props {\r\n actionBtn?: React.ReactNode\r\n title?: React.ReactNode;\r\n className?: string\r\n renderActions?: () => React.ReactNode;\r\n children: React.ReactNode\r\n}\r\n\r\nexport function SectionContent({ actionBtn = null, title, renderActions = undefined, children, className=''} : Props) {\r\n return (\r\n
\r\n
\r\n {title &&\r\n

{title}

\r\n }\r\n {actionBtn}\r\n
\r\n
\r\n {children}\r\n {\r\n typeof renderActions === 'function' &&\r\n
{renderActions()}
\r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nexport function TabBody({ children, className = '' }) {\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\n\r\nexport function TabContent({ children }) {\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n","import { useSelector } from 'react-redux';\r\nimport IconSVG from '../../../../styles/svg-icons';\r\nimport { AlertOption } from '../../../../types/email-preferences/EmailPreferences';\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport classNames from 'classnames';\r\nimport { SummaryDailyAlertConfig, TransactionAlertConfig } from '../../../../types/user-config/UserConfig';\r\nimport { user } from '../../../../user';\r\nimport { SubscriptionFeature } from '../../../../types/billing/SubscriptionFeature';\r\nimport { Transaction } from '../../../../types/amr-pipeline/models/Transaction';\r\nimport { hasAnalyticsAlertsAccess } from '../../../../utils/amr-pipeline.utils';\r\n\r\ninterface Props {\r\n transaction: Transaction;\r\n withLabel?: boolean;\r\n disabled?: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const TransactionAlertsButton = ({\r\n transaction,\r\n withLabel,\r\n disabled,\r\n onClick,\r\n}: Props) => {\r\n const transactionAlertConfig = useSelector(\r\n (state: AppState) => state.imUserConfig.transactionAlertConfig,\r\n );\r\n const analyticAlertConfig = useSelector(\r\n (state: AppState) => state.imUserConfig.summaryDailyAlertConfig,\r\n );\r\n const userCompany = useSelector((state: AppState) => state.issuanceMonitor.amrPipelineCommon.userCompany);\r\n \r\n const { referenceName } = transaction;\r\n\r\n const withAnalyticsAlertsAccess = hasAnalyticsAlertsAccess(transaction, userCompany);\r\n\r\n\r\n const hasIMFullAccess = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n\r\n const selectedDealUpdatesOption =\r\n (hasIMFullAccess &&\r\n transactionAlertConfig.value.find(\r\n (c) => c.transactionReferenceName === referenceName\r\n )?.alertOption) || AlertOption.Never;\r\n const selectedSummaryDailyOption =\r\n (hasIMFullAccess &&\r\n analyticAlertConfig.value.find(\r\n (c) => c.transactionReferenceName === referenceName\r\n )?.alertOption) || AlertOption.Never;\r\n\r\n const isAlertOff = withAnalyticsAlertsAccess\r\n ? selectedDealUpdatesOption === AlertOption.Never && selectedSummaryDailyOption === AlertOption.Never\r\n : selectedDealUpdatesOption === AlertOption.Never;\r\n\r\n return (\r\n
\r\n {withLabel ? (\r\n <>\r\n \r\n \r\n {withAnalyticsAlertsAccess ? (\r\n
\r\n Transaction Update:\r\n {selectedDealUpdatesOption} / Analytics:\r\n {selectedSummaryDailyOption}\r\n
\r\n ) : (\r\n \r\n {selectedDealUpdatesOption}\r\n \r\n )}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\n","import { useState, useEffect, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { AlertOption } from '../../../../types/email-preferences/EmailPreferences';\r\nimport { imUserConfigActions } from '../../../../actions/';\r\nimport { AppState } from '../../../../types/state/AppState';\r\nimport { Preloader } from '../../../common';\r\nimport { UserConfigType } from '../../../../types/user-config/UserConfigType';\r\nimport { Popup, PopupBody, PopupFooter } from '../../../controls';\r\nimport {\r\n alertOptionTooltipText,\r\n alertOptions,\r\n analyticAlertOptions,\r\n} from '../../../../constants/amr-pipeline/alertOptions';\r\nimport { SummaryDailyAlertConfig, TransactionAlertConfig } from '../../../../types/user-config/UserConfig';\r\nimport { Transaction } from '../../../../types/amr-pipeline/models/Transaction';\r\nimport { hasAnalyticsAlertsAccess } from '../../../../utils/amr-pipeline.utils';\r\nimport { EmailPreferencesRadioGroup } from '../../../profile/tabs/email-preferences/tabs/EmailPreferencesRadioGroup';\r\nimport { SubscriptionFeature } from '../../../../types/billing/SubscriptionFeature';\r\n\r\ninterface Props {\r\n transaction: Transaction;\r\n onClose: () => void;\r\n}\r\n\r\nexport const TransactionAlertsPopup = ({ transaction, onClose }: Props) => {\r\n const dispatch = useDispatch();\r\n\r\n const userCompany= useSelector((state: AppState) => state.issuanceMonitor.amrPipelineCommon.userCompany);\r\n const {\r\n referenceName: transactionReferenceName,\r\n legalNameOnDeal: transactionLegalName,\r\n dealReferenceName,\r\n } = transaction;\r\n\r\n const withAnalyticsAlertsAccess = hasAnalyticsAlertsAccess(transaction, userCompany);\r\n\r\n const isUpdating = useSelector((state: AppState) => state.imUserConfig.isUpdating);\r\n const isDeleting = useSelector((state: AppState) => state.imUserConfig.isDeleting);\r\n\r\n const transactionAlertConfig = useSelector(\r\n (state: AppState) => state.imUserConfig.transactionAlertConfig,\r\n );\r\n const analyticAlertConfig = useSelector(\r\n (state: AppState) => state.imUserConfig.summaryDailyAlertConfig,\r\n );\r\n\r\n const currentTransactionAlertConfig = useMemo(\r\n () => transactionAlertConfig.value.find(c => c.transactionReferenceName === transactionReferenceName),\r\n [transactionAlertConfig, transactionReferenceName]\r\n );\r\n const currentAnalyticAlertConfig = useMemo(\r\n () => analyticAlertConfig.value.find(c => c.transactionReferenceName === transactionReferenceName),\r\n [analyticAlertConfig, transactionReferenceName]\r\n );\r\n\r\n const [dealUpdatesAlertConfig, setDealUpdatesAlertConfig] = useState(currentTransactionAlertConfig);\r\n const [summaryDailyAlertConfig, setSummaryDailyAlertConfig] = useState(currentAnalyticAlertConfig);\r\n\r\n const [saving, setSaving] = useState(false);\r\n\r\n const dealUpdatesOption = currentTransactionAlertConfig?.alertOption || AlertOption.Never;\r\n const summaryDailyOption = currentAnalyticAlertConfig?.alertOption || AlertOption.Never;\r\n\r\n const selectedDealUpdatesOption = dealUpdatesAlertConfig?.alertOption || AlertOption.Never;\r\n const selectedSummaryDailyOption = summaryDailyAlertConfig?.alertOption || AlertOption.Never;\r\n\r\n const isInitialAlertsState = \r\n dealUpdatesOption === selectedDealUpdatesOption &&\r\n summaryDailyOption === selectedSummaryDailyOption;\r\n\r\n const inProgress = isUpdating || isDeleting;\r\n const isSaveDisabled = isInitialAlertsState || inProgress;\r\n\r\n useEffect(() => {\r\n if (!inProgress && saving) {\r\n onClose();\r\n setSaving(false);\r\n }\r\n }, [inProgress, saving, onClose]);\r\n\r\n useEffect(() => {\r\n setDealUpdatesAlertConfig(\r\n transactionAlertConfig.value.find(c => c.transactionReferenceName === transactionReferenceName),\r\n );\r\n setSummaryDailyAlertConfig(\r\n analyticAlertConfig.value.find(c => c.transactionReferenceName === transactionReferenceName),\r\n );\r\n }, [transactionAlertConfig, analyticAlertConfig, transactionReferenceName]);\r\n\r\n const handleSave = () => {\r\n setSaving(true);\r\n\r\n const configs = [\r\n ...dealUpdatesAlertConfig ? [{ type: UserConfigType.transactionAlert, value: dealUpdatesAlertConfig }] : [],\r\n ...withAnalyticsAlertsAccess && summaryDailyAlertConfig ? [{ type: UserConfigType.summaryDailyAlerts, value: summaryDailyAlertConfig }] : [],\r\n ];\r\n\r\n dispatch(imUserConfigActions.saveTransactionAlerts(configs));\r\n };\r\n\r\n const renderAlertSection = (\r\n groupNameIndentifier: string,\r\n title: string,\r\n alertOptions: AlertOption[],\r\n selectedOption: AlertOption,\r\n onChange: (a: AlertOption) => void,\r\n description: string,\r\n alertOptionInfo?: { [key: string]: string },\r\n ) => (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n Transaction Alerts\r\n {transactionLegalName}\r\n \r\n }\r\n onClose={onClose}\r\n modalClass=\"modal-email-preferences\"\r\n >\r\n \r\n {renderAlertSection(\r\n 'tranasction-updates',\r\n 'Transaction Update',\r\n alertOptions,\r\n selectedDealUpdatesOption,\r\n a =>\r\n setDealUpdatesAlertConfig({\r\n ...dealUpdatesAlertConfig!,\r\n alertOption: a,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n }),\r\n 'Receive an email when the transaction is updated on Issuance Monitor.',\r\n {\r\n [AlertOption.Instant]: 'Alerts are sent once transactions are published',\r\n [AlertOption.Daily]: alertOptionTooltipText[AlertOption.Daily],\r\n },\r\n )}\r\n\r\n {withAnalyticsAlertsAccess &&\r\n renderAlertSection(\r\n 'tranasction-analytics',\r\n 'Analytics',\r\n analyticAlertOptions,\r\n selectedSummaryDailyOption,\r\n a =>\r\n setSummaryDailyAlertConfig({\r\n ...summaryDailyAlertConfig!,\r\n alertOption: (a as AlertOption.Daily) || AlertOption.Never,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n }),\r\n 'Receive an email for deal statistic updates.',\r\n {\r\n [AlertOption.Daily]: alertOptionTooltipText[AlertOption.Daily],\r\n }\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"],"names":["getAmrColumns","_ref17","_defineProperty","PipelineColumn","dealName","columnKey","renderColumnHeaderContent","pipelineColumnLabels","renderColumnContent","_ref","dealLegalName","_jsx","OnHoverTooltip","overlay","children","constants","emptyPlaceholder","sortingField","sortingType","SORTING_TYPE","string","className","configKey","ColumnConfigKey","DealName","manager","_ref2","collateralManager","ManagerLink","referenceName","legalName","company","headerClassName","bodyClassName","CollateralManager","closingDate","_ref3","moment","format","dateFormat","date","ClosingDate","nonCallPeriodEnd","NcEnd","bwicColumnsLabels","_ref4","nonCallPeriodEndYears","_jsxs","pipelineTooltipText","IconSVG","name","width","height","_ref5","_nonCallPeriodEndYear","reinvestmentPeriodEnd","_Fragment","PeriodPopover","toFixed","number","NcEndYrs","outOfNC","_ref6","columnText","formatUtils","formatBoolean","OutOfNc","RiEnd","_ref7","reinvestmentPeriodEndYears","_ref8","_reinvestmentPeriodEn","RiEndYrs","outOfRI","_ref9","OutOfRi","maturity","_ref10","statedMaturity","finalMaturity","Maturity","vintage","_ref11","year","Vintage","trustee","_ref12","Trustee","amrDeal","_ref13","amr","formatBooleanWithPlaceholder","boolean","AmrDeal","staticDeal","transaction","StaticDeal","euCompliance","_ref14","euRiskRetentionRequirements","euDisclosureRequirements","Popover","title","label","actionButton","renderMarkdownOrEmpty","EuCompliance","esg","_ref15","esgComment","MarkdownViewer","value","Esg","collateralType","_ref16","formatCollateralType","CollateralType","AddToPortfolioIcon","AddToPortfolioLink","wrapperClassName","_ref$disabled","disabled","_ref$checkSubscriptio","checkSubscription","transactionClass","withText","_ref$withEmptyPlaceho","withEmptyPlaceholder","_useState","useState","_useState2","_slicedToArray","isPopupVisible","setIsPopupVisible","_useState3","_useState4","isTooltipVisible","setIsTooltipVisible","_useState5","_useState6","selectedIdentifier","setSelectedIdentifier","status","currency","type","rating","tranche","TransactionType","class","isEuro","code","Currency","EUR","cusip144A","cusipRegS","cusipAccdInvCertif","isin144A","isinRegS","isinAccdInvCertif","ticker144A","tickerRegS","tickerAccdInvCertif","identifier144A","identifierRegS","identifierAccdInvCertif","dispatch","useDispatch","portfolios","usePortfolios","items","identifierList","isinCusip","ticker","filter","c","withButton","TransactionStatus","Closed","length","security","useMemo","result","i","securities","find","s","cn","handleVisibilityChange","isVisible","handleClose","addToPortfolioActions","reset","renderTooltip","withAddedItem","Tooltip","overlayClassName","placement","TooltipPlacement","BottomRight","onVisibleChange","trigger","TooltipTriggerType","Click","visible","map","ContextMenuItem","onClick","onMouseEnter","e","stopPropagation","undefined","renderPopup","positionCurrency","position","securityId","size","USD","AddToPortfolioPopup","onClose","ImSubscriptionActionBlocker","overrideRequiredFeatures","blocked","AmrClassStatusLabel","statusText","amrTrancheStatuses","getStatusText","classStatus","concat","toLowerCase","replace","classNames","BankLink","overlayText","isLinkAvailable","user","hasRoles","apply","_toConsumableArray","roles","banksAccess","preventDefault","window","open","location","origin","routes","manageBanksUrl","BwicInventoryLink","identifiers","identifier","secondaryPlaceholderColor","SecurityBwicLink","iconName","tooltipText","placeholderIfEmpty","route","inventory","requiredFeatures","SubscriptionFeature","InventoryHistoricalData","BwicMonitorLink","allBWICs","BwicMonitorHistoricalData","DetailedPageLink","history","useHistory","dealReferenceName","push","transactionDetailUrl","ExportButton","isExportLoad","handleExport","Preloader","small","fullScreen","inProgress","text","FilterLink","tooltip","renderContent","useAppDispatch","amrPipelineActions","createAmrPipelineActions","PipelineType","Deals","searchTransactionsActions","createSearchTransactionActions","filterActions","createFilterActions","isMedia","Media","Viewer","redirectWithNoFilter","setRedirectFilters","pathname","AMRPipeline","init","FilterLinkIcon","props","_objectSpread","classnames","FilterRelatedTransactionsIcon","changeDealSelectFromTable","FormField","_ref$value","_ref$error","error","_ref$tooltip","_ref$tooltipLabel","tooltipLabel","_ref$children","_ref$required","required","_ref$className","_ref$capitalize","capitalize","infoTooltip","renderTitle","renderDataItem","wrapperClass","Highlighter","highlightStyles","_ref$activeClassName","activeClassName","_ref$activeIndex","activeIndex","_ref$activeStyle","activeStyle","_ref$autoEscape","autoEscape","_ref$caseSensitive","caseSensitive","_ref$highlightClassNa","highlightClassName","_ref$highlightStyle","highlightStyle","_ref$highlightTag","highlightTag","_ref$sanitize","sanitize","searchWords","textToHighlight","_ref$unhighlightClass","unhighlightClassName","_ref$unhighlightStyle","unhighlightStyle","rest","_objectWithoutProperties","_excluded","chunks","findAll","HighlightTag","highlightIndex","highlightClassNames","createElement","chunk","index","substr","start","end","highlight","isActive","Object","assign","key","style","ImDealLookupLink","_ref$requiredFeatures","IssuanceMonitorFullAccess","_ref$iconVisible","iconVisible","RoleAndFeatureBlocker","requiredRoles","issuanceMonitorAccess","FeatureLink","path","target","ImTransactionDetailsLink","transactionReferenceName","RoleActionBlocker","getAllRolesExclude","roleBlocked","ActionBlocker","features","InlineAlertPanel","_ref$isWarning","isWarning","mailColumns","amrFormatUtils","formatRating","balance","numericUtils","isNumber","moneyUtils","money","coupon","price","guidance","subscription","originatingTransactionClassStatus","transactionClassStatusTitles","ColumnBuilder","getAssetPar","collateralQualityTests","assetPar","cqt","CollateralQualityTestValue","AssetPar","GeneralInfo","_transaction$collater","_transaction$arranger","_transaction$currency","formatDateWithPeriod","transactionDate","yearsLeft","dateTimeUtils","yrsLeftToDateFrom","dealTicker","arranger","startCase","StatusLabel","transactionStatusTitles","collateralTypes","dealBalance","pricingDate","formatDecimal","was","warf","ds","MailPreview","loading","setLoading","classes","isOriginatingTransaction","capitalStructureTransactionClasses","tc","floaterIndex","margin","capitalStructureClass","formatInventoryCoupon","useEffect","whiteSpace","Table","dataItems","columns","renderFooterRow","TotalBalance","Link","to","termsAndConditions","privacyPolicy","useRequestInviteClients","emailList","message","sending","setSending","onLoadSuccess","request","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","amrPipelineService","shareTransactionToClients","notificationActions","notificationAddInfo","t0","notificationAddErrorMessage","finish","stop","arguments","useRequestTransactionDetails","transactionForPreview","updateTransactionForPreview","withGetTransaction","_transaction","collateralQualityTest","getTransaction","sent","getCollateralQualityTest","errorActions","criticalError","emailMaxCount","InviteClientsTransactionPopup","_ref$defaultEmailList","defaultEmailList","_ref$withGetTransacti","setTransactionForPreview","setCollateralQualityTests","setEmailList","_useState7","_useState8","textContent","setTextContent","_useState9","_useState10","_useState11","_useState12","data","isLimitExceeded","isDataInvalid","some","validateEmail","Popup","modalClass","PopupBody","StatusMessageSection","StatusMessageSectionType","Error","Info","EmailChipList","defaultItems","onChange","list","allowInvalid","withClearAll","placeholder","maxLength","PopupFooter","FlexRow","ArrangersClient","manageCloManagerUrl","labelClassName","NewDebutAmrLabel","ignoreDebut","isNew","isDebut","showClosedAmr","showDebut","NonAmrPeriod","period","_ref$emptyValue","emptyValue","Pluralize","count","singular","OverlayClassNameContent","OriginatingTransactionClassStatus","NotOffered","renderRelatedTransIcon","isExpanded","renderDisabledButton","relatedColumns","RelatedTransDropdown","hasTransactions","expanded","setExpanded","_useDealTransactions","useDealTransactions","dealTransactions","requestState","sortedTrans","sort","a","b","compareDates","ClickOutside","isRequesting","onRowClick","transactionUrl","identifierForLink","getIdentifier","requireAllFeatures","rel","AutoCompleteInput","sourceItems","pattern","_ref$searchTermAccept","searchTermAcceptedLength","_ref$maxLength","_ref$highlightResults","highlightResults","_ref$placeholder","_ref$expandOnFocus","expandOnFocus","_ref$keyboardControl","keyboardControl","_ref$showNoResultsPla","showNoResultsPlaceholder","_ref$listName","listName","onBlur","onClear","inputRef","useRef","refScrollableContainer","refActiveItem","setIndex","filteredItems","setFilteredItems","focusInput","setFocusInput","handleItemSelected","item","current","focus","document","addEventListener","handleClickOutside","removeEventListener","container","getBoundingClientRect","top","bottom","scrollIntoView","getFilteredItems","valueLowerCase","trim","_i$synonyms","includes","synonyms","renderLookupItem","hidden","ref","node","contains","onKeyDown","keyCode","onFocus","nonWhitespace","source","autoComplete","EmptyPlaceholder","SelectionPanelSearch","searchTerm","_ref$suggestedList","suggestedList","collapsed","_ref$showCollapseButt","showCollapseButton","onSearch","onCollapseClick","customEvent","createEvent","initEvent","dispatchEvent","SearchInput","ShowMore","_ref$defaultExpanded","defaultExpanded","_ref$showMoreText","showMoreText","_ref$showLessText","showLessText","renderMore","renderLess","TransactionHistoryLink","_ref$target","_ref$overlayText","_ref$label","version","transactionHistoryUrl","isNil","AnalyticsFilter","tabDefinitions","dateOption","filters","isFilterChanged","isEqual","analyticDefaultFilters","tabTypes","x","selected","FilterPanel","FilterSection","TreeSelect","options","users","withSearch","renderMeta","option","_option$meta","meta","views","FilterDateRange","buttonView","acceptableOptions","dateRangeFilterOptions","ThisWeek","LastWeek","ThisMonth","LastMonth","Custom","onSelectedDateChange","dateFrom","dateTo","onCustomDateChange","dateFilterOption","from","onClearAll","customDateRange","selectedFilterOption","disabledDays","after","Date","FilterSelect","tabs","onSelectAll","_filters$tabs","onChangeItemSelection","filterOption","checked","prevValue","FilterClear","isShown","isDisabled","AnalyticsWidget","feature","state","onFilterChange","isLoading","isDataLoaded","DashboardNoSelectedFilters","notOffered","subject","TabConfigMap","PipelineView","Class","UserConfigType","imColumnsClassTab","Deal","imColumnsDealTab","CustomizeColumnsDialog","defaultTab","_useSelector","useSelector","imUserConfig","isUpdating","isLoadingDefault","columnsConfig","columnsDefaultConfig","activeTab","setActiveTab","transferOptionFromColumn","column","permanent","fixed","order","available","deriveTabStateFromConfig","userConfig","tab","_ref2$value","displayed","reduce","acc","tabState","setTabState","tabDefaultState","setTabDefaultState","prevState","imUserConfigActions","getDefaultUserColumnsConfig","getUserConfig","selectedKeys","selectedColumns","TabList","TabItem","active","Transfer","leftColumnTitle","rightColumnTitle","onReset","rightActionDisabled","values","v","defaultValues","checkIsConfigDefault","updateUserConfig","DocumentGroup","_ref$itemsCount","itemsCount","downloadAllFetch","downloadAllArgs","fileNameForSave","renderAdditionalButton","_React$useState","React","_React$useState2","setCollapsed","_useDownloadDocument","useDownloadDocument","downloadRequest","requestArgs","handleDownload","isDownloading","href","EmptySectionContent","documentName","isRemoved","handleClick","DownloadDocument","FileIcon","filename","downloadButton","uploadedDate","lastDate","executionDate","uploadTime","differenceLabel","difference","FieldDifferenceLabel","documentDifference","DifferenceType","Removed","DocumentSection","withDeletedItems","_useDownloadDocumentL","useDownloadDocumentList","documents","getTransactionDocument","dealsService","getDealDocument","loadingState","loadHandler","_x","_onRowClick","getDifference","abrupt","derivedValue","createSecurityCustomArgs","itemDifference","isDocRemoved","createSecurityCustomClassName","_ref$secondary","secondary","loadingText","tooltipOverlay","acceptedExtensions","DocumentListComponent","_ref$maxFileSizeInMb","maxFileSizeInMb","documentMaxFilesizeInMb","onUploading","uploadedDocuments","dragEnter","setDragEnter","progress","setProgress","acceptedExtensionsList","extension","join","onUploadDocument","file","response","uploadDocument","progressEvent","Math","floor","loaded","total","unexpectedError","uploadFiles","_callee2","files","uploadedFiles","_context2","Promise","all","f","_x2","isUploading","p","handleDrop","filesToUpload","accum","_file$name","splitFile","split","fileExtension","isInvalidSize","isInvalidExtension","ext","errorMessages","documentMaxFileSizeMessageText","documentMaxFileSizeMessageTitle","documentInvalidFileTypeText","documentInvalidFileTypeTitle","DragFileZone","onFiles","onDragEnter","onDragLeave","SelectFile","remove","handleDeleteFile","documentReferenceName","documentList","FileUploader","memo","prevProps","nextProps","_ref$text","SectionContent","_ref$actionBtn","actionBtn","_ref$renderActions","renderActions","TabBody","TabContent","TransactionAlertsButton","_transactionAlertConf","_analyticAlertConfig$","withLabel","transactionAlertConfig","analyticAlertConfig","summaryDailyAlertConfig","userCompany","issuanceMonitor","amrPipelineCommon","withAnalyticsAlertsAccess","hasAnalyticsAlertsAccess","hasIMFullAccess","hasFeatures","selectedDealUpdatesOption","alertOption","AlertOption","Never","selectedSummaryDailyOption","isAlertOff","TransactionAlertsPopup","transactionLegalName","legalNameOnDeal","isDeleting","currentTransactionAlertConfig","currentAnalyticAlertConfig","dealUpdatesAlertConfig","setDealUpdatesAlertConfig","setSummaryDailyAlertConfig","saving","setSaving","dealUpdatesOption","summaryDailyOption","isSaveDisabled","renderAlertSection","groupNameIndentifier","alertOptions","selectedOption","description","alertOptionInfo","EmailPreferencesRadioGroup","requiredFeature","IssuanceMonitorTransactionsEmailAlerts","Instant","Daily","alertOptionTooltipText","analyticAlertOptions","configs","transactionAlert","summaryDailyAlerts","saveTransactionAlerts"],"sourceRoot":""}