{"version":3,"file":"static/js/main-01c1e32e.ed96bcc0.js","mappings":"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","sources":["components/amrPipeline/types/PipelineColumn.ts","components/amrPipeline/types/PipelineDetailedTabTypes.ts","components/amrPipeline/detailed/PipelineDetailedLimitedAccess.tsx","components/amrPipeline/types/PipelineTabTypes.ts","components/amrPipeline/transactionContext.tsx","components/amrPipeline/detailed/new-issue/withDeletedItems.tsx","components/amrPipeline/detailed/new-issue/analytics/PercentageBar.tsx","components/amrPipeline/detailed/IntexPopup.tsx","components/amrPipeline/detailed/new-issue/withTabTracking.tsx","components/amrPipeline/detailed/new-issue/documents/Documents.tsx","components/amrPipeline/detailed/new-issue/DifferenceField.tsx","components/amrPipeline/detailed/new-issue/capital-structure/capital-structure-columns.tsx","components/amrPipeline/detailed/new-issue/capital-structure/CapitalStructure.tsx","components/amrPipeline/detailed/new-issue/deal-overview/sections/General.tsx","components/amrPipeline/detailed/new-issue/deal-overview/sections/Dates.tsx","components/amrPipeline/detailed/new-issue/deal-overview/sections/AdditionalInfo.tsx","components/amrPipeline/detailed/new-issue/deal-overview/sections/SyndicateContacts.tsx","components/amrPipeline/detailed/new-issue/syndicate-contacts/syndicate-contacts-columns.tsx","components/amrPipeline/detailed/new-issue/deal-overview/sections/Intex.tsx","components/amrPipeline/detailed/new-issue/deal-overview/sections/previous-transaction/PreviousTransactionControlPanel.tsx","components/amrPipeline/detailed/new-issue/deal-overview/sections/previous-transaction/PreviousTransaction.tsx","components/amrPipeline/detailed/new-issue/deal-overview/DealOverview.tsx","components/amrPipeline/detailed/new-issue/deal-structure/sections/AdministrativeFee.tsx","components/amrPipeline/detailed/new-issue/deal-structure/sections/CollateralAssumptions.tsx","components/amrPipeline/detailed/new-issue/deal-structure/sections/CollateralQualityTests.tsx","components/amrPipeline/detailed/new-issue/deal-structure/sections/ManagmentFee.tsx","components/amrPipeline/detailed/new-issue/deal-structure/sections/SourceAndUses.tsx","components/amrPipeline/detailed/new-issue/deal-structure/DealStructure.tsx","components/amrPipeline/detailed/new-issue/target-portfolio/portfolio-columns.tsx","components/amrPipeline/detailed/new-issue/target-portfolio/TotalRow.tsx","components/amrPipeline/detailed/new-issue/target-portfolio/TargetPortfolio.tsx","components/amrPipeline/detailed/new-issue/ioi/ioi-columns.tsx","components/amrPipeline/detailed/new-issue/ioi/investorPopup/tabs/CompanyTab.tsx","components/amrPipeline/detailed/new-issue/ioi/investorPopup/tabs/member-columns.tsx","components/amrPipeline/detailed/new-issue/ioi/investorPopup/tabs/MembersTabs.tsx","components/amrPipeline/detailed/new-issue/ioi/investorPopup/InvestorPopup.tsx","components/amrPipeline/detailed/new-issue/ioi/IOIs.tsx","components/amrPipeline/detailed/new-issue/analytics/sections/General.tsx","components/amrPipeline/detailed/new-issue/analytics/sections/DownloadedDocumentsType.tsx","components/amrPipeline/detailed/new-issue/analytics/sections/ViewedTabs.tsx","components/amrPipeline/detailed/new-issue/analytics/clientsActivity/ClientsActivityChart.tsx","components/amrPipeline/detailed/new-issue/analytics/withAnalyticsRequest.tsx","components/amrPipeline/detailed/new-issue/analytics/clientsActivity/ClientsActivityWidget.tsx","components/amrPipeline/detailed/new-issue/analytics/transactionViewHistory/TransactionViewHistoryPopover/TransactionViewHistoryTabs.ts","components/amrPipeline/detailed/new-issue/analytics/transactionViewHistory/TransactionViewHistoryPopover/OverviewTab.tsx","components/amrPipeline/detailed/new-issue/analytics/transactionViewHistory/TransactionViewHistoryPopover/ContactsTab.tsx","components/amrPipeline/detailed/new-issue/analytics/transactionViewHistory/TransactionViewHistoryPopover/DocsDownloadedTab.tsx","components/amrPipeline/detailed/new-issue/analytics/transactionViewHistory/TransactionViewHistoryPopover/TransactionViewHistoryPopover.tsx","components/amrPipeline/detailed/new-issue/analytics/transactionViewHistory/transactionViewHistory.columns.tsx","components/amrPipeline/detailed/new-issue/analytics/transactionViewHistory/TransactionViewHistoryTable.tsx","components/amrPipeline/detailed/new-issue/analytics/transactionViewHistory/TransactionViewHistoryWidget.tsx","components/amrPipeline/detailed/new-issue/analytics/Analytics.tsx","components/amrPipeline/detailed/new-issue/invited-clients/invited-clients-columns.tsx","components/amrPipeline/detailed/new-issue/invited-clients/InvitedClients.tsx","components/amrPipeline/detailed/new-issue/comparative-metrics/ComparableDealTable.tsx","components/amrPipeline/detailed/new-issue/comparative-metrics/ComparativeMetricsWidget.tsx","components/amrPipeline/detailed/new-issue/comparative-metrics/ComparativeMetrics.tsx","components/amrPipeline/detailed/new-issue/comparative-metrics/hooks/useDealComparativeMetrics.ts","components/amrPipeline/detailed/new-issue/OriginatingTransactionDetails.tsx","components/amrPipeline/detailed/Header.tsx","components/amrPipeline/types/AmrDealTabTypes.ts","components/amrPipeline/detailed/amr/transaction-details/Details.tsx","components/amrPipeline/detailed/amr/transaction-details/Classes.tsx","components/amrPipeline/detailed/amr/transaction-details/classes-columns.tsx","components/amrPipeline/detailed/amr/transaction-details/Documents.tsx","components/amrPipeline/detailed/amr/transaction-details/TransactionDetails.tsx","components/amrPipeline/types/AmrDealTrancheTabTypes.ts","components/amrPipeline/detailed/amr/class-details/Auctions.tsx","components/amrPipeline/detailed/amr/class-details/auctions-column.tsx","components/amrPipeline/detailed/amr/class-details/Details.tsx","components/amrPipeline/detailed/amr/class-details/ClassDetails.tsx","components/amrPipeline/detailed/amr/AmrDetails.tsx","components/amrPipeline/detailed/PipelineDetailed.tsx","components/amrPipeline/types/TransactionsTabTypes.ts","components/amrPipeline/history/TransactionHistoryNavItem/TransactionHistoryNavItem.tsx","components/amrPipeline/history/TransactionHistoryNavItem/utils.ts","components/amrPipeline/history/TransactionHistoryNavItem/PrimitiveIndicator.tsx","components/amrPipeline/history/TransactionHistoryNavItem/BooleanIndicator.tsx","components/amrPipeline/history/TransactionHistoryNavItem/DeletedFileIndicator.tsx","components/amrPipeline/history/TransactionHistoryNavItem/FileIndicator.tsx","components/amrPipeline/history/TransactionHistoryNavItem/ImpreciseIndicator.tsx","components/amrPipeline/history/TransactionHistoryNavItem/ImpreciseTableIndicatorSection.tsx","components/amrPipeline/history/TransactionHistoryNavItem/IndicatorSection.tsx","components/amrPipeline/history/TransactionHistoryNavItem/ListIndicatorSection.tsx","components/amrPipeline/history/TransactionHistoryNavItem/TableSectionWrapper.tsx","components/amrPipeline/history/TransactionHistoryNavItem/types.ts","components/amrPipeline/history/TransactionHistoryNavItem/TableIndicatorItemsSection.tsx","components/amrPipeline/history/TransactionHistoryNavItem/TableItemIndicatorsSection.tsx","components/amrPipeline/history/TransactionHistoryNavItem/TableIndicatorSection.tsx","components/amrPipeline/history/TransactionHistoryNavItem/TablePrimitiveIndicator.tsx","components/amrPipeline/history/TransactionHistoryNavItem/indicators-config.ts","components/amrPipeline/history/TransactionHistorySelectionPanel.tsx","components/amrPipeline/history/Header.tsx","components/amrPipeline/history/HistoryInfo.tsx","components/amrPipeline/history/PipelineHistory.tsx","components/amrPipeline/types/PipelineView.ts","components/amrPipeline/detailed/new-issue/capital-structure/TotalBalance.tsx","components/amrPipeline/detailed/new-issue/DifferenceLabel.tsx","components/amrPipeline/history/TransactionHistoryNavItem/DynamicsIcon.tsx","components/amrPipeline/subscription/ImSubscriptionActionBlocker.tsx","components/amrPipeline/detailed/amr/AmrTransactionNavItem.tsx","components/amrPipeline/detailed/new-issue/OriginatingTransactionNavItem.tsx","components/amrPipeline/detailed/TransactionsSelectionPanel.tsx","components/amrPipeline/subscription/ImSubscriptionValue.tsx"],"sourcesContent":["export enum PipelineColumn {\r\n dealName = 'dealName',\r\n toRelatedDeals = 'toRelatedDeals',\r\n manager = 'manager',\r\n arranger = 'arranger',\r\n toAllArrangers = 'toAllArrangers',\r\n toAllManagers = 'toAllManagers',\r\n transactionStatus = 'transactionStatus',\r\n transactionType = 'transactionType',\r\n transactionSize = 'transactionSize',\r\n dealSize = 'dealSize',\r\n pricingDate = 'pricingDate',\r\n closingDate = 'closingDate',\r\n nonCallPeriodEnd = 'nonCallPeriodEnd',\r\n reinvestmentPeriodEnd = 'reinvestmentPeriodEnd',\r\n was = 'was',\r\n warf = 'warf',\r\n ds = 'ds',\r\n className = 'className',\r\n cusip = 'cusip144A',\r\n rating = 'rating',\r\n balance = 'balance',\r\n parSubordination = 'parSubordination',\r\n mvoc = 'mvoc',\r\n wal = 'wal',\r\n coupon = 'coupon',\r\n dm = 'dm',\r\n price = 'price',\r\n initialPrice = 'initialPrice',\r\n guidance = 'guidance',\r\n initialGuidance = 'initialGuidance',\r\n subscription = 'subscription',\r\n target = 'target',\r\n trigger = 'trigger',\r\n cushion = 'cushion',\r\n margin = 'margin',\r\n factor = 'factor',\r\n capMargin = 'capMargin',\r\n nonAmr = 'nonAMR',\r\n collateralType = 'collateralType',\r\n euCompliance = 'euCompliance',\r\n esg = 'esg',\r\n amr = 'amr',\r\n amrDeal = 'amrDeal',\r\n amrClass = 'amrClass',\r\n currency = 'currency',\r\n offeringType = 'offeringType',\r\n lastUpdated = 'lastUpdated',\r\n isNew = 'isNew',\r\n maturity = 'maturity',\r\n vintage = 'vintage',\r\n firstPayment = 'firstPayment',\r\n intex = 'intex',\r\n numberOfDocuments = 'numberOfDocuments',\r\n syndicate = 'syndicate',\r\n enhancedCLO = 'enhancedCLO',\r\n staticDeal = 'staticDeal',\r\n rollerDeadline = 'rollerDeadline',\r\n dealTicker = 'dealTicker',\r\n originatingTransactionClassStatus = 'originatingTransactionClassStatus',\r\n iois = 'iois',\r\n shareOption = 'shareOption',\r\n options = 'options',\r\n optionsAction = 'optionsAction',\r\n optionButton = 'optionButton',\r\n ticker = 'ticker144A',\r\n isin = 'isin144A',\r\n tickerRegS = 'tickerRegS',\r\n cusipRegS = 'cusipRegS',\r\n isinRegS = 'isinRegS',\r\n tickerAccdInvCertif = 'tickerAccdInvCertif',\r\n cusipAccdInvestor = 'cusipAccdInvCertif',\r\n isinAccdInvestor = 'isinAccdInvCertif',\r\n expectedTiming = 'expectedTiming',\r\n dealStage = 'dealStage',\r\n anchor = 'anchor',\r\n equity = 'equity',\r\n disclosureFile = 'disclosureFile',\r\n trustee = 'trustee',\r\n managerPresentationFile = 'managerPresentationFile',\r\n legalNameOnDeal = 'legalNameOnDeal',\r\n outOfNC = 'outOfNC',\r\n outOfRI = 'outOfRI',\r\n reinvestmentPeriodEndYears = 'reinvestmentPeriodEndYears',\r\n nonCallPeriodEndYears = 'nonCallPeriodEndYears',\r\n reinvestmentPeriodEndDays = 'reinvestmentPeriodEndDays',\r\n nonCallPeriodEndDays = 'nonCallPeriodEndDays',\r\n category = 'category',\r\n static = 'static',\r\n};\r\n","export enum PipelineDetailedTabTypes {\r\n all = 'All',\r\n ioi = 'IOIs',\r\n}\r\n","import React, { useMemo, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { amrPipelineDetailedActions, imUserConfigActions } from '../../../actions/';\r\nimport { AppState } from '../../../types/state/AppState';\r\nimport { PipelineDetailedState } from '../../../types/state/PipelineDetailedState';\r\nimport { TransactionsSelectionPanel } from './TransactionsSelectionPanel';\r\nimport {\r\n canViewTransactionDetails,\r\n hasIOIsAccess,\r\n} from '../../../utils/amr-pipeline.utils';\r\nimport TransactionContext from '../transactionContext';\r\nimport { PipelineDetailedTabTypes } from '../types/PipelineDetailedTabTypes';\r\nimport { useAppDispatch } from '../../../effects/useAppDispatch';\r\nimport { SubscribeLink } from '../../access/BlockedFeatureText';\r\nimport { RequiredFeature } from '../../access/RequiredFeature';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\n\r\nexport const PipelineDetailedLimitedAccess = () => {\r\n const dispatch = useAppDispatch();\r\n const {\r\n transactions,\r\n isTransactionsRequesting,\r\n searchTerm,\r\n numberOfHiddenTransactions,\r\n } = useSelector((state: AppState) => state.issuanceMonitor.amrPipelineDetailed);\r\n const { userCompany } = useSelector((state: AppState) => state.issuanceMonitor.amrPipelineCommon);\r\n const [selectionPanelTab, setSelectionPanelTab] = useState(PipelineDetailedTabTypes.all);\r\n\r\n const transactionsLoaded = transactions != null;\r\n\r\n const contextValue = useMemo(\r\n () => ({\r\n canView: canViewTransactionDetails(),\r\n limitedAccess: false,\r\n accessTracking: true,\r\n analyticsAccess: false,\r\n invitedClientsAccess: false,\r\n ioisAccess: hasIOIsAccess(undefined, userCompany),\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }),\r\n [userCompany],\r\n );\r\n\r\n React.useEffect(() => {\r\n dispatch(imUserConfigActions.getUserConfig());\r\n\r\n return () => {\r\n dispatch(amrPipelineDetailedActions.reset());\r\n };\r\n }, [dispatch]);\r\n\r\n React.useEffect(() => {\r\n if (!userCompany || transactionsLoaded || isTransactionsRequesting) {\r\n return;\r\n }\r\n\r\n dispatch(amrPipelineDetailedActions.loadTransactions());\r\n }, [dispatch, userCompany, transactionsLoaded, isTransactionsRequesting]);\r\n\r\n if (!transactions) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n  to see the deal details.\r\n \r\n }\r\n >\r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","export enum IssuanceMonitorTab {\r\n Deals = 'deals',\r\n Dashboard = 'dashboard',\r\n IOIs = 'iois',\r\n ArrangerPipeline = 'arrangerPipeline',\r\n ArrangerPipelineEdit = 'arrangerPipelineEdit',\r\n}\r\n","import React from 'react';\r\n\r\ninterface TransactionContextProps {\r\n canView: boolean;\r\n limitedAccess: boolean;\r\n accessTracking: boolean;\r\n analyticsAccess: boolean;\r\n invitedClientsAccess: boolean;\r\n ioisAccess: boolean;\r\n}\r\n\r\nconst TransactionContext = React.createContext({\r\n canView: false,\r\n limitedAccess: false,\r\n accessTracking: true,\r\n analyticsAccess: false,\r\n invitedClientsAccess: false,\r\n ioisAccess: false,\r\n});\r\n\r\nexport default TransactionContext;\r\n","import { DifferenceType, ObjectArrayDifference, ObjectArrayItemDifference } from '../../../../utils/differ/types';\r\n\r\nexport interface DifferenceListProps {\r\n items: TItem[];\r\n difference?: ObjectArrayDifference;\r\n}\r\n\r\nexport const withDeletedItems = >(Component: React.ComponentType) =>\r\n ({ items, difference, ...props }: TProps) => {\r\n // Collect deleted classes from difference if it's passed\r\n // to present them in resulting table\r\n const filter = (itemDiference: ObjectArrayItemDifference) =>\r\n !!itemDiference.previousValue && itemDiference.type === DifferenceType.Removed;\r\n\r\n const deletedClasses = difference\r\n ? difference.filter(filter).map((x) => x.previousValue!)\r\n : [];\r\n\r\n // Concat deleted items if needed\r\n const withDeleted = [...items, ...deletedClasses];\r\n\r\n return ;\r\n };\r\n","import { constants } from \"../../../../../constants\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\n\r\ninterface PercentageBarProps {\r\n title: string;\r\n maxValue?: number;\r\n value?: number;\r\n}\r\n\r\nconst lineWidth = 220;\r\n\r\nexport const PercentageBar = ({\r\n title,\r\n maxValue = 0,\r\n value = 0,\r\n}: PercentageBarProps) => {\r\n const fillingPercent = ((value / maxValue) * lineWidth) || 0;\r\n\r\n return (\r\n
\r\n
{title}
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n {value ? `${value} view(s)` : constants.emptyPlaceholder}\r\n
\r\n \r\n );\r\n};\r\n","import { FileIcon, Popup, PopupBody, PopupFooter } from '../../controls/';\r\nimport { constants } from '../../../constants';\r\nimport { OriginatingTransaction } from '../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { FormField } from '../common/FormField';\r\nimport DownloadDocument from '../common/documents/DownloadDocument';\r\nimport {\r\n getCurrentIntexPositionIdForTransaction,\r\n transactionHasArrangerProSubscription,\r\n} from '../../../utils/amr-pipeline.utils';\r\nimport { IntexLink } from '../../common/IntexLink';\r\nimport { SectionContent } from '../common/section/SectionContent';\r\nimport { ValueBlocker } from '../../access/ValueBlocker';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { RequiredFeature } from '../../access/RequiredFeature';\r\nimport { SubscribeLink } from '../../access/BlockedFeatureText';\r\nimport { useDownloadDocument } from '../../../effects/useDownloadDocument';\r\nimport { amrPipelineService } from '../../../services/amr-pipeline.service';\r\n\r\ninterface IntexPopupProps {\r\n transaction: OriginatingTransaction;\r\n omitArrangerProOverride?: boolean;\r\n onCloseClick: () => void;\r\n}\r\n\r\nexport const IntexPopup = ({ transaction, omitArrangerProOverride, onCloseClick }: IntexPopupProps) => {\r\n const {\r\n dealReferenceName,\r\n referenceName,\r\n intexName,\r\n intexPassword,\r\n intexFile,\r\n dealTicker,\r\n dealLegalName,\r\n intexExists,\r\n } = transaction;\r\n\r\n const { handleDownload, isDownloading } = useDownloadDocument({\r\n downloadRequest: amrPipelineService.downloadIntexFile,\r\n requestArgs: [dealReferenceName, referenceName],\r\n fileNameForSave: intexFile?.name || null,\r\n });\r\n\r\n const currentIntexPositionId = getCurrentIntexPositionIdForTransaction(transaction);\r\n const hasArrangerProSubscription = transactionHasArrangerProSubscription(transaction);\r\n\r\n const renderFileValue = () => {\r\n if (!intexFile && !intexExists) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n return (\r\n \r\n to download Intex file\r\n \r\n }\r\n overrideRequiredFeatures={omitArrangerProOverride ? false : hasArrangerProSubscription}\r\n >\r\n {intexFile ? (\r\n \r\n \r\n {transaction.intexFile.name}\r\n \r\n ) : (\r\n constants.emptyPlaceholder\r\n )}\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n Intex\r\n {dealLegalName}\r\n \r\n }\r\n modalClass=\"intex-popup\"\r\n onClose={onCloseClick}\r\n >\r\n \r\n \r\n }\r\n >\r\n \r\n {intexName || constants.emptyPlaceholder}\r\n \r\n }\r\n className=\"data-item-row-full-height data-item-row-title-sm\"\r\n />\r\n \r\n {intexPassword || constants.emptyPlaceholder}\r\n \r\n }\r\n className=\"data-item-row-full-height data-item-row-title-sm\"\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 \r\n );\r\n};\r\n\r\nexport default IntexPopup;\r\n","import { ComponentType, useContext, useEffect } from 'react';\r\nimport { amrPipelineDetailedActions } from '../../../../actions';\r\nimport { TransactionAccessType } from '../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport TransactionContext from '../../transactionContext';\r\nimport { TransactionTabProps } from './types';\r\nimport { useAppDispatch } from '../../../../effects/useAppDispatch';\r\n\r\nexport const withTabTracking = (tabAccessType: TransactionAccessType) => (Component: ComponentType) => (props: T) => {\r\n const { accessTracking } = useContext(TransactionContext);\r\n const dispatch = useAppDispatch();\r\n\r\n useEffect(() => {\r\n if (!accessTracking) {\r\n return;\r\n }\r\n\r\n const { dealReferenceName, referenceName } = props.transaction;\r\n dispatch(amrPipelineDetailedActions.logTabAccess(dealReferenceName, referenceName, tabAccessType));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return ;\r\n};\r\n","import { useState } from \"react\";\r\nimport { OriginatingTransactionDocument } from \"../../../../../types/amr-pipeline/models/OriginatingTransactionDocument\";\r\nimport { TransactionAccessType } from '../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { getSearchedTransactionDocuments, hasArrangerAccess } from \"../../../../../utils/amr-pipeline.utils\";\r\nimport { SearchInput } from \"../../../../common\";\r\nimport { DocumentSection } from \"../../../common/documents/DocumentSection\";\r\nimport { TabBody } from \"../../../common/tabs/TabBody\";\r\nimport { TransactionTabProps } from '../types';\r\nimport { withTabTracking } from '../withTabTracking';\r\nimport { RequiredFeature } from '../../../../access/RequiredFeature';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { BlockedFeatureContent, SubscribeLink } from \"../../../../../components/access/BlockedFeatureText\";\r\nimport { amrPipelineService } from \"../../../../../services/amr-pipeline.service\";\r\n\r\nconst DocumentsTab = ({ transaction, difference }: TransactionTabProps) => {\r\n const [searchTerm, setSearchTerm] = useState('');\r\n\r\n const documents = transaction.documents || [];\r\n const filteredDocuments = getSearchedTransactionDocuments(documents, searchTerm);\r\n\r\n function handleSearchTermChange(value: string) {\r\n setSearchTerm(value);\r\n }\r\n\r\n function handleSearchTermClear() {\r\n setSearchTerm('');\r\n }\r\n\r\n function sortDocuments(\r\n a: OriginatingTransactionDocument,\r\n b: OriginatingTransactionDocument\r\n ) {\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n return (\r\n \r\n (\r\n to see Documents.}\r\n />\r\n )}\r\n >\r\n \r\n 0 ? 'No search results.' : 'There are no documents yet.'}\r\n items={filteredDocuments.sort(sortDocuments)}\r\n difference={difference?.documents}\r\n downloadAllFetch={amrPipelineService.getTransactionDocuments}\r\n downloadAllArgs={[transaction.dealReferenceName, transaction.referenceName]}\r\n fileNameForSave={`${transaction.dealLegalName} Documents.zip`}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport const Documents = withTabTracking(TransactionAccessType.Documents)(DocumentsTab);\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { DifferenceType, PrimitiveDifference } from '../../../../utils/differ/types';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport { DynamicsIcon } from '../../history/TransactionHistoryNavItem/DynamicsIcon';\r\n\r\ninterface DifferenceFieldProps {\r\n difference?: PrimitiveDifference;\r\n formatter?: (...args: any) => React.ReactNode;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst getDifferenceType = (difference: PrimitiveDifference) => {\r\n const { type, previousValue, derivedValue } = difference;\r\n\r\n if (typeof(derivedValue) !== 'boolean' || type !== DifferenceType.Updated) {\r\n return type;\r\n }\r\n\r\n return previousValue ? DifferenceType.Removed : DifferenceType.Added;\r\n}\r\n\r\nexport const DifferenceField = ({\r\n difference,\r\n formatter = (x) => x,\r\n children,\r\n}: DifferenceFieldProps) => {\r\n if (!difference) {\r\n return <>{children};\r\n }\r\n\r\n const { previousValue, derivedValue } = difference;\r\n const isNumeric = typeof derivedValue === 'number'\r\n\r\n const differenceType = getDifferenceType(difference);\r\n\r\n const renderContent = () => (\r\n
\r\n
\r\n {differenceType === DifferenceType.Removed ? (\r\n {formatter(derivedValue)}\r\n ) : (\r\n <>{children}\r\n )}\r\n
\r\n
\r\n );\r\n\r\n if (differenceType !== DifferenceType.Updated) {\r\n return renderContent();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {renderContent()}\r\n \r\n {isNumeric && }\r\n \r\n )\r\n};\r\n","import { startCase } from \"lodash\";\r\nimport { IColumnDefinition } from \"../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { constants, roles, SORTING_TYPE } from \"../../../../../constants\";\r\nimport { amrFormatUtils, formatUtils, moneyUtils, numericUtils } from \"../../../../../utils\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\nimport { OverlayClassNameContent } from \"../../../common/OverlayClassNameContent\";\r\nimport { constants as amrConstants } from \"../../../common/constants\";\r\nimport { OriginatingTransactionClassStatus, transactionClassStatusTitles } from \"../../../../../types/amr-pipeline/enums/OriginatingTransactionClassStatus\";\r\nimport { OriginatingTransCapitalStructure } from \"./CapitalStructure\";\r\nimport { LastUpdatedPopover } from '../../../aggregated/LastUpdatedPopover';\r\nimport { Difference, Dynamics } from '../../../../../utils/differ/types';\r\nimport { OriginatingTransactionClassDiff } from '../../../../../types/amr-pipeline/models/OriginatingTransactionClassDiff';\r\nimport { DifferenceField } from '../DifferenceField';\r\nimport { DifferenceType } from '../../../../../utils/differ/types';\r\nimport { BloombergLink } from \"../../../../common/BloombergLink\";\r\nimport { ValitanaLink } from \"../../../../common/ValitanaLink\";\r\nimport { AddToPortfolioLink } from \"../../../common/AddToPortfolioLink\";\r\nimport { user } from \"../../../../../user\";\r\nimport { RequiredFeature } from '../../../../access/RequiredFeature';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { OriginatingTransaction } from '../../../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { ImSubscriptionValue } from '../../../subscription/ImSubscriptionValue';\r\n\r\ninterface ColumnContext {\r\n difference?: Difference;\r\n transaction: OriginatingTransaction;\r\n}\r\n\r\nconst balance = {\r\n columnKey: \"balance\",\r\n renderColumnHeaderContent: () => \"Balance\",\r\n renderColumnContent: (transactionClass: OriginatingTransCapitalStructure, { difference }: ColumnContext) =>\r\n \r\n { transactionClass.balance != null && numericUtils.isNumber(transactionClass.balance)\r\n ? moneyUtils.money(transactionClass.balance)\r\n : constants.emptyPlaceholder\r\n }\r\n ,\r\n className: \"data-list-cell-md text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"balance\",\r\n sortingType: SORTING_TYPE.number\r\n};\r\n\r\nexport const amrColumn: IColumnDefinition = {\r\n columnKey: \"amr\",\r\n renderColumnHeaderContent: () => \"AMR\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n {formatUtils.formatBoolean(transactionClass.amr)}\r\n ,\r\n headerClassName: \"data-list-cell-xs\",\r\n bodyClassName: \"data-list-cell-xs text-capitalize\",\r\n sortingField: \"amr\",\r\n};\r\n\r\nconst classIndicatorColumnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: \"ticker144A\",\r\n renderColumnHeaderContent: () => \"Ticker (144A)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.ticker144A || constants.emptyPlaceholder,\r\n className: \"data-list-cell-lg\",\r\n sortingField: \"ticker144A\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"tickerRegS\",\r\n renderColumnHeaderContent: () => \"Ticker (Reg S)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.tickerRegS || constants.emptyPlaceholder,\r\n className: \"data-list-cell-lg\",\r\n sortingField: \"tickerRegS\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"tickerAccdInvCertif\",\r\n renderColumnHeaderContent: () => \"Ticker (Acc’d Inv./Certif.)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.tickerAccdInvCertif || constants.emptyPlaceholder,\r\n className: \"data-list-cell-lg-02\",\r\n sortingField: \"tickerAccdInvCertif\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n];\r\n\r\nconst capitalStructureColumnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: \"className\",\r\n stickLeft: true,\r\n renderColumnHeaderContent: () => \"Class\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) => (\r\n \r\n }\r\n >\r\n \r\n \r\n {`${transactionClass.name} ${\r\n transactionClass.originatingTransactionClassStatus ===\r\n OriginatingTransactionClassStatus.NotOffered\r\n ? amrConstants.notOffered\r\n : ''\r\n }`}\r\n \r\n \r\n \r\n ),\r\n className: \"\",\r\n sortingField: \"name\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n balance,\r\n {\r\n columnKey: \"parSubordination\",\r\n renderColumnHeaderContent: () => \"C/E, %\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { transactionClass.parSubordination\r\n ? formatUtils.formatDecimal(\r\n transactionClass.parSubordination\r\n )\r\n : constants.emptyPlaceholder\r\n }\r\n ,\r\n className: \"data-list-cell-sm text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"parSubordination\",\r\n sortingType: SORTING_TYPE.number\r\n },\r\n {\r\n columnKey: \"capStructure\",\r\n renderColumnHeaderContent: () => \"% of Cap Structure\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { transactionClass.percentOfCapStructure\r\n ? formatUtils.formatDecimal(\r\n transactionClass.percentOfCapStructure\r\n )\r\n : constants.emptyPlaceholder\r\n }\r\n ,\r\n className: \"data-list-cell-lg text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"percentOfCapStructure\",\r\n sortingType: \"number\",\r\n },\r\n {\r\n columnKey: \"mvoc\",\r\n renderColumnHeaderContent: () => \"MVOC, %\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { formatUtils.formatDecimal(transactionClass.mvoc) ?? constants.emptyPlaceholder }\r\n ,\r\n className: \"data-list-cell-sm text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"mvoc\",\r\n sortingType: SORTING_TYPE.number\r\n },\r\n {\r\n columnKey: \"wal\",\r\n renderColumnHeaderContent: () => \"WAL\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { transactionClass.wal\r\n ? formatUtils.formatDecimal(transactionClass.wal)\r\n : constants.emptyPlaceholder\r\n }\r\n ,\r\n className: \"data-list-cell-sm text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"wal\",\r\n sortingType: SORTING_TYPE.number\r\n },\r\n {\r\n columnKey: \"rating\",\r\n renderColumnHeaderContent: () => \"Rtg (M/S/F/K/D)\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { amrFormatUtils.formatRating(transactionClass) }\r\n ,\r\n className: \"data-list-cell-xl\",\r\n sortingField: \"rating\",\r\n sortingType: SORTING_TYPE.rating\r\n },\r\n {\r\n columnKey: \"coupon\",\r\n renderColumnHeaderContent: () => \"Coupon\",\r\n renderColumnContent: ({ coupon }, { difference }: ColumnContext) =>\r\n {coupon},\r\n className: \"data-list-cell-lg\",\r\n sortingField: \"coupon\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"dm\",\r\n renderColumnHeaderContent: () => \"DM, bps\",\r\n renderColumnContent: (transactionClass, { difference, transaction }: ColumnContext) =>\r\n \r\n \r\n { transactionClass.dm ?? constants.emptyPlaceholder }\r\n \r\n ,\r\n className: \"data-list-cell-sm text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"dm\",\r\n sortingType: SORTING_TYPE.number\r\n },\r\n {\r\n columnKey: \"initialPrice\",\r\n renderColumnHeaderContent: () => \"Initial Price\",\r\n renderColumnContent: (transactionClass, { transaction }) => (\r\n \r\n {transactionClass.initialPrice ?\r\n {transactionClass.initialPrice}\r\n : constants.emptyPlaceholder}\r\n \r\n ),\r\n className: \"data-list-cell-sm text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"initialPrice\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"price\",\r\n renderColumnHeaderContent: () => \"Price\",\r\n renderColumnContent: (transactionClass, { difference, transaction }: ColumnContext) => {\r\n let formattedPrice = undefined;\r\n // Temporary formatting strings as numbers. Need to be removed after price field will be changed from string to number type\r\n if (difference?.price) {\r\n const { price } = difference\r\n const derivedValue = price.derivedValue\r\n ? +price.derivedValue\r\n : undefined;\r\n const currentValue = price.currentValue\r\n ? +price.currentValue\r\n : undefined;\r\n const previousValue = price.previousValue\r\n ? +price.previousValue\r\n : undefined;\r\n\r\n if (\r\n numericUtils.isNumber(derivedValue)\r\n && numericUtils.isNumber(currentValue)\r\n && numericUtils.isNumber(previousValue)\r\n ) {\r\n formattedPrice = {\r\n ...difference?.price,\r\n derivedValue,\r\n currentValue,\r\n previousValue,\r\n dynamics: currentValue > previousValue ? Dynamics.Increased : Dynamics.Decreased,\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n { transactionClass.price ?\r\n {transactionClass.price}\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n );\r\n },\r\n className: \"data-list-cell-sm text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"price\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"initialGuidance\",\r\n renderColumnHeaderContent: () => \"Initial Guidance\",\r\n renderColumnContent: (transactionClass, { transaction }) => (\r\n \r\n {transactionClass.initialGuidance\r\n ? {transactionClass.initialGuidance}\r\n : constants.emptyPlaceholder}\r\n \r\n ),\r\n className: \"data-list-cell-sm\",\r\n sortingField: \"initialGuidance\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"guidance\",\r\n renderColumnHeaderContent: (context: any) =>\r\n context.withGuidance ? (\r\n 'Guidance'}\r\n >\r\n \r\n \r\n Guidance\r\n \r\n \r\n \r\n ) : (\r\n Guidance\r\n ),\r\n renderColumnContent: (transactionClass, { difference, transaction }: ColumnContext) => (\r\n \r\n \r\n { transactionClass.guidance ?\r\n difference?.guidance?.type === DifferenceType.Updated\r\n ? {transactionClass.guidance}\r\n : (\r\n \r\n {transactionClass.guidance}\r\n \r\n )\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n ),\r\n className: \"data-list-cell-sm\",\r\n sortingField: \"guidance\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"originatingTransactionClassStatus\",\r\n renderColumnHeaderContent: () => \"Class Status\",\r\n renderColumnContent: (transactionClass, { difference, transaction }: ColumnContext) =>\r\n \r\n \r\n { transactionClass.originatingTransactionClassStatus\r\n ? transactionClassStatusTitles[transactionClass.originatingTransactionClassStatus]\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n ,\r\n className: \"data-list-cell-sm\",\r\n sortingField: \"originatingTransactionClassStatus\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"subscription\",\r\n renderColumnHeaderContent: (context: any) =>\r\n context.withSubscription ? (\r\n 'Subscription'}\r\n >\r\n \r\n \r\n Subscription\r\n \r\n \r\n \r\n ) : (\r\n Subscription\r\n ),\r\n renderColumnContent: (transactionClass, { difference, transaction }: ColumnContext) => (\r\n \r\n \r\n { transactionClass.subscription ?\r\n difference?.subscription?.type === DifferenceType.Updated\r\n ? {transactionClass.subscription}\r\n : (\r\n \r\n {transactionClass.subscription}\r\n \r\n )\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n ),\r\n sortingField: \"subscription\",\r\n className: \"data-list-cell-md\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: 'actions',\r\n renderColumnHeaderContent: () => 'Actions',\r\n renderColumnContent: (transactionClass, { transaction }) => {\r\n const isPortfolioEnabled = !user.hasRoles(roles.ArrangersClient);\r\n\r\n return (\r\n
\r\n {isPortfolioEnabled && (\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 },\r\n className: 'data-list-cell-sm-01 text-right',\r\n stickRight: true,\r\n },\r\n];\r\n\r\nconst coverageTestColumnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: \"trigger\",\r\n renderColumnHeaderContent: () => \"O/C Trigger, %\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { formatUtils.formatDecimal(transactionClass.ocTrigger) ?? constants.emptyPlaceholder }\r\n ,\r\n className: \"data-list-cell-md text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"ocTrigger\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"target\",\r\n renderColumnHeaderContent: () => \"O/C Target, %\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { formatUtils.formatDecimal(transactionClass.ocTarget) ?? constants.emptyPlaceholder}\r\n ,\r\n className: \"data-list-cell-md text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"ocTarget\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"cushion\",\r\n renderColumnHeaderContent: () => \"O/C Cushion, %\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { transactionClass.ocCushion\r\n ? formatUtils.formatDecimal(transactionClass.ocCushion)\r\n : constants.emptyPlaceholder\r\n }\r\n ,\r\n className: \"data-list-cell-md text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"ocCushion\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"icTrigger\",\r\n renderColumnHeaderContent: () => \"I/C Trigger, %\",\r\n renderColumnContent: (transactionClass, { difference }: ColumnContext) =>\r\n \r\n { formatUtils.formatDecimal(transactionClass.icTrigger) ?? constants.emptyPlaceholder }\r\n ,\r\n className: \"data-list-cell-md text-right data-list-cell-right-offset data-list-cell-change\",\r\n sortingField: \"icTrigger\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n amrColumn,\r\n];\r\n\r\nconst covClassIndicatorColumnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: \"ticker144A\",\r\n renderColumnHeaderContent: () => \"Ticker (144A)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.ticker144A || constants.emptyPlaceholder,\r\n className: \"data-list-cell-lg\",\r\n sortingField: \"ticker144A\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"cusip144A\",\r\n renderColumnHeaderContent: () => \"CUSIP (144A)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.cusip144A || constants.emptyPlaceholder,\r\n className: \"data-list-cell-md\",\r\n sortingField: \"cusip144A\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"isin144A\",\r\n renderColumnHeaderContent: () => \"ISIN (144A)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.isin144A || constants.emptyPlaceholder,\r\n className: \"data-list-cell-sm\",\r\n sortingField: \"isin144A\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"tickerRegS\",\r\n renderColumnHeaderContent: () => \"Ticker (Reg S)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.tickerRegS || constants.emptyPlaceholder,\r\n className: \"data-list-cell-lg\",\r\n sortingField: \"tickerRegS\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"cusipRegS\",\r\n renderColumnHeaderContent: () => \"CUSIP (Reg S)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.cusipRegS || constants.emptyPlaceholder,\r\n className: \"data-list-cell-md\",\r\n sortingField: \"cusipRegS\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"isinRegS\",\r\n renderColumnHeaderContent: () => \"ISIN (Reg S)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.isinRegS || constants.emptyPlaceholder,\r\n className: \"data-list-cell-md\",\r\n sortingField: \"isinRegS\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"tickerAccdInvCertif\",\r\n renderColumnHeaderContent: () => \"Ticker (Acc’d Inv./Certif.)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.tickerAccdInvCertif || constants.emptyPlaceholder,\r\n className: \"data-list-cell-lg-02\",\r\n sortingField: \"tickerAccdInvCertif\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"cusipAccdInvCertif\",\r\n renderColumnHeaderContent: () => \"CUSIP (Acc’d Inv./Certif.)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.cusipAccdInvCertif || constants.emptyPlaceholder,\r\n className: \"data-list-cell-lg-02\",\r\n sortingField: \"cusipAccdInvCertif\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n {\r\n columnKey: \"isinAccdInvCertif\",\r\n renderColumnHeaderContent: () => \"ISIN (Acc’d Inv./Certif.)\",\r\n renderColumnContent: (transactionClass) =>\r\n transactionClass.isinAccdInvCertif || constants.emptyPlaceholder,\r\n className: \"data-list-cell-lg-02\",\r\n sortingField: \"isinAccdInvCertif\",\r\n sortingType: SORTING_TYPE.string\r\n },\r\n];\r\n\r\nexport const capitalStructureColumns = capitalStructureColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n});\r\n\r\nexport const classIndicatorColumns = classIndicatorColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n});\r\n\r\nexport const coverageTestColumns = coverageTestColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n});\r\n\r\nexport const coverageClassIndicatorColumns = covClassIndicatorColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n});\r\n","import { OriginatingTransactionClass } from \"../../../../../types/amr-pipeline/models/OriginatingTransactionClass\";\r\nimport { Table } from \"../../../../bidding/common/table\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { amrColumn, capitalStructureColumns, classIndicatorColumns, coverageClassIndicatorColumns, coverageTestColumns } from \"./capital-structure-columns\";\r\nimport { TotalBalance } from \"./TotalBalance\";\r\nimport { EmptyPlaceholder } from \"../../../../common/EmptyPlaceholder\";\r\nimport { amrFormatUtils } from \"../../../../../utils\";\r\nimport { OriginatingTransactionClassStatus } from \"../../../../../types/amr-pipeline/enums/OriginatingTransactionClassStatus\";\r\nimport { OriginatingTransactionClassDiff } from '../../../../../types/amr-pipeline/models/OriginatingTransactionClassDiff';\r\nimport { DifferenceListProps, withDeletedItems } from '../withDeletedItems';\r\nimport { ClassIndicators } from \"../../../../../types/amr-pipeline/models/ClassIndicators\";\r\nimport { OriginatingTransaction } from \"../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\n\r\ninterface Props extends DifferenceListProps {\r\n transaction: OriginatingTransaction;\r\n withCoverage?: boolean;\r\n}\r\n\r\nexport interface OriginatingTransCapitalStructure extends OriginatingTransactionClass, ClassIndicators {\r\n coupon?: string;\r\n}\r\n\r\nfunction Component({\r\n transaction,\r\n items,\r\n difference,\r\n withCoverage = false\r\n}: Props) {\r\n const capitalStructureTransactionClasses = items.map(tc => {\r\n const { tranche, floaterIndex, margin, ...capitalStructureClass } = tc;\r\n const coupon = amrFormatUtils.formatInventoryCoupon(floaterIndex, margin);\r\n return { ...capitalStructureClass, ...tranche, tranche, coupon };\r\n });\r\n\r\n if (!items.length) {\r\n return ();\r\n }\r\n\r\n return (\r\n {\r\n const arrayItelDifference = difference?.find(({ derivedValue }) => {\r\n return derivedValue?.referenceName === item.referenceName;\r\n })\r\n\r\n return { difference: arrayItelDifference?.difference, transaction };\r\n }}\r\n createSecurityCustomClassName={(c: OriginatingTransactionClass) =>\r\n c.originatingTransactionClassStatus ===\r\n OriginatingTransactionClassStatus.NotOffered\r\n ? \"sold-status\"\r\n : \"\"\r\n }\r\n createHeaderCustomArgs={() => ({\r\n transaction,\r\n withGuidance: !difference && capitalStructureTransactionClasses.some(c => c.guidance),\r\n withSubscription: !difference && capitalStructureTransactionClasses.some(c => c.subscription),\r\n })}\r\n renderFooterRow={(columns: ColumnBuilder[]) => }\r\n />\r\n );\r\n}\r\n\r\nexport const CapitalStructure = withDeletedItems(Component);\r\n","import { startCase } from 'lodash';\r\nimport { Link } from 'react-router-dom';\r\nimport { constants, roles, routes } from '../../../../../../constants';\r\nimport { collateralTypes } from '../../../../../../constants/collateral-types';\r\nimport { OriginatingTransaction } from '../../../../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { moneyUtils } from '../../../../../../utils';\r\nimport { FormField } from '../../../../common/FormField';\r\nimport { SectionContent } from '../../../../common/section/SectionContent';\r\nimport { CapitalStructure } from '../../capital-structure/CapitalStructure';\r\nimport { OnHoverTooltip } from '../../../../../common';\r\nimport IconSVG from '../../../../../../styles/svg-icons';\r\nimport StatusLabel from '../../../../StatusLabel';\r\nimport { transactionStatusTitles } from '../../../../../../types/amr-pipeline/enums/TransactionStatus';\r\nimport { Difference, DifferenceType } from '../../../../../../utils/differ/types';\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { FieldDifferenceLabel } from '../../DifferenceLabel';\r\nimport { OriginatingTransactionDiff } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { ShowFor } from '../../../../../access';\r\nimport { IntexLink } from '../../../../../common/IntexLink';\r\nimport { getCurrentIntexPositionIdForTransaction } from '../../../../../../utils/amr-pipeline.utils';\r\nimport { ManagerLink } from '../../../../common/ManagerLink';\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { ActionBlocker } from '../../../../../access/ActionBlocker';\r\nimport { BankLink } from '../../../../common/BankLink';\r\n\r\nconst formatToStartCase = startCase;\r\nconst formatToMoney = moneyUtils.money;\r\n\r\nconst GoToIcon = () => ;\r\n\r\nconst BlockedGoToButton = () => (\r\n \r\n);\r\n\r\ninterface Props {\r\n selectedTransaction: OriginatingTransaction;\r\n difference?: Difference;\r\n}\r\n\r\nexport function General({ selectedTransaction, difference }: Props) {\r\n const currentIntexPositionId = getCurrentIntexPositionIdForTransaction(selectedTransaction);\r\n\r\n const renderTrusteeField = () => {\r\n if (!selectedTransaction.trustee) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n if (difference?.trustee?.legalName) {\r\n return
{selectedTransaction.trustee.legalName}
;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n {selectedTransaction.trustee.legalName}\r\n \r\n
\r\n \r\n \r\n {blocked =>\r\n blocked ? (\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 );\r\n }\r\n\r\n const renderCollateralManagerField = () => {\r\n if (!selectedTransaction.collateralManager) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n if (difference?.collateralManager?.legalName) {\r\n return
{selectedTransaction.collateralManager.legalName}
;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {blocked =>\r\n blocked ? (\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 );\r\n }\r\n\r\n const renderArrangerField = () => {\r\n if (!selectedTransaction.arranger) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n if (difference?.arranger?.legalName) {\r\n return
{selectedTransaction.arranger.legalName}
;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {blocked =>\r\n blocked ? (\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 );\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n \r\n {selectedTransaction.dealLegalName}\r\n \r\n \r\n \r\n {difference ? (\r\n \r\n {selectedTransaction.dealTicker || constants.emptyPlaceholder}\r\n \r\n ) : (\r\n
\r\n
\r\n \r\n {selectedTransaction.dealTicker || constants.emptyPlaceholder}\r\n \r\n
\r\n {currentIntexPositionId && (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n \r\n \r\n {formatToStartCase(selectedTransaction.type)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {formatToMoney(selectedTransaction.dealBalance) || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n {selectedTransaction.currency?.code || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n {collateralTypes[selectedTransaction.collateralType]}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {selectedTransaction.issuer?.legalName ?? constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedTransaction.coIssuer?.legalName ?? constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n \r\n {renderCollateralManagerField()}\r\n \r\n \r\n \r\n \r\n {renderArrangerField()}\r\n \r\n \r\n \r\n \r\n {renderTrusteeField()}\r\n \r\n \r\n \r\n \r\n \r\n {selectedTransaction.initialPurchaser || constants.emptyPlaceholder}\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 classNames from \"classnames\";\r\nimport moment from \"moment\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { TransactionType } from \"../../../../../../types/amr-pipeline/enums/TransactionType\";\r\nimport { OriginatingTransaction } from \"../../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { OriginatingTransactionDiff } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { dateTimeUtils } from \"../../../../../../utils\";\r\nimport { amrFormatUtils } from \"../../../../../../utils/amr-format.utils\";\r\nimport { Difference } from '../../../../../../utils/differ/types';\r\nimport { FormField } from \"../../../../common/FormField\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\n\r\ninterface Props {\r\n selectedTransaction: OriginatingTransaction;\r\n difference?: Difference;\r\n}\r\n\r\nconst composeDateWithPeriodLeft = (value: string, periodLeft: string | 0) =>\r\n value + (periodLeft ? ' [' + periodLeft + ']' : '');\r\n\r\nconst dateFormatter = (value?: Date) => value\r\n ? moment(value).format(constants.dateFormat)\r\n : constants.emptyPlaceholder;\r\n\r\nconst dateWithPeriodFormatter = (periodLeft: string | 0) => (value?: Date) => {\r\n if(!value) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n const formattedDate = dateFormatter(value)\r\n return composeDateWithPeriodLeft(formattedDate, periodLeft);\r\n}\r\n\r\n\r\nconst rollerDeadlineByTypeFormatter = (type: TransactionType) => (value?: Date) =>\r\n type !== TransactionType.newIssue && value\r\n ? amrFormatUtils.formatRollerDeadlineDate(moment(value))\r\n : constants.emptyPlaceholder;\r\n\r\nconst vintageByTypeFormatter = (type: TransactionType, timeLeft: string | 0) => (value?: Date) => {\r\n if(!value) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n const year = moment(value).year().toString();\r\n return type === TransactionType.refi ? composeDateWithPeriodLeft(year, timeLeft) : year;\r\n}\r\n\r\nexport function Dates({ selectedTransaction, difference }: Props) {\r\n const {\r\n pricingDate,\r\n rollerDeadline,\r\n nonCallPeriodEnd,\r\n closingDate,\r\n reinvestmentPeriodEnd,\r\n firstPaymentDate,\r\n statedMaturity,\r\n vintage\r\n } = selectedTransaction;\r\n\r\n const { yrsLeftToDateFrom } = dateTimeUtils;\r\n\r\n const nonCallPeriodEndTimeLeft = yrsLeftToDateFrom(nonCallPeriodEnd, closingDate);\r\n const reinvestmentPeriodEndTimeLeft = yrsLeftToDateFrom(reinvestmentPeriodEnd, closingDate);\r\n const firstPaymentDateTimeLeft = yrsLeftToDateFrom(firstPaymentDate, closingDate);\r\n const statedMaturityTimeLeft = yrsLeftToDateFrom(statedMaturity, closingDate);\r\n const vintageTimeLeft = yrsLeftToDateFrom(closingDate, vintage);\r\n\r\n const rollerDeadlineFormatter = rollerDeadlineByTypeFormatter(selectedTransaction.type);\r\n const nonCallPeriodEndFormatter = dateWithPeriodFormatter(nonCallPeriodEndTimeLeft);\r\n const reinvestmentPeriodEndFormatter = dateWithPeriodFormatter(reinvestmentPeriodEndTimeLeft);\r\n const firstPaymentDateFormatter = dateWithPeriodFormatter(firstPaymentDateTimeLeft);\r\n const statedMaturityFormatter = dateWithPeriodFormatter(statedMaturityTimeLeft);\r\n const vintageFormatter = vintageByTypeFormatter(selectedTransaction.type, vintageTimeLeft);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {rollerDeadlineFormatter(rollerDeadline)}\r\n \r\n \r\n \r\n \r\n {dateFormatter(pricingDate)}\r\n \r\n \r\n \r\n \r\n {dateFormatter(closingDate)}\r\n \r\n \r\n \r\n \r\n {firstPaymentDateFormatter(firstPaymentDate)}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {nonCallPeriodEndFormatter(nonCallPeriodEnd)}\r\n \r\n \r\n \r\n \r\n {reinvestmentPeriodEndFormatter(reinvestmentPeriodEnd)}\r\n \r\n \r\n\r\n \r\n \r\n {statedMaturityFormatter(statedMaturity)}\r\n \r\n \r\n\r\n {!difference && (\r\n \r\n \r\n {vintageFormatter(vintage)}\r\n \r\n \r\n )}\r\n
\r\n \r\n );\r\n}\r\n","import { useContext } from 'react';\r\nimport { FileIcon } from '../../../../../controls';\r\nimport { constants, roles } from '../../../../../../constants';\r\nimport { formatUtils } from '../../../../../../utils';\r\nimport { OriginatingTransaction } from '../../../../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { SectionContent } from '../../../../common/section/SectionContent';\r\nimport { FormField } from '../../../../common/FormField';\r\nimport DownloadDocument from '../../../../common/documents/DownloadDocument';\r\nimport { renderMarkdownOrEmpty } from '../../../../../common/markdown-editor';\r\nimport { Difference, DifferenceType } from '../../../../../../utils/differ/types';\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { OriginatingTransactionDiff } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { DifferenceLabel, FieldDifferenceLabel } from '../../DifferenceLabel';\r\nimport TransactionContext from '../../../../transactionContext';\r\nimport IconSVG from '../../../../../../styles/svg-icons';\r\nimport { OriginatingTransactionDocument } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDocument';\r\nimport { ShowFor } from '../../../../../access';\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\nimport { ValueBlocker } from '../../../../../access/ValueBlocker';\r\nimport { hasArrangerAccess } from '../../../../../../utils/amr-pipeline.utils';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { useDownloadDocument } from '../../../../../../effects/useDownloadDocument';\r\nimport { amrPipelineService } from '../../../../../../services/amr-pipeline.service';\r\n\r\ninterface Props {\r\n selectedTransaction: OriginatingTransaction;\r\n difference?: Difference;\r\n}\r\n\r\nexport function AdditionalInfo({ selectedTransaction, difference }: Props) {\r\n const { limitedAccess } = useContext(TransactionContext);\r\n\r\n const { handleDownload: downloadManagerPresentationFile, isDownloading: isManagerPresentationDownloading } =\r\n useDownloadDocument({\r\n downloadRequest: amrPipelineService.downloadManagerPresentationFile,\r\n requestArgs: [selectedTransaction.dealReferenceName, selectedTransaction.referenceName],\r\n fileNameForSave: selectedTransaction.managerPresentationFile?.name || null,\r\n });\r\n\r\n const { handleDownload: downloadDisclosureFile, isDownloading: isDisclosureDownloading } = useDownloadDocument({\r\n downloadRequest: amrPipelineService.downloadDisclosureFile,\r\n requestArgs: [selectedTransaction.dealReferenceName, selectedTransaction.referenceName],\r\n fileNameForSave: selectedTransaction.disclosureFile?.name || null,\r\n });\r\n\r\n const renderDocument = (\r\n downloadFile: () => void,\r\n document?: OriginatingTransactionDocument,\r\n isLoading?: boolean,\r\n ) => {\r\n if (!document) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n return (\r\n \r\n \r\n {document.name}\r\n \r\n );\r\n };\r\n\r\n const renderPlainOrDifference = (\r\n downloadFile: () => void,\r\n document?: OriginatingTransactionDocument,\r\n isLoading?: boolean,\r\n diffDocument?: Difference,\r\n ) => {\r\n // If no difference object, render as usual\r\n if (!diffDocument) {\r\n return renderDocument(downloadFile, document, isLoading);\r\n }\r\n\r\n const { referenceName, name } = diffDocument;\r\n\r\n // If file was deleted, render just icon, file name and difference label\r\n if (referenceName?.type === DifferenceType.Removed) {\r\n return (\r\n
\r\n
\r\n \r\n {name?.previousValue}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n // Render file with download link and difference type (here is only added/updated)\r\n return (\r\n
\r\n {renderDocument(downloadFile, document)}\r\n {referenceName?.type === DifferenceType.Updated ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {renderPlainOrDifference(\r\n downloadDisclosureFile,\r\n selectedTransaction.disclosureFile,\r\n isDisclosureDownloading,\r\n difference?.disclosureFile,\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderMarkdownOrEmpty(selectedTransaction.dealOverview)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderMarkdownOrEmpty(selectedTransaction.managerHighlights)}\r\n \r\n \r\n \r\n {!limitedAccess && (\r\n \r\n \r\n \r\n {renderPlainOrDifference(\r\n downloadManagerPresentationFile,\r\n selectedTransaction.managerPresentationFile,\r\n isManagerPresentationDownloading,\r\n difference?.managerPresentationFile,\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {formatUtils.formatBoolean(selectedTransaction.euCompliance)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderMarkdownOrEmpty(selectedTransaction.euRiskRetentionRequirements)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderMarkdownOrEmpty(selectedTransaction.euDisclosureRequirements)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {formatUtils.formatBoolean(selectedTransaction.esg)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderMarkdownOrEmpty(selectedTransaction.esgComment)}\r\n \r\n \r\n \r\n {/* Temporary Enhanced CLO hiding */}\r\n {/* */}\r\n \r\n \r\n \r\n {formatUtils.formatBoolean(selectedTransaction.staticDeal)}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {selectedTransaction.offeringType || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n {formatUtils.formatBoolean(selectedTransaction.amr)}\r\n \r\n \r\n \r\n );\r\n}\r\n","import { Contact } from \"../../../../../../types/amr-pipeline/models/Contact\";\r\nimport { Table } from \"../../../../../bidding/common/table\";\r\nimport { EmptyPlaceholder } from \"../../../../../common\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { syndicateContactsColumns } from \"../../syndicate-contacts/syndicate-contacts-columns\";\r\n\r\ninterface Props {\r\n contacts: Contact[];\r\n}\r\n\r\nexport function SyndicateContacts({ contacts }: Props) {\r\n return (\r\n \r\n {!!contacts?.length ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import { constants } from \"../../../../../constants\";\r\nimport { Contact } from \"../../../../../types/amr-pipeline/models/Contact\";\r\nimport { IColumnDefinition } from \"../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\nimport IconSVG from '../../../../../styles/svg-icons';\r\nimport { nameUtils } from \"../../../../../utils\";\r\nimport { ContactType } from '../../../../../types/amr-pipeline/enums/ContactType';\r\n\r\nexport const syndicateContactsColumns = () => {\r\n const syndicateContactsColumnsDefinition: IColumnDefinition[] = [\r\n {\r\n columnKey: \"full-name\",\r\n renderColumnHeaderContent: () => \"Full Name\",\r\n renderColumnContent: ({ firstName, lastName }) => {\r\n const fullName = nameUtils.getFullName(firstName, lastName);\r\n\r\n return (\r\n \r\n {fullName}\r\n \r\n );\r\n },\r\n headerClassName: \"data-list-cell-lg data-list-cell-full-name\",\r\n bodyClassName: \"data-list-cell-lg\",\r\n },\r\n {\r\n columnKey: 'distribution-list',\r\n renderColumnHeaderContent: () => '',\r\n renderColumnContent: ({ type }) => {\r\n if (type === ContactType.DistributionList) {\r\n return \r\n }\r\n\r\n if (type === ContactType.HeadOfDesk) {\r\n return \r\n }\r\n },\r\n headerClassName: 'data-list-cell-xxs',\r\n bodyClassName: 'data-list-cell-xxs',\r\n },\r\n {\r\n columnKey: 'title',\r\n renderColumnHeaderContent: () => 'Title',\r\n renderColumnContent: ({ type, title }) => {\r\n if (type === ContactType.DistributionList) {\r\n return (\r\n \r\n Distribution List\r\n \r\n );\r\n }\r\n\r\n if (type === ContactType.HeadOfDesk) {\r\n return (\r\n \r\n Head of Desk\r\n \r\n );\r\n }\r\n\r\n if (title) {\r\n return (\r\n \r\n {title}\r\n \r\n );\r\n }\r\n\r\n return constants.emptyPlaceholder;\r\n },\r\n headerClassName: 'data-list-cell-md data-list-cell-full-name',\r\n bodyClassName: 'data-list-cell-md',\r\n },\r\n {\r\n columnKey: \"email\",\r\n renderColumnHeaderContent: () => \"Email\",\r\n renderColumnContent: ({ email }) =>\r\n email ? (\r\n \r\n {email}\r\n \r\n ) : (\r\n constants.emptyPlaceholder\r\n ),\r\n headerClassName: \"data-list-cell-xl-xxl\",\r\n bodyClassName: \"data-list-cell-xl-xxl\",\r\n },\r\n {\r\n columnKey: \"office\",\r\n renderColumnHeaderContent: () => \"Office\",\r\n renderColumnContent: ({ officePhoneNumber }) =>\r\n officePhoneNumber ? (\r\n \r\n {officePhoneNumber}\r\n \r\n ) : (\r\n constants.emptyPlaceholder\r\n ),\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: \"mobile\",\r\n renderColumnHeaderContent: () => \"Mobile\",\r\n renderColumnContent: ({ mobilePhoneNumber }) =>\r\n mobilePhoneNumber ? (\r\n \r\n {mobilePhoneNumber}\r\n \r\n ) : (\r\n constants.emptyPlaceholder\r\n ),\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n ];\r\n return syndicateContactsColumnsDefinition.map((c) => {\r\n return new ColumnBuilder(c);\r\n });\r\n};\r\n","import { useContext } from \"react\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { OriginatingTransaction } from \"../../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { OriginatingTransactionDiff } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { Difference, DifferenceType } from '../../../../../../utils/differ/types';\r\nimport { FileIcon } from \"../../../../../controls\";\r\nimport DownloadDocument from \"../../../../common/documents/DownloadDocument\";\r\nimport { FormField } from \"../../../../common/FormField\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport TransactionContext from '../../../../transactionContext';\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { DifferenceLabel, FieldDifferenceLabel } from '../../DifferenceLabel';\r\nimport IconSVG from '../../../../../../styles/svg-icons';\r\nimport { IntexLink } from \"../../../../../common/IntexLink\";\r\nimport { OnHoverTooltip } from '../../../../../common';\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\nimport { ValueBlocker } from '../../../../../access/ValueBlocker';\r\nimport { hasArrangerAccess } from '../../../../../../utils/amr-pipeline.utils';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { useDownloadDocument } from \"../../../../../../effects/useDownloadDocument\";\r\nimport { amrPipelineService } from \"../../../../../../services/amr-pipeline.service\";\r\n\r\ninterface Props {\r\n selectedTransaction: OriginatingTransaction;\r\n difference?: Difference;\r\n}\r\n\r\nexport function Intex({ selectedTransaction, difference }: Props) {\r\n const { limitedAccess } = useContext(TransactionContext);\r\n\r\n const { handleDownload, isDownloading } =\r\n useDownloadDocument({\r\n downloadRequest: amrPipelineService.downloadIntexFile,\r\n requestArgs: [selectedTransaction.dealReferenceName, selectedTransaction.referenceName],\r\n fileNameForSave: selectedTransaction.intexFile?.name || null,\r\n });\r\n\r\n if (limitedAccess) {\r\n return null;\r\n }\r\n\r\n const renderDocument = (transaction: OriginatingTransaction) => {\r\n if (!transaction.intexFile) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n return (\r\n \r\n \r\n {transaction.intexFile.name}\r\n \r\n );\r\n };\r\n\r\n const renderPlainOrDifference = () => {\r\n // If no difference object, render as usual\r\n if (!difference) {\r\n return renderDocument(selectedTransaction);\r\n }\r\n\r\n const { intexFile } = difference;\r\n\r\n // If file was deleted, render just icon, file name and difference label\r\n if (intexFile?.referenceName?.type === DifferenceType.Removed) {\r\n const { name } = intexFile;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {name?.previousValue}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n // Render file with download link and difference type (here is only added/updated)\r\n return (\r\n
\r\n {renderDocument(selectedTransaction)}\r\n {intexFile?.referenceName?.type === DifferenceType.Updated\r\n ? \r\n : \r\n }\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {difference ? (\r\n \r\n {selectedTransaction.intexName || constants.emptyPlaceholder}\r\n \r\n ) : (\r\n
\r\n
\r\n \r\n {selectedTransaction.intexName || constants.emptyPlaceholder}\r\n \r\n
\r\n {selectedTransaction.intexName && (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n {selectedTransaction.intexPassword || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n \r\n {renderPlainOrDifference()}\r\n \r\n \r\n \r\n );\r\n}\r\n","import { controlPanelActions, securityDetailsActions } from '../../../../../../../actions';\r\nimport { useAppSelector } from '../../../../../../../effects/useAppSelector';\r\nimport { BwicPositionBase } from '../../../../../../../types/bwic/BwicPositionBase';\r\nimport { RightSideTabPanel } from '../../../../../../controls/RightSideTabPanel';\r\nimport { SecurityDetails, SecurityDetailsPanel } from '../../../../../../security-details';\r\nimport SecurityDetailsOptions from '../../../../../../security-details/SecurityDetailsOptions';\r\nimport { BWICLog } from '../../../../../../security-details/bwic-log/BWICLog';\r\nimport { bwicLogActions } from '../../../../../../../actions/bwic-log.actions';\r\nimport { useAppDispatch } from '../../../../../../../effects/useAppDispatch';\r\nimport { DealSecurity } from '../../../../../../../types/security/DealSecurityStatistics';\r\n\r\ninterface Props {\r\n security?: DealSecurity | null\r\n onClose: () => void\r\n}\r\nexport const PreviousTransactionControlPanel = ({ security, onClose }: Props) => {\r\n const dispatch = useAppDispatch();\r\n\r\n const securityDetails = useAppSelector(s => s.securityDetails);\r\n const bwicLog = useAppSelector(s => s.bwicLog);\r\n\r\n if (!security) return null;\r\n\r\n const currentBwic = security?.currentBwic;\r\n\r\n if (!currentBwic) return ;\r\n\r\n const tabs = [{\r\n title: 'Security',\r\n active: !!securityDetails.security,\r\n renderContent: () => ,\r\n onActivate: () => { security && dispatch(securityDetailsActions.securityDetailsInitRequest(security as BwicPositionBase, true)) },\r\n onDeactivate: () => { dispatch(securityDetailsActions.securityDetailsReset()) }\r\n }, {\r\n title: 'BWIC Log',\r\n active: !!bwicLog.security,\r\n renderContent: () => ,\r\n onActivate: () => { security && dispatch(bwicLogActions.bwicLogInitRequest(security as BwicPositionBase)) },\r\n onDeactivate: () => dispatch(bwicLogActions.bwicLogReset())\r\n }\r\n ];\r\n\r\n return (\r\n \r\n <>{security?.ticker}\r\n {security && (\r\n \r\n )}\r\n \r\n }\r\n items={tabs}\r\n onClose={() => {\r\n dispatch(controlPanelActions.hide());\r\n onClose()\r\n }}\r\n />\r\n )\r\n};\r\n","import moment from \"moment\";\r\nimport { useState } from \"react\";\r\nimport { constants } from \"../../../../../../../constants\";\r\nimport { usePreviousTransaction } from \"../../../../../../../effects/amr/usePreviousTransaction\";\r\nimport { TransactionType } from \"../../../../../../../types/amr-pipeline/enums/TransactionType\";\r\nimport { OriginatingTransaction } from \"../../../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { OriginatingTransactionClass } from \"../../../../../../../types/amr-pipeline/models/OriginatingTransactionClass\";\r\nimport { SubscriptionFeature } from \"../../../../../../../types/billing/SubscriptionFeature\";\r\nimport { DealSecurity, DealSecurityStatistics } from \"../../../../../../../types/security/DealSecurityStatistics\";\r\nimport { user } from \"../../../../../../../user\";\r\nimport { isRequestSuccess } from \"../../../../../../../utils\";\r\nimport { SubscribeLink } from \"../../../../../../access/BlockedFeatureText\";\r\nimport { RequiredFeature } from \"../../../../../../access/RequiredFeature\";\r\nimport { Table } from \"../../../../../../bidding/common/table\";\r\nimport { ColumnBuilder } from \"../../../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { IColumnDefinition } from \"../../../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { useDealSecurityStatistics } from \"../../../../../../clo-managers/tabs/deals/hooks\";\r\nimport { EmptyPlaceholder, Preloader, TickerButton } from \"../../../../../../common\";\r\nimport { currentBwicColumn, inventoryColumn, lastTradedColumn, lastTradedColorColumn, lastTradedMineColumn, myBwicColumn } from \"../../../../../aggregated/arranger-pipeline/arranger-pipeline.columns\";\r\nimport { SectionContent } from \"../../../../../common/section/SectionContent\";\r\nimport { PreviousTransactionControlPanel } from \"./PreviousTransactionControlPanel\";\r\nimport { convertToDealSecurityTableItem, DealSecurityTableItem } from \"../../../../../../clo-managers/tabs/deals/columns\";\r\nimport { FormField } from \"../../../../../common/FormField\";\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction\r\n}\r\n\r\nexport function PreviousTransaction({ transaction }: Props) {\r\n const hasAccess = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n const { previousTransaction } = usePreviousTransaction(transaction.dealReferenceName, transaction.referenceName, !hasAccess);\r\n\r\n if ((transaction.type !== TransactionType.refi && transaction.type !== TransactionType.reset) ||\r\n !transaction.dealTicker ||\r\n (previousTransaction == null && hasAccess)\r\n ) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n to see the Capital Structure — Previous Transaction}\r\n >\r\n {\r\n user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess) &&\r\n previousTransaction != null &&\r\n <>\r\n {previousTransaction.closingDate != null && }\r\n \r\n \r\n \r\n }\r\n \r\n \r\n\r\n );\r\n}\r\n\r\ninterface ClosingDateProps {\r\n date: Date\r\n}\r\nfunction ClosingDate({ date }: ClosingDateProps) {\r\n return (\r\n \r\n {moment(date).format(constants.dateFormatDoubleDay)}\r\n \r\n )\r\n}\r\n\r\ninterface PreviousTransactionTableDataItem extends OriginatingTransactionClass {\r\n security?: DealSecurityTableItem\r\n}\r\n\r\nconst convertToTableDataItem = (\r\n transaction: OriginatingTransaction,\r\n _class: OriginatingTransactionClass,\r\n statistics?: DealSecurityStatistics) => {\r\n const security = statistics?.classes.find(c => {\r\n const tickers = [\r\n _class.tranche?.ticker144A,\r\n _class.tranche?.tickerAccdInvCertif,\r\n _class.tranche?.tickerRegS\r\n ];\r\n\r\n return tickers.some(t => c.ticker.localeCompare(t ?? '', undefined, { sensitivity: 'accent' }) === 0)\r\n });\r\n\r\n return {\r\n ..._class,\r\n security: security ? convertToDealSecurityTableItem(security, transaction) : undefined\r\n };\r\n}\r\n\r\ninterface PreviousTransactionTableProps extends Props {\r\n previousTransaction: OriginatingTransaction\r\n}\r\nfunction PreviousTransactionTable({ transaction, previousTransaction }: PreviousTransactionTableProps) {\r\n const { requestState, statistics } = useDealSecurityStatistics([transaction.dealTicker!]);\r\n\r\n const [selectedSecurity, setSelectedSecurity] = useState(null);\r\n\r\n const columns: IColumnDefinition[] = [{\r\n columnKey: \"className\",\r\n renderColumnHeaderContent: () => \"Class\",\r\n renderColumnContent: _class => _class.name,\r\n }, {\r\n columnKey: \"ticker\",\r\n renderColumnHeaderContent: () => \"Ticker\",\r\n renderColumnContent: _class => _class.security\r\n ? setSelectedSecurity(security)}\r\n /> : (_class.tranche?.ticker144A || constants.emptyPlaceholder),\r\n className: \"data-list-cell-lg\",\r\n },\r\n myBwicColumn,\r\n currentBwicColumn,\r\n inventoryColumn,\r\n lastTradedMineColumn,\r\n lastTradedColumn,\r\n lastTradedColorColumn\r\n ];\r\n\r\n return (\r\n \r\n {previousTransaction?.classes.length ?\r\n
\r\n new ColumnBuilder(c))}\r\n dataItems={previousTransaction.classes.map(c => convertToTableDataItem(transaction, c, statistics[0]))}\r\n createSecurityCustomClassName={(c: PreviousTransactionTableDataItem) => ({\r\n highlighted: c.security && selectedSecurity && c.security.ticker === selectedSecurity?.ticker\r\n })}\r\n className=\"data-list-striped\"\r\n />\r\n setSelectedSecurity(null)} />\r\n
\r\n : \r\n }\r\n
\r\n );\r\n}","import { General } from \"./sections/General\";\r\nimport { Dates } from \"./sections/Dates\";\r\nimport { AdditionalInfo } from \"./sections/AdditionalInfo\";\r\nimport { SyndicateContacts } from './sections/SyndicateContacts';\r\nimport { Intex } from './sections/Intex';\r\nimport { TabBody } from '../../../common/tabs/TabBody';\r\nimport { withTabTracking } from '../withTabTracking';\r\nimport { TransactionTabProps } from '../types';\r\nimport { TransactionAccessType } from '../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { ShowFor } from \"../../../../access\";\r\nimport { roles } from \"../../../../../constants\";\r\nimport { PreviousTransaction } from \"./sections/previous-transaction/PreviousTransaction\";\r\nimport { useEffect, useRef } from \"react\";\r\n\r\nconst DealOverviewTab = ({ transaction, difference }: TransactionTabProps) => {\r\n const wrapperRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (wrapperRef.current) {\r\n wrapperRef?.current.scrollIntoView();\r\n }\r\n }, [transaction.referenceName, difference?.version?.currentValue]);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!difference && }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport const DealOverview = withTabTracking(TransactionAccessType.Overview)(DealOverviewTab);\r\n","import React from \"react\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { OriginatingTransaction } from \"../../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { OriginatingTransactionDiff } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { formatUtils, moneyUtils } from \"../../../../../../utils\";\r\nimport { Difference } from '../../../../../../utils/differ/types';\r\nimport { FormField } from \"../../../../common/FormField\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\n\r\ninterface Props {\r\n selectedTransaction: OriginatingTransaction;\r\n difference?: Difference;\r\n}\r\n\r\nexport function AdministrativeFee({ selectedTransaction, difference }: Props) {\r\n return (\r\n \r\n \r\n \r\n \r\n {formatUtils.formatDecimal(selectedTransaction.adminExpenseCapPercentage) || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {moneyUtils.money(selectedTransaction.adminExpenseCap) || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {formatUtils.formatDecimal(selectedTransaction.trusteeFee) || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { dealStructureUtils } from \"../../../../../../utils/deal-structure.utils\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { formatUtils, moneyUtils } from \"../../../../../../utils\";\r\nimport { OriginatingTransaction } from \"../../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { FormField } from \"../../../../common/FormField\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { Difference } from '../../../../../../utils/differ/types';\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { OriginatingTransactionDiff } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\n\r\nconst formatToMoney = (val: number) => moneyUtils.money(val, true);\r\nconst formatToDecimal = (val: number) => formatUtils.formatDecimal(val);\r\n\r\ninterface Props {\r\n selectedTransaction: OriginatingTransaction;\r\n difference?: Difference;\r\n}\r\n\r\nexport function CollateralAssumptions({ selectedTransaction, difference }: Props) {\r\n return (\r\n \r\n \r\n \r\n \r\n {dealStructureUtils.calcTargetPar(selectedTransaction)\r\n ? formatToMoney(dealStructureUtils.calcTargetPar(selectedTransaction))\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dealStructureUtils.calcBidPrice(selectedTransaction)\r\n ? formatToMoney(dealStructureUtils.calcBidPrice(selectedTransaction))\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dealStructureUtils.calcAskPrice(selectedTransaction)\r\n ? formatToMoney(dealStructureUtils.calcAskPrice(selectedTransaction))\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {formatToDecimal(selectedTransaction.was) || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { collateralQualityTestValues } from \"../../../../../../constants/collateral-quality-test\";\r\nimport { CollateralQualityTestValue } from \"../../../../../../types/amr-pipeline/enums/CollateralQualityTestValue\";\r\nimport { CollateralQualityTest } from \"../../../../../../types/amr-pipeline/models/CollateralQualityTest\";\r\nimport { formatUtils, moneyUtils } from \"../../../../../../utils\";\r\nimport { Table } from \"../../../../../bidding/common/table\";\r\nimport { ColumnBuilder } from \"../../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { IColumnDefinition } from \"../../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { EmptyPlaceholder } from \"../../../../../common/EmptyPlaceholder\";\r\nimport { Difference } from '../../../../../../utils/differ/types';\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { DifferenceListProps, withDeletedItems } from '../../withDeletedItems';\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\nimport { OriginatingTransaction } from '../../../../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { isNil } from \"lodash\";\r\n\r\ninterface Props extends DifferenceListProps {\r\n selectedTransaction: OriginatingTransaction;\r\n}\r\n\r\ninterface ColumnContext {\r\n difference?: Difference;\r\n transaction: OriginatingTransaction;\r\n}\r\n\r\nconst valueFormatter = (value?: CollateralQualityTestValue) => value ? collateralQualityTestValues[value] : undefined;\r\n\r\nconst covenantAndTargetFormatter = (collateralQualityTest: CollateralQualityTest) => (value?: number) => {\r\n if (isNil(value)) {\r\n return constants.emptyPlaceholder\r\n }\r\n\r\n return collateralQualityTest.value === CollateralQualityTestValue.AssetPar ||\r\n collateralQualityTest.value === CollateralQualityTestValue.MoodysWARF\r\n ? moneyUtils.money(value, true)\r\n : formatUtils.formatDecimal(value);\r\n};\r\n\r\nconst columns: IColumnDefinition[] = [\r\n {\r\n columnKey: \"value\",\r\n renderColumnHeaderContent: () => \"Value\",\r\n renderColumnContent: (collateralQualityTest: CollateralQualityTest, { difference }: ColumnContext) =>\r\n \r\n {valueFormatter(collateralQualityTest.value)}\r\n ,\r\n headerClassName: \"data-list-cell-xl\",\r\n bodyClassName: \"data-list-cell-xl\",\r\n },\r\n {\r\n columnKey: 'covenant',\r\n renderColumnHeaderContent: () => 'Covenant',\r\n renderColumnContent: (collateralQualityTest: CollateralQualityTest, { difference, transaction }: ColumnContext) => (\r\n \r\n \r\n {covenantAndTargetFormatter(collateralQualityTest)(collateralQualityTest.covenant) ??\r\n constants.emptyPlaceholder}\r\n \r\n \r\n ),\r\n headerClassName: 'data-list-cell-lg text-right data-list-cell-change',\r\n bodyClassName: 'data-list-cell-lg text-right data-list-cell-change',\r\n },\r\n {\r\n columnKey: \"target\",\r\n renderColumnHeaderContent: () => \"Target\",\r\n renderColumnContent: (collateralQualityTest: CollateralQualityTest, { difference, transaction }: ColumnContext) =>\r\n \r\n \r\n {covenantAndTargetFormatter(collateralQualityTest)(collateralQualityTest.target)}\r\n \r\n ,\r\n headerClassName: \"data-list-cell-lg text-right data-list-cell-change\",\r\n bodyClassName: \"data-list-cell-lg text-right overflow-visible data-list-cell-change\",\r\n },\r\n];\r\n\r\nconst collateralQualityTestsColumns = columns.map((c) => new ColumnBuilder(c));\r\n\r\nfunction Component({ selectedTransaction, items, difference }: Props) {\r\n return (\r\n \r\n {\r\n !!items.length\r\n ? {\r\n const arrayItelDifference = difference?.find(({ derivedValue }) => {\r\n return derivedValue?.value === item.value;\r\n })\r\n\r\n return { difference: arrayItelDifference?.difference, transaction: selectedTransaction };\r\n }}\r\n columns={collateralQualityTestsColumns}\r\n />\r\n : \r\n }\r\n \r\n );\r\n}\r\n\r\nexport const CollateralQualityTests = withDeletedItems(Component);\r\n","import React from \"react\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { OriginatingTransaction } from \"../../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { FormField } from \"../../../../common/FormField\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { formatUtils } from \"../../../../../../utils\";\r\nimport { Difference } from '../../../../../../utils/differ/types';\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { OriginatingTransactionDiff } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\n\r\ninterface Props {\r\n selectedTransaction: OriginatingTransaction;\r\n difference?: Difference;\r\n}\r\n\r\nexport function ManagementFee({ selectedTransaction, difference }: Props) {\r\n return (\r\n \r\n \r\n \r\n \r\n {formatUtils.formatDecimal(selectedTransaction.seniorManagementFee) || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {formatUtils.formatDecimal(selectedTransaction.subManagementFee) || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {formatUtils.formatDecimal(selectedTransaction.incentiveManagementFee) || constants.emptyPlaceholder}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { OriginatingTransaction } from \"../../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { OriginatingTransactionDiff } from '../../../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { moneyUtils } from \"../../../../../../utils\";\r\nimport { Difference } from '../../../../../../utils/differ/types';\r\nimport { FormField } from \"../../../../common/FormField\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { DifferenceField } from '../../DifferenceField';\r\nimport { ImSubscriptionValue } from '../../../../subscription/ImSubscriptionValue';\r\n\r\ninterface Props {\r\n selectedTransaction: OriginatingTransaction;\r\n difference?: Difference;\r\n}\r\n\r\nexport function SourceAndUses({ selectedTransaction, difference }: Props) {\r\n return (\r\n \r\n \r\n \r\n \r\n {selectedTransaction.ratedNotes\r\n ? moneyUtils.money(selectedTransaction.ratedNotes)\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedTransaction.subNotes\r\n ? moneyUtils.money(selectedTransaction.subNotes)\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedTransaction.purchaseAssets\r\n ? moneyUtils.money(selectedTransaction.purchaseAssets)\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedTransaction.upfrontFeesAndExpenses\r\n ? moneyUtils.money(selectedTransaction.upfrontFeesAndExpenses)\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedTransaction.interestReserve\r\n ? moneyUtils.money(selectedTransaction.interestReserve)\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import { useContext } from 'react';\r\nimport { TransactionAccessType } from '../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { SectionContent } from \"../../../common/section/SectionContent\";\r\nimport { TabBody } from \"../../../common/tabs/TabBody\";\r\nimport TransactionContext from '../../../transactionContext';\r\nimport { CapitalStructure } from \"../capital-structure/CapitalStructure\";\r\nimport { TransactionTabProps } from '../types';\r\nimport { withTabTracking } from '../withTabTracking';\r\nimport { AdministrativeFee } from \"./sections/AdministrativeFee\";\r\nimport { CollateralAssumptions } from \"./sections/CollateralAssumptions\";\r\nimport { CollateralQualityTests } from \"./sections/CollateralQualityTests\";\r\nimport { ManagementFee } from \"./sections/ManagmentFee\";\r\nimport { SourceAndUses } from \"./sections/SourceAndUses\";\r\n\r\nconst DealStructureTab = ({ transaction, difference }: TransactionTabProps) => {\r\n const { limitedAccess } = useContext(TransactionContext);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {!limitedAccess && (\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
\r\n );\r\n};\r\n\r\nexport const DealStructure = withTabTracking(TransactionAccessType.Structure)(DealStructureTab);\r\n","import moment from \"moment\";\r\nimport { IColumnDefinition } from \"../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { constants, SORTING_TYPE } from \"../../../../../constants\";\r\nimport { formatUtils, moneyUtils } from \"../../../../../utils\";\r\nimport { OriginatingTransactionPortfolioItem } from \"../../../../../types/amr-pipeline/models/OriginatingTransactionPortfolioItem\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\n\r\nexport const targetPar = {\r\n columnKey: \"targetPar\",\r\n renderColumnHeaderContent: () => \"Target Par\",\r\n renderColumnContent: (transactionPortfolio: OriginatingTransactionPortfolioItem) =>\r\n transactionPortfolio.targetPar\r\n ? moneyUtils.money(transactionPortfolio.targetPar, true)\r\n : constants.emptyPlaceholder,\r\n sortingField: \"targetPar\",\r\n headerClassName: \"data-list-cell-md text-right\",\r\n bodyClassName: \"data-list-cell-md text-right\",\r\n sortingType: SORTING_TYPE.number\r\n};\r\n\r\nexport const rampedPar = {\r\n columnKey: \"rampedPar\",\r\n renderColumnHeaderContent: () => \"Ramped Par\",\r\n renderColumnContent: (\r\n transactionPortfolio: OriginatingTransactionPortfolioItem\r\n ) =>\r\n transactionPortfolio.rampedPar\r\n ? moneyUtils.money(transactionPortfolio.rampedPar, true)\r\n : constants.emptyPlaceholder,\r\n sortingField: \"rampedPar\",\r\n headerClassName: \"data-list-cell-md text-right\",\r\n bodyClassName: \"data-list-cell-md text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n};\r\n\r\nconst targetPortfolioColumnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: \"issuer\",\r\n renderColumnHeaderContent: () => \"Issuer\",\r\n renderColumnContent: (transactionPortfolio) => (\r\n <>\r\n { transactionPortfolio.issuer ?\r\n \r\n {transactionPortfolio.issuer}\r\n \r\n : constants.emptyPlaceholder\r\n }\r\n \r\n ),\r\n sortingField: \"issuer\",\r\n headerClassName: \"data-list-cell-lg\",\r\n bodyClassName: \"data-list-cell-lg\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"securityType\",\r\n renderColumnHeaderContent: () => \"Security Type\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.securityType || constants.emptyPlaceholder,\r\n sortingField: \"securityType\",\r\n headerClassName: \"data-list-cell-md\",\r\n bodyClassName: \"data-list-cell-md\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"loanXId\",\r\n renderColumnHeaderContent: () => \"LoanX ID\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.loanXId || constants.emptyPlaceholder,\r\n sortingField: \"loanXId\",\r\n headerClassName: \"data-list-cell-md\",\r\n bodyClassName: \"data-list-cell-md\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n targetPar,\r\n rampedPar,\r\n {\r\n columnKey: \"purchasePrice\",\r\n renderColumnHeaderContent: () => \"Purchase Price\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.purchasePrice\r\n ? moneyUtils.money(transactionPortfolio.purchasePrice, true)\r\n : constants.emptyPlaceholder,\r\n sortingField: \"purchasePrice\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"facility\",\r\n renderColumnHeaderContent: () => \"Facility\",\r\n renderColumnContent: (transactionPortfolio) => (\r\n <>\r\n {transactionPortfolio.facility ?\r\n \r\n {transactionPortfolio.facility}\r\n \r\n : constants.emptyPlaceholder\r\n }\r\n \r\n ), \r\n sortingField: \"facility\",\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"rateType\",\r\n renderColumnHeaderContent: () => \"Rate Type\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.rateType || constants.emptyPlaceholder,\r\n sortingField: \"rateType\",\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"spread\",\r\n renderColumnHeaderContent: () => \"Margin\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.margin\r\n ? formatUtils.formatDecimal(transactionPortfolio.margin)\r\n : constants.emptyPlaceholder,\r\n sortingField: \"margin\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"liborFloor\",\r\n renderColumnHeaderContent: () => \"LIBOR Floor\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.liborFloor\r\n ? formatUtils.formatDecimal(transactionPortfolio.liborFloor)\r\n : constants.emptyPlaceholder,\r\n sortingField: \"liborFloor\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"referenceIndex\",\r\n renderColumnHeaderContent: () => \"Reference Index\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.referenceIndex\r\n ? transactionPortfolio.referenceIndex\r\n : constants.emptyPlaceholder,\r\n sortingField: \"referenceIndex\",\r\n headerClassName: \"data-list-cell-md\",\r\n bodyClassName: \"data-list-cell-md\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"maturity\",\r\n renderColumnHeaderContent: () => \"Maturity\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.maturity\r\n ? moment(transactionPortfolio.maturity).format(constants.dateShortFormat)\r\n : constants.emptyPlaceholder,\r\n sortingField: \"maturity\",\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"country\",\r\n renderColumnHeaderContent: () => \"Country\",\r\n renderColumnContent: ({ country }) =>\r\n country ?? constants.emptyPlaceholder,\r\n sortingField: \"country\",\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: \"trancheSize\",\r\n renderColumnHeaderContent: () => \"Tranche Size\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.trancheSize\r\n ? moneyUtils.money(transactionPortfolio.trancheSize, true)\r\n : constants.emptyPlaceholder,\r\n sortingField: \"trancheSize\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"moodysIndustry\",\r\n renderColumnHeaderContent: () => \"Moody`s Industry\",\r\n renderColumnContent: (transactionPortfolio) => (\r\n <>\r\n {\r\n transactionPortfolio.moodysIndustry ?\r\n \r\n {transactionPortfolio.moodysIndustry}\r\n \r\n : constants.emptyPlaceholder\r\n }\r\n \r\n ),\r\n sortingField: \"moodysIndustry\",\r\n headerClassName: \"data-list-cell-lg\",\r\n bodyClassName: \"data-list-cell-lg\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"snPIndustry\",\r\n renderColumnHeaderContent: () => \"S&P Industry\",\r\n renderColumnContent: (transactionPortfolio) => (\r\n <>\r\n {\r\n transactionPortfolio.snPIndustry ?\r\n \r\n {transactionPortfolio.snPIndustry}\r\n \r\n : constants.emptyPlaceholder\r\n }\r\n \r\n ),\r\n sortingField: \"snPIndustry\",\r\n headerClassName: \"data-list-cell-lg\",\r\n bodyClassName: \"data-list-cell-lg\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"moodysRecoveryRate\",\r\n renderColumnHeaderContent: () => \"Moody's Recovery Rate\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.moodysRecoveryRate\r\n ? transactionPortfolio.moodysRecoveryRate\r\n : constants.emptyPlaceholder,\r\n sortingField: \"moodysRecoveryRate\",\r\n headerClassName: \"data-list-cell-lg-02 text-right\",\r\n bodyClassName: \"data-list-cell-lg-02 text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"snPRecoveryRate\",\r\n renderColumnHeaderContent: () => \"S&P Recovery Rate\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.snPRecoveryRate\r\n ? transactionPortfolio.snPRecoveryRate\r\n : constants.emptyPlaceholder,\r\n sortingField: \"snPRecoveryRate\",\r\n headerClassName: \"data-list-cell-lg text-right\",\r\n bodyClassName: \"data-list-cell-lg text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"covLite\",\r\n renderColumnHeaderContent: () => \"Cov-Lite\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n formatUtils.formatBoolean(transactionPortfolio.covLite),\r\n sortingField: \"covLite\",\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm text-capitalize\",\r\n },\r\n {\r\n columnKey: \"wal\",\r\n renderColumnHeaderContent: () => \"WAL\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.wal\r\n ? formatUtils.formatDecimal(transactionPortfolio.wal)\r\n : constants.emptyPlaceholder,\r\n sortingField: \"wal\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"moodysCreditFacilityRating\",\r\n renderColumnHeaderContent: () => \"Moody's - Credit Facility Rating\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.moodysCreditFacilityRating ||\r\n constants.emptyPlaceholder,\r\n sortingField: \"moodysCreditFacilityRating\",\r\n headerClassName: \"data-list-cell-xl\",\r\n bodyClassName: \"data-list-cell-xl\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"snPCreditFacilityRating\",\r\n renderColumnHeaderContent: () => \"S&P - Credit Facility Rating\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.snPCreditFacilityRating ||\r\n constants.emptyPlaceholder,\r\n sortingField: \"snPCreditFacilityRating\",\r\n headerClassName: \"data-list-cell-xl\",\r\n bodyClassName: \"data-list-cell-xl\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"fitchCreditFacilityRating\",\r\n renderColumnHeaderContent: () => \"Fitch - Credit Facility Rating\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.fitchCreditFacilityRating ||\r\n constants.emptyPlaceholder,\r\n sortingField: \"fitchCreditFacilityRating\",\r\n headerClassName: \"data-list-cell-xl\",\r\n bodyClassName: \"data-list-cell-xl\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"moodysTrancheRating\",\r\n renderColumnHeaderContent: () => \"Moody's - Tranche Rating\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.moodysTrancheRating ||\r\n constants.emptyPlaceholder,\r\n sortingField: \"moodysTrancheRating\",\r\n headerClassName: \"data-list-cell-lg-02\",\r\n bodyClassName: \"data-list-cell-lg-02\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"snPTrancheRating\",\r\n renderColumnHeaderContent: () => \"S&P - Tranche Rating\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.snPTrancheRating ||\r\n constants.emptyPlaceholder,\r\n sortingField: \"snPTrancheRating\",\r\n headerClassName: \"data-list-cell-lg\",\r\n bodyClassName: \"data-list-cell-lg\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"fitchTrancheRating\",\r\n renderColumnHeaderContent: () => \"Fitch - Tranche Rating\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.fitchTrancheRating ||\r\n constants.emptyPlaceholder,\r\n sortingField: \"fitchTrancheRating\",\r\n headerClassName: \"data-list-cell-lg\",\r\n bodyClassName: \"data-list-cell-lg\",\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: \"moodysWARF\",\r\n renderColumnHeaderContent: () => \"Moody's DPR (WARF)\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n moneyUtils.money(transactionPortfolio.moodysWARF, true) || constants.emptyPlaceholder,\r\n sortingField: \"moodysWARF\",\r\n headerClassName: \"data-list-cell-lg text-right\",\r\n bodyClassName: \"data-list-cell-lg text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"modeledPrice\",\r\n renderColumnHeaderContent: () => \"Modeled Price\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n formatUtils.formatDecimal(transactionPortfolio.modeledPrice, 4)\r\n || constants.emptyPlaceholder,\r\n sortingField: \"modeledPrice\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"indicativeBid\",\r\n renderColumnHeaderContent: () => \"Indicative Bid\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n formatUtils.formatDecimal(transactionPortfolio.indicativeBid, 4)\r\n || constants.emptyPlaceholder,\r\n sortingField: \"indicativeBid\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"indicativeAsk\",\r\n renderColumnHeaderContent: () => \"Indicative Ask\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n formatUtils.formatDecimal(transactionPortfolio.indicativeAsk, 4)\r\n || constants.emptyPlaceholder,\r\n sortingField: \"indicativeAsk\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: \"depth\",\r\n renderColumnHeaderContent: () => \"Depth\",\r\n renderColumnContent: (transactionPortfolio) =>\r\n transactionPortfolio.depth\r\n ? transactionPortfolio.depth\r\n : constants.emptyPlaceholder,\r\n sortingField: \"depth\",\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n];\r\n\r\nexport const targetPortfolioColumns = () => targetPortfolioColumnDefinitions.map((c) => new ColumnBuilder(c));\r\n","import React from \"react\";\r\nimport { constants } from \"../../../../../constants\";\r\nimport { OriginatingTransactionPortfolioItem } from \"../../../../../types/amr-pipeline/models/OriginatingTransactionPortfolioItem\";\r\nimport { moneyUtils } from \"../../../../../utils\";\r\nimport { SecurityListRow, SecurityListColumn } from \"../../../../bidding/common\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { rampedPar, targetPar } from \"./portfolio-columns\";\r\n\r\n\r\ninterface Props {\r\n portfolio: OriginatingTransactionPortfolioItem[];\r\n columns: ColumnBuilder[];\r\n}\r\n\r\nexport function TotalRow({ portfolio, columns }: Props) {\r\n let totalTargetPar: number = 0;\r\n let totalRampedPar: number = 0;\r\n portfolio.map((c) => {\r\n totalTargetPar = totalTargetPar + (c.targetPar ? c.targetPar : 0);\r\n totalRampedPar = totalRampedPar + (c.rampedPar ? c.rampedPar : 0);\r\n\r\n return c;\r\n });\r\n\r\n return (\r\n \r\n {columns.map((c, index: number) => {\r\n if (index === 0) {\r\n return (\r\n \r\n Total:\r\n \r\n );\r\n } else if (c.column.columnKey === targetPar.columnKey) {\r\n return (\r\n \r\n {\r\n totalTargetPar\r\n ? moneyUtils.money(totalTargetPar, true)\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n );\r\n } else if (c.column.columnKey === rampedPar.columnKey) {\r\n return (\r\n \r\n {\r\n totalRampedPar\r\n ? moneyUtils.money(totalRampedPar, true)\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {\" \"}\r\n \r\n );\r\n }\r\n })}\r\n \r\n );\r\n}\r\n","import { amrPipelineDetailedActions } from \"../../../../../actions\";\r\nimport IconSVG from \"../../../../../styles/svg-icons\";\r\nimport { OriginatingTransactionPortfolioItem } from \"../../../../../types/amr-pipeline/models/OriginatingTransactionPortfolioItem\";\r\nimport { TransactionAccessType } from '../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { Table } from \"../../../../bidding/common/table\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { Preloader, EmptyPlaceholder } from \"../../../../common\";\r\nimport { SectionContent } from \"../../../common/section/SectionContent\";\r\nimport { TabBody } from \"../../../common/tabs/TabBody\";\r\nimport { TableDifferenceLabel } from '../DifferenceLabel';\r\nimport { TransactionTabProps } from '../types';\r\nimport { withTabTracking } from '../withTabTracking';\r\nimport { targetPortfolioColumns } from \"./portfolio-columns\";\r\nimport { TotalRow } from \"./TotalRow\";\r\nimport { RequiredFeature } from '../../../../access/RequiredFeature';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { hasArrangerAccess } from '../../../../../utils/amr-pipeline.utils';\r\nimport { BlockedFeatureContent, SubscribeLink } from \"../../../../../components/access/BlockedFeatureText\";\r\nimport { useAppDispatch } from \"../../../../../effects/useAppDispatch\";\r\n\r\ninterface TargetPortfolioTabProps extends TransactionTabProps {\r\n isLoading: boolean;\r\n}\r\n\r\nconst TargetPortfolioTab = ({ transaction, isLoading, difference }: TargetPortfolioTabProps) => {\r\n const dispatch = useAppDispatch();\r\n\r\n return (\r\n \r\n (\r\n to see Target Portfolio.}\r\n />\r\n )}\r\n >\r\n {isLoading && }\r\n \r\n \r\n {\r\n (transaction.portfolio?.length && !difference)\r\n ? {\r\n dispatch(amrPipelineDetailedActions.exportPortfolio(transaction.dealReferenceName, transaction.referenceName, transaction.dealLegalName))\r\n }}\r\n className=\"btn-link flex-item-right\"\r\n >\r\n \r\n Export\r\n \r\n : null\r\n }\r\n \r\n }\r\n >\r\n {transaction.portfolio?.length ?\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}\r\n\r\nexport const TargetPortfolio = withTabTracking(TransactionAccessType.TargetPortfolio)(TargetPortfolioTab);\r\n","import { IColumnDefinition } from '../../../../bidding/common/table/types/ColumnDefinition';\r\nimport { ColumnBuilder } from '../../../../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { constants, SORTING_TYPE } from '../../../../../constants';\r\nimport { IOI } from '../../../../../types/amr-pipeline/models/IOI';\r\nimport { amrFormatUtils, formatUtils, moneyUtils } from '../../../../../utils';\r\nimport { OnHoverTooltip } from '../../../../common';\r\nimport moment from 'moment';\r\nimport { OriginatingTransactionClass } from '../../../../../types/amr-pipeline/models/OriginatingTransactionClass';\r\n\r\nconst className: IColumnDefinition = {\r\n columnKey: 'className',\r\n renderColumnHeaderContent: () => 'Class',\r\n renderColumnContent: (ioi, context: {classes: OriginatingTransactionClass[]}) => {\r\n const classStatus = amrFormatUtils.formatClassStatus(\r\n context.classes.find(c => c.referenceName === ioi.classReferenceName)?.originatingTransactionClassStatus,\r\n );\r\n\r\n return ioi.isDeleted\r\n ? {ioi.classReferenceName} {classStatus}\r\n : `${ioi.classReferenceName} ${classStatus ? classStatus : ''}`\r\n },\r\n bodyClassName: 'data-list-cell-ioi-class',\r\n sortingField: 'classReferenceName',\r\n sortingType: SORTING_TYPE.string,\r\n};\r\n\r\nconst balance: IColumnDefinition = {\r\n columnKey: 'balance',\r\n renderColumnHeaderContent: () => 'Balance',\r\n renderColumnContent: ioi => (ioi.balance ? moneyUtils.money(ioi.balance) : constants.emptyPlaceholder),\r\n headerClassName: 'data-list-cell-sm text-right',\r\n bodyClassName: 'data-list-cell-sm text-right',\r\n sortingField: 'balance',\r\n sortingType: SORTING_TYPE.number,\r\n};\r\n\r\nconst ioiSize: IColumnDefinition = {\r\n columnKey: 'size',\r\n renderColumnHeaderContent: () => 'IOI Size',\r\n renderColumnContent: ioi => (ioi.size ? moneyUtils.money(ioi.size) : constants.emptyPlaceholder),\r\n headerClassName: 'data-list-cell-sm text-right',\r\n bodyClassName: 'data-list-cell-sm text-right',\r\n sortingField: 'size',\r\n sortingType: SORTING_TYPE.number,\r\n};\r\n\r\nconst ioiSizePercent: IColumnDefinition = {\r\n columnKey: 'sizePercent',\r\n renderColumnHeaderContent: () => 'IOI Size, %',\r\n renderColumnContent: ioi =>\r\n ioi.sizePercent ? formatUtils.formatDecimal(ioi.sizePercent, 2) : constants.emptyPlaceholder,\r\n headerClassName: 'data-list-cell-sm text-right',\r\n bodyClassName: 'data-list-cell-sm text-right',\r\n sortingField: 'sizePercent',\r\n sortingType: SORTING_TYPE.number,\r\n};\r\n\r\nconst commonColumns: IColumnDefinition[] = [\r\n {\r\n columnKey: 'dm',\r\n renderColumnHeaderContent: () => 'DM, bps',\r\n renderColumnContent: ioi => ioi.dm ?? constants.emptyPlaceholder,\r\n headerClassName: 'data-list-cell text-right',\r\n bodyClassName: 'data-list-cell text-right',\r\n sortingField: 'dm',\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: 'oid',\r\n renderColumnHeaderContent: () => 'OID',\r\n renderColumnContent: ioi => (ioi.oid ? formatUtils.formatDecimal(ioi.oid, 4) : constants.emptyPlaceholder),\r\n headerClassName: 'data-list-cell text-right',\r\n bodyClassName: 'data-list-cell text-right',\r\n sortingField: 'oid',\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: 'floaterIndex',\r\n renderColumnHeaderContent: () => 'Floater Index',\r\n renderColumnContent: ioi => ioi.floaterIndex,\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm',\r\n sortingField: 'floaterIndex',\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: 'margin',\r\n renderColumnHeaderContent: () => 'Margin, %',\r\n renderColumnContent: ioi => (ioi.margin ? formatUtils.formatDecimal(ioi.margin) : constants.emptyPlaceholder),\r\n headerClassName: 'data-list-cell-sm text-right',\r\n bodyClassName: 'data-list-cell-sm text-right',\r\n sortingField: 'margin',\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: 'comment',\r\n renderColumnHeaderContent: () => 'Comment',\r\n renderColumnContent: ioi => {\r\n return (\r\n <>\r\n {ioi.comment ? (\r\n {ioi.comment}\r\n ) : (\r\n constants.emptyPlaceholder\r\n )}\r\n \r\n );\r\n },\r\n headerClassName: 'data-list-cell-lg',\r\n bodyClassName: 'data-list-cell-lg',\r\n },\r\n {\r\n columnKey: 'dateSubmitted',\r\n renderColumnHeaderContent: () => 'Date Submitted',\r\n renderColumnContent: ioi =>\r\n ioi.submitDate ? moment(ioi.submitDate).format(constants.dateTimeFormat) : constants.emptyPlaceholder,\r\n headerClassName: 'text-right data-list-cell-lg',\r\n bodyClassName: 'text-right data-list-cell-lg',\r\n sortingField: 'submitDate',\r\n sortingType: SORTING_TYPE.date,\r\n },\r\n balance,\r\n {\r\n columnKey: 'rating',\r\n renderColumnHeaderContent: () => 'Rtg (M/S/F/K/D)',\r\n renderColumnContent: ioi =>\r\n `${ioi.ratingMoodys || constants.emptyPlaceholder}\r\n /${ioi.ratingSnP || constants.emptyPlaceholder}\r\n /${ioi.ratingFitch || constants.emptyPlaceholder}\r\n /${ioi.ratingKbra || constants.emptyPlaceholder}\r\n /${ioi.ratingDbrs || constants.emptyPlaceholder}`,\r\n headerClassName: 'data-list-cell-xl',\r\n bodyClassName: 'data-list-cell-xl',\r\n sortingField: 'rating',\r\n sortingType: SORTING_TYPE.rating,\r\n },\r\n {\r\n columnKey: 'guidance',\r\n renderColumnHeaderContent: () => 'Guidance',\r\n renderColumnContent: ioi => ioi.guidance\r\n ? {ioi.guidance}\r\n : constants.emptyPlaceholder,\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm',\r\n },\r\n {\r\n columnKey: 'subscription',\r\n renderColumnHeaderContent: () => 'Subscription',\r\n renderColumnContent: ioi => ioi.subscription\r\n ? {ioi.subscription}\r\n : constants.emptyPlaceholder,\r\n headerClassName: 'data-list-cell-sm',\r\n bodyClassName: 'data-list-cell-sm',\r\n },\r\n];\r\n\r\nexport const investorColumns = () => {\r\n const ioiColumnsDefinition: IColumnDefinition[] = [className, ioiSize, ...commonColumns];\r\n return ioiColumnsDefinition.map(c => {\r\n return new ColumnBuilder(c);\r\n });\r\n};\r\n\r\nexport const arrangerColumns = () => {\r\n const ioiColumnsDefinition: IColumnDefinition[] = [\r\n className,\r\n {\r\n columnKey: 'investor',\r\n renderColumnHeaderContent: () => 'Investor',\r\n renderColumnContent: ioi => {\r\n return ioi.investor ? (\r\n \r\n {ioi.investor.legalName}\r\n \r\n ) : (\r\n constants.emptyPlaceholder\r\n );\r\n },\r\n headerClassName: 'data-list-cell-xl',\r\n bodyClassName: 'data-list-cell-xl',\r\n sortingField: 'investor',\r\n sortingType: SORTING_TYPE.company,\r\n },\r\n ioiSize,\r\n ioiSizePercent,\r\n balance,\r\n ...commonColumns.filter(c => c.columnKey !== balance.columnKey),\r\n ];\r\n return ioiColumnsDefinition.map(c => {\r\n return new ColumnBuilder(c);\r\n });\r\n};\r\n","import { Company } from '../../../../../../../types/amr-pipeline/models/Company';\r\nimport { FormField } from '../../../../../common/FormField';\r\n\r\ninterface Props {\r\n investor?: Company;\r\n}\r\n\r\nconst CompanyTab = ({ investor }: Props) => {\r\n const { address, city, state, zipCode, country } = investor as Company;\r\n const cityAndState = city?.name && state?.name ? `${city?.name}, ${state?.name}` : city?.name || state?.name;\r\n const zipCodeAndCountry = zipCode && country?.name ? `${zipCode}, ${country?.name}` : zipCode || country?.name;\r\n return (\r\n \r\n

{address}

\r\n

{cityAndState}

\r\n

{zipCodeAndCountry}

\r\n \r\n ) : null\r\n }\r\n />\r\n );\r\n};\r\n\r\nexport default CompanyTab;\r\n","import { constants } from \"../../../../../../../constants\";\r\nimport { Contact } from \"../../../../../../../types/amr-pipeline/models/Contact\";\r\nimport { ColumnBuilder } from \"../../../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { IColumnDefinition } from \"../../../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { OnHoverTooltip } from '../../../../../../common';\r\nimport IconSVG from '../../../../../../../styles/svg-icons';\r\nimport { nameUtils } from \"../../../../../../../utils\";\r\n\r\nconst memberColumnsDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: 'fullName',\r\n renderColumnHeaderContent: () => 'Full Name',\r\n renderColumnContent: ({ firstName, lastName }) => {\r\n const fullName = nameUtils.getFullName(firstName, lastName);\r\n\r\n return (\r\n
\r\n \r\n {fullName}\r\n \r\n
\r\n );\r\n },\r\n headerClassName: 'data-list-cell-xl',\r\n bodyClassName: 'data-list-cell-xl',\r\n },\r\n {\r\n columnKey: 'iconContact',\r\n renderColumnHeaderContent: () => null,\r\n renderColumnContent: (member, { primaryContact }) =>\r\n <>\r\n {member.email === primaryContact.email && (\r\n \r\n \r\n \r\n )}\r\n ,\r\n headerClassName: 'data-list-cell-xxs padding-l-0 text-center',\r\n bodyClassName: 'data-list-cell-xxs padding-l-0 text-center',\r\n },\r\n {\r\n columnKey: 'email',\r\n renderColumnHeaderContent: () => 'Email',\r\n renderColumnContent: member => (\r\n
\r\n \r\n \r\n {member.email}\r\n \r\n \r\n
\r\n ),\r\n headerClassName: 'data-list-cell-xl-xxl',\r\n bodyClassName: 'data-list-cell-xl-xxl',\r\n },\r\n {\r\n columnKey: 'phone',\r\n renderColumnHeaderContent: () => 'Phone',\r\n renderColumnContent: member => member.mobilePhoneNumber || constants.emptyPlaceholder,\r\n headerClassName: 'data-list-cell-md',\r\n bodyClassName: 'data-list-cell-md',\r\n },\r\n];\r\n\r\nexport const memberColumns = memberColumnsDefinitions.map(c => new ColumnBuilder(c));\r\n","import { Contact } from '../../../../../../../types/amr-pipeline/models/Contact';\r\nimport { Table } from '../../../../../../bidding/common/table';\r\nimport { EmptyPlaceholder } from '../../../../../../common';\r\nimport { memberColumns } from './member-columns';\r\n\r\ninterface Props {\r\n members?: Contact[];\r\n primaryContact?: Contact;\r\n}\r\n\r\nconst MembersTab = ({ members, primaryContact }: Props) => {\r\n if (!members?.length) {\r\n return ;\r\n }\r\n\r\n return (\r\n ({ primaryContact })}\r\n />\r\n );\r\n};\r\n\r\nexport default MembersTab;\r\n","import { useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { amrPipelineDetailedActions } from '../../../../../../actions';\r\nimport { Contact } from '../../../../../../types/amr-pipeline/models/Contact';\r\nimport { AppState } from '../../../../../../types/state/AppState';\r\nimport { sortContactsByPrimary } from '../../../../../../utils/amr-pipeline.utils';\r\nimport { TabList, TabItem } from '../../../../../bidding/common/tab-list';\r\nimport { Popup } from '../../../../../controls';\r\nimport CompanyTab from './tabs/CompanyTab';\r\nimport MembersTab from './tabs/MembersTabs';\r\n\r\nenum Tab {\r\n Members,\r\n Company,\r\n}\r\n\r\nexport const InvestorPopup = () => {\r\n const dispatch = useDispatch();\r\n const [tab, setTab] = useState(Tab.Members);\r\n\r\n const { investor } = useSelector((state: AppState) => state.issuanceMonitor.amrPipelineDetailed.investorPopup);\r\n\r\n const renderTab = () => {\r\n if (tab === Tab.Company) {\r\n return ;\r\n }\r\n\r\n let members: Contact[] = [];\r\n\r\n if (investor?.members.length) {\r\n members = sortContactsByPrimary(investor.members, investor.company?.primaryContact);\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n if (!investor?.members.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n dispatch(amrPipelineDetailedActions.hideInvestorPopup())}\r\n >\r\n
\r\n \r\n setTab(Tab.Members)}\r\n />\r\n setTab(Tab.Company)} />\r\n \r\n
{renderTab()}
\r\n
\r\n \r\n );\r\n};\r\n","import { isEqual } from 'lodash';\r\nimport { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { amrPipelineDetailedActions, gridActions } from '../../../../../actions';\r\nimport { roles } from '../../../../../constants';\r\nimport { TransactionStatus } from '../../../../../types/amr-pipeline/enums/TransactionStatus';\r\nimport { AppState } from '../../../../../types/state/AppState';\r\nimport { GridDataItem } from '../../../../../types/state/GridState';\r\nimport { user } from '../../../../../user';\r\nimport { Table } from '../../../../bidding/common/table/Table';\r\nimport { Preloader, EmptyPlaceholder, OnHoverTooltip } from '../../../../common';\r\nimport { Checkbox, Popup, PopupBody, PopupFooter } from '../../../../controls';\r\nimport { Grid } from '../../../../grid';\r\nimport { RouteLeavingGuard } from '../../../../routing';\r\nimport { SectionContent } from '../../../common/section/SectionContent';\r\nimport { TabBody } from '../../../common/tabs/TabBody';\r\nimport { TabContent } from '../../../common/tabs/TabContent';\r\nimport { investorColumns, arrangerColumns } from './ioi-columns';\r\nimport { IOI } from '../../../../../types/amr-pipeline/models/IOI';\r\nimport IconSVG from '../../../../../styles/svg-icons';\r\nimport { InvestorPopup } from './investorPopup/InvestorPopup';\r\nimport { OriginatingTransactionClassStatus } from '../../../../../types/amr-pipeline/enums/OriginatingTransactionClassStatus';\r\nimport { TransactionTabProps } from '../types';\r\nimport { PipelineDetailedTabTypes } from '../../../types/PipelineDetailedTabTypes';\r\nimport { withTabTracking } from '../withTabTracking';\r\nimport { TransactionAccessType } from '../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { isCollateralManagersOwnTransaction } from '../../../../../utils/amr-pipeline.utils';\r\nimport { SubscriptionFeature } from '../../../../../types/billing/SubscriptionFeature';\r\nimport { ActionBlocker } from '../../../../access/ActionBlocker';\r\nimport { useAppDispatch } from '../../../../../effects/useAppDispatch';\r\nimport { useHistory } from 'react-router';\r\n\r\ninterface IOIsTabProps extends TransactionTabProps {\r\n isLoading?: boolean;\r\n activeTab: PipelineDetailedTabTypes;\r\n}\r\n\r\nconst IOIsTab = ({ transaction, isLoading, activeTab }: IOIsTabProps) => {\r\n const dispatch = useAppDispatch();\r\n const history = useHistory();\r\n\r\n const { dealReferenceName, referenceName, iois, status, dealLegalName } = transaction;\r\n const editIOIs = useSelector((state: AppState) => state.issuanceMonitor.amrPipelineDetailed.editIOIs);\r\n const isInvestorPopupVisible = useSelector((state: AppState) => state.issuanceMonitor.amrPipelineDetailed.investorPopup.isVisible);\r\n const dataItems: GridDataItem[] = useSelector((state: AppState) => state.grid.dataItems);\r\n const nonDraftDataItems = dataItems.filter(item => !item.draft);\r\n\r\n const [isUnsavedChangesPopupVisible, setUnsavedChangesPopupVisible] = useState(false);\r\n const [isDeleteAllPopupVisible, setDeleteAllPopupVisible] = useState(false);\r\n const [showDeletedClasses, setShowDeletedClasses] = useState(false);\r\n\r\n const isCollateralManagerOwnTransactions = isCollateralManagersOwnTransaction(transaction);\r\n const isSellerTrader = user.hasRoles(roles.SellerTrader);\r\n const isSellerViewer = user.hasRoles(roles.SellerViewer);\r\n const isSeller = isSellerTrader || isSellerViewer;\r\n const isInvitedClient = user.hasSingleRole(roles.ArrangersClient);\r\n\r\n const unreadIOIsLength = !isSeller && iois?.filter(ioi => !ioi.isRead).length;\r\n const ioisWithoutDeletedClasses = iois?.filter(ioi => !ioi.isDeleted);\r\n\r\n const isAllClassesDisabledForIoIs =\r\n !transaction.classes.length ||\r\n transaction.classes.every(\r\n classItem =>\r\n classItem.originatingTransactionClassStatus === OriginatingTransactionClassStatus.NotOffered ||\r\n classItem.originatingTransactionClassStatus === OriginatingTransactionClassStatus.Subject,\r\n );\r\n const showAddButton =\r\n (isSellerTrader || isInvitedClient) && !isCollateralManagerOwnTransactions && transaction.status === TransactionStatus.Active && !isAllClassesDisabledForIoIs;\r\n\r\n const allOnDeletedClasses = iois?.every(ioi => ioi.isDeleted);\r\n const someOnDeletedClasses = iois?.some(ioi => ioi.isDeleted);\r\n const ioisList = showDeletedClasses ? iois : ioisWithoutDeletedClasses;\r\n const isIOIsListWithContent = !!ioisList?.length;\r\n const showEditButton = isIOIsListWithContent && !isCollateralManagerOwnTransactions && (isSellerTrader || isInvitedClient) && transaction.status === TransactionStatus.Active;\r\n\r\n useEffect(() => {\r\n return () => {\r\n dispatch(amrPipelineDetailedActions.editIOIs(false));\r\n dispatch(gridActions.reset());\r\n };\r\n }, [dispatch]);\r\n\r\n useEffect(() => {\r\n if (iois && unreadIOIsLength) {\r\n dispatch(\r\n amrPipelineDetailedActions.readIOIsByUser(\r\n dealReferenceName,\r\n referenceName,\r\n iois.map(ioi => ioi.ioiReferenceName),\r\n ),\r\n );\r\n dispatch(amrPipelineDetailedActions.setUnreadIOIsRead(referenceName));\r\n }\r\n }, [dealReferenceName, referenceName, unreadIOIsLength, dispatch, iois]);\r\n\r\n const getPlaceholderText = () => {\r\n if (isAllClassesDisabledForIoIs) {\r\n return 'No classes available for submitting IOIs';\r\n }\r\n\r\n if ((isSellerTrader || isInvitedClient) && status === TransactionStatus.Active) {\r\n return 'There are no submitted IOIs yet. To submit IOIs just add a new one.';\r\n }\r\n if ((isSellerTrader || isInvitedClient) && status !== TransactionStatus.Active) {\r\n return 'No information to display. IOIs can be submitted when the deal is in ‘Active’ status.';\r\n }\r\n\r\n if (status === TransactionStatus.Active) {\r\n return 'There are no submitted IOIs yet.';\r\n }\r\n\r\n return 'There is no information to display';\r\n };\r\n\r\n const isEditWithChanges = () => {\r\n const isChangedOrDeleted = (original: IOI, editItem?: GridDataItem) => {\r\n if (!editItem) {\r\n return true;\r\n }\r\n\r\n const { draft, errors, ...fields } = editItem;\r\n return !isEqual(original, fields);\r\n };\r\n\r\n if (!editIOIs) {\r\n return false;\r\n }\r\n\r\n if (nonDraftDataItems.length !== iois.length) {\r\n return true;\r\n }\r\n\r\n return iois.some(i =>\r\n isChangedOrDeleted(\r\n i,\r\n nonDraftDataItems.find(d => d?.ioiReferenceName === i.ioiReferenceName),\r\n ),\r\n );\r\n };\r\n\r\n const handleSubmitButtonClick = () => {\r\n if (iois.length && !nonDraftDataItems.length) {\r\n setDeleteAllPopupVisible(true);\r\n return;\r\n }\r\n\r\n submitIOIs();\r\n };\r\n\r\n const submitIOIs = () => {\r\n dispatch(amrPipelineDetailedActions.submitIOIs(dealReferenceName, referenceName, dealLegalName, activeTab));\r\n };\r\n\r\n const showEditMode = () => {\r\n dispatch(amrPipelineDetailedActions.showGridIOIs(referenceName));\r\n };\r\n\r\n const exportIOIs = () => {\r\n dispatch(amrPipelineDetailedActions.exportIOIs(dealReferenceName, referenceName, !showDeletedClasses));\r\n };\r\n\r\n const cancelEdit = () => {\r\n if (isEditWithChanges()) {\r\n setUnsavedChangesPopupVisible(true);\r\n } else {\r\n dispatch(amrPipelineDetailedActions.editIOIs(false));\r\n }\r\n };\r\n\r\n const renderViewActionButtons = () => {\r\n if (!iois.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {someOnDeletedClasses && (\r\n setShowDeletedClasses(!showDeletedClasses)}\r\n />\r\n )}\r\n {!allOnDeletedClasses && (\r\n \r\n {blocked => (\r\n \r\n )}\r\n \r\n )}\r\n {showEditButton && (\r\n \r\n \r\n Edit\r\n \r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n const renderEditActionButtons = () => {\r\n return (\r\n <>\r\n \r\n \r\n Save\r\n \r\n \r\n );\r\n };\r\n\r\n const renderActionButtons = () => (\r\n
\r\n
\r\n {editIOIs ? renderEditActionButtons() : renderViewActionButtons()}\r\n
\r\n
\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {editIOIs ? (\r\n \r\n ) : isIOIsListWithContent ? (\r\n ({classes: transaction.classes})}\r\n className=\"data-list-striped\"\r\n createSecurityCustomClassName={(ioi: IOI) => ioi.isDeleted ? 'deleted' : null}\r\n dataItems={ioisList}\r\n columns={isSeller || isInvitedClient ? investorColumns() : arrangerColumns()}\r\n />\r\n ) : (\r\n \r\n {showAddButton && (\r\n \r\n ADD IOIs\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {isUnsavedChangesPopupVisible && (\r\n setUnsavedChangesPopupVisible(false)}>\r\n \r\n

\r\n \r\n \r\n You have unsaved changes. Are you sure you want to leave?\r\n \r\n

\r\n
\r\n \r\n \r\n {\r\n dispatch(amrPipelineDetailedActions.editIOIs(false));\r\n setUnsavedChangesPopupVisible(false);\r\n }}\r\n >\r\n Confirm\r\n \r\n \r\n
\r\n )}\r\n {isDeleteAllPopupVisible && (\r\n setDeleteAllPopupVisible(false)}>\r\n \r\n

\r\n \r\n Are you sure you want to delete all IOIs?\r\n

\r\n
\r\n \r\n \r\n {\r\n submitIOIs();\r\n setDeleteAllPopupVisible(false);\r\n }}\r\n >\r\n Yes\r\n \r\n \r\n
\r\n )}\r\n {isInvestorPopupVisible && }\r\n history.push(pathname)}\r\n shouldBlockNavigation={isEditWithChanges}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport const IOIs = withTabTracking(TransactionAccessType.Iois)(IOIsTab);\r\n","import { FormField } from \"../../../../common/FormField\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { RequiredFeature } from \"../../../../../access/RequiredFeature\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { BlockedFeatureContent, SubscribeLink } from \"../../../../../../components/access/BlockedFeatureText\";\r\n\r\ninterface Props {\r\n daysInMarket: number;\r\n totalDocumentsDownloads: number;\r\n recentTransactionViews: number;\r\n totalTransactionViews: number;\r\n}\r\n\r\nexport function General({\r\n daysInMarket,\r\n totalDocumentsDownloads,\r\n recentTransactionViews,\r\n totalTransactionViews,\r\n}: Props) {\r\n return (\r\n \r\n
\r\n \r\n {daysInMarket || constants.emptyPlaceholder}\r\n \r\n (\r\n to see total docs downloads}\r\n className=\"restricted-placeholder-general\"\r\n />\r\n )}\r\n >\r\n \r\n {totalDocumentsDownloads || constants.emptyPlaceholder}\r\n \r\n \r\n
\r\n
\r\n \r\n {recentTransactionViews || constants.emptyPlaceholder}\r\n \r\n (\r\n more transaction view(s).}\r\n className=\"restricted-placeholder-general\"\r\n />\r\n )}\r\n >\r\n \r\n {totalTransactionViews || constants.emptyPlaceholder}\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import classNames from \"classnames\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { Plot } from \"../../../../../common\";\r\nimport { DocumentDownloadsStatistic } from \"../../../../../../types/amr-pipeline/models/DocumentDownloadsStatistic\";\r\nimport { groupBy, kebabCase, sumBy } from \"lodash\";\r\nimport { constants } from \"../../../../../../constants\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { user } from \"../../../../../../user\";\r\nimport { RequiredFeature } from \"../../../../../access/RequiredFeature\";\r\nimport { BlockedFeatureContent, SubscribeLink } from \"../../../../../../components/access/BlockedFeatureText\";\r\n\r\nconst generalData = {\r\n textinfo: \"none\",\r\n hoverinfo: \"text\",\r\n hole: 0.65,\r\n type: \"pie\",\r\n hoverlabel: {\r\n bgcolor: \"#4A4A4A\",\r\n bordercolor: \"#4A4A4A\",\r\n font: {\r\n size: 12,\r\n color: \"#fff\",\r\n },\r\n },\r\n direction: \"clockwise\",\r\n};\r\n\r\nconst emptyPieChartData = {\r\n values: [100],\r\n marker: {\r\n colors: [\"#F5F5F5\"],\r\n },\r\n};\r\n\r\nconst layout = {\r\n height: 122,\r\n width: 122,\r\n showlegend: false,\r\n autosize: false,\r\n margin: {\r\n l: 0,\r\n r: 0,\r\n b: 0,\r\n t: 0,\r\n pad: 4,\r\n },\r\n};\r\n\r\nconst mainConfig = {\r\n responsive: true,\r\n displaylogo: false,\r\n doubleClickDelay: 1000,\r\n displayModeBar: false,\r\n showTips: false,\r\n};\r\n\r\nconst colorsSubscribed = ['#FFB400', '#8D40BE', '#71C18D', '#487EB2', '#5BBED8'];\r\nconst colorsUnsubscribed = ['#FFB400', '#8D40BE', '#F5F5F5', '#F5F5F5', '#F5F5F5'];\r\n\r\ninterface Props {\r\n documentDownloads: DocumentDownloadsStatistic[];\r\n totalDocumentsDownloads: number;\r\n}\r\n\r\nexport function DownloadedDocumentsType({\r\n documentDownloads,\r\n totalDocumentsDownloads,\r\n}: Props) {\r\n const groupedByAccessType = groupBy(documentDownloads, (x) => x.accessType);\r\n const dealDocuments = [\r\n ...(groupedByAccessType.DownloadAllDocuments || []),\r\n ...(groupedByAccessType.DownloadOneDocument || []),\r\n ];\r\n\r\n const withImSubscription = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n\r\n const documentsData = [\r\n {\r\n title: \"Deal Documents\",\r\n downloads: sumBy(dealDocuments, (dt) => dt.numberOfDocuments),\r\n },\r\n {\r\n title: \"Disclosure\",\r\n downloads: sumBy(\r\n groupedByAccessType.DownloadDisclosureFile,\r\n (dt) => dt.numberOfDocuments\r\n ),\r\n },\r\n {\r\n title: \"Manager Presentation\",\r\n downloads: sumBy(\r\n groupedByAccessType.DownloadManagerPresentationFile,\r\n (dt) => dt.numberOfDocuments\r\n ),\r\n },\r\n {\r\n title: \"Target Portfolio\",\r\n downloads: sumBy(\r\n groupedByAccessType.ExportTargetPortfolio,\r\n (dt) => dt.numberOfDocuments\r\n ),\r\n },\r\n {\r\n title: \"Intex File\",\r\n downloads: sumBy(\r\n groupedByAccessType.DownloadIntexFile,\r\n (dt) => dt.numberOfDocuments\r\n ),\r\n },\r\n ];\r\n\r\n const documentsWithDownloads = documentsData.filter(\r\n (d) => d.downloads\r\n ).length;\r\n\r\n const data = [\r\n {\r\n ...generalData,\r\n ...(documentsWithDownloads\r\n ? {\r\n values: documentsData.map((d) =>\r\n d.downloads\r\n ? (d.downloads * 100) / totalDocumentsDownloads\r\n : 0\r\n ),\r\n text: withImSubscription ? documentsData.map((d) => d.downloads) : documentsData[0].downloads,\r\n marker: {\r\n colors: withImSubscription ? colorsSubscribed : colorsUnsubscribed,\r\n ...(documentsWithDownloads > 1 && {\r\n line: {\r\n color: \"#fff\",\r\n width: 2,\r\n },\r\n }),\r\n },\r\n }\r\n : emptyPieChartData),\r\n },\r\n ];\r\n\r\n const chartData = withImSubscription ? data : [data[0]];\r\n\r\n const renderAgenda = () =>\r\n documentsData.map(d => (\r\n
\r\n {d.title} \r\n {d.downloads || constants.emptyPlaceholder}\r\n
\r\n ));\r\n\r\n const renderBlockedContent = () => (\r\n <>\r\n \r\n {documentsData[0].title} \r\n {documentsData[0].downloads || constants.emptyPlaceholder}\r\n \r\n \r\n

See {documentsData.length - 1} more type stats

\r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {renderAgenda()}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n","import { groupBy, sumBy } from \"lodash\";\r\nimport { TransactionClientActivity } from \"../../../../../../types/amr-pipeline/models/TransactionSession\";\r\nimport { TransactionAccessType, TransactionAccessTypes } from \"../../../../../../types/amr-pipeline/enums/TransactionAccessType\";\r\nimport { SectionContent } from \"../../../../common/section/SectionContent\";\r\nimport { PercentageBar } from \"../PercentageBar\";\r\nimport { RequiredFeature } from \"../../../../../access/RequiredFeature\";\r\nimport { SubscriptionFeature } from \"../../../../../../types/billing/SubscriptionFeature\";\r\nimport { BlockedFeatureContent, SubscribeLink } from \"../../../../../../components/access/BlockedFeatureText\";\r\n\r\ninterface Props {\r\n clientsActivity?: TransactionClientActivity[];\r\n}\r\n\r\nexport function ViewedTabs({ clientsActivity = [] }: Props) {\r\n const totalViews = sumBy(clientsActivity, (ca) =>\r\n ca.accessType === TransactionAccessType.Deal ||\r\n ca.accessType === TransactionAccessType.ExportTargetPortfolio\r\n ? 0\r\n : ca.numberOfAccess\r\n );\r\n\r\n const groupedByAccessType = groupBy(clientsActivity, (x) => x.accessType);\r\n\r\n const viewTabData = TransactionAccessTypes.map((f) => {\r\n const fieldData = groupedByAccessType[f.value];\r\n const views = sumBy(fieldData, (ca) =>\r\n ca.accessType === f.value ? ca.numberOfAccess : 0\r\n );\r\n\r\n return {\r\n title: f.text,\r\n views,\r\n };\r\n });\r\n\r\n const renderPercentageBar = () =>\r\n viewTabData.map(v => (\r\n
\r\n \r\n
\r\n ));\r\n\r\n const renderBlockedContent = () => (\r\n
\r\n \r\n \r\n

See {viewTabData.length - 1} more tabs viewed by the clients

\r\n \r\n \r\n }\r\n />\r\n
\r\n );\r\n\r\n return (\r\n \r\n \r\n {renderPercentageBar()}\r\n \r\n \r\n );\r\n}\r\n","import { sumBy } from 'lodash';\r\nimport moment, { Moment } from 'moment';\r\nimport { PlotMouseEvent } from 'plotly.js';\r\nimport { Plot, mainConfig } from '../../../../../common/charts';\r\nimport { chartUtils, dateTimeUtils } from '../../../../../../utils';\r\nimport { arrayUtils } from '../../../../../../utils/array.utils';\r\nimport { ChartView } from '../../../../../../types/dashboard/AmrChart';\r\nimport { SessionAccess, SessionMeta } from '../../../../../../types/amr-pipeline/models/AnalyticsSession';\r\nimport { TransactionClientActivity } from '../../../../../../types/amr-pipeline/models/TransactionSession';\r\nimport { clientsActivityChart } from '../../../../../../constants/amr-pipeline/clientsActivityChart';\r\nimport { TransactionAccessType, TransactionAccessTypes } from '../../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { constants } from '../../../../../../constants';\r\nimport { DashboardNoSelectedFilters } from '../../../../../dashboard/DashboardNoSelectedFilters';\r\nimport { TransactionStatus } from '../../../../../../types/amr-pipeline/enums/TransactionStatus';\r\nimport { amrChartUtils, GroupedBy, Range } from '../../../../../../utils/amr-chart.utils';\r\nimport { TransactionAnalyticsFilter } from '../../../../../../types/analytics/AnalyticsFilter';\r\n\r\ntype BarClickEventHandler = (accessType: TransactionAccessType, date: Date) => void;\r\n\r\ninterface ClientsActivityChartProps {\r\n divId?: string;\r\n filter: TransactionAnalyticsFilter;\r\n data: TransactionClientActivity[];\r\n closingDate?: Date;\r\n status: TransactionStatus;\r\n onBarClick: BarClickEventHandler;\r\n}\r\n\r\nconst ChartRangeFormat = 'YYYY-MM-DD';\r\nconst DefaultRangeDays = 10;\r\n\r\nexport function ClientsActivityChart({ divId, data, filter, closingDate, status, onBarClick }: ClientsActivityChartProps) {\r\n const closingMoment = closingDate && status === TransactionStatus.Closed ? moment(closingDate) : undefined;\r\n const chartEndMoment = closingMoment?.isBefore(moment(), 'day') ? closingMoment : moment();\r\n\r\n const {\r\n chartLayout,\r\n tickColor,\r\n tickFont,\r\n barColors,\r\n zeroLineColor,\r\n hoverlabel,\r\n } = clientsActivityChart;\r\n\r\n const handleBarClick = (e: PlotMouseEvent) => {\r\n const point = e && e.points && e.points[0];\r\n\r\n if (point && point.data) {\r\n const date = moment(point.x).toDate();\r\n const [accessType] = point.data.customdata;\r\n\r\n onBarClick(accessType as TransactionAccessType, date);\r\n }\r\n };\r\n\r\n const getEdgeDimensionValues = (clientsActivity: SessionMeta[]): Range => {\r\n if (filter.date.dateFrom && filter.date.dateTo) {\r\n const min = moment(filter.date.dateFrom);\r\n const max = moment(filter.date.dateTo);\r\n\r\n // If filter is selected for one day, chart will render shitty\r\n // thin bars. Extend to two days to help it render correctly.\r\n if (moment.duration(max.diff(min)).days() < 2) {\r\n return {\r\n min: min.subtract(1, 'day'),\r\n max,\r\n }\r\n }\r\n\r\n return { min, max };\r\n }\r\n\r\n const minDateRow = arrayUtils.min(clientsActivity, x => x.accessDateTime)!;\r\n const tenDaysAgo = chartEndMoment.clone()\r\n .subtract(DefaultRangeDays, 'days')\r\n .startOf('day');\r\n\r\n const min = tenDaysAgo.isBefore(minDateRow?.accessDateTime) ? tenDaysAgo : moment.utc(minDateRow?.accessDateTime);\r\n\r\n return {\r\n min,\r\n max: chartEndMoment,\r\n };\r\n };\r\n\r\n const getChartRange = () => {\r\n // Pick either dates from filter, or current date as\r\n // reference. Manipulations with start/end of days and 12 hours\r\n // are to align ticks of chart and now show an edge of previous/next\r\n // days\r\n const fromMoment = filter.date.dateFrom\r\n ? moment(filter.date.dateFrom)\r\n .startOf('day')\r\n .subtract(12, 'hours')\r\n : chartEndMoment\r\n .clone()\r\n .subtract(DefaultRangeDays, 'days')\r\n .startOf('day')\r\n .add(12, 'hours');\r\n\r\n const toMoment = filter.date.dateTo\r\n ? moment(filter.date.dateTo)\r\n .endOf('day')\r\n .subtract(12, 'hours')\r\n : chartEndMoment\r\n .clone()\r\n .endOf('day')\r\n .subtract(12, 'hours');\r\n\r\n return [\r\n fromMoment.format(constants.dateTimeFormatUtc),\r\n toMoment.format(constants.dateTimeFormatUtc)\r\n ];\r\n };\r\n\r\n const getSliderRange = ({ min, max }: Range) => {\r\n if (!min || !max) {\r\n return [];\r\n }\r\n\r\n // Set same range for slider as for chart,\r\n // only if date range is less or equal than 10 days\r\n return moment.duration(max.diff(min)).asDays() > DefaultRangeDays\r\n ? []\r\n : getChartRange();\r\n };\r\n\r\n const getHoverInfoText = (clientsActivityMap: Map) => {\r\n return Array.from(clientsActivityMap.entries())\r\n .sort(([versionA], [versionB]) => (versionB || 0) - (versionA || 0))\r\n .reduce((acc, versionClientsActivity) => {\r\n const [version, clientsActivity] = versionClientsActivity;\r\n const [firstEntry] = clientsActivity;\r\n\r\n const accessTypeTitle = TransactionAccessTypes.find(t => t.value === firstEntry.accessType)?.text;\r\n const versionString = `V.${version} published on ${dateTimeUtils.changeDateTimeZone(\r\n firstEntry.versionDate,\r\n constants.estTimezone,\r\n false\r\n ).format(constants.dateTimeFormat)}
` +\r\n `${accessTypeTitle}: ${sumBy(clientsActivity, x => x.numberOfAccess)} view(s)`;\r\n\r\n if (acc) {\r\n return `${acc}
${versionString}`;\r\n }\r\n\r\n return versionString;\r\n }, '');\r\n };\r\n\r\n const getChartData = ({ min, max } : Range) => {\r\n const map = arrayUtils.groupBy(data, (row: SessionAccess) => row.accessType);\r\n\r\n return TransactionAccessTypes.map((accessType, index) => {\r\n const data: TransactionClientActivity[] = map.get(accessType.value) || [];\r\n\r\n const isSameDay = (row: SessionMeta) => (iteratee: GroupedBy) => iteratee.date.isSame(row.accessDateTime, 'day');\r\n\r\n const groupedByDate = data.reduce((acc: GroupedBy[], row: TransactionClientActivity) => {\r\n const existingEntry = acc.find(isSameDay(row));\r\n\r\n if (existingEntry) {\r\n return [\r\n ...acc.filter(x => !isSameDay(row)(x)),\r\n {\r\n ...existingEntry,\r\n entries: [\r\n ...existingEntry.entries,\r\n row,\r\n ]\r\n }\r\n ];\r\n }\r\n\r\n return [\r\n ...acc,\r\n { date: moment(row.accessDateTime), entries: [row] }\r\n ];\r\n }, []);\r\n\r\n // Fill in gaps in dates with blank items, to preserve integrity of chart data\r\n const fillGaps = amrChartUtils.gapsFiller(groupedByDate, row => row.date, date => ({ date, entries: [] }));\r\n\r\n const dataWithFilledGaps = (min && max) ? fillGaps({ min, max }, 'day') : groupedByDate;\r\n\r\n return dataWithFilledGaps.reduce((acc: any, { date, entries }: { date: Moment, entries: TransactionClientActivity[] }) => {\r\n const { x, y, hovertext } = acc;\r\n\r\n const groupedByVersions = arrayUtils.groupBy(entries, (row: TransactionClientActivity) => row.version);\r\n\r\n return {\r\n ...acc,\r\n hovertext: [...hovertext, getHoverInfoText(groupedByVersions)],\r\n x: [...x, date.format(ChartRangeFormat)],\r\n y: [...y, sumBy(entries, r => r.numberOfAccess)],\r\n };\r\n }, {\r\n x: [],\r\n y: [],\r\n hovertext: [],\r\n type: 'bar',\r\n hoverinfo: 'text',\r\n customdata: [accessType.value],\r\n marker: {\r\n color: barColors[index],\r\n },\r\n });\r\n })\r\n };\r\n\r\n const getLayout = (dateRange: Range) => {\r\n const xAxisRange = getChartRange();\r\n const rangeSliderRange = getSliderRange(dateRange);\r\n\r\n return {\r\n ...chartLayout,\r\n showlegend: false,\r\n autosize: true,\r\n hovermode: 'closest',\r\n hoverlabel,\r\n barmode: ChartView.Grouped,\r\n xaxis: {\r\n tickcolor: tickColor,\r\n type: 'date',\r\n tickfont: tickFont,\r\n tickformat: '%m/%d/%y',\r\n fixedrange: true,\r\n dtick: constants.dayMs,\r\n range: xAxisRange,\r\n rangeslider: {\r\n range: rangeSliderRange,\r\n bgcolor: 'rgba(79, 123, 156, 0.2)',\r\n },\r\n },\r\n yaxis: {\r\n showgrid: true,\r\n showtickprefix: 'all',\r\n fixedrange: true,\r\n gridcolor: tickColor,\r\n ticks: 'inside',\r\n tickcolor: tickColor,\r\n tickfont: tickFont,\r\n zerolinecolor: zeroLineColor,\r\n },\r\n }\r\n };\r\n\r\n const renderChart = () => {\r\n const edgeDimensions = getEdgeDimensionValues(data);\r\n const chartData = getChartData(edgeDimensions);\r\n const layout = getLayout(edgeDimensions);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
Overview
\r\n
Structure
\r\n
Target Portfolio
\r\n
Comparative Metrics
\r\n
Documents
\r\n
IOIs
\r\n
\r\n \r\n );\r\n };\r\n\r\n return data.length ? renderChart() : ;\r\n}\r\n\r\nClientsActivityChart.defaultProps = {\r\n divId: 'client-activity-div-id'\r\n};\r\n","import { useDispatch, useSelector } from 'react-redux';\r\nimport { OriginatingTransaction } from '../../../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { AppState } from '../../../../../types/state/AppState';\r\nimport { dateRangeFilterOptions } from '../../../../../constants/date-range.filter';\r\nimport { useEffect } from 'react';\r\nimport { TreeSelectOption } from '../../../../controls/TreeSelect';\r\nimport { TransactionAnalyticsFilter } from '../../../../../types/analytics/AnalyticsFilter';\r\nimport { Action } from 'typesafe-actions';\r\nimport { AnalyticWidgetState } from '../../../../../types/state/Analytics';\r\n\r\ninterface AnalyticsComponentProps {\r\n transaction: OriginatingTransaction;\r\n}\r\n\r\ninterface BaseComponentProps extends AnalyticsComponentProps {\r\n isLoaded: boolean;\r\n users: TreeSelectOption[];\r\n}\r\n\r\nexport const withAnalyticsRequest = (\r\n getAction: (dealReferenceName: string, transactionReferenceName: string, filter: TransactionAnalyticsFilter) => Action,\r\n selector: (state: AppState) => AnalyticWidgetState\r\n) =>\r\n (Component: React.ComponentType) =>\r\n ({ transaction }: AnalyticsComponentProps) => {\r\n const dispatch = useDispatch();\r\n const { filter, data, isLoading } = useSelector(selector);\r\n\r\n const { dealReferenceName, referenceName: transactionReferenceName } = transaction;\r\n\r\n const { isLoading: initialLoading, users } = useSelector(\r\n (state: AppState) => state.issuanceMonitor.amrPipelineDetailed.analytics,\r\n );\r\n\r\n const isDataLoaded = !!data.length && !isLoading;\r\n\r\n useEffect(() => {\r\n // Do not reload data, if Custom date option is set, and any of both\r\n // dates is not selected\r\n if (\r\n filter.dateOption?.key === dateRangeFilterOptions.Custom.key &&\r\n (!filter.date.dateFrom || !filter.date.dateTo)\r\n ) {\r\n return;\r\n }\r\n\r\n // Do not make request on initial load of Analytics tab\r\n if (initialLoading) {\r\n return;\r\n }\r\n\r\n dispatch(getAction(dealReferenceName, transactionReferenceName, filter));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [\r\n dispatch,\r\n initialLoading,\r\n filter.dateOption?.key,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n filter.date.dateFrom,\r\n filter.date.dateTo,\r\n ]);\r\n\r\n return ;\r\n };\r\n","import { useCallback, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { AppState } from '../../../../../../types/state/AppState';\r\nimport { amrTransactionAnalyticsActions } from '../../../../../../actions';\r\nimport { ClientsActivityChart } from './ClientsActivityChart';\r\nimport { OriginatingTransaction } from '../../../../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { TransactionAccessType, TransactionAccessTypes } from '../../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { TransactionAnalyticsFilter } from '../../../../../../types/analytics/AnalyticsFilter';\r\nimport { AnalyticsWidget } from '../../../../common/analytics/AnalyticsWidget';\r\nimport { TreeSelectOption } from '../../../../../controls/TreeSelect';\r\nimport { withAnalyticsRequest } from '../withAnalyticsRequest';\r\nimport { ChartRequiredFeature } from '../../../../../access/ChartRequiredFeature';\r\n\r\ninterface ClientsActivityWidgetProps {\r\n transaction: OriginatingTransaction;\r\n isLoaded: boolean;\r\n users: TreeSelectOption[];\r\n}\r\n\r\nconst selector = (state: AppState) => state.issuanceMonitor.amrPipelineDetailed.analytics.clientsActivity;\r\n\r\nconst getAction = (dealReferenceName: string, transactionReferenceName: string, filter: TransactionAnalyticsFilter) => {\r\n return amrTransactionAnalyticsActions.clientsActivityRequest(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n filter.date.dateFrom || undefined,\r\n filter.date.dateTo || undefined,\r\n );\r\n};\r\n\r\nfunction ClientsActivityWidgetComponent({ transaction, isLoaded, users }: ClientsActivityWidgetProps) {\r\n const dispatch = useDispatch();\r\n const clientsActivity = useSelector(selector);\r\n const { filter, data } = clientsActivity;\r\n\r\n const { dealReferenceName, referenceName: transactionReferenceName, status, closingDate } = transaction;\r\n\r\n const handleFilterChange = useCallback((filter: TransactionAnalyticsFilter) => {\r\n dispatch(amrTransactionAnalyticsActions.clientsActivityFilterChange(filter));\r\n }, [dispatch]);\r\n\r\n const handleBarClick = useCallback((accessType: TransactionAccessType, date: Date) => {\r\n dispatch(\r\n amrTransactionAnalyticsActions.transactionViewHistoryFilterByBar(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n accessType,\r\n date\r\n )\r\n );\r\n }, [dispatch, dealReferenceName, transactionReferenceName]);\r\n\r\n const filteredClientsActivity = useMemo(() => data\r\n .filter(row => {\r\n if (filter.users.length && !filter.users.includes(row.userEmail)) {\r\n return false;\r\n }\r\n\r\n if (filter.tabs.length && !filter.tabs.some(x => x === row.accessType)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }), [data, filter.users, filter.tabs]);\r\n\r\n const chart = useMemo(() => , [handleBarClick, filter, filteredClientsActivity]);\r\n\r\n return (\r\n \r\n \r\n {chart}\r\n \r\n \r\n );\r\n}\r\n\r\nexport const ClientsActivityWidget = withAnalyticsRequest(getAction, selector)(ClientsActivityWidgetComponent);\r\n","export enum TransactionViewHistoryTabs {\r\n Overview,\r\n DocsDownloaded,\r\n Contacts,\r\n}\r\n","import { Link } from \"react-router-dom\";\r\nimport { constants, routes } from \"../../../../../../../constants\";\r\nimport {\r\n TransactionAccessType,\r\n TransactionAccessTypes,\r\n} from \"../../../../../../../types/amr-pipeline/enums/TransactionAccessType\";\r\nimport { TransactionViewHistory } from '../../../../../../../types/amr-pipeline/models/TransactionSession';\r\nimport { dateTimeUtils } from \"../../../../../../../utils\";\r\nimport { FormField } from \"../../../../../common/FormField\";\r\n\r\ninterface Props {\r\n transactionReferenceName: string;\r\n dealReferenceName: string;\r\n userSession: TransactionViewHistory;\r\n}\r\n\r\nexport function OverviewTab({\r\n transactionReferenceName,\r\n dealReferenceName,\r\n userSession,\r\n}: Props) {\r\n const formattedVersionDate = dateTimeUtils.utcToLocalString(\r\n userSession.versionDate\r\n );\r\n\r\n return (\r\n <>\r\n \r\n V.{userSession.version} {formattedVersionDate}\r\n \r\n }\r\n className=\"data-item-row-full-height data-item-row-title-md\"\r\n />\r\n \r\n {(userSession.documents &&\r\n userSession.documents[\r\n TransactionAccessType.ExportTargetPortfolio\r\n ])?.length ??\r\n constants.emptyPlaceholder}\r\n \r\n }\r\n className=\"data-item-row-full-height data-item-row-title-md\"\r\n />\r\n \r\n {userSession.views &&\r\n TransactionAccessTypes.map((type) => (\r\n
  • \r\n \r\n {type.text}\r\n \r\n {userSession.views[type.value]\r\n ? `${\r\n userSession.views[type.value]\r\n } view(s)`\r\n : constants.emptyPlaceholder}\r\n
  • \r\n ))}\r\n \r\n }\r\n className=\"data-item-row-full-height data-item-row-title-md\"\r\n />\r\n \r\n );\r\n}\r\n","import { constants } from \"../../../../../../../constants\";\r\nimport { TransactionViewHistory } from '../../../../../../../types/amr-pipeline/models/TransactionSession';\r\nimport { OnHoverTooltip } from \"../../../../../../common\";\r\nimport { FormField } from \"../../../../../common/FormField\";\r\n\r\ninterface Props {\r\n userSession: TransactionViewHistory;\r\n}\r\n\r\nexport function ContactsTab({ userSession }: Props) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {userSession.userEmail}\r\n \r\n \r\n }\r\n className=\"data-item-row-full-height data-item-row-title-md data-item-row-email\"\r\n />\r\n \r\n \r\n );\r\n}\r\n","import { OriginatingTransactionDocument } from \"../../../../../../../types/amr-pipeline/models/OriginatingTransactionDocument\";\r\nimport { EmptyPlaceholder } from \"../../../../../../common\";\r\nimport DownloadDocument from \"../../../../../common/documents/DownloadDocument\";\r\nimport { DownloadedDocument } from '../../../../../../../types/amr-pipeline/models/AnalyticsSession';\r\nimport useDownloadDocumentList from \"../../../../../../../effects/useDownloadDocumentList\";\r\nimport { amrPipelineService } from \"../../../../../../../services/amr-pipeline.service\";\r\nimport { DownloadedDocumentAccessType } from \"../../../../../../../types/amr-pipeline/enums/DownloadedDocumentAccessType\";\r\nimport { useMemo } from \"react\";\r\nimport { getUniqueDocsWithDownloadsCount } from \"../../../../../../../utils/analytics.utils\";\r\n\r\ninterface Props {\r\n transactionReferenceName: string;\r\n dealReferenceName: string;\r\n documents: DownloadedDocument[];\r\n notDownloadableDocNames: string[];\r\n}\r\n\r\nexport function DocsDownloadedTab({\r\n transactionReferenceName,\r\n dealReferenceName,\r\n documents,\r\n notDownloadableDocNames,\r\n}: Props) {\r\n const uniqueDocuments = useMemo(() => getUniqueDocsWithDownloadsCount(documents), [documents]);\r\n\r\n const { loadHandler, loadingState } = useDownloadDocumentList({\r\n documents: uniqueDocuments,\r\n downloadRequest: (referenceName: string, accessType: DownloadedDocumentAccessType) =>\r\n amrPipelineService.downloadStatisticDocument(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n referenceName,\r\n accessType,\r\n ),\r\n });\r\n\r\n const getDocumentDownloadLink = (document: DownloadedDocument) =>\r\n loadHandler(document.referenceName, document.name, document.accessType);\r\n\r\n if (!uniqueDocuments.length && !notDownloadableDocNames.length) {\r\n return ;\r\n }\r\n\r\n return (\r\n
      \r\n {notDownloadableDocNames?.map((docName, index) => (\r\n
    • \r\n {docName}\r\n
    • \r\n ))}\r\n {uniqueDocuments?.map((d) => (\r\n
    • \r\n getDocumentDownloadLink(d)}\r\n secondary\r\n isLoading={loadingState[d.referenceName]}\r\n loadingText\r\n >\r\n {d.name}\r\n \r\n {d.downloadCount > 1 && !loadingState[d.referenceName] && ` — ${d.downloadCount} downloads`}\r\n
    • \r\n ))}\r\n
    \r\n );\r\n}\r\n","import { TransactionViewHistory } from '../../../../../../../types/amr-pipeline/models/TransactionSession';\r\nimport { dateTimeUtils } from '../../../../../../../utils';\r\nimport { OnHoverTooltip } from '../../../../../../common';\r\nimport { Popover } from '../../../../../../controls';\r\nimport { TabItem, TabList } from '../../../../../../bidding/common/tab-list';\r\nimport { TabContent } from '../../../../../common/tabs/TabContent';\r\nimport { TransactionViewHistoryTabs } from './TransactionViewHistoryTabs';\r\nimport { useState } from 'react';\r\nimport { OverviewTab } from './OverviewTab';\r\nimport { ContactsTab } from './ContactsTab';\r\nimport { DocsDownloadedTab } from './DocsDownloadedTab';\r\nimport { times } from 'lodash';\r\nimport { RequiredFeature } from '../../../../../../access/RequiredFeature';\r\nimport { SubscriptionFeature } from '../../../../../../../types/billing/SubscriptionFeature';\r\n\r\ninterface Props {\r\n transactionReferenceName: string;\r\n dealReferenceName: string;\r\n userSession: TransactionViewHistory;\r\n children?: React.ReactNode;\r\n defaultTab?: TransactionViewHistoryTabs;\r\n}\r\n\r\nexport function TransactionViewHistoryPopover({\r\n transactionReferenceName,\r\n dealReferenceName,\r\n userSession,\r\n children,\r\n defaultTab = TransactionViewHistoryTabs.Overview,\r\n}: Props) {\r\n const [activeTab, setActiveTab] = useState(defaultTab);\r\n const formattedActionDate = dateTimeUtils.utcToLocalString(userSession.accessDateTime);\r\n\r\n const PseudoLink = (\r\n \r\n {children || formattedActionDate}\r\n \r\n );\r\n\r\n const setDefaultTab = () => setActiveTab(defaultTab);\r\n\r\n const downloadableDocuments = userSession.documentsList.filter(x => !!x.name);\r\n const notDownloadableDocNames = times(userSession.documents.ExportTargetPortfolio?.length, () => 'Target Portfolio.csv');\r\n\r\n const renderActiveTab = () => {\r\n switch (activeTab) {\r\n case TransactionViewHistoryTabs.DocsDownloaded:\r\n return (\r\n \r\n );\r\n case TransactionViewHistoryTabs.Contacts:\r\n return ;\r\n default:\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n return (\r\n {children || formattedActionDate}}\r\n >\r\n {userSession.userFullName}}\r\n actionButton={PseudoLink}\r\n onOpen={setDefaultTab}\r\n showCloseButton={true}\r\n >\r\n \r\n setActiveTab(TransactionViewHistoryTabs.Overview)}\r\n />\r\n setActiveTab(TransactionViewHistoryTabs.DocsDownloaded)}\r\n />\r\n setActiveTab(TransactionViewHistoryTabs.Contacts)}\r\n />\r\n \r\n {renderActiveTab()}\r\n \r\n \r\n );\r\n}\r\n","import { Link } from 'react-router-dom';\r\nimport { constants, routes, SORTING_TYPE } from '../../../../../../constants';\r\nimport { TransactionAccessTypes } from '../../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { TransactionViewHistory } from '../../../../../../types/amr-pipeline/models/TransactionSession';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { dateTimeUtils } from '../../../../../../utils';\r\nimport { RequiredFeature } from '../../../../../access/RequiredFeature';\r\nimport { ColumnBuilder } from '../../../../../bidding/common/table/columns/column-builder/ColumnBuilder';\r\nimport { IColumnDefinition } from '../../../../../bidding/common/table/types/ColumnDefinition';\r\nimport { OnHoverTooltip, Pluralize } from '../../../../../common';\r\nimport { TransactionViewHistoryPopover } from './TransactionViewHistoryPopover/TransactionViewHistoryPopover';\r\nimport { TransactionViewHistoryTabs } from './TransactionViewHistoryPopover/TransactionViewHistoryTabs';\r\nimport { ProportionBar } from '../../../../ProportionBar';\r\nimport { getDocumentCountBySession } from '../../../../../../utils/amr-pipeline.utils';\r\nimport FollowUp from '../../../../../common/FollowUp';\r\n\r\n\r\nconst transactionViewHistoryColumnsDefinition: IColumnDefinition[] = [\r\n {\r\n columnKey: 'transactionViews',\r\n renderColumnHeaderContent: () => 'Transaction Views',\r\n renderColumnContent: (userSession, { dealReferenceName, transactionReferenceName }) => (\r\n \r\n ),\r\n sortingField: 'accessDateTime',\r\n className: 'data-list-cell-lg',\r\n sortingType: SORTING_TYPE.date,\r\n },\r\n {\r\n columnKey: 'version',\r\n renderColumnHeaderContent: () => 'Version',\r\n renderColumnContent: (userSession, { dealReferenceName, transactionReferenceName }) => {\r\n const formattedVersionDate = dateTimeUtils.changeDateTimeZone(\r\n userSession.versionDate,\r\n constants.estTimezone,\r\n false\r\n ).format(constants.dateTimeFormat);\r\n\r\n return (\r\n `V.${userSession.version} ${formattedVersionDate}`}\r\n >\r\n \r\n V.{userSession.version} {formattedVersionDate}\r\n \r\n \r\n );\r\n },\r\n sortingField: 'version',\r\n className: 'data-list-cell-lg-02',\r\n sortingType: SORTING_TYPE.number,\r\n },\r\n {\r\n columnKey: 'tabsViewed',\r\n renderColumnHeaderContent: () => 'Tabs Viewed',\r\n renderColumnContent: userSession => {\r\n const views = userSession.views;\r\n\r\n return (\r\n ({\r\n title: t.text,\r\n value: views && userSession.views[t.value],\r\n color: t.color\r\n }))}\r\n />\r\n );\r\n },\r\n className: 'data-list-cell-lg-02',\r\n },\r\n {\r\n columnKey: 'docsDownloaded',\r\n renderColumnHeaderContent: () => 'Docs Downloaded',\r\n renderColumnContent: (userSession) => {\r\n const data = getDocumentCountBySession(userSession);\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n },\r\n className: 'data-list-cell-lg-02',\r\n },\r\n {\r\n columnKey: 'docsDownloadedSize',\r\n renderColumnHeaderContent: () => '',\r\n renderColumnContent: (userSession, { dealReferenceName, transactionReferenceName }) => {\r\n const data = getDocumentCountBySession(userSession);\r\n\r\n const totalViews =\r\n data.dealDocumentsViews +\r\n data.managerPresentationViews +\r\n data.targetPortfolioViews +\r\n data.intexFileViews +\r\n data.disclosureFileViews;\r\n\r\n return (\r\n <>\r\n {totalViews ? (\r\n \r\n \r\n \r\n ) : (\r\n constants.emptyPlaceholder\r\n )}\r\n \r\n );\r\n },\r\n className: 'data-list-cell-xs',\r\n },\r\n {\r\n columnKey: 'fullName',\r\n renderColumnHeaderContent: () => 'Full Name',\r\n renderColumnContent: (userSession, { dealReferenceName, transactionReferenceName }) => (\r\n \r\n {userSession.userFullName}\r\n \r\n ),\r\n sortingField: 'userFullName',\r\n className: 'data-list-cell-xl',\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: 'companyLegalName',\r\n renderColumnHeaderContent: () => 'Company',\r\n renderColumnContent: ({ companyLegalName }) => (\r\n \r\n {companyLegalName}\r\n \r\n ),\r\n sortingField: 'companyLegalName',\r\n className: 'data-list-cell-xl-xxl',\r\n sortingType: SORTING_TYPE.string,\r\n },\r\n {\r\n columnKey: 'follow-up',\r\n renderColumnHeaderContent: () => '',\r\n renderColumnContent: (userSession) => ,\r\n className: 'data-list-cell-md-flexible',\r\n }\r\n\r\n];\r\n\r\nexport const transactionViewHistoryColumns = () => transactionViewHistoryColumnsDefinition.map(c => new ColumnBuilder(c));\r\n\r\n","import { useMemo } from 'react';\r\nimport { TransactionViewHistory } from '../../../../../../types/amr-pipeline/models/TransactionSession';\r\nimport { Table } from '../../../../../bidding/common/table';\r\nimport { DashboardNoSelectedFilters } from '../../../../../dashboard/DashboardNoSelectedFilters';\r\nimport { transactionViewHistoryColumns } from './transactionViewHistory.columns';\r\nimport { TransactionAnalyticsFilter } from '../../../../../../types/analytics/AnalyticsFilter';\r\n\r\ninterface TransactionViewHistoryTableProps {\r\n transactionReferenceName: string;\r\n dealReferenceName: string;\r\n data: TransactionViewHistory[];\r\n filter: TransactionAnalyticsFilter;\r\n}\r\n\r\nexport const TransactionViewHistoryTable = ({ transactionReferenceName, dealReferenceName, data, filter }: TransactionViewHistoryTableProps) => {\r\n const filteredClientsActivity = useMemo(\r\n () =>\r\n data.filter(row => {\r\n if (filter.users.length && !filter.users.includes(row.userEmail)) {\r\n return false;\r\n }\r\n\r\n if (filter.tabs.length && !filter.tabs.some(accessType => row.views[accessType] > 0)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }),\r\n [data, filter.users, filter.tabs],\r\n );\r\n\r\n return filteredClientsActivity.length ? (\r\n ({ transactionReferenceName, dealReferenceName })}\r\n dataItems={filteredClientsActivity}\r\n columns={transactionViewHistoryColumns()}\r\n />\r\n ) : (\r\n \r\n );\r\n};\r\n","import { useDispatch, useSelector } from 'react-redux';\r\nimport { AppState } from '../../../../../../types/state/AppState';\r\nimport { amrTransactionAnalyticsActions } from '../../../../../../actions';\r\nimport { TransactionViewHistoryTable } from './TransactionViewHistoryTable';\r\nimport { OriginatingTransaction } from '../../../../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { SubscriptionFeature } from '../../../../../../types/billing/SubscriptionFeature';\r\nimport { user } from '../../../../../../user';\r\nimport { TransactionAnalyticsFilter } from '../../../../../../types/analytics/AnalyticsFilter';\r\nimport { TreeSelectOption } from '../../../../../controls/TreeSelect';\r\nimport { withAnalyticsRequest } from '../withAnalyticsRequest';\r\nimport { AnalyticsWidget } from '../../../../common/analytics/AnalyticsWidget';\r\nimport { TransactionAccessTypes } from '../../../../../../types/amr-pipeline/enums/TransactionAccessType';\r\nimport { BlockedFeatureContent, SubscribeLink } from \"../../../../../../components/access/BlockedFeatureText\";\r\n\r\ninterface TransactionViewHistoryWidgetProps {\r\n transaction: OriginatingTransaction;\r\n isLoaded: boolean;\r\n users: TreeSelectOption[];\r\n}\r\n\r\nconst selector = (state: AppState) => state.issuanceMonitor.amrPipelineDetailed.analytics.transactionHistoryViews;\r\n\r\nconst getAction = (dealReferenceName: string, transactionReferenceName: string, filter: TransactionAnalyticsFilter) => {\r\n return amrTransactionAnalyticsActions.transactionViewHistoryRequest(\r\n dealReferenceName,\r\n transactionReferenceName,\r\n filter.date.dateFrom || undefined,\r\n filter.date.dateTo || undefined,\r\n );\r\n};\r\n\r\nfunction TransactionViewHistoryWidgetComponent({ transaction, isLoaded, users }: TransactionViewHistoryWidgetProps) {\r\n const dispatch = useDispatch();\r\n\r\n const transactionHistoryViews = useSelector(selector);\r\n const { filter, data } = transactionHistoryViews;\r\n const { dealReferenceName, referenceName: transactionReferenceName } = transaction;\r\n\r\n const withImSubscription = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n\r\n const handleFilterChange = (filter: TransactionAnalyticsFilter) => {\r\n dispatch(amrTransactionAnalyticsActions.transactionViewHistoryFilterChange(filter));\r\n };\r\n\r\n const dataForTable = withImSubscription ? data : [data[0]];\r\n\r\n return (\r\n \r\n <>\r\n \r\n {!withImSubscription && (\r\n to see {data.length > 1 ? data.length - 1 : ''} more transactions view(s).}\r\n />\r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport const TransactionViewHistoryWidget = withAnalyticsRequest(getAction, selector)(TransactionViewHistoryWidgetComponent);\r\n","import { useEffect } from \"react\";\r\nimport { General } from \"./sections/General\";\r\nimport { TabBody } from \"../../../common/tabs/TabBody\";\r\nimport { DownloadedDocumentsType } from \"./sections/DownloadedDocumentsType\";\r\nimport { ViewedTabs } from \"./sections/ViewedTabs\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { AppState } from \"../../../../../types/state/AppState\";\r\nimport { EmptyPlaceholder } from \"../../../../common/EmptyPlaceholder\";\r\nimport { OriginatingTransaction } from \"../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { amrTransactionAnalyticsActions as actions } from \"../../../../../actions/amr-transaction-analytics.actions\";\r\nimport { Preloader } from \"../../../../common\";\r\nimport { ClientsActivityWidget } from './clientsActivity/ClientsActivityWidget';\r\nimport { TransactionViewHistoryWidget } from \"./transactionViewHistory/TransactionViewHistoryWidget\";\r\nimport { TransactionStatus } from \"../../../../../types/amr-pipeline/enums/TransactionStatus\";\r\nimport { StatusMessageSectionType } from \"../../../../../types/state/NotificationState\";\r\nimport { StatusMessageSection } from \"../../../../status-message/StatusMessageSection\";\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction;\r\n isLoading: boolean;\r\n}\r\n\r\nexport const Analytics = ({ transaction, isLoading }: Props) => {\r\n const dispatch = useDispatch();\r\n const analytics = useSelector(\r\n (state: AppState) => state.issuanceMonitor.amrPipelineDetailed.analytics\r\n );\r\n\r\n useEffect(() => {\r\n if (!transaction) {\r\n return;\r\n }\r\n\r\n dispatch(\r\n actions.analyticsInit(\r\n transaction.dealReferenceName,\r\n transaction.referenceName,\r\n )\r\n );\r\n\r\n return () => {\r\n dispatch(actions.reset());\r\n };\r\n }, [transaction, dispatch]);\r\n\r\n if (isLoading || analytics.isLoading) {\r\n return ;\r\n }\r\n\r\n const infoNotification = [\r\n TransactionStatus.Priced,\r\n TransactionStatus.Closed,\r\n ].includes(transaction.status) ? (\r\n
    \r\n \r\n Client analytics is calculated only from deal announcement to pricing\r\n \r\n
    \r\n ) : null;\r\n\r\n return (\r\n <>\r\n {infoNotification}\r\n \r\n {!!analytics.totalTransactionViews ? (\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
    \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};\r\n","import { IColumnDefinition } from \"../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { constants, SORTING_TYPE } from \"../../../../../constants\";\r\nimport { TransactionInvitedClient } from \"../../../../../types/amr-pipeline/models/TransactionInvitedClient\";\r\nimport moment from \"moment\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\nimport IconSVG from \"../../../../../styles/svg-icons\";\r\n\r\ninterface InvitedClientsTable extends TransactionInvitedClient {\r\n lastTransactionView?: Date;\r\n}\r\n\r\nconst invitedClientsColumnDefinitions: IColumnDefinition[] =\r\n [\r\n {\r\n columnKey: \"email\",\r\n renderColumnHeaderContent: () => \"Client Email\",\r\n renderColumnContent: (transactionClient) => transactionClient.email,\r\n className: \"data-list-cell-xl-xxl\",\r\n },\r\n {\r\n columnKey: \"invitationDate\",\r\n renderColumnHeaderContent: () => \"Invitation Date\",\r\n renderColumnContent: (transactionClient) =>\r\n moment(transactionClient.invitationDate).format(\r\n constants.dateFormat4\r\n ),\r\n sortingField: \"invitationDate\",\r\n className: \"data-list-cell-sm\",\r\n sortingType: SORTING_TYPE.date,\r\n },\r\n {\r\n columnKey: \"registrationDate\",\r\n renderColumnHeaderContent: () => \"Reg. Date\",\r\n renderColumnContent: (transactionClient) =>\r\n transactionClient.registrationDate\r\n ? moment(transactionClient.registrationDate).format(\r\n constants.dateFormat4\r\n )\r\n : constants.emptyPlaceholder,\r\n sortingField: \"registrationDate\",\r\n className: \"data-list-cell-sm\",\r\n sortingType: SORTING_TYPE.date,\r\n },\r\n {\r\n columnKey: \"lastTransactionView\",\r\n renderColumnHeaderContent: () => (\r\n <>\r\n Last Transaction View\r\n \r\n \r\n \r\n \r\n ),\r\n renderColumnContent: (transactionClient) =>\r\n transactionClient.lastTransactionView\r\n ? moment(transactionClient.lastTransactionView).format(\r\n constants.dateTimeFormat\r\n )\r\n : constants.emptyPlaceholder,\r\n sortingField: \"lastTransactionView\",\r\n className: \"data-list-cell-xl\",\r\n sortingType: SORTING_TYPE.date,\r\n },\r\n // AMR-8825 [staging] BWIC:: IM:: Detailed:: Invited clients:: Hide 'Last Login' column for the 5.6 BWIC release\r\n // {\r\n // columnKey: \"lastLoginDate\",\r\n // renderColumnHeaderContent: () => \"Last Login\",\r\n // renderColumnContent: (transactionClient) =>\r\n // transactionClient.lastLoginDate\r\n // ? moment(transactionClient.lastLoginDate).format(\r\n // constants.dateFormat4\r\n // )\r\n // : constants.emptyPlaceholder,\r\n // sortingField: \"lastLoginDate\",\r\n // className: \"data-list-cell-xs-flexible\",\r\n // sortingType: SORTING_TYPE.date,\r\n // },\r\n ];\r\n\r\nexport const invitedClientsColumns = invitedClientsColumnDefinitions.map((c) => new ColumnBuilder(c));\r\n","import { useEffect, useMemo, useState } from \"react\";\r\nimport { TabBody } from \"../../../common/tabs/TabBody\";\r\nimport { EmptyPlaceholder } from \"../../../../common/EmptyPlaceholder\";\r\nimport { OriginatingTransaction } from \"../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { Preloader } from \"../../../../common\";\r\nimport { Table } from \"../../../../bidding/common/table\";\r\nimport { invitedClientsColumns } from \"./invited-clients-columns\";\r\nimport { user } from \"../../../../../user\";\r\nimport { roles } from \"../../../../../constants\";\r\nimport { InviteClientsTransactionPopup } from \"../../../common/InviteClientsTransactionPopup/InviteClientsTransactionPopup\";\r\nimport { amrTransactionAnalyticsActions } from \"../../../../../actions\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { AppState } from \"../../../../../types/state/AppState\";\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction;\r\n isLoading: boolean;\r\n}\r\n\r\nexport const InvitedClients = ({ transaction, isLoading }: Props) => {\r\n const dispatch = useDispatch();\r\n const [emailToResend, setEmailToResend] = useState(null);\r\n const { invitedClients } = transaction;\r\n\r\n const isAdmin = user.hasRoles(...roles.admin());\r\n\r\n const transactionHistoryViews = useSelector(\r\n (state: AppState) =>\r\n state.issuanceMonitor.amrPipelineDetailed.analytics.transactionHistoryViews\r\n );\r\n\r\n const historyViewsData = transactionHistoryViews.data;\r\n\r\n const dataItems = useMemo(() => {\r\n return invitedClients?.map((client) => ({\r\n ...client,\r\n lastTransactionView: historyViewsData.find(\r\n (view) => client.email === view.userEmail\r\n )?.accessDateTime,\r\n }));\r\n }, [historyViewsData, invitedClients]);\r\n\r\n useEffect(() => {\r\n if (transaction.invitedClients?.length) {\r\n dispatch(\r\n amrTransactionAnalyticsActions.transactionViewHistoryRequest(\r\n transaction.dealReferenceName,\r\n transaction.referenceName,\r\n )\r\n );\r\n } else {\r\n dispatch(amrTransactionAnalyticsActions.transactionViewHistoryResponse([]));\r\n }\r\n\r\n return () => {\r\n dispatch(amrTransactionAnalyticsActions.reset());\r\n };\r\n }, [transaction, dispatch]);\r\n\r\n if (isLoading || transactionHistoryViews.isLoading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {invitedClients && invitedClients.length ? (\r\n <>\r\n ({\r\n setEmailToResend,\r\n })}\r\n />\r\n {emailToResend && (\r\n setEmailToResend(null)}\r\n />\r\n )}\r\n \r\n ) : (\r\n \r\n

    \r\n There are no invited clients yet.
    {\" \"}\r\n {!isAdmin &&\r\n \"To share the transaction with clients, click ‘Share’ button above.\"}\r\n

    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n","import moment from \"moment\";\r\nimport { constants, SORT, SORTING_TYPE } from \"../../../../../constants\";\r\nimport { ComparableDeal } from \"../../../../../types/amr-pipeline/models/ComparableDeal\";\r\nimport { SubscriptionFeature } from \"../../../../../types/billing/SubscriptionFeature\";\r\nimport { Table } from \"../../../../bidding/common/table\";\r\nimport { IColumnDefinition } from \"../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { CloManagerLink } from \"../../../../clo-managers/CloManagerLink\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\nimport { BankLink } from \"../../../common/BankLink\";\r\nimport { ImTransactionDetailsLink } from \"../../../common/ImTransactionDetailsLink\";\r\nimport { formatUtils } from \"../../../../../utils\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { RequiredFeature } from \"../../../../access/RequiredFeature\";\r\nimport { TransactionAccessTypeCollecting, TransactionAnalyticCollectingActions } from \"../../../../../types/amr-pipeline/enums/TransactionAccessType\";\r\nimport { useAppDispatch } from \"../../../../../effects/useAppDispatch\";\r\nimport { amrPipelineDetailedActions } from \"../../../../../actions\";\r\nimport { SubscribeLink } from \"../../../../access/BlockedFeatureText\";\r\nimport { OriginatingTransaction } from \"../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { compareBoolean, compareStrings } from \"../../../../../utils/compare.utils\";\r\n\r\ninterface ComparableDealTableItem extends ComparableDeal {\r\n arrangerText?: string,\r\n isCurrentTransaction: boolean\r\n}\r\n\r\nconst convertToTableItem = (t: ComparableDeal, isCurrentTransaction: boolean = false): ComparableDealTableItem => ({\r\n ...t,\r\n arrangerText: t.arrangerCode ?? t.arrangerLegalName,\r\n isCurrentTransaction\r\n});\r\n\r\nconst convertCurrentTransactionToTableItem = (t: OriginatingTransaction): ComparableDealTableItem =>\r\n convertToTableItem({\r\n dealLegalName: t.dealLegalName,\r\n dealReferenceName: t.dealReferenceName,\r\n transactionReferenceName: t.referenceName,\r\n managerLegalName: t.collateralManager?.legalName ?? '',\r\n managerReferenceName: t.collateralManager?.referenceName ?? '',\r\n arrangerLegalName: t.arranger?.legalName ?? '',\r\n arrangerCode: t.arranger?.code,\r\n arrangerReferenceName: t.arranger?.referenceName ?? '',\r\n pricingDate: t.pricingDate?.toString(),\r\n was: t.was,\r\n wal: t.wal,\r\n warf: t.warf,\r\n ds: t.ds\r\n }, true)\r\n\r\nconst sortByCurrentThenByDealName = (a: ComparableDealTableItem, b: ComparableDealTableItem) =>\r\n compareBoolean(a.isCurrentTransaction, b.isCurrentTransaction) || compareStrings(a.dealLegalName, b.dealLegalName)\r\n\r\ninterface Props {\r\n currentTransaction: OriginatingTransaction\r\n deals: ComparableDeal[]\r\n}\r\n\r\nexport function ComparableDealTable({ currentTransaction, deals }: Props) {\r\n const dispatch = useAppDispatch();\r\n\r\n const logUserActivity = (action: TransactionAccessTypeCollecting, dealReferenceName: string, transactionReferenceName: string) => {\r\n dispatch(amrPipelineDetailedActions.logTabAccess(dealReferenceName, transactionReferenceName, action));\r\n }\r\n\r\n const columns: IColumnDefinition[] = [{\r\n columnKey: 'thisTransactopnFlag',\r\n renderColumnHeaderContent: () => '',\r\n renderColumnContent: deal => deal.transactionReferenceName === currentTransaction.referenceName\r\n ? THIS : null,\r\n className: 'data-list-cell-xxs-02',\r\n\r\n }, {\r\n columnKey: 'dealLegalName',\r\n renderColumnHeaderContent: () => 'Deal Name',\r\n renderColumnContent: deal =>\r\n \r\n logUserActivity(\r\n TransactionAnalyticCollectingActions.ComparableDealsDeal,\r\n deal.dealReferenceName,\r\n deal.transactionReferenceName,\r\n )\r\n }\r\n dealReferenceName={deal.dealReferenceName}\r\n transactionReferenceName={deal.transactionReferenceName}\r\n requiredFeatures={[SubscriptionFeature.IssuanceMonitorFullAccess]}\r\n >\r\n \r\n {deal.dealLegalName}\r\n \r\n ,\r\n sortingField: 'dealLegalName',\r\n className: 'data-list-cell-md-flexible padding-l-0',\r\n sortingType: SORTING_TYPE.string,\r\n }, {\r\n columnKey: 'collateralManager',\r\n renderColumnHeaderContent: () => 'Manager',\r\n renderColumnContent: deal =>\r\n deal.managerReferenceName && deal.managerLegalName ? (\r\n \r\n logUserActivity(\r\n TransactionAnalyticCollectingActions.ComparableDealsManager,\r\n deal.dealReferenceName,\r\n deal.transactionReferenceName,\r\n )\r\n }\r\n referenceName={deal.managerReferenceName}\r\n legalName={deal.managerLegalName}\r\n />) : constants.emptyPlaceholder\r\n ,\r\n sortingField: \"managerLegalName\",\r\n sortingType: SORTING_TYPE.string,\r\n className: 'data-list-cell-lg-02-flexible',\r\n }, {\r\n columnKey: 'arranger',\r\n renderColumnHeaderContent: () => \"Arranger\",\r\n renderColumnContent: deal =>\r\n deal.arrangerReferenceName && deal.arrangerText && deal.arrangerLegalName ? (\r\n logUserActivity(\r\n TransactionAnalyticCollectingActions.ComparableDealsArranger,\r\n deal.dealReferenceName,\r\n deal.transactionReferenceName,\r\n )}\r\n legalName={deal.arrangerText}\r\n referenceName={deal.arrangerReferenceName}\r\n overlayText={deal.arrangerLegalName}\r\n />\r\n ) : constants.emptyPlaceholder,\r\n sortingField: \"arrangerText\",\r\n sortingType: SORTING_TYPE.string\r\n }, {\r\n columnKey: \"pricingDate\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Pricing\r\n \r\n ),\r\n renderColumnContent: deal =>\r\n deal.pricingDate\r\n ? moment(deal.pricingDate).format(constants.dateFormat)\r\n : constants.emptyPlaceholder,\r\n className: \"data-list-cell-sm\",\r\n sortingField: \"pricingDate\",\r\n sortingType: SORTING_TYPE.date\r\n }, {\r\n columnKey: 'was',\r\n renderColumnHeaderContent: () => \"WAS, %\",\r\n renderColumnContent: deal => deal.was ? formatUtils.formatDecimal(deal.was, 2) : constants.emptyPlaceholder,\r\n sortingField: \"was\",\r\n sortingType: SORTING_TYPE.number,\r\n className: 'text-right',\r\n }, {\r\n columnKey: 'wal',\r\n renderColumnHeaderContent: () => \"WAL\",\r\n renderColumnContent: deal => deal.wal ? formatUtils.formatDecimal(deal.wal, 2) : constants.emptyPlaceholder,\r\n sortingField: \"wal\",\r\n sortingType: SORTING_TYPE.number,\r\n className: 'data-list-cell-xs text-right',\r\n }, {\r\n columnKey: 'warf',\r\n renderColumnHeaderContent: () => \"WARF\",\r\n renderColumnContent: deal => deal.warf\r\n ? deal.warf.toLocaleString(\r\n 'en-US', {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n }) : constants.emptyPlaceholder,\r\n sortingField: \"warf\",\r\n sortingType: SORTING_TYPE.number,\r\n className: 'text-right',\r\n }, {\r\n columnKey: 'ds',\r\n renderColumnHeaderContent: () => \"DS\",\r\n renderColumnContent: deal => deal.ds ? formatUtils.formatDecimal(deal.ds, 2) : constants.emptyPlaceholder,\r\n sortingField: \"ds\",\r\n sortingType: SORTING_TYPE.number,\r\n className: 'data-list-cell-xs text-right',\r\n }]\r\n\r\n return (\r\n \r\n to see the Comparable Transactions.\r\n \r\n }\r\n >\r\n convertToTableItem(d))\r\n .concat(convertCurrentTransactionToTableItem(currentTransaction))\r\n .sort(sortByCurrentThenByDealName)\r\n }\r\n columns={columns.map(c => new ColumnBuilder(c))}\r\n />\r\n \r\n )\r\n}\r\n","import { lowerCase } from \"lodash\";\r\nimport { useMemo } from \"react\";\r\nimport { RequestState } from \"../../../../../constants/request-state\";\r\nimport { SubscriptionFeature } from \"../../../../../types/billing/SubscriptionFeature\";\r\nimport { isRequesting } from \"../../../../../utils\";\r\nimport { ChartRequiredFeature } from \"../../../../access/ChartRequiredFeature\";\r\nimport { DashboardSkeleton } from \"../../../../dashboard/DashboardSkeleton\";\r\nimport { DashboardWidget, DashboardWidgetContent, DashboardWidgetHeader } from \"../../../../dashboard/widget\";\r\nimport { DashboardNoData } from \"../../../../dashboard/DashboardNoData\";\r\nimport { IssuanceSpreadBase } from \"../../../../../types/dashboard/IssuanceSpread\";\r\nimport { IssuanceSpreadChart } from \"../../../../dashboard/usBslNewIssueSpreads/IssuanceSpreadChart\";\r\nimport { isSpreadEmpty } from \"./ComparativeMetrics\";\r\n\r\ninterface Props {\r\n title: string\r\n description: string\r\n requestState: RequestState\r\n comparableSpread?: IssuanceSpreadBase\r\n dealSpread: IssuanceSpreadBase\r\n field: keyof Pick;\r\n divId: string\r\n chartNameLimitedPlan?: string\r\n}\r\n\r\nexport function ComparativeMetricsWidget({ title, description, requestState, comparableSpread, dealSpread, field, divId, chartNameLimitedPlan }: Props) {\r\n const getDimension = (spread: IssuanceSpreadBase) =>\r\n spread === comparableSpread ? \"Comparable Deals\" : \"This Deal\"\r\n\r\n const hasDataToCompare =\r\n comparableSpread != null &&\r\n !isSpreadEmpty(comparableSpread?.[field]) &&\r\n !isSpreadEmpty(dealSpread?.[field])\r\n\r\n const chart = useMemo(() =>\r\n spread[field]}\r\n divId={divId}\r\n getDimension={getDimension}\r\n />,\r\n // eslint-disable-next-line\r\n [comparableSpread, dealSpread, divId, field]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

    {title}

    \r\n
    \r\n \r\n {hasDataToCompare ? (\r\n chart\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n}","import { Fragment } from 'react'\r\nimport moment from \"moment\";\r\nimport { OriginatingTransaction } from \"../../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { IssuanceSpreadBase, Spread } from \"../../../../../types/dashboard/IssuanceSpread\";\r\nimport { Currency } from \"../../../../../types/enums/Currency\";\r\nimport { isRequestSuccess } from \"../../../../../utils\";\r\nimport { EmptyPlaceholder, Preloader } from \"../../../../common\";\r\nimport { SectionContent } from \"../../../common/section/SectionContent\";\r\nimport { TabBody } from \"../../../common/tabs/TabBody\";\r\nimport { ComparableDealTable } from \"./ComparableDealTable\";\r\nimport { ComparativeMetricsWidget } from \"./ComparativeMetricsWidget\";\r\nimport { useDealComparativeMetrics } from \"./hooks/useDealComparativeMetrics\";\r\nimport { constants } from \"../../../../../constants\";\r\nimport { collateralTypesAbbr } from \"../../../../../constants/collateral-types\";\r\nimport { TransactionTypes } from '../../../../../types/amr-pipeline/enums/TransactionType';\r\nimport { EmptyMarkerSpread } from '../../../../dashboard/usBslNewIssueSpreads/IssuanceSpreadChart';\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction\r\n isLoading: boolean\r\n}\r\n\r\nconst STATS_DAYS = 30;\r\n\r\nexport function isSpreadEmpty(spread?: Spread) {\r\n return !spread?.count\r\n}\r\n\r\nexport function ComparativeMetrics({ transaction, isLoading }: Props) {\r\n const { requestState, metrics } =\r\n useDealComparativeMetrics(transaction.dealReferenceName, transaction.referenceName);\r\n\r\n const createSpreadFromSingleValue = (value?: number): Spread =>\r\n value == null ? {\r\n min: 0,\r\n q1: 0,\r\n median: metrics?.statsWAS ?? 0,\r\n q3: 0,\r\n max: 0,\r\n count: 1,\r\n emptyMarker: true\r\n } as EmptyMarkerSpread : {\r\n min: value,\r\n q1: value,\r\n median: value,\r\n q3: value,\r\n max: value,\r\n count: 1,\r\n }\r\n\r\n const comparableSpread: IssuanceSpreadBase = {\r\n was: metrics?.statsWAS,\r\n wal: metrics?.statsWAL,\r\n warf: metrics?.statsWARF,\r\n ds: metrics?.statsDS\r\n }\r\n\r\n const dealSpread: IssuanceSpreadBase = {\r\n was: createSpreadFromSingleValue(metrics?.currentWAS),\r\n wal: createSpreadFromSingleValue(metrics?.currentWAL),\r\n warf: createSpreadFromSingleValue(metrics?.currentWARF),\r\n ds: createSpreadFromSingleValue(metrics?.currentDS)\r\n }\r\n\r\n const getCurrency = () => {\r\n if (transaction.currency?.code === Currency.USD) return 'US';\r\n if (transaction.currency?.code === Currency.EUR) return 'EU';\r\n return '';\r\n }\r\n\r\n const getTerm = () => {\r\n if (metrics?.isLong == null) return ''\r\n return metrics?.isLong ? 'long-term' : 'short-term '\r\n }\r\n\r\n const getTransactionType = () =>\r\n TransactionTypes.find(x => x.value === transaction.type)?.text.toLowerCase()\r\n\r\n const renderDescription = () => [\r\n Active and Priced,\r\n {getCurrency() ? {getCurrency()} : null},\r\n {collateralTypesAbbr[transaction.collateralType]},\r\n {getTerm() ? {getTerm()} : null},\r\n {getTransactionType()},\r\n `deals on the Issuance Monitor ${STATS_DAYS} days before`,\r\n moment(metrics?.date).format(constants.dateFormat),\r\n ({metrics?.count.toString()} transactions).\r\n ]\r\n .filter(x => x)\r\n .map(x => [x, ' '])\r\n .flat();\r\n\r\n const hasData = isRequestSuccess(requestState) && !!metrics?.count\r\n\r\n const renderContent = () =>\r\n <>\r\n \r\n

    {renderDescription()}

    \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
    \r\n
    \r\n
    \r\n {\r\n metrics?.comparableDeals.length &&\r\n \r\n \r\n \r\n }\r\n \r\n\r\n return (\r\n \r\n \r\n {hasData ? renderContent() : }\r\n \r\n \r\n )\r\n}\r\n","import { useEffect, useState } from \"react\";\r\nimport { RequestState } from \"../../../../../../constants/request-state\";\r\nimport { useAppDispatch } from \"../../../../../../effects/useAppDispatch\";\r\nimport { errorActions } from \"../../../../../../actions\";\r\nimport { ComparableDealMetrics } from \"../../../../../../types/amr-pipeline/models/ComparableDeal\";\r\nimport { amrPipelineService } from \"../../../../../../services/amr-pipeline.service\";\r\nimport { isRequestNone } from \"../../../../../../utils\";\r\n\r\nexport function useDealComparativeMetrics(dealReferenceName: string, transactionReferenceName: string) {\r\n const dispatch = useAppDispatch();\r\n\r\n const [requestState, setRequestState] = useState(RequestState.none)\r\n const [metrics, setMetrics] = useState(null);\r\n\r\n useEffect(() => {\r\n if (!isRequestNone(requestState) || !dealReferenceName || !transactionReferenceName) return;\r\n\r\n const doRequest = async () => {\r\n setRequestState(RequestState.request)\r\n\r\n try {\r\n const metrics = await amrPipelineService.getDealComparableMetrics(\r\n dealReferenceName, transactionReferenceName);\r\n setMetrics(metrics);\r\n setRequestState(RequestState.success);\r\n } catch (e) {\r\n setRequestState(RequestState.failure);\r\n dispatch(errorActions.error(e));\r\n }\r\n }\r\n\r\n doRequest();\r\n }, [requestState, metrics, dealReferenceName, transactionReferenceName, dispatch])\r\n\r\n return { requestState, metrics };\r\n}","import { useContext, useEffect } from \"react\";\r\nimport { amrPipelineDetailedActions } from \"../../../../actions\";\r\nimport { roles, routes } from \"../../../../constants\";\r\nimport { OriginatingTransaction } from \"../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { TabList, TabItem } from \"../../../bidding/common/tab-list\";\r\nimport { TransactionsTabTypes } from \"../../types/TransactionsTabTypes\";\r\nimport { Documents } from \"./documents/Documents\";\r\nimport { DealOverview } from \"./deal-overview/DealOverview\";\r\nimport { DealStructure } from \"./deal-structure/DealStructure\";\r\nimport { TargetPortfolio } from \"./target-portfolio/TargetPortfolio\";\r\nimport { Preloader } from \"../../../common\";\r\nimport { TabContent } from \"../../common/tabs/TabContent\";\r\nimport { IOIs } from \"./ioi/IOIs\";\r\nimport { Analytics } from \"./analytics/Analytics\";\r\nimport { IOI } from \"../../../../types/amr-pipeline/models/IOI\";\r\nimport { user } from \"../../../../user\";\r\nimport { Difference } from '../../../../utils/differ/types';\r\nimport { OriginatingTransactionDiff } from '../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { useHistory } from 'react-router';\r\nimport TransactionContext from '../../transactionContext';\r\nimport { PipelineDetailedTabTypes } from \"../../types/PipelineDetailedTabTypes\";\r\nimport { InvitedClients } from \"./invited-clients/InvitedClients\";\r\nimport { TransactionStatus } from \"../../../../types/amr-pipeline/enums/TransactionStatus\";\r\nimport { useAppDispatch } from \"../../../../effects/useAppDispatch\";\r\nimport { ComparativeMetrics } from \"./comparative-metrics/ComparativeMetrics\";\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction;\r\n difference?: Difference;\r\n activeTab?: TransactionsTabTypes;\r\n activeSelectionPanelTab?: PipelineDetailedTabTypes;\r\n disabled?: boolean;\r\n isLoading: boolean;\r\n onNavigate?: (tab: string) => void;\r\n}\r\n\r\nexport const OriginatingTransactionDetails = ({\r\n transaction,\r\n difference,\r\n activeTab = TransactionsTabTypes.overview,\r\n activeSelectionPanelTab = PipelineDetailedTabTypes.all,\r\n disabled,\r\n isLoading,\r\n onNavigate,\r\n}: Props) => {\r\n const dispatch = useAppDispatch();\r\n const history = useHistory();\r\n\r\n const { limitedAccess, analyticsAccess, invitedClientsAccess, ioisAccess } = useContext(TransactionContext);\r\n\r\n const isMedia = user.hasRoles(roles.Media);\r\n\r\n const { referenceName, dealReferenceName } = transaction;\r\n const isOriginatingWithoutHistory = !difference;\r\n const { iois, status, isDetailsLoaded } = transaction;\r\n const isTransactionNonDraft = status !== TransactionStatus.Draft;\r\n\r\n const isSeller = user.hasRoles(roles.SellerTrader);\r\n const unreadIOIs = iois && !isSeller ? iois.filter((ioi: IOI) => !ioi.isRead).length : null;\r\n\r\n const renderActiveTab = () => {\r\n if (activeTab === TransactionsTabTypes.structure) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (activeTab === TransactionsTabTypes.portfolio && !limitedAccess && !isMedia) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (activeTab === TransactionsTabTypes.documents && !limitedAccess && !isMedia) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (activeTab === TransactionsTabTypes.IOIs && iois && ioisAccess) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n if (activeTab === TransactionsTabTypes.analytics && analyticsAccess) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n if (activeTab === TransactionsTabTypes.invitedClients && invitedClientsAccess) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n if (activeTab === TransactionsTabTypes.comparativeMetrics) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n );\r\n\r\n };\r\n\r\n const handleTabChange = (tab: string) => {\r\n if (onNavigate) {\r\n return onNavigate(tab);\r\n }\r\n\r\n return history.replace(routes.transactionDetailUrl(referenceName, dealReferenceName, tab));\r\n };\r\n\r\n useEffect(() => {\r\n // History mode — do not load details\r\n if (difference) {\r\n return;\r\n }\r\n\r\n dispatch(\r\n amrPipelineDetailedActions.loadTransactionDetails(\r\n dealReferenceName,\r\n referenceName,\r\n isOriginatingWithoutHistory\r\n )\r\n );\r\n }, [\r\n dispatch,\r\n dealReferenceName,\r\n referenceName,\r\n isOriginatingWithoutHistory,\r\n transaction,\r\n difference,\r\n ]);\r\n\r\n return (\r\n <>\r\n \r\n handleTabChange(TransactionsTabTypes.overview)}\r\n disabled={\r\n (disabled && activeTab !== TransactionsTabTypes.overview)\r\n }\r\n />\r\n handleTabChange(TransactionsTabTypes.structure)}\r\n disabled={\r\n (disabled && activeTab !== TransactionsTabTypes.structure)\r\n }\r\n />\r\n {!limitedAccess && !isMedia && (\r\n handleTabChange(TransactionsTabTypes.portfolio)}\r\n disabled={\r\n (disabled && activeTab !== TransactionsTabTypes.portfolio)\r\n }\r\n />\r\n )}\r\n {isOriginatingWithoutHistory &&\r\n handleTabChange(TransactionsTabTypes.comparativeMetrics)}\r\n disabled={\r\n (disabled && activeTab !== TransactionsTabTypes.comparativeMetrics)\r\n }\r\n />\r\n }\r\n {!limitedAccess && !isMedia && (\r\n handleTabChange(TransactionsTabTypes.documents)}\r\n disabled={\r\n (disabled && activeTab !== TransactionsTabTypes.documents)\r\n }\r\n />\r\n )}\r\n\r\n {ioisAccess && isOriginatingWithoutHistory && isTransactionNonDraft && (\r\n \r\n IOIs\r\n {unreadIOIs ? : null}\r\n \r\n }\r\n onClick={() => handleTabChange(TransactionsTabTypes.IOIs)}\r\n disabled={disabled && activeTab !== TransactionsTabTypes.IOIs}\r\n />\r\n )}\r\n {analyticsAccess && isOriginatingWithoutHistory && (\r\n handleTabChange(TransactionsTabTypes.analytics)}\r\n disabled={disabled && activeTab !== TransactionsTabTypes.analytics}\r\n />\r\n )}\r\n {invitedClientsAccess && isOriginatingWithoutHistory && (\r\n handleTabChange(TransactionsTabTypes.invitedClients)}\r\n disabled={disabled && activeTab !== TransactionsTabTypes.invitedClients}\r\n />\r\n )}\r\n \r\n {!isDetailsLoaded ? : renderActiveTab()}\r\n \r\n );\r\n};\r\n","import { useContext } from 'react';\r\nimport { constants, roles } from '../../../constants';\r\nimport { TransactionType } from '../../../types/amr-pipeline/enums/TransactionType';\r\nimport { AmrTransaction } from '../../../types/amr-pipeline/models/AmrTransaction';\r\nimport { OriginatingTransaction } from '../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { dateTimeUtils } from '../../../utils';\r\nimport { OnHoverTooltip } from '../../common';\r\nimport { Transaction } from '../../../types/amr-pipeline/models/Transaction';\r\nimport { TransactionStatus } from '../../../types/amr-pipeline/enums/TransactionStatus';\r\nimport IconSVG from '../../../styles/svg-icons';\r\nimport { NewDebutAmrLabel } from '../common/NewDebutAmrLabel';\r\nimport IssuanceMonitorBreadcrumbs from '../IssuanceMonitorBreadcrumbs';\r\nimport { TransactionHistoryLink } from '../common/TransactionHistoryLink';\r\nimport { DealUpdatesPopover } from '../aggregated/DealUpdatesPopover';\r\nimport { isBrokerDealersOwnTransaction } from '../../../utils/amr-pipeline.utils';\r\nimport { Company } from '../../../types/amr-pipeline/models/Company';\r\nimport { IntexButton } from '../aggregated/IntexButton/IntexButton';\r\nimport { ShowFor } from '../../access';\r\nimport TransactionContext from '../transactionContext';\r\nimport { user } from '../../../user';\r\nimport { AmrClass } from '../../../types/amr-pipeline/models/AmrClass';\r\nimport { BloombergLink } from '../../common/BloombergLink';\r\nimport { ValitanaLink } from '../../common/ValitanaLink';\r\nimport { TransactionAlertsButton } from '../common/transactionAlerts/TransactionAlertsButton';\r\nimport { AddToPortfolioLink } from '../common/AddToPortfolioLink';\r\nimport { RoleActionBlocker } from '../../access/RoleActionBlocker';\r\nimport { ActionBlocker } from '../../access/ActionBlocker';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { RelatedTransDropdown } from '../common/RelatedTransDropdown';\r\n\r\n\r\nconst allRolesWithoutArrangersClient = roles.getAllRolesExclude(roles.ArrangersClient);\r\n\r\nexport enum HeaderAction {\r\n SyndicateContacts,\r\n Intex,\r\n ShareTransaction,\r\n Alerts\r\n}\r\n\r\ninterface HeaderProps {\r\n selectedTransaction: OriginatingTransaction | AmrTransaction;\r\n currentClass?: AmrClass;\r\n onActionClick: (action: HeaderAction) => void;\r\n isClassActive?: boolean;\r\n userCompany?: Company;\r\n}\r\n\r\nconst Header = ({\r\n selectedTransaction,\r\n currentClass,\r\n onActionClick,\r\n isClassActive = false,\r\n userCompany,\r\n}: HeaderProps) => {\r\n const isArrangerBrokerDealer = isBrokerDealersOwnTransaction(selectedTransaction, userCompany);\r\n const { limitedAccess } = useContext(TransactionContext);\r\n\r\n const {\r\n referenceName,\r\n dealReferenceName,\r\n dealLegalName,\r\n status,\r\n type,\r\n } = selectedTransaction;\r\n const { syndicateContacts } = selectedTransaction as OriginatingTransaction;\r\n\r\n const withSyndicateContacts = !!syndicateContacts?.length;\r\n const isOriginatingTransaction = type !== TransactionType.amr;\r\n\r\n const isArrangersClient = user.hasSingleRole(roles.ArrangersClient);\r\n\r\n const formatLastUpdated = (transaction: Transaction, format = constants.dateFormat) =>\r\n transaction.lastUpdated\r\n ? dateTimeUtils.utcToLocalString(transaction.lastUpdated, format)\r\n : constants.emptyPlaceholder;\r\n\r\n const renderLastUpdated = (transaction: Transaction) => {\r\n return (\r\n \r\n {blocked => {\r\n const {\r\n referenceName,\r\n dealReferenceName,\r\n dealLegalName,\r\n lastUpdated,\r\n type,\r\n status,\r\n version,\r\n dealUpdates,\r\n } = transaction as OriginatingTransaction;\r\n\r\n return (\r\n \r\n );\r\n }}\r\n \r\n );\r\n };\r\n\r\n const renderTitle = () => {\r\n return !isOriginatingTransaction && currentClass?.name ? `Class ${currentClass.name}` : dealLegalName;\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n

    {renderTitle()}

    \r\n
    \r\n
    \r\n {isOriginatingTransaction && (\r\n <>\r\n {isArrangerBrokerDealer && (\r\n \r\n onActionClick(HeaderAction.ShareTransaction)}\r\n >\r\n \r\n Share\r\n \r\n \r\n )}\r\n {status !== TransactionStatus.Closed && (\r\n
    \r\n onActionClick(HeaderAction.Alerts)}\r\n />\r\n
    \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {[\r\n TransactionStatus.Active,\r\n TransactionStatus.Priced,\r\n TransactionStatus.Draft,\r\n TransactionStatus.OnHold,\r\n TransactionStatus.Closed,\r\n ].includes(status)\r\n ? renderLastUpdated(selectedTransaction)\r\n : formatLastUpdated(selectedTransaction)}\r\n
    \r\n\r\n {isOriginatingTransaction && status !== TransactionStatus.Draft && (\r\n
    \r\n \r\n {blocked => (\r\n \r\n )}\r\n \r\n
    \r\n )}\r\n \r\n {blockedByRole => (\r\n \r\n {blocked => (\r\n
    \r\n 1}\r\n />\r\n
    \r\n )}\r\n \r\n )}\r\n
    \r\n {currentClass && (\r\n \r\n )}\r\n {isOriginatingTransaction && !limitedAccess && (\r\n
    \r\n \r\n onActionClick(HeaderAction.SyndicateContacts)\r\n : undefined\r\n }\r\n >\r\n \r\n Syndicate\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n onActionClick(HeaderAction.Intex)}\r\n asyncFileLoad={false}\r\n />\r\n
    \r\n {currentClass && (\r\n
    \r\n \r\n
    \r\n )}\r\n {currentClass && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","export enum AmrDealTabTypes {\r\n details = 'details',\r\n classes = 'classes',\r\n documents = 'documents'\r\n}\r\n","import { startCase } from \"lodash\";\r\nimport moment from 'moment';\r\nimport { Link } from 'react-router-dom';\r\nimport { constants, roles, routes } from '../../../../../constants';\r\nimport { collateralTypes } from '../../../../../constants/collateral-types';\r\nimport { AmrTransaction } from '../../../../../types/amr-pipeline/models/AmrTransaction';\r\nimport { Deal } from '../../../../../types/amr-pipeline/models/Deal';\r\nimport { formatUtils, moneyUtils, numericUtils } from '../../../../../utils';\r\nimport { FormField } from '../../../common/FormField';\r\nimport { SectionContent } from '../../../common/section/SectionContent';\r\nimport { TabBody } from '../../../common/tabs/TabBody';\r\nimport { renderMarkdownOrEmpty } from '../../../../common/markdown-editor';\r\nimport IconSVG from '../../../../../styles/svg-icons';\r\nimport StatusLabel from \"../../../StatusLabel\";\r\nimport { ManagerLink } from '../../../common/ManagerLink';\r\nimport { ImSubscriptionActionBlocker } from \"../../../subscription/ImSubscriptionActionBlocker\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\nimport { ShowFor } from \"../../../../access\";\r\nimport { useEffect, useRef } from \"react\";\r\n\r\ninterface DetailsProps {\r\n transaction: AmrTransaction,\r\n deal: Deal\r\n}\r\n\r\nexport function Details({ transaction, deal }: DetailsProps) {\r\n const wrapperRef = useRef(null);\r\n const dateOrDefault = (date?: Date): string => date ? moment(date).format(constants.dateFormat) : constants.emptyPlaceholder;\r\n\r\n const renderTrusteeField = () => {\r\n if (!deal.trustee) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {deal.trustee.legalName}\r\n \r\n
    \r\n\r\n \r\n {blocked =>\r\n blocked\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 };\r\n\r\n const renderCollateralManagerField = () => {\r\n if (!transaction.collateralManager) {\r\n return constants.emptyPlaceholder;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {blocked =>\r\n blocked ? (\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 );\r\n };\r\n \r\n useEffect(() => {\r\n if (wrapperRef.current) {\r\n wrapperRef?.current.scrollIntoView();\r\n }\r\n }, [transaction.referenceName]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n {startCase(transaction.type)}\r\n \r\n \r\n }\r\n className=\"data-item-row-full-height\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n {\r\n deal.issuer\r\n ? deal.issuer.legalName\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n {\r\n deal.coIssuer\r\n ? deal.coIssuer.legalName\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n {renderCollateralManagerField()}\r\n \r\n {renderTrusteeField()}\r\n \r\n \r\n {\r\n deal.amrAgent\r\n ? deal.amrAgent.legalName\r\n : constants.emptyPlaceholder\r\n }\r\n \r\n \r\n {\r\n deal.majorityEquity\r\n ? deal.majorityEquity.legalName\r\n : constants.emptyPlaceholder\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
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n {renderMarkdownOrEmpty(transaction.euRiskRetentionRequirements)}\r\n \r\n \r\n {renderMarkdownOrEmpty(transaction.euDisclosureRequirements)}\r\n \r\n \r\n \r\n {renderMarkdownOrEmpty(transaction.esgComment)}\r\n \r\n {/* Temporary Enhanced CLO hiding */}\r\n {/* */}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport { AmrTrancheStatus } from \"../../../../../types/amr-pipeline/enums/AmrTrancheStatus\";\r\nimport { Table } from \"../../../../bidding/common/table\";\r\nimport { TabBody } from \"../../../common/tabs/TabBody\";\r\nimport { classesColumns } from \"./classes-columns\";\r\nimport { AmrTransaction } from \"../../../../../types/amr-pipeline/models/AmrTransaction\";\r\n\r\ninterface ClassesProps {\r\n transaction: AmrTransaction;\r\n}\r\n\r\nexport function Classes({ transaction }: ClassesProps) {\r\n return (\r\n \r\n c.status !== AmrTrancheStatus.Initiated)}\r\n columns={classesColumns()}\r\n createSecurityCustomArgs={() => ({ transaction })}\r\n />\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { IColumnDefinition } from \"../../../../bidding/common/table/types/ColumnDefinition\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\nimport { constants, routes } from \"../../../../../constants\";\r\nimport { formatUtils, moneyUtils, numericUtils } from \"../../../../../utils\";\r\nimport { AmrClassStatusLabel } from \"../../../common/AmrClassStatusLabel\";\r\nimport moment from \"moment\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { NonAmrPeriod } from \"../../../common/NonAmrPeriod\";\r\nimport { AmrClass } from \"../../../../../types/amr-pipeline/models/AmrClass\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\nimport { BloombergLink } from \"../../../../common/BloombergLink\";\r\nimport { ValitanaLink } from \"../../../../common/ValitanaLink\";\r\nimport { AddToPortfolioLink } from \"../../../common/AddToPortfolioLink\";\r\n\r\nexport const classesColumns = () => {\r\n const classesColumnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: \"auctionState\",\r\n renderColumnHeaderContent: () => \"Auction State\",\r\n renderColumnContent: (amrClass) => ,\r\n headerClassName: \"data-list-cell-lg\",\r\n bodyClassName: \"data-list-cell-lg\",\r\n },\r\n {\r\n columnKey: \"pricingDate\",\r\n renderColumnHeaderContent: () => (\r\n \r\n AMR Pricing\r\n \r\n ),\r\n renderColumnContent: (amrClass) =>\r\n moment(amrClass.pricingDate).format(constants.dateFormat),\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: \"className\",\r\n renderColumnHeaderContent: () => \"Class\",\r\n renderColumnContent: (amrClass, { transaction }) => (\r\n \r\n \r\n {amrClass.name}\r\n \r\n \r\n ),\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: \"cusip\",\r\n renderColumnHeaderContent: () => \"CUSIP (144A)\",\r\n renderColumnContent: (amrClass) => (\r\n \r\n {amrClass.cusip}\r\n \r\n ),\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: \"rating\",\r\n renderColumnHeaderContent: () => \"Rtg (M/S/F/K/D)\",\r\n renderColumnContent: (amrClass) =>\r\n `${\r\n amrClass.ratingMoodys || constants.emptyPlaceholder\r\n }/${amrClass.ratingSnP || constants.emptyPlaceholder}/${\r\n amrClass.ratingFitch || constants.emptyPlaceholder\r\n }/${\r\n amrClass.ratingKbra || constants.emptyPlaceholder\r\n }/${amrClass.ratingDbrs || constants.emptyPlaceholder}`,\r\n headerClassName: \"data-list-cell-xl\",\r\n bodyClassName: \"data-list-cell-xl\",\r\n },\r\n {\r\n columnKey: \"balance\",\r\n renderColumnHeaderContent: () => \"Cur Bal\",\r\n renderColumnContent: (amrClass) =>\r\n amrClass.balance != null && numericUtils.isNumber(amrClass.balance)\r\n ? moneyUtils.money(amrClass.balance)\r\n : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n },\r\n {\r\n columnKey: \"margin\",\r\n renderColumnHeaderContent: () => \"Margin, %\",\r\n renderColumnContent: (amrClass) =>\r\n amrClass.margin\r\n ? formatUtils.formatMargin(amrClass.margin)\r\n : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-xs text-right\",\r\n bodyClassName: \"data-list-cell-xs text-right\",\r\n },\r\n {\r\n columnKey: \"capMargin\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Cap Margin, %\r\n \r\n ),\r\n renderColumnContent: (amrClass) =>\r\n amrClass.capMargin\r\n ? formatUtils.formatMargin(amrClass.capMargin)\r\n : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n },\r\n {\r\n columnKey: \"nonAmr\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Non-AMR\r\n \r\n ),\r\n renderColumnContent: (amrClass) => (\r\n \r\n ),\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: 'actions',\r\n renderColumnHeaderContent: () => 'Actions',\r\n renderColumnContent: (transactionClass, { transaction }) =>\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    ,\r\n className: 'data-list-cell-sm-01 data-list-cell-bloomberg-menu overflow-visible text-right',\r\n stickRight: true,\r\n },\r\n ];\r\n\r\n return classesColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n });\r\n};;\r\n","import { useEffect } from 'react';\r\nimport { getDealRegularDocumentTypes, getDocumentTypeText } from '../../../../../types/amr-pipeline/enums/DocumentType';\r\nimport { Deal } from '../../../../../types/amr-pipeline/models/Deal';\r\nimport { SearchInput } from '../../../../common';\r\nimport { TabBody } from '../../../common/tabs/TabBody';\r\nimport { DocumentType } from '../../../../../types/amr-pipeline/enums/DocumentType';\r\nimport { useState } from 'react';\r\nimport { DocumentSection } from '../../../common/documents/DocumentSection';\r\nimport { imDetailsDealsActions } from '../../../../../actions';\r\nimport { Transaction } from '../../../../../types/amr-pipeline/models/Transaction';\r\nimport { compareDates } from '../../../../../utils/compare.utils';\r\nimport { useAppDispatch } from '../../../../../effects/useAppDispatch';\r\nimport { roles } from '../../../../../constants';\r\nimport { user } from '../../../../../user';\r\nimport { amrPipelineService } from '../../../../../services/amr-pipeline.service';\r\nimport { dealsService } from '../../../../../services/deals.service';\r\nimport { getDealDocLastDate } from '../../../../../utils/amr-pipeline.utils';\r\n\r\ninterface DocumentsProps {\r\n deal: Deal,\r\n transaction: Transaction;\r\n}\r\n\r\nexport function Documents({ deal, transaction }: DocumentsProps) {\r\n const dispatch = useAppDispatch();\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const isAdminOrDataEntry = user.hasRoles(roles.Administrator, roles.DataEntry);\r\n\r\n\r\n useEffect(() => {\r\n dispatch(imDetailsDealsActions.resetDocumentsSearch());\r\n }, [dispatch])\r\n\r\n if (deal.documents == null) {\r\n return null;\r\n }\r\n\r\n const { documents: { dealDocuments: originalDocuments}, filteredDocuments } = deal;\r\n\r\n const documents = (filteredDocuments\r\n ? filteredDocuments\r\n : originalDocuments\r\n ).filter(a => !isAdminOrDataEntry ? a.isPublic : a)\r\n .map(d => ({ ...d, executionDate: getDealDocLastDate(d) }))\r\n .sort((a, b) => compareDates(b.executionDate, a.executionDate));\r\n\r\n\r\n const amrDocuments = documents.filter(d => d.transactionReferenceName != null);\r\n const dealDocuments = documents.filter(d => d.transactionReferenceName == null);\r\n const dealRegularDocuments = dealDocuments.filter(d => getDealRegularDocumentTypes().some(t => t === d.documentType));\r\n const distributionReports = dealDocuments.filter(d => d.documentType === DocumentType.distributionReport);\r\n const monthlyReports = dealDocuments.filter(d => d.documentType === DocumentType.monthlyReport);\r\n const otherDocuments = dealDocuments.filter(d => d.documentType === DocumentType.otherDocument);\r\n\r\n function handleSearchTermChange(value: string) {\r\n setSearchTerm(value);\r\n dispatch(\r\n imDetailsDealsActions.documentsSearchTermChange(\r\n value,\r\n deal.referenceName\r\n )\r\n );\r\n }\r\n\r\n function handleSearchTermClear() {\r\n setSearchTerm('');\r\n dispatch(\r\n imDetailsDealsActions.documentsSearchTermChange('', deal.referenceName)\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n 0 ? 'No search results.' : 'There are no documents yet.'}\r\n downloadAllFetch={amrPipelineService.getTransactionDocuments}\r\n downloadAllArgs={[deal.referenceName, transaction.referenceName]}\r\n fileNameForSave={`${deal.ticker} AMR Documents.zip`}\r\n />\r\n 0 ? 'No search results.' : 'There are no documents yet.'}\r\n downloadAllFetch={dealsService.getDealRegularDocuments}\r\n downloadAllArgs={[deal.referenceName]}\r\n fileNameForSave={`${deal.ticker} Deal Documents.zip`}\r\n />\r\n 0 ? 'No search results.' : 'There are no documents yet.'}\r\n downloadAllFetch={dealsService.getDealDocumentsByType}\r\n downloadAllArgs={[deal.referenceName, DocumentType.distributionReport]}\r\n fileNameForSave={`${deal.ticker} Distribution Reports.zip`}\r\n />\r\n 0 ? 'No search results.' : 'There are no documents yet.'}\r\n downloadAllFetch={dealsService.getDealDocumentsByType}\r\n downloadAllArgs={[deal.referenceName, DocumentType.monthlyReport]}\r\n fileNameForSave={`${deal.ticker} ${getDocumentTypeText(DocumentType.monthlyReport)}.zip`}\r\n />\r\n 0 ? 'No search results.' : 'There are no documents yet.'}\r\n downloadAllFetch={dealsService.getDealDocumentsByType}\r\n downloadAllArgs={[deal.referenceName, DocumentType.otherDocument]}\r\n fileNameForSave={`${deal.ticker} ${getDocumentTypeText(DocumentType.otherDocument)}.zip`}\r\n />\r\n \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport { roles, routes } from \"../../../../../constants\";\r\nimport { AmrTransaction } from \"../../../../../types/amr-pipeline/models/AmrTransaction\";\r\nimport { Deal } from \"../../../../../types/amr-pipeline/models/Deal\";\r\nimport { TabList, TabItem } from \"../../../../bidding/common/tab-list\";\r\nimport { Preloader } from \"../../../../common\";\r\nimport { TabContent } from \"../../../common/tabs/TabContent\";\r\nimport { AmrDealTabTypes } from \"../../../types/AmrDealTabTypes\";\r\nimport { Details } from \"../transaction-details/Details\";\r\nimport { Classes } from \"./Classes\";\r\nimport { Documents } from \"./Documents\";\r\nimport { ShowFor } from \"../../../../access\";\r\n\r\n\r\ninterface DealDetailsProps {\r\n deal?: Deal | undefined;\r\n transaction: AmrTransaction;\r\n transactionReferenceName: string;\r\n activeTab?: AmrDealTabTypes;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function TransactionDetails({\r\n deal,\r\n transaction,\r\n transactionReferenceName,\r\n activeTab = AmrDealTabTypes.details,\r\n disabled,\r\n}: DealDetailsProps) {\r\n const renderTabContent = () => {\r\n if (deal) {\r\n switch (activeTab) {\r\n case AmrDealTabTypes.classes:\r\n return ;\r\n case AmrDealTabTypes.documents:\r\n return ;\r\n default:\r\n return
    ;\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {deal ? renderTabContent() : }\r\n \r\n \r\n );\r\n}\r\n","export enum AmrDealTrancheTabTypes {\r\n details = 'details',\r\n auctions = 'auctions'\r\n}\r\n","import * as React from 'react';\r\nimport { TabBody } from \"../../../common/tabs/TabBody\";\r\nimport { AmrTrancheStatus } from '../../../../../types/amr-pipeline/enums/AmrTrancheStatus';\r\nimport { Table } from \"../../../../bidding/common/table\";\r\nimport { EmptySectionContent } from '../../../common/section/EmptySectionContent';\r\nimport { auctionsColumns } from './auctions-column';\r\nimport { AmrClass } from '../../../../../types/amr-pipeline/models/AmrClass';\r\nimport { Preloader } from '../../../../common';\r\nimport { SORT } from '../../../../../constants';\r\n\r\ninterface AuctionsProps {\r\n amrClass: AmrClass,\r\n isAuctionServiceProvider: boolean;\r\n}\r\n\r\nexport function Auctions({ amrClass, isAuctionServiceProvider }: AuctionsProps) {\r\n if (!amrClass.auctions) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {amrClass.auctions.length\r\n ?\r\n a.status !== AmrTrancheStatus.Initiated\r\n )}\r\n columns={auctionsColumns()}\r\n createSecurityCustomArgs={() => ({\r\n actualAuction: amrClass.actualAuction,\r\n isAuctionServiceProvider,\r\n })}\r\n />\r\n : \r\n }\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { 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 { formatUtils } from \"../../../../../utils\";\r\nimport { AmrClassStatusLabel } from \"../../../common/AmrClassStatusLabel\";\r\nimport moment from \"moment\";\r\nimport { NonAmrPeriod } from \"../../../common/NonAmrPeriod\";\r\nimport { AmrClass } from \"../../../../../types/amr-pipeline/models/AmrClass\";\r\nimport { OnHoverTooltip } from \"../../../../common\";\r\n\r\nexport const auctionsColumns = () => {\r\n const auctionsColumnDefinitions: IColumnDefinition[] = [\r\n {\r\n columnKey: \"auctionState\",\r\n renderColumnHeaderContent: () => \"Auction State\",\r\n renderColumnContent: (auction) => (\r\n \r\n ),\r\n headerClassName: \"data-list-cell-lg\",\r\n bodyClassName: \"data-list-cell-lg\",\r\n },\r\n {\r\n columnKey: \"pricingDate\",\r\n renderColumnHeaderContent: () => (\r\n \r\n AMR Pricing\r\n \r\n ),\r\n renderColumnContent: (auction, context) =>\r\n auction.pricingDate\r\n ? {moment(auction.pricingDate).format(constants.dateFormat)}\r\n : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: \"winningMargin\",\r\n renderColumnHeaderContent: () => \"Win Margin, %\",\r\n renderColumnContent: (auction) =>\r\n auction.winningMargin\r\n ? formatUtils.formatMargin(auction.winningMargin)\r\n : constants.emptyPlaceholder,\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n },\r\n {\r\n columnKey: \"capMargin\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Cap Margin, %\r\n \r\n ),\r\n renderColumnContent: (auction) =>\r\n formatUtils.formatMargin(auction.capMargin),\r\n headerClassName: \"data-list-cell-sm text-right\",\r\n bodyClassName: \"data-list-cell-sm text-right\",\r\n },\r\n {\r\n columnKey: \"nonAmr\",\r\n renderColumnHeaderContent: () => (\r\n \r\n Non-AMR\r\n \r\n ),\r\n renderColumnContent: (auction) => (\r\n \r\n ),\r\n headerClassName: \"data-list-cell-sm\",\r\n bodyClassName: \"data-list-cell-sm\",\r\n },\r\n {\r\n columnKey: \"settlementDate\",\r\n renderColumnHeaderContent: () => (\r\n \r\n AMR Settlement\r\n \r\n ),\r\n renderColumnContent: (auction) =>\r\n moment(auction.settlementDate).format(constants.dateFormat),\r\n headerClassName: \"data-list-cell-md\",\r\n bodyClassName: \"data-list-cell-md\",\r\n },\r\n\r\n ]\r\n\r\n return auctionsColumnDefinitions.map((c) => {\r\n return new ColumnBuilder(c);\r\n });\r\n};\r\n","import * as React from 'react';\r\nimport moment from 'moment';\r\nimport { constants } from '../../../../../constants';\r\nimport { AmrTrancheStatus } from '../../../../../types/amr-pipeline/enums/AmrTrancheStatus';\r\nimport { formatUtils, moneyUtils } from '../../../../../utils';\r\nimport { FormField } from '../../../common/FormField';\r\nimport { SectionContent } from '../../../common/section/SectionContent';\r\nimport { TabBody } from '../../../common/tabs/TabBody';\r\nimport { InlineAlertPanel } from '../../../common/InlineAlertPanel';\r\nimport { AmrClassStatusLabel } from '../../../common/AmrClassStatusLabel';\r\nimport { AmrClass } from '../../../../../types/amr-pipeline/models/AmrClass';\r\nimport { amrTrancheStatuses } from '../../../../../constants/amr.tranche.statuses';\r\n\r\n\r\ninterface DetailsProps {\r\n amrClass: AmrClass;\r\n}\r\n\r\nexport function Details({ amrClass} : DetailsProps) {\r\n const statusVisible =\r\n (\r\n amrClass.status === AmrTrancheStatus.Initiated ||\r\n amrClass.status === AmrTrancheStatus.Scheduled ||\r\n amrClass.status === AmrTrancheStatus.AcceptingBids\r\n );\r\n\r\n return (\r\n \r\n {\r\n statusVisible &&\r\n \r\n \r\n Current Status \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 \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\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 \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 \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 \r\n
    S&PMoody’sFitchKBRADBRS
    Curr.\r\n
    \r\n {amrClass.ratingSnP || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n {amrClass.ratingMoodys || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n {amrClass.ratingFitch || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n {amrClass.ratingKbra || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n {amrClass.ratingDbrs || constants.emptyPlaceholder}\r\n
    \r\n
    Orig.\r\n
    \r\n {amrClass.originalRatingSnP || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n {amrClass.originalRatingMoodys || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n {amrClass.originalRatingFitch || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n {amrClass.originalRatingKbra || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n {amrClass.originalRatingDbrs || constants.emptyPlaceholder}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { Redirect } from 'react-router';\r\nimport { routes } from '../../../../../constants';\r\nimport { Deal } from '../../../../../types/amr-pipeline/models/Deal';\r\nimport { AmrDealTrancheTabTypes } from '../../../types/AmrDealTrancheTabTypes';\r\nimport { Auctions } from './Auctions';\r\nimport { Details } from './Details';\r\nimport { TabList, TabItem } from \"../../../../bidding/common/tab-list\";\r\nimport { AmrClass } from '../../../../../types/amr-pipeline/models/AmrClass';\r\nimport { TabContent } from '../../../common/tabs/TabContent';\r\nimport { Preloader } from '../../../../common';\r\n\r\ninterface TrancheDetailsProps {\r\n deal?: Deal,\r\n amrClass: AmrClass,\r\n activeTab?: AmrDealTrancheTabTypes,\r\n isAuctionServiceProvider: boolean,\r\n disabled?: boolean,\r\n transactionReferenceName: string\r\n}\r\n\r\nexport function ClassDetails({ deal, amrClass, activeTab = AmrDealTrancheTabTypes.details, disabled, transactionReferenceName, isAuctionServiceProvider = false }: TrancheDetailsProps) {\r\n if (activeTab === AmrDealTrancheTabTypes.auctions && !amrClass.class.amr) {\r\n return \r\n }\r\n\r\n const renderTabContent = () => {\r\n switch (activeTab) {\r\n case (AmrDealTrancheTabTypes.auctions): return ;\r\n default: return
    ;\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {amrClass.class.amr && (\r\n \r\n )}\r\n \r\n {deal ? renderTabContent() : }\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { amrPipelineDetailedActions, imDetailsDealsActions } from \"../../../../actions\";\r\nimport { AmrTransaction } from \"../../../../types/amr-pipeline/models/AmrTransaction\";\r\nimport { Deal } from \"../../../../types/amr-pipeline/models/Deal\";\r\nimport { AppState } from \"../../../../types/state/AppState\";\r\nimport { ImDetailsDealsState } from \"../../../../types/state/ImDetailsDealsState\";\r\nimport { AmrDealTabTypes } from \"../../types/AmrDealTabTypes\";\r\nimport { AmrDealTrancheTabTypes } from \"../../types/AmrDealTrancheTabTypes\";\r\nimport { TransactionDetails} from \"./transaction-details/TransactionDetails\";\r\nimport { ClassDetails } from \"./class-details/ClassDetails\";\r\nimport { useAppDispatch } from \"../../../../effects/useAppDispatch\";\r\n\r\n\r\ninterface Props {\r\n transaction: AmrTransaction;\r\n classReferenceName?: string;\r\n activeTab?: AmrDealTabTypes | AmrDealTrancheTabTypes;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const AmrDetails = ({\r\n transaction,\r\n classReferenceName,\r\n activeTab = AmrDealTabTypes.details,\r\n disabled,\r\n}: Props) => {\r\n const dispatch = useAppDispatch();\r\n const { isDealDetailsRequesting, isTrancheDetailsRequesting, deals } = useSelector<\r\n AppState,\r\n ImDetailsDealsState\r\n >((store) => store.imDetailsDeals);\r\n\r\n const loadedTransactionsWithDetails= useSelector((store: AppState) => store.issuanceMonitor.amrPipelineDetailed.loadedTransactionsWithDetails);\r\n\r\n const deal: Deal | undefined = deals?.find(\r\n (d) => d.referenceName === transaction?.dealReferenceName\r\n );\r\n const selectedTranche =\r\n deal && classReferenceName\r\n ? deal.classes.find((a) => a.referenceName === classReferenceName)\r\n : undefined;\r\n const actualAuction = selectedTranche?.actualAuction;\r\n const auctions = selectedTranche?.auctions;\r\n const selectedClass = transaction.classes.find(\r\n (c) => c.referenceName === classReferenceName\r\n );\r\n\r\n React.useEffect(() => {\r\n if (!loadedTransactionsWithDetails.some(t => t.referenceName === transaction.referenceName)) {\r\n dispatch(amrPipelineDetailedActions.storeTransactionDetails(transaction.referenceName, transaction));\r\n }\r\n\r\n if (!isDealDetailsRequesting) {\r\n dispatch(\r\n imDetailsDealsActions.loadDealDetails(\r\n transaction.dealReferenceName,\r\n transaction.referenceName\r\n )\r\n );\r\n }\r\n\r\n if (selectedTranche && !isTrancheDetailsRequesting) {\r\n dispatch(\r\n imDetailsDealsActions.loadTrancheDetails(\r\n transaction.dealReferenceName,\r\n selectedTranche.referenceName\r\n )\r\n );\r\n }\r\n }, [\r\n dispatch,\r\n transaction,\r\n selectedTranche,\r\n isDealDetailsRequesting,\r\n isTrancheDetailsRequesting,\r\n loadedTransactionsWithDetails\r\n ]);\r\n\r\n return (\r\n <>\r\n {\r\n selectedClass\r\n ? \r\n : \r\n\r\n }\r\n \r\n );\r\n};\r\n","import React, { useMemo, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport queryString from 'query-string';\r\nimport { Preloader } from \"../../common\";\r\nimport { amrPipelineDetailedActions, imUserConfigActions } from \"../../../actions/\";\r\nimport Header, { HeaderAction } from \"./Header\";\r\nimport { roles, routes } from \"../../../constants\";\r\nimport { TransactionType } from \"../../../types/amr-pipeline/enums/TransactionType\";\r\nimport { AmrTransaction } from \"../../../types/amr-pipeline/models/AmrTransaction\";\r\nimport { OriginatingTransaction } from \"../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { AppState } from \"../../../types/state/AppState\";\r\nimport { PipelineDetailedState } from \"../../../types/state/PipelineDetailedState\";\r\nimport { TransactionsTabTypes } from \"../types/TransactionsTabTypes\";\r\nimport { AmrDealTabTypes } from '../types/AmrDealTabTypes';\r\nimport { AmrDealTrancheTabTypes } from '../types/AmrDealTrancheTabTypes'\r\nimport { Redirect, useLocation, useParams } from \"react-router\";\r\nimport { TransactionsSelectionPanel } from \"./TransactionsSelectionPanel\";\r\nimport { AmrDetails } from './amr/AmrDetails';\r\nimport { OriginatingTransactionDetails } from './new-issue/OriginatingTransactionDetails';\r\nimport { IntexPopup } from './IntexPopup';\r\nimport { SyndicatePopup } from '../aggregated/SyndicatePopup';\r\nimport { canViewTransactionDetails, hasAnalyticsAccess, hasInvitedClientsAccess, hasIOIsAccess, hasLimitedAccess } from '../../../utils/amr-pipeline.utils';\r\nimport TransactionContext from '../transactionContext';\r\nimport { InviteClientsTransactionPopup } from \"../common/InviteClientsTransactionPopup/InviteClientsTransactionPopup\";\r\nimport { PipelineDetailedTabTypes } from \"../types/PipelineDetailedTabTypes\";\r\nimport { TransactionAlertsPopup } from \"../common/transactionAlerts/TransactionAlertsPopup\";\r\nimport { usePortfolios } from \"../../../effects/usePortfolios\";\r\nimport { isRequestFailed, isRequestSuccess } from \"../../../utils\";\r\nimport { user } from \"../../../user\";\r\nimport { useAppDispatch } from \"../../../effects/useAppDispatch\";\r\nimport { startCase } from \"lodash\";\r\n\r\ninterface RouteParams {\r\n transactionReferenceName: string;\r\n dealReferenceName: string;\r\n classReferenceName?: string;\r\n tab?: TransactionsTabTypes | AmrDealTabTypes | AmrDealTrancheTabTypes;\r\n}\r\n\r\nexport const PipelineDetailed = () => {\r\n const { classReferenceName, dealReferenceName, transactionReferenceName, tab: activeTab } = useParams();\r\n const dispatch = useAppDispatch();\r\n const {\r\n transactions,\r\n loadedTransactionsWithDetails,\r\n initialTransaction,\r\n isTransactionsRequesting,\r\n isIOIsSubmitting,\r\n isTransactionDetailsRequesting,\r\n searchTerm,\r\n hasMoreTransactions,\r\n numberOfHiddenTransactions,\r\n } = useSelector(\r\n (state: AppState) => state.issuanceMonitor.amrPipelineDetailed\r\n );\r\n\r\n const location = useLocation();\r\n\r\n const isPortfolioDisabled = user.hasRoles(roles.ArrangersClient);\r\n\r\n const { requestState } = usePortfolios(isPortfolioDisabled);\r\n const isPortfoliosLoaded = isPortfolioDisabled || isRequestSuccess(requestState) || isRequestFailed(requestState);\r\n\r\n const { userCompany } = useSelector((state: AppState) => state.issuanceMonitor.amrPipelineCommon);\r\n\r\n const [showIntextPopup, setShowIntexPopup] = useState(false);\r\n const [showSyndicatePopup, setShowSyndicatePopup] = useState(false);\r\n const [showSharePopup, setShowSharePopup] = useState(false);\r\n const [showAlertsPopup, setShowAlertsPopup] = useState(false);\r\n\r\n const [selectionPanelTab, setSelectionPanelTab] = useState(PipelineDetailedTabTypes.all);\r\n const { token } = queryString.parse(location.search, { decode: false });\r\n\r\n const selectedTransaction = useMemo(\r\n () =>\r\n loadedTransactionsWithDetails?.find(\r\n t => t.referenceName === transactionReferenceName && t.dealReferenceName === dealReferenceName,\r\n ) ||\r\n transactions?.find(\r\n t => t.referenceName === transactionReferenceName && t.dealReferenceName === dealReferenceName,\r\n ) ||\r\n initialTransaction,\r\n [transactions, initialTransaction, transactionReferenceName, loadedTransactionsWithDetails, dealReferenceName],\r\n );\r\n\r\n\r\n const syndicateContacts = selectedTransaction && selectedTransaction.type !== TransactionType.amr ?\r\n {\r\n arrangerName: selectedTransaction?.arranger?.legalName,\r\n contacts: (selectedTransaction as OriginatingTransaction).syndicateContacts,\r\n } : null;\r\n\r\n const transactionsLoaded = transactions != null;\r\n const currentAmrClass = (selectedTransaction as AmrTransaction)?.classes.find(c => c.referenceName === classReferenceName);\r\n\r\n const contextValue = useMemo(() => ({\r\n canView: canViewTransactionDetails(),\r\n limitedAccess: hasLimitedAccess(selectedTransaction, userCompany),\r\n accessTracking: true,\r\n analyticsAccess: hasAnalyticsAccess(selectedTransaction, userCompany),\r\n invitedClientsAccess: hasInvitedClientsAccess(selectedTransaction, userCompany),\r\n ioisAccess: hasIOIsAccess(selectedTransaction, userCompany),\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }), [\r\n selectedTransaction?.referenceName,\r\n userCompany?.referenceName\r\n ]);\r\n\r\n React.useEffect(() => {\r\n dispatch(imUserConfigActions.getUserConfig());\r\n\r\n return () => {\r\n dispatch(amrPipelineDetailedActions.reset())\r\n }\r\n }, [dispatch]);\r\n\r\n React.useEffect(() => {\r\n if (!userCompany || transactionsLoaded || isTransactionsRequesting || initialTransaction) {\r\n return;\r\n }\r\n\r\n dispatch(amrPipelineDetailedActions.init(dealReferenceName, transactionReferenceName, token as string));\r\n }, [dispatch, dealReferenceName, transactionReferenceName, token, userCompany, transactionsLoaded, isTransactionsRequesting, initialTransaction]);\r\n\r\n const handleHeaderActionClick = (action: HeaderAction) => {\r\n switch (action) {\r\n case HeaderAction.Intex:\r\n setShowIntexPopup(true);\r\n break;\r\n case HeaderAction.SyndicateContacts:\r\n setShowSyndicatePopup(true);\r\n break;\r\n case HeaderAction.ShareTransaction:\r\n setShowSharePopup(true);\r\n break;\r\n case HeaderAction.Alerts:\r\n setShowAlertsPopup(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n if (selectedTransaction) {\r\n document.title = `${selectedTransaction.dealLegalName}, ${startCase(selectedTransaction.type)} - KTX ATS Platform`;\r\n }\r\n\r\n if (!transactionsLoaded || !selectedTransaction || !isPortfoliosLoaded) {\r\n return ;\r\n }\r\n\r\n if (transactionReferenceName && dealReferenceName) {\r\n if (!initialTransaction) {\r\n return ;\r\n }\r\n }\r\n\r\n if (!transactions) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {selectedTransaction.type === TransactionType.amr\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n {showIntextPopup &&\r\n setShowIntexPopup(false)}\r\n />\r\n }\r\n {(showSyndicatePopup && syndicateContacts) &&\r\n setShowSyndicatePopup(false)}\r\n />\r\n }\r\n {showSharePopup && (\r\n setShowSharePopup(false)}\r\n />\r\n )}\r\n {showAlertsPopup && (\r\n setShowAlertsPopup(false)} />\r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n","export enum TransactionsTabTypes {\r\n overview = \"deal-overview\",\r\n structure = \"deal-structure\",\r\n portfolio = \"target-portfolio\",\r\n documents = \"documents\",\r\n IOIs = \"iois\",\r\n analytics = \"analytics\",\r\n invitedClients = 'invited-clients',\r\n comparativeMetrics = 'comparative-metrics'\r\n}\r\n","import classNames from \"classnames\";\r\nimport { constants } from \"../../../../constants\";\r\nimport React, { useEffect, useState } from 'react';\r\nimport moment from 'moment';\r\nimport IconSVG from '../../../../styles/svg-icons';\r\nimport { IIndicatorSection } from './types';\r\nimport { Difference } from '../../../../utils/differ/types';\r\nimport { DealUpdateIdentifier, dealUpdatesIdentifiersTitles } from \"../../../../types/amr-pipeline/enums/DealUpdateIdentifier\";\r\nimport Highlighter from \"../../common/Highlighter\";\r\nimport { OnHoverTooltip } from \"../../../common\";\r\nimport { dateTimeUtils } from \"../../../../utils\";\r\n\r\ninterface Props {\r\n selected: boolean;\r\n searchTerms: string[];\r\n onViewClick: (version: number) => void;\r\n dealUpdatesIdentifiers?: DealUpdateIdentifier[];\r\n version: number;\r\n versionTitle: string;\r\n versionDate: Date;\r\n versionClosingDate?: Date;\r\n indicatorSections: IIndicatorSection[];\r\n difference: Difference;\r\n}\r\n\r\nexport const TransactionHistoryNavItem = ({\r\n selected,\r\n searchTerms,\r\n onViewClick,\r\n dealUpdatesIdentifiers,\r\n version,\r\n versionTitle,\r\n versionDate,\r\n versionClosingDate,\r\n indicatorSections,\r\n difference,\r\n}: Props) => {\r\n const isSearchTermEntered = searchTerms.some(s => !!s.length);\r\n const [defaultModeExpanded, setDefaultModeExpanded] = useState(selected || isSearchTermEntered);\r\n const [searchModeExpanded, setSearchModeExpanded] = useState(true);\r\n\r\n const isInitialTransaction = version === 1;\r\n const expanded = isSearchTermEntered ? searchModeExpanded : defaultModeExpanded;\r\n\r\n const dealUpdates = dealUpdatesIdentifiers?.map((d, index) => (\r\n <>\r\n \r\n {dealUpdatesIdentifiers.length === index + 1 ? '' : ', '}\r\n \r\n ));\r\n\r\n useEffect(() => {\r\n setSearchModeExpanded(true);\r\n }, [searchTerms]);\r\n\r\n const renderContent = () => {\r\n if (isInitialTransaction) {\r\n return Transaction created;\r\n }\r\n\r\n if (!indicatorSections.length) {\r\n return undefined;\r\n }\r\n\r\n const sections = indicatorSections.map(x => x.render(searchTerms, difference));\r\n return sections.every(section => !section)\r\n ? No updates available in this version\r\n : sections;\r\n };\r\n\r\n const expandOrCollapse = (expanded: boolean) => {\r\n if (searchTerms && isSearchTermEntered) {\r\n setSearchModeExpanded(expanded);\r\n } else {\r\n setDefaultModeExpanded(expanded);\r\n }\r\n };\r\n\r\n const handleViewClick = () => {\r\n onViewClick(version);\r\n expandOrCollapse(true);\r\n };\r\n\r\n const handleExpand = () => expandOrCollapse(!expanded);\r\n\r\n const historyDate = versionClosingDate\r\n ? moment(versionClosingDate).format(constants.dateFormat)\r\n : dateTimeUtils.changeDateTimeZone(\r\n versionDate,\r\n constants.estTimezone,\r\n false\r\n ).format(constants.dateTimeFormat) + \" EST\";\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n {versionTitle}\r\n {historyDate}\r\n
    \r\n {dealUpdatesIdentifiers?.length ? (\r\n
    \r\n \r\n
    \r\n {dealUpdates}\r\n
    \r\n
    \r\n
    \r\n ) : ''}\r\n
    \r\n {expanded && (\r\n
    \r\n {renderContent()}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n","import { Difference, ObjectArrayItemDifference } from '../../../../utils/differ/types';\r\nimport { Indicator, TableIndicator } from './types';\r\n\r\nexport const defaultFormatter = (value?: any) => value ? `${value}` : null;\r\n\r\nexport const indicatorMatchesSearchTerm =\r\n (searchTerms: string[], difference: Difference, item?: ObjectArrayItemDifference ) =>\r\n (indicator: Indicator) => {\r\n if (!searchTerms.length) {\r\n return true;\r\n }\r\n\r\n const indicatorTitleMatchesSearchTerms = searchTerms.some(s => indicator.title.toLocaleLowerCase().includes(s.toLowerCase()));\r\n let indicatorValueMatchesSearchTerms = false;\r\n\r\n if (item) {\r\n indicatorValueMatchesSearchTerms = (indicator as TableIndicator).arrayItemDifferenceMatchesSearchTerm(searchTerms, item);\r\n } else {\r\n indicatorValueMatchesSearchTerms = indicator.matchesSearchTerm(searchTerms, difference);\r\n }\r\n\r\n return indicator.hasChanges(difference) && (indicatorValueMatchesSearchTerms || indicatorTitleMatchesSearchTerms);\r\n }\r\n","import * as uuid from 'uuid';\r\nimport { Difference, DifferenceType, PrimitiveDifference } from '../../../../utils/differ/types';\r\nimport Highlighter from '../../common/Highlighter';\r\nimport { DynamicsIcon } from './DynamicsIcon';\r\nimport { Formatter, SimpleIndicator } from './types';\r\nimport { defaultFormatter, indicatorMatchesSearchTerm } from './utils';\r\n\r\nexport class PrimitiveIndicator implements SimpleIndicator {\r\n public uid = uuid.v1();\r\n\r\n constructor(\r\n public title: string,\r\n protected getValueDifference: (difference: Difference) => PrimitiveDifference | undefined,\r\n protected formatter: Formatter = defaultFormatter,\r\n ) {}\r\n\r\n matchesSearchTerm(searchTerms: string[], difference: Difference) {\r\n const valueDifference = this.getValueDifference(difference);\r\n\r\n if (!valueDifference) {\r\n return false;\r\n }\r\n\r\n const { type, currentValue, previousValue, derivedValue } = valueDifference;\r\n const formatter = this.formatter;\r\n\r\n switch (type) {\r\n case DifferenceType.Added:\r\n return searchTerms.some(\r\n s =>\r\n String(formatter(currentValue)).toLowerCase().includes(s.toLowerCase()) ||\r\n String(currentValue).toLowerCase().includes(s.toLowerCase()),\r\n );\r\n case DifferenceType.Updated:\r\n return searchTerms.some(\r\n s =>\r\n String(formatter(currentValue)).toLowerCase().includes(s.toLowerCase()) ||\r\n String(formatter(previousValue)).toLowerCase().includes(s.toLowerCase()) ||\r\n String(currentValue).toLowerCase().includes(s.toLowerCase()) ||\r\n String(currentValue).toLowerCase().includes(s.toLowerCase()),\r\n );\r\n case DifferenceType.Removed:\r\n return searchTerms.some(\r\n s =>\r\n String(formatter(derivedValue)).toLowerCase().includes(s.toLowerCase()) ||\r\n String(derivedValue).toLowerCase().includes(s.toLowerCase()),\r\n );\r\n }\r\n\r\n return false;\r\n }\r\n\r\n renderHighlighter(searchTerms: string[], value: unknown) {\r\n return ;\r\n }\r\n\r\n render(searchTerms: string[] = [], difference?: Difference) {\r\n if (!difference) {\r\n return null;\r\n }\r\n\r\n const valueDifference = this.getValueDifference(difference);\r\n\r\n if (!valueDifference) {\r\n return null;\r\n }\r\n\r\n if (searchTerms.some(s => !!s.length) && !indicatorMatchesSearchTerm(searchTerms, difference)(this)) {\r\n return null;\r\n }\r\n\r\n const { type, currentValue, previousValue } = valueDifference;\r\n\r\n const formatter = this.formatter;\r\n\r\n const title = this.renderHighlighter(searchTerms, this.title);\r\n\r\n switch (type) {\r\n case DifferenceType.Added:\r\n return (\r\n \r\n {title} {this.renderHighlighter(searchTerms, formatter(currentValue))} added\r\n \r\n );\r\n case DifferenceType.Updated:\r\n return (\r\n \r\n {title} updated from{' '}\r\n {this.renderHighlighter(searchTerms, formatter(previousValue))} to{' '}\r\n {this.renderHighlighter(searchTerms, formatter(currentValue))}\r\n \r\n \r\n );\r\n case DifferenceType.Removed:\r\n return {title} removed;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n hasChanges(difference: Difference) {\r\n const valueDifference = this.getValueDifference(difference);\r\n\r\n if (!valueDifference) {\r\n return false;\r\n }\r\n\r\n return valueDifference.type !== DifferenceType.Unchanged;\r\n }\r\n}\r\n","import { Difference, DifferenceType, PrimitiveDifference } from '../../../../utils/differ/types';\r\nimport Highlighter from '../../common/Highlighter';\r\nimport { PrimitiveIndicator } from './PrimitiveIndicator';\r\nimport { indicatorMatchesSearchTerm } from './utils';\r\n\r\nexport class BooleanIndicator extends PrimitiveIndicator {\r\n /**\r\n * Represents and renders boolean indicators\r\n * Template:\r\n * - Added: [Indicator name] added (when value=Yes)\r\n * - Updated: n/a\r\n * - Removed: [Indicator name] removed (when value=No)\r\n */\r\n constructor(\r\n public title: string,\r\n protected getValueDifference: (difference: Difference) => PrimitiveDifference | undefined,\r\n ) {\r\n super(title, getValueDifference);\r\n }\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n if (!difference) {\r\n return null;\r\n }\r\n\r\n const valueDifference = this.getValueDifference(difference);\r\n\r\n if (!valueDifference) {\r\n return null;\r\n }\r\n\r\n const { type, currentValue } = valueDifference;\r\n\r\n if (type === DifferenceType.Unchanged) {\r\n return null;\r\n }\r\n\r\n if (searchTerms.some(s => !!s.length) && !indicatorMatchesSearchTerm(searchTerms, difference)(this)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {currentValue ? ' added' : ' removed'}\r\n \r\n );\r\n }\r\n}\r\n","import { Difference, DifferenceType } from '../../../../utils/differ/types';\r\nimport Highlighter from '../../common/Highlighter';\r\nimport { PrimitiveIndicator } from './PrimitiveIndicator';\r\nimport { indicatorMatchesSearchTerm } from './utils';\r\n\r\nexport class DeletedFileIndicator extends PrimitiveIndicator {\r\n /**\r\n * Represents indicator for deleted file. This is done as a workaround\r\n * because updated files should be shown as\r\n * — `new file name added`\r\n * - `old file name deleted`\r\n * With current markup structure it is impossible to render two bullet points\r\n * within one indicator. So two indicators are used instead — one for added, and\r\n * this one for deleted files.\r\n * Template:\r\n * - Updated [Old file name] removed\r\n * - Removed: [Old file name] removed\r\n */\r\n\r\n hasChanges(difference: Difference) {\r\n const valueDifference = this.getValueDifference(difference);\r\n\r\n if (!valueDifference) {\r\n return false;\r\n }\r\n\r\n return [DifferenceType.Updated, DifferenceType.Removed].includes(valueDifference.type);\r\n }\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n const valueDifference = this.getValueDifference(difference);\r\n\r\n if (!valueDifference) {\r\n return null;\r\n }\r\n\r\n if (searchTerms.some(s => !!s.length) && !indicatorMatchesSearchTerm(searchTerms, difference)(this)) {\r\n return null;\r\n }\r\n\r\n const { previousValue } = valueDifference;\r\n\r\n return {} removed;\r\n }\r\n}\r\n","import { Difference, DifferenceType } from '../../../../utils/differ/types';\r\nimport Highlighter from '../../common/Highlighter';\r\nimport { PrimitiveIndicator } from './PrimitiveIndicator';\r\nimport { indicatorMatchesSearchTerm } from './utils';\r\n\r\nexport class FileIndicator extends PrimitiveIndicator {\r\n /**\r\n * Represents indicator for added/updated file. It should be used\r\n * together with DeletedFileIndicator. See more specific description\r\n * and explanation in DeletedFileIndicator.tsx itself.\r\n * Template:\r\n * - Added [File name] added\r\n * - Updated [File name] added\r\n */\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n const valueDifference = this.getValueDifference(difference);\r\n\r\n if (!valueDifference) {\r\n return null;\r\n }\r\n\r\n if (searchTerms.some(s => !!s.length) && !indicatorMatchesSearchTerm(searchTerms, difference)(this)) {\r\n return null;\r\n }\r\n\r\n const { type, derivedValue } = valueDifference;\r\n\r\n if (type === DifferenceType.Unchanged) {\r\n return null;\r\n }\r\n\r\n switch (type) {\r\n case DifferenceType.Added:\r\n case DifferenceType.Updated:\r\n return (\r\n \r\n {\r\n \r\n }{' '}\r\n added\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n }\r\n}\r\n","import { Difference, DifferenceType, PrimitiveDifference } from '../../../../utils/differ/types';\r\nimport Highlighter from '../../common/Highlighter';\r\nimport { PrimitiveIndicator } from './PrimitiveIndicator';\r\nimport { indicatorMatchesSearchTerm} from './utils';\r\n\r\n/**\r\n * Represents and renders imprecise indicators (without previous and current values)\r\n * This is used for strings with long values (comments, descriptions, etc.)\r\n * Template:\r\n * - Added: [Indicator name] added\r\n * - Updated: [Indicator name] updated\r\n * - Removed: [Indicator name] removed\r\n */\r\nexport class ImpreciseIndicator extends PrimitiveIndicator {\r\n constructor(\r\n public title: string,\r\n protected getValueDifference: (difference: Difference) => PrimitiveDifference | undefined,\r\n ) {\r\n super(title, getValueDifference);\r\n }\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n const valueDifference = this.getValueDifference(difference);\r\n\r\n if (!valueDifference) {\r\n return null;\r\n }\r\n\r\n if (searchTerms.some(s => !!s.length) && !indicatorMatchesSearchTerm(searchTerms, difference)(this)) {\r\n return null;\r\n }\r\n\r\n const { type } = valueDifference;\r\n\r\n if (type === DifferenceType.Unchanged) {\r\n return null;\r\n }\r\n\r\n const title = ;\r\n\r\n return (\r\n \r\n {title} {type}\r\n \r\n );\r\n }\r\n}\r\n","import { Difference, DifferenceType, ObjectArrayDifference } from '../../../../utils/differ/types';\r\nimport { IIndicatorSection, Indicator } from './types';\r\n\r\n/**\r\n * Represents and renders imprecise table indicators (without previous and current values)\r\n * Used to sshow that the whole section (array of any items) was just added, updated or removed\r\n * Template:\r\n * - Added: [Section name] added\r\n * - Updated: [Section name] updated\r\n * - Removed: [Section name] removed\r\n */\r\nexport class ImpreciseTableIndicatorSection implements IIndicatorSection {\r\n public indicators: Indicator[] = [];\r\n constructor(\r\n public title: string,\r\n protected getItemsDifference: (difference: Difference) => ObjectArrayDifference | undefined\r\n ) {}\r\n\r\n hasChanges(difference: Difference) {\r\n const items = this.getItemsDifference(difference);\r\n\r\n if (!items) {\r\n return false;\r\n }\r\n\r\n return items.some(item => item.type !== DifferenceType.Unchanged);\r\n }\r\n\r\n getDifferenceType(difference: Difference) {\r\n const items = this.getItemsDifference(difference);\r\n\r\n if (items?.every(x => x.type === DifferenceType.Added)) {\r\n return DifferenceType.Added;\r\n }\r\n\r\n if (items?.every(x => x.type === DifferenceType.Removed)) {\r\n return DifferenceType.Removed;\r\n }\r\n\r\n return DifferenceType.Updated;\r\n }\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n if (!this.hasChanges(difference)) {\r\n return null;\r\n }\r\n\r\n const differenceType = this.getDifferenceType(difference);\r\n\r\n return (\r\n
    \r\n

    {this.title} {differenceType}

    \r\n
    \r\n );\r\n }\r\n}\r\n","import { Difference } from '../../../../utils/differ/types';\r\nimport { IIndicatorSection, SimpleIndicator } from './types';\r\nimport { indicatorMatchesSearchTerm } from './utils';\r\n\r\nexport class IndicatorSection implements IIndicatorSection {\r\n constructor(public title: string, public indicators: SimpleIndicator[]) {}\r\n\r\n hasChanges(difference: Difference) {\r\n return this.indicators.some(indicator => indicator.hasChanges(difference));\r\n }\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n if (!this.hasChanges(difference)) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n

    {this.title}

    \r\n
      \r\n {this.indicators.map(indicator => {\r\n if (\r\n searchTerms &&\r\n searchTerms.some(s => !!s.length) &&\r\n !indicatorMatchesSearchTerm(searchTerms, difference)(indicator)\r\n ) {\r\n return null;\r\n }\r\n\r\n if (!indicator.hasChanges(difference)) {\r\n return null;\r\n }\r\n\r\n return (
    • {indicator.render(searchTerms, difference)}
    • );\r\n })}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import { Difference, DifferenceType, ObjectArrayDifference, PrimitiveDifference } from '../../../../utils/differ/types';\r\nimport { Formatter, IIndicatorSection, SimpleIndicator } from './types';\r\n\r\nexport class ListIndicatorSection implements IIndicatorSection {\r\n indicators: SimpleIndicator[] = [];\r\n\r\n constructor(\r\n public title: string,\r\n protected getItemsDifference: (difference: Difference) => ObjectArrayDifference | undefined,\r\n protected getFieldDifference: (itemDifference: Difference) => PrimitiveDifference | undefined,\r\n protected formatter?: Formatter,\r\n ) {}\r\n\r\n hasChanges(difference: Difference) {\r\n const itemsDifference = this.getItemsDifference(difference);\r\n\r\n if (!itemsDifference) {\r\n return false;\r\n }\r\n\r\n return itemsDifference?.some(item => item.difference ? this.getFieldDifference(item.difference)?.type !== DifferenceType.Unchanged : false);\r\n }\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n if (!this.hasChanges(difference)) {\r\n return null;\r\n }\r\n\r\n // Just to not do excess job in next steps\r\n if (searchTerms.length) {\r\n return null;\r\n }\r\n\r\n const itemsDifference = this.getItemsDifference(difference)\r\n ?.filter(item => item.type !== DifferenceType.Unchanged);\r\n\r\n if (!itemsDifference) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n

    {this.title}

    \r\n
      \r\n {itemsDifference?.map(item => {\r\n const fieldDiff = item.difference ? this.getFieldDifference(item.difference) : null;\r\n const derivedValue = fieldDiff?.derivedValue as string;\r\n const value = this.formatter ? this.formatter(derivedValue) : derivedValue;\r\n\r\n return
    • <>{value} {fieldDiff?.type}
    • \r\n })}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\n\r\ninterface TableSectionWrapperProps {\r\n title: string;\r\n children: React.ReactNode | React.ReactNode[];\r\n}\r\n\r\nexport const TableSectionWrapper = ({ title, children }: TableSectionWrapperProps) => {\r\n return (\r\n
    \r\n

    {title}

    \r\n
      \r\n {children}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Difference, DifferenceType, ObjectArrayItemDifference } from '../../../../utils/differ/types';\r\n\r\nexport type Formatter = (value?: any, initialObject?: T) => string | null | undefined;\r\n\r\nexport enum TableRenderMode {\r\n ItemIndicator = 'item-indicator',\r\n IndicatorItem = 'indicator-item',\r\n}\r\n\r\nexport interface TableRenderOptions {\r\n withTitle?: boolean;\r\n mode: TableRenderMode;\r\n}\r\n\r\nexport interface ItemIndicators {\r\n item: ObjectArrayItemDifference;\r\n indicators: TableIndicator[];\r\n}\r\n\r\nexport interface IndicatorItems {\r\n indicator: TableIndicator;\r\n items: ObjectArrayItemDifference[];\r\n}\r\n\r\n/**\r\n * Represents a section with a header and a list of indicators\r\n */\r\nexport interface IIndicatorSection {\r\n // List of indicators\r\n indicators: Indicator[]\r\n\r\n // Determines whether there are any changes in indicators within this section\r\n hasChanges: (difference: Difference) => boolean;\r\n\r\n // Renders sections with indicators\r\n render: (searchTerm: string[], difference: Difference) => React.ReactNode;\r\n}\r\n\r\n/**\r\n * Represents a section with a header and a list of indicators\r\n */\r\n export interface ITableSection {\r\n // List of indicators\r\n indicators: Indicator[]\r\n\r\n // Determines whether there are any changes in indicators within this section\r\n hasChanges: (difference: Difference) => boolean;\r\n\r\n // Renders sections with indicators\r\n render: (searchTerm: string[], difference: Difference) => React.ReactNode;\r\n\r\n isMatchSearchTerm?: (searchTerm: string[], difference: Difference) => boolean;\r\n}\r\n\r\n/**\r\n * Represents a single indicator\r\n */\r\nexport interface Indicator {\r\n title: string;\r\n hasChanges: (difference: Difference) => boolean;\r\n matchesSearchTerm: (searchTerms: string[], difference: Difference) => boolean;\r\n}\r\n\r\n/**\r\n * Simple indicator is an indicator for Primitive fields, or object fields\r\n * which represent only that the object was added or removed\r\n */\r\nexport interface SimpleIndicator extends Indicator {\r\n uid: string;\r\n render: (searchTerm: string[], difference: Difference) => React.ReactNode;\r\n}\r\n\r\n/**\r\n * Table indicator is an indicator that represents a diff structure of object array.\r\n * `render` method should render the whole row with title and changed values.\r\n * later used in TableIndicatorSection in pivoted view.\r\n */\r\nexport interface TableIndicator extends Indicator {\r\n render: (\r\n searchTerm: string[] | undefined,\r\n arrayItem: ObjectArrayItemDifference,\r\n options?: TableRenderOptions,\r\n ) => React.ReactNode;\r\n diffTypeInItem: (item: ObjectArrayItemDifference) => DifferenceType;\r\n hasChangesInItem: (item: ObjectArrayItemDifference) => boolean;\r\n arrayItemDifferenceMatchesSearchTerm: (searchTerms: string[], arrayItem: ObjectArrayItemDifference) => boolean;\r\n}\r\n","import React from 'react';\r\nimport { compareStrings } from '../../../../utils/compare.utils';\r\nimport { Difference, DifferenceType, ObjectArrayDifference, ObjectArrayItemDifference, PrimitiveDifference } from '../../../../utils/differ/types';\r\nimport Highlighter from '../../common/Highlighter';\r\nimport { TableSectionWrapper } from './TableSectionWrapper';\r\nimport { IndicatorItems, ITableSection, TableIndicator, TableRenderMode } from './types';\r\nimport { indicatorMatchesSearchTerm } from './utils';\r\n\r\n/**\r\n * This section renders changes in indicator-items view.\r\n * Indicator-items view presents it in a way that Indicator A has changes in items A, B and C.\r\n */\r\nexport class TableIndicatorItemsSection implements ITableSection {\r\n private indicatorItems: IndicatorItems[] = [];\r\n\r\n constructor(\r\n public title: string,\r\n public entityTitle: string,\r\n protected getItemsDifference: (difference: Difference) => ObjectArrayDifference | undefined,\r\n protected getEntityDifference: (itemDifference: Difference) => PrimitiveDifference | undefined,\r\n public indicators: TableIndicator[],\r\n protected entityTitleFormatter?: (value: unknown) => string,\r\n ) {\r\n this.isMatchSearchTerm = this.isMatchSearchTerm.bind(this);\r\n }\r\n\r\n get renderedIndicatorItems() {\r\n return this.indicatorItems;\r\n }\r\n\r\n isMatchSearchTerm(searchTerms: string[], difference: Difference) {\r\n if (!searchTerms.length || searchTerms.some(s => this.entityTitle.toLowerCase().includes(s.toLowerCase()))) {\r\n return true;\r\n }\r\n\r\n const itemsDifference = this.getItemsDifference(difference);\r\n\r\n const entityMatchSearchTerm = !!itemsDifference?.reduce((acc: boolean, item) => {\r\n // Preserve 'true' value\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (!item.difference) {\r\n return false;\r\n }\r\n\r\n const entityDifference = this.getEntityDifference(item.difference);\r\n const searchValue = this.entityTitleFormatter\r\n ? this.entityTitleFormatter(String(entityDifference?.derivedValue))\r\n : `${this.entityTitle} ${String(entityDifference?.derivedValue)}`;\r\n\r\n const isSearchTermMatchTitle = searchTerms.some(\r\n s => searchValue.toLowerCase().includes(s.toLowerCase())\r\n );\r\n\r\n return entityDifference?.type !== DifferenceType.Unchanged && isSearchTermMatchTitle;\r\n }, false);\r\n\r\n const indicatorTitleInSectionMatchSearchTerm = this.indicatorItems.reduce((acc: boolean, item) => {\r\n // Preserve 'true' value\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n return item.items.some(i => i.type !== DifferenceType.Unchanged && searchTerms.some(s => `${this.entityTitle} ${String(i?.id)}`.toLowerCase() === s.toLowerCase()));\r\n\r\n }, false);\r\n\r\n return entityMatchSearchTerm || indicatorTitleInSectionMatchSearchTerm;\r\n }\r\n\r\n hasChanges(difference: Difference) {\r\n return this.indicators.some(indicator => indicator.hasChanges(difference));\r\n }\r\n\r\n renderHighlighted(searchTerms: string[], value: string) {\r\n return ;\r\n }\r\n\r\n renderHeader(indicator: TableIndicator, searchTerms: string[], type: DifferenceType) {\r\n if (type === DifferenceType.Updated) {\r\n return (\r\n <>\r\n \r\n From\r\n To\r\n \r\n );\r\n }\r\n\r\n if (type === DifferenceType.Added) {\r\n return (\r\n <>\r\n \r\n {this.renderHighlighted(searchTerms, indicator.title)}\r\n \r\n );\r\n }\r\n\r\n return {this.entityTitle};\r\n }\r\n\r\n renderIndicatorsView(searchTerms: string[], indicatorItems: IndicatorItems[], difference: Difference) {\r\n const indicatorItemsWithChanges = indicatorItems.filter(({ indicator }) => {\r\n return indicatorMatchesSearchTerm(searchTerms, difference)(indicator) || this.isMatchSearchTerm(searchTerms, difference)\r\n });\r\n\r\n const getEntityIdTitle = (item: ObjectArrayItemDifference) => {\r\n const entityDifferenceValue =\r\n item.difference && (this.getEntityDifference(item.difference) as PrimitiveDifference);\r\n\r\n return this.entityTitleFormatter\r\n ? this.entityTitleFormatter(entityDifferenceValue?.derivedValue)\r\n : (entityDifferenceValue?.derivedValue as string);\r\n };\r\n\r\n // Divide indicators on three main sections — those were added, updated and removed.\r\n // Indicator doesn't live by its own, it depends on a particular item diff. `Price` as an\r\n // indicator may be `added` in class A, or may be `removed` in class B. Thus, we need\r\n // to go through all item diffs and check each indicator on it to determine the diff type.\r\n // To avoid this procedure further in render, we map it to a primitive structure with indicator,\r\n // items and diff type\r\n\r\n // Filters by Difference type\r\n const indicatorInItemFilter = (type: DifferenceType) => (indicatorItem: IndicatorItems) =>\r\n indicatorItem.items.find(item => indicatorItem.indicator.diffTypeInItem(item) === type);\r\n\r\n // Maps to convenient sructure\r\n const indicatorItemDifferenceTypeMapper = (type: DifferenceType) => (indicatorItems: IndicatorItems) => ({\r\n ...indicatorItems,\r\n type,\r\n });\r\n\r\n // Combines filter and mapping\r\n const indicatorInItemFilterMap = (indicatorItems: IndicatorItems[], type: DifferenceType) =>\r\n indicatorItems.filter(indicatorInItemFilter(type)).map(indicatorItemDifferenceTypeMapper(type));\r\n\r\n // And used here to sort by difference type\r\n const indicatorsItemsWithDiffType = [\r\n ...indicatorInItemFilterMap(indicatorItemsWithChanges, DifferenceType.Added),\r\n ...indicatorInItemFilterMap(indicatorItemsWithChanges, DifferenceType.Updated),\r\n ...indicatorInItemFilterMap(indicatorItemsWithChanges, DifferenceType.Removed),\r\n ];\r\n\r\n return indicatorsItemsWithDiffType.map(({ indicator, items, type }) => (\r\n \r\n
  • \r\n {this.renderHighlighted(searchTerms, indicator.title)} {type}\r\n
    \r\n
    \r\n {this.renderHeader(indicator, searchTerms, type)}\r\n
    \r\n {items.map((item, index) => {\r\n const entityIdTitle = getEntityIdTitle(item);\r\n const searchTermWithId = searchTerms.some(s =>\r\n s.toLowerCase().startsWith(`${this.entityTitle} ${entityIdTitle}`.toLowerCase()),\r\n )\r\n ? [...searchTerms, entityIdTitle]\r\n : searchTerms;\r\n\r\n if (indicator.diffTypeInItem(item) !== type) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {indicator.render(searchTerms, item, { mode: TableRenderMode.IndicatorItem })}\r\n
    \r\n );\r\n })}\r\n
    \r\n
  • \r\n
    \r\n ));\r\n }\r\n\r\n renderSection(\r\n searchTerms: string[] = [],\r\n difference: Difference,\r\n ) {\r\n if (!this.hasChanges(difference)) {\r\n return null;\r\n }\r\n\r\n // Just to not do excess job in next steps\r\n if (\r\n searchTerms.some(s => !!s.length) &&\r\n !this.isMatchSearchTerm(searchTerms, difference) &&\r\n !this.indicators.some(indicatorMatchesSearchTerm(searchTerms, difference))\r\n ) {\r\n return null;\r\n }\r\n\r\n const itemsDifference = this.getItemsDifference(difference);\r\n\r\n if (!itemsDifference) {\r\n return null;\r\n }\r\n\r\n // Depending on what we collect first (indicators or items), will define priority of modes\r\n // Here we collect items, which were changed under particular indicator (Indicator View)\r\n this.indicatorItems = this.indicators.reduce((acc: IndicatorItems[], indicator) => {\r\n // Collect items, that have changes in current indicator (with one additional condition)\r\n const items = itemsDifference.filter(item => {\r\n // Include only updated items (full row)\r\n // Give back priority for Added and Deleted rows to `Item view`\r\n if (item.type !== DifferenceType.Updated) {\r\n return false;\r\n }\r\n\r\n // Include if it has any changes\r\n return indicator.hasChangesInItem(item);\r\n });\r\n\r\n const isSearchTermMatchEntityTitle = itemsDifference.some(({ type, id }) =>\r\n type !== DifferenceType.Unchanged &&\r\n searchTerms.some(s =>\r\n `${this.entityTitle} ${String(id)}`.toLowerCase() === s.toLowerCase(),\r\n ),\r\n );\r\n\r\n // If there's more than 1 item collected and user is not searching by entity — it's a green light\r\n // to show it as `Indicator view`\r\n if (items.length > 1 && !isSearchTermMatchEntityTitle) {\r\n return [...acc, { indicator, items }];\r\n }\r\n\r\n return acc;\r\n }, []);\r\n\r\n // Perform sorting by title/id of indicator/item, so present it more accurately\r\n this.indicatorItems.sort((a, b) => compareStrings(a.indicator.title, b.indicator.title));\r\n\r\n return this.renderIndicatorsView(searchTerms, this.indicatorItems, difference);\r\n }\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n const section = this.renderSection(searchTerms, difference);\r\n\r\n if (!section) {\r\n return null;\r\n }\r\n\r\n return {section};\r\n }\r\n}\r\n","import { compareStrings } from '../../../../utils/compare.utils';\r\nimport {\r\n Difference,\r\n DifferenceType,\r\n ObjectArrayDifference,\r\n ObjectArrayItemDifference,\r\n PrimitiveDifference\r\n} from '../../../../utils/differ/types';\r\nimport { IndicatorItems, ITableSection, ItemIndicators, TableIndicator, TableRenderMode } from './types';\r\nimport { indicatorMatchesSearchTerm } from './utils';\r\nimport { TableSectionWrapper } from './TableSectionWrapper';\r\nimport Highlighter from '../../common/Highlighter';\r\n\r\n/**\r\n * This section renders changes in item-indicators view.\r\n * Item-indicators view presents it in a way that Item A has changes in indicators B, C and D.\r\n */\r\nexport class TableItemIndicatorsSection implements ITableSection {\r\n constructor(\r\n public title: string,\r\n public entityTitle: string,\r\n protected getItemsDifference: (difference: Difference) => ObjectArrayDifference | undefined,\r\n protected getEntityDifference: (itemDifference: Difference) => PrimitiveDifference | undefined,\r\n public indicators: TableIndicator[],\r\n protected entityTitleFormatter?: (value: unknown) => string,\r\n ) {\r\n this.isMatchSearchTerm = this.isMatchSearchTerm.bind(this)\r\n }\r\n\r\n hasChanges(difference: Difference) {\r\n const itemsDifference = this.getItemsDifference(difference);\r\n\r\n const entityHasChanges = !!itemsDifference?.reduce((acc: boolean, item) => {\r\n // Preserve 'true' value\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (!item.difference) {\r\n return false;\r\n }\r\n\r\n const entityDifference = this.getEntityDifference(item.difference);\r\n\r\n return entityDifference?.type !== DifferenceType.Unchanged;\r\n }, false);\r\n\r\n return this.indicators.some(indicator => indicator.hasChanges(difference)) || entityHasChanges;\r\n }\r\n\r\n renderHeader(item: ObjectArrayItemDifference, indicatorsWithChanges: TableIndicator[]) {\r\n // Do not render `From To` header for added items\r\n if (item.type === DifferenceType.Added) {\r\n return null;\r\n }\r\n\r\n const itemDifferenceTypes = indicatorsWithChanges.map(x => x.diffTypeInItem(item));\r\n\r\n // Do not render `From To` header if no indicators were changed\r\n if (itemDifferenceTypes.every(x => x === DifferenceType.Unchanged)) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n From\r\n To\r\n
    \r\n );\r\n }\r\n\r\n renderItem(\r\n searchTerms: string[],\r\n item: ObjectArrayItemDifference,\r\n indicators: TableIndicator[],\r\n difference: Difference,\r\n ) {\r\n const entityDifference = item.difference && this.getEntityDifference(item.difference);\r\n const isEntityRemoved = entityDifference?.type === DifferenceType.Removed;\r\n const entity = this.entityTitleFormatter\r\n ? this.entityTitleFormatter(entityDifference?.derivedValue)\r\n : entityDifference?.derivedValue;\r\n\r\n const itemEntityWithTitleMatchSearchTerm = searchTerms.some(s =>\r\n `${this.entityTitle} ${entity}`.toLowerCase().includes(s.toLowerCase()),\r\n );\r\n\r\n const indicatorsWithChanges = itemEntityWithTitleMatchSearchTerm ? indicators : indicators.filter(indicatorMatchesSearchTerm(searchTerms, difference));\r\n\r\n return (\r\n
  • \r\n \r\n {!isEntityRemoved && (\r\n
    \r\n {this.renderHeader(item, indicatorsWithChanges)}\r\n {indicatorsWithChanges.map(x => (\r\n
    \r\n {x.render(searchTerms, item, { withTitle: item.type !== DifferenceType.Removed, mode: TableRenderMode.ItemIndicator })}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n
  • \r\n );\r\n }\r\n\r\n getEntitySearchValue(title: string) {\r\n return this.entityTitleFormatter\r\n ? this.entityTitleFormatter(String(title))\r\n : `${this.entityTitle} ${String(title)}`;\r\n }\r\n\r\n renderItemsView(searchTerms: string[], itemIndicators: ItemIndicators[], difference: Difference) {\r\n return itemIndicators.map(({ item, indicators }) => this.renderItem(searchTerms, item, indicators, difference));\r\n }\r\n\r\n renderSection(\r\n searchTerms: string[] = [],\r\n difference: Difference,\r\n excludedIndicatorItems: IndicatorItems[] = [],\r\n ) {\r\n if (!this.hasChanges(difference)) {\r\n return null;\r\n }\r\n\r\n // Just to not do excess job in next steps\r\n if (\r\n searchTerms.some(s => !!s.length) &&\r\n !this.isMatchSearchTerm(searchTerms, difference) &&\r\n !this.indicators.some(indicatorMatchesSearchTerm(searchTerms, difference))\r\n ) {\r\n return null;\r\n }\r\n\r\n const itemsDifference = this.getItemsDifference(difference);\r\n\r\n if (!itemsDifference) {\r\n return null;\r\n }\r\n\r\n // Collect changed items (Items View)\r\n const itemIndicators = itemsDifference.reduce((acc: ItemIndicators[], item) => {\r\n const searchValue = this.getEntitySearchValue(String(item.id));\r\n\r\n const searchTermsMatchTitle = searchTerms.some(s => searchValue.toLowerCase() === s.toLowerCase());\r\n\r\n // if search term matched for entity id, show only this entity\r\n if (\r\n searchTerms.some(s => !!s.length) &&\r\n !searchTermsMatchTitle &&\r\n !this.indicators.some(indicatorMatchesSearchTerm(searchTerms, difference, item))\r\n ) {\r\n return acc;\r\n }\r\n\r\n // Get indicators, which changed in current item\r\n const indicators = this.indicators.filter(x => x.hasChangesInItem(item));\r\n\r\n // No changed indicators — no changed items\r\n // Note that even for deleted items, its indicators will be also deleted\r\n // so this condition doesn't affect deleted items\r\n if (!indicators.length) {\r\n if ([DifferenceType.Removed, DifferenceType.Added].includes(item.type)) {\r\n return [...acc, { item, indicators }];\r\n }\r\n\r\n return acc;\r\n }\r\n\r\n // Some indicators have already been collected in previous mode (Indicators View).\r\n // Thus in this case we should exclude them, but preserve others.\r\n // So first we collect all indicator items, which include the same item in them,\r\n // and then do a map to return only indicators themselve\r\n const indicatorItemsWithCurrentItem = excludedIndicatorItems\r\n .filter(({ items }) => items.some(i => i.id === item.id))\r\n .map(x => x.indicator);\r\n\r\n // Filter out previously found indicators, if they include any of\r\n // already used indicator in `Indicators View`\r\n // Matc by title, as there is no other unique identifier\r\n const filteredIndicators = indicators.filter(\r\n indicator => !indicatorItemsWithCurrentItem.some(x => x.title === indicator.title),\r\n );\r\n\r\n // If after this procedure nothing is left, return accumulator\r\n if (!filteredIndicators.length) {\r\n return acc;\r\n }\r\n\r\n return [...acc, { item, indicators: filteredIndicators }];\r\n }, []);\r\n\r\n // Pefrorm sorting by title/id of indicator/item, so present it more accurately\r\n // indicatorItems.sort((a, b) => compareStrings(a.indicator.title, b.indicator.title));\r\n itemIndicators.sort((a, b) => compareStrings(a.item.id, b.item.id));\r\n return this.renderItemsView(searchTerms, itemIndicators, difference);\r\n }\r\n\r\n isMatchSearchTerm(searchTerms: string[], difference: Difference) {\r\n if (this.hasChanges(difference) && searchTerms.some(s => this.entityTitle.toLowerCase().includes(s.toLowerCase()))) {\r\n return true;\r\n }\r\n\r\n const itemsDifference = this.getItemsDifference(difference)?.filter(d => d.type !== DifferenceType.Unchanged);\r\n\r\n const isUpdatedItemMatchSearchTerm = !!itemsDifference?.filter(d => d.type === DifferenceType.Updated).reduce((acc: boolean, item) => {\r\n if (acc) {\r\n return acc\r\n }\r\n\r\n if (!item.difference) {\r\n return false;\r\n }\r\n\r\n return searchTerms.some(s =>\r\n this.getEntitySearchValue(String(item.id)).toLowerCase().includes(s.toLowerCase()),\r\n );\r\n }, false);\r\n\r\n const entityMatchSearchTerm = itemsDifference?.reduce((acc: boolean, item) => {\r\n // Preserve 'true' value\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (!item.difference) {\r\n return false;\r\n }\r\n\r\n const entityDifference = this.getEntityDifference(item.difference);\r\n const searchValue = this.getEntitySearchValue(String(entityDifference?.derivedValue));\r\n const isSearchTermMatchTitle = searchTerms.some(s => searchValue.toLowerCase() === s.toLowerCase());\r\n\r\n return entityDifference?.type !== DifferenceType.Unchanged && isSearchTermMatchTitle;\r\n }, false);\r\n\r\n return entityMatchSearchTerm || isUpdatedItemMatchSearchTerm;\r\n }\r\n\r\n render(searchTerms: string[] = [], difference: Difference) {\r\n const section = this.renderSection(searchTerms, difference);\r\n\r\n if (!section) {\r\n return null;\r\n }\r\n\r\n return {section};\r\n }\r\n}\r\n","import { Difference, DifferenceType, ObjectArrayDifference, PrimitiveDifference } from '../../../../utils/differ/types';\r\nimport { ITableSection, TableIndicator } from './types';\r\nimport { indicatorMatchesSearchTerm } from './utils';\r\nimport { TableSectionWrapper } from './TableSectionWrapper';\r\nimport { TableIndicatorItemsSection } from './TableIndicatorItemsSection';\r\nimport { TableItemIndicatorsSection } from './TableItemIndicatorsSection';\r\n\r\n/**\r\n * This indicator section utilizes both item-indicators and indicator-items sections.\r\n */\r\nexport class TableIndicatorSection implements ITableSection {\r\n private tableIndicatorItemsSection: TableIndicatorItemsSection;\r\n private tableItemIndicatorsSection: TableItemIndicatorsSection;\r\n\r\n constructor(\r\n public title: string,\r\n public entityTitle: string,\r\n protected getItemsDifference: (difference: Difference) => ObjectArrayDifference | undefined,\r\n protected getEntityDifference: (itemDifference: Difference) => PrimitiveDifference | undefined,\r\n public indicators: TableIndicator[],\r\n protected entityTitleFormatter?: (value: unknown) => string,\r\n ) {\r\n this.tableIndicatorItemsSection = new TableIndicatorItemsSection(\r\n title,\r\n entityTitle,\r\n getItemsDifference,\r\n getEntityDifference,\r\n indicators,\r\n entityTitleFormatter\r\n );\r\n\r\n this.tableItemIndicatorsSection = new TableItemIndicatorsSection(\r\n title,\r\n entityTitle,\r\n getItemsDifference,\r\n getEntityDifference,\r\n indicators,\r\n entityTitleFormatter\r\n );\r\n\r\n this.isMatchSearchTerm = this.isMatchSearchTerm.bind(this);\r\n }\r\n\r\n isMatchSearchTerm(searchTerms: string[], difference: Difference) {\r\n if (this.hasChanges(difference) && searchTerms.some(s => this.entityTitle.toLowerCase().includes(s.toLowerCase()))) {\r\n return true;\r\n }\r\n\r\n const itemsDifference = this.getItemsDifference(difference)?.filter(d => d.type !== DifferenceType.Unchanged);\r\n\r\n const isUpdatedItemMatchSearchTerm = !!itemsDifference\r\n ?.filter(d => d.type === DifferenceType.Updated)\r\n .reduce((acc: boolean, item) => {\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (!item.difference) {\r\n return false;\r\n }\r\n\r\n return searchTerms.some(s =>\r\n `${this.entityTitle} ${String(item.id)}`.toLowerCase().includes(s.toLowerCase()),\r\n );\r\n }, false);\r\n\r\n\r\n const entityMatchSearchTerm = !!itemsDifference?.reduce((acc: boolean, item) => {\r\n // Preserve 'true' value\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (!item.difference) {\r\n return false;\r\n }\r\n\r\n const entityDifference = this.getEntityDifference(item.difference);\r\n\r\n\r\n const searchValue = this.entityTitleFormatter\r\n ? this.entityTitleFormatter(String(entityDifference?.derivedValue))\r\n : `${this.entityTitle} ${String(entityDifference?.derivedValue)}`;\r\n\r\n const isSearchTermMatchTitle = searchTerms.some(s => searchValue.toLowerCase() === s.toLowerCase());\r\n\r\n return entityDifference?.type !== DifferenceType.Unchanged && isSearchTermMatchTitle;\r\n }, false);\r\n\r\n return entityMatchSearchTerm || isUpdatedItemMatchSearchTerm;\r\n }\r\n\r\n hasChanges(difference: Difference) {\r\n const itemsDifference = this.getItemsDifference(difference);\r\n\r\n const entityHasChanges = !!itemsDifference?.reduce((acc: boolean, item) => {\r\n // Preserve 'true' value\r\n if (acc) {\r\n return acc;\r\n }\r\n\r\n if (!item.difference) {\r\n return false;\r\n }\r\n\r\n const entityDifference = this.getEntityDifference(item.difference);\r\n\r\n return entityDifference?.type !== DifferenceType.Unchanged;\r\n }, false);\r\n\r\n return this.indicators.some(indicator => indicator.hasChanges(difference)) || entityHasChanges;\r\n }\r\n\r\n render(searchTerm: string[] = [], difference: Difference) {\r\n if (!this.hasChanges(difference)) {\r\n return null;\r\n }\r\n\r\n // Just to not do excess job in next steps\r\n if (\r\n searchTerm.some(s => s.length) &&\r\n !this.isMatchSearchTerm(searchTerm, difference) &&\r\n !this.indicators.some(indicatorMatchesSearchTerm(searchTerm, difference))\r\n ) {\r\n return null;\r\n }\r\n\r\n const itemsDifference = this.getItemsDifference(difference);\r\n\r\n if (!itemsDifference) {\r\n return null;\r\n }\r\n\r\n const indicatorItemsSection = this.tableIndicatorItemsSection.renderSection(searchTerm, difference);\r\n\r\n const itemIndicatorsSection = this.tableItemIndicatorsSection.renderSection(\r\n searchTerm,\r\n difference,\r\n this.tableIndicatorItemsSection.renderedIndicatorItems\r\n );\r\n\r\n return (\r\n \r\n {itemIndicatorsSection}\r\n {indicatorItemsSection}\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { isNaN, isNil } from 'lodash';\r\nimport { Difference, DifferenceType, ObjectArrayDifference, ObjectArrayItemDifference, PrimitiveDifference } from '../../../../utils/differ/types';\r\nimport Highlighter from '../../common/Highlighter';\r\nimport { DynamicsIcon } from './DynamicsIcon';\r\nimport { Formatter, TableRenderOptions, TableIndicator, TableRenderMode } from './types';\r\nimport { OnHoverTooltip } from '../../../common';\r\nimport { constants } from '../../../../constants';\r\n\r\nexport class TablePrimitiveIndicator implements TableIndicator {\r\n /**\r\n * Represents table primitive indicator\r\n * @param title Indicator title\r\n * @param fieldDifference Function, which accepts diff of array item, and returns an array of indicator fields\r\n * @param objectArrayDifference\r\n * @param formatter\r\n */\r\n constructor(\r\n public title: string,\r\n protected getArrayDifference: (difference: Difference) => ObjectArrayDifference | undefined,\r\n protected getFieldDifference: (itemDifference: Difference) => PrimitiveDifference | undefined,\r\n protected formatter?: Formatter,\r\n ) {}\r\n\r\n getCurrentValue(arrayItem: ObjectArrayItemDifference) {\r\n const fieldDifference = arrayItem.difference && this.getFieldDifference(arrayItem.difference);\r\n\r\n if (!fieldDifference) {\r\n return null;\r\n }\r\n\r\n return this.formatter\r\n ? this.formatter(fieldDifference.currentValue, arrayItem.currentValue)\r\n : fieldDifference.currentValue;\r\n }\r\n\r\n getPreviousValue(arrayItem: ObjectArrayItemDifference) {\r\n const fieldDifference = arrayItem.difference && this.getFieldDifference(arrayItem.difference);\r\n\r\n if (!fieldDifference) {\r\n return null;\r\n }\r\n\r\n const formattedValue = this.formatter\r\n ? this.formatter(fieldDifference.previousValue, arrayItem.previousValue)\r\n : fieldDifference.previousValue;\r\n\r\n return isNil(formattedValue) || isNaN(formattedValue) ? constants.emptyPlaceholder : formattedValue;\r\n }\r\n\r\n arrayItemDifferenceMatchesSearchTerm(searchTerms: string[], arrayItem: ObjectArrayItemDifference) {\r\n const fieldDifference = arrayItem.difference && this.getFieldDifference(arrayItem.difference);\r\n\r\n if (fieldDifference?.type === DifferenceType.Unchanged) {\r\n return false;\r\n }\r\n\r\n return (\r\n !!searchTerms.length &&\r\n searchTerms.some(\r\n s =>\r\n String(this.getCurrentValue(arrayItem)).toLowerCase().includes(s.toLowerCase()) ||\r\n String(this.getPreviousValue(arrayItem)).toLowerCase().includes(s.toLowerCase()) ||\r\n String(fieldDifference?.currentValue).toLowerCase().includes(s.toLowerCase()) ||\r\n String(fieldDifference?.previousValue).toLowerCase().includes(s.toLowerCase()),\r\n )\r\n );\r\n }\r\n\r\n matchesSearchTerm(searchTerms: string[], difference: Difference) {\r\n const arrayDifference = this.getArrayDifference(difference);\r\n\r\n if (!arrayDifference) {\r\n return false;\r\n }\r\n\r\n return arrayDifference.some(i => this.arrayItemDifferenceMatchesSearchTerm(searchTerms, i));\r\n }\r\n\r\n rendreTitle(searchTerms: string[]) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderAddedRow(\r\n searchTerms: string[],\r\n arrayItem: ObjectArrayItemDifference,\r\n title: JSX.Element,\r\n withTitle?: boolean\r\n ) {\r\n return (\r\n \r\n {withTitle && <>{title}}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n renderUpdatedRow(\r\n searchTerms: string[],\r\n arrayItem: ObjectArrayItemDifference,\r\n title: JSX.Element,\r\n withTitle?: boolean\r\n ) {\r\n const fieldDifference = arrayItem.difference && this.getFieldDifference(arrayItem.difference);\r\n\r\n if (!fieldDifference) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {withTitle && <>{title}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {fieldDifference.type === DifferenceType.Removed\r\n ? 'removed'\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 renderDeletedRow(\r\n arrayItem: ObjectArrayItemDifference,\r\n title: JSX.Element,\r\n withTitle?: boolean\r\n ) {\r\n if (!withTitle) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {title}\r\n removed\r\n \r\n );\r\n }\r\n\r\n renderIndicatorItemView(\r\n searchTerms: string[] = [],\r\n arrayItem: ObjectArrayItemDifference,\r\n options: TableRenderOptions = { withTitle: true, mode: TableRenderMode.ItemIndicator }\r\n ) {\r\n const fieldDifference = arrayItem.difference && this.getFieldDifference(arrayItem.difference);\r\n\r\n if (!fieldDifference) {\r\n return null;\r\n }\r\n\r\n const { withTitle } = options;\r\n\r\n const title = this.rendreTitle(searchTerms);\r\n\r\n switch (fieldDifference.type) {\r\n case DifferenceType.Added:\r\n return this.renderAddedRow(searchTerms, arrayItem, title, withTitle);\r\n case DifferenceType.Removed:\r\n return this.renderDeletedRow(arrayItem, title, withTitle);\r\n case DifferenceType.Updated:\r\n return this.renderUpdatedRow(searchTerms, arrayItem, title, withTitle);\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n renderItemIndicatorView(\r\n searchTerms: string[] = [],\r\n arrayItem: ObjectArrayItemDifference,\r\n options: TableRenderOptions = { withTitle: true, mode: TableRenderMode.ItemIndicator }\r\n ) {\r\n const { withTitle } = options;\r\n const title = this.rendreTitle(searchTerms);\r\n\r\n if (arrayItem.type === DifferenceType.Added) {\r\n return this.renderAddedRow(searchTerms, arrayItem, title, withTitle);\r\n }\r\n\r\n return this.renderUpdatedRow(searchTerms, arrayItem, title, withTitle);\r\n }\r\n\r\n render(\r\n searchTerms: string[] = [],\r\n arrayItem: ObjectArrayItemDifference,\r\n options: TableRenderOptions = { withTitle: true, mode: TableRenderMode.ItemIndicator }\r\n ) {\r\n const { mode } = options;\r\n\r\n if (mode === TableRenderMode.ItemIndicator) {\r\n return this.renderItemIndicatorView(searchTerms, arrayItem, options);\r\n }\r\n\r\n return this.renderIndicatorItemView(searchTerms, arrayItem, options);\r\n }\r\n\r\n hasChanges(difference: Difference) {\r\n const arrayDifference = this.getArrayDifference(difference);\r\n\r\n if (!arrayDifference) {\r\n return false;\r\n }\r\n\r\n // In every array element, specified field is not unchanged\r\n return !arrayDifference.every(x => {\r\n return x.difference ? this.getFieldDifference(x.difference)?.type === DifferenceType.Unchanged : true;\r\n });\r\n }\r\n\r\n diffTypeInItem(item: ObjectArrayItemDifference) {\r\n const fieldDifference = item.difference && this.getFieldDifference(item.difference);\r\n\r\n return fieldDifference?.type || DifferenceType.Unchanged;\r\n }\r\n\r\n hasChangesInItem(item: ObjectArrayItemDifference) {\r\n if (!item.difference) {\r\n return false;\r\n }\r\n\r\n return this.getFieldDifference(item.difference)?.type !== DifferenceType.Unchanged;\r\n }\r\n}\r\n","import { isNil, stubFalse } from 'lodash';\r\nimport moment from 'moment';\r\nimport { constants, roles } from '../../../../constants';\r\nimport { collateralQualityTestValues } from '../../../../constants/collateral-quality-test';\r\nimport { collateralTypes } from '../../../../constants/collateral-types';\r\nimport { CollateralQualityTestValue } from '../../../../types/amr-pipeline/enums/CollateralQualityTestValue';\r\nimport { CollateralType } from '../../../../types/amr-pipeline/enums/CollateralType';\r\nimport { OriginatingTransactionClassStatus, transactionClassStatusTitles } from '../../../../types/amr-pipeline/enums/OriginatingTransactionClassStatus';\r\nimport { TransactionStatus, transactionStatusTitles } from '../../../../types/amr-pipeline/enums/TransactionStatus';\r\nimport { TransactionType, TransactionTypes } from '../../../../types/amr-pipeline/enums/TransactionType';\r\nimport { CollateralQualityTest } from '../../../../types/amr-pipeline/models/CollateralQualityTest';\r\nimport { OriginatingTransactionClassDiff } from '../../../../types/amr-pipeline/models/OriginatingTransactionClassDiff';\r\nimport { OriginatingTransactionDiff } from '../../../../types/amr-pipeline/models/OriginatingTransactionDiff';\r\nimport { OriginatingTransactionDocument } from '../../../../types/amr-pipeline/models/OriginatingTransactionDocument';\r\nimport { OriginatingTransactionPortfolioItem } from '../../../../types/amr-pipeline/models/OriginatingTransactionPortfolioItem';\r\nimport { amrFormatUtils, formatUtils, moneyUtils } from '../../../../utils';\r\nimport { Difference } from '../../../../utils/differ/types';\r\nimport { BooleanIndicator } from './BooleanIndicator';\r\nimport { DeletedFileIndicator } from './DeletedFileIndicator';\r\nimport { FileIndicator } from './FileIndicator';\r\nimport { ImpreciseIndicator } from './ImpreciseIndicator';\r\nimport { ImpreciseTableIndicatorSection } from './ImpreciseTableIndicatorSection';\r\nimport { IndicatorSection } from './IndicatorSection';\r\nimport { ListIndicatorSection } from './ListIndicatorSection';\r\nimport { PrimitiveIndicator } from './PrimitiveIndicator';\r\nimport { TableIndicatorSection } from './TableIndicatorSection';\r\nimport { TableItemIndicatorsSection } from './TableItemIndicatorsSection';\r\nimport { TablePrimitiveIndicator } from './TablePrimitiveIndicator';\r\nimport { ITableSection, SimpleIndicator, TableIndicator } from './types';\r\nimport { indicatorMatchesSearchTerm } from './utils';\r\nimport { user } from '../../../../user';\r\nimport { ListBuilder } from '../../../../utils/ListBuilder';\r\n\r\nconst transactionTypeFormatter = (value?: TransactionType) => TransactionTypes.find((t) => t.value === value)?.text;\r\nconst transactionStatusFormatter = (value?: TransactionStatus) => value ? transactionStatusTitles[value] : null;\r\nconst collateralTypesFormatter = (value?: CollateralType) => value ? collateralTypes[value] : null;\r\nconst rollerDeadlineFormatter = (value?: Date) => value ? amrFormatUtils.formatRollerDeadlineDate(moment(value)) : null;\r\nconst defaultDateFormatter = (value?: Date) => value ? moment(value).format(constants.dateFormat) : null;\r\nconst moneyFormatter = (value?: number) => isNil(value) ? null : moneyUtils.money(value);\r\nconst decimalFormatter = (value?: number) => isNil(value) ? null : formatUtils.formatDecimal(value);\r\nconst transactionClassStatusFormatter = (value?: OriginatingTransactionClassStatus) => isNil(value) ? null : transactionClassStatusTitles[value];\r\nconst quotesFormatter = (value: string) => `'${value}'`;\r\n\r\nconst collateralQualityTestFormatter = (value?: number, collateralQualityTest?: CollateralQualityTest) => {\r\n return collateralQualityTest?.value === CollateralQualityTestValue.AssetPar && value\r\n ? moneyUtils.money(value, true)\r\n : formatUtils.formatDecimal(value);\r\n};\r\n\r\nconst isMedia = user.hasRoles(roles.Media);\r\n\r\nconst overviewIndicators = new ListBuilder>()\r\n .add(new PrimitiveIndicator('Transaction Size', x => x.dealBalance, moneyFormatter))\r\n .add(new PrimitiveIndicator('Deal Name', x => x.dealLegalName))\r\n .add(new PrimitiveIndicator('Ticker', x => x.dealTicker))\r\n .add(new PrimitiveIndicator('Transaction Type', x => x.type, transactionTypeFormatter))\r\n .add(new PrimitiveIndicator('Transaction Status', x => x.status, transactionStatusFormatter))\r\n .add(new PrimitiveIndicator('Currency', x => x.currency?.name))\r\n .add(new PrimitiveIndicator('Collateral Type', x => x.collateralType, collateralTypesFormatter))\r\n .add(new BooleanIndicator('Debut Manager’s CLO', x => x.isDebut))\r\n .add(new PrimitiveIndicator('Issuer', x => x.issuer?.legalName))\r\n .add(new PrimitiveIndicator('Co-Issuer', x => x.coIssuer?.legalName))\r\n .add(new PrimitiveIndicator('Collateral Manager', x => x.collateralManager?.legalName))\r\n .add(new PrimitiveIndicator('Arranger', x => x.arranger?.legalName))\r\n .add(new PrimitiveIndicator('Trustee', x => x.trustee?.legalName))\r\n .add(new PrimitiveIndicator('Initial Purchaser', x => x.initialPurchaser))\r\n .add(new ImpreciseIndicator('Transaction overview', x => x.dealOverview))\r\n .add(new ImpreciseIndicator('Manager Highlights', x => x.managerHighlights))\r\n .add(new ImpreciseIndicator('EU Risk Retention Requirements', x => x.euRiskRetentionRequirements))\r\n .add(new ImpreciseIndicator('EU Disclosure Requirements', x => x.euDisclosureRequirements))\r\n .add(new ImpreciseIndicator('ESG Comment', x => x.esgComment))\r\n .add(new ImpreciseIndicator('Offering Type', x => x.offeringType))\r\n .add(new PrimitiveIndicator('Intex Deal Name', x => x.intexName))\r\n .add(new PrimitiveIndicator('Intex Password', x => x.intexPassword))\r\n .add(new BooleanIndicator('EU Compliance', x => x.euCompliance))\r\n .add(new BooleanIndicator('ESG', x => x.esg))\r\n .add(new BooleanIndicator('Static Deal', x => x.staticDeal))\r\n .add(new BooleanIndicator('AMR Deal', x => x.amr))\r\n .add(new BooleanIndicator('Enhanced CLO', x => x.enhancedCLO))\r\n .add(new PrimitiveIndicator('Roller Deadline', x => x.rollerDeadline, rollerDeadlineFormatter))\r\n .add(new PrimitiveIndicator('Target Pricing', x => x.pricingDate, defaultDateFormatter))\r\n .add(new PrimitiveIndicator('Closing Date', x => x.closingDate, defaultDateFormatter))\r\n .add(new PrimitiveIndicator('First Payment Date', x => x.firstPaymentDate, defaultDateFormatter))\r\n .add(new PrimitiveIndicator('Non-Call End', x => x.nonCallPeriodEnd, defaultDateFormatter))\r\n .add(new PrimitiveIndicator('Reinvestment End', x => x.reinvestmentPeriodEnd, defaultDateFormatter))\r\n .add(new PrimitiveIndicator('Maturity', x => x.statedMaturity, defaultDateFormatter))\r\n .addWhen(() => !isMedia, new FileIndicator('Disclosure', x => x.disclosureFile?.name, quotesFormatter))\r\n .addWhen(() => !isMedia, new DeletedFileIndicator('Disclosure', x => x.disclosureFile?.name, quotesFormatter))\r\n .addWhen(() => !isMedia, new ImpreciseIndicator('Manager Presentation', x => x.managerPresentationFile?.name))\r\n .addWhen(() => !isMedia, new FileIndicator('Intex File', x => x.intexFile?.name, quotesFormatter))\r\n .addWhen(() => !isMedia, new DeletedFileIndicator('Intex File', x => x.intexFile?.name, quotesFormatter))\r\n .result();\r\n\r\nconst collateralAssumptionsIndicators: SimpleIndicator[] = [\r\n new PrimitiveIndicator('Target Par', x => x.calculatedTargetPar, moneyFormatter),\r\n new PrimitiveIndicator('Bid Price', x => x.calculatedBidPrice, decimalFormatter),\r\n new PrimitiveIndicator('Ask Price', x => x.calculatedAskPrice, decimalFormatter),\r\n new PrimitiveIndicator('WAS (%)', x => x.was, decimalFormatter)\r\n];\r\n\r\nconst sourcesAndUsesIndicators: SimpleIndicator[] = [\r\n new PrimitiveIndicator('Source - Rated Notes', x => x.ratedNotes, moneyFormatter),\r\n new PrimitiveIndicator('Source - Sub Notes', x => x.subNotes, moneyFormatter),\r\n new PrimitiveIndicator('Uses - Purchase Assets', x => x.purchaseAssets, moneyFormatter),\r\n new PrimitiveIndicator('Uses - Upfront Fees & Expenses', x => x.upfrontFeesAndExpenses, moneyFormatter),\r\n new PrimitiveIndicator('Uses - Interest Reserve', x => x.interestReserve, moneyFormatter),\r\n];\r\n\r\nconst managementFeesIndicators: SimpleIndicator[] = [\r\n new PrimitiveIndicator('Senior Management Fee, bps', x => x.seniorManagementFee, decimalFormatter),\r\n new PrimitiveIndicator('Sub Management Fee, bps', x => x.subManagementFee, decimalFormatter),\r\n new PrimitiveIndicator('Incentive Management Fee, %', x => x.incentiveManagementFee, decimalFormatter),\r\n new PrimitiveIndicator('Admin Expense Cap, bps', x => x.adminExpenseCapPercentage, decimalFormatter),\r\n new PrimitiveIndicator('Admin Expense Cap, $', x => x.adminExpenseCap, moneyFormatter),\r\n new PrimitiveIndicator('Trustee, bps', x => x.trusteeFee, decimalFormatter),\r\n];\r\n\r\nconst collateralQualityTestsIndicators: TableIndicator[] = [\r\n new TablePrimitiveIndicator('Target', x => x.collateralQualityTests, x => x.target, collateralQualityTestFormatter),\r\n new TablePrimitiveIndicator('Covenant', x => x.collateralQualityTests, x => x.covenant, collateralQualityTestFormatter),\r\n];\r\n\r\nconst structureIndicators: TableIndicator[] = [\r\n new TablePrimitiveIndicator('Balance', x => x.classes, x => x.balance, moneyFormatter),\r\n new TablePrimitiveIndicator('C/E, %', x => x.classes, x => x.parSubordination, decimalFormatter),\r\n new TablePrimitiveIndicator('% of Cap Structure', x => x.classes, x => x.percentOfCapStructure, decimalFormatter),\r\n new TablePrimitiveIndicator('MVOC, %', x => x.classes, x => x.mvoc, decimalFormatter),\r\n new TablePrimitiveIndicator('WAL', x => x.classes, x => x.wal, decimalFormatter),\r\n new TablePrimitiveIndicator('DM, bps', x => x.classes, x => x.dm),\r\n new TablePrimitiveIndicator('Price', x => x.classes, x => x.priceNumber, decimalFormatter),\r\n new TablePrimitiveIndicator('O/C Trigger, %', x => x.classes, x => x.ocTrigger, decimalFormatter),\r\n new TablePrimitiveIndicator('O/C Target, %', x => x.classes, x => x.ocTarget, decimalFormatter),\r\n new TablePrimitiveIndicator('O/C Cushion, %', x => x.classes, x => x.ocCushion, decimalFormatter),\r\n new TablePrimitiveIndicator('I/C Trigger, %', x => x.classes, x => x.icTrigger, decimalFormatter),\r\n new TablePrimitiveIndicator('Rtg (M/S/F/K/D)',x => x.classes, x => x.ratingString, decimalFormatter),\r\n new TablePrimitiveIndicator('Coupon', x => x.classes, x => x.coupon),\r\n new TablePrimitiveIndicator('Guidance', x => x.classes, x => x.guidance),\r\n new TablePrimitiveIndicator('Subscription', x => x.classes, x => x.subscription),\r\n new TablePrimitiveIndicator('AMR', x => x.classes, x => x.amr, formatUtils.formatBoolean),\r\n new TablePrimitiveIndicator('Class Status', x => x.classes, x => x.originatingTransactionClassStatus, transactionClassStatusFormatter),\r\n];\r\n\r\ntype IndicatorsType =\r\n | IndicatorSection\r\n | TableItemIndicatorsSection\r\n | TableIndicatorSection\r\n | ListIndicatorSection\r\n | ImpreciseTableIndicatorSection;\r\n\r\n\r\nconst getIndicatorSections = (hasLimitedAccess: boolean) =>\r\n new ListBuilder()\r\n .add(new IndicatorSection('Overview', overviewIndicators))\r\n .addWhen(() => !hasLimitedAccess, new IndicatorSection('Collateral Assumptions', collateralAssumptionsIndicators))\r\n .add(new IndicatorSection('Sources and Uses', sourcesAndUsesIndicators))\r\n .add(new IndicatorSection('Management Fees', managementFeesIndicators))\r\n .add(\r\n new TableItemIndicatorsSection(\r\n 'Portfolio Summary',\r\n '',\r\n x => x.collateralQualityTests,\r\n x => x.value,\r\n collateralQualityTestsIndicators,\r\n (value: unknown) => collateralQualityTestValues[value as CollateralQualityTestValue] || '',\r\n ),\r\n )\r\n .add(\r\n new TableIndicatorSection(\r\n 'Structure',\r\n 'Class',\r\n x => x.classes,\r\n x => x.name,\r\n structureIndicators,\r\n ),\r\n )\r\n .addWhen(() => !isMedia,\r\n new ListIndicatorSection(\r\n 'Documents',\r\n x => x.documents,\r\n x => x.name,\r\n quotesFormatter,\r\n ),\r\n )\r\n .addWhen(() => !isMedia,\r\n new ImpreciseTableIndicatorSection(\r\n 'Target Portfolio',\r\n x => x.portfolio,\r\n ),\r\n )\r\n .result()\r\n\r\nexport const getIndicatorsConfig = (difference: Difference, hasLimitedAccess: boolean, searchTerm?: string[]) => {\r\n const indicatorSections = getIndicatorSections(hasLimitedAccess);\r\n\r\n if (!searchTerm || searchTerm.every(s => !s.length)) {\r\n return indicatorSections;\r\n }\r\n\r\n return indicatorSections\r\n .filter(indicatorSection => {\r\n const isMatchSearchTerm = (indicatorSection as ITableSection)?.isMatchSearchTerm || stubFalse;\r\n\r\n const isEntityDifferenceMatchSearchTerm = isMatchSearchTerm(searchTerm, difference);\r\n\r\n return isEntityDifferenceMatchSearchTerm || indicatorSection.indicators.some(indicatorMatchesSearchTerm(searchTerm, difference));\r\n });\r\n}\r\n","import { useEffect, useMemo, useState } from \"react\";\r\nimport { EmptyPlaceholder } from \"../../common\";\r\nimport classnames from \"classnames\";\r\nimport { SelectionPanelSearch } from '../common/SelectionPanelSearch';\r\nimport { PipelineHistoryItem } from '../../../types/state/PipelineHistoryState';\r\nimport { TransactionHistoryNavItem } from './TransactionHistoryNavItem/TransactionHistoryNavItem';\r\nimport { getIndicatorsConfig } from './TransactionHistoryNavItem/indicators-config';\r\nimport { pipelineHistoryFields } from '../../../constants/amr-pipeline/pipelineHistoryFields';\r\nimport { compareStrings } from \"../../../utils/compare.utils\";\r\nimport { AutoCompleteSourceItem } from \"../types/AutoCompleteInputSourceItem\";\r\nimport { TransactionStatus } from \"../../../types/amr-pipeline/enums/TransactionStatus\";\r\nimport { moneyUtils, numericUtils } from \"../../../utils\";\r\nimport { Company } from \"../../../types/amr-pipeline/models/Company\";\r\nimport { hasLimitedAccess } from \"../../../utils/amr-pipeline.utils\";\r\nimport { dealUpdatesIdentifiersTitles } from '../../../types/amr-pipeline/enums/DealUpdateIdentifier';\r\n\r\ninterface Props {\r\n history: PipelineHistoryItem[];\r\n selectedItem: PipelineHistoryItem;\r\n allHistoryClassesList?: AutoCompleteSourceItem[];\r\n userCompany?: Company;\r\n isLoading: boolean;\r\n onChange: (version: number) => void;\r\n}\r\n\r\nexport const TransactionHistorySelectionPanel = ({\r\n history,\r\n isLoading,\r\n selectedItem,\r\n userCompany,\r\n allHistoryClassesList,\r\n onChange,\r\n}: Props) => {\r\n const [collapsed, setCollapsed] = useState(false);\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const limitedAccess = hasLimitedAccess(history[history.length - 1].transaction, userCompany);\r\n\r\n const suggestedList = useMemo(() => allHistoryClassesList ? [...pipelineHistoryFields, ...allHistoryClassesList] : pipelineHistoryFields, [allHistoryClassesList]);\r\n\r\n const searchTermValues = useMemo(() => {\r\n if (!searchTerm) {\r\n return [];\r\n }\r\n\r\n const searchValue = suggestedList.find(f => f.text === searchTerm)?.searchTerm || searchTerm;\r\n const synonyms = suggestedList.reduce((acc: string[], field) => {\r\n const lowerSearchTerm = searchTerm.toLocaleLowerCase();\r\n\r\n const synonym = field.synonyms?.find(s => s.toLowerCase().includes(lowerSearchTerm));\r\n\r\n if (!synonym) {\r\n return acc;\r\n }\r\n\r\n return [...acc, field.searchTerm ? field.searchTerm.toLowerCase() : field.text.toLowerCase()];\r\n }, []);\r\n const moneySynonym = numericUtils.isNumber(searchValue) && moneyUtils.money(searchValue);\r\n\r\n return moneySynonym ? [...synonyms, searchValue, moneySynonym] : [...synonyms, searchValue];\r\n }, [searchTerm, suggestedList]);\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 const navItems = history.map(historyItem => {\r\n const indicatorSections = getIndicatorsConfig(\r\n historyItem.diff,\r\n limitedAccess,\r\n searchTermValues,\r\n );\r\n\r\n const dealUpdatesMatchesSearchTerms = historyItem.transaction.dealUpdates?.some(d =>\r\n searchTermValues?.some(s => dealUpdatesIdentifiersTitles[d].toLowerCase().includes(s.toLowerCase())),\r\n );\r\n\r\n if (!indicatorSections.length && !dealUpdatesMatchesSearchTerms) {\r\n return undefined;\r\n }\r\n\r\n const versionClosingDate = historyItem.transaction.status === TransactionStatus.Closed\r\n && historyItem.transaction.closingDate\r\n ? historyItem.transaction.closingDate\r\n : undefined;\r\n\r\n return (\r\n \r\n );\r\n }).filter(item => !!item);\r\n\r\n const isEmpty = !navItems.length || (!history.length && !isLoading);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { constants } from \"../../../constants\";\r\nimport { AmrTransaction } from \"../../../types/amr-pipeline/models/AmrTransaction\";\r\nimport { OriginatingTransaction } from \"../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { dateTimeUtils } from \"../../../utils\";\r\nimport IssuanceMonitorBreadcrumbs from '../IssuanceMonitorBreadcrumbs';\r\nimport { OnHoverTooltip } from \"../../common\";\r\nimport { TransactionStatus } from \"../../../types/amr-pipeline/enums/TransactionStatus\";\r\nimport moment from \"moment\";\r\n\r\ninterface HeaderProps {\r\n versionDateTime: Date;\r\n selectedTransaction: OriginatingTransaction | AmrTransaction;\r\n}\r\n\r\nconst Header = ({ versionDateTime, selectedTransaction }: HeaderProps) => {\r\n const historyDate = selectedTransaction.status === TransactionStatus.Closed\r\n && selectedTransaction.closingDate\r\n ? moment(selectedTransaction.closingDate).format(constants.dateFormat)\r\n : dateTimeUtils.changeDateTimeZone(\r\n versionDateTime,\r\n constants.estTimezone,\r\n false\r\n ).format(constants.dateTimeFormat) + \" EST\";\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n

    {selectedTransaction.dealLegalName}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {historyDate}\r\n
    \r\n
    \r\n Added\r\n Updated\r\n Removed\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import { Link } from \"react-router-dom\";\r\nimport { routes } from \"../../../constants\";\r\n\r\ninterface HistoryInfoProps {\r\n versionTitle: string;\r\n referenceName: string;\r\n dealReferenceName: string;\r\n}\r\n\r\nexport const HistoryInfo = ({\r\n versionTitle,\r\n referenceName,\r\n dealReferenceName,\r\n}: HistoryInfoProps) => (\r\n
    \r\n \r\n \r\n You are viewing {versionTitle}\r\n \r\n \r\n Exit history\r\n \r\n
    \r\n);\r\n","import { useEffect } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { isNil } from 'lodash';\r\nimport { Preloader } from \"../../common\";\r\nimport { amrTransactionHistoryActions } from '../../../actions'\r\nimport { routes } from \"../../../constants\";\r\nimport { AppState } from \"../../../types/state/AppState\";\r\nimport { TransactionsTabTypes } from \"../types/TransactionsTabTypes\";\r\nimport { Redirect, useHistory, useParams } from \"react-router\";\r\nimport { TransactionHistorySelectionPanel } from './TransactionHistorySelectionPanel';\r\nimport { PipelineHistoryState } from '../../../types/state/PipelineHistoryState';\r\nimport Header from './Header';\r\nimport { OriginatingTransactionDetails } from '../detailed/new-issue/OriginatingTransactionDetails';\r\nimport { HistoryInfo } from './HistoryInfo';\r\nimport TransactionContext from '../transactionContext';\r\nimport { canViewTransactionDetails, hasLimitedAccess } from '../../../utils/amr-pipeline.utils';\r\nimport { PipelineCommonState } from '../../../types/state/PipelineCommonState';\r\n\r\ninterface RouteParams {\r\n transactionReferenceName: string;\r\n dealReferenceName: string;\r\n tab?: TransactionsTabTypes;\r\n version?: string;\r\n}\r\n\r\nexport const PipelineHistory = () => {\r\n const { dealReferenceName, transactionReferenceName, tab, version } = useParams();\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const {\r\n history: transactionsHistory,\r\n allHistoryClassesList,\r\n isLoading\r\n } = useSelector(\r\n (state: AppState) => state.issuanceMonitor.amrPipelineHistory\r\n );\r\n\r\n const { userCompany } = useSelector(\r\n state => state.issuanceMonitor.amrPipelineCommon\r\n );\r\n\r\n const selectedVersion = version ? parseInt(version, 10) : undefined;\r\n const selectedTab = tab || TransactionsTabTypes.overview;\r\n\r\n const selectedTransactionHistory = transactionsHistory?.find(x => x.version === selectedVersion);\r\n\r\n useEffect(() => {\r\n dispatch(amrTransactionHistoryActions.transactionHistoryRequest(dealReferenceName, transactionReferenceName));\r\n\r\n return () => {\r\n dispatch(amrTransactionHistoryActions.reset());\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (transactionsHistory?.length) {\r\n const [firstHistoryItem] = transactionsHistory;\r\n\r\n if (isNil(selectedVersion)) {\r\n history.replace(routes.transactionHistoryUrl(transactionReferenceName, dealReferenceName, tab, firstHistoryItem.version));\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [transactionsHistory, dealReferenceName, transactionReferenceName]);\r\n\r\n useEffect(() => {\r\n if (isNil(selectedVersion) || isNil(selectedTransactionHistory) || selectedTransactionHistory.transaction.isDetailsLoaded) {\r\n return;\r\n }\r\n\r\n dispatch(\r\n amrTransactionHistoryActions.loadTransactionDetais(\r\n selectedVersion,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n selectedTransactionHistory?.transaction?.arranger?.referenceName\r\n )\r\n );\r\n }, [\r\n dispatch,\r\n dealReferenceName,\r\n transactionReferenceName,\r\n selectedVersion,\r\n selectedTransactionHistory,\r\n selectedTransactionHistory?.transaction.arranger?.referenceName\r\n ]);\r\n\r\n const handleViewTransaction = (version: number) => {\r\n history.replace(routes.transactionHistoryUrl(transactionReferenceName, dealReferenceName, tab, version));\r\n };\r\n\r\n const handleTabChange = (tab: string) => {\r\n history.replace(routes.transactionHistoryUrl(transactionReferenceName, dealReferenceName, tab, version));\r\n };\r\n\r\n if (isLoading && (!transactionsHistory?.length || !selectedTransactionHistory)) {\r\n return ;\r\n }\r\n\r\n if (!transactionsHistory?.length) {\r\n return ;\r\n }\r\n\r\n if (!selectedTransactionHistory) {\r\n return false;\r\n }\r\n\r\n const { transaction } = selectedTransactionHistory;\r\n\r\n const contextValue = {\r\n canView: canViewTransactionDetails(),\r\n limitedAccess: hasLimitedAccess(transaction, userCompany),\r\n accessTracking: false,\r\n analyticsAccess: false,\r\n invitedClientsAccess: false,\r\n ioisAccess: false,\r\n };\r\n\r\n return (\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 );\r\n};\r\n","export enum PipelineView {\r\n Deal = 'deal',\r\n Class = 'class'\r\n}\r\n","import React from \"react\";\r\nimport { ScrollSyncPane } from \"react-scroll-sync\";\r\nimport { constants } from \"../../../../../constants\";\r\nimport { OriginatingTransactionClass } from \"../../../../../types/amr-pipeline/models/OriginatingTransactionClass\";\r\nimport { moneyUtils } from \"../../../../../utils\";\r\nimport {\r\n SecurityListRow,\r\n SecurityListColumn,\r\n} from \"../../../../bidding/common\";\r\nimport { ColumnBuilder } from \"../../../../bidding/common/table/columns/column-builder/ColumnBuilder\";\r\n\r\ninterface Props {\r\n classes: OriginatingTransactionClass[];\r\n columns: ColumnBuilder[];\r\n sticky?: boolean;\r\n}\r\n\r\nexport function TotalBalance({ classes, columns, sticky }: Props) {\r\n let totalBalance: number | null = null;\r\n classes.map((c: OriginatingTransactionClass) => {\r\n if (c.balance != null) {\r\n if (totalBalance != null) totalBalance = totalBalance + c.balance;\r\n else totalBalance = c.balance;\r\n }\r\n\r\n return c;\r\n });\r\n\r\n const formattedTotalBalance = totalBalance ? moneyUtils.money(totalBalance) : constants.emptyPlaceholder;\r\n\r\n return sticky ? (\r\n \r\n \r\n
    \r\n {columns.map((c: any, index: number) => {\r\n if (index === 0)\r\n return (\r\n \r\n Total:\r\n \r\n );\r\n else return null;\r\n })}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {formattedTotalBalance}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
    Total
    \r\n
    {formattedTotalBalance}
    \r\n
    \r\n )\r\n}\r\n","import { capitalize, castArray } from 'lodash';\r\nimport classNames from 'classnames';\r\nimport { DifferenceType, ObjectArrayDifference, PrimitiveDifference } from '../../../../utils/differ/types';\r\n\r\ninterface BaseDifferenceLabelProps {\r\n prefix?: string;\r\n}\r\n\r\ninterface DifferenceLabelProps extends BaseDifferenceLabelProps {\r\n differenceType: DifferenceType;\r\n}\r\n\r\ninterface FieldDifferenceLabelProps extends BaseDifferenceLabelProps {\r\n difference?: PrimitiveDifference | (PrimitiveDifference | undefined)[];\r\n}\r\n\r\ninterface TableDifferenceLabelProps extends BaseDifferenceLabelProps {\r\n difference?: ObjectArrayDifference;\r\n}\r\n\r\nconst withPrimitiveDifference = (Component: React.ComponentType) =>\r\n ({ difference, prefix }: FieldDifferenceLabelProps) => {\r\n const differenceValues = castArray(difference);\r\n\r\n // Haschanges if not all values are unchanged\r\n const hasChanges = !differenceValues\r\n .filter(diff => !!diff)\r\n .every(diff => diff?.type === DifferenceType.Unchanged);\r\n\r\n if (!hasChanges || !differenceValues.length) {\r\n return null;\r\n }\r\n\r\n let [firstDifferenceValue] = differenceValues;\r\n\r\n const differenceType = differenceValues.length > 1\r\n ? DifferenceType.Updated\r\n : firstDifferenceValue?.type;\r\n\r\n // Difference values can be undefined\r\n if (!differenceType) {\r\n return null;\r\n }\r\n\r\n return ;\r\n };\r\n\r\nconst withObjectArrayDifference = (Component: React.ComponentType) =>\r\n ({ difference, prefix }: TableDifferenceLabelProps) => {\r\n const differenceValues = castArray(difference);\r\n\r\n // Haschanges if not all values are unchanged\r\n const hasChanges = !differenceValues\r\n .filter(diff => !!diff)\r\n .every(diff => diff?.type === DifferenceType.Unchanged);\r\n\r\n if (!hasChanges || !differenceValues.length) {\r\n return null;\r\n }\r\n\r\n let differenceType: DifferenceType = DifferenceType.Updated;\r\n\r\n if (difference?.every(x => x.type === DifferenceType.Removed)) {\r\n differenceType = DifferenceType.Removed;\r\n }\r\n\r\n if (difference?.every(x => x.type === DifferenceType.Added)) {\r\n differenceType = DifferenceType.Added;\r\n }\r\n\r\n return ;\r\n };\r\n\r\nexport const DifferenceLabel = ({ prefix, differenceType }: DifferenceLabelProps) => {\r\n const title = prefix ? `${prefix} ${differenceType}` : capitalize(differenceType);\r\n\r\n return (\r\n {title}\r\n );\r\n}\r\n\r\n/**\r\n * Show difference for Primitive fields\r\n */\r\nexport const FieldDifferenceLabel = withPrimitiveDifference(DifferenceLabel);\r\n\r\n/**\r\n * Show difference in lists (Object Arrays)\r\n * Used particularly for Portfolio section\r\n */\r\nexport const TableDifferenceLabel = withObjectArrayDifference(DifferenceLabel);\r\n","import { PrimitiveDifference, Dynamics } from '../../../../utils/differ/types';\r\nimport IconSVG from '../../../../styles/svg-icons';\r\n\r\ninterface Props {\r\n difference?: PrimitiveDifference;\r\n}\r\n\r\nexport const DynamicsIcon = ({ difference }: Props) => {\r\n if (!difference || !difference.dynamics) {\r\n return null;\r\n }\r\n\r\n return difference.dynamics === Dynamics.Decreased\r\n ? \r\n : ;\r\n}\r\n","import { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { ActionBlocker } from '../../access/ActionBlocker';\r\n\r\ntype TRenderChildren = (blocked: boolean) => React.ReactNode;\r\n\r\nexport const ImSubscriptionActionBlocker = ({\r\n children,\r\n overrideRequiredFeatures,\r\n}: {\r\n children: React.ReactNode | TRenderChildren;\r\n overrideRequiredFeatures?: boolean;\r\n}) => (\r\n \r\n {children}\r\n \r\n);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { roles, routes } from \"../../../../constants\";\r\nimport { AmrTrancheStatus, amrTrancheStatusTitles } from \"../../../../types/amr-pipeline/enums/AmrTrancheStatus\";\r\nimport { AmrTransaction } from \"../../../../types/amr-pipeline/models/AmrTransaction\";\r\nimport { OnHoverTooltip } from \"../../../common\";\r\nimport StatusLabel from \"../../StatusLabel\";\r\nimport { startCase } from \"lodash\";\r\nimport { AmrClass } from \"../../../../types/amr-pipeline/models/AmrClass\";\r\nimport Highlighter from \"../../common/Highlighter\";\r\nimport { DealUpdatesPopover } from \"../../aggregated/DealUpdatesPopover\";\r\nimport { user } from \"../../../../user\";\r\nimport { SubscriptionFeature } from \"../../../../types/billing/SubscriptionFeature\";\r\nimport { ActionBlocker } from \"../../../access/ActionBlocker\";\r\n\r\ninterface Props {\r\n transaction: AmrTransaction;\r\n selected: boolean;\r\n selectedClassReferenceName?: string;\r\n searchTerm: string;\r\n}\r\n\r\nexport const AmrTransactionNavItem = ({\r\n transaction,\r\n selected,\r\n selectedClassReferenceName,\r\n searchTerm\r\n}: Props) => {\r\n const history = useHistory();\r\n const [isCollapsed, setIsCollapsed] = useState(selected ? false : true);\r\n const isArrangersClient = user.hasSingleRole(roles.ArrangersClient);\r\n\r\n useEffect(() => {\r\n setIsCollapsed(!selected);\r\n }, [selected, selectedClassReferenceName]);\r\n\r\n const renderLastUpdatedPopover = (transaction: AmrTransaction) => (\r\n \r\n {blocked => {\r\n const {\r\n referenceName,\r\n dealReferenceName,\r\n dealLegalName,\r\n lastUpdated,\r\n type,\r\n status,\r\n version,\r\n } = transaction;\r\n\r\n return (\r\n \r\n );\r\n }}\r\n \r\n );\r\n\r\n const renderClass = (amrClass: AmrClass) => {\r\n const active = selectedClassReferenceName === amrClass.referenceName;\r\n const statusVisible =\r\n amrClass.status === AmrTrancheStatus.Initiated ||\r\n amrClass.status === AmrTrancheStatus.Scheduled ||\r\n amrClass.status === AmrTrancheStatus.AcceptingBids;\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n redirectToClass();\r\n };\r\n\r\n const redirectToClass = () =>\r\n history.push(\r\n routes.transactionClassUrl(\r\n transaction.referenceName,\r\n transaction.dealReferenceName,\r\n amrClass.referenceName\r\n )\r\n );\r\n\r\n return (\r\n amrClass?.status !== AmrTrancheStatus.Initiated &&\r\n \r\n \r\n \r\n Class {amrClass.name}\r\n \r\n {statusVisible && }\r\n \r\n \r\n );\r\n };\r\n return (\r\n <>\r\n \r\n \r\n selected\r\n ? setIsCollapsed(!isCollapsed)\r\n : history.push(\r\n routes.transactionDetailUrl(\r\n transaction.referenceName,\r\n transaction.dealReferenceName\r\n )\r\n )\r\n }\r\n className=\"icon icon-expand\"\r\n >
    \r\n history.push(\r\n routes.transactionDetailUrl(\r\n transaction.referenceName,\r\n transaction.dealReferenceName\r\n )\r\n )}\r\n >\r\n
    \r\n \r\n \r\n \r\n
    \r\n {transaction.isNew &&
    new
    }\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n \r\n \r\n {transaction.type}\r\n
    \r\n \r\n
    \r\n {renderLastUpdatedPopover(transaction)}\r\n
    \r\n \r\n \r\n \r\n
      \r\n {selected &&\r\n !isCollapsed &&\r\n transaction.classes.map((c) => renderClass(c))}\r\n
    \r\n \r\n );\r\n};\r\n","import { startCase } from \"lodash\";\r\nimport classNames from \"classnames\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { roles, routes } from \"../../../../constants\";\r\nimport { TransactionTypes, TransactionType } from \"../../../../types/amr-pipeline/enums/TransactionType\";\r\nimport { OriginatingTransaction } from \"../../../../types/amr-pipeline/models/OriginatingTransaction\";\r\nimport { OnHoverTooltip } from \"../../../common\";\r\nimport StatusLabel from \"../../StatusLabel\";\r\nimport Highlighter from \"../../common/Highlighter\";\r\nimport { transactionStatusTitles } from \"../../../../types/amr-pipeline/enums/TransactionStatus\";\r\nimport { NewDebutAmrLabel } from \"../../common/NewDebutAmrLabel\";\r\nimport { DealUpdatesPopover } from \"../../aggregated/DealUpdatesPopover\";\r\nimport { TransactionsTabTypes } from \"../../types/TransactionsTabTypes\";\r\nimport { PipelineDetailedTabTypes } from \"../../types/PipelineDetailedTabTypes\";\r\nimport { getTransactionDetailsUrl, hasIOIsAccess } from '../../../../utils/amr-pipeline.utils';\r\nimport { user } from \"../../../../user\";\r\nimport { ActionBlocker } from \"../../../access/ActionBlocker\";\r\nimport { SubscriptionFeature } from \"../../../../types/billing/SubscriptionFeature\";\r\n\r\ninterface Props {\r\n transaction: OriginatingTransaction;\r\n selected: boolean;\r\n searchTerm: string;\r\n activeTab: PipelineDetailedTabTypes;\r\n}\r\n\r\nexport const OriginatingTransactionNavItem = ({ transaction, selected, searchTerm, activeTab }: Props) => {\r\n const history = useHistory();\r\n\r\n const ioisAccess = hasIOIsAccess();\r\n\r\n const { iois, classes } = transaction;\r\n const withIOIs = ioisAccess && (iois?.length || classes.some(c => c.numberOfIOIs));\r\n\r\n const typeText = TransactionTypes.find(\r\n (t) => t.value === transaction.type\r\n )?.text?.toLowerCase();\r\n const statusTitle = transactionStatusTitles[transaction.status];\r\n const isArrangersClient = user.hasSingleRole(roles.ArrangersClient);\r\n\r\n const renderLastUpdatedPopover = (transaction: OriginatingTransaction) => (\r\n \r\n {blocked => {\r\n const {\r\n referenceName,\r\n dealReferenceName,\r\n dealLegalName,\r\n lastUpdated,\r\n type,\r\n status,\r\n version,\r\n dealUpdates,\r\n } = transaction;\r\n\r\n return (\r\n \r\n );\r\n }}\r\n \r\n );\r\n\r\n const redirectToTransactionDetails = () => {\r\n history.push(getTransactionDetailsUrl(transaction, activeTab));\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n {withIOIs && (\r\n {\r\n e.stopPropagation();\r\n history.push(\r\n routes.transactionDetailUrl(\r\n transaction.referenceName,\r\n transaction.dealReferenceName,\r\n TransactionsTabTypes.IOIs,\r\n ),\r\n );\r\n }}\r\n className=\"label-status label-status-iois\"\r\n >\r\n IOIs\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n {transaction.type === TransactionType.refi\r\n ? \"Refi\"\r\n : TransactionTypes.find(t => t.value === transaction.type)?.text\r\n }\r\n
    \r\n \r\n
    {renderLastUpdatedPopover(transaction)}
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n","import { useContext, useEffect, useState } from 'react';\r\nimport { InfiniteScrollLoader, EmptyPlaceholder } from '../../common';\r\nimport classnames from 'classnames';\r\nimport { TransactionType } from '../../../types/amr-pipeline/enums/TransactionType';\r\nimport { AmrTransaction } from '../../../types/amr-pipeline/models/AmrTransaction';\r\nimport { OriginatingTransaction } from '../../../types/amr-pipeline/models/OriginatingTransaction';\r\nimport { amrPipelineDetailedActions } from '../../../actions';\r\nimport InfiniteScroll from 'react-infinite-scroller';\r\nimport { AmrTransactionNavItem } from './amr/AmrTransactionNavItem';\r\nimport { OriginatingTransactionNavItem } from './new-issue/OriginatingTransactionNavItem';\r\nimport { SelectionPanelSearch } from '../common/SelectionPanelSearch';\r\nimport { PipelineDetailedTabTypes } from '../types/PipelineDetailedTabTypes';\r\nimport { PipelineTabs, Tab } from '../aggregated/PipelineTabs';\r\nimport TransactionContext from '../transactionContext';\r\nimport { hasIOIsAccess, withSearchedClassIndicator } from '../../../utils/amr-pipeline.utils';\r\nimport { AmrClass } from '../../../types/amr-pipeline/models/AmrClass';\r\nimport { OriginatingTransactionClass } from '../../../types/amr-pipeline/models/OriginatingTransactionClass';\r\nimport { useDebounce } from '../../../effects/useDebounce';\r\nimport { user } from '../../../user';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { BlockedFeatureContent, SubscribeLink } from \"../../../components/access/BlockedFeatureText\";\r\nimport { useAppDispatch } from '../../../effects/useAppDispatch';\r\n\r\ninterface Props {\r\n transactions: (OriginatingTransaction | AmrTransaction)[];\r\n initialTransaction?: OriginatingTransaction | AmrTransaction;\r\n selectedTransaction?: OriginatingTransaction | AmrTransaction;\r\n isLoading: boolean;\r\n isSubmittingIoIs: boolean;\r\n activeTab: PipelineDetailedTabTypes;\r\n onTabChange: (tab: PipelineDetailedTabTypes) => void;\r\n selectedClassReferenceName?: string;\r\n searchTerm: string;\r\n hasMoreTransactions?: boolean;\r\n numberOfHiddenTransactions?: number;\r\n}\r\n\r\nexport const TransactionsSelectionPanel = ({\r\n transactions,\r\n hasMoreTransactions = true,\r\n isLoading,\r\n selectedTransaction,\r\n activeTab,\r\n isSubmittingIoIs,\r\n onTabChange,\r\n initialTransaction,\r\n searchTerm,\r\n selectedClassReferenceName,\r\n numberOfHiddenTransactions,\r\n}: Props) => {\r\n const { canView } = useContext(TransactionContext);\r\n const [collapsed, setCollapsed] = useState(!canView);\r\n\r\n const debouncedSearch = useDebounce(searchTerm, 500);\r\n\r\n const dispatch = useAppDispatch();\r\n const ioisAccess = hasIOIsAccess();\r\n\r\n const withImSubscription = user.hasFeatures(SubscriptionFeature.IssuanceMonitorFullAccess);\r\n const hasInvisibleDeals = !hasMoreTransactions && !!(numberOfHiddenTransactions && numberOfHiddenTransactions > 0);\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 useEffect(() => {\r\n if (debouncedSearch.length > 2 || debouncedSearch.length === 0) {\r\n dispatch(amrPipelineDetailedActions.transactionsSearchTermChange(activeTab));\r\n }\r\n // eslint-disable-next-line\r\n }, [debouncedSearch]);\r\n\r\n function handleLoading() {\r\n if (!isLoading) dispatch(amrPipelineDetailedActions.loadTransactions(activeTab));\r\n }\r\n\r\n function handleSearchTermChange(value: string) {\r\n dispatch(amrPipelineDetailedActions.searchTermChange(value));\r\n\r\n if (!value) {\r\n dispatch(amrPipelineDetailedActions.transactionsSearchTermChange(activeTab));\r\n }\r\n }\r\n\r\n function handleChangeTab(tab: PipelineDetailedTabTypes) {\r\n dispatch(amrPipelineDetailedActions.searchTermChange(''));\r\n dispatch(amrPipelineDetailedActions.transactionsSearchTermChange(tab));\r\n onTabChange(tab);\r\n }\r\n\r\n function renderEmptyPlaceHolder() {\r\n return ;\r\n }\r\n\r\n function renderInitialTransaction() {\r\n if (!initialTransaction) {\r\n return;\r\n }\r\n\r\n\r\n const isAmr = initialTransaction?.type === TransactionType.amr;\r\n\r\n const shouldInitialTransactionShow =\r\n !searchTerm.length ||\r\n initialTransaction?.dealLegalName.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n initialTransaction?.dealTicker?.toLowerCase().includes(searchTerm.toLowerCase()) ||\r\n initialTransaction?.classes.some(\r\n c => withSearchedClassIndicator(searchTerm, isAmr? (c as AmrClass).class : (c as OriginatingTransactionClass).tranche)\r\n )\r\n\r\n if (isLoading || !shouldInitialTransactionShow) {\r\n return;\r\n }\r\n\r\n if (activeTab === PipelineDetailedTabTypes.ioi && !(initialTransaction as OriginatingTransaction).iois?.length) {\r\n return;\r\n }\r\n\r\n if (isAmr) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n function renderTransactions(transaction: OriginatingTransaction | AmrTransaction) {\r\n const isInitialTransaction = transaction.referenceName === initialTransaction?.referenceName;\r\n\r\n if (isInitialTransaction) {\r\n return;\r\n }\r\n\r\n const key = transaction.referenceName + transaction.dealReferenceName;\r\n const isSelected =\r\n transaction.referenceName === selectedTransaction?.referenceName &&\r\n transaction.dealReferenceName === selectedTransaction?.dealReferenceName;\r\n\r\n if (transaction.type === TransactionType.amr) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n\r\n }\r\n\r\n const renderLastRow = () => {\r\n if (!hasInvisibleDeals || withImSubscription || isLoading) {\r\n return null;\r\n }\r\n\r\n return (\r\n to see {numberOfHiddenTransactions} more deal(s).}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import IconSVG from '../../../styles/svg-icons';\r\nimport { Transaction } from '../../../types/amr-pipeline/models/Transaction';\r\nimport { SubscriptionFeature } from '../../../types/billing/SubscriptionFeature';\r\nimport { hasArrangerAccess } from '../../../utils/amr-pipeline.utils';\r\nimport { ActionBlocker } from '../../access/ActionBlocker';\r\n\r\nexport const ImSubscriptionValue = ({\r\n children,\r\n transaction,\r\n overrideRequiredFeatures,\r\n}: {\r\n children: React.ReactNode;\r\n transaction?: Transaction;\r\n overrideRequiredFeatures?: boolean;\r\n}) => {\r\n const hasArrangerProSubscription = hasArrangerAccess(transaction);\r\n\r\n if (hasArrangerProSubscription || overrideRequiredFeatures) {\r\n return <>{children};\r\n }\r\n\r\n return (\r\n \r\n {(blocked) => blocked\r\n ? \r\n : <>{children}\r\n }\r\n \r\n );\r\n};\r\n"],"names":["PipelineColumn","PipelineDetailedTabTypes","PipelineDetailedLimitedAccess","dispatch","useAppDispatch","_useSelector","useSelector","state","issuanceMonitor","amrPipelineDetailed","transactions","isTransactionsRequesting","searchTerm","numberOfHiddenTransactions","userCompany","amrPipelineCommon","_useState","useState","all","_useState2","_slicedToArray","selectionPanelTab","setSelectionPanelTab","transactionsLoaded","contextValue","useMemo","canView","canViewTransactionDetails","limitedAccess","accessTracking","analyticsAccess","invitedClientsAccess","ioisAccess","hasIOIsAccess","undefined","React","imUserConfigActions","getUserConfig","amrPipelineDetailedActions","reset","loadTransactions","_jsx","TransactionContext","Provider","value","children","className","_jsxs","TransactionsSelectionPanel","initialTransaction","isLoading","isSubmittingIoIs","selectedClassReferenceName","selectedTransaction","hasMoreTransactions","activeTab","onTabChange","RequiredFeature","inline","feature","SubscriptionFeature","IssuanceMonitorFullAccess","text","_Fragment","SubscribeLink","IssuanceMonitorTab","withDeletedItems","Component","_ref","items","difference","props","_objectWithoutProperties","_excluded","deletedClasses","filter","itemDiference","previousValue","type","DifferenceType","Removed","map","x","withDeleted","concat","_toConsumableArray","_objectSpread","PercentageBar","title","_ref$maxValue","maxValue","_ref$value","fillingPercent","style","width","OnHoverTooltip","overlay","placement","disabled","overlayClassName","constants","emptyPlaceholder","IntexPopup","transaction","omitArrangerProOverride","onCloseClick","dealReferenceName","referenceName","intexName","intexPassword","intexFile","dealTicker","dealLegalName","intexExists","_useDownloadDocument","useDownloadDocument","downloadRequest","amrPipelineService","downloadIntexFile","requestArgs","fileNameForSave","name","handleDownload","isDownloading","currentIntexPositionId","getCurrentIntexPositionIdForTransaction","hasArrangerProSubscription","transactionHasArrangerProSubscription","Popup","modalClass","onClose","PopupBody","SectionContent","actionBtn","IntexLink","positionId","overrideRequiredFeature","FormField","ValueBlocker","IssuanceMonitorStandardizedDetailsTabs","overrideRequiredFeatures","DownloadDocument","onClick","document","secondary","loadingText","FileIcon","filename","PopupFooter","withTabTracking","tabAccessType","useContext","useEffect","_props$transaction","logTabAccess","Documents","TransactionAccessType","setSearchTerm","documents","filteredDocuments","getSearchedTransactionDocuments","TabBody","hasArrangerAccess","renderBlockedContent","BlockedFeatureContent","SearchInput","onClear","onChange","placeholder","DocumentSection","transactionReferenceName","length","sort","a","b","downloadAllFetch","getTransactionDocuments","downloadAllArgs","DifferenceField","_ref$formatter","formatter","derivedValue","isNumeric","differenceType","Updated","Added","getDifferenceType","renderContent","classNames","DynamicsIcon","balance","columnKey","renderColumnHeaderContent","renderColumnContent","transactionClass","moneyUtils","money","numericUtils","isNumber","sortingField","sortingType","SORTING_TYPE","number","amrColumn","_ref2","amr","formatUtils","formatBoolean","headerClassName","bodyClassName","classIndicatorColumnDefinitions","ticker144A","string","tickerRegS","tickerAccdInvCertif","capitalStructureColumnDefinitions","stickLeft","_ref3","OverlayClassNameContent","originatingTransactionClassStatus","OriginatingTransactionClassStatus","NotOffered","amrConstants","notOffered","_ref4","formatDecimal","parSubordination","_ref5","percentOfCapStructure","_ref6","_formatUtils$formatDe","mvoc","_ref7","wal","_ref8","ratingString","amrFormatUtils","formatRating","rating","_ref9","_ref10","coupon","_ref11","_transactionClass$dm","ImSubscriptionValue","dm","_ref12","initialPrice","_ref13","formattedPrice","price","currentValue","dynamics","Dynamics","Increased","Decreased","_ref14","initialGuidance","context","withGuidance","LastUpdatedPopover","field","historyLinkTarget","_ref15","_difference$guidance","guidance","_ref16","startCase","transactionClassStatusTitles","withSubscription","_ref17","_difference$subscript","subscription","_ref18","isPortfolioEnabled","user","hasRoles","roles","ArrangersClient","AddToPortfolioLink","checkSubscription","BloombergLink","placeholderIfEmpty","secondaryPlaceholderColor","identifiers","ValitanaLink","stickRight","coverageTestColumnDefinitions","_ref19","_formatUtils$formatDe2","ocTrigger","_ref20","_formatUtils$formatDe3","ocTarget","_ref21","ocCushion","_ref22","_formatUtils$formatDe4","icTrigger","covClassIndicatorColumnDefinitions","cusip144A","isin144A","cusipRegS","isinRegS","cusipAccdInvCertif","isinAccdInvCertif","capitalStructureColumns","c","ColumnBuilder","classIndicatorColumns","coverageTestColumns","coverageClassIndicatorColumns","CapitalStructure","_ref$withCoverage","withCoverage","capitalStructureTransactionClasses","tc","tranche","floaterIndex","margin","capitalStructureClass","formatInventoryCoupon","Table","sticky","dataItems","columns","createSecurityCustomArgs","item","arrayItelDifference","find","createSecurityCustomClassName","createHeaderCustomArgs","some","renderFooterRow","TotalBalance","classes","EmptyPlaceholder","formatToStartCase","formatToMoney","GoToIcon","IconSVG","height","BlockedGoToButton","General","_difference$status","_difference$currency","_selectedTransaction$4","_difference$issuer","_selectedTransaction$5","_selectedTransaction$6","_difference$coIssuer","_selectedTransaction$7","_selectedTransaction$8","_difference$collatera2","_difference$arranger2","_difference$trustee2","status","StatusLabel","transactionStatusTitles","FieldDifferenceLabel","dealBalance","currency","code","collateralType","collateralTypes","issuer","legalName","coIssuer","collateralManager","_difference$collatera","ManagerLink","ShowFor","seller","bd","Administrator","DataEntry","Media","ActionBlocker","blocked","_selectedTransaction$2","Link","target","to","routes","AMRPipeline","renderCollateralManagerField","arranger","_difference$arranger","BankLink","_selectedTransaction$3","renderArrangerField","trustee","_difference$trustee","_selectedTransaction$","renderTrusteeField","initialPurchaser","composeDateWithPeriodLeft","periodLeft","dateFormatter","moment","format","dateFormat","dateWithPeriodFormatter","formattedDate","Dates","pricingDate","rollerDeadline","nonCallPeriodEnd","closingDate","reinvestmentPeriodEnd","firstPaymentDate","statedMaturity","vintage","yrsLeftToDateFrom","dateTimeUtils","nonCallPeriodEndTimeLeft","reinvestmentPeriodEndTimeLeft","firstPaymentDateTimeLeft","statedMaturityTimeLeft","vintageTimeLeft","rollerDeadlineFormatter","TransactionType","newIssue","formatRollerDeadlineDate","nonCallPeriodEndFormatter","reinvestmentPeriodEndFormatter","firstPaymentDateFormatter","statedMaturityFormatter","vintageFormatter","timeLeft","year","toString","refi","vintageByTypeFormatter","today","isToday","AdditionalInfo","downloadManagerPresentationFile","managerPresentationFile","isManagerPresentationDownloading","_useDownloadDocument2","downloadDisclosureFile","disclosureFile","isDisclosureDownloading","renderDocument","downloadFile","renderPlainOrDifference","diffDocument","DifferenceLabel","getAllRolesExclude","Viewer","dealOverview","renderMarkdownOrEmpty","managerHighlights","euCompliance","euRiskRetentionRequirements","euDisclosureRequirements","esg","esgComment","staticDeal","offeringType","capitalize","SyndicateContacts","contacts","firstName","lastName","fullName","nameUtils","getFullName","ContactType","DistributionList","HeadOfDesk","email","href","officePhoneNumber","mobilePhoneNumber","Intex","_intexFile$referenceN","_intexFile$referenceN2","_difference$intexFile","PreviousTransactionControlPanel","security","securityDetails","useAppSelector","s","bwicLog","currentBwic","SecurityDetailsPanel","tabs","active","SecurityDetails","onActivate","securityDetailsActions","securityDetailsInitRequest","onDeactivate","securityDetailsReset","BWICLog","bwicLogActions","bwicLogInitRequest","bwicLogReset","RightSideTabPanel","ticker","SecurityDetailsOptions","optionsExclude","position","controlPanelActions","hide","PreviousTransaction","hasAccess","hasFeatures","previousTransaction","usePreviousTransaction","ClosingDate","date","PreviousTransactionTable","dateFormatDoubleDay","convertToTableDataItem","_class","statistics","_class$tranche","_class$tranche2","_class$tranche3","t","localeCompare","sensitivity","convertToDealSecurityTableItem","_useDealSecurityStati","useDealSecurityStatistics","requestState","selectedSecurity","setSelectedSecurity","_class$tranche4","TickerButton","fetchAgencyRatings","e","myBwicColumn","currentBwicColumn","inventoryColumn","lastTradedMineColumn","lastTradedColumn","lastTradedColorColumn","Preloader","inProgress","isRequestSuccess","highlighted","DealOverview","Overview","_difference$version","wrapperRef","useRef","current","scrollIntoView","version","ref","syndicateContacts","AdministrativeFee","adminExpenseCapPercentage","adminExpenseCap","trusteeFee","val","formatToDecimal","CollateralAssumptions","calculatedTargetPar","dealStructureUtils","calcTargetPar","calculatedBidPrice","calcBidPrice","calculatedAskPrice","calcAskPrice","was","valueFormatter","collateralQualityTestValues","covenantAndTargetFormatter","collateralQualityTest","isNil","CollateralQualityTestValue","AssetPar","MoodysWARF","collateralQualityTestsColumns","_covenantAndTargetFor","covenant","CollateralQualityTests","ManagementFee","seniorManagementFee","subManagementFee","incentiveManagementFee","SourceAndUses","ratedNotes","subNotes","purchaseAssets","upfrontFeesAndExpenses","interestReserve","DealStructure","Structure","collateralQualityTests","targetPar","transactionPortfolio","rampedPar","targetPortfolioColumnDefinitions","securityType","loanXId","purchasePrice","facility","rateType","liborFloor","referenceIndex","maturity","dateShortFormat","country","trancheSize","moodysIndustry","snPIndustry","moodysRecoveryRate","snPRecoveryRate","covLite","moodysCreditFacilityRating","snPCreditFacilityRating","fitchCreditFacilityRating","moodysTrancheRating","snPTrancheRating","fitchTrancheRating","moodysWARF","modeledPrice","indicativeBid","indicativeAsk","depth","TotalRow","portfolio","totalTargetPar","totalRampedPar","SecurityListRow","index","SecurityListColumn","column","TargetPortfolio","_transaction$portfoli","_transaction$portfoli2","TableDifferenceLabel","prefix","exportPortfolio","ioi","_context$classes$find","classStatus","formatClassStatus","classReferenceName","isDeleted","ioiSize","size","ioiSizePercent","sizePercent","commonColumns","_ioi$dm","oid","comment","submitDate","dateTimeFormat","ratingMoodys","ratingSnP","ratingFitch","ratingKbra","ratingDbrs","investor","address","city","zipCode","cityAndState","zipCodeAndCountry","memberColumns","member","primaryContact","members","Tab","InvestorPopup","_investor$company3","useDispatch","Members","tab","setTab","investorPopup","company","hideInvestorPopup","TabList","TabItem","Company","_investor$company2","CompanyTab","_investor$company","sortContactsByPrimary","MembersTab","renderTab","IOIs","Iois","history","useHistory","iois","editIOIs","isInvestorPopupVisible","isVisible","nonDraftDataItems","grid","draft","isUnsavedChangesPopupVisible","setUnsavedChangesPopupVisible","_useState3","_useState4","isDeleteAllPopupVisible","setDeleteAllPopupVisible","_useState5","_useState6","showDeletedClasses","setShowDeletedClasses","isCollateralManagerOwnTransactions","isCollateralManagersOwnTransaction","isSellerTrader","SellerTrader","isSellerViewer","SellerViewer","isSeller","isInvitedClient","hasSingleRole","unreadIOIsLength","isRead","ioisWithoutDeletedClasses","isAllClassesDisabledForIoIs","every","classItem","Subject","showAddButton","TransactionStatus","Active","allOnDeletedClasses","someOnDeletedClasses","ioisList","isIOIsListWithContent","showEditButton","gridActions","readIOIsByUser","ioiReferenceName","setUnreadIOIsRead","isEditWithChanges","i","original","editItem","errors","fields","isEqual","isChangedOrDeleted","d","handleSubmitButtonClick","submitIOIs","showEditMode","showGridIOIs","exportIOIs","cancelEdit","TabContent","Checkbox","label","checked","Grid","dataUploadDisabled","RouteLeavingGuard","navigate","pathname","push","shouldBlockNavigation","daysInMarket","totalDocumentsDownloads","recentTransactionViews","totalTransactionViews","infoTooltip","generalData","textinfo","hoverinfo","hole","hoverlabel","bgcolor","bordercolor","font","color","direction","emptyPieChartData","values","marker","colors","layout","showlegend","autosize","l","r","pad","mainConfig","responsive","displaylogo","doubleClickDelay","displayModeBar","showTips","colorsSubscribed","colorsUnsubscribed","DownloadedDocumentsType","documentDownloads","groupedByAccessType","groupBy","accessType","dealDocuments","DownloadAllDocuments","DownloadOneDocument","withImSubscription","documentsData","downloads","sumBy","dt","numberOfDocuments","DownloadDisclosureFile","DownloadManagerPresentationFile","ExportTargetPortfolio","DownloadIntexFile","documentsWithDownloads","data","line","chartData","Plot","config","kebabCase","ViewedTabs","_ref$clientsActivity","clientsActivity","totalViews","ca","Deal","numberOfAccess","viewTabData","TransactionAccessTypes","f","fieldData","views","v","ClientsActivityChart","divId","onBarClick","closingMoment","Closed","chartEndMoment","isBefore","chartLayout","clientsActivityChart","tickColor","tickFont","barColors","zeroLineColor","handleBarClick","point","points","toDate","customdata","getChartRange","fromMoment","dateFrom","startOf","subtract","clone","add","toMoment","dateTo","endOf","dateTimeFormatUtc","getLayout","dateRange","xAxisRange","rangeSliderRange","min","max","diff","asDays","getSliderRange","hovermode","barmode","ChartView","Grouped","xaxis","tickcolor","tickfont","tickformat","fixedrange","dtick","dayMs","range","rangeslider","yaxis","showgrid","showtickprefix","gridcolor","ticks","zerolinecolor","edgeDimensions","days","minDateRow","arrayUtils","accessDateTime","tenDaysAgo","getEdgeDimensionValues","row","get","isSameDay","iteratee","isSame","groupedByDate","reduce","acc","existingEntry","entries","fillGaps","amrChartUtils","gapsFiller","clientsActivityMap","y","hovertext","groupedByVersions","Array","from","versionA","versionClientsActivity","_TransactionAccessTyp","_versionClientsActivi","firstEntry","accessTypeTitle","versionString","changeDateTimeZone","versionDate","estTimezone","getChartData","onHover","chartUtils","setCursor","onUnhover","renderChart","DashboardNoSelectedFilters","defaultProps","withAnalyticsRequest","getAction","selector","_filter$dateOption2","_useSelector2","analytics","initialLoading","users","isDataLoaded","_filter$dateOption","dateOption","key","dateRangeFilterOptions","Custom","isLoaded","ClientsActivityWidget","amrTransactionAnalyticsActions","clientsActivityRequest","handleFilterChange","useCallback","clientsActivityFilterChange","transactionViewHistoryFilterByBar","filteredClientsActivity","includes","userEmail","chart","ChartRequiredFeature","chartName","blockedClassName","AnalyticsWidget","onFilterChange","tabDefinitions","TransactionViewHistoryTabs","OverviewTab","_length","userSession","formattedVersionDate","utcToLocalString","transactionHistoryUrl","ContactsTab","userFullName","companyLegalName","userPhoneNumber","DocsDownloadedTab","notDownloadableDocNames","uniqueDocuments","getUniqueDocsWithDownloadsCount","_useDownloadDocumentL","useDownloadDocumentList","downloadStatisticDocument","loadHandler","loadingState","docName","getDocumentDownloadLink","downloadCount","TransactionViewHistoryPopover","_userSession$document","_ref$defaultTab","defaultTab","setActiveTab","formattedActionDate","PseudoLink","downloadableDocuments","documentsList","times","Popover","actionButton","onOpen","showCloseButton","DocsDownloaded","Contacts","renderActiveTab","transactionViewHistoryColumnsDefinition","ProportionBar","getDocumentCountBySession","dealDocumentsViews","disclosureFileViews","managerPresentationViews","targetPortfolioViews","intexFileViews","Pluralize","count","singular","FollowUp","TransactionViewHistoryTable","transactionHistoryViews","TransactionViewHistoryWidget","transactionViewHistoryRequest","dataForTable","transactionViewHistoryFilterChange","Analytics","actions","analyticsInit","infoNotification","Priced","StatusMessageSection","StatusMessageSectionType","Info","invitedClientsColumns","transactionClient","invitationDate","dateFormat4","registrationDate","lastTransactionView","InvitedClients","emailToResend","setEmailToResend","invitedClients","isAdmin","apply","admin","historyViewsData","client","_historyViewsData$fin","view","_transaction$invitedC","transactionViewHistoryResponse","InviteClientsTransactionPopup","defaultEmailList","convertToTableItem","_t$arrangerCode","isCurrentTransaction","arguments","arrangerText","arrangerCode","arrangerLegalName","convertCurrentTransactionToTableItem","_t$collateralManager$","_t$collateralManager","_t$collateralManager$2","_t$collateralManager2","_t$arranger$legalName","_t$arranger","_t$arranger2","_t$arranger$reference","_t$arranger3","_t$pricingDate","managerLegalName","managerReferenceName","arrangerReferenceName","warf","ds","sortByCurrentThenByDealName","compareBoolean","compareStrings","ComparableDealTable","currentTransaction","deals","logUserActivity","action","deal","ImTransactionDetailsLink","TransactionAnalyticCollectingActions","ComparableDealsDeal","requiredFeatures","CloManagerLink","ComparableDealsManager","ComparableDealsArranger","overlayText","toLocaleString","minimumFractionDigits","maximumFractionDigits","defaultSortBy","defaultSortByDirection","SORT","DESC","ComparativeMetricsWidget","description","comparableSpread","dealSpread","chartNameLimitedPlan","getDimension","spread","hasDataToCompare","isSpreadEmpty","IssuanceSpreadChart","spreads","fieldSelector","DashboardWidget","DashboardSkeleton","isRequesting","lowerCase","replace","DashboardWidgetHeader","DashboardWidgetContent","DashboardNoData","imgName","imgWidth","imgHeight","ComparativeMetrics","_useDealComparativeMe","RequestState","none","setRequestState","metrics","setMetrics","isRequestNone","doRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_metrics","wrap","_context","prev","next","request","getDealComparableMetrics","sent","success","t0","failure","errorActions","error","stop","useDealComparativeMetrics","createSpreadFromSingleValue","_metrics$statsWAS","q1","median","statsWAS","q3","emptyMarker","statsWAL","statsWARF","statsDS","currentWAS","currentWAL","currentWARF","currentDS","getCurrency","_transaction$currency","_transaction$currency2","Currency","USD","EUR","getTerm","isLong","getTransactionType","_TransactionTypes$fin","TransactionTypes","toLowerCase","hasData","Fragment","collateralTypesAbbr","flat","comparableDeals","OriginatingTransactionDetails","_ref$activeTab","TransactionsTabTypes","overview","_ref$activeSelectionP","activeSelectionPanelTab","onNavigate","_useContext","isMedia","isOriginatingWithoutHistory","isDetailsLoaded","isTransactionNonDraft","Draft","unreadIOIs","handleTabChange","transactionDetailUrl","loadTransactionDetails","structure","comparativeMetrics","allRolesWithoutArrangersClient","HeaderAction","currentClass","onActionClick","_ref$isClassActive","isClassActive","isArrangerBrokerDealer","isBrokerDealersOwnTransaction","withSyndicateContacts","isOriginatingTransaction","isArrangersClient","renderTitle","CollateralManager","IssuanceMonitorBreadcrumbs","NewDebutAmrLabel","wrapperClass","ShareTransaction","TransactionAlertsButton","withLabel","Alerts","OnHold","lastUpdated","dealUpdates","DealUpdatesPopover","withOverlayPrefix","formatLastUpdated","TransactionHistoryLink","RoleActionBlocker","blockedByRole","RelatedTransDropdown","hasTransactions","numberOfDealPublishedTransactions","wrapperClassName","withText","withEmptyPlaceholder","IntexButton","asyncFileLoad","class","textLink","AmrDealTabTypes","Details","dateOrDefault","tooltip","ImSubscriptionActionBlocker","_transaction$collater","_deal$trustee","amrAgent","majorityEquity","secondPaymentDate","quarterlyDay","toOrdinal","quarterlyMonths","lastRefinancingDate","finalMaturity","Classes","AmrTrancheStatus","Initiated","amrClass","AmrClassStatusLabel","transactionClassUrl","cusip","formatMargin","capMargin","NonAmrPeriod","period","nonAmrPeriod","isAdminOrDataEntry","imDetailsDealsActions","resetDocumentsSearch","originalDocuments","isPublic","executionDate","getDealDocLastDate","compareDates","amrDocuments","dealRegularDocuments","getDealRegularDocumentTypes","documentType","distributionReports","DocumentType","distributionReport","monthlyReports","monthlyReport","otherDocuments","otherDocument","documentsSearchTermChange","dealsService","getDealRegularDocuments","getDealDocumentsByType","getDocumentTypeText","TransactionDetails","details","path","renderTabContent","AmrDealTrancheTabTypes","Auctions","isAuctionServiceProvider","auctions","auction","winningMargin","settlementDate","actualAuction","EmptySectionContent","statusVisible","Scheduled","AcceptingBids","InlineAlertPanel","isin","commonCodeRegS","equity","formatBooleanWithPlaceholder","redeemed","pariPassuTranches","trancheSupported","tooltipLabel","nonAmrPeriodEnd","originalBalance","minimumDenomination","originalMargin","factor","formatFactor","amrTrancheStatuses","getStatusText","originalRatingSnP","originalRatingMoodys","originalRatingFitch","originalRatingKbra","originalRatingDbrs","ClassDetails","_ref$isAuctionService","Redirect","notFound","AmrDetails","store","imDetailsDeals","isDealDetailsRequesting","isTrancheDetailsRequesting","loadedTransactionsWithDetails","selectedTranche","selectedClass","storeTransactionDetails","loadDealDetails","loadTrancheDetails","PipelineDetailed","_useParams","useParams","isIOIsSubmitting","isTransactionDetailsRequesting","location","useLocation","isPortfolioDisabled","usePortfolios","isPortfoliosLoaded","isRequestFailed","showIntextPopup","setShowIntexPopup","showSyndicatePopup","setShowSyndicatePopup","showSharePopup","setShowSharePopup","_useState7","_useState8","showAlertsPopup","setShowAlertsPopup","_useState9","_useState10","token","queryString","search","decode","arrangerName","currentAmrClass","hasLimitedAccess","hasAnalyticsAccess","hasInvitedClientsAccess","init","Header","SyndicatePopup","TransactionAlertsPopup","TransactionHistoryNavItem","selected","searchTerms","onViewClick","dealUpdatesIdentifiers","versionTitle","versionClosingDate","indicatorSections","isSearchTermEntered","defaultModeExpanded","setDefaultModeExpanded","searchModeExpanded","setSearchModeExpanded","isInitialTransaction","expanded","Highlighter","searchWords","textToHighlight","dealUpdatesIdentifiersTitles","expandOrCollapse","handleExpand","historyDate","sections","render","section","defaultFormatter","indicatorMatchesSearchTerm","indicator","indicatorTitleMatchesSearchTerms","toLocaleLowerCase","indicatorValueMatchesSearchTerms","arrayItemDifferenceMatchesSearchTerm","matchesSearchTerm","hasChanges","PrimitiveIndicator","_createClass","getValueDifference","_classCallCheck","uid","uuid","valueDifference","this","String","autoEscape","renderHighlighter","Unchanged","BooleanIndicator","_PrimitiveIndicator","_this","_callSuper","_inherits","DeletedFileIndicator","FileIndicator","ImpreciseIndicator","ImpreciseTableIndicatorSection","getItemsDifference","indicators","IndicatorSection","ListIndicatorSection","getFieldDifference","itemsDifference","_this$getFieldDiffere","_this$getItemsDiffere","_this2","fieldDiff","TableSectionWrapper","TableRenderMode","TableIndicatorItemsSection","entityTitle","getEntityDifference","entityTitleFormatter","indicatorItems","isMatchSearchTerm","bind","entityMatchSearchTerm","entityDifference","searchValue","isSearchTermMatchTitle","indicatorTitleInSectionMatchSearchTerm","id","renderHighlighted","indicatorItemsWithChanges","indicatorInItemFilterMap","indicatorItem","diffTypeInItem","indicatorInItemFilter","indicatorItemDifferenceTypeMapper","renderHeader","entityIdTitle","entityDifferenceValue","getEntityIdTitle","searchTermWithId","startsWith","mode","IndicatorItem","_this3","hasChangesInItem","isSearchTermMatchEntityTitle","renderIndicatorsView","renderSection","TableItemIndicatorsSection","entityHasChanges","indicatorsWithChanges","isEntityRemoved","entity","withTitle","ItemIndicator","itemIndicators","renderItem","_this4","excludedIndicatorItems","getEntitySearchValue","searchTermsMatchTitle","indicatorItemsWithCurrentItem","filteredIndicators","renderItemsView","_this5","isUpdatedItemMatchSearchTerm","TableIndicatorSection","tableIndicatorItemsSection","tableItemIndicatorsSection","indicatorItemsSection","itemIndicatorsSection","renderedIndicatorItems","TablePrimitiveIndicator","getArrayDifference","arrayItem","fieldDifference","formattedValue","isNaN","getCurrentValue","getPreviousValue","arrayDifference","options","rendreTitle","renderAddedRow","renderDeletedRow","renderUpdatedRow","renderItemIndicatorView","renderIndicatorItemView","_this3$getFieldDiffer","defaultDateFormatter","moneyFormatter","decimalFormatter","quotesFormatter","collateralQualityTestFormatter","overviewIndicators","ListBuilder","_x$currency","isDebut","_x$issuer","_x$coIssuer","_x$collateralManager","_x$arranger","_x$trustee","enhancedCLO","addWhen","_x$disclosureFile","_x$disclosureFile2","_x$managerPresentatio","_x$intexFile","_x$intexFile2","result","collateralAssumptionsIndicators","sourcesAndUsesIndicators","managementFeesIndicators","collateralQualityTestsIndicators","structureIndicators","priceNumber","getIndicatorsConfig","getIndicatorSections","indicatorSection","stubFalse","TransactionHistorySelectionPanel","selectedItem","allHistoryClassesList","collapsed","setCollapsed","suggestedList","pipelineHistoryFields","searchTermValues","_suggestedList$find","synonyms","_field$synonyms","lowerSearchTerm","moneySynonym","customEvent","createEvent","initEvent","window","dispatchEvent","navItems","historyItem","_historyItem$transact","dealUpdatesMatchesSearchTerms","eventDateTime","isEmpty","classnames","SelectionPanelSearch","onCollapseClick","onSearch","textView","versionDateTime","HistoryInfo","PipelineHistory","_selectedTransactionH3","amrPipelineHistory","transactionsHistory","selectedVersion","parseInt","selectedTab","selectedTransactionHistory","amrTransactionHistoryActions","transactionHistoryRequest","firstHistoryItem","_selectedTransactionH","_selectedTransactionH2","loadTransactionDetais","versionTitleFull","PipelineView","totalBalance","formattedTotalBalance","ScrollSyncPane","group","differenceValues","castArray","firstDifferenceValue","withObjectArrayDifference","AmrTransactionNavItem","isCollapsed","setIsCollapsed","isNew","renderLastUpdatedPopover","redirectToClass","amrTrancheStatusTitles","renderClass","OriginatingTransactionNavItem","_TransactionTypes$fin2","_TransactionTypes$fin3","withIOIs","numberOfIOIs","typeText","statusTitle","getTransactionDetailsUrl","stopPropagation","_ref$hasMoreTransacti","debouncedSearch","useDebounce","hasInvisibleDeals","transactionsSearchTermChange","showCollapseButton","searchTermChange","PipelineTabs","InfiniteScroll","hasMore","useWindow","loadMore","loader","InfiniteScrollLoader","isNextPageRequesting","initialLoad","_initialTransaction$d","_iois","isAmr","shouldInitialTransactionShow","withSearchedClassIndicator","renderInitialTransaction","isSelected"],"sourceRoot":""}