{"version":3,"sources":["images/Loading.gif","config.js","images/TOR_LOGO_430_2965.png","docs/112727-gics-mapbook_2018_v3_letter_digitalspreads.pdf","docs/2072704..pdf","history/history.js","helper/session.js","helper/utils.js","bal/user.bal.js","component/private_route/private_route.js","bal/reportGenerator.bal.js","bal/Portfolio-Dashboard/portfolioProjection.bal.js","bal/position.bal.js","bal/deal.bal.js","bal/portfolioOverviewSummary.bal.js","bal/portfolioOverviewTopExposure.bal.js","bal/portfolioOverviewTopTRS.bal.js","bal/Hedge/cdsTopsheet.bal.js","bal/Hedge/equityTopsheet.bal.js","bal/Hedge/fxTopsheet.bal.js","bal/Hedge/irTopsheet.bal.js","bal/Hedge/hedgeReport.bal.js","bal/fxReport.bal.js","bal/Deal-Dashboard/dealStress.bal.js","bal/Deal-Dashboard/iRRisk.bal.js","bal/stressSummary.bal.js","bal/Deal-Dashboard/cDRisk.bal.js","bal/Deal-Dashboard/eqRisk.bal.js","bal/Deal-Dashboard/cdRisk100percent.bal.js","bal/Deal-Dashboard/historicalCashflow.bal.js","bal/Deal-Dashboard/projectedCashflow.bal.js","bal/Deal-Dashboard/dealTrades.bal.js","bal/Deal-Dashboard/dealMarks.bal.js","bal/Deal-Dashboard/dealDashboard.bal.js","bal/Deal-Dashboard/dealDashboardSummary.bal.js","bal/Deal-Dashboard/dealRisk.bal.js","bal/Deal-Dashboard/dealAttributeChanges.bal.js","bal/Deal-Dashboard/dealTrancheAttributeChanges.bal.js","bal/Deal-Dashboard/dealCreditMetricsChanges.bal.js","bal/Deal-Dashboard/dealMacroRiskChanges.bal.js","bal/Deal-Dashboard/dealReturnsChanges.bal.js","bal/Deal-Dashboard/dealPerformanceSummary.bal.js","bal/Deal-Dashboard/dealPerformanceSummaryCTR.bal.js","bal/Deal-Dashboard/dealPerformanceSummaryTop.bal.js","bal/Deal-Dashboard/dealProjectionTop.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceTopMTD.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceTopQTD.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceTopYTD.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceBottomMTD.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceBottomQTD.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceBottomYTD.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceDecomposition.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceSummary.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceGrid.bal.js","bal/Portfolio-Dashboard/portfolioPerformanceSummaryTop.bal.js","bal/Portfolio-Dashboard/cashMarginOverview.bal.js","bal/Deal-Dashboard/historicalCashflowTop.bal.js","bal/icApproval.bal.js","bal/approval.bal.js","bal/approvalReminder.bal.js","bal/markingTool.bal.js","bal/Portfolio-Dashboard/exposureRisk.bal.js","bal/Portfolio-Dashboard/creditMetrics.bal.js","bal/assetCommentary.bal.js","bal/assetCommentaryReview.bal.js","bal/pnl.bal.js","bal/topMTDpnl.bal.js","bal/bottomMTDpnl.bal.js","bal/topDODpnl.bal.js","bal/bottomDODpnl.bal.js","bal/housing.bal.js","bal/housingSummary.bal.js","bal/userLog.bal.js","bal/dealLegalDetails.bal.js","bal/dealPipelineSummary.bal.js","bal/restrictedList.bal.js","bal/coInvestment.bal.js","bal/covenantMaster.bal.js","bal/covenantInstance.bal.js","bal/covenantTarget.bal.js","bal/publicPnL.bal.js","bal/taskDetail.bal.js","bal/taskInstance.bal.js","bal/dealSummary.bal.js","bal/torGridBALService.bal.js","component/portfolioDashboard/components/chartDisplay.js","component/common/CheckboxRenderer.jsx","component/torgrid/numericEditor.js","component/torgrid/textAreaEditor.js","component/torgrid/richTextEditor.js","bal/s3.bal.js","component/torgrid/fileAttachmentEditor.js","component/torgrid/removeButton.js","bal/gridLayout.bal.js","component/torgrid/torgrid.js","component/portfolioDashboard/portfolio_overview.js","component/portfolioDashboard/hedge_overview.js","component/portfolioDashboard/fx_overview.js","component/portfolioDashboard/positionView.js","component/portfolioDashboard/stressView.js","component/portfolioDashboard/portfolioPerformanceGrid.js","component/portfolioDashboard/portfolioPerformanceOverview.js","component/portfolioDashboard/portfolioProjection.js","component/portfolioDashboard/realEstateRisk.js","component/portfolioDashboard/commodityRisk.js","component/portfolioDashboard/creditMetrics.js","component/portfolioDashboard/cashMargin.js","component/deals/components/toastMessage.js","component/portfolioDashboard/components/sideDrawer.js","component/portfolioDashboard/portfolioDashboard.js","component/login/login.js","component/dealDashboard/components/sideDrawer.js","component/dealDashboard/components/dealOverview.js","component/dealDashboard/components/dealRisk.js","component/dealDashboard/historicalCashflow.js","component/dealDashboard/projectedCashflow.js","component/dealDashboard/dealTrades.js","component/dealDashboard/dealMarks.js","component/dealDashboard/components/dealCreditMetrics.js","component/dealDashboard/dealPerformanceOverview.js","component/dealDashboard/dealDashboard.js","component/deals/components/formDisplay.js","component/deals/components/progressbar.js","component/deals/deal_attributes_1.js","component/deals/deal_attributes_2.js","component/deals/tranche_attribute.js","component/deals/components/deal_returns.js","component/deals/components/deal_metrics.js","component/deals/credit_metrics.js","component/deals/deal_risks.js","component/deals/deals.js","component/common/modalForm.js","component/dealSummary/dealSummaryDashboard.js","component/assetCommentaryInput/assetCommentaryInput.js","component/assetCommentaryReview/assetCommentaryReview.js","component/deals/dealChanges.js","component/deals/deal_setup.js","component/changePassword/changePassword.js","component/forgotPassword/forgotPassword.js","component/approval/approvalGrid.js","component/icApproval/icApproval.js","component/coInvestment/coInvestment.js","bal/fund.bal.js","component/markingTool/markingTool.js","component/approval/approveReject.js","component/pnl/pnl.js","component/pnl/publicPnL.js","component/covenant/covenantDashboard.js","component/covenant/covenantNew.js","component/covenant/covenantInstance.js","component/housing/housing.js","component/housingSummary/housingSummary.js","bal/userProfile.bal.js","component/userProfile/profile.js","component/userLog/userLog.js","component/dealLegalDetails/dealLegalDetails.js","component/dealLegalDetails/dealLegalDetailsSummary.js","component/restrictedList/restrictedList.js","component/liquidity/cashMargin.js","component/liquidity/liquidityDashboard.js","component/dealPipeline/dealPipelineSummary.js","component/excelExport/excelExport.jsx","component/excelImport/excelImport.jsx","component/dealPipeline/dealPipelineDashboard.js","component/task/taskDetailDashboard.js","component/task/taskDetailNew.js","component/task/taskInstanceDashboard.js","component/task/taskInstanceNew.js","component/nav_routes/nav_routes.js","App.js","serviceWorker.js","reducers/types.jsx","reducers/traderReducer.jsx","middleware/logger.jsx","store.jsx","index.js"],"names":["module","exports","config","process","REACT_APP_setAsApprover","createBrowserHistory","Session","setItem","key","value","sessionStorage","error","console","log","getItem","removeItem","clear","getKeys","keys","Object","keysValue","getKey","index","groupBy","array","reduce","result","currentValue","getMaxKey","param","maxKey","maxvalue","forEach","element","Utils","dominant","params","length","values","rowData","rowNode","allLeafChildren","map","data","aggValue","colDef","cols","createValueObject2","countUnique","uniqueValues","val1","val2","getAggDiv","uniq","isZero","agValueFormatter","_params$format","_params$colDef","agformat","format","tempValue","val","getValueFormatted","Number","isInteger","millionValue","toString","millionValue3","millionValue1","millionValue2","value100","value100All","getValueFormattedNonZero","isNaN","value100allunch","value100allunchdecimal","displayvalue","Date","toISOString","split","e","getDate","date","getMonth","getFullYear","cellClassNegative","color","_params$value$display","_params$value","_value","_value$toString","display_value","parseFloat","replace","getDivide","randomBetween","min","max","Math","floor","random","wAvg","sumQty","sum1","value1","toFixed","aggDiv","gridColumn","filterList","fltr","filters","filter","column","rowDataFiltered","row","aggDivIf","numcol","col","denomcol","denomvalue","numerator","numvalue","denominator","wAvgRating","num","denom","SnPRatingMap","SnPRatingMapReverse","round","isEmpty","getFieldName","display","agg","getColumnList","columnList","groupColumnList","previousGroupName","columnHeader","headerName","indexOf","substring","previousColumnList","groupName","resizable","suppressSizeToFit","push","children","doesMatchFilter","match","Array","isArray","includes","getArraysIntersection","a1","a2","n","geometricProduct","portfolioReturn","args","reportDate","_","countBy","totalReturn","i","reportDateFiltered","notionalSum","sumTotal","item","removeBlanks","handleResponse","response","text","then","JSON","parse","ok","error_message","status","message","statusText","Promise","reject","handleResponseFile","blob","removeBlanksNotZero","removeNegative","getDaysArray","start","end","arr","dt","setDate","lookupValue","mappings","lookupKey","name","hasOwnProperty","extractValues","id","isBlankNotZero","isBlank","getSettingByName","settingList","setting","settingL","childSettings","sort","a","b","localeCompare","getFormatted","denomcols","numcols","temp","denomCol","numCol","digit","arguments","undefined","require","userBALService","login","user_name","password","ipAddress","requestOptions","method","headers","body","stringify","fetch","apiDDSUrl","user","localStorage","token","logout","getAll","getAuthHeader","getById","update","Authorization","this","getUserInfo","delete","changePassword","newPassword","getAuthHeaderJson","generateOtp","otp","validateOtp","otpnum","generateOtpForgotPassword","username","validateOtpForgotPassword","changePasswordForgot","getUserDetails","_user$approvalKey","_user$userRoles","type","approverRole","approvalKey","toLowerCase","isRiskRole","userRoles","isApprover","environment","setAsApprover","validateLoginOtp","addUserLog","user_id","path","PrivateRoute","_ref","component","Component","roles","rest","React","createElement","Route","assign","render","props","_loggedUser$user","loggedUser","location","pathname","active","Redirect","to","guikey","gridIdentityColumn","gridTitle","state","from","reportGeneratorBALService","emailReport","portfolioProjectionBalService","getPositions","async","analystRole","isAnalyst","width","minWidth","checkboxSelection","node","_user$user","headerCheckboxSelection","headerCheckboxSelectionFilteredOnly","getRowData","query","getAutoGroupColumnDef","field","pinned","cellRendererParams","suppressCount","approveGrid","proposals","deal","action","handleResponseApprove","positionBALService","getPositionsData","AsOfDate","Frequency","asdate","Moment","positions","hide","cellClass","getIndentClass","indent","parent","dealBALService","getAllDeals","getAnalysts","analystList","getFields","fieldsList","getOneField","fieldName","generateEmail","getAllAnalysts","DealId","analyst","getAllFunds","getAllPositions","getAllCountry","countryList","getGics","gicsList","getNace","naceList","getNaceActivity","activityList","getGicsIG","gicsIGList","getBics","bicsList","getDealAttribute","dealAttributeList","getDealMetrics","Quarter","dealMetricsList","getPriorDealMetrics","getDealRisks","getDealReturns","dealReturnslist","getTrancheAttribute","trancheAttributeList","getTrancheMetrics","trancheMetricsList","getSetting","getAllSettings","settingsList","updateDeal","dealId","insertDealAttribute","dealAttribute","deal_id","insertDealAnalyst","dealAnalyst","insertDealMetrics","dealMetrics","insertDealRisks","dealRisk","insertDealReturns","dealReturns","insertTrancheAttribute","trancheAttribute","insertTrancheMetrics","trancheMetrics","maxWidth","hasExpired","approve","deals","dealName","checkDeal","generateEmailConfirmation","getAllBbgDeals","getBbgMetrics","getRates","getAllDealLoans","portfolioOverviewSummaryBALService","apiUrl","portfolioOverviewTopExposureBALService","portfolioOverviewTopTRSBALService","cdsTopsheetBalService","equityTopsheetBalService","fxTopsheetBalService","irTopsheetBalService","hedgeReportBalService","fxReportBalService","rowGroup","getPositionsDB","Fund","handleResponseArray","str","dealStressBALService","iRRiskBALService","stressSummaryBALService","getColumnListToggle","cDRiskBALService","eqRiskBALService","cDRisk100BALService","hCashflowBalService","flex","pCashflowBalService","dTradesBalService","dealMarksBalService","dealDashboardBALService","getMVHistory","_Deal2","_Fund2","Deal","getDealQuarterlyDates","dates","getCashflowQuarterlyDates","getProjectedCashflowQuarterlyDates","getCreditMetrics","_Deal3","_Quarter","getCashflowData","parseInt","getAllCashflowDeals","getPortfolioChartData","_Deal","_Fund","dealDashboardSummaryBALService","valueGetter","dealRiskBALService","dealAttributeChangesBALService","changes","dealTrancheAttributeChangesBALService","dealCreditMetricsChangesBALService","dealMacroRiskChangesBALService","dealReturnsChangesBALService","dealPerformanceSummaryBALService","dealPerformanceSummaryCTRBALService","dealPerformanceSummaryTopBALService","dealProjectionTopBALService","portfolioPerformanceTopMTDBALService","portfolioPerformanceTopQTDBALService","portfolioPerformanceTopYTDBALService","portfolioPerformanceBottomMTDBALService","portfolioPerformanceBottomQTDBALService","portfolioPerformanceBottomYTDBALService","portfolioPerformanceDecompositionBALService","portfolioPerformanceSummaryBALService","portfolioPerformanceGridBALService","portfolioPerformanceSummaryTopBALService","cashMarginBalService","historicalCashflowTopBALService","icApprovalBALService","save","approvalBALService","_params$id","approvals","comment","sendReminder","getPendingApproval","approvalReminderBALService","markingToolBALService","displayIndex","editable","cellEditor","col1","p","startsWith","col2","cellRenderer","onUpdate","col3","isBloomberg","setDataValue","instrumentMarks","isSendForApproval","fund","instrumentMark","exposureRiskBalService","creditMetricBalService","assetCommentaryBALService","autoWidth","autoHeight","wrapText","addComment","getComment","generateReport","assetCommentaryReviewBALService","cellEditorParams","maxLength","rows","cellClassRules","pnlBALService","topMTDpnlBALService","bottomMTDpnlBALService","topDODpnlBALService","bottomDODpnlBALService","housingBALService","housingRows","housingRow","saveFile","housingSummaryBALService","userLogBALService","dealLegalDetailsBALService","rowGroupIndex","dateFormatter","_params$dateFormat","moment","utcOffset","dateFormat","dealPipelineSummaryBALService","restrictionTypes","exchanges","restrictedListBALService","fetchData1","getAllRestrictionType","displayName","fetchData2","getAllExchangeMco","code","colId","restrictedList","remove","idsToDelete","coInvestmentBALService","getStatusList","covenantMasterBALService","showDisabledCheckboxes","sortable","covenantMaster","getAllCovenantFrequency","getAllCovenantCategory","getAllCovenantStatus","getAllCovenantType","getDetailCellRendererParams","detailGridOptions","rowSelection","suppressRowClickSelection","enableRangeSelection","domLayout","columnDefs","getRowHeight","_params$data$rowHeigh","rowHeight","defaultColDef","getDetailRowData","successCallback","targets","covenantMasters","covenantMasterId","CustomSelectCellRenderer","init","eGui","document","innerHTML","getGui","refresh","covenantInstanceBALService","covenantStatusValueList","result1","all","filterParams","comparator","keyCreator","suppressKeyboardEvent","cellEditorPopup","event","suppressEnter","keysToSuppress","editingKeys","ctrlKey","metaKey","editing","concat","getId","some","suppressedKey","toUpperCase","suppressNavigation","covenantInstanceRows","covenantInstanceRow","saveComment","covenantInstanceCommentRows","covenantInstanceCommentRow","comments","getAllComments","getRowDataBy","selectedOption","covenantTargetBALService","valueFormatter","valueListGap","covenantTargetRows","covenantTargetRow","getAllCovenantTargetOperator","publicPnLBALService","taskDetailBALService","taskInstanceBALService","dealSummaryBALService","torGridBALService","gridId","_services$gridId","services","getDashboardData","getChartData","_services$gridId2","_services$gridId3","_services$gridId4","_services$gridId5","_services$gridId6","ChartDisplay","constructor","super","groupByInner","P","getPieData","GroupBy","sumCol","grouped","chartList","labels","sum","chart","getStackedBarData","xKey","chartMaturityList","maturityLabel","sumList","sub_grouped","key2","sumVal","getGroupedBarDataAlt","funds","filteredData","j","filteredDataFund","den","getGroupedBarData2","getGroupedBarData","bind","dataList","angle","options","lData","chartType","labelKey","angleKey","theme","myTheme","title","chartTitle","series","tooltip","renderer","content","datum","angleValue","legend","enabled","position","AgChartsReact","yKeys","rotationAngle","yNames","xValue","yValue","axes","label","rotation","tick","count","formatter","yKey","yName","nice","agCharts","month","fundList","sumKeys","seriesList","lineTheme","marker","areaTheme","fillOpacity","normalizedTo","autoSize","yKeyLine","baseTheme","palette","fills","strokes","defaults","cartesian","fontSize","checkedHandler","_this$props$colDef","checked","target","onClick","KEY_BACKSPACE","KEY_DELETE","NumericEditor","inputRef","createRef","cancelBeforeStart","charPress","createInitialState","onKeyDown","handleChange","componentDidMount","setCarot","disabled","placeholder","suffix","prefix","NumberFormat","thousandSeparator","onValueChange","setState","floatValue","className","getValue","isCancelBeforeStart","isCancelAfterEnd","startValue","highlightAllOnFocus","keyPress","isLeftOrRight","deleteOrBackspace","stopPropagation","finishedEditingPressed","isKeyPressedNumeric","preventDefault","keyCode","getCharCodeFromEvent","window","which","isCharNumeric","charStr","test","charCode","String","fromCharCode","setTimeout","currentInput","current","focus","select","setSelectionRange","TextAreaEditor","ref","onChange","autoComplete","RichTextEditor","forwardRef","setValue","useState","useImperativeHandle","_value$replace","isPopup","afterGuiAttached","JoditEditor","tabIndex","newContent","askBeforePasteHTML","askBeforePasteFromWord","defaultActionOnPaste","s3BALService","uploadFile","_params$path","formData","FormData","append","file","downloadFile","fileName","responseType","deleteFile","getFiles","FileAttachmentEditor","_this$state","_this$state$value","modalVisible","modalType","modalHeading","modalHandler","handleKeyPress","setFile","upload","closeModal","areFilesLoaded","files","reload","fileFullPath","fileType","updateFiles","showMessage","errorList","messageHeader","valueNew","open","_this$state2","_this$state2$value","style","gridTemplateRows","height","float","paddingDown","paddingRight","borderTop","border","borderLeft","borderBottom","paddingLeft","paddingTop","paddingBottom","cursor","download","borderRight","Modal","visible","effect","onClickAway","handleModalChange","RemoveButton","buttonClick","deletedRow","gridApi","updateRowData","gridLayoutBALService","saveGridLayout","gridLayoutId","sortModel","filterModel","columnState","columnGroupState","isPivotMode","isGlobal","_userBALService$getUs2","GridLayoutId","UserId","Id","Type","SortModel","FilterModel","ColumnState","ColumnGroupState","IsPivotMode","IsGlobal","getGridLayout","_userBALService$getUs3","requestURL","gridLayout","getAllGridLayout","_userBALService$getUs4","gridLayoutList","removeGridLayout","_userBALService$getUs","ModuleRegistry","registerModules","ClientSideRowModelModule","CsvExportModule","ExcelExportModule","MasterDetailModule","LicenseManager","setLicenseKey","$","TorGrid","_props$guikey","_this$props$detailCel","_props$guikey2","connectServer","connectInterval","ws","WebSocket","wsUrl","onopen","timeout","clearTimeout","mounted","_updateConnection","getData","send","onmessage","__MESSAGE__","_this$state$rowData","security","row1","newprice","GridRowsToUpdate","onerror","check","onclose","close","readyState","CLOSED","handleClickOpen","DialogOpen","handleCloseDialog","handleCloseErrorBox","handleChangeAsOfDate","handleDropDownChangeFrequency","handleDropDownChangeGridType","isLoading","isOpenGrid","GridTypeSelected","isRemoveDisplay","GridTypeSelectedTemp","GridTypeList","findIndex","GridShowType","resolve","setGridLayout","GridLayoutIsGlobal","GridLayoutRemoveDisplay","GridFilterModel","GridColumnState","GridColumnGroupState","GridIsPivotMode","GridSortModel","onFirstDataRendered","GridRawcolumnList","groupColumns","GridColumnList","autoSizeAll","skipHeader","allColumnIds","gridColumnApi","getAllColumns","autoSizeColumns","GridId","GridIdentityColumn","GridTitle","IsHideDateInputs","isHideDateInputs","isHideSaveGridLayout","rowClassRules","GridLinkColumn","gridLinkColumn","GridEditColumn","gridEditColumn","GridApproveColumn","gridApproveColumn","GridGroupColumnDef","GridFetchAgain","GridLayoutChanged","GridTypeName","GridLoadInProgress","GridModules","AllModules","AllCommunityModules","GridStyle","GridWidth","margin","overflow","sideBar","toolPanels","defaultToolPanel","modules","RowGroupingModule","SetFilterModule","MenuModule","ColumnsToolPanelModule","frameworkComponents","fileAttachmentEditor","richTextEditor","textAreaEditor","numericEditor","checkboxRenderer","CheckboxRenderer","removeButton","components","datePicker","getDatePicker","showPopup","isOpenLoad","detailCellRendererParams","rowGroupPanelShow","MessageBoxBackground","FrequencyList","handleChangeGridText","openErrorBox","getSelectedGridType","handleCheckGridLayoutIsGlobal","intervalFunc","showError","getLink","exportDataAsExcel","shouldRowBeSkipped","rowGroupCallback","getContextMenuItems","processColumn","getDefaultIsOpenGrid","addNew","defaultValue","_this$props","_this$props2","componentDidUpdate","prevProps","_prevProps$groupBy","_this$props$groupBy","_prevProps$groupColum","_this$props$groupColu","toggleRefresh","GridRowsToAdd","batchUpdateRowData","add","_this$state$rowData2","sortColumn","componentWillUnmount","messageType","payload","payloadCopy","openMessageBox","list","gridLayoutType","_this$gridApi","_this$gridApi2","_this$gridColumnApi","_this$gridColumnApi2","_this$gridColumnApi3","getSortModel","getFilterModel","getColumnState","getColumnGroupState","link","href","innerText","isRowSelectable","addEventListener","handleRowSelected","columnPromise","toggleColumn","gridColumns","columnSpecs","processRows","_this$state$Fund","_this$state$AsOfDate","_this$props$Frequency","RowData","_gridColumn$agg","aggfunc","isCol","headerTooltip","cellStyle","headerClass","aggFunc","_rowData","_display","_display2","header","endsWith","columns","_gridColumn$agg2","ignoreBlanks","_gridColumn$col","_gridColumn$col2","column1","column2","autoGroupColumnDef","setInterval","getPage","_params$state","_this$gridColumnApi4","setColumnDefs","setFilterModel","setColumnState","setColumnGroupState","setPivotMode","setSortModel","userId","gridLayoutListFinal","_params$data","onGridReady","api","setAgGridAPI","columnApi","gridPanel","eAllCellContainers","container","keyDownFunc","level","_params$node$parent","expanded","columnGroups","processRowGroupCallback","_maxvalue","identitySeed","rowsToDisplay","rowModel","apply","o","identityvalue","newItem","isNew","_this$props$className","_this$props$isShowGri","_this$props$sideBar","_this$props$rowGroupP","_this$props$groupSele","_this$props$rowMultiS","_this$props$enableFil","_this$props$groupDefa","_this$props$paginatio","_this$props$paginatio2","_this$props$singleCli","_this$props$defaultCo","_this$props$isShowLoa","background","role","data-dismiss","aria-label","aria-hidden","Collapse","isOpen","isShowGrid","padding","Dropdown","fluid","search","selection","FontAwesomeIcon","icon","faSave","faTrash","showAdd","showReject","showSave","isSaving","showSaveAndSend","saveAndSend","genReport","isPanelCollapsed","togglePanel","AgGridReact","groupIncludeTotalFooter","groupIncludeFooter","suppressExpandablePivotGroups","onCellClicked","suppressDragLeaveHidesColumns","suppressMakeColumnVisibleAfterUnGroup","suppressAggFuncInHeader","groupSelectsChildren","rowMultiSelectWithClick","getRowNodeId","enableFilter","groupDefaultExpanded","debounceVerticalScrollbar","pagination","paginationPageSize","singleClickEdit","floatingFilter","enableRowGroup","allowContextMenuWithControlKey","excelStyles","alignment","dataType","onSelectionChanged","rowSelected","onCellValueChanged","cellValueChanged","masterDetail","allowDragFromColumnsToolPanel","stopEditingWhenCellsLoseFocus","isShowLoad","src","alt","Datepicker","prototype","eInput","classList","datepicker","destroy","PortfolioOverview","chartData","filterChartData","getTemplate","grossMV","capital","cYield","gridData","colName","freq","_this$props$defaultCo2","_this$props$defaultCo3","l","marginBottom","textAlign","GroupByName","gridTemplateColumns","HedgeOverview","thetaChartData","_this$props$defaultCo4","_this$props$defaultCo5","marginTop","flexWrap","alignContent","FxOverview","PositionView","groupByColumnList","StressView","hedgeData","filterData","_this$props$defaultCo6","PortfolioPerformanceGrid","_user$userRoles2","_user$userRoles5","_user$userRoles6","_user$userRoles7","_user$userRoles8","_user$userRoles3","_user$userRoles4","PortfolioPerformanceOverview","aggregateData","cumSum","jsObj","aggList","monthNames","_this$props$defaultCo7","maxHeight","PortfolioProjection","projectionDeal","projectionFund","_prevProps$projection","_this$props$projectio","isCollapsed","togglePanelCollapse","RealEstateRisk","CommodityRisk","CreditMetrics","CashMargin","ToastMessage","Message","onDismiss","closeMessage","useStyles","makeStyles","fullList","SideDrawer","classes","toggleDrawer","toggleTab","toggleTabIndex","Fragment","SwipeableDrawer","anchor","show","onClose","onOpen","clsx","List","ListItem","ListItemText","primary","Divider","button","tabindex","textDecoration","PortfolioDashboard","_this","dateList","filterDate","frequencyList","handleDropDownChangeGroupBy","groupByList","group","handleDropDownChangeFund","Year","portfolioChartData","_fund","_user$user2","pnlGridData","_user$user3","fxGridData","_user$user4","projectionGridData","drawerToggleClickHandler","drawerOpen","handleGridTitle","approvalRejection","_selectRows","selectRows","getSelectedNodes","selectedRows","_user$user5","promises","chartMaturityData","chartVintageData","vintageLabel","stressChartData","closeErrorMessage","formatDate","report_name","saveDB","_user$user6","_user$user7","_user$user8","_user$user9","_user$user10","includeDate","faBackward","faSync","DatePicker","selected","includeDates","showYearDropdown","showMonthDropdown","publicIp","Login","getPublicIP","v4","showHide","error_username","error_password","error_otp","Data","GUID","userInfo","showOtpSection","handleSubmit","handleValidateOtp","handleClose","handleForgotPassword","loginConfirmed","_showHide","_state$from","pathto","newpath","history","getElementById","click","_username","_password","_user","isOutsideNetwork","resetState","_otp","_error","userDisplay","showPage","onSubmit","LOGO","DealOverview","chartDataFiltered","DealRisk","gridDataFiltered","HistoricalCashflow","irrData","irrFilterData","data2","arr2","tdate","cashflows","irr","quarterDate","marginLeft","ProjectedCashflow","irrGridData","filterDataIRR","gridTopData","_prevProps$Deal","_this$props$Deal","_prevProps$AsOfDate","_this$props$AsOfDate","DealTrades","DealMarks","DealCreditMetrics","_seniorDebt","_pariPasu","_torDebt","ltmebitda","seniorDebt","pariPasu","torDebt","equityValue","enterpriseValue","seniorDebtValue","pariPasuValue","torDebtValue","equityValueValue","enterpriseValueValue","seniorDebtPer","justifyContent","alignItems","pariPasuTorPer","pariPasuPer","torDebtPer","equityPer","DealPerformanceOverview","DealDashboard","asOfDate","getFilterList","handleDropDownChangeDealDates","selectedQuarter","frequency","handleDropDownChangeDeal","DealName","dealList","filterQuarterList","quarterList","chartDataRisk","_data$","cashflowQuarter","_data$2","cashflowDealList","creditMetrics","filterCreditMetrics","refreshClicked","fundName","_asOfDate","_frequency","tabindexparam","_tabindexparam","groups","chartdata","groups2","value2","slice","join","total","flat","creditMetricsArray","cashflowQuarterList","FormDisplay","handleNumberChange","handleChangeDate","selectedDate","fieldList","handleChangeRisk","handleDropDownChange","handleCalcChange","handleMlnChange","_this$props3","calcValue","_this$props4","dataField","_this$props5","_this$props6","_this$props7","_this$props8","_this$props9","_this$props10","_this$props11","field_name","permission","formType","_this$props$required","_this$props12","_this$props$required5","_this$props18","_this$props$required6","_this$props19","_this$props$required7","_this$props20","_this$props21","_this$props22","_this$props$suffix2","_this$props23","_this$props24","_this$props$suffix3","_this$props25","_this$props$suffix4","_this$props26","_this$props27","_this$props$suffix5","_this$props28","required","heading","_this$props$required2","_this$props13","_this$props$required3","_this$props14","_this$props$required4","_this$props15","_this$props16","_this$props$suffix","_this$props17","dF","_dataList$filter$","Popup","tooltipText","trigger","faInfoCircle","textType","noComment","dataCommentField","clearable","for","calcType","faCalculator","maxDate","_this$props$required8","_this$props29","_this$props$required9","_this$props30","_this$props$required10","_this$props31","_this$props$required11","_this$props32","_this$props33","_this$props$suffix6","_this$props34","_this$props35","_this$props$suffix7","_this$props36","_dataList$filter$2","dfPrior","priorDataField","_dataList$filter$3","_this$props$required12","_this$props37","_this$props$required13","_this$props38","_this$props$required14","_this$props39","_this$props40","_this$props41","_this$props$suffix8","_this$props42","_this$props43","_this$props$suffix9","_this$props44","_this$props$suffix10","_this$props45","_this$props46","_this$props$suffix11","_this$props47","_this$props48","_this$props$suffix12","_this$props49","_dataList$filter$4","_dataList$filter$5","_optionsList$filter$","optionsList","df_id","df_option","df_price","_dataList$filter$6","_dataList$filter$7","rel","_this$props50","_this$props$suffix13","_this$props51","ProgressBar","Progress","percent","indicating","progress","size","Deal_Attribute_1","projectName","faceValue","marketValue","analyst1Weight","analyst2Weight","analyst3Weight","analyst4Weight","gicsSectorList","gicsIndustryGroupList","gicsIndustryList","gicsSubIndustryList","gicsNaceList","gicsActivityList","bicsSectorList","bicsIndustryGroupList","bicsIndustryList","country_of_risk_id","gics_sector_id","gics_industry_group_id","gics_industry_id","gics_sub_industry_id","bics_sector_id","bics_industry_group_id","bics_industry_id","snp_corporate_family_rating_id","moodys_corporate_family_rating_id","company_description","is_assetbased_cashflow","is_loan_underwritten","is_hard_asset_collateral","hard_asset_collateral_list","is_cov_lite","covenants_list","source_of_deal","has_financial_sponsor","financial_sponsor_list","has_leadership_role","primary_deal_purpose","secondary_deal_purpose","expected_exit_date","primary_exit_type_id","primary_exit_type","secondary_exit_type_id","secondary_exit_type","num_syndicate_leaders","is_assetbased_cashflow_comment","is_loan_underwritten_comment","is_hard_asset_collateral_comment","hard_asset_collateral_list_comment","is_cov_lite_comment","covenants_list_comment","source_of_deal_comment","has_financial_sponsor_comment","financial_sponsor_list_comment","has_leadership_role_comment","primary_deal_purpose_comment","secondary_deal_purpose_comment","expected_exit_date_comment","primary_exit_type_id_comment","primary_exit_type_comment","secondary_exit_type_id_comment","secondary_exit_type_comment","num_syndicate_leaders_comment","deal_information_notes","handleChangeNumber","getProgress","_this$state$gicsSecto","industryGroups","_this$state$gicsIndus","industries","_this$state$gicsIndus2","subIndustries","_this$state3","_this$state4","_this$state$bicsIndus","_this$state$bicsSecto","_ref2","positionList","roundToTwo","analyst1Name","fillCount","_filterData$","_this$state$gicsSecto2","_this$state$gicsSecto3","_this$state$gicsSecto4","_this$state$gicsSecto5","_this$state$gicsSecto6","_this$state$gicsSecto7","_this$state$gicsSecto8","_this$state$gicsSecto9","_this$state$gicsSecto10","_this$state$gicsSecto11","_this$state$bicsSecto2","_this$state$bicsSecto3","_this$state$bicsSecto4","_this$state$bicsSecto5","_this$state$bicsSecto6","_this$state$bicsSecto7","analyst2Name","analyst3Name","analyst4Name","analystDate","toLocaleString","dealID","subindustryCode","mitigationActivityList","gics_nace_id","mitigationActivity","nace_climate_mitigation_id","adaptationActivityList","adaptationActivity","nace_climate_adaptation_id","bicsSubIndustryList","snPRatingList","moodysRatingList","tacfSubStrategyList","tacofSubStrategyList","marketRiskList","GICSPdf","eligible_climate_mitigation_activity","eligible_climate_adaptation_activity","BICSPdf","bics_sub_industry_id","tacf_sub_strategy","tacof_sub_strategy","portfolio","market_risk_sensitivity","equity_upside","equity_upside_form","is_new_issue","upfront_fee","setTabIndex","faArrowCircleRight","approveDB","faCheck","Deal_Attribute_2","assetvscashList","loanunderwrittenList","dealSourceList","structuringRoleList","primaryDealPurposeList","secondaryDealPurposeList","primaryExitTypeList","secondaryExitTypeList","syndicateLenderList","total_facility_amount","is_tor_only_lender","is_tor_only_lender_comment","counterparty","counterparty_comment","faArrowCircleLeft","TrancheAttribute","handleChangeTranche","handleDropDownChangeTranche","getFieldByName","productType","f","_l$filter$","_e$target","_e$target$name","_e$target2","_e$target$name2","_e$target3","_e$target4","_e$target5","_fieldListA$","_fieldListA$2","_fieldListB$","_fieldListB$2","_fieldListC$","_fieldListC$2","_fieldListD$","_fieldListD$2","_fieldListE$","_fieldListE$2","_fieldListF$","_fieldListF$2","_fieldListG$","_fieldListG$2","_fieldListH$","_fieldListH$2","assetClassList","assetRankingList","holdcoList","fieldListA","fieldListB","fieldListC","fieldListD","fieldListE","fieldListF","fieldListG","fieldListH","overflowX","investmentCode","trancheDescription","inceptionDate","bookValue","_trancheAttributeList","_trancheAttributeList2","asset_type","_trancheAttributeList3","_trancheAttributeList4","_trancheAttributeList5","_trancheAttributeList6","credit_ranking","_trancheAttributeList7","_trancheAttributeList8","_trancheAttributeList9","_trancheAttributeList10","holdco_vs_opco","_trancheAttributeList11","_trancheAttributeList12","_trancheAttributeList13","_trancheAttributeList14","has_defaulted","_trancheAttributeList15","_trancheAttributeList16","_trancheAttributeList17","_trancheAttributeList18","default_date","_trancheAttributeList19","_trancheAttributeList20","_trancheAttributeList21","onSelect","_trancheAttributeList22","_trancheAttributeList23","makewhole","_trancheAttributeList24","_trancheAttributeList25","_ref3","_trancheAttributeList26","_trancheAttributeList27","_trancheAttributeList28","_trancheAttributeList29","amortization","_ref4","_trancheAttributeList30","_trancheAttributeList31","_ref5","_trancheAttributeList32","_trancheAttributeList33","_trancheAttributeList34","_trancheAttributeList35","is_non_recourse","_ref6","_trancheAttributeList36","_trancheAttributeList37","_ref7","_trancheAttributeList38","_trancheAttributeList39","Deal_Returns","handleChangeReturns","scenarioName","_dealReturnList$this$","_dealReturnList$this$2","_dealReturnList$this$3","_dealReturnList$this$4","_dealReturnList$this$5","_dealReturnList$this$6","_dealReturnList$this$7","_dealReturnList$this$8","_dealReturnList$this$9","_dealReturnList$this$10","_dealReturnList$this$11","_dealReturnList$this$12","_dealReturnList$this$13","_dealReturnList$this$14","_dealReturnList$this$15","_dealReturnList$this$16","_dealReturnList$this$17","_dealReturnList$this$18","dealReturnList","marginRight","faMinusSquare","faPlusSquare","unlevered_irr_percentage","unlevered_irr_percentage_comment","quarter","expected_return_percentage","expected_return_percentage_comment","levered_irr_percentage","levered_irr_percentage_comment","unlevered_moic","unlevered_moic_comment","levered_moic","levered_moic_comment","return_scenario_probability","return_scenario_probability_comment","Deal_Metrics","handleDropDownChangeMetrics","rateVal","ratesList","find","Currency","handleChangeCurrency","Rate","handleChangeMetrics","_dealMetrics$total_de","_dealMetrics$cash_bal","_dealPriorMetrics$tot","_dealPriorMetrics$cas","_dealPriorMetrics$as_","_dealMetrics$as_of_da","dealPriorMetrics","grossDebt","total_debt_entry","cash_balance_entry","grossPriorDebt","impOwn","enterprise_value","torPositionVal","debtEquityVal","equity_book_value","debtEquityPriorVal","totalLeverage","adjusted_ltm_ebitda","totalLtv","statusList","esgRatingList","as_of_date","has_borrower_missed_payment","has_borrower_missed_payment_comment","has_borrower_breach_covenant","has_borrower_breach_covenant_comment","as_of_date_comment","currency","rate","dispRate","total_ranking_drawn_debt","total_ranking_drawn_debt_comment","total_drawn_debt_tranche","total_drawn_debt_tranche_comment","total_debt_entry_comment","cash_balance_entry_comment","equity_book_value_comment","equity_market_value","equity_market_value_comment","equity_value_dcf","equity_value_dcf_comment","enterprise_value_comment","implied_ownership","implied_ownership_comment","unadjusted_ltm_ebitda","unadjusted_ltm_ebitda_comment","adjusted_ltm_ebitda_comment","appraised_value","appraised_value_comment","purchased_price","purchased_price_comment","occupancy","occupancy_comment","cost_to_complete","cost_to_complete_comment","real_estate_status","real_estate_status_comment","ltm_interest_expense","ltm_interest_expense_comment","ltm_revenue","ltm_revenue_comment","ltm_revenue_oceania","ltm_revenue_oceania_comment","ltm_revenue_africa","ltm_revenue_africa_comment","ltm_revenue_asia","ltm_revenue_asia_comment","ltm_revenue_europe","ltm_revenue_europe_comment","ltm_revenue_north_america","ltm_revenue_north_america_comment","ltm_revenue_south_america","ltm_revenue_south_america_comment","ltm_operation_cashflow","ltm_operation_cashflow_comment","ltm_capital_expenditure","ltm_capital_expenditure_comment","total_leverage_multiple","total_leverage_multiple_comment","tor_leverage_attachment","tor_leverage_attachment_comment","tor_leverage_detachment","tor_leverage_detachment_comment","total_ltv_percentage","total_ltv_percentage_comment","tor_ltv_attachment","tor_ltv_attachment_comment","tor_ltv_detachment","tor_ltv_detachment_comment","esg_environment_rating_value","esg_environment_rating_comment","esg_social_rating_value","esg_social_rating_comment","esg_governance_rating_value","esg_governance_rating_comment","esg_rating_value","esg_rating_comment","is_ESG_in_Memo","is_ESG_in_Memo_comment","handleChangeDateMetrics","m","s","v","_filterData$2","_dealMetrics$quarter","_dealMetrics$quarter2","_dealMetrics$quarter3","_dealMetrics$quarter4","bbg_quarter","bbgDealList","entry","for_report_date","handleClickPriorMetrics","handleClickBbg","DealMetrics","DealReturns","deal_metrics_notes","DealRisks","commodityList","realEstateList","Deals","getQuarterlyProgress","totalPercent","allFilled","isDataChanged","isDraft","dealAttributeDb","dealMetricsDb","dealRiskDb","analystDeal","trancheAttributeListDb","investment_code","dealReturnListDb","is_underwriting","senior_debt","secured_debt","parri_passu_debt","senior_debt_tranche","distressed_market_value","gross_debt","senior_debt_comment","secured_debt_comment","parri_passu_debt_comment","senior_debt_tranche_comment","distressed_market_value_comment","gross_debt_comment","debt_equity_ratio","debt_equity_ratio_comment","isDealChange","project","dealWeighting","fromDate","dealReturn","return_scenario","energy_1_id","energy_1_direction","energy_1_price","energy_1_comment","energy_2_id","energy_2_direction","energy_2_price","energy_2_comment","metal_1_id","metal_1_direction","metal_1_price","metal_1_comment","metal_2_id","metal_2_direction","metal_2_price","metal_2_comment","currency_1_id","currency_1_direction","currency_1_price","currency_1_comment","currency_2_id","currency_2_direction","currency_2_price","currency_2_comment","gics_ig_1_id","gics_ig_1_direction","gics_ig_1_price","gics_ig_1_comment","gics_ig_2_id","gics_ig_2_direction","gics_ig_2_price","gics_ig_2_comment","miscellanious_1","miscellanious_1_comment","miscellanious_2","miscellanious_2_comment","real_estate_1_type","real_estate_1_desc","real_estate_1_is_development","real_estate_1_location","real_estate_1_deal_percentage","real_estate_2_type","real_estate_2_desc","real_estate_2_is_development","real_estate_2_location","real_estate_2_deal_percentage","real_estate_3_type","real_estate_3_desc","real_estate_3_is_development","real_estate_3_location","real_estate_3_deal_percentage","faceV","marketV","torPos","torPosition","approveDeals","showErrorMessage","errorHeader","InvestmentCode","instrument_code","dealDictionary","genevaDealName","addDeal","handleDropDownChangeRisk","handleChangeDateRisk","handleHome","_filterData$6","_filterData$7","_filterData$8","_filterData$9","_filterData$10","_filterData$11","totalCount","totalFill","listVal","_filterData$3","_filterData$4","flag","_filterData$5","_filterData$12","_filterData$14","_filterData$15","_filterData$16","_filterData$17","_filterData$18","_filterData$19","_filterData$13","decimals","redirectTo","ltm_revenue_geography","ltv_percentage","ltm_revenue_geography_comment","ltv_percentage_comment","invokeErgonomy","_errorPanicList","elements","faHome","DealAttributes","TrancheAttributes","DealAttributes2","Prompt","when","ModalForm","onClickClose","onClickYes","day","getDay","toDate","gridReminderData","handleSendReminder","DealSummaryDashboard","today","yesterday","editType","existingTaskDetail","newTaskDetail","editorState","gridApprovalApi","showGrid","existingValue","faPlusCircle","AssetCommentaryInput","reportModal","forDate","report_date","prevState","isShowInput","existingDealDetails","newDealDetails","fordate","setInput","deal_risk_commentary_id","isDisabled","readonly","onBlur","hidden","AssetCommentaryReview","notes","existingNotes","isReviewed","existingIsReviewed","DealChanges","_this$props2$location","_this$props2$location2","queryString","_this$props$location","_this$props$location$","dealAttributeChangesList","dealTrancheAttributeChangesList","dealCreditMetricsChangesList","dealMacroRiskChangesList","dealReturnsChangesList","overflowY","DealSetup","approved_by","_this$state2$bicsIndu","minHeight","upward","scrolling","ChangePassword","isOtpValidated","isPasswordChanged","error_Message","handleSubmitOtp","error_oldPassword","error_newConfirmPassword","error_newPassword","oldPassword","newConfirmPassword","ForgotPassword","cssShowError","cssHideError","isOtpGenerated","handleGenerateOtp","handleLogin","ApprovalGrid","IcApproval","approveReject","newDeal","approvalRejectionComment","creditProposalName","approver_status","existingDeal","proposalDate","approvalCondition","transactionSizeMax","sizeApproved","tacfAllocation","tifoAllocation","tacoiiAllocation","tacoiiiAllocation","coinvest1","coinvest2","coinvest3","tacfIsdollar","tifoIsdollar","tacoiiIsdollar","tacoiiiIsdollar","co1Isdollar","co2Isdollar","co3Isdollar","coInvestor1Name","coInvestor2Name","coInvestor3Name","analyst1Id","analyst2Id","analyst3Id","saveData","handleChangeCreditProposal","handleChangeCheckbox","actionApproved","actionRejected","setAgGridAPI2","handleChangeNew","loadAnalysts","_newDeal$analyst1Id","_inApproval","inApproval","gridApi2","gridApprovalApi2","resetFields","fileNameUploaded","sumallocation","sumcoinvest","sizeFile","tacfAmount","tifoAmount","tacoiiAmount","tacoiiiAmount","tacfPercentage","tifoPercentage","tacoiiPercentage","tacoiiiPercentage","coinvest1Amount","coinvest2Amount","coinvest3Amount","coinvest1Percentage","coinvest2Percentage","coinvest3Percentage","fileDownload","commentText","faBell","backgroundColor","class","faFileDownload","faTrashAlt","verticalAlign","CoInvestment","employeeId","coInvestorName","dealSize","introductionDate","closingDate","upfrontFee","managementFee","carryHurdle","carryParticipation","dealCoStatusId","handleChangeCoInvestment","loadCurrency","loadStatus","currencyList","fundBALService","getFunds","PriceMark","_this$gridApi$rowMode","_this$gridApi$rowMode2","pricecol","previouspricecol","allRows","price","previousPrice","noPriceList","sendForApproval","loadDate","loadFunds","dateString","repDate","display_name","instrument_id","ApproveReject","_params$action","_params$name","_this$props3$location","_this$props3$location2","_params$type","_this$props4$location","_this$props4$location2","showComment","buttonText","buttonTextDefault","redirect","msg","errorMessage","Pnl","_this$state$gridData","rowsFound","isChecked","filterAsset","filterData1","PublicPnL","filterDataBackup","filterDataBtm","filterDataTop","filterDataMtdBtm","filterDataMtdTop","cellcss","position_id","newGridData","hideBottomTables","toggleView","CovenantDashboard","approveCovenants","covenants","covenantFrequencyList","covenantCategoryList","covenantTypeList","newCovenant","covenantTypeId","covenantFrequencyId","covenantCategoryId","startDate","endDate","daysDue","handleChangeValues","updateGridData","modifiedRows","_p$statusObject","valueNew1","statusObject","covenantStatusId","_p$statusObject2","_p$statusObject3","commentRows","commentNew","existingCovenant","CovenantNew","oldCovenant","loan","covenantCategory","joditConfig","handleDropDownChangeCovenantType","populateDeals","populateCovenantFrequency","populateCovenantType","goHome","populateDropDownLists","x","dealListSorted","loanList","description","categories","categoryList","types","typeCategoryDict","typeList","categoryName","dealLoanList","newComment","CovenantInstance","handleOptionChange","setError","saveInstance","covenantInstanceId","attachments","Housing","getS3Path","fyStart","fy","fyList","handleDropDownChangeDefaultCurrency","HousingSummary","profileBALService","saveUserProfile","getProfileData","UserProfile","dataSaved","profileSummary","fullname","columnsToCheck","nonDisclose","countryListFull","genderList","languageList","levelList","degreeList","qualificationList","universityList","UserLog","DealLegalDetails","showAll","handleChangeCheckboxValues","questionId","Set","existingValues","idDealQuestion","valueString","showGroup","previousGroup","isFilled","divs","group2","question","isReadOnly","DealLegalDetailsSummary","RestrictedList","restrictedListRows","deleted","restrictedListId","existingGridData","restrictionTypeId","exchangeMcoId","applyTransaction","restricted","restrictedName","isin","cusip","sedol","ticker","exchangeSymbol","companyName","restrictionType","addedDate","LiquidityDashboard","DealPipelineSummary","_user$user$user","_user$user2$userRoles","_user$user2$userRoles2","_user$user3$userRoles","dealPipeline","isIRUser","leadAnalystId","createdById","analyst4Id","isAllRole","existingDealPipeSummary","dealPipeSummaryId","gicsSectorId","gicsIndustryGroupId","gicsIndustryId","gicsSubIndustryId","gicsNACEId","bicsSectorId","bicsIndustryGroupId","bicsIndustryId","bicsSubIndustryId","countryOfRiskId","isPublic","equityUpside","equityUpsideForm","assetTypeId","creditRankingId","statusId","expectedExecutionDate","purchaseIssuePrice","cashCoupon","pikCoupon","contractualMaturity","expectedTenor","totalDealSizeLow","totalDealSizeHigh","totalDealSize","expectedTorSizeLow","expectedTorSizeHigh","expectedTorSize","lastUpdatedById","expectedIRR","newDealPipeSummary","analystListRaw","gicsSectorListRaw","gicsIndustryGroupListRaw","gicsIndustryListRaw","gicsSubIndustryListRaw","naceListRaw","assetTypeList","creditRankingList","handleChangeTextBox","loadSettings","activityListRaw","industryGroupsRaw","industriesRaw","_this$state2$gicsIndu","subIndustriesRaw","setBlank","gicsSubIndustries","dealPipeSummary","public","ExcelExport","exportToExcel","worksheet","XLSX","json_to_sheet","workbook","book_new","book_append_sheet","excelBuffer","bookType","Blob","saveAs","ExcelImport","_this$props$buttonCap","handleUpload","buttonCaption","jsonData","handleConvert","handleReset","reader","FileReader","onload","sheetName","SheetNames","Sheets","json","sheet_to_json","readAsBinaryString","accept","DealPipelineDashboard","gridDataExcel","handleFilter","gridDataExcelAll","dataFiltered","gridDataExcelFiltered","_data","_dataFiltered","analystId","gridDataAll","analyst2","assetTypeName","assetType","countryOfRiskName","countryOfRisk","creditRankingName","creditRanking","gicsSectorName","gicsSector","leadAnalystName","leadAnalyst","statusName","dictionary","dictionaryGridData","newRows","updatedRows","updatedDeals","dealPipe","errors","selectedOptionNew","_selectedOptionNew","gridDataFilteredNew","gridDataExcelFilteredNew","TaskDetailDashboard","TaskDetailNew","taskDetail","homePath","taskEntityList","taskFrequencyList","taskJurisdictionRegulatorList","taskExternalServiceProviderList","userList","monthsList","daysList","hasSoftDeadline","softDeadlineMonths","softDeadlineDays","hardDeadlineDays","hardDeadlineMonths","entityId","jurisdictionId","frequencyId","externalId","externalContactName","primaryUserId","secondaryUserId","tertiaryUserId","remarkMaster","_p$name","users","newRemark","TaskInstanceDashboard","existingTaskInstance","newTaskInstance","duration","durationUpcoming","durationList","_durationNew","_durationNew2","durationNew","durationNewUpcoming","currentDate","softDeadline","hardDeadline","nextDate","setMonth","dueOverdue","completionDate","TaskInstanceNew","taskInstance","taskDetailList","taskStatusList","taskDetailId","linkInstance","remarkInstance","linkMaster","handleDropDownChangeName","taskDetails","taskNameList","openMaster","NavRoutes","Router","Switch","exact","MarkingTool","PublicPnl","App","navbarToggler","ariaExpanded","navbarCollapse","hasError","currentPage","handleNavBarToggler","updateState","handleGoto","unstable_handleError","renderApp","stringAvatar","page","componentDidCatch","info","sx","bgcolor","_this$loggedUser","_this$loggedUser2","_this$loggedUser3","_this$loggedUser4","_this$loggedUser5","_this$loggedUser6","_this$loggedUser7","_this$loggedUser8","_this$loggedUser9","_this$loggedUser10","_this$loggedUser11","_this$loggedUser12","_this$loggedUser13","_this$loggedUser14","_this$loggedUser15","_this$loggedUser16","_this$loggedUser17","_this$loggedUser18","_this$loggedUser19","_this$loggedUser20","_this$loggedUser21","_this$loggedUser22","_this$loggedUser23","_this$loggedUser24","data-toggle","data-target","aria-controls","aria-expanded","Menu","Item","Avatar","faCopyright","Boolean","hostname","deleteTraderRow","traderRows","__row_id__","same","arr1","logger","store","next","createStore","newTraderRow","trader_id","acct","TAG","updatedTraderRow","existing_row","previous_row","deletedTraderRow","applyMiddleware","styleLink","head","appendChild","ReactDOM","Provider","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.2a2804dc.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/Loading.5a422fb7.gif\";","/*\nRef:\nhttps://trekinbami.medium.com/using-environment-variables-in-react-6b0a99d83cf5\nhttps://betterprogramming.pub/using-environment-variables-in-reactjs-9ad9c5322408\n \"apiDDSUrl\" : process.env.REACT_APP_apiDDSUrl || \"https://uatapi.torinvest.com\",\n \"apiDDSUrl\" : process.env.REACT_APP_apiDDSUrl || \"https://spring.torinvest.com\",\n \"apiDDSUrl\" : process.env.REACT_APP_apiDDSUrl || \"http://localhost:8000\",\n*/\nvar config = {\n \"token\" : process.env.REACT_APP_token || \"tor-token\",\n \"apiDDSUrl\" : process.env.REACT_APP_apiDDSUrl || \"http://localhost:8000\",\n \"wsUrl\" : process.env.REACT_APP_wsUrl || \"wss://wss.torinvest.com:7080\",\n \"environment\" : process.env.REACT_APP_environment || \"local\",\n \"setAsApprover\" : process.env.REACT_APP_setAsApprover || false,\n}\nexport {config};\nexport default config;\n","module.exports = __webpack_public_path__ + \"static/media/TOR_LOGO_430_2965.36eea09e.png\";","module.exports = __webpack_public_path__ + \"static/media/112727-gics-mapbook_2018_v3_letter_digitalspreads.2cc80c63.pdf\";","module.exports = __webpack_public_path__ + \"static/media/2072704..9f2946b6.pdf\";","import { createBrowserHistory } from \"history\";\nexport default createBrowserHistory(); ","/**\n * setItem(key, value) – store key/value pair.\ngetItem(key) – get the value by key.\nremoveItem(key) – remove the key with its value.\nclear() – delete everything.\nkey(index) – get the key on a given position.\nlength – the number of stored items.\nUse Object.keys to get all keys.\n */\nexport const Session = {\n setItem,\n getItem,\n removeItem,\n clear,\n getKeys,\n getKey,\n};\n\nfunction setItem(key, value) {\n try {\n sessionStorage.setItem(key, value);\n } catch (error) {\n console.log(error)\n }\n}\n\nfunction getItem(key) {\n try {\n return sessionStorage.getItem(key);\n } catch (error) {\n console.log(error)\n }\n}\n\nfunction removeItem(key) {\n try {\n sessionStorage.removeItem(key);\n } catch (error) {\n console.log(error)\n }\n}\nfunction clear() {\n try {\n sessionStorage.clear();\n } catch (error) {\n console.log(error)\n }\n}\nfunction getKeys() {\n try {\n let keys = Object.keys(sessionStorage);\n let keysValue = [];\n for (let key of keys) {\n keysValue[key] = { \"key\": key, \"value\": sessionStorage.getItem(key) };\n }\n return keysValue;\n } catch (error) {\n console.log(error)\n }\n}\nfunction getKey(index) {\n try {\n return sessionStorage.key(index);\n } catch (error) {\n console.log(error)\n }\n}","import _ from 'underscore';\n\n// Accepts the array and key\nconst groupBy = (array, key, value) => {\n // Return the end result\n return array.reduce((result, currentValue) => {\n result[currentValue[key]] = (result[currentValue[key]] || 0) + currentValue[value]\n // Return the current iteration `result` value, this will be taken as next iteration `result` value and accumulate\n return result;\n }, {}); // empty object is the initial value for result object\n};\n\n\n\nconst getMaxKey = (param) => {\n var maxKey = '';\n var maxvalue = 0\n maxKey = Object.keys(param)[0]\n maxvalue = param[Object.keys(param)[0]]\n Object.keys(param).forEach(element => {\n if (maxvalue < param[element]) {\n maxvalue = param[element];\n maxKey = element;\n }\n });\n return maxKey === \"null\" ? '' : maxKey;\n}\n\nexport const Utils = {\n dominant,\n countUnique,\n getAggDiv,\n uniq,\n isZero,\n agValueFormatter,\n cellClassNegative,\n createValueObject2,\n getDivide,\n getValueFormatted,\n randomBetween,\n groupBy,\n getMaxKey,\n wAvg,\n aggDiv,\n aggDivIf,\n wAvgRating,\n isEmpty,\n getFieldName,\n getColumnList,\n doesMatchFilter,\n getArraysIntersection,\n geometricProduct,\n portfolioReturn,\n notionalSum,\n removeBlanks,\n handleResponse,\n handleResponseFile,\n removeBlanksNotZero,\n removeNegative,\n getDaysArray,\n lookupValue,\n lookupKey,\n extractValues,\n isBlankNotZero,\n isBlank,\n getSettingByName,\n getFormatted\n};\n\nfunction extractValues(mappings) {\n return mappings.map(item => { return { [item.id]: item.name } }); ;\n}\n\nfunction lookupValue(mappings, key) {\n return mappings[key];\n}\n\nfunction lookupKey(mappings, name) {\n for (var key in mappings) {\n if (mappings.hasOwnProperty(key)) {\n if (name === mappings[key]) {\n return key;\n }\n }\n }\n}\n\nfunction getArraysIntersection(a1, a2) {\n return a1.filter(function (n) { return a2?.indexOf(n) !== -1; });\n}\n\nfunction dominant(params) {\n if (params && params.length > 0 && params.values && params.values.length > 0) {\n var rowData = params.rowNode.allLeafChildren.map(value => {\n return value.data;\n });\n var aggValue = groupBy(rowData, params.colDef.cols[0], params.colDef.cols[1]);\n var maxKey = getMaxKey(aggValue);\n return createValueObject2(0, 0, maxKey);\n }\n return createValueObject2(0, 0, '');\n}\n\nfunction countUnique(params) {\n if (params && params.length > 0 && params.values && params.values.length > 0) {\n var uniqueValues = params.rowNode.allLeafChildren.reduce((result, currentValue) => {\n var val1 = currentValue.data[params.colDef.cols[0]];\n var val2 = currentValue.data[params.colDef.cols[1]];\n if (currentValue?.data && val1 && val2 && val2 !== 0) {\n result[val1] = 1;\n }\n return result;\n }, {});\n return Object.keys(uniqueValues).length;\n }\n return 0;\n}\n\nfunction getAggDiv(rowData, gridColumn) {\n var result = '';\n\n if (rowData && rowData.length > 0 && gridColumn && gridColumn.denomcols && gridColumn.denomcols.length > 0 && gridColumn.numcols && gridColumn.numcols.length > 0) {\n var denomvalue = rowData.reduce((denominator, row) => denominator + gridColumn.denomcols.reduce((temp, denomCol) => { if (row && row[denomCol]) { return temp + row[denomCol] } else return temp; }, 0), 0);\n var numvalue = rowData.reduce((numerator, row) => numerator + gridColumn.numcols.reduce((temp, numCol) => { if (row && row[numCol]) { return temp + row[numCol] } else return temp }, 0), 0);\n result = getDivide(numvalue, denomvalue);\n }\n \n return result;\n}\n\nfunction uniq(params) {\n var result = '';\n if (params.values && params.values.length > 0) {\n result = params.values[0];\n params.values.forEach(function (value) {\n if (result !== '' && value !== result) {\n result = '';\n }\n });\n }\n return result;\n}\n\nfunction isZero(value) {\n return value < 0.0001 && value > -0.0001\n}\n\nfunction agValueFormatter(params) {\n const agformat = params.format ?? params?.colDef?.format;\n var tempValue = 0;\n if (params.value && params.value !== '' && params.value !== 0) {\n switch (agformat) {\n case 'millionsFormat0':\n tempValue = params.value / 1e6;\n const val = getValueFormatted(tempValue, Number.isInteger(tempValue) ? 0 : 1);\n return (val === '' ? '0.0' : val);\n case 'millionsFormat':\n tempValue = params.value / 1e6;\n return getValueFormatted(tempValue, Number.isInteger(tempValue) ? 0 : 1);\n case 'millionsFormat2':\n tempValue = params.value / 1e6;\n return getValueFormatted(tempValue, Number.isInteger(tempValue) ? 0 : 2);\n case 'millionsFormat2D':\n return getValueFormatted(params.value / 1e6, 2);\n case 'millionsFormat2M':\n tempValue = params.value / 1e6;\n const millionValue = getValueFormatted(tempValue, Number.isInteger(tempValue) ? 0 : 2);\n return `${millionValue}${millionValue && millionValue.toString() !== '' ? 'M' : ''}`;;\n case 'millionsFormat3M':\n tempValue = params.value / 1e6;\n const millionValue3 = getValueFormatted(tempValue, Number.isInteger(tempValue) ? 0 : 3);\n return `${millionValue3}${millionValue3 && millionValue3.toString() !== '' ? 'M' : ''}`;;\n case 'millionsFormat1M':\n tempValue = params.value / 1e6;\n const millionValue1 = getValueFormatted(tempValue, Number.isInteger(tempValue) ? 0 : 1);\n return `${millionValue1}${millionValue1 && millionValue1.toString() !== '' ? 'M' : ''}`;;\n case 'millionsFormat0M':\n const millionValue2 = getValueFormatted(params.value / 1e6, 0);\n return `${millionValue2}${millionValue2 && millionValue2.toString() !== '' ? 'M' : ''}`;;\n case 'percentFormat':\n return getValueFormatted(params.value * 100);\n case 'percentFormat1':\n return getValueFormatted(params.value * 100, Number.isInteger(params.value*100) ? 0 : 1);\n case 'percentFormat2':\n return getValueFormatted(params.value * 100, Number.isInteger(params.value*100) ? 0 : 2);\n case 'percentFormat2P':\n const value = getValueFormatted(params.value, Number.isInteger(params.value) ? 0 : 2);\n return `${value}${value && value.toString() !== '' ? '%' : ''}`\n case 'percentFormat2P-100':\n const value100 = getValueFormatted(params.value * 100, Number.isInteger(params.value*100) ? 0 : 2);\n return `${value100}${value100 && value100.toString() !== '' ? '%' : ''}`\n case 'percentFormat2P-100All':\n const value100All = getValueFormattedNonZero(params.value * 100, Number.isInteger(params.value*100) ? 0 : 2);\n return `${value100All}${value100All && value100All.toString() !== '' ? '%' : ''}`\n case 'percentFormat2P-AllUNCH':\n if(Number.isNaN(params.value)) {\n return params.value;\n }\n const value100allunch = params.value;\n if(value100allunch >-0.01 && value100allunch <0.01) {\n return \"UNCH\";\n }\n else { \n const value100All = getValueFormattedNonZero(value100allunch, Number.isInteger(value100allunch) ? 0 : 2);\n return `${value100All}${value100All && value100All.toString() !== '' ? '%' : ''}`\n }\n case 'decimalFormat2-AllUNCH':\n if(Number.isNaN(params.value)) {\n return params.value;\n }\n const value100allunchdecimal = params.value;\n if(value100allunchdecimal >-0.01 && value100allunchdecimal <0.01) {\n return \"UNCH\";\n }\n else { \n const value100All = getValueFormattedNonZero(value100allunchdecimal, Number.isInteger(value100allunchdecimal) ? 0 : 2);\n return `${value100All}`\n }\n case 'decimalFormat0':\n return getValueFormatted(params.value, 0);\n case 'decimalFormat1':\n return getValueFormatted(params.value, Number.isInteger(params.value) ? 0 : 1);\n case 'decimalFormat2':\n return getValueFormatted(params.value, Number.isInteger(params.value) ? 0 : 2);\n case 'decimalFormat2All':\n return getValueFormattedNonZero(params.value, Number.isInteger(params.value) ? 0 : 2);\n case 'decimalFormat2M':\n return `$${getValueFormatted(params.value, Number.isInteger(params.value) ? 0 : 2)}M`;\n case 'decimalFormat2ML':\n return `${getValueFormatted(params.value, Number.isInteger(params.value) ? 0 : 2)}M`;\n case 'decimalFormatM':\n return `$${getValueFormatted(params.value, 0)}M`;\n case '{0:.2f}x':\n return getValueFormatted(params.value);\n case 'leverageFormat':\n const displayvalue = getValueFormatted(params.value, 2);\n return `${displayvalue}${displayvalue && displayvalue.toString() !== '' ? 'x' : ''}`;\n case 'dateFormat':\n return getDate(params.value);\n case 'dateFormatShort':\n let date = new Date(params.value);\n const monthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n return monthNames[date.getMonth()] + \"' \" + (date.getFullYear() % 1000);\n case 'fundFormat':\n return params.value === 'TOR' ? 'TACF' : params.value\n default:\n return params.value;\n }\n }\n else if (params.value === 0 && (agformat === 'decimalFormatShowZero2' || agformat === 'decimalFormat2All'))\n return getValueFormattedNonZero(params.value, 2);\n return '';\n}\n\nfunction removeBlanks(param) {\n for (let key in param) {\n if (param[key] === null || param[key] === 0 || param[key] === \"\" || Number.isNaN(param[key]) || param[key] === {}) {\n delete param[key];\n }\n }\n return param;\n}\n\nfunction isBlank(param) {\n if (param === null || param === 0 || param === \"\" || param === \"undefined\"|| typeof(param) === \"undefined\" || Number.isNaN(param) || param === {}) \n return true;\nreturn false;\n}\n\nfunction isBlankNotZero(param) {\n if (param === null || param === \"\" || param === \"undefined\" || typeof(param) === \"undefined\" || Number.isNaN(param) || param === {}) \n return true;\n return false;\n}\n\nfunction removeBlanksNotZero(param) {\n for (let key in param) {\n if (param[key] === null || param[key] === \"\" || Number.isNaN(param[key]) || param[key] === {}) {\n delete param[key];\n }\n }\n return param;\n}\n\nfunction removeNegative(param, key) { \n if (!Number.isNaN(param[key]) && param[key] < -1 ) {\n delete param[key];\n } \n return param;\n}\n\nfunction handleResponseFile(response) {\n if (!response.ok) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n });\n }\n return response.blob();\n}\n\nfunction handleResponse(response) {\n return response.text().then(text => {\n try {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n } catch (e) {\n console.log(e);\n return Promise.reject(e.message);\n }\n });\n}\n\nfunction cellClassNegative(params) {\n var result = {color: '#000'};\n if (params.value) {\n try {\n var value = params.value?.display_value ?? params.value;\n value = parseFloat(value?.toString()?.replace(',', '').replace(' ', ''));\n if(params.value && params.value.color && params.value.color === \"red\")\n result = { color: '#FF0000' };\n else if ((!isNaN(value) && value < 0))\n result = { color: '#FF0000' };\n else if (params.value && params.value.color && params.value.color === \"green\")\n result = { color: '#00FF00' };\n else if(params.value === 'UNCH') \n result = { color: '#708090' };\n }\n catch (error) {\n }\n }\n return result;\n}\n\nfunction createValueObject2(val1, val2, display_value) {\n return {\n val1: val1,\n val2: val2,\n display_value: display_value,\n toString: function () {\n return display_value;\n }\n }\n}\n\nfunction getDivide(num, denom) {\n var result = ''\n if (num !== 0 && denom !== 0) {\n result = num / denom;\n }\n return result;\n}\n\nfunction getValueFormatted(param, digit = 2) {\n var result = param;\n var val = 0.0;\n\n if (!isNaN(result)) {\n try {\n val = parseFloat(result).toFixed(digit);\n if (isZero(val)) return '';\n\n if (!isNaN(val))\n result = val.toString()\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n if (result[0] === '-') {\n result = result.replace('-', '(') + ')';\n }\n } catch (error) {\n val = result;\n }\n }\n\n return result;\n}\n\nfunction getValueFormattedNonZero(param, digit = 2) {\n var result = param;\n var val = 0.0;\n\n if (!isNaN(result)) {\n try {\n val = parseFloat(result).toFixed(digit);\n if (!isNaN(val))\n result = val.toString()\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n if (result[0] === '-') {\n result = result.replace('-', '(') + ')';\n }\n } catch (error) {\n val = result;\n }\n }\n\n return result;\n}\n\nfunction randomBetween(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction getDate(params) {\n try {\n var val = new Date(params);\n return val.toISOString().split('T')[0];\n } catch (e) {\n return '';\n }\n}\n\nfunction wAvg(params) {\n var sumQty = 0.0;\n var sum1 = 0.0;\n if (params && params.length > 0) {\n params.rowNode.allLeafChildren.forEach(function (value1) {\n var value = value1.data;\n var val1 = value[params.colDef.cols[0]];\n var val2 = value[params.colDef.cols[1]];\n if (val1 && val2)\n sum1 = sum1 + (val1 * val2);\n if (val2)\n sumQty = sumQty + val2;\n });\n }\n var value = sumQty === 0.0 ? '' : (sum1 / sumQty).toFixed(2);\n return createValueObject2(value === '' ? 0 : value, sumQty, value);\n}\n\nfunction notionalSum(params) {\n const gridColumn = params.colDef;\n var col = gridColumn.col;\n\n if (params && params.length > 0) {\n var rowData = params.rowNode.allLeafChildren.map(value => {\n return value.data;\n });\n\n var sumTotal = 0\n rowData.forEach(item => {\n if (item[col] > 0) {\n sumTotal += item[col]\n }\n })\n }\n\n return sumTotal\n}\n\nfunction geometricProduct(params) {\n const gridColumn = params.colDef;\n var filterList = null;\n var col = gridColumn.col;\n\n if (params && params.length > 0 && params.values && params.values.length > 0) {\n var rowData = params.rowNode.allLeafChildren.map(value => {\n return value.data;\n });\n\n if (gridColumn.fltr) {\n var filters = Object.keys(gridColumn.fltr)\n filterList = filters.map(filter => {\n return {\n column: filter\n , value: gridColumn.fltr[filter]\n }\n });\n }\n\n var rowDataFiltered = rowData;\n if (filterList && filterList.length > 0) {\n filterList.forEach(filter => {\n rowDataFiltered = rowDataFiltered.filter(row => row[filter.column] === filter.value && col && row[col]);\n });\n const val = rowDataFiltered.reduce((denominator, row) => denominator * (1 + row[col]), 1);\n if (val !== 1)\n return val - 1;\n } else {\n const val = rowDataFiltered.reduce((denominator, row) => denominator * (1 + row[col]), 1);\n if (val !== 1)\n return val - 1;\n }\n }\n return '';\n}\n\nfunction portfolioReturn(params) {\n const gridColumn = params.colDef;\n var filterList = null;\n var numcol = gridColumn.args[0];\n var denomcol = gridColumn.args[1];\n\n if (params && params.length > 0 && params.values && params.values.length > 0) {\n var rowData = params.rowNode.allLeafChildren.map(value => {\n return value.data;\n });\n\n if (gridColumn.fltr) {\n var filters = Object.keys(gridColumn.fltr)\n filterList = filters.map(filter => {\n return {\n column: filter\n , value: gridColumn.fltr[filter]\n }\n });\n }\n\n var rowDataFiltered = rowData;\n if (filterList && filterList.length > 0) {\n rowDataFiltered = rowData;\n filterList.forEach(filter => {\n rowDataFiltered = rowDataFiltered.filter(row => row[filter.column] === filter.value);\n });\n\n var reportDate = _.keys(_.countBy(rowDataFiltered, function (rowDataFiltered) { return rowDataFiltered['Report Date']; }));\n\n var totalReturn = 1;\n\n for (let i = 0; i < reportDate.length; i++) {\n var reportDateFiltered = rowDataFiltered.filter(row => row['Report Date'] === reportDate[i]);\n const numvalue = reportDateFiltered.reduce((numerator, row) => numerator + row[numcol], 0);\n const denomvalue = reportDateFiltered.reduce((denominator, row) => denominator + row[denomcol], 0);\n\n if (denomvalue !== 0) {\n var periodReturn = numvalue / denomvalue;\n totalReturn *= (periodReturn + 1);\n }\n }\n\n if (totalReturn !== 1)\n return totalReturn - 1;\n }\n }\n return '';\n}\n\nfunction aggDiv(params) {\n const gridColumn = params.colDef;\n var filterList = null;\n if (params && params.length > 0 && params.values && params.values.length > 0) {\n var rowData = params.rowNode.allLeafChildren.map(value => {\n return value.data;\n });\n\n if (gridColumn.fltr) {\n var filters = Object.keys(gridColumn.fltr)\n filterList = filters.map(filter => {\n return {\n column: filter\n , value: gridColumn.fltr[filter]\n }\n });\n }\n\n var rowDataFiltered = rowData;\n if (filterList && filterList.length > 0) {\n filterList.forEach(filter => {\n rowDataFiltered = rowDataFiltered.filter(row => row[filter.column] === filter.value);\n });\n }\n\n return createValueObject2(0, 0, getAggDiv(rowDataFiltered, params.colDef));\n }\n return createValueObject2(0, 0, '');\n}\n\nfunction aggDivIf(params) {\n const gridColumn = params.colDef;\n var filterList = null;\n var numcol = gridColumn.col;\n var denomcol = gridColumn.col;\n\n if (params && params.length > 0 && params.values && params.values.length > 0) {\n var rowData = params.rowNode.allLeafChildren.map(value => {\n return value.data;\n });\n\n if (gridColumn.fltr) {\n var filters = Object.keys(gridColumn.fltr)\n filterList = filters.map(filter => {\n return {\n column: filter\n , value: gridColumn.fltr[filter]\n }\n });\n }\n\n var rowDataFiltered = rowData;\n if (filterList && filterList.length > 0) {\n rowDataFiltered = rowData;\n filterList.forEach(filter => {\n rowDataFiltered = rowDataFiltered.filter(row => row[filter.column] === filter.value && denomcol && numcol && row[numcol] && row[denomcol]);\n });\n const denomvalue = rowData.reduce((numerator, row) => numerator + row[numcol], 0);\n const numvalue = rowDataFiltered.reduce((denominator, row) => denominator + row[denomcol], 0);\n if (numvalue > 0 && denomvalue > 0)\n return numvalue / denomvalue;\n }\n }\n return '';\n}\n\nfunction wAvgRating(params) {\n var num = 0.0;\n var denom = 0.0;\n const SnPRatingMap = { 'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22 };\n var SnPRatingMapReverse = {};\n Object.keys(SnPRatingMap).forEach(element => {\n SnPRatingMapReverse[SnPRatingMap[element]] = element;\n });\n if (params && params.length > 0) {\n params.rowNode.allLeafChildren.forEach(function (value1) {\n var value = value1.data;\n var val1 = value['rating num'];\n var val2 = value['asset mv'];\n if (val1 && val2 && val1 !== SnPRatingMap['D']) {\n num = num + val1 * val2;\n denom = denom + val2;\n }\n });\n }\n var result = (denom !== 0.0 && num !== 0.0) ? SnPRatingMapReverse[Math.round(num / denom)] : 'NR';\n result = result ? result : 'NR';\n return Utils.createValueObject2(num, denom, result);\n}\n\nfunction isEmpty(value) {\n return (value == null || value.length === 0);\n}\n\nfunction getFieldName(display, agg) {\n var display_temp = display?.replace(\")\", \"\").replace(\"(\", \"\").replace(\"%\", \"\").replace(\".\", \"\").replace(\"{\", \"\").replace(\"}\", \"\").replace(\"[\", \"\").replace(\"]\", \"\").replace(\"%\", \"\").replace(\"$\", \"\").replace(\" \", \"\");\n return `${display_temp}_${agg}`;\n}\n\n\n\nfunction getColumnList(columnList) {\n var groupColumnList = columnList;\n\n if (columnList.length > 1) {\n groupColumnList = [];\n\n var previousGroupName = '';\n var columnHeader = columnList[0].headerName;\n var index = columnHeader.indexOf(\".\");\n if (index > -1) {\n previousGroupName = columnHeader.substring(0, index - 1);\n columnHeader = columnHeader.substring(index);\n }\n\n var previousColumnList = [];\n columnList.forEach((column) => {\n var columnHeader = column.headerName;\n var groupName = \"\";\n var index = columnHeader.indexOf(\".\");\n if (index > -1) {\n groupName = columnHeader.substring(0, index);\n columnHeader = columnHeader.substring(index + 1);\n column.headerName = columnHeader;\n column.resizable = true;\n column.suppressSizeToFit = false;\n }\n if (groupName === \"\") {\n groupColumnList.push(column);\n previousColumnList = [];\n }\n else\n if (previousGroupName !== groupName) {\n previousColumnList = [column];\n groupColumnList.push({ headerName: groupName, children: previousColumnList });\n }\n else {\n previousColumnList.push(column);\n }\n previousGroupName = groupName;\n });\n }\n\n return groupColumnList;\n}\n\nfunction doesMatchFilter(row, filterList) {\n var match = true;\n filterList.forEach(filter => {\n match = match && (row[filter.column] === filter.value || (Array.isArray(filter.value) && filter.value.includes(row[filter.column])));\n });\n return match;\n}\n\n\nfunction getDaysArray(start, end) {\n for(var arr=[],dt=new Date(start); dt<=end; dt.setDate(dt.getDate()+1)){\n arr.push(new Date(dt));\n }\n return arr;\n}\n\n\nfunction getFormatted(value) {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed(0) : value;\n}\n\nfunction getSettingByName(settingList, name) {\n let setting = settingList.filter(\n function (data) {\n return data['value'] === name\n }\n )\n\n let settingL = setting.length > 0 ? setting[0].childSettings : [];\n\n settingL.sort(function(a, b) {\n return a.value.localeCompare(b.value);\n })\n\n return settingL;\n}","import { Utils } from '../helper/utils';\nimport { Session } from '../helper/session';\nconst {config} = require('../config');\n\nexport const userBALService = {\n login,\n logout,\n getAll,\n getById,\n update,\n getAuthHeader,\n getUserInfo,\n delete: _delete,\n changePassword,\n generateOtp,\n validateOtp,\n generateOtpForgotPassword,\n validateOtpForgotPassword,\n changePasswordForgot,\n getAuthHeaderJson,\n getUserDetails,\n validateLoginOtp,\n addUserLog\n};\n\nfunction getUserDetails(type = null) {\n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user?.approvalKey?.filter(function (item) { return item && item.toLowerCase() === type?.toLowerCase() });\n const isRiskRole = user?.userRoles?.filter(item => item && item.toLowerCase() === 'risk');\n return {\n isApprover: (config.environment === 'local' && config.setAsApprover !== undefined ? config.setAsApprover : approverRole?.length > 0),\n isRiskRole: isRiskRole?.length>0,\n user: user\n };\n}\n\nfunction addUserLog(user_id, path) {\n const requestOptions = {\n method: 'POST',\n headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' },\n body: JSON.stringify({ user_id, path })\n };\n\n return fetch(`${config.apiDDSUrl}/addUserLog`, requestOptions)\n .then(Utils.handleResponse);\n}\n\nfunction login(user_name, password, ipAddress) {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ user_name, password, ipAddress })\n };\n\n return fetch(`${config.apiDDSUrl}/login`, requestOptions)\n .then(Utils.handleResponse)\n .then(user => {\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n localStorage.setItem(config.token, JSON.stringify(user));\n return user;\n });\n}\n\nfunction validateLoginOtp(user_name, otpnum) {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ user_name, otpnum })\n };\n\n return fetch(`${config.apiDDSUrl}/validateLoginOtp`, requestOptions)\n .then(Utils.handleResponse)\n .then(user => {\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n localStorage.setItem(config.token, JSON.stringify(user));\n return user;\n });;\n}\n\nfunction changePassword(password, newPassword) {\n const requestOptions = {\n method: 'PUT',\n headers: userBALService.getAuthHeaderJson(),\n body: JSON.stringify({ 'password' : password, 'newPassword' : newPassword })\n };\n\n return fetch(`${config.apiDDSUrl}/update/password`, requestOptions)\n .then(Utils.handleResponse)\n .then(user => {\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n localStorage.setItem(config.token, JSON.stringify(user));\n return user;\n });\n}\n\nfunction changePasswordForgot(username, newPassword) {\n const requestOptions = {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ 'username' : username, 'newPassword' : newPassword })\n };\n\n return fetch(`${config.apiDDSUrl}/update/passwordForgot`, requestOptions)\n .then(Utils.handleResponse)\n .then(user => {\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n localStorage.setItem(config.token, JSON.stringify(user));\n return user;\n });\n}\n\nfunction logout() {\n // remove user from local storage to log user out\n localStorage.removeItem(config.token);\n}\n\nfunction getAll() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/users`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getById(id) {\n\n}\n\nfunction update(user) {\n\n}\n\nfunction generateOtp() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/generateOtp`, requestOptions).then(Utils.handleResponse).then(otp => { return otp; });\n}\n\nfunction validateOtp(otp) {\n const requestOptions = { \n method: 'PUT', \n headers:{...userBALService.getAuthHeader(), 'Content-Type': 'application/json'},\n body: JSON.stringify({ otpnum : otp })\n };\n return fetch(`${config.apiDDSUrl}/validateOtp`, requestOptions).then(Utils.handleResponse).then(otp => { return otp; });\n}\n\nfunction generateOtpForgotPassword(username) {\n const requestOptions = { method: 'GET', headers: { 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/generateOtpForgotPassword?username=${username}`, requestOptions).then(Utils.handleResponse).then(otp => { return otp; });\n}\n\nfunction validateOtpForgotPassword(username, otp) {\n const requestOptions = { method: 'GET', headers: { 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/validateOtpForgotPassword?otpnum=${otp}&username=${username}`, requestOptions).then(Utils.handleResponse).then(otp => { return otp; });\n}\n\nfunction getUserInfo() {\n return JSON.parse(localStorage.getItem(config.token));\n}\n\nfunction getAuthHeader() {\n return { Authorization: 'Bearer ' + this.getUserInfo().token };\n}\n\nfunction getAuthHeaderJson() {\n return { Authorization: 'Bearer ' + this.getUserInfo().token, 'Content-Type': 'application/json' };\n}\n\n// prefixed function name with underscore because delete is a reserved word in javascript\nfunction _delete(id) {\n\n}","// This is used to determine if a user is authenticated and\n// if they are allowed to visit the page they navigated to.\n\n// If they are: they proceed to the page\n// If not: they are redirected to the login page.\nimport React from 'react'\nimport { Redirect, Route } from 'react-router-dom'\nimport config from './../../config';\nimport { Session } from './../../helper/session';\nimport { Utils } from './../../helper/utils';\nimport { userBALService } from './../../bal/user.bal';\n\nconst PrivateRoute = ({ component: Component, roles, ...rest }) => {\n\n return (\n {\n // Add your own authentication on the below line.\n const loggedUser = JSON.parse(Session.getItem(config.token));\n\n if (!loggedUser && props.location.pathname !== '/login') {\n // not logged in so redirect to login page with the return url\n return \n } else if (!loggedUser?.user?.active && props.location.pathname !== '/changepassword') {\n // not logged in so redirect to login page with the return url\n return \n } \n \n if (loggedUser?.user && props.location.pathname !== '/login') { \n \n userBALService.addUserLog(loggedUser.user.id, props.location.pathname).then(result => {\n },\n error => {\n console.log(error.toString());\n });\n }\n\n // check if route is restricted by role\n if (roles && Utils.getArraysIntersection(roles, loggedUser.userRoles).length === 0 ) {\n // role not authorised so redirect to home page\n return \n }\n\n if(props.location.pathname === '/dss'){\n return \n }\n\n if(props.location.pathname === '/icApproval'){\n return \n }\n\n // authorised so return component\n return \n }} />\n )\n}\n\nexport default PrivateRoute","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\n\nexport const reportGeneratorBALService = {\n emailReport\n};\n\nfunction emailReport(params) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json'}, body: JSON.stringify(params) };\n return fetch(`${config.apiDDSUrl}/generateReport`, requestOptions).then( data => { return Utils.handleResponse(data) });\n}\n","import { userBALService } from '../user.bal';\nimport { Session } from '../../helper/session';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n const user = JSON.parse(Session.getItem(config.token)); \n const approverRole = user.userRoles.filter(function (item) { return item === \"Approver\" });\n const analystRole = user.userRoles.filter(function (item) { return item === \"Analyst\" || item === \"Approver\" });\n const isApprover = approverRole.length > 0;\n const isAnalyst = analystRole.length > 0 \n\n return {\n 'columnSpecs': [\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'format': 'fundFormat', 'ag-grid': true, 'rowGroup': true, width: 100},\n {'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, minWidth: 180},\n {'display': 'Approval.Status', 'col': 'Approval Status', 'agg': 'uniq', 'ag-grid': true, width: 150, checkboxSelection: (node) => {\n return true && (node.data ? node.data['Approval Status'] !== \"Approved\" : false) && (node.data['Analyst 1'] === user?.user?.name || isApprover)\n }, headerCheckboxSelection: isAnalyst, headerCheckboxSelectionFilteredOnly: isAnalyst},\n {'display': 'Deal.Status', 'col': 'Deal Status', 'agg': 'uniq', 'ag-grid': true, width: 100},\n {'display': '!{col001}', 'col': '!{col001}', 'col2': '!{col001}', 'agg': 'uniq', 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': '!{col002}', 'col': '!{col002}', 'col2': '!{col002}', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width: 100},\n {'display': '!{col003}', 'col': '!{col003}', 'col2': '!{col003}', 'agg': 'uniq', 'format': 'dateFormatShort', 'ag-grid': true, width: 140},\n {'display': '!{col004}', 'col': '!{col004}', 'col2': '!{col004}', 'agg': 'uniq', 'ag-grid': true, width: 100},\n {'display': '!{col005}', 'col': '!{col005}', 'col2': '!{col005}', 'agg': 'uniq', 'ag-grid': true, width: 100},\n\n {'display': '!{col006}', 'col': '!{col006}', 'col2': '!{col006}', 'agg': 'uniq', 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': '!{col007}', 'col': '!{col007}', 'col2': '!{col007}', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width: 100},\n {'display': '!{col008}', 'col': '!{col008}', 'col2': '!{col008}', 'agg': 'uniq', 'format': 'dateFormatShort', 'ag-grid': true, width: 140},\n {'display': '!{col009}', 'col': '!{col009}', 'col2': '!{col009}', 'agg': 'uniq', 'ag-grid': true, width: 100},\n {'display': '!{col010}', 'col': '!{col010}', 'col2': '!{col010}', 'agg': 'uniq', 'ag-grid': true, width: 100},\n {'display': 'Change.IRR', 'col': 'Change IRR', 'agg': 'uniq', 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'Change.MOIC', 'col': 'Change MOIC', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width: 100},\n {'display': 'Change.Exit Date', 'col': 'Change Exit Date', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width: 100},\n ]};\n}\n\nexport const portfolioProjectionBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n ,approveGrid\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 150\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' , width: 100}, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction approveGrid(proposals) {\n const promises = proposals.map((deal) => { \n var a = fetch(`${config.apiDDSUrl}/setProjectionApproval/id=${deal.id}/status=${deal.action}`, {method: 'GET', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return handleResponseApprove(data, deal) });\n return a;\n });\n return promises;\n} \n\nfunction handleResponseApprove(response, deal) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return {error : `${deal.deal} : ${error}`};\n }\n return data;\n });\n}","import { userBALService } from './user.bal';\nimport { Utils } from '../helper/utils';\nimport Moment from 'moment';\nconst {config} = require('../config');\nconst False = false;\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Asset Market Value ($m).Total', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False}, //# duplicate w/diff display name\n {'display': 'Asset Market Value ($m).TACF', 'col': 'asset mv', 'fltr': {'fund': 'TOR'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset Market Value ($m).TIFO', 'col': 'asset mv', 'fltr': {'fund': 'TIFO'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset Market Value ($m).TACO', 'col': 'asset mv', 'fltr': {'fund': 'TACO'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset Market Value ($m).TACO II', 'col': 'asset mv', 'fltr': {'fund': 'TACO II'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset Market Value ($m).TACO III', 'col': 'asset mv', 'fltr': {'fund': 'TACO III'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset Market Value (%).TACF', 'numcol': 'asset mv', 'denomcol': 'asset mv', 'fltr': {'fund': 'TOR'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (%).TIFO', 'numcol': 'asset mv', 'denomcol': 'asset mv', 'fltr': {'fund': 'TIFO'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (%).TACO', 'numcol': 'asset mv', 'denomcol': 'asset mv', 'fltr': {'fund': 'TACO'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (%).TACO II', 'numcol': 'asset mv', 'denomcol': 'asset mv', 'fltr': {'fund': 'TACO II'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (%).TACO III', 'numcol': 'asset mv', 'denomcol': 'asset mv', 'fltr': {'fund': 'TACO III'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (% of AUM).TACF', 'numcol': 'asset mv', 'denomcol': 'mv total', 'fltr': {'fund': 'TOR'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (% of AUM).TIFO', 'numcol': 'asset mv', 'denomcol': 'mv total', 'fltr': {'fund': 'TIFO'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (% of AUM).TACO', 'numcol': 'asset mv', 'denomcol': 'mv total', 'fltr': {'fund': 'TACO'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (% of AUM).TACO II', 'numcol': 'asset mv', 'denomcol': 'mv total', 'fltr': {'fund': 'TACO II'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Asset Market Value (% of AUM).TACO III', 'numcol': 'asset mv', 'denomcol': 'mv total', 'fltr': {'fund': 'TACO III'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n //# duplicate w/diff display name\n {'display': 'Market Value ($m).Total', 'col': 'mv total', 'agg': 'sum','format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Market Value ($m).TACF', 'col': 'mv total', 'fltr': {'fund': 'TOR'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Market Value ($m).TIFO', 'col': 'mv total', 'fltr': {'fund': 'TIFO'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Market Value ($m).TACO', 'col': 'mv total', 'fltr': {'fund': 'TACO'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Market Value ($m).TACO II', 'col': 'mv total', 'fltr': {'fund': 'TACO II'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Market Value ($m).TACO III', 'col': 'mv total', 'fltr': {'fund': 'TACO III'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Market Value (% AUM).TACF', 'numcol': 'mv total', 'denomcol': 'mv total', 'fltr': {'fund': 'TOR'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Market Value (% AUM).TIFO', 'numcol': 'mv total', 'denomcol': 'mv total', 'fltr': {'fund': 'TIFO'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Market Value (% AUM).TACO', 'numcol': 'mv total', 'denomcol': 'mv total', 'fltr': {'fund': 'TACO'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Market Value (% AUM).TACO II', 'numcol': 'mv total', 'denomcol': 'mv total', 'fltr': {'fund': 'TACO II'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Market Value (% AUM).TACO III', 'numcol': 'mv total', 'denomcol': 'mv total', 'fltr': {'fund': 'TACO III'}, 'agg': 'pctif', 'format': 'percentFormat1', 'ag-grid': False},\n \n {'display': 'Market Value %.In Default', 'col': 'asset mv', 'fltr': {'is defaulted': True}, 'agg': 'aggDivIf', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Market Value %.Non-Accruing', 'col': 'asset mv', 'fltr': {'is accruing': False}, 'agg': 'aggDivIf', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Market Value %.Ratable', 'col': 'asset mv', 'fltr': {'is ratable': True}, 'agg': 'aggDivIf', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Market Value %.Credit', 'col': 'asset mv', 'fltr': {'is credit asset': True}, 'agg': 'aggDivIf', 'format': 'percentFormat1', 'ag-grid': True},\n \n {'display': 'TRS', 'col': 'deal trs mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'TRS - TACF', 'col': 'deal trs mv', 'fltr': {'fund': 'TOR'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'TRS - TIFO', 'col': 'deal trs mv', 'fltr': {'fund': 'TIFO'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'TRS - TACO', 'col': 'deal trs mv', 'fltr': {'fund': 'TACO'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'TRS - TACO II', 'col': 'deal trs mv', 'fltr': {'fund': 'TACO II'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'TRS - TACO III', 'col': 'deal trs mv', 'fltr': {'fund': 'TACO III'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': '$FV.Total', 'col': 'quantity usd', 'fltr': {'capital type': ['Asset', 'Deal TRS']}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': True},//#duplicate w/diff display name\n {'display': '$FV.TACF', 'col': 'quantity usd', 'fltr': {'capital type': ['Asset', 'Deal TRS'], 'fund': 'TOR'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False}, //# duplicate w/diff display name\n {'display': '$FV.TIFO', 'col': 'quantity usd', 'fltr': {'capital type': ['Asset', 'Deal TRS'], 'fund': 'TIFO'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False}, // # duplicate w/diff display name\n {'display': '$FV.TACO', 'col': 'quantity usd', 'fltr': {'capital type': ['Asset', 'Deal TRS'], 'fund': 'TACO'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False}, //# duplicate w/diff display name\n {'display': '$FV.TACO II', 'col': 'quantity usd', 'fltr': {'capital type': ['Asset', 'Deal TRS'], 'fund': 'TACO II'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False}, //# duplicate w/diff display name\n {'display': '$FV.TACO III', 'col': 'quantity usd', 'fltr': {'capital type': ['Asset', 'Deal TRS'], 'fund': 'TACO III'}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': False}, //# duplicate w/diff display name\n {'display': 'Mark', 'cols': ['ending local price', 'credit mv clean'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'wAvg Mark', 'cols': ['ending local price', 'credit mv clean'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'wAvg Rating', 'aggfunc': 'wAvgRating', 'ag-grid': True},\n {'display': '10Y UST Equiv.Total', 'col': 'ct10equiv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': '10Y UST Equiv.>3y', 'col': 'ct10equiv3y', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Duration.Modified', 'cols': ['modified duration', 'asset mv'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Duration.Macaulay', 'cols': ['macaulay duration', 'asset mv'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'CD Risk.100bp', 'col': 'cs 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'CD Risk.1bp', 'col': 'cs01', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'CD Risk.+100%', 'col': 'cswpct_100', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Eq Risk.-25%', 'col': 'eq -25', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n \n {'display': 'CS 100bp.Total', 'col': 'cs 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'CS 100bp.Public', 'col': 'cs 100bp', 'agg': 'sumif', 'format': 'millionsFormat2', 'fltr': {'public private': 'Public'}, 'ag-grid': False},\n {'display': 'CS 100bp.Private', 'col': 'cs 100bp', 'agg': 'sumif', 'format': 'millionsFormat2', 'fltr': {'public private': 'Private'}, 'ag-grid': False},\n {'display': 'CS 100%.Total', 'col': 'cswpct_100', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'CS 100%.Public', 'col': 'cswpct_100', 'agg': 'sumif', 'format': 'millionsFormat2', 'fltr': {'public private': 'Public'}, 'ag-grid': False},\n {'display': 'CS 100%.Private', 'col': 'cswpct_100', 'agg': 'sumif', 'format': 'millionsFormat2', 'fltr': {'public private': 'Private'}, 'ag-grid': False},\n {'display': 'IR DV01', 'col': 'ir dv01', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': True},\n {'display': 'IR 100bp.Total', 'col': 'ir 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'IR 100bp.Fixed', 'col': 'ir 100bp fixed', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'IR 100bp.Floating', 'col': 'ir 100bp floating', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'IR 100bp.Public Fixed', 'col': 'ir 100bp', 'agg': 'sumif', 'format': 'millionsFormat2',\n 'fltr': {'is floating': 0, 'public private': 'Public'}, 'ag-grid': False},\n {'display': 'IR 100bp.Public Float', 'col': 'ir 100bp', 'agg': 'sumif', 'format': 'millionsFormat2',\n 'fltr': {'is floating': 1, 'public private': 'Public'}, 'ag-grid': False},\n {'display': 'IR 100bp.Private Fixed', 'col': 'ir 100bp', 'agg': 'sumif', 'format': 'millionsFormat2',\n 'fltr': {'is floating': 0, 'public private': 'Private'}, 'ag-grid': False},\n {'display': 'IR 100bp.Private Float', 'col': 'ir 100bp', 'agg': 'sumif', 'format': 'millionsFormat2',\n 'fltr': {'is floating': 1, 'public private': 'Private'}, 'ag-grid': False},\n {'display': '10Y UST Equiv.Total', 'col': 'ct10equiv', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': '10Y UST Equiv.Public Fixed', 'col': 'ct10equiv', 'agg': 'sumif', 'format': 'millionsFormat',\n 'fltr': {'capital type': 'Asset', 'is floating': 0, 'public private': 'Public'}, 'ag-grid': False},\n {'display': '10Y UST Equiv.Public Float', 'col': 'ct10equiv', 'agg': 'sumif', 'format': 'millionsFormat',\n 'fltr': {'capital type': 'Asset', 'is floating': 1, 'public private': 'Public'}, 'ag-grid': False},\n {'display': '10Y UST Equiv.Private Fixed', 'col': 'ct10equiv', 'agg': 'sumif', 'format': 'millionsFormat',\n 'fltr': {'capital type': 'Asset', 'is floating': 0, 'public private': 'Private'}, 'ag-grid': False},\n {'display': '10Y UST Equiv.Private Float', 'col': 'ct10equiv', 'agg': 'sumif', 'format': 'millionsFormat',\n 'fltr': {'capital type': 'Asset', 'is floating': 1, 'public private': 'Private'}, 'ag-grid': False},\n \n {'display': 'Asset MV.Curr', 'col': 'asset mv curr', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset MV.Prior', 'col': 'asset mv prior', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset MV.Chg', 'col': 'asset mv chg', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Quantity.Curr', 'col': 'quantity curr', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Quantity.Prior', 'col': 'quantity prior', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Quantity.Chg', 'col': 'quantity chg', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': '$Qty', 'col': 'quantity usd', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Next Coupon', 'col': 'BBG_NXT_CPN_DT', 'ag-grid': True},\n {'display': 'CCY', 'col': 'curr', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Next Maturity', 'col': 'maturity date', 'agg': 'min', 'format': 'dateFormat', 'ag-grid': False},\n {'display': 'Maturity Date', 'col': 'maturity date', 'agg': 'uniq', 'format': 'dateFormat', 'ag-grid': True},\n {'display': 'Investment Code', 'col': 'investment code', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Description', 'col': 'description', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Underwrite.Performing?', 'col': 'performing underwriting', 'agg': 'uniq', 'ag-grid': False},\n {'display': 'Public', 'col': 'public private', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Fund', 'col': 'fund', 'agg': 'uniq', 'format': 'fundFormat', 'ag-grid': True},\n {'display': 'Custodian', 'col': 'custodian account', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Rating.SP', 'col': 'BBG_RTG_SP', 'ag-grid': True},\n {'display': 'Rating.Moody', 'col': 'BBG_RTG_MOODY', 'ag-grid': True},\n {'display': 'Quantity', 'col': 'quantity', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Next Earning Date', 'col': 'BBG_EXPECTED_REPORT_DT', 'format': 'dateFormat', 'ag-grid': True},\n {'display': 'Next Call Date', 'col': 'BBG_NXT_CALL_DT', 'format': 'dateFormat', 'ag-grid': True},\n {'display': 'Next Call Price', 'col': 'BBG_NXT_CALL_PX', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Call Days', 'cols': ['BBG_CALL_DAYS_NOTICE', 'asset mv'], 'agg': 'wAvg', 'format': 'decimalFormat0', 'ag-grid': True},\n {'display': 'Tor Mark.Price', 'cols': ['ending local price', 'asset mv'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Tor Mark.ZSpread', 'cols': ['zspread', 'asset mv'], 'agg': 'wAvg', 'format': 'percentFormat', 'ag-grid': True},\n {'display': 'Tor Mark.YTM', 'cols': ['yield to maturity', 'asset mv'], 'agg': 'wAvg', 'format': 'percentFormat', 'ag-grid': True},\n \n {'display': 'BBG Mark.Price', 'cols': ['BBG_PX_LAST', 'asset mv'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'BBG Mark.ZSpread', 'cols': ['BBG_SPREAD', 'asset mv'], 'agg': 'wAvg', 'format': 'percentFormat', 'ag-grid': True},\n {'display': 'BBG Mark.YTM', 'cols': ['BBG_YLD_YTM_MID', 'asset mv'], 'agg': 'wAvg', 'format': 'percentFormat', 'ag-grid': True},\n {'display': 'BBG Mark.YTC', 'cols': ['BBG_YLD_YTC_MID', 'asset mv'], 'agg': 'wAvg', 'format': 'percentFormat', 'ag-grid': True},\n {'display': 'BBG Mark.YTW', 'cols': ['BBG_YTW', 'asset mv'], 'agg': 'wAvg', 'format': 'percentFormat', 'ag-grid': True},\n \n {'display': 'Asset MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Asset MV.Clean', 'col': 'asset mv clean', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Asset MV.Accrued Interest', 'col': 'asset accrued interest', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n \n {'display': 'Asset MV.Total', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset MV.Private', 'col': 'private asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Asset MV.Public', 'col': 'public asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n \n {'display': 'MV Decomposition.Parked Capital Alloc', 'col': 'capital pb parked', 'agg': 'sum',\n 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Pub Asset', 'col': 'public asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Priv Asset', 'col': 'private asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Asset', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.Gross', 'col': 'gross asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.Short', 'col': 'short asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.Deal TRS', 'col': 'deal trs mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.Facility', 'col': 'facility mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.PB Cash', 'col': 'pb cash mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.Hedge MTM', 'col': 'hedge mtm mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.OTC Margin', 'col': 'otc margin mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.Other Cash', 'col': 'other cash mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Decomposition.Total', 'col': 'mv total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'MV Total', 'col': 'mv total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n \n //#this is a bit messy.\n {'display': 'MV Decomposition.Warrant', 'col': 'mv warrant', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Claim', 'col': 'mv claim', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Equity', 'col': 'mv equity', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Bilateral Loan', 'col': 'mv bilateral loan', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.CB', 'col': 'mv cb', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Corp Bond', 'col': 'mv corp bond', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Syndicated Loan', 'col': 'mv syndicated loan', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV Decomposition.Club Deal', 'col': 'mv club deal', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n \n {'display': 'Stress PNL.Credit', 'col': 'credit stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Stress PNL.Total', 'col': 'asset stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Stress PNL.Equity', 'col': 'equity stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Stress PNL.Asset', 'col': 'asset stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Stress PNL.Tail Hedge', 'col': 'tail hedge stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Stress PNL.% Asset', 'numcols': ['asset stress pnl'], 'denomcols': ['asset mv'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Stress PNL.% AUM', 'cols': ['asset stress pnl', 'capital total'], 'agg': 'percent', 'format': 'percentFormat1', 'ag-grid': False},\n \n {'display': 'Capital.Asset', 'col': 'capital asset', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.TRS', 'col': 'capital financing', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.TRS Buffer', 'col': 'capital trs buffer', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.Parked Capital', 'col': 'capital pb parked', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.PB Lev', 'col': 'capital pb cash', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.Unalloc', 'col': 'capital unallocated', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.FX', 'col': 'capital fx', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.FX Margin', 'col': 'capital fx margin', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.FX Buffer', 'col': 'capital fx buffer', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital.Total', 'col': 'capital total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Capital Usage', 'col': 'capital total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n \n {'display': 'Capital Usage (unadj)', 'col': 'capital unadj', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Cash', 'col': 'cash amount', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': False},\n \n {'display': 'Risk Buffer wAvg%.TRS Buffer', 'numcols': ['capital trs buffer'], 'denomcols': ['capital financing'], 'agg': 'aggDiv', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Risk Buffer wAvg%.FX Buffer', 'numcols': ['capital fx buffer'], 'denomcols': ['fx forward gross mv'], 'agg': 'aggDiv', 'format': 'millionsFormat', 'ag-grid': True},\n \n {'display': 'Current Broker.Margin', 'col': 'broker margin', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Current Broker.Lending Value', 'col': 'broker lending value', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Current Broker.LMV', 'col': 'broker lmv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Current Broker.LTV', 'numcols': ['broker lending value'], 'denomcols': ['broker lmv prior'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n \n {'display': 'Prior Broker.Margin', 'col': 'broker margin prior', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Prior Broker.Lending Value', 'col': 'broker lending value prior', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Prior Broker.LMV', 'col': 'broker lmv prior', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Prior Broker.LTV', 'numcols': ['broker lending value prior'], 'denomcols': ['broker lmv prior'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n \n {'display': 'Change.Margin', 'col': 'broker margin chg', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Change.Lending Value', 'col': 'broker lending value chg', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Change.LMV', 'col': 'broker lmv chg', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n \n {'display': 'Broker.Margin', 'col': 'broker margin', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Broker.Margin Position', 'col': 'broker margin', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Broker.LMV', 'col': 'broker lmv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Broker.Lending Value', 'col': 'broker lending value', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n \n {'display': 'Broker.LTV', 'numcols': ['broker lending value'], 'denomcols': ['broker lmv'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'TOR.LTV', 'numcols': ['broker lending value'], 'denomcols': ['asset mv'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n \n {'display': 'Broker.Deriv MTM', 'col': 'derivatives mtm', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Broker.Deriv VM', 'col': 'derivatives vm', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Broker.Cash', 'col': 'cash', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Broker.Margin FX', 'col': 'fx margin', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Broker.Excess', 'col': 'total excess', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Broker.Equity', 'col': 'broker equity', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'Broker.Margin %', 'numcols': ['broker margin', 'fx margin'], 'denomcols': ['broker lmv'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Broker.Margin % (ex FX)', 'numcols': ['broker margin'], 'denomcols': ['broker lmv'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Broker.Leverage', 'numcols': ['broker lmv'], 'denomcols': ['broker equity'], 'agg': 'aggDiv', 'format': 'leverageFormat', 'ag-grid': False},\n {'display': 'Broker.Leverage (ex FX)', 'numcols': ['broker lmv'], 'denomcols': ['broker equity', 'fx stress loss'], 'agg': 'aggDiv', 'format': 'leverageFormat', 'ag-grid': False},\n {'display': 'TOR.Asset Clean', 'col': 'asset mv clean', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'TOR.Accrued', 'col': 'asset accrued interest', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'TOR.Asset MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'TOR.Equity', 'col': 'tor equity', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'TOR.Leverage', 'numcols': ['asset mv'], 'denomcols': ['tor equity'], 'agg': 'aggDiv', 'format': 'leverageFormat', 'ag-grid': False},\n {'display': 'Broker Funding.Rate', 'cols': ['funding cost', 'broker funding balance'], 'agg': 'wAvg', 'format': 'percentFormat', 'ag-grid': False},\n {'display': 'Broker Funding.Annual Cost', 'col': 'annual funding cost', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n \n {'display': 'Credit Beta', 'cols': ['credit beta', 'asset mv'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Debit Credit Alloc', 'col': 'debit credit alloc', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': False},\n {'display': 'MV (%)', 'cols': ['asset mv', 'asset mv'], 'agg': 'percent', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'AUM (%)', 'cols': ['asset mv', 'mv total'], 'agg': 'percent', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Capital (%)', 'cols': ['capital total', 'capital total'], 'agg': 'percent', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Stress (% of Asset MV)', 'numcols': ['asset stress pnl'], 'denomcols': ['asset mv'], 'agg': 'aggDiv', 'format': 'percentFormat', 'ag-grid': True},\n {'display': 'Stress (% of AUM)', 'cols': ['asset stress pnl', 'capital total'], 'agg': 'percent', 'format': 'percentFormat', 'ag-grid': False},\n {'display': 'Public / Private', 'col': 'public private', 'agg': 'uniq', 'ag-grid': False},\n {'display': 'Risk Type', 'col': 'Risk Type', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Stress Type', 'col': 'stress type', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Substrategy', 'col': 'sub strategy', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Strategy', 'col': 'strat', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Amount', 'col': 'amount', 'format': 'decimalFormat0', 'ag-grid': False},\n {'display': 'Coupon Override.Cash', 'col': 'cash', 'format': 'decimalFormatShowZero2', 'ag-grid': False},\n {'display': 'Coupon Override.PIK', 'col': 'pik', 'format': 'decimalFormatShowZero2', 'ag-grid': False},\n {'display': 'Coupon Override.Other', 'col': 'other', 'format': 'decimalFormatShowZero2', 'ag-grid': False},\n {'display': 'Sector', 'col': 'sector', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Asset Class', 'col': 'asset class', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Country', 'col': 'country', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Count.Deal', 'cols': ['deal', 'asset mv'], 'agg': 'count', 'format': 'decimalFormat0', 'ag-grid': True},\n {'display': 'Count.Asset', 'cols': ['strat', 'asset mv'], 'agg': 'count', 'format': 'decimalFormat0', 'ag-grid': True},\n {'display': 'Count.Financing', 'cols': ['description', 'deal trs mv'], 'agg': 'count', 'format': 'decimalFormat0', 'ag-grid': True},\n {'display': 'Cost of Capital.%', 'numcols': ['annual cost of capital'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat', 'ag-grid': True},\n {'display': 'Cost of Capital.Annual $', 'col': 'annual cost of capital', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Annual Carry.Theta', 'col': 'tail hedge theta carry', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Annual Carry.Facility Cost', 'col': 'gross facility cost', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Annual Carry.Deal TRS Cost', 'col': 'gross deal trs cost', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n \n {'display': 'Annual Carry.Capital Cost', 'col': 'annual cost of capital', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Annual Carry.Parked Capital', 'col': 'annual parked capital cost', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Annual Carry.Funding', 'col': 'annual funding cost', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Annual Carry.Cash', 'col': 'gross annual cash coupon', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Annual Carry.PIK', 'col': 'gross annual pik coupon', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Annual Carry.Other', 'col': 'gross annual other coupon', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Annual Carry.FX', 'col': 'gross annual fx carry', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Annual Carry.All In', 'col': 'gross annual total coupon', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n \n {'display': 'Funding Cost.Blended Rate', 'numcols': ['annual funding cost'], 'denomcols': ['debit credit alloc'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Funding Cost.Cost/Benefit', 'numcols': ['annual cost of capital'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n \n {'display': 'Gross Levered Yield.Cash', 'numcols': ['gross annual cash coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Gross Levered Yield.Funding', 'numcols': ['annual funding cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Gross Levered Yield.Parked Capital', 'numcols': ['annual parked capital cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Gross Levered Yield.Capital Cost', 'numcols': ['annual cost of capital'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Gross Levered Yield.PIK', 'numcols': ['gross annual pik coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Gross Levered Yield.Other', 'numcols': ['gross annual other coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Gross Levered Yield.FX', 'numcols': ['gross annual fx carry'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Gross Levered Yield.Net', 'numcols': ['gross annual total coupon', 'gross annual fx carry', 'annual cost of capital'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n \n {'display': 'Other Carry.Tail Theta', 'numcols': ['tail hedge theta carry'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Other Carry.Biz Cost', 'numcols': ['annual business cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Net Levered Yield.Cash', 'numcols': ['gross annual cash coupon', 'gross annual fx carry', 'annual cost of capital', 'tail hedge theta carry', 'annual business cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Net Levered Yield.Total', 'numcols': ['gross annual cash coupon', 'gross annual fx carry', 'annual cost of capital', 'gross annual pik coupon', 'tail hedge theta carry', 'annual business cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n \n {'display': 'Leverage', 'numcols': ['asset mv'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'leverageFormat', 'ag-grid': True},\n {'display': 'Leverage Metrics (Adj).Cost', 'numcols': ['annual cost of capital'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Leverage Metrics (Adj).Lev Ratio', 'numcols': ['asset mv'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'leverageFormat', 'ag-grid': False},\n {'display': 'Leverage Metrics (Adj).Yield', 'numcols': ['gross annual total coupon', 'gross annual fx carry', 'annual cost of capital'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n \n {'display': 'Leverage (unadj)', 'numcols': ['asset mv'], 'denomcols': ['capital unadj'], 'agg': 'aggDiv', 'stopif': 'deal', 'format': 'leverageFormat', 'ag-grid': True},\n {'display': 'Leverage Metrics (Unadj).Cost', 'numcols': ['annual funding cost'], 'denomcols': ['capital unadj'], 'agg': 'aggDiv', 'stopif': 'deal', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Leverage Metrics (Unadj).Lev Ratio', 'numcols': ['asset mv'], 'denomcols': ['capital unadj'], 'agg': 'aggDiv', 'stopif': 'deal', 'format': 'leverageFormat', 'ag-grid': True},\n {'display': 'Leverage Metrics (Unadj).Yield', 'numcols': ['gross annual total coupon', 'gross annual fx carry', 'annual funding cost'], 'denomcols': ['capital unadj'], 'agg': 'aggDiv', 'stopif': 'deal', 'format': 'percentFormat1', 'ag-grid': True},\n \n {'display': 'Current Asset Yield.Cash', 'numcols': ['gross annual cash coupon'], 'denomcols': ['asset mv clean'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Current Asset Yield.PIK', 'numcols': ['gross annual pik coupon'], 'denomcols': ['asset mv clean'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Current Asset Yield.Other', 'numcols': ['gross annual other coupon'], 'denomcols': ['asset mv clean'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Current Asset Yield.FX', 'numcols': ['gross annual fx carry'], 'denomcols': ['asset mv clean'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Current Asset Yield.All In', 'numcols': ['gross annual total coupon', 'gross annual fx carry'], 'denomcols': ['asset mv clean'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n \n {'display': 'Current Yield.Unlevered', 'numcols': ['gross annual total coupon'], 'denomcols': ['asset mv clean'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Current Yield.Levered', 'numcols': ['gross annual total coupon', 'annual cost of capital'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': False},\n \n {'display': 'Current Coupon.Cash', 'cols': ['cash rate', 'credit or financing mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Current Coupon.PIK', 'cols': ['pik rate', 'credit or financing mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Current Coupon.Other', 'cols': ['other rate', 'credit or financing mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Current Coupon.All In', 'cols': ['all in rate', 'credit or financing mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Asset Coupon.Cash', 'cols': ['cash rate', 'credit mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Asset Coupon.PIK', 'cols': ['pik rate', 'credit mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Asset Coupon.Other', 'cols': ['other rate', 'credit mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Asset Coupon.All In', 'cols': ['all in rate', 'credit mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n \n {'display': 'Coupon Flags.Is Accruing Geneva', 'col': 'is accruing geneva', 'agg': 'uniq', 'ag-grid': False},\n {'display': 'Coupon Flags.Is Accruing', 'col': 'is accruing', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Coupon Flags.Is Delay Draw', 'col': 'is delay draw', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Coupon Flags.Is Defaulted', 'col': 'is defaulted', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Coupon Geneva.Cash', 'col': 'cash raw', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Coupon Geneva.PIK', 'col': 'pik raw', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Coupon Used.Cash', 'col': 'cash rate', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Coupon Used.PIK', 'col': 'pik rate', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Coupon Used.All In', 'col': 'all in rate', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Coupon Used.Other', 'col': 'other rate', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': True},\n \n {'display': 'Duration.wAvgYrs', 'cols': ['years to maturity', 'credit mv clean'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Maturity.Years', 'cols': ['years to maturity', 'credit or financing mv clean'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True},\n {'display': 'Maturity.Date', 'aggfunc': 'maturityDatesUniq', 'ag-grid': False},\n {'display': 'Ccy', 'aggfunc': 'currenciesUniq', 'ag-grid': False},\n \n //#MARS / Tail Hedge table\n {'display': 'Valuation.Notional', 'col': 'notional', 'aggfunc': 'hedgeNotionalSum', 'format': 'millionsFormat0', 'ag-grid': False}, //#can make separate ag-grid table later, not part of position table\n {'display': 'Valuation.Maturity', 'col': 'maturitydate', 'agg': 'uniq', 'ag-grid': False},\n {'display': 'Valuation.Strike', 'col': 'strike', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Valuation.Spot', 'col': 'spot', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': False},\n {'display': 'Valuation.Moneyness', 'col': 'moneyness', 'agg': 'uniq', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Valuation.NPV', 'col': 'mktvalportccy', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Risk.Vol', 'col': 'implied vol', 'agg': 'uniq', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Risk.% Delta', 'col': '% delta', 'agg': 'uniq', 'format': 'percentFormat1', 'ag-grid': False},\n {'display': 'Risk.$Delta', 'col': '$delta', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Risk.IR DV01', 'col': 'dv01', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Risk.CS01', 'col': 'cs01', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Risk.Theta/AUM', 'col': 'theta aum annual', 'agg': 'sum', 'format': 'percentFormat2', 'ag-grid': False},\n {'display': 'Risk.$Theta Annual', 'col': 'annual theta carry', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Risk.Stress', 'col': 'stress pnl', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n \n {'display': 'P&L Topsheet.-50%', 'col': 'pl_-50.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.-25%', 'col': 'pl_-25.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.-20%', 'col': 'pl_-20.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.-15%', 'col': 'pl_-15.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.-10%', 'col': 'pl_-10.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.-5%', 'col': 'pl_-5.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.-1%', 'col': 'pl_-1.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.+1%', 'col': 'pl_1.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.+5%', 'col': 'pl_5.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.+10%', 'col': 'pl_10.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.+15%', 'col': 'pl_15.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'P&L Topsheet.+20%', 'col': 'pl_20.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n \n {'display': 'CDS Topsheet (BP).-50', 'col': 'pl_-50.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).-25', 'col': 'pl_-25.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).25', 'col': 'pl_25.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).50', 'col': 'pl_50.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).75', 'col': 'pl_75.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).100', 'col': 'pl_100.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).150', 'col': 'pl_150.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).200', 'col': 'pl_200.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).250', 'col': 'pl_250.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).300', 'col': 'pl_300.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).350', 'col': 'pl_350.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).400', 'col': 'pl_400.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).450', 'col': 'pl_450.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (BP).500', 'col': 'pl_500.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (%).+10%', 'col': 'cswpct_10', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (%).+25%', 'col': 'cswpct_25', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (%).+50%', 'col': 'cswpct_50', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Topsheet (%).+100%', 'col': 'cswpct_100', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'CDS Spread.Mark', 'col': 'creditsprd', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': False},\n \n {'display': 'Delta Topsheet.-50%', 'col': 'delta_-50.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.-25%', 'col': 'delta_-25.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.-20%', 'col': 'delta_-20.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.-15%', 'col': 'delta_-15.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.-10%', 'col': 'delta_-10.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.-5%', 'col': 'delta_-5.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.-1%', 'col': 'delta_-1.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.0%', 'col': 'delta_0.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.+1%', 'col': 'delta_1.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.+5%', 'col': 'delta_5.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n {'display': 'Delta Topsheet.+10%', 'col': 'delta_10.0', 'agg': 'sum', 'format': 'millionsFormat1', 'ag-grid': False},\n \n {'display': 'Local CCY Exposure.Long', 'col': 'LMV (Local)', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Local CCY Exposure.Short', 'col': 'SMV (Local)', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Local CCY Exposure.Net', 'col': 'NMV (Local)', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'USD Equivalent.Long', 'col': 'LMV (USD)', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'USD Equivalent.Short', 'col': 'SMV (USD)', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'USD Equivalent.Net', 'col': 'NMV (USD)', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n \n {'display': 'Notional', 'col': 'Quantity', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': False},\n {'display': 'Settle Date', 'col': 'Settle Date', 'agg': 'uniq', 'ag-grid': False},\n {'display': 'Capital Type', 'col': 'capital type', 'agg': 'uniq', 'ag-grid': True},\n\n {'display': 'Maturity Bucket', 'col': 'maturity bucket', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Vintage Year', 'col': 'vintage year', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Vintage Quarter', 'col': 'vintage quarter', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Coupon Flags.Is Floating', 'col': 'is floating', 'agg': 'uniq', 'ag-grid': True},\n\n {'display': 'Corporate Structure.Analyst 1', 'col': 'Analyst 1', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Corporate Structure.Analyst 2', 'col': 'Analyst 2', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Corporate Structure.Analyst 3', 'col': 'Analyst 3', 'agg': 'uniq', 'ag-grid': True},\n {'display': 'Corporate Structure.Analyst 4', 'col': 'Analyst 4', 'agg': 'uniq', 'ag-grid': True},\n\n\n //custom grouping\n {'display': 'Public/Private', 'col': 'portfolio', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'GICS Sector', 'col': 'gics_sector', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'GICS Industry Group', 'col': 'gics_industry_group', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'GICS Industry', 'col': 'gics_industry', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'GICS Sub Industry', 'col': 'gics_subindustry', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'BICS Sector', 'col': 'bics_sector', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'BICS Industry Group', 'col': 'bics_industry_group', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'BICS Industry', 'col': 'bics_industry', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'TACF Sub Strategy', 'col': 'tacf_substrategy', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'TACOF Sub Strategy', 'col': 'tacof_substrategy', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'}, \n {'display': 'Market Risk Sensitivity', 'col': 'market_risk', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'Asset Type', 'col': 'asset_type', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'},\n {'display': 'Credit Ranking', 'col': 'credit_ranking', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'}, \n {'display': 'HoldCo vs OpCo', 'col': 'holdco_opco', 'agg': 'uniq', 'ag-grid': True, hide: True, sort: 'asc'}, \n ]};\n}\n\n\nexport const positionBALService = {\n getPositions\n ,getPositionsData\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getIndentClass(params) {\n var indent = 0;\n var node = params.node;\n while (node && node.parent) {\n indent++;\n node = node.parent;\n }\n return ['indent-' + indent];\n}\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group'\n ,field: 'description'\n ,minWidth: 100\n ,pinned: 'left'\n ,resizable: true\n ,cellClass: getIndentClass\n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiDDSUrl}/allposition/frequency=${Frequency}/asofdate=${asdate}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}\n\nfunction getPositionsData(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiDDSUrl}/allpositioncache/frequency=${Frequency}/asofdate=${asdate}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}\n","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nimport { Session } from '../helper/session';\nconst {config} = require('../config');\n\n\nconst getColumnList = async (params) => {\n \n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user.userRoles.filter(function (item) { return item === \"Approver\" });\n const isApprover = approverRole.length > 0;\n\n return {\n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, headerCheckboxSelection: isApprover, headerCheckboxSelectionFilteredOnly: isApprover, checkboxSelection: isApprover, minWidth : 230, maxWidth : 350 }, \n {'display': 'Project', 'col': 'projectName', 'agg': 'uniq', 'ag-grid': true}, \n {'display': 'Live/Expired', 'col': 'hasExpired', 'agg': 'uniq', 'ag-grid': true, 'rowGroup': true, maxWidth : 130 },\n {'display': 'Tor Notional', 'col': 'torNotional', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, maxWidth : 130},\n {'display': 'Tor Market Value', 'col': 'torMarketValue', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, maxWidth : 170}, \n {'display': 'Status', 'col': 'status', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150}, \n {'display': 'Status Underwriting', 'col': 'statusUnderwriting', 'agg': 'sum', 'ag-grid': true, maxWidth : 180}, \n {'display': 'Status Last Quarter', 'col': 'statusLastQuarter', 'agg': 'sum', 'ag-grid': true, maxWidth : 170}, \n {'display': 'Changes', 'ag-grid': true, maxWidth : 180}, \n {'display': 'Analyst 1', 'col': 'analyst1', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150, 'hide': true}, \n {'display': 'Analyst 2', 'col': 'analyst2', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150, 'hide': true}, \n {'display': 'Analyst 3', 'col': 'analyst3', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150, 'hide': true}, \n /*{'display': 'Status.Deal Attributes', 'col': 'statusDealAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 160}, \n {'display': 'Status.Tranche Attributes', 'col': 'statusTrancheAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 170}, \n {'display': 'Status Underwriting.Deal Attributes', 'col': 'statusUnderwritingDealAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150}, \n {'display': 'Status Underwriting.Deal Risk', 'col': 'statusUnderwritingDealRisk', 'agg': 'uniq', 'ag-grid': true, maxWidth : 120}, \n {'display': 'Status Underwriting.Deal Metrics', 'col': 'statusUnderwritingDealMetrics', 'agg': 'uniq', 'ag-grid': true, maxWidth : 130}, \n {'display': 'Status Underwriting.Deal Returns', 'col': 'statusUnderwritingDealReturns', 'agg': 'uniq', 'ag-grid': true, maxWidth : 130}\n */\n ]};\n}\n\nexport const dealBALService = {\n getAllDeals,\n getAnalysts,\n getFields,\n getOneField,\n generateEmail,\n getAllAnalysts,\n getAllFunds,\n getAllPositions,\n getAllCountry,\n getGics,\n getNace,\n getNaceActivity,\n getGicsIG,\n getBics,\n getDealAttribute,\n getDealMetrics,\n getPriorDealMetrics,\n getDealRisks,\n getDealReturns,\n getTrancheAttribute,\n getTrancheMetrics,\n getSetting,\n getAllSettings,\n updateDeal,\n insertDealAttribute,\n insertDealAnalyst,\n insertDealMetrics,\n insertDealRisks,\n insertDealReturns,\n insertTrancheAttribute,\n insertTrancheMetrics,\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n approve,\n checkDeal,\n generateEmailConfirmation,\n getAllBbgDeals,\n getBbgMetrics,\n getRates,\n getAllDealLoans\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'deal',\n minWidth: 100,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/dealsummary`, requestOptions).then(Utils.handleResponse).then(deal => { \n \n return deal.map(row => {\n return {\n ...row\n , hasExpired : row['hasExpired'] ? 'Expired' : 'Live'\n }}); });\n}\n\n\nfunction getAllDeals() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deals`, requestOptions).then(Utils.handleResponse).then(deal => { return deal; });\n}\n\nfunction getAllDealLoans() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/dealLoans`, requestOptions).then(Utils.handleResponse).then(deal => { return deal; });\n}\n\nfunction getAllBbgDeals() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/allBbgDealFA`, requestOptions).then(Utils.handleResponse).then(deal => { return deal; });\n}\n\nfunction generateEmail(value) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(value) };\n return fetch(`${config.apiDDSUrl}/mail/sendDifference`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction generateEmailConfirmation(value) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(value) };\n return fetch(`${config.apiDDSUrl}/mail/sendQuickSetupConfirmation`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAnalysts() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/analysts`, requestOptions).then(Utils.handleResponse).then(analystList => { return analystList; });\n}\n\nfunction getFields() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/user/fields`, requestOptions).then(Utils.handleResponse).then(fieldsList => { return fieldsList; });\n}\n\nfunction getRates() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/exchangeRate`, requestOptions).then(Utils.handleResponse).then(fieldsList => { return fieldsList; });\n}\n\nfunction getOneField(fieldName) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/user/fields/field=${fieldName}`, requestOptions).then(Utils.handleResponse).then(fieldsList => { return fieldsList; });\n}\n\nfunction getAllAnalysts(DealId) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/analysts/deal=${DealId}`, requestOptions).then(Utils.handleResponse).then(analyst => { return analyst; });\n}\n\nfunction checkDeal(DealId) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/check/deal=${DealId}`, requestOptions).then(Utils.handleResponse).then(data => { return data; });\n}\n\nfunction getAllFunds(DealId) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/fund/deal=${DealId}`, requestOptions).then(Utils.handleResponse).then(analyst => { return analyst; });\n}\n\nfunction getAllPositions(DealId) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/positions/deal=${DealId}`, requestOptions).then(Utils.handleResponse).then(analyst => { return analyst; });\n}\n\nfunction getAllCountry() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/country`, requestOptions).then(Utils.handleResponse).then(countryList => { return countryList; });\n}\n\nfunction getGics() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/gics`, requestOptions).then(Utils.handleResponse).then(gicsList => { return gicsList; });\n}\n\nfunction getNace() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/nace`, requestOptions).then(Utils.handleResponse).then(naceList => { return naceList; });\n}\n\nfunction getNaceActivity() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/naceActivity`, requestOptions).then(Utils.handleResponse).then(activityList => { return activityList; });\n}\n\nfunction getGicsIG() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/gicsIG`, requestOptions).then(Utils.handleResponse).then(gicsIGList => { return gicsIGList; });\n}\n\nfunction getBics() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/bics`, requestOptions).then(Utils.handleResponse).then(bicsList => { return bicsList; });\n}\n\nfunction getDealAttribute(DealId) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/Attribute/deal=${DealId}`, requestOptions).then(Utils.handleResponse).then(dealAttributeList => { return dealAttributeList; });\n}\n\nfunction getDealMetrics(DealId, Quarter) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/Metrics/deal=${DealId}/quarter=${Quarter}`, requestOptions).then(Utils.handleResponse).then(dealMetricsList => { return dealMetricsList; });\n}\n\nfunction getPriorDealMetrics(DealId, Quarter) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/PriorMetrics/deal=${DealId}/quarter=${Quarter}`, requestOptions).then(Utils.handleResponse).then(dealMetricsList => { return dealMetricsList; });\n}\n\nfunction getBbgMetrics(DealId, Quarter) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/getBbgMetrics/deal=${DealId}/quarter=${Quarter}`, requestOptions).then(Utils.handleResponse).then(dealMetricsList => { return dealMetricsList; });\n}\n\nfunction getDealRisks(DealId) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/Risks/deal=${DealId}`, requestOptions).then(Utils.handleResponse).then(dealMetricsList => { return dealMetricsList; });\n}\n\nfunction getDealReturns(DealId, Quarter) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/Returns/deal=${DealId}/quarter=${Quarter}`, requestOptions).then(Utils.handleResponse).then(dealReturnslist => { return dealReturnslist; });\n}\n\nfunction getTrancheAttribute(DealId) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/TrancheAttribute/deal=${DealId}`, requestOptions).then(Utils.handleResponse).then(trancheAttributeList => { return trancheAttributeList; });\n}\n\nfunction getTrancheMetrics(DealId, Quarter) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/deal/TrancheMetrics/deal=${DealId}/quarter=${Quarter}`, requestOptions).then(Utils.handleResponse).then(trancheMetricsList => { return trancheMetricsList; });\n}\n\nfunction getSetting(value) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(value) };\n return fetch(`${config.apiDDSUrl}/getSetting`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAllSettings() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getSetting`, requestOptions).then(Utils.handleResponse).then(settingsList => { return settingsList; });\n}\n\nfunction insertDealAttribute(dealAttribute) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(dealAttribute) };\n return fetch(`${config.apiDDSUrl}/deal/addAttribute/deal=${dealAttribute.deal_id}`, requestOptions).then(Utils.handleResponse);\n}\n\n\nfunction insertDealAnalyst(dealAnalyst, dealId) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(dealAnalyst) };\n return fetch(`${config.apiDDSUrl}/deal/addAnalysts/deal=${dealId}`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction insertDealMetrics(dealMetrics) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(dealMetrics) };\n return fetch(`${config.apiDDSUrl}/deal/addMetrics/deal=${dealMetrics.deal_id}`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction updateDeal(body, dealId) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n return fetch(`${config.apiDDSUrl}/deal/update/${dealId}`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction insertDealRisks(dealRisk) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(dealRisk) };\n return fetch(`${config.apiDDSUrl}/deal/addRisks/deal=${dealRisk.deal_id}`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction insertDealReturns(dealReturns) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(dealReturns) };\n return fetch(`${config.apiDDSUrl}/deal/addReturns`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction insertTrancheAttribute(trancheAttribute) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(trancheAttribute) };\n return fetch(`${config.apiDDSUrl}/deal/addTrancheAttribute/`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction insertTrancheMetrics(trancheMetrics) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(trancheMetrics) };\n return fetch(`${config.apiDDSUrl}/deal/addTrancheMetrics/`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction approve(deals) {\n const promises = deals.map((deal) => { \n var a = fetch(`${config.apiDDSUrl}/deal/approve/name=${deal.dealName}`, { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return handleResponseApprove(data, deal) });\n return a;\n });\n return promises;\n}\n\nfunction handleResponseApprove(response, deal) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return {error : `${deal.deal} : ${error}`};\n }\n return data;\n });\n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nimport Moment from 'moment';\nconst {config} = require('../config');\nconst True = true;\n\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': '# Deals', 'cols': ['deal', 'asset mv'], 'agg': 'count', 'format': 'decimalFormat0', 'ag-grid': True, minWidth : 50},\n {'display': 'Asset MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth : 67},\n {'display': 'Capital', 'col': 'capital total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth : 65},\n {'display': 'Leverage', 'numcols': ['asset mv'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'leverageFormat', 'ag-grid': True, minWidth : 63},\n {'display': 'MV (%)', 'cols': ['asset mv', 'asset mv'], 'agg': 'percent', 'format': 'percentFormat1', 'ag-grid':True, minWidth : 52},\n {'display': 'Capital (%)', 'cols': ['capital total', 'capital total'], 'agg': 'percent', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 75},\n {'display': 'Gross Levered Yield.Cash', 'numcols': ['gross annual cash coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 30},\n {'display': 'Gross Levered Yield.PIK', 'numcols': ['gross annual pik coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 30},\n {'display': 'Gross Levered Yield.Other', 'numcols': ['gross annual other coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 30},\n {'display': 'Gross Levered Yield.FX', 'numcols': ['gross annual fx carry'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 30},\n {'display': 'Gross Levered Yield.Funding', 'numcols': ['annual funding cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 55},\n {'display': 'Gross Levered Yield.Parked Capital', 'numcols': ['annual parked capital cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 95},\n {'display': 'Gross Levered Yield.Net', 'numcols': ['gross annual total coupon', 'gross annual fx carry', 'annual cost of capital'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 25},\n {'display': 'Other Carry.Tail Theta', 'numcols': ['tail hedge theta carry'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 65},\n {'display': 'Other Carry.Biz Cost', 'numcols': ['annual business cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 58},\n {'display': 'Net Yield', 'numcols': ['gross annual cash coupon', 'gross annual fx carry', 'annual cost of capital', 'gross annual pik coupon', 'tail hedge theta carry', 'annual business cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 65},\n {'display': 'wAvg Mark', 'cols': ['ending local price', 'credit mv clean'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True, minWidth : 76},\n {'display': 'wAvg Rating', 'aggfunc': 'wAvgRating', 'ag-grid': true, minWidth : 83},\n {'display': 'Market Value %.In Default', 'col': 'asset mv', 'fltr': {'is defaulted': true}, 'agg': 'aggDivIf', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 68},\n {'display': 'Market Value %.Non-Accruing', 'col': 'asset mv', 'fltr': {'is accruing': false}, 'agg': 'aggDivIf', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 90},\n {'display': 'Market Value %.Ratable', 'col': 'asset mv', 'fltr': {'is ratable': true}, 'agg': 'aggDivIf', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 55},\n {'display': 'Market Value %.Credit', 'col': 'asset mv', 'fltr': {'is credit asset': true}, 'agg': 'aggDivIf', 'format': 'percentFormat1', 'ag-grid': True, minWidth : 50},\n\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Country', 'col': 'country', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Public/Private', 'col': 'portfolio', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Sector', 'col': 'gics_sector', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Industry Group', 'col': 'gics_industry_group', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Industry', 'col': 'gics_industry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Sub Industry', 'col': 'gics_subindustry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Sector', 'col': 'bics_sector', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Industry Group', 'col': 'bics_industry_group', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Industry', 'col': 'bics_industry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'TACF Sub Strategy', 'col': 'tacf_substrategy', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'TACOF Sub Strategy', 'col': 'tacof_substrategy', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'Market Risk Sensitivity', 'col': 'market_risk', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'Asset Type', 'col': 'asset_type', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'Credit Ranking', 'col': 'credit_ranking', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'HoldCo vs OpCo', 'col': 'holdco_opco', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True, hide: True},\n ]};\n}\n\nexport const portfolioOverviewSummaryBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,minWidth: 90\n ,maxWidth: 95\n ,pinned: 'left'\n ,resizable: true\n ,sort: 'asc'\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nimport Moment from 'moment';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 100, maxWidth : 250, 'rowGroup': true},\n {'display': 'Gross MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': true, minWidth : 70, maxWidth : 250, sort: 'desc'}\n ]};\n}\n\nexport const portfolioOverviewTopExposureBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,pinned: 'left'\n ,resizable: false \n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n };\n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nimport Moment from 'moment';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true},\n {'display': 'TRS', 'col': 'deal trs mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'asc'},\n ]};\n}\n\nexport const portfolioOverviewTopTRSBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,pinned: 'left'\n ,resizable: false\n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Underlying', 'col': 'Issuer', 'agg': 'uniq', 'ag-grid': true, width : 200},\n {'display': 'CDS Spread.Mark', 'col': 'Mark', 'agg': 'sum', 'format': 'decimalFormat1', 'ag-grid': true, width : 80},\n {'display': 'CDS Topsheet (%).10%', 'col': '10%', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (%).25%', 'col': '25%', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (%).50%', 'col': '50%', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (%).100%', 'col': '100%', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).-50', 'col': '-50', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).-25', 'col': '-25', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).25', 'col': '25', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).50', 'col': '50', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).75', 'col': '75', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).100', 'col': '100', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).150', 'col': '150', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).200', 'col': '200', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).250', 'col': '250', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).300', 'col': '300', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).350', 'col': '350', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).400', 'col': '400', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).450', 'col': '450', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'CDS Topsheet (bps).500', 'col': '500', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Underlying', 'col': 'Underlying', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Asset Class', 'col': 'AssetClass', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Tag1', 'col': 'Tag1', 'agg': 'uniq', 'ag-grid': true, hide: true},\n ]};\n}\n\nexport const cdsTopsheetBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Underlying', 'col': 'Underlying', 'agg': 'uniq', 'ag-grid': true, width : 200},\n {'display': 'P&L Topsheet for Equity % Shock.-50', 'col': '-50PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.-25', 'col': '-25PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.-20', 'col': '-20PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.-15', 'col': '-15PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.-10', 'col': '-10PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.-5', 'col': '-5PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.-1', 'col': '-1PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.1', 'col': '1PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.5', 'col': '5PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for Equity % Shock.10', 'col': '10PnL', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.-50', 'col': '-50Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.-25', 'col': '-25Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.-20', 'col': '-20Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.-15', 'col': '-15Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.-10', 'col': '-10Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.-5', 'col': '-5Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.-1', 'col': '-1Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.1', 'col': '1Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.5', 'col': '5Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Delta Topsheet for Equity % Shock.10', 'col': '10Delta', 'agg': 'sum', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Underlying', 'col': 'Issuer', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Asset Class', 'col': 'AssetClass', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Tag1', 'col': 'Tag1', 'agg': 'uniq', 'ag-grid': true, hide: true},\n ]};\n}\n\nexport const equityTopsheetBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Underlying', 'col': 'Underlying', 'agg': 'uniq', 'ag-grid': true, width : 200},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).-20', 'col': '-20', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).-10', 'col': '-10', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).-5', 'col': '-5', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).-4', 'col': '-4', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).-3', 'col': '-3', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).-2', 'col': '-2', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).-1', 'col': '-1', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).0', 'col': '0', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).1', 'col': '1', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).2', 'col': '2', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).3', 'col': '3', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).4', 'col': '4', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).5', 'col': '5', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).10', 'col': '10', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'P&L Topsheet for FX % Shock (Negative = USD Weakness, Positive = USD Strength).20', 'col': '20', 'agg': 'uniq', 'format': 'millionsFormat0', 'ag-grid': true, width : 40},\n {'display': 'Underlying', 'col': 'Issuer', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Asset Class', 'col': 'AssetClass', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Tag1', 'col': 'Tag1', 'agg': 'uniq', 'ag-grid': true, hide: true},\n ]};\n}\n\nexport const fxTopsheetBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Asset Class','col':'AssetClass', 'agg':'uniq','ag-grid':true, width: 200},\n {'display': 'P&L Topsheet for IRS Shock.0', 'col':'0', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width : 40},\n {'display': 'P&L Topsheet for IRS Shock.25', 'col':'25', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.50', 'col':'50', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.75', 'col':'75', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.100', 'col':'100', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.150', 'col':'150', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.200', 'col':'200', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.250', 'col':'250', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.300', 'col':'300', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.350', 'col':'350', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'P&L Topsheet for IRS Shock.400', 'col':'400', 'agg':'uniq','format':'millionsFormat0','ag-grid':true,width: 40},\n {'display': 'Underlying', 'col':'Issuer', 'agg':'uniq','ag-grid':true, hide: true},\n {'display': 'Asset Class', 'col':'AssetClass', 'agg':'uniq','ag-grid':true, hide: true},\n {'display': 'Tag1', 'col':'Tag1', 'agg':'uniq','ag-grid':true, hide: true},\n ]};\n}\n\nexport const irTopsheetBalService = {\n getPositions,\n getColumnList,\n getRowData,\n getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: 'description',\n width: 250,\n pinned: 'left',\n resizable: true,\n cellRendererParams: {suppressCount: true}\n };\n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`,requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Underlying', 'col': 'Description', 'agg': 'uniq', 'ag-grid': true, width : 120},\n {'display': 'Valuation.$Notional', 'col': 'Short $Notional', 'agg': 'notionalSum', 'format': 'millionsFormat2M', 'ag-grid': true, width : 80},\n {'display': 'Valuation.Maturity Date', 'col': 'MaturityDate', 'agg': 'uniq', 'ag-grid': true, width : 95},\n {'display': 'Valuation.Strike/Rate', 'col': 'Strike', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 80},\n {'display': 'Valuation.ATM Rate', 'col': 'CreditSprd', 'agg': 'uniq', 'format': 'percentFormat2', 'ag-grid': true, width : 90},\n {'display': 'Valuation.Moneyness', 'col': 'Moneyness', 'agg': 'uniq', 'format': 'percentFormat1', 'ag-grid': true, width : 80},\n {'display': 'Valuation.NMV', 'col': 'MktValPortCcy', 'agg': 'sum', 'format': 'millionsFormat2M', 'ag-grid': true, width : 80},\n {'display': 'Risk Metrics.Imp. Vol', 'col': 'Implied Vol', 'agg': 'uniq', 'format': 'percentFormat1', 'ag-grid': true, width : 60},\n {'display': 'Risk Metrics.% Delta', 'col': '% Delta', 'agg': 'uniq', 'format': 'percentFormat1', 'ag-grid': true, width : 60},\n {'display': 'Risk Metrics.$ Delta', 'col': '$Delta', 'agg': 'sum', 'format': 'millionsFormat2M', 'ag-grid': true, width : 80},\n {'display': 'Risk Metrics.IR DV01', 'col': 'IR01 Port Ccy', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 60},\n {'display': 'Risk Metrics.CS01', 'col': 'CreditDV01PortCcy', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 60},\n {'display': 'Risk Metrics.Theta/AUM', 'col': 'unitTheta', 'agg': 'sum', 'format': 'percentFormat2', 'ag-grid': true, width : 80},\n {'display': 'Risk Metrics.Annual $Theta', 'col': 'Monthly Theta + Carry', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 100},\n {'display': 'Risk Metrics.Stress PnL', 'col': 'Stress1 PnL', 'agg': 'sum', 'format': 'millionsFormat2M', 'ag-grid': true, width : 80},\n {'display': 'P&L ($).DoD PnL', 'col': 'DoD PnL', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 80},\n {'display': 'P&L ($).MTD PnL', 'col': 'MTD PnL', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 80},\n {'display': 'Asset Class', 'col': 'AssetClass', 'agg': 'uniq', 'ag-grid': true, hide: true}\n ]};\n}\n\nexport const hedgeReportBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Asset Class'\n ,field: 'description'\n ,width: 120\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from './user.bal';\nimport Moment from 'moment';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Curr', 'col': 'Curr', 'agg': 'uniq', 'ag-grid': true, rowGroup: true, 'hide': true},\n {'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, rowGroup: true, 'hide': true},\n {'display': 'Sort', 'col': 'Sort', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Custodian Account', 'col': 'Custodian Account', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Quantity', 'col': 'Quantity', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, hide: true},\n {'display': 'Tax Lot Date', 'col': 'Tax Lot Date', 'ag-grid': true, hide: true},\n {'display': 'Spot Date', 'col': 'Spot Date', 'ag-grid': true, hide: true},\n {'display': 'Settle Date', 'col': 'Settle Date', 'ag-grid': true, hide: true},\n {'display': 'Maturity Date', 'col': 'Maturity Date', 'ag-grid': true, hide: true},\n {'display': 'Principal', 'col': 'Principal', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, hide: true},\n {'display': 'LMV (USD)', 'col': 'LMV (USD)', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true},\n {'display': 'SMV (USD)', 'col': 'SMV (USD)', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true},\n {'display': 'Book Present Market Value', 'col': 'Book Present Market Value', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true},\n {'display': 'Expected Future PnL USD', 'col': 'Expected Future PnL USD', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, hide: true},\n {'display': 'Expected Future MV USD', 'col': 'Expected Future MV USD', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, hide: true},\n {'display': 'LMV (Local)', 'col': 'LMV (Local)', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true},\n {'display': 'SMV (Local)', 'col': 'SMV (Local)', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true},\n {'display': 'Local Present Market Value', 'col': 'Local Present Market Value', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true},\n {'display': 'Expected Future PnL Local', 'col': 'Expected Future PnL Local', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, hide: true},\n {'display': 'Expected Future MV Local', 'col': 'Expected Future MV Local', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, hide: true},\n {'display': 'Toggle', 'col': 'Toggle', 'agg': 'uniq', 'ag-grid': true, hide: true}\n ]};\n}\n\nexport const fxReportBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n ,getPositionsDB\n};\n\nfunction getIndentClass(params) {\n var indent = 0;\n var node = params.node;\n while (node && node.parent) {\n indent++;\n node = node.parent;\n }\n return ['indent-' + indent];\n}\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group'\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n ,cellClass: getIndentClass\n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositionsDB(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(handleResponse);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency, Fund} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : 'd';\n Fund = Fund ? Fund : '';\n return fetch(`${config.apiDDSUrl}/fxcache/frequency=${Frequency}/asofdate=${asdate}/fund=${Fund}`, requestOptions).then(handleResponseArray).then(positions => { return positions; });\n}\n\nfunction handleResponseArray(response) {\n return response.text().then(text => {\n text = text.replace(/\\bNaN\\b/g, \"null\")\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n });\n}\n\nfunction handleResponse(response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n var str = \"\"\n for(var i = 0 ; i < data.length; i++) {\n str = str + data[i];\n }\n return JSON.parse(str);\n });\n}\n","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, 'hide': true, 'rowGroup': true},\n {'display': 'Stress PNL', 'col': 'asset stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, sort: 'asc'}\n ]};\n}\n\nexport const dealStressBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'Deal'\n ,width: 120\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, 'hide': true, 'rowGroup': true},\n {'display': 'IR 100bp', 'col': 'ir 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True, sort: 'asc'},\n ]};\n}\n\nexport const iRRiskBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'Deal'\n ,width: 120\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nimport Moment from 'moment';\nconst {config} = require('../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Risk Type', 'col': 'Risk Type', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'Asset MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': true, width : 80},\n {'display': 'Capital', 'col': 'capital total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': true, width : 80},\n\n {'display': 'Stress PNL.Total', 'col': 'asset stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Stress PNL.% Asset', 'numcols': ['asset stress pnl'], 'denomcols': ['asset mv'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Stress PNL.% AUM', 'col': 'pnl aum', 'agg': 'sum', 'format': 'percentFormat1', 'ag-grid': True},\n\n {'display': 'CD Risk.100bp', 'col': 'cs 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'CD Risk.+100%', 'col': 'cswpct_100', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Eq Risk.Delta', 'col': 'eq delta', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Eq Risk.-25%', 'col': 'eq -25', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n\n {'display': 'IR 100bp.Total', 'col': 'ir 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'IR 100bp.Fixed', 'col': 'ir 100bp', 'fltr': {'is floating': 0}, 'agg': 'sumif', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'IR 100bp.Floating', 'col': 'ir 100bp', 'fltr': {'is floating': 1}, 'agg': 'sumif', 'format': 'millionsFormat2', 'ag-grid': True},\n \n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Stress Type', 'col': 'stress type', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Country', 'col': 'country', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Public/Private', 'col': 'portfolio', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Sector', 'col': 'gics_sector', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Industry Group', 'col': 'gics_industry_group', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Industry', 'col': 'gics_industry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Sub Industry', 'col': 'gics_subindustry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Sector', 'col': 'bics_sector', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Industry Group', 'col': 'bics_industry_group', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Industry', 'col': 'bics_industry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'TACF Sub Strategy', 'col': 'tacf_substrategy', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'TACOF Sub Strategy', 'col': 'tacof_substrategy', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'Market Risk Sensitivity', 'col': 'market_risk', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'Asset Type', 'col': 'asset_type', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'Credit Ranking', 'col': 'credit_ranking', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'HoldCo vs OpCo', 'col': 'holdco_opco', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True, hide: True},\n ]};\n}\n\nconst getColumnListToggle = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Risk Type', 'col': 'Risk Type', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'Asset MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': true, width : 80},\n {'display': 'Capital', 'col': 'capital total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': true, width : 80},\n\n {'display': 'Stress PNL.Total', 'col': 'asset stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Stress PNL.% Asset', 'numcols': ['asset stress pnl'], 'denomcols': ['asset mv'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True},\n {'display': 'Stress PNL.% AUM', 'col': 'pnl aum all', 'agg': 'sum', 'format': 'percentFormat1', 'ag-grid': True},\n\n {'display': 'CD Risk.100bp', 'col': 'cs 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'CD Risk.+100%', 'col': 'cswpct_100', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Eq Risk.Delta', 'col': 'eq delta', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Eq Risk.-25%', 'col': 'eq -25', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n\n {'display': 'IR 100bp.Total', 'col': 'ir 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'IR 100bp.Fixed', 'col': 'ir 100bp', 'fltr': {'is floating': 0}, 'agg': 'sumif', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'IR 100bp.Floating', 'col': 'ir 100bp', 'fltr': {'is floating': 1}, 'agg': 'sumif', 'format': 'millionsFormat2', 'ag-grid': True},\n \n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Stress Type', 'col': 'stress type', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Country', 'col': 'country', 'agg': 'uniq', 'ag-grid': true, hide: true},\n {'display': 'Public/Private', 'col': 'portfolio', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Sector', 'col': 'gics_sector', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Industry Group', 'col': 'gics_industry_group', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Industry', 'col': 'gics_industry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'GICS Sub Industry', 'col': 'gics_subindustry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Sector', 'col': 'bics_sector', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Industry Group', 'col': 'bics_industry_group', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'BICS Industry', 'col': 'bics_industry', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'TACF Sub Strategy', 'col': 'tacf_substrategy', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'TACOF Sub Strategy', 'col': 'tacof_substrategy', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'Market Risk Sensitivity', 'col': 'market_risk', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'Asset Type', 'col': 'asset_type', 'agg': 'uniq', 'ag-grid': True, hide: True},\n {'display': 'Credit Ranking', 'col': 'credit_ranking', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'HoldCo vs OpCo', 'col': 'holdco_opco', 'agg': 'uniq', 'ag-grid': True, hide: True}, \n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True, hide: True},\n ]};\n}\n\nexport const stressSummaryBALService = {\n getPositions\n ,getColumnList\n ,getColumnListToggle\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Risk Type'\n ,field: 'description'\n ,width: 200\n ,pinned: 'left'\n ,resizable: true\n ,sort: 'asc'\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, 'hide': true, 'rowGroup': true},\n {'display': 'CD Risk 100bp', 'col': 'cs 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True, sort: 'asc'},\n ]};\n}\n\nexport const cDRiskBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'Deal'\n ,width: 120\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, 'hide': true, 'rowGroup': true},\n {'display': 'Eq Risk.Delta', 'col': 'eq delta', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True, sort: 'desc'},\n {'display': 'Eq Risk.-25%', 'col': 'eq -25', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n ]};\n}\n\nexport const eqRiskBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'Deal'\n ,width: 120\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, 'hide': true, 'rowGroup': true},\n {'display': 'CD Risk 100%', 'col': 'cswpct_100', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True, sort: 'asc'},\n ]};\n}\n\nexport const cDRisk100BALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'Deal'\n ,width: 120\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { userBALService } from '../user.bal';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Trade Date', 'col': 'tdate', 'agg': 'uniq', 'ag-grid': true, width : 120},\n {'display': 'Fund', 'col': 'fund', 'agg': 'uniq', 'ag-grid': true, width : 90, hide: true, 'format': 'fundFormat', 'rowGroup': true},\n {'display': 'Event Desc', 'col': 'eventDesc', 'agg': 'uniq', 'ag-grid': true, width : 200},\n {'display': 'Currency', 'col': 'currency', 'agg': 'uniq', 'ag-grid': true, width : 110},\n {'display': 'Local Amount', 'col': 'netLocal', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 140},\n {'display': 'USD Amount', 'col': 'netBook', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 140},\n ]};\n}\n\nexport const hCashflowBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'Fund'\n ,width: 150\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true }\n , flex: 1\n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(handleResponse);\n}\n\nfunction handleResponse(response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n var str = \"\"\n for(var i = 0 ; i < data.length; i++) {\n str = str + data[i];\n }\n return JSON.parse(str);\n });\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Date', 'col': 'Cashflow Date', 'agg': 'uniq', 'ag-grid': true, width : 120},\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, width : 100, hide: true, 'format': 'fundFormat', 'rowGroup': true},\n {'display': 'Currency', 'col': 'Denominated', 'agg': 'uniq', 'ag-grid': true, width : 120},\n {'display': 'Local Amount', 'col': 'Cashflow Amount', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'USD Amount', 'col': 'Cashflow Book Amount', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 150}\n ]};\n}\n\nexport const pCashflowBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'Fund'\n ,width: 150\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true }\n , flex: 1\n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from '../user.bal';\n\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Trade Date', 'col': 'TradeDate', 'format': 'dateFormat', 'agg': 'uniq', 'ag-grid': true, width : 120},\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, width : 100, 'format': 'fundFormat', hide: true},\n {'display': 'Transaction Type', 'col': 'TranType', 'agg': 'uniq', 'ag-grid': true, width : 160},\n {'display': 'Description', 'col': 'Investment', 'agg': 'uniq', 'ag-grid': true, width : 200},\n // {'display': 'Custodian Account', 'col': 'CustodianAccount', 'agg': 'uniq', 'ag-grid': true, width : 170},\n {'display': 'Currency', 'col': 'LocalCurrency', 'agg': 'uniq', 'ag-grid': true, width : 130},\n {'display': 'Quantity', 'col': 'Quantity', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 130},\n {'display': 'Price', 'cols': ['Price', 'Quantity'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': true, width : 90},\n {'display': 'Local Amount', 'col': 'LocalAmount', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'USD Amount', 'col': 'BookAmount', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 150}\n ]};\n}\n\nexport const dTradesBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 200\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true }\n , flex: 1\n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(handleResponse);\n}\n\nfunction handleResponse(response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n var str = \"\"\n for(var i = 0 ; i < data.length; i++) {\n str = str + data[i];\n }\n return JSON.parse(str);\n });\n}","import { userBALService } from '../user.bal';\n\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, width : 100, 'format': 'fundFormat', hide: true},\n {'display': 'Report Date', 'col': 'Report Date', 'format': 'dateFormat', 'agg': 'uniq', 'ag-grid': true, width : 150},\n {'display': 'Description', 'col': 'Description', 'agg': 'uniq', 'ag-grid': true, width : 200, hide: true},\n {'display': 'Product Type', 'col': 'Product Type', 'agg': 'uniq', 'ag-grid': true, width : 200},\n {'display': 'Currency', 'col': 'Curr', 'agg': 'uniq', 'ag-grid': true, width : 130},\n {'display': 'Quantity', 'col': 'Quantity', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 130},\n {'display': 'Mark', 'col': 'Ending Local Price', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 150},\n {'display': 'Local.Clean MV', 'col': 'Local MV Clean', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Local.AI', 'col': 'Local AI', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Local.MV', 'col': 'Local MV', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Local.Cost', 'col': 'Local Cost', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Book.Clean MV', 'col': 'Book MV Clean', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Book.AI', 'col': 'Book AI', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Book.MV', 'col': 'Book MV', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Book.Cost', 'col': 'Book Cost', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Exchange Rate', 'col': 'Exchange Rate', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 150},\n {'display': 'Month End Accrual.PIK', 'col': 'EndingPIKLocalAccrualBalance', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Month End Accrual.Cash', 'col': 'EndingCashLocalAccrualBalance', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'Month End Accrual.Total', 'col': 'EndingTotalLocalAccrualBalance', 'agg': 'uniq', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'PNL.Price', 'col': 'Pnl Price', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'PNL.Interest', 'col': 'Pnl Interest', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'PNL.Other', 'col': 'pnl Other', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n {'display': 'PNL.Total ex FX', 'col': 'Pnl Total', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 150},\n ]};\n}\n\nexport const dealMarksBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 350\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true }\n , flex: 1\n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(handleResponse);\n}\n\nfunction handleResponse(response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n var str = \"\"\n for(var i = 0 ; i < data.length; i++) {\n str = str + data[i];\n }\n return JSON.parse(str);\n });\n}","import { userBALService } from './../user.bal';\nimport { Utils } from '../../helper/utils';\nimport Moment from 'moment';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Description', 'col': 'description', 'agg': 'uniq', 'ag-grid': True, minWidth: 120, maxWidth: 120},\n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True, minWidth: 100, maxWidth: 100},\n {'display': 'Quantity', 'col': 'asset quantity', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True, minWidth: 60, maxWidth: 65},\n {'display': '$FV.Total', 'col': 'asset quantity usd', 'fltr': {'capital type': ['Asset', 'Deal TRS']}, 'agg': 'sumif', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 60, maxWidth: 65},\n {'display': 'CCY', 'col': 'curr', 'agg': 'uniq', 'ag-grid': True, minWidth: 40, maxWidth: 50},\n {'display': 'Mark', 'cols': ['ending local price', 'credit mv clean'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True, minWidth: 55, maxWidth: 60},\n\n {'display': 'Capital.Asset', 'col': 'capital asset', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 45, maxWidth: 50},\n {'display': 'Capital.TRS', 'col': 'capital financing', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 45, maxWidth: 50},\n {'display': 'Capital.TRS Buffer', 'col': 'capital trs buffer', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 70, maxWidth: 70},\n {'display': 'Capital.FX Margin', 'col': 'capital fx margin', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 70, maxWidth: 70},\n {'display': 'Capital.FX Buffer', 'col': 'capital fx buffer', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 65, maxWidth: 70},\n {'display': 'Capital.Parked Capital', 'col': 'capital pb parked', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 65, maxWidth: 70},\n {'display': 'Capital.PB Lev', 'col': 'capital pb cash', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 65, maxWidth: 70},\n {'display': 'Capital.Unalloc', 'col': 'capital unallocated', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 55, maxWidth: 65},\n {'display': 'Capital.Total', 'col': 'capital total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, minWidth: 40, maxWidth: 45},\n\n {'display': 'Asset Coupon.Cash', 'cols': ['cash rate', 'credit mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True, minWidth: 35, maxWidth: 40},\n {'display': 'Asset Coupon.PIK', 'cols': ['pik rate', 'credit mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True, minWidth: 35, maxWidth: 40},\n {'display': 'Asset Coupon.Other', 'cols': ['other rate', 'credit mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True, minWidth: 35, maxWidth: 40},\n {'display': 'Asset Coupon.All In', 'cols': ['all in rate', 'credit mv clean'], 'stopif': 'deal', 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': True, minWidth: 35, maxWidth: 40},\n\n {'display': 'Gross Levered Yield.Cash', 'numcols': ['gross annual cash coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth: 40, maxWidth: 45},\n {'display': 'Gross Levered Yield.PIK', 'numcols': ['gross annual pik coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth: 40, maxWidth: 45},\n {'display': 'Gross Levered Yield.Other', 'numcols': ['gross annual other coupon'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth: 40, maxWidth: 45},\n {'display': 'Gross Levered Yield.FX', 'numcols': ['gross annual fx carry'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth: 35, maxWidth: 40},\n {'display': 'Gross Levered Yield.Funding', 'numcols': ['annual funding cost'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'percentFormat1', 'ag-grid': True, minWidth: 55, maxWidth: 55},\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, hide : True, minWidth: 60, maxWidth: 80},\n {'display': 'Fund', 'col': 'fund', 'agg': 'uniq', 'ag-grid': True, hide : True, 'format': 'fundFormat', 'rowGroup': true, minWidth: 60, maxWidth: 80},\n ]};\n}\n\nexport const dealDashboardBALService = {\n getPositionsData\n ,getColumnList\n ,getRowData\n ,getMVHistory\n ,getDealQuarterlyDates\n ,getCashflowQuarterlyDates\n ,getProjectedCashflowQuarterlyDates\n ,getAutoGroupColumnDef\n ,getCreditMetrics\n ,getCashflowData\n ,getAllCashflowDeals\n ,getPortfolioChartData\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Fund'\n ,field: 'description'\n ,minWidth: 100\n ,maxWidth: 100\n ,pinned: 'left'\n ,resizable: true\n }; \n}\n\nfunction getRowData(params) {\n return getPositionsData(params);\n}\n\nfunction getPositionsData(params) {\n var {AsOfDate, Frequency, Deal, Fund} = params;\n\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n Deal = Deal ?? 'ALL';\n Fund = Fund ?? 'ALL';\n \n var body = {\n \"frequency\": Frequency\n ,\"asofdate\": asdate\n ,\"deal\": Deal\n ,\"fund\": Fund\n }\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n\n return fetch(`${config.apiDDSUrl}/dealdata`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}\n\nfunction getDealQuarterlyDates(params) {\n const requestOptions = { method: 'GET', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/dealquarterlydates`, requestOptions).then(handleResponseArray).then(dates => { return dates; });\n}\n\n\nfunction getAllCashflowDeals() {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/cashflowdeals`, requestOptions).then(Utils.handleResponse).then(deal => { return deal; });\n}\n\nfunction getCashflowData(params) {\n var {Deal, Quarter} = params;\n\n let AsOfDate = '';\n AsOfDate = new Date(Quarter.substring(2), (parseInt(Quarter.substring(1, 2)) * 3).toString(), '01');\n AsOfDate = new Date(AsOfDate - 1);\n\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n \n var body = {\n \"Quarter\": Quarter\n ,\"ReportDate\": asdate\n ,\"Deal\": Deal\n }\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n return fetch(`${config.apiDDSUrl}/deal/cashflow`, requestOptions).then(Utils.handleResponse).then(data => { return data; });\n}\n\nfunction getCashflowQuarterlyDates(params) {\n const requestOptions = { method: 'GET', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/cashflowquarterlydates`, requestOptions).then(Utils.handleResponse).then(dates => { return dates; });\n}\n\nfunction getPortfolioChartData(body) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n return fetch(`${config.apiDDSUrl}/positionChartData`, requestOptions).then(Utils.handleResponse).then(data => { return data; });\n}\n\nfunction getProjectedCashflowQuarterlyDates(params) {\n const requestOptions = { method: 'GET', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/projectedcashflowquarterlydates`, requestOptions).then(Utils.handleResponse).then(dates => { return dates; });\n}\n\nfunction getMVHistory(params) {\n var { Deal, Fund} = params; \n Deal = Deal ?? 'ALL';\n Fund = Fund ?? 'ALL';\n \n var body = { \n \"deal\": Deal\n ,\"fund\": Fund\n }\n\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n return fetch(`${config.apiDDSUrl}/dealmvhistory`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}\n\nfunction getCreditMetrics(params) {\n var { Deal, Quarter } = params; \n Deal = Deal ?? 'ALL';\n Quarter = Quarter ?? 'ALL';\n \n var body = { \n \"deal\": Deal\n ,\"quarter\": Quarter\n }\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n return fetch(`${config.apiDDSUrl}/dealcreditmetrics`, requestOptions).then(handleResponseArray).then(positions => { return positions; });\n}\n\nfunction handleResponseArray(response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n var str = \"\"\n for(var i = 0 ; i < data.length; i++) {\n str = str + data[i];\n }\n\n if(str && str !== '')\n return JSON.parse(str);\n return [];\n });\n}","import { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Gross MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'TRS', 'col': 'deal trs mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Net MV', 'col': 'deal trs mv', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True, valueGetter : function(params) {\n return params.data['asset mv'] ? params.data['asset mv'] : 0 - params.data['deal trs mv'] ? params.data['deal trs mv'] : 0;\n }},\n {'display': 'Leverage (Raw)', 'numcols': ['asset mv'], 'denomcols': ['capital unadj'], 'agg': 'aggDiv', 'stopif': 'deal', 'format': 'leverageFormat', 'ag-grid': True},\n {'display': 'Capital', 'col': 'capital total', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'Leverage (Adj)', 'numcols': ['asset mv'], 'denomcols': ['capital total'], 'agg': 'aggDiv', 'format': 'leverageFormat', 'ag-grid': True},\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, hide : True, 'rowGroup': true},\n ]};\n}\n\nexport const dealDashboardSummaryBALService = {\n getPositionsData\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,minWidth: 100\n ,pinned: 'left'\n ,resizable: true\n ,hide : true\n }; \n}\n\nfunction getRowData(params) {\n return getPositionsData(params);\n}\n\nfunction getPositionsData(params) {\n var {AsOfDate, Frequency, Deal, Fund} = params;\n\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n Deal = Deal ?? 'ALL';\n Fund = Fund ?? 'ALL';\n \n var body = {\n \"frequency\": Frequency\n ,\"asofdate\": asdate\n ,\"deal\": Deal\n ,\"fund\": Fund\n }\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n\n return fetch(`${config.apiDDSUrl}/dealdata`, requestOptions).then(handleResponseArray).then(positions => { return positions; });\n}\n\nfunction handleResponseArray(response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n var str = \"\"\n for(var i = 0 ; i < data.length; i++) {\n str = str + data[i];\n }\n return JSON.parse(str);\n });\n}","import { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Stress Test', 'col': 'asset stress pnl', 'agg': 'sum', 'format': 'millionsFormat', 'ag-grid': True},\n {'display': 'IR +100bp', 'col': 'ir 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'CD Spread +100bp', 'col': 'cs 100bp', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'CD Spread +100%', 'col': 'cswpct_100', 'agg': 'sum', 'format': 'millionsFormat2', 'ag-grid': True},\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, hide : True, 'rowGroup': true},\n ]};\n}\n\nexport const dealRiskBALService = {\n getPositionsData\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,minWidth: 100\n ,pinned: 'left'\n ,resizable: true\n ,hide : true\n }; \n}\n\nfunction getRowData(params) {\n return getPositionsData(params);\n}\n\nfunction getPositionsData(params) {\n var {AsOfDate, Frequency, Deal, Fund} = params;\n\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n Deal = Deal ?? 'ALL';\n Fund = Fund ?? 'ALL';\n \n var body = {\n \"frequency\": Frequency\n ,\"asofdate\": asdate\n ,\"deal\": Deal\n ,\"fund\": Fund\n }\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n\n return fetch(`${config.apiDDSUrl}/dealdata`, requestOptions).then(handleResponseArray).then(positions => { return positions; });\n}\n\nfunction handleResponseArray(response) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n var str = \"\"\n for(var i = 0 ; i < data.length; i++) {\n str = str + data[i];\n }\n return JSON.parse(str);\n });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 280},\n {'display': 'Column', 'col': 'column', 'agg': 'uniq', 'ag-grid': True, minWidth :180, maxWidth: 280},\n {'display': 'New Value', 'col': 'newValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380},\n {'display': 'Existing Value', 'col': 'existingValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380}\n ]};\n}\n\nexport const dealAttributeChangesBALService = {\n getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true \n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n var { Deal } = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/dealattributesdiff?deal=${Deal}`, requestOptions).then(Utils.handleResponse).then(changes => { return changes; });\n} ","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 280},\n {'display': 'Investment Code', 'col': 'investmentCode', 'agg': 'uniq', 'ag-grid': True, minWidth : 280, maxWidth: 380},\n {'display': 'Column', 'col': 'column', 'agg': 'uniq', 'ag-grid': True, minWidth :180, maxWidth: 280},\n {'display': 'New Value', 'col': 'newValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380},\n {'display': 'Existing Value', 'col': 'existingValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380}\n]};\n}\n\nexport const dealTrancheAttributeChangesBALService = {\n getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n var { Deal } = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/trancheattributesdiff?deal=${Deal}`, requestOptions).then(Utils.handleResponse).then(changes => { return changes; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 280},\n {'display': 'Quarter', 'col': 'quarter', 'agg': 'uniq', 'ag-grid': True, minWidth : 120, maxWidth: 180},\n {'display': 'Column', 'col': 'column', 'agg': 'uniq', 'ag-grid': True, minWidth :180, maxWidth: 280},\n {'display': 'New Value', 'col': 'newValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380},\n {'display': 'Existing Value', 'col': 'existingValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380}\n\n ]};\n}\n\nexport const dealCreditMetricsChangesBALService = {\n getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n var { Deal } = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/dealmetricsdiff?deal=${Deal}`, requestOptions).then(Utils.handleResponse).then(changes => { return changes; });\n} \n","import { Utils } from './../../helper/utils';\nimport { userBALService } from './../user.bal';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 280},\n {'display': 'Column', 'col': 'column', 'agg': 'uniq', 'ag-grid': True, minWidth :180, maxWidth: 280},\n {'display': 'New Value', 'col': 'newValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380},\n {'display': 'Existing Value', 'col': 'existingValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380}\n ]};\n}\n\nexport const dealMacroRiskChangesBALService = {\n getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n var { Deal } = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/dealrisksdiff?deal=${Deal}`, requestOptions).then(Utils.handleResponse).then(changes => { return changes; });\n} ","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nconst {config} = require('../../config');\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 280},\n {'display': 'Quarter', 'col': 'quarter', 'agg': 'uniq', 'ag-grid': True, minWidth : 120, maxWidth: 180},\n {'display': 'ReturnScenario', 'col': 'returnScenario', 'agg': 'uniq', 'ag-grid': True, minWidth :180, maxWidth: 280},\n {'display': 'Column', 'col': 'column', 'agg': 'uniq', 'ag-grid': True, minWidth :180, maxWidth: 280},\n {'display': 'New Value', 'col': 'newValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380},\n {'display': 'Existing Value', 'col': 'existingValue', 'agg': 'uniq', 'ag-grid': True, minWidth : 180, maxWidth: 380}\n ]};\n}\n\nexport const dealReturnsChangesBALService = {\n getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 250\n ,pinned: 'left'\n ,resizable: true \n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n var { Deal } = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/dealreturnsdiff?deal=${Deal}`, requestOptions).then(Utils.handleResponse).then(changes => { return changes; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\nconst False = false;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true, 'format': 'fundFormat', hide : true},\n\n {'display': 'MTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'MTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n \n {'display': 'QTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'QTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n \n {'display': 'YTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'YTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n ]};\n}\n\nexport const dealPerformanceSummaryBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'deal'\n ,pinned: 'left'\n ,resizable: false\n ,hide: false\n ,width: 70\n ,display: 'Fund'\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\nconst False = false;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true, 'format': 'fundFormat', hide : true},\n\n {'display': 'MTD CTR.Price', 'col': 'ctr price', 'agg': 'geometricProduct', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'MTD CTR.Int', 'col': 'ctr interest', 'agg': 'geometricProduct', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'MTD CTR.FX', 'col': 'ctr fx', 'agg': 'geometricProduct', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'MTD CTR.Funding', 'col': 'ctr financing', 'agg': 'geometricProduct', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current month': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'MTD CTR.Other', 'col': 'ctr other', 'agg': 'geometricProduct', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'MTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n \n {'display': 'QTD CTR.Price', 'col': 'ctr price', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'QTD CTR.Int', 'col': 'ctr interest', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'QTD CTR.FX', 'col': 'ctr fx', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'QTD CTR.Funding', 'col': 'ctr financing', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'QTD CTR.Other', 'col': 'ctr other', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'QTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n \n {'display': 'YTD CTR.Price', 'col': 'ctr price', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'YTD CTR.Int', 'col': 'ctr interest', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'YTD CTR.FX', 'col': 'ctr fx', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'YTD CTR.Funding', 'col': 'ctr financing', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'YTD CTR.Other', 'col': 'ctr other', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n {'display': 'YTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100', 'ag-grid': true, width: 100},\n ]};\n}\n\nexport const dealPerformanceSummaryCTRBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'deal'\n ,pinned: 'left'\n ,resizable: false\n ,hide: false\n ,width: 70\n ,display: 'Fund'\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': True, 'format': 'fundFormat', 'rowGroup': true, hide: true},\n {'display': 'MTD PnL', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': True, 'pnl-grid': True},\n {'display': 'QTD PnL', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': True, 'pnl-grid': True},\n {'display': 'YTD PnL', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': True, 'pnl-grid': True},\n {'display': 'LTD PnL', 'col': 'pnl total deal', 'agg': 'sum', 'format': 'millionsFormat2D', 'ag-grid': True, 'pnl-grid': True},\n ]};\n}\n\nexport const dealPerformanceSummaryTopBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Fund'\n ,field: 'Fund'\n ,pinned: 'left'\n ,resizable: false\n ,hide: false\n ,width: 70\n ,display: 'Fund'\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency, Fund} = params;\n \n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n Fund = Fund ?? 'ALL';\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}&fund=${Fund}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n \n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, 'format': 'fundFormat', 'rowGroup': true},\n {'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, hide : true},\n {'display': 'Curr', 'col': 'curr', 'agg': 'uniq', 'ag-grid': true, sort: 'asc'},\n {'display': 'USD IRR', 'col': 'irr', 'agg': 'sum', 'ag-grid': true, sort: 'asc', 'format': 'percentFormat'},\n {'display': 'USD MOIC', 'col': 'moic', 'agg': 'sum', 'ag-grid': true, sort: 'asc', 'format': 'decimalFormat2'},\n // {'display': 'Local IRR', 'col': 'curr_irr', 'agg': 'sum', 'ag-grid': true, sort: 'asc', 'format': 'percentFormat'},\n // {'display': 'Local MOIC', 'col': 'curr_moic', 'agg': 'sum', 'ag-grid': true, sort: 'asc', 'format': 'decimalFormat2'},\n ]};\n}\n\nexport const dealProjectionTopBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'deal'\n ,pinned: 'left'\n ,resizable: false\n ,hide: false\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal Name', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true},\n {'display': 'P&L', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'desc'},\n {'display': 'CTR', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'desc'},\n ]};\n}\n\nexport const portfolioPerformanceTopMTDBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,pinned: 'left'\n ,resizable: false\n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal Name', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true},\n {'display': 'P&L', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'desc'},\n {'display': 'CTR', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'desc'},\n ]};\n}\n\nexport const portfolioPerformanceTopQTDBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,pinned: 'left'\n ,resizable: false\n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal Name', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true},\n {'display': 'P&L', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'desc'},\n {'display': 'CTR', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'desc'},\n ]};\n}\n\nexport const portfolioPerformanceTopYTDBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,pinned: 'left'\n ,resizable: false\n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal Name', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true},\n {'display': 'P&L', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'asc'},\n {'display': 'CTR', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'asc'},\n ]};\n}\n\nexport const portfolioPerformanceBottomMTDBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,pinned: 'left'\n ,resizable: false\n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal Name', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true},\n {'display': 'P&L', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'asc'},\n {'display': 'CTR', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'asc'},\n ]};\n}\n\nexport const portfolioPerformanceBottomQTDBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,pinned: 'left'\n ,resizable: false\n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Deal Name', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, 'rowGroup': true},\n {'display': 'P&L', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'asc'},\n {'display': 'CTR', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, minWidth : 70, maxWidth : 80, sort: 'asc'},\n ]};\n}\n\nexport const portfolioPerformanceBottomYTDBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,pinned: 'left'\n ,resizable: false\n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\nconst False = false;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Public Private', 'col': 'portfolio', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'Country', 'col': 'Country', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'GICS Sector', 'col': 'gics_sector', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'GICS Industry Group', 'col': 'gics_industry_group', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'GICS Industry', 'col': 'gics_industry', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'GICS Sub Industry', 'col': 'gics_subindustry', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'BICS Sector', 'col': 'bics_sector', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'BICS Industry Group', 'col': 'bics_industry_group', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'BICS Industry', 'col': 'bics_industry', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'TACF Sub Strategy', 'col': 'tacf_substrategy', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'TACOF Sub Strategy', 'col': 'tacof_substrategy', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'}, \n {'display': 'Market Risk Sensitivity', 'col': 'market_risk', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'Asset Type', 'col': 'asset_type', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'Credit Ranking', 'col': 'credit_ranking', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'}, \n {'display': 'HoldCo vs OpCo', 'col': 'holdco_opco', 'agg': 'uniq', 'ag-grid': true, minWidth : 90, maxWidth : 95, hide : true, sort: 'asc'},\n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True, minWidth: 90, maxWidth: 95, hide : true, sort: 'asc'},\n\n {'display': 'MTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'millionsFormat2', 'ag-grid': True, width: 100},\n {'display': 'MTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'millionsFormat2', 'ag-grid': True, width: 100},\n {'display': 'MTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Alloc Duration', 'col': 'pnl allocation duration hedge', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Alloc Tail', 'col': 'pnl allocation tail hedge', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Alloc Other', 'col': 'pnl allocation other', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Total', 'col': 'pnl total', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n \n {'display': 'QTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'millionsFormat2', 'ag-grid': True, width: 100},\n {'display': 'QTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'millionsFormat2', 'ag-grid': True, width: 100},\n {'display': 'QTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Alloc Duration', 'col': 'pnl allocation duration hedge', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Alloc Tail', 'col': 'pnl allocation tail hedge', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Alloc Other', 'col': 'pnl allocation other', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Total', 'col': 'pnl total', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n \n {'display': 'YTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'millionsFormat2', 'ag-grid': True, width: 100},\n {'display': 'YTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'millionsFormat2', 'ag-grid': True, width: 100},\n {'display': 'YTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Alloc Duration', 'col': 'pnl allocation duration hedge', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Alloc Tail', 'col': 'pnl allocation tail hedge', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Alloc Other', 'col': 'pnl allocation other', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Total', 'col': 'pnl total', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2', 'ag-grid': true, width: 100},\n ]};\n}\n\nexport const portfolioPerformanceDecompositionBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'deal'\n ,pinned: 'left'\n ,resizable: false\n ,hide: false\n ,width: 100\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Public Private', 'col': 'portfolio', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'Country', 'col': 'Country', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'GICS Sector', 'col': 'gics_sector', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'GICS Industry Group', 'col': 'gics_industry_group', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'GICS Industry', 'col': 'gics_industry', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'GICS Sub Industry', 'col': 'gics_subindustry', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'BICS Sector', 'col': 'bics_sector', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'BICS Industry Group', 'col': 'bics_industry_group', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'BICS Industry', 'col': 'bics_industry', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'TACF Sub Strategy', 'col': 'tacf_substrategy', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'TACOF Sub Strategy', 'col': 'tacof_substrategy', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'}, \n {'display': 'Market Risk Sensitivity', 'col': 'market_risk', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'Asset Type', 'col': 'asset_type', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'Credit Ranking', 'col': 'credit_ranking', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'}, \n {'display': 'HoldCo vs OpCo', 'col': 'holdco_opco', 'agg': 'uniq', 'ag-grid': true, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True, minWidth: 120, hide : true, sort: 'asc'},\n {'display': 'Levered Unhedged.MTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Som'], 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Levered Unhedged.QTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Som'], 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Levered Unhedged.YTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Som'], 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Levered Hedged.MTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Som'], 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Levered Hedged.QTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Som'], 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Levered Hedged.YTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Som'], 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Unlevered Unhedged.MTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Asset Prior'], 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Unlevered Unhedged.QTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Asset Prior'], 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Unlevered Unhedged.YTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Asset Prior'], 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Unlevered Hedged.MTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Asset Prior'], 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Unlevered Hedged.QTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Asset Prior'], 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80},\n {'display': 'Unlevered Hedged.YTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Asset Prior'], 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, minWidth : 70, maxWidth : 80}\n ]};\n}\n\nexport const portfolioPerformanceSummaryBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'deal'\n ,pinned: 'left'\n ,resizable: false\n ,hide: false\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nimport Moment from 'moment';\nconst {config} = require('../../config');\n\nconst True = true;\nconst False = false;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Public Private', 'col': 'portfolio', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Country', 'col': 'country', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'GICS Sector', 'col': 'gics_sector', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'GICS Industry Group', 'col': 'gics_industry_group', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'GICS Industry', 'col': 'gics_industry', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'GICS Sub Industry', 'col': 'gics_subindustry', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'BICS Sector', 'col': 'bics_sector', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'BICS Industry Group', 'col': 'bics_industry_group', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'BICS Industry', 'col': 'bics_industry', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'TACF Sub Strategy', 'col': 'tacf_substrategy', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'TACOF Sub Strategy', 'col': 'tacof_substrategy', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'}, \n {'display': 'Market Risk Sensitivity', 'col': 'market_risk', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Asset Type', 'col': 'asset_type', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Credit Ranking', 'col': 'credit_ranking', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'}, \n {'display': 'HoldCo vs OpCo', 'col': 'holdco_opco', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True, width: 100, hide : true, sort: 'asc'},\n {'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Strategy', 'col': 'Strat', 'agg': 'uniq', 'ag-grid': true, width: 100},\n {'display': 'Investment Code', 'col': 'Investment Code', 'agg': 'uniq', 'ag-grid': true, width: 100},\n\n {'display': 'Levered Unhedged.MTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Som'], 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Levered Unhedged.QTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Som'], 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Levered Unhedged.YTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Som'], 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Levered Hedged.MTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Som'], 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Levered Hedged.QTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Som'], 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Levered Hedged.YTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Som'], 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Unlevered Unhedged.MTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Asset Prior'], 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Unlevered Unhedged.QTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Asset Prior'], 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Unlevered Unhedged.YTD', 'agg': 'portfolioReturn', 'args': ['pnl unhedged', 'Capital Asset Prior'], 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Unlevered Hedged.MTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Asset Prior'], 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Unlevered Hedged.QTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Asset Prior'], 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'Unlevered Hedged.YTD', 'agg': 'portfolioReturn', 'args': ['pnl total', 'Capital Asset Prior'], 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n \n {'display': 'MTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'MTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'MTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Alloc Duration', 'col': 'pnl allocation duration hedge', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'MTD PNL.Alloc Tail', 'col': 'pnl allocation tail hedge', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'MTD PNL.Alloc Other', 'col': 'pnl allocation other', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'MTD PNL.Total', 'col': 'pnl total', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n\n {'display': 'QTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'QTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'QTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Alloc Duration', 'col': 'pnl allocation duration hedge', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'QTD PNL.Alloc Tail', 'col': 'pnl allocation tail hedge', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'QTD PNL.Alloc Other', 'col': 'pnl allocation other', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'QTD PNL.Total', 'col': 'pnl total', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n\n {'display': 'YTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'YTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'YTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Alloc Duration', 'col': 'pnl allocation duration hedge', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'YTD PNL.Alloc Tail', 'col': 'pnl allocation tail hedge', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'YTD PNL.Alloc Other', 'col': 'pnl allocation other', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 150},\n {'display': 'YTD PNL.Total', 'col': 'pnl total', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n\n {'display': 'MTD CTR.Funding', 'col': 'ctr financing', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Unlevered', 'col': 'ctr unlevered', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'MTD CTR.Price', 'col': 'ctr price', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.FX', 'col': 'ctr fx', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Int', 'col': 'ctr interest', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Other', 'col': 'ctr other', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Alloc Duration', 'col': 'ctr allocation duration hedge', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'MTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Alloc Tail', 'col': 'ctr allocation hedge', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'MTD CTR.Alloc Other', 'col': 'ctr allocation other', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'MTD CTR.Total', 'col': 'ctr total', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n \n {'display': 'QTD CTR.Funding', 'col': 'ctr financing', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Unlevered', 'col': 'ctr unlevered', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'QTD CTR.Price', 'col': 'ctr price', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.FX', 'col': 'ctr fx', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Int', 'col': 'ctr interest', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Other', 'col': 'ctr other', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Alloc Duration', 'col': 'ctr allocation duration hedge', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'QTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Alloc Tail', 'col': 'ctr allocation hedge', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'QTD CTR.Alloc Other', 'col': 'ctr allocation other', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'QTD CTR.Total', 'col': 'ctr total', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n \n {'display': 'YTD CTR.Funding', 'col': 'ctr financing', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Unlevered', 'col': 'ctr unlevered', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'YTD CTR.Price', 'col': 'ctr price', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.FX', 'col': 'ctr fx', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Int', 'col': 'ctr interest', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Other', 'col': 'ctr other', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Alloc Duration', 'col': 'ctr allocation duration hedge', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'YTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Alloc Tail', 'col': 'ctr allocation hedge', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'YTD CTR.Alloc Other', 'col': 'ctr allocation other', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 150},\n {'display': 'YTD CTR.Total', 'col': 'ctr total', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n\n {'display': 'MTD ROI.Asset', 'col': 'Capital Asset Average', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 120},\n {'display': 'MTD ROI.Capital (Unadj) Avg', 'col': 'Capital Net Raw', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 180},\n {'display': 'MTD ROI.Capital', 'col': 'Capital Total Average', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 120},\n {'display': 'MTD ROI.Gross ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'MTD ROI.Net (Unadj) ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'MTD ROI.Net ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['Capital Total Average'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'MTD ROI.Gross ROI Total', 'numcols': ['pnl total'], 'denomcols': ['Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'MTD ROI.Net (Unadj) ROI Total', 'numcols': ['pnl total'], 'denomcols': ['Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'MTD ROI.Net ROI Total', 'numcols': ['pnl total'], 'denomcols': ['Capital Total Average'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n\n {'display': 'QTD ROI.Asset', 'col': 'QTD Capital Asset Average', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 130},\n {'display': 'QTD ROI.Capital (Unadj) Avg', 'col': 'QTD Capital Net Raw', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 180},\n {'display': 'QTD ROI.Capital', 'col': 'QTD Capital Total Average', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 130},\n {'display': 'QTD ROI.Gross ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['QTD Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'QTD ROI.Net (Unadj) ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['QTD Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'QTD ROI.Net ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['QTD Capital Total Average'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'QTD ROI.Gross ROI Total', 'numcols': ['pnl total'], 'denomcols': ['QTD Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'QTD ROI.Net (Unadj) ROI Total', 'numcols': ['pnl total'], 'denomcols': ['QTD Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'QTD ROI.Net ROI Total', 'numcols': ['pnl total'], 'denomcols': ['QTD Capital Total Average'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n\n {'display': 'YTD ROI.Asset', 'col': 'YTD Capital Asset Average', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 130},\n {'display': 'YTD ROI.Capital (Unadj) Avg', 'col': 'YTD Capital Net Raw', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 180},\n {'display': 'YTD ROI.Capital', 'col': 'YTD Capital Total Average', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 130},\n {'display': 'YTD ROI.Gross ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['YTD Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'YTD ROI.Net (Unadj) ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['YTD Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'YTD ROI.Net ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['YTD Capital Total Average'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'YTD ROI.Gross ROI Total', 'numcols': ['pnl total'], 'denomcols': ['YTD Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'YTD ROI.Net (Unadj) ROI Total', 'numcols': ['pnl total'], 'denomcols': ['YTD Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'YTD ROI.Net ROI Total', 'numcols': ['pnl total'], 'denomcols': ['YTD Capital Total Average'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160}\n ]};\n}\n\nconst getColumnListToggle = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Public Private', 'col': 'portfolio', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Country', 'col': 'country', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'GICS Sector', 'col': 'gics_sector', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'GICS Industry Group', 'col': 'gics_industry_group', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'GICS Industry', 'col': 'gics_industry', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'GICS Sub Industry', 'col': 'gics_subindustry', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'BICS Sector', 'col': 'bics_sector', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'BICS Industry Group', 'col': 'bics_industry_group', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'BICS Industry', 'col': 'bics_industry', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'TACF Sub Strategy', 'col': 'tacf_substrategy', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'TACOF Sub Strategy', 'col': 'tacof_substrategy', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'}, \n {'display': 'Market Risk Sensitivity', 'col': 'market_risk', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Asset Type', 'col': 'asset_type', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Credit Ranking', 'col': 'credit_ranking', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'}, \n {'display': 'HoldCo vs OpCo', 'col': 'holdco_opco', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': True, width: 100, hide : true, sort: 'asc'},\n {'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, width: 100, sort: 'asc'},\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'format': 'fundFormat', 'ag-grid': true, width: 100, hide : true, sort: 'asc'},\n {'display': 'Strategy', 'col': 'Strat', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true},\n {'display': 'Investment Code', 'col': 'Investment Code', 'agg': 'uniq', 'ag-grid': true, width: 100, hide : true},\n \n {'display': 'MTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'MTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'MTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'MTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'MTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'MTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'MTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'MTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n \n {'display': 'MTD CTR.Unlevered', 'col': 'ctr unlevered', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Funding', 'col': 'ctr financing', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'MTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'MTD CTR.Price', 'col': 'ctr price', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'MTD CTR.FX', 'col': 'ctr fx', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'MTD CTR.Int', 'col': 'ctr interest', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'MTD CTR.Other', 'col': 'ctr other', 'agg': 'sumif', 'fltr': {'is current month': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'MTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n \n {'display': 'QTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'QTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'QTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'QTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'QTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'QTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'QTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'QTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n \n {'display': 'QTD CTR.Unlevered', 'col': 'ctr unlevered', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Funding', 'col': 'ctr financing', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Unlevered', 'col': 'ctr unlevered', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'QTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'QTD CTR.Price', 'col': 'ctr price', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'QTD CTR.FX', 'col': 'ctr fx', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'QTD CTR.Int', 'col': 'ctr interest', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'QTD CTR.Other', 'col': 'ctr other', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'QTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n \n {'display': 'YTD PNL.Unlevered', 'col': 'pnl unlevered', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'YTD PNL.Funding', 'col': 'pnl financing', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'millionsFormat2D', 'ag-grid': True, width: 100},\n {'display': 'YTD PNL.Deal Hedge', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n {'display': 'YTD PNL.Price', 'col': 'pnl price', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'YTD PNL.FX', 'col': 'pnl fx', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'YTD PNL.Int', 'col': 'pnl interest', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'YTD PNL.Other', 'col': 'pnl other', 'agg': 'sumif', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100, hide : true},\n {'display': 'YTD PNL.Deal', 'col': 'pnl total deal', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 100},\n \n {'display': 'YTD CTR.Unlevered', 'col': 'ctr unlevered', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Funding', 'col': 'ctr financing', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': False}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n {'display': 'YTD CTR.Deal Hedge', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': True}, 'format': 'percentFormat2P-100All', 'ag-grid': true, width: 100},\n {'display': 'YTD CTR.Price', 'col': 'ctr price', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'YTD CTR.FX', 'col': 'ctr fx', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'YTD CTR.Int', 'col': 'ctr interest', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'YTD CTR.Other', 'col': 'ctr other', 'agg': 'geometricProduct', 'fltr': {'is current year': True, 'is deal hedge': false}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100, hide : true},\n {'display': 'YTD CTR.Deal', 'col': 'ctr total deal', 'agg': 'geometricProduct', 'fltr': {'is current year': True}, 'format': 'percentFormat2P-100All', 'ag-grid': True, width: 100},\n \n {'display': 'MTD ROI.Asset', 'col': 'Capital Asset Average', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 130},\n {'display': 'MTD ROI.Capital (Unadj) Avg', 'col': 'Capital Net Raw', 'agg': 'sumif', 'fltr': {'is current month': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 180},\n {'display': 'MTD ROI.Gross ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'MTD ROI.Net (Unadj) ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'MTD ROI.Gross ROI Total', 'numcols': ['pnl total'], 'denomcols': ['Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'MTD ROI.Net (Unadj) ROI Total', 'numcols': ['pnl total'], 'denomcols': ['Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current month': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n\n {'display': 'QTD ROI.Asset', 'col': 'QTD Capital Asset Average', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 130},\n {'display': 'QTD ROI.Capital (Unadj) Avg', 'col': 'QTD Capital Net Raw', 'agg': 'sumif', 'fltr': {'is current quarter': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 180},\n {'display': 'QTD ROI.Gross ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['QTD Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'QTD ROI.Net (Unadj) ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['QTD Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'QTD ROI.Gross ROI Total', 'numcols': ['pnl total'], 'denomcols': ['QTD Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'QTD ROI.Net (Unadj) ROI Total', 'numcols': ['pnl total'], 'denomcols': ['QTD Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current quarter': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n\n {'display': 'YTD ROI.Asset', 'col': 'YTD Capital Asset Average', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 130},\n {'display': 'YTD ROI.Capital (Unadj) Avg', 'col': 'YTD Capital Net Raw', 'agg': 'sumif', 'fltr': {'is current year': True}, 'format': 'millionsFormat2D', 'ag-grid': true, width: 180},\n {'display': 'YTD ROI.Gross ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['YTD Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'YTD ROI.Net (Unadj) ROI Deal', 'numcols': ['pnl total deal'], 'denomcols': ['YTD Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n {'display': 'YTD ROI.Gross ROI Total', 'numcols': ['pnl total'], 'denomcols': ['YTD Capital Asset Average'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 160},\n {'display': 'YTD ROI.Net (Unadj) ROI Total', 'numcols': ['pnl total'], 'denomcols': ['YTD Capital Net Raw'], 'agg': 'aggDiv', 'fltr': {'is current year': True}, 'format': 'percentFormat2', 'ag-grid': true, width: 200},\n ]};\n}\n\nexport const portfolioPerformanceGridBALService = {\n getPositions\n ,getColumnList\n ,getColumnListToggle\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getIndentClass(params) {\n var indent = 0;\n var node = params.node;\n while (node && node.parent) {\n indent++;\n node = node.parent;\n }\n return ['indent-' + indent];\n}\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group'\n ,field: 'deal'\n ,pinned: 'left'\n ,hide: false\n ,cellRendererParams: { suppressCount: true }\n ,cellClass: getIndentClass\n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(params) {\n var {AsOfDate, Frequency} = params;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n var asdate = AsOfDate ? Moment(AsOfDate).format('YYYYMMDD') : '';\n Frequency = Frequency ? Frequency : '';\n return fetch(`${config.apiUrl}/allposition?asofdate=${asdate}&frequency=${Frequency}`, requestOptions).then(Utils.handleResponse).then(positions => { return positions; });\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nconst {config} = require('../../config');\n\nconst True = true;\n\nconst getColumnList = async (params) => {\n return {\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Period', 'col': 'Period', 'agg': 'uniq', 'ag-grid': True, 'rowGroup': true},\n {'display': 'Total', 'col': 'Total', 'agg': 'uniq', 'format': 'percentFormat2P', 'ag-grid': True, 'pnl-grid': True},\n {'display': 'Public', 'col': 'Public', 'agg': 'uniq', 'format': 'percentFormat2P', 'ag-grid': True, 'pnl-grid': True},\n {'display': 'Private', 'col': 'Private', 'agg': 'uniq', 'format': 'percentFormat2P', 'ag-grid': True, 'pnl-grid': True},\n {'display': 'Tail Hedge', 'col': 'Tail Hedge', 'agg': 'uniq', 'format': 'percentFormat2P', 'ag-grid': True, 'pnl-grid': True},\n ]};\n}\n\nexport const portfolioPerformanceSummaryTopBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'Fund'\n ,pinned: 'left'\n ,resizable: false\n ,hide: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, width : 120, hide: true},\n {'display': 'PB', 'col': 'PB', 'agg': 'uniq', 'ag-grid': true, width : 80},\n {'display': 'Margin', 'col': 'Margin Balance', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 120},\n {'display': 'Cash', 'col': 'Cash Balance', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 120}\n ]};\n}\n\nexport const cashMarginBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Fund'\n ,field: 'description'\n ,width: 150\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { Utils } from './../../helper/utils';\nimport { userBALService } from '../user.bal';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n\n 'SnPRatingMap': \n {'AAA': 1, 'AA+': 2, 'AA': 3, 'AA-': 4, 'A+': 5, 'A': 6, 'A-': 7, 'BBB+': 8, 'BBB': 9, 'BBB-': 10, 'BB+': 11, 'BB': 12, 'BB-': 13, 'B+': 14, 'B': 15, 'B-': 16, 'CCC+': 17, 'CCC': 18, 'CCC-': 19, 'CC': 20, 'C': 21, 'D': 22}, \n 'columnSpecs': [\n {'display': 'Fund', 'col': 'fund', 'agg': 'uniq', 'ag-grid': true, 'format': 'fundFormat', 'rowGroup': true},\n {'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, hide : true},\n {'display': 'USD IRR', 'col': 'USD IRR', 'agg': 'sum', 'ag-grid': true, sort: 'asc', 'format': 'percentFormat'},\n {'display': 'USD MOIC', 'col': 'USD MOIC', 'agg': 'sum', 'ag-grid': true, sort: 'asc', 'format': 'decimalFormat2'},\n // {'display': 'Local IRR', 'col': 'Local IRR', 'agg': 'sum', 'ag-grid': true, sort: 'asc', 'format': 'percentFormat'},\n // {'display': 'Local MOIC', 'col': 'Local MOIC', 'agg': 'sum', 'ag-grid': true, sort: 'asc', 'format': 'decimalFormat2'},\n ]};\n}\n\nexport const historicalCashflowTopBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'deal'\n ,pinned: 'left'\n ,resizable: false\n ,hide: false\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(params) {\n return getPositions(params);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from './user.bal';\nimport { Session } from '../helper/session';\nimport { Utils } from '../helper/utils';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n const user = JSON.parse(Session.getItem(config.token)); \n const approverRole = user.userRoles.filter(function (item) { return item === \"Approver\" });\n const isApprover = approverRole.length > 0;\n\n return {\n 'columnSpecs': [\n {'display': 'Id', 'col': 'id', 'ag-grid': true, hide:true },\n {'display': 'Name', 'col': 'creditProposalName', 'ag-grid': true, headerCheckboxSelection: isApprover, headerCheckboxSelectionFilteredOnly: isApprover, checkboxSelection: isApprover, minWidth : 230 },\n {'display': 'Status', 'col': 'status', 'ag-grid': true, minWidth : 120, rowGroup: true},\n {'display': 'Lead Analyst', 'col': 'analyst1Name', 'ag-grid': true, minWidth : 190}, \n {'display': 'Proposal Date', 'col': 'proposalDate', 'ag-grid': true, 'format': 'dateFormat', minWidth : 120}, \n {'display': 'Transaction Size Max', 'col': 'transactionSizeMax', 'agg': 'sum', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 120, hide: true },\n {'display': 'Size Approved', 'col': 'sizeApproved', 'agg': 'sum', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 60 },\n {'display': 'TACF %', 'col': 'tacfPercentage', 'format': 'percentFormat2P', 'ag-grid': true, minWidth : 60},\n {'display': 'TACF Amount', 'col': 'tacfAmount', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 140},\n {'display': 'TIFO %', 'col': 'tifoPercentage', 'format': 'percentFormat2P', 'ag-grid': true, minWidth : 100},\n {'display': 'TIFO Amount', 'col': 'tifoAmount', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 140},\n {'display': 'TACO II %', 'col': 'tacoiiPercentage', 'format': 'percentFormat2P', 'ag-grid': true, minWidth : 120},\n {'display': 'TACO II Amount', 'col': 'tacoiiAmount', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 160},\n {'display': 'TACO III %', 'col': 'tacoiiiPercentage', 'format': 'percentFormat2P', 'ag-grid': true, minWidth : 120},\n {'display': 'TACO III Amount', 'col': 'tacoiiiAmount', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 160},\n {'display': 'CoInvestor 1 Name', 'col': 'coInvestor1Name', 'ag-grid': true, minWidth : 230},\n {'display': 'CoInvestor 1 %', 'col': 'coinvest1Percentage', 'format': 'percentFormat2P', 'ag-grid': true, minWidth : 90},\n {'display': 'CoInvestor 1 Amount', 'col': 'coinvest1Amount', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 120},\n {'display': 'CoInvestor 2 Name', 'col': 'coInvestor2Name', 'ag-grid': true, minWidth : 230},\n {'display': 'CoInvestor 2 %', 'col': 'coinvest2Percentage', 'format': 'percentFormat2P', 'ag-grid': true, minWidth : 150},\n {'display': 'CoInvestor 2 Amount', 'col': 'coinvest2Amount', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 190},\n {'display': 'CoInvestor 3 Name', 'col': 'coInvestor3Name', 'ag-grid': true, minWidth : 230},\n {'display': 'CoInvestor 3 %', 'col': 'coinvest3Percentage', 'format': 'percentFormat2P', 'ag-grid': true, minWidth : 150},\n {'display': 'CoInvestor 3 Amount', 'col': 'coinvest3Amount', 'format': 'decimalFormat2M', 'ag-grid': true, minWidth : 190},\n {'display': 'Requester', 'col': 'analyst2Name', 'ag-grid': true, minWidth : 190},\n ]};\n}\n\nexport const icApprovalBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'creditproposal_id',\n minWidth: 100,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/allCreditProposal`, requestOptions).then(Utils.handleResponse).then(data => {\n return data;\n });\n}\n\nfunction save(params) {\n params = Utils.removeBlanks(params);\n delete params['file'];\n return fetch(`${config.apiDDSUrl}/addCreditProposal`, { body: JSON.stringify(params), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\n","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Status', 'col': 'approver_status', 'agg': 'uniq', 'ag-grid': true, minWidth : 160},\n {'display': 'Name', 'col': 'full_name', 'agg': 'uniq', 'ag-grid': true, minWidth : 160 },\n {'display': 'Role', 'col': 'display_name', 'agg': 'uniq', 'ag-grid': true, minWidth : 180}, \n {'display': 'Date', 'col': 'approval_date', 'agg': 'uniq', 'ag-grid': true, 'format': 'dateFormat', minWidth : 80},\n {'display': 'Comment', 'col': 'comment', 'agg': 'uniq', 'ag-grid': true, minWidth : 200}, \n\n /*{'display': 'Analyst 3', 'col': 'analyst3', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150},\n {'display': 'Status.Deal Attributes', 'col': 'statusDealAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 160}, \n {'display': 'Status.Tranche Attributes', 'col': 'statusTrancheAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 170}, \n {'display': 'Status Underwriting.Deal Attributes', 'col': 'statusUnderwritingDealAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150}, \n {'display': 'Status Underwriting.Deal Risk', 'col': 'statusUnderwritingDealRisk', 'agg': 'uniq', 'ag-grid': true, maxWidth : 120}, \n {'display': 'Status Underwriting.Deal Metrics', 'col': 'statusUnderwritingDealMetrics', 'agg': 'uniq', 'ag-grid': true, maxWidth : 130}, \n {'display': 'Status Underwriting.Deal Returns', 'col': 'statusUnderwritingDealReturns', 'agg': 'uniq', 'ag-grid': true, maxWidth : 130}\n */\n ]\n };\n}\n\nexport const approvalBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n approve,\n approveGrid,\n sendReminder,\n getPendingApproval\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: '',\n maxWidth: 80,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/allApproval/type=${params.type}/id=${params.id ?? ''}`, requestOptions).then(Utils.handleResponse).then(approvals => { \n return approvals.map(row => {\n return {\n ...row\n }\n }); \n });\n}\n\nfunction getPendingApproval(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/toReminder/type=${params.type}`, requestOptions).then(Utils.handleResponse).then(approvals => { \n return approvals.map(row => {\n return {\n ...row\n }\n }); \n });\n}\n\nfunction approve(params) {\n const {id, type, action, comment} = params;\n return fetch(`${config.apiDDSUrl}/setApproval/id=${id}/type=${type}/action=${action}`, {body: JSON.stringify({id: id, ...(comment) && {comment: comment}}), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction sendReminder(params) {\n const {type} = params;\n return fetch(`${config.apiDDSUrl}/sendReminder/type=${type}`, { method: 'GET', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction approveGrid(proposals) {\n const promises = proposals.map((deal) => { \n var a = fetch(`${config.apiDDSUrl}/setApproval/id=${deal.id}/type=${deal.type}/action=${deal.action}`, {body: JSON.stringify({id:deal.id, ...(deal?.comment) && {comment: deal.comment}}), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return handleResponseApprove(data, deal) });\n return a;\n });\n return promises;\n} \n\nfunction handleResponseApprove(response, deal) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return {error : `${deal.deal} : ${error}`};\n }\n return data;\n });\n}","\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Name', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 180}, \n {'display': 'Approver', 'col': 'full_name', 'agg': 'uniq', 'ag-grid': true, minWidth : 160 },\n /*{'display': 'Analyst 3', 'col': 'analyst3', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150},\n {'display': 'Status.Deal Attributes', 'col': 'statusDealAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 160}, \n {'display': 'Status.Tranche Attributes', 'col': 'statusTrancheAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 170}, \n {'display': 'Status Underwriting.Deal Attributes', 'col': 'statusUnderwritingDealAttributes', 'agg': 'uniq', 'ag-grid': true, maxWidth : 150}, \n {'display': 'Status Underwriting.Deal Risk', 'col': 'statusUnderwritingDealRisk', 'agg': 'uniq', 'ag-grid': true, maxWidth : 120}, \n {'display': 'Status Underwriting.Deal Metrics', 'col': 'statusUnderwritingDealMetrics', 'agg': 'uniq', 'ag-grid': true, maxWidth : 130}, \n {'display': 'Status Underwriting.Deal Returns', 'col': 'statusUnderwritingDealReturns', 'agg': 'uniq', 'ag-grid': true, maxWidth : 130}\n */\n ]\n };\n}\n\nexport const approvalReminderBALService = {\n getColumnList,\n getAutoGroupColumnDef \n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: '',\n maxWidth: 80,\n pinned: 'left',\n }; \n}\n","import { userBALService } from './user.bal'; \nimport { Utils } from '../helper/utils'; \nconst {config} = require('../config');\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Id', 'col': 'id', 'agg': 'uniq', 'ag-grid': true, hide:true },\n {displayIndex: 2, 'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, 'rowGroup' : true, hide:true, width : 90 },\n {displayIndex: 3, 'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, width : 160 },\n {displayIndex: 5, 'display': 'Description', 'col': 'Description', 'agg': 'uniq', 'ag-grid': true, width : 330 },\n {displayIndex: 6, 'display': 'Currency', 'col': 'Currency', 'agg': 'uniq', 'ag-grid': true, width : 80 },\n {displayIndex: 8, 'display': 'Notional', 'col': 'Quantity', 'agg': 'uniq', 'ag-grid': true, 'format': 'millionsFormat2M', width : 100, type: 'rightAligned'}, \n {displayIndex: 9, 'display': 'Status', 'col': 'status', 'agg': 'uniq', 'ag-grid': true, width : 120},\n {displayIndex: 10, 'display': 'Current.!{col001}', 'col': '!{col001}', 'format': 'decimalFormat2All', editable: true, 'ag-grid': true, width : 140, cellEditor: 'numericEditor', type: 'rightAligned', cellClass: 'rag-green'},\n {displayIndex: 11, 'display': 'Previous.!{col002}', 'col': '!{col002}', 'format': 'decimalFormat2', 'ag-grid': true, width : 140, type: 'rightAligned' },\n {displayIndex: 12, 'display': 'Change', 'col': 'change', 'format': 'decimalFormat2', 'ag-grid': true, width : 100, type: 'rightAligned' \n , valueGetter : params => {\n if(params.data) {\n let col1 = Object.keys(params.data).filter(p => p.startsWith(\"col001_\"));\n let col2 = Object.keys(params.data).filter(p => p.startsWith(\"col002_\"));\n if(col1 && col2 && params.data[col1] && params.data[col2] && params.data[col1] !== 0 && params.data[col2] !== 0 && params.data[col1] !== params.data[col2]) {\n return (params.data[col1] - params.data[col2]).toFixed(2);\n } else if(col1 && col2 && (params.data[col1] === 0 || params.data[col2] === 0)) {\n return (params.data[col1] - params.data[col2]).toFixed(2);\n }\n }\n return (0).toFixed(2);\n }\n },\n {displayIndex: 13, 'display': 'Pnl (USD)', 'col': 'change', 'agg': 'sum', 'format': 'decimalFormat2', 'ag-grid': true, width : 140, type: 'rightAligned'\n , valueGetter : params => {\n if(params.data) {\n let col1 = Object.keys(params.data).filter(p => p.startsWith(\"col001_\"));\n let col2 = Object.keys(params.data).filter(p => p.startsWith(\"col002_\"));\n if(col1 && col2 && params.data[col1] && params.data[col2] && params.data[col1] !== 0 && params.data[col2] !== 0 && params.data[col1] !== params.data[col2]) {\n if (params.data['Deal'] === \"CROWN RESORTS\") {\n return (params.data[col1] - params.data[col2]).toFixed(2) * params.data['Quantity'] * params.data['Exchange Rate'];\n } else {\n return (params.data[col1] - params.data[col2]).toFixed(2) * params.data['Quantity'] * params.data['Exchange Rate'] / 100.0;\n }\n } else if(col1 && col2 && (params.data[col1] === 0 || params.data[col2] === 0)) {\n if (params.data['Deal'] === \"CROWN RESORTS\") {\n return (params.data[col1] - params.data[col2]).toFixed(2) * params.data['Quantity'] * params.data['Exchange Rate'];\n } else {\n return (params.data[col1] - params.data[col2]).toFixed(2) * params.data['Quantity'] * params.data['Exchange Rate'] / 100.0;\n }\n }\n }\n return (0).toFixed(2);\n }\n },\n {displayIndex: 14, 'display': 'Use BB', 'col': 'isBloomberg', 'ag-grid': true, width : 120, type: 'rightAligned', \n cellClass: 'rag-green', cellRenderer: \"checkboxRenderer\",\n onUpdate: params => \n {\n if(params.data) {\n let col1 = Object.keys(params.data).filter(p => p.startsWith(\"col001_\"));\n let col3 = Object.keys(params.data).filter(p => p.startsWith(\"col003_\"));\n if(params.data.isBloomberg && params.data[col3])\n params.node.setDataValue(col1, params.data[col3]);\n }\n }\n },\n {displayIndex: 15, 'display': 'BB.!{col003}', 'col': '!{col003}', 'format': 'decimalFormat2', 'ag-grid': true, width : 140, maxWidth : 170, type: 'rightAligned'},\n {displayIndex: 16, 'display': 'Instrument', 'col': 'Investment Code', 'agg': 'uniq', 'ag-grid': true, width : 230 },\n {displayIndex: 17, 'display': 'ISIN', 'col': 'ISIN', 'agg': 'uniq', 'ag-grid': true, width : 150 }, \n]};\n}\n\nexport const markingToolBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Fund',\n field: '',\n width: 150,\n pinned: 'left'\n };\n}\n\nfunction getRowData(params) {\n const requestOptions = { body: JSON.stringify(params), method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/allInstrumentMark`, requestOptions).then(Utils.handleResponse).then(data => {\n return data;\n });\n}\n\nfunction save(instrumentMarks, isSendForApproval, date, fund) {\n instrumentMarks = instrumentMarks.map(instrumentMark => {\n return Utils.removeBlanksNotZero(instrumentMark);\n });\n return fetch(`${config.apiDDSUrl}/addInstrumentMark/date=${date}/fund=${fund}/approval=${isSendForApproval}`, { body: JSON.stringify(instrumentMarks), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Fund', 'col': 'fund', 'agg': 'uniq', 'format': 'fundFormat', 'ag-grid': true, 'hide': true, width: 100},\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'Asset MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'decimalFormat2', 'ag-grid': true, width: 150},\n {'display': '!{col001}', 'col': '!{col001}', 'col2': '!{col001}', 'agg': 'uniq', 'ag-grid': true, width: 200},\n {'display': 'Direction', 'col': 'Direction', 'agg': 'uniq', 'ag-grid': true, width: 120},\n {'display': 'Description', 'col': 'Description', 'agg': 'uniq', 'ag-grid': true, width: 250},\n {'display': 'Is Development Asset', 'col': 'Is Development Asset', 'agg': 'uniq', 'ag-grid': true, width: 200},\n {'display': 'Location', 'col': 'Location', 'agg': 'uniq', 'ag-grid': true, width: 250},\n {'display': '% of Deal Asset', 'col': '% of Deal Asset', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width: 160},\n ]};\n}\n\nconst getColumnListToggle = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Fund', 'col': 'fund', 'agg': 'uniq', 'format': 'fundFormat', 'ag-grid': true, 'hide': true, width: 100},\n {'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'Asset MV', 'col': 'asset mv', 'agg': 'sum', 'format': 'decimalFormat2', 'ag-grid': true, width: 150},\n {'display': '!{col001}', 'col': '!{col001}', 'col2': '!{col001}', 'agg': 'uniq', 'ag-grid': true, width: 200},\n {'display': 'Description', 'col': 'Description', 'agg': 'uniq', 'ag-grid': true, width: 250},\n {'display': 'Is Development Asset', 'col': 'Is Development Asset', 'agg': 'uniq', 'ag-grid': true, width: 200},\n {'display': 'Location', 'col': 'Location', 'agg': 'uniq', 'ag-grid': true, width: 250},\n {'display': '% of Deal Asset', 'col': '% of Deal Asset', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width: 160},\n ]};\n}\n\nexport const exposureRiskBalService = {\n getPositions\n ,getColumnList\n ,getColumnListToggle\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 150\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' , width: 100}, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from '../user.bal';\nimport { Utils } from '../../helper/utils';\nconst {config} = require('../../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, width: 100, hide: true},\n {'display': 'Quarter', 'col': 'Quarter', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'Has borrower missed Payments?', 'col': 'Has borrower missed Payments?', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'Has borrower breached Covenants?', 'col': 'Has borrower breached Covenants?', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'As Of Date', 'col': 'As Of Date', 'agg': 'uniq', 'format': 'dateFormat', 'ag-grid': true, width: 150},\n {'display': 'Total Ranking Drawn Debt', 'col': 'Total Ranking Drawn Debt', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Total Drawn Debt through Tranche', 'col': 'Total Drawn Debt through Tranche', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Total Debt', 'col': 'Total Debt', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Cash Balance', 'col': 'Cash Balance', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Gross Debt', 'col': 'Gross Debt', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Equity Book Value', 'col': 'Equity Book Value', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Equity Market Value', 'col': 'Equity Market Value', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Equity Value DCF', 'col': 'Equity Value DCF', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Enterprise Value', 'col': 'Enterprise Value', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Debt Equity Ratio', 'col': 'Debt Equity Ratio', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Unadjusted LTM EBITDA', 'col': 'Unadjusted LTM EBITDA', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Adjusted LTM EBITDA', 'col': 'Adjusted LTM EBITDA', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Appraised Value', 'col': 'Appraised Value', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Purchased Price', 'col': 'Purchased Price', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Occupancy', 'col': 'Occupancy', 'agg': 'uniq', 'format': 'percentFormat2P', 'ag-grid': true, width: 150},\n {'display': 'Cost to Complete', 'col': 'Cost to Complete', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Real Estate Status', 'col': 'Real Estate Status', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'LTM Interest Expense', 'col': 'LTM Interest Expense', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Revenue', 'col': 'LTM Revenue', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Revenue Oceania', 'col': 'LTM Revenue Oceania', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Revenue Africa', 'col': 'LTM Revenue Africa', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Revenue Asia', 'col': 'LTM Revenue Asia', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Revenue Europe', 'col': 'LTM Revenue Europe', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Revenue North America', 'col': 'LTM Revenue North America', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Revenue South America', 'col': 'LTM Revenue South America', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Operation Cashflow', 'col': 'LTM Operation Cashflow', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'LTM Capital Expenditure', 'col': 'LTM Capital Expenditure', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Total Leverage Multiple', 'col': 'Total Leverage Multiple', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Tor Leverage Attachment', 'col': 'Tor Leverage Attachment', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Tor Leverage Detachment', 'col': 'Tor Leverage Detachment', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width: 150},\n {'display': 'Total LTV Percentage', 'col': 'Total LTV Percentage', 'agg': 'uniq', 'format': 'percentFormat2P', 'ag-grid': true, width: 150},\n {'display': 'Tor LTV Attachment', 'col': 'Tor LTV Attachment', 'agg': 'uniq', 'format': 'percentFormat2P', 'ag-grid': true, width: 150},\n {'display': 'Tor LTV Detachment', 'col': 'Tor LTV Detachment', 'agg': 'uniq', 'format': 'percentFormat2P', 'ag-grid': true, width: 150},\n {'display': 'Environment ESG Rating', 'col': 'Environment ESG Rating', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'Social ESG Rating', 'col': 'Social ESG Rating', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'Governance ESG Rating', 'col': 'Governance ESG Rating', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'ESG Rating', 'col': 'ESG Rating', 'agg': 'uniq', 'ag-grid': true, width: 150},\n {'display': 'is ESG in IC Memo', 'col': 'is ESG in IC Memo', 'agg': 'uniq', 'ag-grid': true, width: 150},\n ]};\n}\n\nexport const creditMetricBalService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 150\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' , width: 100}, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'ID', 'col': 'deal_risk_commentary_id', 'ag-grid': true, width: 130, hide: true }, \n {'display': 'Date', 'col': 'report_date', 'agg': 'uniq', 'ag-grid': true, width: 130, 'format': 'dateFormat', sort: 'desc' }, \n {'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, minWidth: 190 },\n {'display': 'Added By', 'col': 'addedBy', 'agg': 'uniq', 'ag-grid': true, autoWidth:true }, \n {'display': 'Comment', 'col': 'comment', cellEditor: 'numericEditor', 'ag-grid': true, autoHeight:true, wrapText: true, flex: 1,\n cellRenderer: function(params) { \n return params.value;\n }\n },\n {'display': 'Edit', 'ag-grid': true, width : 100}\n ]};\n}\n\nexport const assetCommentaryBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n addComment,\n getComment,\n generateReport\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'deal',\n minWidth: 100,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/get/riskCommentary`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction generateReport(body) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n return fetch(`${config.apiDDSUrl}/generate/riskCommentary`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction addComment(deal, body) {\n const requestOptions = { method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n return fetch(`${config.apiDDSUrl}/riskCommentary/add/deal=${deal}`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getComment(body) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(body) };\n return fetch(`${config.apiDDSUrl}/get/riskCommentary`, requestOptions).then(Utils.handleResponse);\n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Date', 'col': 'reportDate','ag-grid': true, maxWidth: 200, editable: true, cellEditor: 'datePicker' },\n {displayIndex: 2, 'display': 'Notes', 'col': 'notes', 'ag-grid': true, autoHeight:true, editable: true , cellEditor: 'agLargeTextCellEditor', cellEditorParams: {maxLength: 5000000, width:500 }},\n {displayIndex: 3, 'display': 'Is Reviewed', 'col': 'isReviewed', 'ag-grid': true, width : 120, type: 'rightAligned', cellClass: 'rag-green', cellRenderer: \"checkboxRenderer\" }, \n {displayIndex: 4, 'display': 'Is Processed', 'col': 'isProcessed', 'ag-grid': true, maxWidth: 150, editable: true },\n {displayIndex: 5, 'display': 'Entered By', 'col': 'enteredBy', 'ag-grid': true, width: 150 },\n {displayIndex: 6, 'display': 'Notes Type', 'col': 'notesType', 'ag-grid': true, width: 150 } \n ]};\n}\n\nexport const assetCommentaryReviewBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'deal',\n minWidth: 100,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/emailNotes/getAll`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(rows) {\n rows = rows.map(row => {\n return Utils.removeBlanksNotZero(row);\n });\n return fetch(`${config.apiDDSUrl}/addEmailNotes`, { body: JSON.stringify(rows), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n","\nconst cellClassRules = {\n \"cell-red\": params => params.data && params.data['cellcss'] === 'cell-red',\n \"cell-green\": params => params.data && params.data['cellcss'] === 'cell-green',\n \"cell-blue\": params => params.data && params.data['cellcss'] === 'cell-blue',\n \"cell-normal\": params => params.data === undefined || params.data['cellcss'] === 'cell-normal'\n };\n \nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 0, 'display': 'Id', 'col': 'position_id', 'agg': 'uniq', 'ag-grid': true, hide:true, },\n {displayIndex: 1, 'display': 'Fund', 'col': 'Fund', 'agg': 'uniq', 'ag-grid': true, width : 150, hide:true },\n {displayIndex: 2, 'display': 'Deal', 'col': 'Deal', 'agg': 'uniq', 'ag-grid': true, width : 200, hide:true},\n {displayIndex: 3, 'display': 'Description', 'col': 'Description', 'agg': 'uniq', 'ag-grid': true, width : 150 }, \n {displayIndex: 4, 'display': 'Product Type', 'col': 'Product Type', 'agg': 'uniq', 'ag-grid': true, width : 150 },\n\n {displayIndex: 6, 'display': 'Position.Quantity', 'col': 'Current Quantity', 'agg': 'uniq', 'ag-grid': true, 'format': 'millionsFormat2M', width : 110, type: 'rightAligned'}, \n {displayIndex: 7, 'display': 'Position.$FV', 'col': 'Entry Cost', 'agg': 'sum', 'ag-grid': true, width : 110, 'format': 'millionsFormat2M' }, \n {displayIndex: 8, 'display': 'Position.Curr', 'col': 'Curr', 'agg': 'uniq', 'ag-grid': true, 'format': 'decimal2', width : 80, type: 'rightAligned'}, \n {displayIndex: 9, 'display': 'Position.$MV', 'col': 'MV', 'agg': 'sum', 'ag-grid': true, width : 110, 'format': 'millionsFormat2M' }, \n\n {displayIndex: 10, 'display': 'Price.TOR Mark', 'col': 'Prev Price', 'agg': 'uniq', 'ag-grid': true, width : 110, 'format': 'decimalFormat2' }, \n {displayIndex: 11, 'display': 'Price.Mark Change', 'col': 'change', 'format': 'decimalFormat2', 'ag-grid': true, width : 120 \n , valueGetter : params => {\n if(params.data) {\n let col1 = Object.keys(params.data).filter(p => p.startsWith(\"Current Price\"));\n let col2 = Object.keys(params.data).filter(p => p.startsWith(\"Prev Price\"));\n if(col1 && col2 && params.data[col1] && params.data[col2] && params.data[col1] !== 0 && params.data[col2] !== 0 && params.data[col1] !== params.data[col2]) {\n return (params.data[col1] - params.data[col2]).toFixed(2);\n } else if(col1 && col2 && (params.data[col1] === 0 || params.data[col2] === 0)) {\n return (params.data[col1] - params.data[col2]).toFixed(2);\n }\n }\n return (0).toFixed(2);\n }\n },\n {displayIndex: 12, 'display': 'Price.BBG Mark', 'col': 'Current Price', 'agg': 'uniq', 'ag-grid': true, width : 110, 'format': 'decimalFormat2', cellClassRules: cellClassRules},\n\n {displayIndex: 13, 'display': 'Daily P&L.Total', 'col': 'DOD Total', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' },\n {displayIndex: 14, 'display': 'Daily P&L.Price', 'col': 'DOD Price', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' }, \n {displayIndex: 15, 'display': 'Daily P&L.FX', 'col': 'DOD FX', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' }, \n {displayIndex: 16, 'display': 'Daily P&L.Interest', 'col': 'DOD Interest', 'agg': 'sum', 'ag-grid': true, width : 130, 'format': 'decimalFormat0' }, \n {displayIndex: 17, 'display': 'Daily P&L.Other', 'col': 'DOD Other', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' },\n {displayIndex: 18, 'display': 'Daily P&L.BBG', 'col': 'DOD Position P&L', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' }, \n\n {displayIndex: 19, 'display': 'MTD P&L.Total', 'col': 'MTD Total', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' },\n {displayIndex: 20, 'display': 'MTD P&L.Price', 'col': 'MTD Price', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' }, \n {displayIndex: 21, 'display': 'MTD P&L.FX', 'col': 'MTD FX', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' }, \n {displayIndex: 22, 'display': 'MTD P&L.Interest', 'col': 'MTD Interest', 'agg': 'sum', 'ag-grid': true, width : 130, 'format': 'decimalFormat0' }, \n {displayIndex: 23, 'display': 'MTD P&L.Other', 'col': 'MTD Other', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' },\n {displayIndex: 24, 'display': 'MTD P&L.BBG', 'col': 'Position P&L', 'agg': 'sum', 'ag-grid': true, width : 120, 'format': 'decimalFormat0' }, \n\n {displayIndex: 30, 'display': 'Classification.Country', 'col': 'Country', 'agg': 'uniq', 'ag-grid': true, width : 160 },\n {displayIndex: 31, 'display': 'Classification.Credit Sub-Strategy', 'col': 'Credit Sub-Strategy', 'agg': 'uniq', 'ag-grid': true, width : 180 },\n {displayIndex: 32, 'display': 'Classification.Sector', 'col': 'Sector', 'agg': 'uniq', 'ag-grid': true, width : 150 },\n {displayIndex: 33, 'display': 'Classification.Book', 'col': 'Book', 'agg': 'uniq', 'ag-grid': true, hide:true, width : 90 },\n {displayIndex: 34, 'display': 'cellcss', 'col': 'cellcss', 'ag-grid': true, hide:true, width : 150 },\n // {displayIndex: 31, 'display': 'Trade P&L', 'col': 'Trade P&L', 'agg': 'sum', 'ag-grid': true, width : 150, 'format': 'decimalFormat2' }, \n ]};\n}\n\nexport const pnlBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: '',\n resizable: true,\n width: 200,\n pinned: 'left'\n };\n}\n\nfunction getRowData(params) { \n\n}\n\nfunction save(instrumentMarks, isSendForApproval, date, fund) { \n \n}","const getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 120, maxWidth : 140, 'rowGroup': true},\n {displayIndex: 2, 'display': 'Total', 'col': 'mtd pnl total', 'agg': 'sum', 'ag-grid': true, minWidth : 120, maxWidth : 140, 'format': 'decimalFormat0', sort: 'desc' } \n ]};\n}\n\nexport const topMTDpnlBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: '',\n resizable: true,\n width: 250,\n pinned: 'left'\n };\n}\n\nfunction getRowData(params) { \n\n}\n\nfunction save(instrumentMarks, isSendForApproval, date, fund) { \n \n}","const getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 120, maxWidth : 140, 'rowGroup': true},\n {displayIndex: 2, 'display': 'Total', 'col': 'mtd pnl total', 'agg': 'sum', 'ag-grid': true, minWidth : 120, maxWidth : 140, 'format': 'decimalFormat0', sort: 'asc' } \n ]};\n}\n\nexport const bottomMTDpnlBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: '',\n resizable: true,\n width: 250,\n pinned: 'left'\n };\n}\n\nfunction getRowData(params) { \n\n}\n\nfunction save(instrumentMarks, isSendForApproval, date, fund) { \n \n}","const getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 120, maxWidth : 140, 'rowGroup': true},\n {displayIndex: 2, 'display': 'Total', 'col': 'pnl total', 'agg': 'sum', 'ag-grid': true, minWidth : 120, maxWidth : 140, 'format': 'decimalFormat0', sort: 'desc' } \n ]};\n}\n\nexport const topDODpnlBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: '',\n resizable: true,\n width: 250,\n pinned: 'left'\n };\n}\n\nfunction getRowData(params) { \n\n}\n\nfunction save(instrumentMarks, isSendForApproval, date, fund) { \n \n}","const getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, minWidth : 120, maxWidth : 140, 'rowGroup': true},\n {displayIndex: 2, 'display': 'Total', 'col': 'pnl total', 'agg': 'sum', 'ag-grid': true, minWidth : 120, maxWidth : 140, 'format': 'decimalFormat0', sort: 'asc' } \n ]};\n}\n\nexport const bottomDODpnlBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: '',\n resizable: true,\n width: 250,\n pinned: 'left'\n };\n}\n\nfunction getRowData(params) { \n\n}\n\nfunction save(instrumentMarks, isSendForApproval, date, fund) { \n \n}","import { userBALService } from './user.bal';\nimport { Utils } from '../helper/utils';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Address', 'col': 'address', 'ag-grid': true, width: 1000, editable: true},\n {'display': 'Start Date', 'col': 'dateStart','ag-grid': true, maxWidth: 200, editable: true, cellEditor: 'datePicker' },\n {'display': 'End Date', 'col': 'dateEnd', 'ag-grid': true, maxWidth: 200, editable: true, cellEditor: 'datePicker'},\n /*{'display': 'Currency', 'col': 'currency', 'ag-grid': true, maxWidth: 120, editable: true, cellEditor: 'agRichSelectCellEditor',\n cellEditorParams: {\n cellHeight: 50,\n values: ['HKD','SGD','USD'],\n }\n },*/\n {'display': 'Amount(HKD)', 'col': 'amount', 'ag-grid': true, 'agg': 'sum', width: 200, editable: true, 'format': 'decimalFormat2', cellEditor: 'numericEditor'},\n {'display': 'Remove', 'col': 'amount', 'ag-grid': true, width: 40, editable: false, cellRenderer: 'removeButton'} \n ]};\n}\n\nexport const housingBALService = {\n getPositions\n ,getColumnList \n ,getRowData\n ,getAutoGroupColumnDef\n ,save\n ,saveFile\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 150\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' , width: 100}, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(housingRows) {\n housingRows = housingRows.map(housingRow => {\n return Utils.removeBlanksNotZero(housingRow);\n });\n return fetch(`${config.apiDDSUrl}/addHousingRows/`, { body: JSON.stringify(housingRows), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction saveFile(data) { \n return fetch(`${config.apiDDSUrl}/addHousingFile/`, { body: JSON.stringify(data), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}","import { userBALService } from './user.bal';\nimport { Utils } from '../helper/utils';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Id', 'col': 'name', 'ag-grid': true, hide:true, width: 50, editable: true},\n /*{'display': 'Currency', 'col': 'currency', 'ag-grid': true, maxWidth: 120, editable: true, cellEditor: 'agRichSelectCellEditor',\n cellEditorParams: {\n cellHeight: 50,\n values: ['HKD','SGD','USD'],\n }\n },*/\n {'display': 'Amount(HKD)', 'col': 'amount', 'ag-grid': true, 'agg': 'sum', width: 200, editable: true, 'format': 'decimalFormat2', cellEditor: 'numericEditor'},\n {'display': 'End Date', 'col': 'dateEnd', 'ag-grid': true, maxWidth: 200, editable: true, cellEditor: 'datePicker'},\n {'display': 'Start Date', 'col': 'dateStart','ag-grid': true, maxWidth: 200, editable: true, cellEditor: 'datePicker' },\n {'display': 'Address', 'col': 'address', 'ag-grid': true, width: 200, editable: true},\n {'display': 'Name', 'col': 'name', 'ag-grid': true, width: 200, editable: true},\n {'display': 'UserId', 'col': 'userId', 'ag-grid': true, hide:true, width: 50, editable: true},\n ]};\n}\n\nexport const housingSummaryBALService = {\n getPositions\n ,getColumnList \n ,getRowData\n ,getAutoGroupColumnDef\n ,save\n ,saveFile\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: ''\n ,field: 'description'\n ,width: 150\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' , width: 100}, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(housingRows) {\n housingRows = housingRows.map(housingRow => {\n return Utils.removeBlanksNotZero(housingRow);\n });\n return fetch(`${config.apiDDSUrl}/addHousingRows/`, { body: JSON.stringify(housingRows), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction saveFile(data) { \n return fetch(`${config.apiDDSUrl}/addHousingFile/`, { body: JSON.stringify(data), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}","import { userBALService } from './user.bal';\nimport { Utils } from '../helper/utils';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Id', 'col': 'user_log_id', 'ag-grid': true, width : 120},\n {'display': 'Date', 'col': 'date_time', 'agg': 'uniq', 'format': 'dateFormat', 'ag-grid': true, width : 250},\n {'display': 'User Id', 'col': 'user_id', 'ag-grid': true, width : 120},\n {'display': 'Path', 'col': 'path', 'ag-grid': true, width : 250},\n {'display': 'IP Address', 'col': 'ip_address', 'ag-grid': true, width : 180},\n {'display': 'Full name', 'col': 'full_name', 'ag-grid': true, width : 250},\n ]};\n};\n\nexport const userLogBALService = {\n getPositions\n ,getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'UserLog'\n ,field: 'description'\n ,width: 120\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n }; \n}\n\nfunction getRowData(query) {\n return getPositions(query);\n}\n\nfunction getPositions(query) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse);\n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'DealName', 'col': 'dealName','ag-grid': true, hide:true, rowGroup : true, rowGroupIndex: 1, width: 200 },\n {displayIndex: 2, 'display': 'Group1', 'col': 'group1', 'ag-grid': true, hide:true, rowGroup : true, rowGroupIndex: 2, width: 200, autoHeight:true },\n {displayIndex: 3, 'display': 'Group2', 'col': 'group2', 'ag-grid': true,hide: true, rowGroup : true, rowGroupIndex: 3, width: 400, autoHeight:true },\n {displayIndex: 4, 'display': 'Question', 'col': 'question', 'ag-grid': true, width: 1000, autoHeight:true },\n {displayIndex: 5, 'display': 'Answer', 'col': 'valueString', 'ag-grid': true, autoHeight:true },\n ]};\n}\n\nexport const dealLegalDetailsBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'deal',\n width: 600,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/dealDetails/getAll`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(rows) {\n rows = rows.map(row => {\n return Utils.removeBlanksNotZero(row);\n });\n return fetch(`${config.apiDDSUrl}/addDealDetails`, { body: JSON.stringify(rows), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n","import * as moment from 'moment';\nimport { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\n\nconst dateFormatter = (params) => {\n\n return moment(params.value).utcOffset(0, false).format(params.dateFormat ?? 'YYYY-MM-DD hh:mm:ss');\n \n //return moment(params.value)?.format(params.dateFormat ?? 'YYYY-MM-DD');\n }\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Deal Pipeline Summary Id', 'col': 'dealPipeSummaryId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 2, 'display': 'Project Name', 'col': 'projectName','ag-grid': true, width: 200 },\n {displayIndex: 3, 'display': 'Analysts', 'col': 'analystNames','ag-grid': true, width: 300 },\n {displayIndex: 4, 'display': 'Asset Type', 'col': 'assetType', 'ag-grid': true, width: 160},\n {displayIndex: 5, 'display': 'Public/Private', 'col': 'publicPrivate', 'ag-grid': true, width: 150},\n {displayIndex: 6, 'display': 'Credit Ranking', 'col': 'creditRanking', 'ag-grid': true, width: 160},\n {displayIndex: 7, 'display': 'Status', 'col': 'status', 'ag-grid': true, width: 160},\n {displayIndex: 8, 'display': 'Expected Execution Date', 'col': 'expectedExecutionDate', 'ag-grid': true, width: 180},\n {displayIndex: 9, 'display': 'Country of Risk', 'col': 'countryOfRisk', 'ag-grid': true, width: 150},\n {displayIndex: 10, 'display': 'GICS Sector', 'col': 'gicsSector','ag-grid': true, width: 200 },\n {displayIndex: 11, 'display': 'Purchase/Issue Price', 'col': 'purchaseIssuePrice', 'ag-grid': true, width: 180},\n {displayIndex: 12, 'display': 'Cash Coupon', 'col': 'cashCoupon', 'ag-grid': true, width: 140},\n {displayIndex: 13, 'display': 'PIK Coupon', 'col': 'pikCoupon', 'ag-grid': true, width: 140},\n {displayIndex: 14, 'display': 'Equity Upside', 'col': 'equityUpside', 'ag-grid': true, width: 150},\n {displayIndex: 15, 'display': 'Expected Tenor (Years)', 'col': 'expectedTenor', 'ag-grid': true, width: 140},\n {displayIndex: 16, 'display': 'Expected TOR Size ($Millions)', 'col': 'expectedTorSize', 'ag-grid': true, width: 140},\n {displayIndex: 17, 'display': 'Total Deal Size($Millions)', 'col': 'totalDealSize', 'ag-grid': true, width: 140},\n {displayIndex: 18, 'display': 'Expected IRR (Unlevered)', 'col': 'expectedIRR', 'ag-grid': true, width: 200},\n {displayIndex: 19, 'display': 'Comment', 'col': 'comment', 'ag-grid': true, width: 400},\n {displayIndex: 20, 'display': 'Created Date', 'col': 'createdDate', cellRenderer: dateFormatter , 'ag-grid': true, width: 170},\n {displayIndex: 21, 'display': 'Created By', 'col': 'createdBy', 'ag-grid': true, width: 150},\n {displayIndex: 22, 'display': 'Last Updated Date', 'col': 'lastUpdatedDate', cellRenderer: dateFormatter, 'format': 'dateFormat', 'ag-grid': true, width: 170},\n {displayIndex: 23, 'display': 'Last Updated By', 'col': 'lastUpdatedBy', 'ag-grid': true, width: 150},\n {displayIndex: 24, 'display': 'Created By Id', hide:true, 'col': 'createdById', 'ag-grid': true, width: 200},\n {displayIndex: 25, 'display': 'Last Updated By Id', hide:true, 'col': 'LastUpdatedById', 'ag-grid': true, width: 200},\n ]};\n}\n\nexport const dealPipelineSummaryBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'deal',\n width: 600,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/dealPipeSummary/getAll`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(row) {\n /*if(!(row.dealPipeSummaryId > 0)) {\n row = Utils.removeBlanksNotZero(row);\n }*/\n return fetch(`${config.apiDDSUrl}/addDealPipeSummary`, { body: JSON.stringify(row), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n","import { userBALService } from './user.bal';\nimport { Utils } from '../helper/utils';\nconst {config} = require('../config');\nlet restrictionTypes = []\nlet exchanges = []\nconst getColumnList = async (params) => {\n const fetchData1 = restrictedListBALService.getAllRestrictionType().then(\n data => {\n restrictionTypes = data.filter(function (item) {\n return (item ? true : false);\n }).map(item => { return item.displayName });\n } ); \n const fetchData2 = restrictedListBALService.getAllExchangeMco().then(\n data => {\n exchanges = data.filter(function (item) {\n return (item ? true : false);\n }).sort((a, b) => a.code > b.code ? 1 : -1).map(item => { return item.code });\n } );\n \n await fetchData1;\n await fetchData2;\n \n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Restriction Type', 'col': 'restrictionType', cellEditor: 'agRichSelectCellEditor', cellEditorParams: { values: restrictionTypes}, editable: true, 'ag-grid': true, width : 160},\n {displayIndex: 2, 'display': 'Company Name', 'col': 'companyName', editable: true, cellEditor: 'agTextCellEditor', cellEditorParams: { maxLength: 128 }, 'ag-grid': true, width : 150},\n {displayIndex: 3, 'display': 'IsRestrictedAtIssuerLevel', 'col': 'isRestrictedAtIssuerLevel', cellRenderer: \"checkboxRenderer\", 'ag-grid': true, width : 220},\n {displayIndex: 4, 'display': 'Ticker', 'col': 'ticker', cellEditor: 'agTextCellEditor', cellEditorParams: { maxLength: 32 }, editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 5, 'display': 'ExchangeSymbol', 'col': 'exchangeSymbol', cellEditor: 'agRichSelectCellEditor', cellEditorParams: { values: exchanges, maxLength: 128 }, editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 6, 'display': 'ISIN', 'col': 'isin', cellEditor: 'agTextCellEditor', cellEditorParams: { maxLength: 12 }, editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 7, 'display': 'Cusip', 'col': 'cusip', cellEditor: 'agTextCellEditor', cellEditorParams: { maxLength: 9 }, editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 8, 'display': 'Sedol', 'col': 'sedol', cellEditor: 'agTextCellEditor', cellEditorParams: { maxLength: 7 }, editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 9, 'display': 'Groups', 'col': 'groups', cellEditor: 'agTextCellEditor', cellEditorParams: { maxLength: 256 }, editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 10, 'display': 'Users', 'col': 'users', cellEditor: 'agTextCellEditor', cellEditorParams: { maxLength: 256 }, editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 11, 'display': 'Description', 'col': 'description', cellEditor: 'agTextCellEditor', cellEditorParams: { maxLength: 300 }, editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 13, 'display': 'Date put on the list', 'col': 'addedDate', cellEditor: 'datePicker', editable: true, 'agg': 'uniq', 'ag-grid': true, width : 180},\n {displayIndex: 14, 'display': 'Proposed cleansing date', 'col': 'proposedRemovalDate', cellEditor: 'datePicker', editable: true, 'agg': 'uniq', 'ag-grid': true, width : 180},\n {displayIndex: 15, 'display': 'Last Private Info Communicated Date', cellEditor: 'datePicker', editable: true, 'col': 'lastPrivateInfoCommunicatedDate', 'agg': 'uniq', 'ag-grid': true, width : 180},\n {displayIndex: 16, 'display': 'Restricted List Name', 'col': 'restrictedListName', editable: true, 'ag-grid': true, width : 250},\n {displayIndex: 17, 'display': 'Last Modified By User Id', 'col': 'lastModifiedByUserId', 'ag-grid': true, width : 250},\n {displayIndex: 18, 'display': 'Last Modified By User Name', 'col': 'lastModifiedByName', 'ag-grid': true, width : 250},\n {displayIndex: 19, 'display': 'Last Modified By IPAddress', 'col': 'lastModifiedByIPAddress', 'ag-grid': true, width : 250},\n {displayIndex: 20, 'display': 'RestrictionTypeId', 'col': 'restrictionTypeId', 'ag-grid': true, width : 250},\n {displayIndex: 20, 'display': 'ExchangeMcoId', 'col': 'ExchangeMcoId', 'ag-grid': true, width : 250},\n {displayIndex: 21, 'display': 'Id', 'col': 'restrictedListId', 'ag-grid': true, width : 120},\n {displayIndex: 22, 'display': 'Remove', valueGetter : params => {\n return \"Delete\";\n }, colId: 'delete', 'ag-grid': true, cellClass: 'linkButton', width: 100, editable: false } \n ]};\n};\n\nexport const restrictedListBALService = {\n getColumnList\n ,getRowData\n ,getAutoGroupColumnDef\n ,getAllRestrictionType\n ,getAllExchangeMco\n ,save\n ,remove\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'RestrictedList'\n ,field: 'description'\n ,width: 120\n ,pinned: 'left'\n ,resizable: true\n ,cellRendererParams: { suppressCount: true } \n };\n}\n\nfunction getRowData(query) { \n const requestOptions = { method: 'GET', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/getAllRestrictedList`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(restrictedList) {\n const body = JSON.stringify(restrictedList);\n return fetch(`${config.apiDDSUrl}/add/restrictedList/`, { body: body, method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction remove(idsToDelete) { \n return fetch(`${config.apiDDSUrl}/remove/restrictedList/`, { body: JSON.stringify({'idsToDelete' : idsToDelete}), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction getAllRestrictionType(query) { \n const requestOptions = { method: 'GET', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/getAllRestrictionType`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAllExchangeMco(query) { \n const requestOptions = { method: 'GET', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } };\n return fetch(`${config.apiDDSUrl}/getAllExchangeMco`, requestOptions).then(Utils.handleResponse);\n}","import { userBALService } from './user.bal';\nimport { Utils } from '../helper/utils';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {'display': 'Id', 'col': 'id', 'ag-grid': true, hide:true },\n {'display': 'Project Name', 'col': 'projectName', 'ag-grid': true, minWidth : 230 },\n {'display': 'Co Investor Name', 'col': 'coInvestorName', 'ag-grid': true, minWidth : 230 },\n {'display': 'Status', 'col': 'status', 'ag-grid': true, minWidth : 230 },\n {'display': 'Analyst 1 Name', 'col': 'analyst1Name', 'ag-grid': true, minWidth : 230 },\n {'display': 'Enter By', 'col': 'enteredBy', 'ag-grid': true, minWidth : 230 },\n {'display': 'Introduction Date', 'col': 'introductionDate', 'ag-grid': true, 'format': 'datetime', minWidth : 120}, \n {'display': 'Closing Date', 'col': 'closingDate', 'ag-grid': true, 'format': 'datetime', minWidth : 120}, \n {'display': 'Currency', 'col': 'currency', 'ag-grid': true, width : 120 },\n {'display': 'Deal Size', 'col': 'dealSize', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, minWidth : 60 },\n {'display': 'Upfront fee %', 'col': 'upfrontFee', 'ag-grid': true, 'format': 'decimalFormat2', minWidth : 120}, \n {'display': 'Management fee %', 'col': 'managementFee', 'ag-grid': true, 'format': 'decimalFormat2', minWidth : 120}, \n {'display': 'Carry Hurdle %', 'col': 'carryHurdle', 'ag-grid': true, 'format': 'decimalFormat2', minWidth : 120}, \n {'display': 'Carry Participation %', 'col': 'carryParticipation', 'ag-grid': true, 'format': 'decimalFormat2', minWidth : 120}, \n {'display': 'Comment', 'col': 'comment', 'ag-grid': true, minWidth : 230 },\n ]};\n}\n\nexport const coInvestmentBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n getStatusList,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'status',\n minWidth: 100,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/allDealCoinvestment`, requestOptions).then(Utils.handleResponse).then(data => {\n return data;\n });\n}\n\nfunction getStatusList(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/allDealCoStatus`, requestOptions).then(Utils.handleResponse).then(data => {\n return data;\n });\n}\n\nfunction save(params) {\n params = Utils.removeBlanksNotZero(params);\n delete params['file']; \n delete params['Status']; \n delete params['analyst1Name']; \n delete params['addedDate']; \n delete params['enteredBy']; \n delete params['updatedDate']; \n\n return fetch(`${config.apiDDSUrl}/addDealCoinvestment`, { body: JSON.stringify(params), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\n","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nimport * as moment from 'moment';\nimport { Session } from '../helper/session';\n\n\nconst {config} = require('../config');\n\nconst dateFormatter = (params) => {\n\n return moment(params.value).utcOffset(0, false).format(params.dateFormat ?? 'YYYY-MM-DD');\n\n //return moment(params.value)?.format(params.dateFormat ?? 'YYYY-MM-DD');\n}\nconst getColumnList = async (params) => {\n const user = JSON.parse(Session.getItem(config.token)); \n const approverRole = user.userRoles.filter(function (item) { return item === \"CovenantApprover\" });\n const isApprover = approverRole.length > 0;\n\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Deal', 'col': 'deal','ag-grid': true, showDisabledCheckboxes: true, minWidth: 200, cellRenderer: 'agGroupCellRenderer', sortable: true, filter: 'agSetColumnFilter', headerCheckboxSelection: isApprover, headerCheckboxSelectionFilteredOnly: isApprover, checkboxSelection: isApprover },\n {displayIndex: 2, 'display': 'Loan', 'col': 'loan', 'ag-grid': true, minWidth: 450, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 2, 'display': 'Type', 'col': 'type', 'ag-grid': true, minWidth: 200, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 3, 'display': 'Category', 'col': 'category', 'ag-grid': true, minWidth: 200, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 4, 'display': 'Frequency', 'col': 'frequency', 'ag-grid': true, minWidth: 200, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 5, 'display': 'Start Date', 'col': 'startDate', 'ag-grid': true, minWidth: 110, autoHeight:true, cellRenderer: dateFormatter, sortable: true, filter: 'agSetColumnFilter'},\n {displayIndex: 6, 'display': 'End Date', 'col': 'endDate', 'ag-grid': true, minWidth: 110, autoHeight:true, sortable: true, cellRenderer: dateFormatter, filter: 'agSetColumnFilter'},\n {displayIndex: 7, 'display': 'Days Due', 'col': 'daysDue', 'ag-grid': true, minWidth: 110, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 8, 'display': 'comment', 'col': 'comment', 'ag-grid': true, minWidth: 800, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 9, 'display': 'Last Updated', 'col': 'updatedDate', 'ag-grid': true, minWidth: 200, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 10, 'display': 'Added By', 'col': 'addedBy', 'ag-grid': true, minWidth: 200, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 11, 'display': 'Is Approved', 'col': 'approved', 'ag-grid': true, minWidth: 200, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 12, 'display': 'Approved By', 'col': 'Approval Date', 'ag-grid': true, minWidth: 200, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 13, 'display': 'Approved On', 'col': 'Approval Date', 'ag-grid': true, minWidth: 200, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n ]\n };\n}\n\nconst getDetailCellRendererParams = (params) => {\n return {\n detailGridOptions: {\n rowSelection: 'multiple',\n suppressRowClickSelection: true,\n enableRangeSelection: true,\n domLayout: \"normal\",\n //pagination: true,\n //paginationAutoPageSize: true,\n columnDefs: [\n { headerName: 'Until', field: 'endDate', maxWidth: 120, cellRenderer: dateFormatter, cellRendererParams: { dateFormat: 'YYYY-MM-DD' } },\n { headerName: 'Operator', field: 'operator', maxWidth: 120 , wrapText: true, autoHeight: true},\n { headerName: 'Value', field: 'value1', maxWidth: 120 , wrapText: true, autoHeight: true},\n { headerName: '', field: '', minWidth: 50 , wrapText: true, autoHeight: true},\n ],\n //rowHeight: \"auto\",\n getRowHeight: params => {\n return params.data.rowHeight ?? \"auto\";\n },\n defaultColDef: {\n sortable: true,\n flex: 1,\n }, \n },\n \n // get the rows for each Detail Grid\n getDetailRowData: params => {\n params.successCallback(params.data.targets);\n }\n } \n }\nexport const covenantMasterBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save,\n getAllCovenantFrequency,\n getAllCovenantCategory,\n getAllCovenantStatus,\n getAllCovenantType,\n getDetailCellRendererParams,\n approve\n};\n\nfunction getAutoGroupColumnDef(params) {\n return { \n };\n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantMasterView`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAllCovenantFrequency(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantFrequency`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAllCovenantCategory(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantCategory`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAllCovenantStatus(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantStatus`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAllCovenantType(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantType`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(covenantMaster) {\n covenantMaster = Utils.removeBlanksNotZero(covenantMaster); \n return fetch(`${config.apiDDSUrl}/addCovenantMaster`, { body: JSON.stringify(covenantMaster), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n} \n\nfunction approve(covenantMasters) {\n const promises = covenantMasters.map((covenantMaster) => { \n var a = fetch(`${config.apiDDSUrl}/addApproval/id=${covenantMaster.id}/type=CovenantMaster/action=approved`, { body: JSON.stringify(covenantMaster), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return handleResponseApprove(data, covenantMaster) });\n return a;\n });\n return promises;\n}\n\nfunction handleResponseApprove(response, covenantMaster) {\n return response.text().then(text => {\n const data = text && JSON.parse(text);\n if (!response.ok || (data && data.error_message)) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n //logout();\n //this.location.reload(true);\n }\n\n const error = (data && data.error_message) || (data && data.message) || response.statusText;\n return {error : `${covenantMaster.covenantMasterId} : ${error}`};\n }\n return data;\n });\n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nimport { covenantMasterBALService } from './covenantMaster.bal';\nimport * as moment from 'moment';\nconst {config} = require('../config');\nclass CustomSelectCellRenderer {\n eGui;\n \n init(params) {\n this.eGui = document.createElement('div');\n const value = params?.value?.name;\n this.eGui.innerHTML = `${value ?? \"\"}`;\n }\n \n getGui() {\n return this.eGui;\n }\n \n refresh(params) {\n return false;\n }\n}\n\n\nconst dateFormatter = (params) => {\n\n return moment(params.value).utcOffset(0, false).format(params.dateFormat ?? 'YYYY-MM-DD');\n\n //return moment(params.value)?.format(params.dateFormat ?? 'YYYY-MM-DD');\n}\n\nconst getColumnList = async (params) => { \n var covenantStatusValueList= [];\n const result1 = covenantMasterBALService.getAllCovenantStatus().then(data=> { \n\n covenantStatusValueList = data.filter(function (item) {\n return (item ? true : false);\n }).map(item => { return { name:item.name, code : item.id } }); \n \n }\n );\n\n await Promise.all([result1]);\n\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Deal', 'col': 'deal','ag-grid': true, minWidth: 200 , cellRenderer: 'agGroupCellRenderer', filter: 'agSetColumnFilter' },\n {displayIndex: 2, 'display': 'Loan', 'col': 'loan', 'ag-grid': true, minWidth: 300, autoHeight:true, sortable: true, filter: 'agSetColumnFilter' },\n {displayIndex: 2, 'display': 'Type', 'col': 'type', 'ag-grid': true, minWidth: 180, autoHeight:true, filter: 'agSetColumnFilter' },\n {displayIndex: 3, 'display': 'Category', 'col': 'category', 'ag-grid': true, minWidth: 180, autoHeight:true, filter: 'agSetColumnFilter' },\n {displayIndex: 4, 'display': 'Frequency', 'col': 'frequency', 'ag-grid': true, minWidth: 100, autoHeight:true, filter: 'agSetColumnFilter' },\n {displayIndex: 5, 'display': 'Operator', 'col': 'operator', 'ag-grid': true, minWidth: 100, maxWidth: 100, autoHeight:true, filter: 'agSetColumnFilter' },\n {displayIndex: 6, 'display': 'Target', 'col': 'targetValue', 'ag-grid': true, minWidth: 100, maxWidth: 100, autoHeight:true, filter: 'agSetColumnFilter' },\n {displayIndex: 7, 'display': 'For Date', 'col': 'forDate', 'ag-grid': true, 'agg': 'uniq', minWidth: 110, autoHeight:true,\n cellRenderer: dateFormatter,\n filter: 'agSetColumnFilter',\n filterParams: {\n comparator: (a, b) => {\n const valA = a;\n const valB = b;\n if (valA === valB) return 0;\n return valA > valB ? 1 : -1;\n }\n }\n },\n {displayIndex: 8, 'display': 'Due Date', 'col': 'dueDate', 'ag-grid': true, 'agg': 'uniq', minWidth: 110, autoHeight:true,\n cellRenderer: dateFormatter,\n filter: 'agSetColumnFilter',\n filterParams: {\n comparator: (a, b) => {\n const valA = a;\n const valB = b;\n if (valA === valB) return 0;\n return valA > valB ? 1 : -1;\n }\n }\n },\n {displayIndex: 9, 'display': 'Value', 'col': 'valueNew1', 'ag-grid': true, minWidth: 100, maxWidth: 150, autoHeight:true, editable: true , filter: 'agSetColumnFilter'},\n {displayIndex: 10, 'display': 'Status', 'col': 'statusObject', 'ag-grid': true, minWidth: 100, maxWidth: 100, editable: true, filter: 'agSetColumnFilter', \n cellEditor:'agRichSelectCellEditor', autoHeight:true,\n cellRenderer: CustomSelectCellRenderer,\n cellEditorParams: { cellRenderer: CustomSelectCellRenderer, values: covenantStatusValueList },\n keyCreator: (params) => { return params.value.name; },\n }, \n {displayIndex: 11, 'display': 'Attachments', 'col': 'attachments', 'ag-grid': true, minWidth: 500, autoHeight:true, editable: true,\n suppressKeyboardEvent: (params) => {\n return false;\n },\n cellEditor: 'fileAttachmentEditor', cellEditorPopup: true, cellEditorParams: {\n maxLength: '5300', // override the editor defaults\n cols: '2000',\n rows: '100',\n },\n cellRenderer: function(params) {\n return \"\";\n //return params?.value ? params.value?.files.length : \"\" ;\n }\n },\n {displayIndex: 12, 'display': 'Comment', 'col': 'commentNew', 'ag-grid': true, minWidth: 1500, autoHeight:true, editable: true, filter: 'agSetColumnFilter',\n suppressKeyboardEvent: (params) => {\n return suppressEnter(params) || suppressNavigation(params);\n },\n cellEditor: 'richTextEditor', cellEditorPopup: true, cellEditorParams: {\n maxLength: '5300', // override the editor defaults\n cols: '2000',\n rows: '100',\n },\n cellRenderer: function(params) {\n return params.value ? params.value : '';\n }\n },\n {displayIndex: 13, 'display': 'Id', 'col': 'id', 'ag-grid': true, hide: true, minWidth: 200 , filter: 'agSetColumnFilter' },\n\n ]};\n}\n\nconst getDetailCellRendererParams = (params) => {\n return {\n detailGridOptions: {\n rowSelection: 'multiple',\n suppressRowClickSelection: true,\n enableRangeSelection: true,\n domLayout: \"normal\",\n //pagination: true,\n //paginationAutoPageSize: true,\n columnDefs: [\n { field: 'addedBy', minWidth: 150, maxWidth:300, wrapText: true, autoHeight: true },\n { field: 'on', minWidth: 150, maxWidth:180, wrapText: true, autoHeight: true, cellRenderer: dateFormatter, cellRendererParams: { dateFormat: 'YYYY-MM-DD HH:mm:ss' } },\n { field: 'comment', minWidth: 800, autoHeight: true,\n cellRenderer: function(params) {\n return params.value ? params.value : '';\n } \n },\n { field: '', minWidth: 50, autoHeight: true },\n ],\n //rowHeight: \"auto\",\n getRowHeight: params => {\n return params.data.rowHeight ?? \"auto\";\n },\n defaultColDef: {\n sortable: true,\n flex: 1,\n }, \n },\n \n // get the rows for each Detail Grid\n getDetailRowData: params => {\n params.successCallback(params.data.comments);\n }\n } \n}\n\nexport const covenantInstanceBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save,\n getAll,\n saveComment,\n getDetailCellRendererParams,\n getAllComments,\n getRowDataBy\n};\nfunction suppressEnter(params) {\n var KEY_ENTER = 'Enter';\n\n var event = params.event;\n var key = event.key;\n var suppress = key === KEY_ENTER;\n\n return suppress;\n}\n\nfunction suppressNavigation(params) {\n var KEY_A = 'A';\n var KEY_C = 'C';\n var KEY_V = 'V';\n var KEY_D = 'D';\n\n var KEY_PAGE_UP = 'PageUp';\n var KEY_PAGE_DOWN = 'PageDown';\n var KEY_TAB = 'Tab';\n var KEY_LEFT = 'ArrowLeft';\n var KEY_UP = 'ArrowUp';\n var KEY_RIGHT = 'ArrowRight';\n var KEY_DOWN = 'ArrowDown';\n var KEY_F2 = 'F2';\n var KEY_BACKSPACE = 'Backspace';\n var KEY_ESCAPE = 'Escape';\n var KEY_SPACE = ' ';\n var KEY_DELETE = 'Delete';\n var KEY_PAGE_HOME = 'Home';\n var KEY_PAGE_END = 'End';\n\n var event = params.event;\n var key = event.key;\n\n var keysToSuppress = [\n KEY_PAGE_UP,\n KEY_PAGE_DOWN,\n KEY_TAB,\n KEY_F2,\n KEY_ESCAPE,\n ];\n\n var editingKeys = [\n KEY_LEFT,\n KEY_RIGHT,\n KEY_UP,\n KEY_DOWN,\n KEY_BACKSPACE,\n KEY_DELETE,\n KEY_SPACE,\n KEY_PAGE_HOME,\n KEY_PAGE_END,\n ];\n\n if (event.ctrlKey || event.metaKey) {\n keysToSuppress.push(KEY_A);\n keysToSuppress.push(KEY_V);\n keysToSuppress.push(KEY_C);\n keysToSuppress.push(KEY_D);\n }\n\n if (!params.editing) {\n keysToSuppress = keysToSuppress.concat(editingKeys);\n }\n\n if (\n params.column.getId() === 'country' &&\n (key === KEY_UP || key === KEY_DOWN)\n ) {\n return false;\n }\n\n var suppress = keysToSuppress.some(function (suppressedKey) {\n return suppressedKey === key || key.toUpperCase() === suppressedKey;\n });\n\n return suppress;\n}\n\nfunction getAutoGroupColumnDef(params) {\n return { \n pinned: 'left',\n resizable: true\n };\n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllPendingCovenantInstanceView`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getRowDataBy(selectedOption) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n\n return fetch(`${config.apiDDSUrl}/get${selectedOption}CovenantInstanceView`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAll(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantInstanceView`, requestOptions).then(Utils.handleResponse);\n} \n\nfunction getAllComments(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantInstanceCommentView`, requestOptions).then(Utils.handleResponse);\n} \n\nfunction save(covenantInstanceRows) {\n covenantInstanceRows = covenantInstanceRows.map(covenantInstanceRow => {\n return Utils.removeBlanksNotZero(covenantInstanceRow);\n });\n return fetch(`${config.apiDDSUrl}/updateCovenantInstanceRows/`, { body: JSON.stringify(covenantInstanceRows), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction saveComment(covenantInstanceCommentRows) {\n covenantInstanceCommentRows = covenantInstanceCommentRows.map(covenantInstanceCommentRow => {\n return Utils.removeBlanksNotZero(covenantInstanceCommentRow);\n });\n return fetch(`${config.apiDDSUrl}/addCovenantInstanceCommentRows/`, { body: JSON.stringify(covenantInstanceCommentRows), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nimport moment from 'moment';\nconst {config} = require('../config');\n\nconst getColumnList = async (params) => {\n function dateFormatter(params) {\n return moment(params.value).format('MM/DD/YYYY');\n }\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Until(mm/dd/yyyy)', 'col': 'endDate', 'ag-grid': true, maxWidth: 200, editable: true, cellEditor: 'datePicker',\n valueFormatter: dateFormatter, filter: 'agSetColumnFilter'\n },\n {displayIndex: 2, 'display': 'Operator', 'col': 'operator', 'ag-grid': true, width: 200, autoHeight:true, editable: true,\n cellEditor: 'agSelectCellEditor',\n cellEditorParams: {\n values: ['=', '>', '>=', '<', '<='],\n valueListGap: 0\n }, filter: 'agSetColumnFilter'\n },\n {displayIndex: 3, 'display': 'Target', 'col': 'value1', 'ag-grid': true, width: 400, autoHeight:true, editable: true, filter: 'agSetColumnFilter' }, \n {displayIndex: 4, 'display': 'Remove', 'col': 'amount', 'ag-grid': true, width: 40, editable: false, cellRenderer: 'removeButton', filter: 'agSetColumnFilter'} \n ]};\n}\n\nexport const covenantTargetBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save,\n getAllCovenantTargetOperator\n};\n\nfunction getAutoGroupColumnDef(params) {\n return { \n width: 600,\n pinned: 'left',\n };\n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantTarget`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getAllCovenantTargetOperator(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getAllCovenantTargetOperator`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(covenantTargetRows) {\n covenantTargetRows = covenantTargetRows.map(covenantTargetRow => {\n return Utils.removeBlanksNotZero(covenantTargetRow);\n }); \n covenantTargetRows = covenantTargetRows.map(covenantTargetRow => {\n return Utils.removeNegative(covenantTargetRow, 'id');\n }); \n return fetch(`${config.apiDDSUrl}/addCovenantTargetRows`, { body: JSON.stringify(covenantTargetRows), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n","\n// const cellClassRules = {\n// \"cell-red\": params => params.data && params.data['cellcss'] === 'cell-red',\n// \"cell-green\": params => params.data && params.data['cellcss'] === 'cell-green',\n// \"cell-blue\": params => params.data && params.data['cellcss'] === 'cell-blue',\n// \"cell-normal\": params => params.data === undefined || params.data['cellcss'] === 'cell-normal'\n// };\n\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 0, 'display': 'position_id', 'col': 'position_id', 'agg': 'uniq', 'ag-grid': true, hide: true },\n {displayIndex: 1, 'display': 'Deal', 'col': 'deal', 'agg': 'uniq', 'ag-grid': true, width : 150, sort: 'asc' },\n {displayIndex: 2, 'display': 'Description', 'col': 'description', 'agg': 'uniq', 'ag-grid': true, width : 250 },\n {displayIndex: 3, 'display': 'Fund', 'col': 'fund', 'agg': 'uniq', 'ag-grid': true, width : 120, hide: true },\n {displayIndex: 3, 'display': 'Root', 'col': 'root', 'agg': 'uniq', 'ag-grid': true, width : 120, hide: true },\n\n {displayIndex: 10, 'display': 'Terms.Coupon', 'col': 'coupon', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 100 },\n {displayIndex: 11, 'display': 'Terms.Maturity Date', 'col': 'maturity_date', 'format': 'dateFormat', 'agg': 'uniq', 'ag-grid': true, width : 140 },\n\n {displayIndex: 20, 'display': 'Position.Quantity', 'col': 'quantity', 'agg': 'uniq', 'format': 'millionsFormat2M', 'ag-grid': true, width : 120 },\n {displayIndex: 21, 'display': 'Position.$MV', 'col': '$mv', 'agg': 'sum', 'format': 'millionsFormat2M', 'ag-grid': true, width : 110 },\n {displayIndex: 22, 'display': 'Position.Currency', 'col': 'currency', 'agg': 'uniq', 'ag-grid': true, width : 110 },\n {displayIndex: 23, 'display': 'Position.Avg Cost', 'col': 'avg_cost', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 120 },\n\n // {displayIndex: 30, 'display': 'Price.Curr', 'cols': ['price_current', 'quantity'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n // {displayIndex: 31, 'display': 'Price.Prev', 'cols': ['price_previous', 'quantity'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n // {displayIndex: 32, 'display': 'Price.Chg', 'cols': ['price change', 'quantity'], 'agg': 'wAvg', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n\n {displayIndex: 30, 'display': 'Price.Curr', 'col': 'price_current', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n {displayIndex: 31, 'display': 'Price.Prev', 'col': 'price_previous', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n {displayIndex: 32, 'display': 'Price.Chg', 'col': 'price change', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n\n {displayIndex: 40, 'display': 'Daily PnL.Position', 'col': 'pnl position', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 120 },\n {displayIndex: 41, 'display': 'Daily PnL.Accrual', 'col': 'pnl accrual', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 120 },\n {displayIndex: 42, 'display': 'Daily PnL.Total', 'col': 'pnl total', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 120 },\n\n {displayIndex: 45, 'display': 'MTD PnL.Position', 'col': 'mtd pnl position', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 120, hide: true },\n {displayIndex: 46, 'display': 'MTD PnL.Accrual', 'col': 'mtd pnl accrual', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 120, hide: true },\n {displayIndex: 47, 'display': 'MTD PnL.Total', 'col': 'mtd pnl total', 'agg': 'sum', 'format': 'decimalFormat0', 'ag-grid': true, width : 120, hide: true },\n\n {displayIndex: 50, 'display': 'Yield.Current', 'col': 'yield_current', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 100 },\n {displayIndex: 51, 'display': 'Yield.YTM', 'col': 'yield_ytm', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 100 },\n {displayIndex: 52, 'display': 'Yield.YTC', 'col': 'yield_ytc', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 100 },\n {displayIndex: 53, 'display': 'Yield.YTW', 'col': 'yield_ytw', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 100 },\n\n {displayIndex: 60, 'display': 'Spread.Z Sprd', 'col': 'z_spread', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 110 },\t\t \t\t\t\t\t\t\t\t\n {displayIndex: 61, 'display': 'Spread.OAS', 'col': 'oas', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 110 },\n {displayIndex: 62, 'display': 'Spread.I Sprd', 'col': 'i_spread', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 110 },\n\n {displayIndex: 70, 'display': 'Accrued.Curr', 'col': 'accrued_current', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n {displayIndex: 71, 'display': 'Accrued.Prev', 'col': 'accrued_previous', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n {displayIndex: 72, 'display': 'Accrued.Chg', 'col': 'accrued change', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n \n {displayIndex: 80, 'display': 'Classification.Country', 'col': 'country', 'agg': 'uniq', 'ag-grid': true, width : 150 },\n {displayIndex: 81, 'display': 'Classification.Sector', 'col': 'sector', 'agg': 'uniq', 'ag-grid': true, width : 150 },\n {displayIndex: 82, 'display': 'Classification.Product Type', 'col': 'product type', 'agg': 'uniq', 'ag-grid': true, width : 150 },\n\n {displayIndex: 90, 'display': 'Terms.Accruing?', 'col': 'accruing', 'agg': 'uniq', 'ag-grid': true, width : 110 }, \n {displayIndex: 91, 'display': 'Terms.Callable?', 'col': 'is_callable', 'agg': 'uniq', 'ag-grid': true, width : 110 },\n {displayIndex: 92, 'display': 'Terms.Next Cpn Date', 'col': 'coupon_date', 'format': 'dateFormat', 'agg': 'uniq', 'ag-grid': true, width : 150 },\n {displayIndex: 93, 'display': 'Terms.Next Call Date', 'col': 'call_date', 'format': 'dateFormat', 'agg': 'uniq', 'ag-grid': true, width : 150 },\n {displayIndex: 94, 'display': 'Terms.Next Call Price', 'col': 'call_price', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 150 },\n {displayIndex: 95, 'display': 'Terms.Puttable?', 'col': 'is_putable', 'agg': 'uniq', 'ag-grid': true, width : 110 },\n {displayIndex: 96, 'display': 'Terms.Next Put Date', 'col': 'put_date', 'format': 'dateFormat', 'agg': 'uniq', 'ag-grid': true, width : 150 },\n {displayIndex: 97, 'display': 'Terms.Next Put Price', 'col': 'put_price', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 150 }, \n\n {displayIndex: 100, 'display': 'Price Change.WTD', 'col': 'price change wtd', 'format': 'decimalFormat2', 'agg': 'uniq', 'ag-grid': true, width : 90 },\n {displayIndex: 101, 'display': 'Price Change.MTD', 'col': 'price change mtd', 'format': 'decimalFormat2', 'agg': 'uniq', 'ag-grid': true, width : 90 },\n\n {displayIndex: 110, 'display': 'YTW Change.WTD', 'col': 'ytw change wtd', 'format': 'decimalFormat2', 'agg': 'uniq', 'ag-grid': true, width : 90 },\n {displayIndex: 111, 'display': 'YTW Change.MTD', 'col': 'ytw change mtd', 'format': 'decimalFormat2', 'agg': 'uniq', 'ag-grid': true, width : 90 },\n\n {displayIndex: 120, 'display': 'Convertible Bonds.Parity', 'col': 'parity', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n {displayIndex: 121, 'display': 'Convertible Bonds.Delta', 'col': 'delta', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n\n {displayIndex: 130, 'display': 'Price.FX', 'col': 'fx price', 'agg': 'uniq', 'format': 'decimalFormat2', 'ag-grid': true, width : 90 },\n\n {displayIndex: 140, 'display': 'ISIN', 'col': 'isin', 'agg': 'uniq', 'ag-grid': true, width : 140 },\n {displayIndex: 141, 'display': 'CUSIP', 'col': 'cusip', 'agg': 'uniq', 'ag-grid': true, width : 120 },\n // {displayIndex: 31, 'display': 'Trade P&L', 'col': 'Trade P&L', 'agg': 'sum', 'ag-grid': true, width : 150, 'format': 'decimalFormat2' }, \n ]};\n}\n\nexport const publicPnLBALService = {\n getRowData,\n getColumnList,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: '',\n field: '',\n resizable: true,\n width: 180,\n pinned: 'left'\n };\n}\n\nfunction getRowData(params) { \n\n}\n\nfunction save(instrumentMarks, isSendForApproval, date, fund) { \n \n}","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Task Detail Id', 'col': 'id','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 2, 'display': 'Item', 'col': 'name','ag-grid': true, width: 200 },\n {displayIndex: 3, 'display': 'Soft Deadline Months', 'col': 'softDeadlineMonths','ag-grid': true, width: 200 },\n {displayIndex: 4, 'display': 'Soft Deadline Days', 'col': 'softDeadlineDays','ag-grid': true, width: 200 },\n {displayIndex: 5, 'display': 'Hard Deadline Months', 'col': 'hardDeadlineMonths','ag-grid': true, width: 200 },\n {displayIndex: 6, 'display': 'Hard Deadline Days', 'col': 'hardDeadlineDays','ag-grid': true, width: 200 },\n {displayIndex: 7, 'display': 'Entity', 'col': 'entity','ag-grid': true, width: 200 },\n {displayIndex: 6, 'display': 'Jurisdiction / Regulator', 'col': 'jurisdictionRegulator','ag-grid': true, width: 200 },\n {displayIndex: 7, 'display': 'Frequency', 'col': 'frequency','ag-grid': true, width: 200 },\n {displayIndex: 8, 'display': 'External Service Provider Involved, If Any', 'col': 'externalServiceProvider','ag-grid': true, width: 200 },\n {displayIndex: 9, 'display': 'Contact Of Service Provider', 'col': 'externalContactName','ag-grid': true, width: 200 },\n {displayIndex: 10, 'display': 'Primary Person', 'col': 'primaryPerson','ag-grid': true, width: 200 },\n {displayIndex: 11, 'display': 'Secondary Person', 'col': 'secondaryPerson','ag-grid': true, width: 200 },\n {displayIndex: 12, 'display': 'Tertiary Person', 'col': 'tertiaryPerson','ag-grid': true, width: 200 },\n {displayIndex: 13, 'display': 'Link', 'col': 'link','ag-grid': true, width: 200 },\n {displayIndex: 14, 'display': 'Remark', 'col': 'remarkMaster','ag-grid': true, width: 200 },\n {displayIndex: 15, 'display': 'End Date', 'col': 'endDate','ag-grid': true, width: 200, 'format': 'dateFormat' },\n {displayIndex: 16, 'display': 'Has Soft Deadline', 'col': 'hasSoftDeadline','ag-grid': true, width: 200 },\n {displayIndex: 17, 'display': 'Last Updated By', 'col': 'lastUpdatedBy','ag-grid': true, width: 200 },\n {displayIndex: 18, 'display': 'Entity Id', 'col': 'entityId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 19, 'display': 'Jurisdiction Id', 'col': 'jurisdictionId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 20, 'display': 'Frequency Id', 'col': 'frequencyId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 21, 'display': 'External Id', 'col': 'externalId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 22, 'display': 'Primary User Id', 'col': 'primaryUserId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 23, 'display': 'Secondary User Id', 'col': 'secondaryUserId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 24, 'display': 'Tertiary User Id', 'col': 'tertiaryUserId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 25, 'display': 'Last Updated By Id', 'col': 'lastUpdatedById','ag-grid': true, hide:true, width: 200 },\n ]};\n}\n\nexport const taskDetailBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'name',\n width: 600,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/taskDetail/getAll`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(row) {\n //row = Utils.removeBlanksNotZero(row);\n return fetch(`${config.apiDDSUrl}/addTaskDetail`, { body: JSON.stringify(row), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'Task Instance Id', 'col': 'id','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 2, 'display': 'Item', 'col': 'name','ag-grid': true, width: 200 },\n {displayIndex: 3, 'display': 'Entity', 'col': 'entity','ag-grid': true, width: 200 },\n {displayIndex: 4, 'display': 'Frequency', 'col': 'frequency','ag-grid': true, width: 100 },\n {displayIndex: 5, 'display': 'For Date', 'col': 'forDate', 'format': 'dateFormat', 'ag-grid': true, width: 120 },\n {displayIndex: 6, 'display': 'Soft Deadline', 'col': 'softDeadline', 'format': 'dateFormat', 'ag-grid': true, width: 120 },\n {displayIndex: 7, 'display': 'Hard Deadline', 'col': 'hardDeadline', 'format': 'dateFormat', 'ag-grid': true, width: 120 },\n {displayIndex: 8, 'display': 'Status', 'col': 'status','ag-grid': true, width: 100 },\n {displayIndex: 9, 'display': 'Completion Date', 'col': 'completionDate', 'format': 'dateFormat', 'ag-grid': true, width: 100 },\n {displayIndex: 10, 'display': 'Due/Overdue?', 'col': 'dueOverdue', 'ag-grid': true, width: 120 },\n {displayIndex: 11, 'display': 'Due?', 'col': 'due', 'ag-grid': true, hide:true, width: 200 },\n {displayIndex: 12, 'display': 'Overdue?', 'col': 'overdue', 'ag-grid': true, hide:true, width: 200 },\n {displayIndex: 13, 'display': 'Jurisdiction / Regulator', 'col': 'jurisdictionRegulator', 'ag-grid': true, width: 200 },\n {displayIndex: 14, 'display': 'External Service Provider Involved, If Any', 'col': 'externalServiceProvider','ag-grid': true, width: 200 },\n {displayIndex: 15, 'display': 'Contact Of Service Provider', 'col': 'externalContactName','ag-grid': true, width: 200 },\n {displayIndex: 16, 'display': 'Primary Person', 'col': 'primaryPerson','ag-grid': true, width: 200 },\n {displayIndex: 17, 'display': 'Secondary Person', 'col': 'secondaryPerson','ag-grid': true, width: 200 },\n {displayIndex: 18, 'display': 'Tertiary Person', 'col': 'tertiaryPerson','ag-grid': true, width: 200 },\n {displayIndex: 19, 'display': 'Link', 'col': 'link','ag-grid': true, width: 200 },\n {displayIndex: 20, 'display': 'Remark Instance', 'col': 'remarkInstance','ag-grid': true, width: 200 },\n {displayIndex: 21, 'display': 'Remark Master', 'col': 'remarkMaster','ag-grid': true, width: 200 },\n {displayIndex: 22, 'display': 'End Date', 'col': 'endDate','ag-grid': true, 'format': 'dateFormat', hide:true, width: 200 },\n {displayIndex: 23, 'display': 'Has Soft Deadline', 'col': 'hasSoftDeadline','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 24, 'display': 'Last Updated By Instance', 'col': 'lastUpdatedByInstance','ag-grid':true, hide:true, width: 200 },\n {displayIndex: 25, 'display': 'Last Updated By Master', 'col': 'lastUpdatedByMaster','ag-grid':true, hide:true, width: 200 },\n {displayIndex: 26, 'display': 'Task Detail Id', 'col': 'taskDetailId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 27, 'display': 'Entity Id', 'col': 'entityId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 28, 'display': 'Jurisdiction Id', 'col': 'jurisdictionId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 29, 'display': 'Frequency Id', 'col': 'frequencyId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 30, 'display': 'External Id', 'col': 'externalId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 31, 'display': 'Primary User Id', 'col': 'primaryUserId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 32, 'display': 'Secondary User Id', 'col': 'secondaryUserId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 33, 'display': 'Tertiary User Id', 'col': 'tertiaryUserId','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 34, 'display': 'Last Updated By Id Instance', 'col': 'lastUpdatedByIdInstance','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 35, 'display': 'Last Updated By Id Master', 'col': 'lastUpdatedByIdMaster','ag-grid': true, hide:true, width: 200 },\n ]};\n}\n\nexport const taskInstanceBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'name',\n width: 200,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/taskInstance/getAll`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(row) {\n //row = Utils.removeBlanksNotZero(row);\n return fetch(`${config.apiDDSUrl}/addTaskInstance`, { body: JSON.stringify(row), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\nconst getColumnList = async (params) => {\n return {\n 'columnSpecs': [\n {displayIndex: 1, 'display': 'ProjectId', 'col': 'Project Id','ag-grid': true, hide:true, width: 200 },\n {displayIndex: 2, 'display': 'Project Name', 'col': 'Project Name','ag-grid': true, width: 200 },\n {displayIndex: 3, 'display': 'Company Overview', 'col': 'Company Overview','ag-grid': true, width: 200 },\n {displayIndex: 4, 'display': 'Transaction Summary', 'col': 'Transaction Summary','ag-grid': true, width: 200 },\n {displayIndex: 5, 'display': 'Investment Highlights', 'col': 'Investment Highlights','ag-grid': true, width: 200 },\n {displayIndex: 6, 'display': 'Key Risks', 'col': 'Key Risks','ag-grid': true, width: 200 },\n {displayIndex: 7, 'display': 'Deal Structure', 'col': 'Deal Structure','ag-grid': true, width: 200 },\n {displayIndex: 8, 'display': 'Sponsor Background', 'col': 'Sponsor Background','ag-grid': true, width: 200 },\n {displayIndex: 9, 'display': 'Management Background', 'col': 'Management Background','ag-grid': true, width: 200 },\n {displayIndex: 10, 'display': 'Industry Background', 'col': 'Industry Background','ag-grid': true, width: 200 },\n {displayIndex: 11, 'display': 'ESG Summary', 'col': 'ESG Summary','ag-grid': true, width: 200 },\n {displayIndex: 12, 'display': 'ESG Environment', 'col': 'ESG Environment','ag-grid': true, width: 200 },\n {displayIndex: 12, 'display': 'ESG Social', 'col': 'ESG Social','ag-grid': true, width: 200 },\n {displayIndex: 13, 'display': 'ESG Governance', 'col': 'ESG Governance','ag-grid': true, width: 200 },\n {displayIndex: 14, 'display': 'Covenants', 'col': 'Covenants','ag-grid': true, width: 200 },\n {displayIndex: 15, 'display': 'Contract Terms', 'col': 'Contract Terms','ag-grid': true, width: 200 },\n {displayIndex: 16, 'display': 'Projected Financials', 'col': 'Projected Financials','ag-grid': true, width: 200 },\n ]};\n}\n\nexport const dealSummaryBALService = {\n getColumnList,\n getRowData,\n getAutoGroupColumnDef,\n save\n};\n\nfunction getAutoGroupColumnDef(params) {\n return {\n headerName: 'Group',\n field: 'name',\n width: 600,\n pinned: 'left',\n }; \n}\n\nfunction getRowData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() }; \n return fetch(`${config.apiDDSUrl}/taskDetail/getAll`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction save(row) {\n //row = Utils.removeBlanksNotZero(row);\n return fetch(`${config.apiDDSUrl}/addTaskDetail`, { body: JSON.stringify(row), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' } }).then( data => { return Utils.handleResponse(data) });\n}\n","import { positionBALService } from './position.bal';\nimport { dealBALService } from './deal.bal';\nimport { portfolioOverviewSummaryBALService } from './portfolioOverviewSummary.bal'\nimport { portfolioOverviewTopExposureBALService } from './portfolioOverviewTopExposure.bal'\nimport { portfolioOverviewTopTRSBALService } from './portfolioOverviewTopTRS.bal'\nimport { cdsTopsheetBalService } from './Hedge/cdsTopsheet.bal'\nimport { equityTopsheetBalService } from './Hedge/equityTopsheet.bal'\nimport { fxTopsheetBalService } from './Hedge/fxTopsheet.bal'\nimport { irTopsheetBalService } from './Hedge/irTopsheet.bal'\nimport { hedgeReportBalService } from './Hedge/hedgeReport.bal'\nimport { fxReportBalService } from './fxReport.bal'\nimport { portfolioProjectionBalService } from './Portfolio-Dashboard/portfolioProjection.bal'\nimport { dealStressBALService } from './Deal-Dashboard/dealStress.bal'\nimport { iRRiskBALService } from './Deal-Dashboard/iRRisk.bal'\nimport { stressSummaryBALService } from './stressSummary.bal'\nimport { cDRiskBALService } from './Deal-Dashboard/cDRisk.bal'\nimport { eqRiskBALService } from './Deal-Dashboard/eqRisk.bal'\nimport { cDRisk100BALService } from './Deal-Dashboard/cdRisk100percent.bal'\nimport { hCashflowBalService } from './Deal-Dashboard/historicalCashflow.bal'\nimport { pCashflowBalService } from './Deal-Dashboard/projectedCashflow.bal'\nimport { dTradesBalService } from './Deal-Dashboard/dealTrades.bal'\nimport { dealMarksBalService } from './Deal-Dashboard/dealMarks.bal'\nimport { dealDashboardBALService } from './Deal-Dashboard/dealDashboard.bal'\nimport { dealDashboardSummaryBALService } from './Deal-Dashboard/dealDashboardSummary.bal'\nimport { dealRiskBALService } from './Deal-Dashboard/dealRisk.bal'\nimport { dealAttributeChangesBALService } from './Deal-Dashboard/dealAttributeChanges.bal'\nimport { dealTrancheAttributeChangesBALService } from './Deal-Dashboard/dealTrancheAttributeChanges.bal'\nimport { dealCreditMetricsChangesBALService } from './Deal-Dashboard/dealCreditMetricsChanges.bal'\nimport { dealMacroRiskChangesBALService } from './Deal-Dashboard/dealMacroRiskChanges.bal'\nimport { dealReturnsChangesBALService } from './Deal-Dashboard/dealReturnsChanges.bal'\nimport { dealPerformanceSummaryBALService } from './Deal-Dashboard/dealPerformanceSummary.bal'\nimport { dealPerformanceSummaryCTRBALService } from './Deal-Dashboard/dealPerformanceSummaryCTR.bal'\nimport { dealPerformanceSummaryTopBALService } from './Deal-Dashboard/dealPerformanceSummaryTop.bal' \nimport { dealProjectionTopBALService } from './Deal-Dashboard/dealProjectionTop.bal' \nimport { portfolioPerformanceTopMTDBALService } from './Portfolio-Dashboard/portfolioPerformanceTopMTD.bal'\nimport { portfolioPerformanceTopQTDBALService } from './Portfolio-Dashboard/portfolioPerformanceTopQTD.bal'\nimport { portfolioPerformanceTopYTDBALService } from './Portfolio-Dashboard/portfolioPerformanceTopYTD.bal'\nimport { portfolioPerformanceBottomMTDBALService } from './Portfolio-Dashboard/portfolioPerformanceBottomMTD.bal'\nimport { portfolioPerformanceBottomQTDBALService } from './Portfolio-Dashboard/portfolioPerformanceBottomQTD.bal'\nimport { portfolioPerformanceBottomYTDBALService } from './Portfolio-Dashboard/portfolioPerformanceBottomYTD.bal'\nimport { portfolioPerformanceDecompositionBALService } from './Portfolio-Dashboard/portfolioPerformanceDecomposition.bal'\nimport { portfolioPerformanceSummaryBALService } from './Portfolio-Dashboard/portfolioPerformanceSummary.bal'\nimport { portfolioPerformanceGridBALService } from './Portfolio-Dashboard/portfolioPerformanceGrid.bal'\nimport { portfolioPerformanceSummaryTopBALService} from './Portfolio-Dashboard/portfolioPerformanceSummaryTop.bal'\nimport { cashMarginBalService} from './Portfolio-Dashboard/cashMarginOverview.bal'\nimport { historicalCashflowTopBALService } from './Deal-Dashboard/historicalCashflowTop.bal'\nimport { icApprovalBALService } from './icApproval.bal'\nimport { approvalBALService } from './approval.bal'\nimport { approvalReminderBALService } from './approvalReminder.bal'\nimport { markingToolBALService } from './markingTool.bal'\nimport { exposureRiskBalService } from './Portfolio-Dashboard/exposureRisk.bal';\nimport { creditMetricBalService } from './Portfolio-Dashboard/creditMetrics.bal';\nimport { assetCommentaryBALService } from './assetCommentary.bal'\nimport { assetCommentaryReviewBALService } from './assetCommentaryReview.bal'\nimport { pnlBALService } from './pnl.bal'\nimport { topMTDpnlBALService } from './topMTDpnl.bal'\nimport { bottomMTDpnlBALService } from './bottomMTDpnl.bal'\nimport { topDODpnlBALService } from './topDODpnl.bal'\nimport { bottomDODpnlBALService } from './bottomDODpnl.bal'\nimport { housingBALService } from './housing.bal'\nimport { housingSummaryBALService } from './housingSummary.bal'\nimport { userLogBALService } from './userLog.bal'\nimport { dealLegalDetailsBALService } from './dealLegalDetails.bal'\nimport { dealPipelineSummaryBALService } from './dealPipelineSummary.bal'\nimport { restrictedListBALService } from './restrictedList.bal'\nimport { coInvestmentBALService } from './coInvestment.bal'\nimport { covenantInstanceBALService } from './covenantInstance.bal'\nimport { covenantTargetBALService } from './covenantTarget.bal'\nimport { covenantMasterBALService } from './covenantMaster.bal'\nimport { publicPnLBALService } from './publicPnL.bal'\nimport { taskDetailBALService } from './taskDetail.bal'\nimport { taskInstanceBALService } from './taskInstance.bal'\nimport { dealSummaryBALService } from './dealSummary.bal'\n\nexport const torGridBALService = {\n getRowData\n ,getDashboardData\n ,getChartData\n ,getColumnList\n ,getColumnListToggle\n ,getAutoGroupColumnDef\n ,getDetailCellRendererParams\n};\n\nvar services = {\n 'positions1' : positionBALService\n ,'deals_dashboard' : dealBALService\n ,'portfolioOverviewSummary' : portfolioOverviewSummaryBALService\n ,'portfolioOverviewTopExposure' : portfolioOverviewTopExposureBALService\n ,'portfolioOverviewTopTRS' : portfolioOverviewTopTRSBALService\n ,'cdsTopsheet' : cdsTopsheetBalService\n ,'equityTopsheet' : equityTopsheetBalService\n ,'fxTopsheet' : fxTopsheetBalService\n ,'irTopSheet' : irTopsheetBalService\n ,'hedgeReport' : hedgeReportBalService\n ,'fxReport' : fxReportBalService\n ,'portfolioProjection' : portfolioProjectionBalService\n ,'dealStress' : dealStressBALService\n ,'iRRisk' : iRRiskBALService\n ,'stressSummary' : stressSummaryBALService\n ,'cDRisk' : cDRiskBALService\n ,'cDRisk100' : cDRisk100BALService\n ,'eqRisk' : eqRiskBALService\n ,'hCashflow' : hCashflowBalService\n ,'pCashflow' : pCashflowBalService\n ,'dealDashboard' : dealDashboardBALService\n ,'dealDashboardSummary' : dealDashboardSummaryBALService\n ,'dealRisk' : dealRiskBALService\n ,'dealTrades' : dTradesBalService\n ,'dealMarks' : dealMarksBalService\n ,'dealAttributeChanges' : dealAttributeChangesBALService\n ,'dealTrancheAttributeChanges' : dealTrancheAttributeChangesBALService\n ,'dealCreditMetricsChanges' : dealCreditMetricsChangesBALService\n ,'dealMacroRiskChanges' : dealMacroRiskChangesBALService\n ,'dealReturnsChanges' : dealReturnsChangesBALService\n ,'dealPerformanceSummary' : dealPerformanceSummaryBALService\n ,'dealPerformanceSummaryCTR' : dealPerformanceSummaryCTRBALService\n ,'dealPerformanceSummaryTop' : dealPerformanceSummaryTopBALService\n ,'dealProjectionTop' : dealProjectionTopBALService \n ,'portfolioPerformanceTopMTD' : portfolioPerformanceTopMTDBALService\n ,'portfolioPerformanceTopYTD' : portfolioPerformanceTopYTDBALService\n ,'portfolioPerformanceTopQTD' : portfolioPerformanceTopQTDBALService\n ,'portfolioPerformanceBottomMTD' : portfolioPerformanceBottomMTDBALService\n ,'portfolioPerformanceBottomYTD' : portfolioPerformanceBottomYTDBALService\n ,'portfolioPerformanceBottomQTD' : portfolioPerformanceBottomQTDBALService\n ,'portfolioPerformanceDecomposition' : portfolioPerformanceDecompositionBALService\n ,'portfolioPerformanceSummary' : portfolioPerformanceSummaryBALService\n ,'portfolioPerformanceGrid' : portfolioPerformanceGridBALService\n ,'portfolioPerformanceSummaryTop' : portfolioPerformanceSummaryTopBALService\n ,'historicalCashflowTop' : historicalCashflowTopBALService\n ,'icApproval' : icApprovalBALService\n ,'approvals' : approvalBALService\n ,'markingTool' : markingToolBALService\n ,'exposureRisk' : exposureRiskBalService\n ,'creditMetrics' : creditMetricBalService\n ,'approvalReminder' : approvalReminderBALService\n ,'assetCommentary' : assetCommentaryBALService\n ,'pnl' : pnlBALService\n ,'topMTDpnl' : topMTDpnlBALService\n ,'bottomMTDpnl' : bottomMTDpnlBALService\n ,'topDODpnl' : topDODpnlBALService\n ,'bottomDODpnl' : bottomDODpnlBALService\n ,'housing' : housingBALService\n ,'housingSummary' : housingSummaryBALService\n ,'userLog' : userLogBALService\n ,'assetCommentaryReview' : assetCommentaryReviewBALService\n ,'dealLegalDetails' : dealLegalDetailsBALService\n ,'restrictedList' : restrictedListBALService\n ,'coInvestment' : coInvestmentBALService\n ,'cashMarginSummary' : cashMarginBalService\n ,'covenantTarget' : covenantTargetBALService\n ,'covenantInstance' : covenantInstanceBALService\n ,'covenantMaster' : covenantMasterBALService\n ,'publicPnL' : publicPnLBALService\n ,'dealPipelineDetails' : dealPipelineSummaryBALService\n ,'taskDetail' : taskDetailBALService\n ,'taskInstance' : taskInstanceBALService\n ,'dealSummary' : dealSummaryBALService\n}\n\nfunction getRowData(gridId, params) {\n return services[gridId]?.getRowData(params);\n}\n\nfunction getDashboardData(gridId, params) {\n return services[gridId].getPositionsData(params);\n}\n\nfunction getChartData(gridId, params) {\n return services[gridId].getChartData(params);\n}\n\nfunction getColumnList(gridId) {\n return services[gridId]?.getColumnList(gridId);\n}\n\nfunction getColumnListToggle(gridId) {\n return services[gridId]?.getColumnListToggle(gridId);\n}\n\nfunction getAutoGroupColumnDef(gridId) {\n return services[gridId]?.getAutoGroupColumnDef(gridId);\n}\n\nfunction getDetailCellRendererParams(gridId) {\n if (typeof services[gridId]?.getDetailCellRendererParams !== \"undefined\") { \n return services[gridId]?.getDetailCellRendererParams(gridId);\n }\n return null;\n}","/******************************************************************************************************/\nimport React, { Component } from 'react';\nimport * as agCharts from 'ag-charts-community';\nimport { AgChartsReact } from 'ag-charts-react';\nimport _ from 'underscore';\nimport moment from 'moment';\n\n\nclass ChartDisplay extends Component {\n constructor(props) {\n super(props);\n this.getPieData = this.getPieData.bind(this);\n this.getStackedBarData = this.getStackedBarData.bind(this);\n this.groupBy = this.groupBy.bind(this);\n this.groupByInner = this.groupByInner.bind(this);\n this.getGroupedBarData2 = this.getGroupedBarData2.bind(this);\n };\n\n groupByInner = (array, key, value) => {\n return array.reduce((result, currentValue) => {\n result[currentValue.P[0][key]] = (result[currentValue.P[0][key]] || 0) + currentValue[value]\n return result;\n }, {});\n };\n\n groupBy = (array, key, value) => {\n if(array) {\n return array.reduce((result, currentValue) => {\n result[currentValue[key]] = (result[currentValue[key]] || 0) + currentValue[value]\n return result;\n }, {});\n }\n else {\n return null;\n }\n };\n\n getPieData = (data, GroupBy, sumCol) => {\n var grouped = this.groupBy(data, GroupBy, sumCol);\n var chartList = [];\n var labels = [];\n var sum = 0;\n\n for (var key in grouped) {\n if (grouped[key] !== 0) {\n var chart = {\n [`${GroupBy}`]: key,\n [`${sumCol}`]: grouped[key]\n }\n\n sum = sum + grouped[key];\n\n if (labels.includes(key) === false) {\n labels.push(key);\n }\n\n chartList.push(chart);\n }\n }\n\n labels.sort();\n\n return [chartList, labels, sum];\n }\n\n getStackedBarData = (data, GroupBy, xKey, sumCol) => {\n var grouped = this.groupBy(data, xKey, sumCol);\n\n var chartMaturityList = [];\n var maturityLabel = [];\n var sumList = [];\n\n for (let key in grouped) {\n if (grouped[key] !== 0) {\n var arr = data.filter(function (item) {\n return item[xKey] === key || item[xKey] === parseInt(key)\n });\n\n var sub_grouped = this.groupBy(arr, GroupBy, sumCol);\n\n var chart = {\n [`${xKey}`]: key\n }\n\n sumList.push({ [`${xKey}`]: key, sumVal: grouped[key]});\n\n for (var key2 in sub_grouped) {\n if (sub_grouped[key2] !== 0) {\n chart[`${key2} ${sumCol}`] = sub_grouped[key2];\n\n if (maturityLabel.includes(`${key2} ${sumCol}`) === false) {\n maturityLabel.push(`${key2} ${sumCol}`)\n }\n } else if(sub_grouped[key2] === 0 && key2 !== \"Uncategorized\") {\n chart[`${key2} ${sumCol}`] = 0;\n\n if (maturityLabel.includes(`${key2} ${sumCol}`) === false) {\n maturityLabel.push(`${key2} ${sumCol}`)\n }\n }\n }\n\n chartMaturityList.push(chart);\n }\n }\n\n maturityLabel.sort();\n\n return [chartMaturityList, maturityLabel, sumList];\n }\n\n getGroupedBarDataAlt = (data, xKey, sumCol, funds) => {\n var reportDate = _.keys(_.countBy(data, function(data) { return data[xKey]; }));\n var chartMaturityList = [];\n\n for(let i = 0; i < reportDate.length; i++){\n var chart = {\n [`${xKey}`]: reportDate[i]\n }\n\n var filteredData = data.filter(row => row[xKey] === reportDate[i]);\n\n for(let j = 0; j < funds.length; j++){\n var filteredDataFund = filteredData.filter(row => row['fund'] === funds[j]);\n\n const num = filteredDataFund.reduce( (numerator, row) => numerator + row[sumCol[0]], 0);\n const den = filteredDataFund.reduce( (numerator, row) => numerator + row[sumCol[1]], 0);\n\n chart[`${funds[j]}`] = ((den ?? 0) > 0 ? num / den : 0);\n }\n\n chartMaturityList.push(chart);\n }\n\n return [chartMaturityList, funds];\n }\n\n getGroupedBarData2 = (data, xKey, sumCol, funds) => {\n var reportDate = _.keys(_.countBy(data, function(data) { return data[xKey]; }));\n var chartMaturityList = [];\n\n for(let i = 0; i < reportDate.length; i++){\n var chart = {\n [`${xKey}`]: reportDate[i]\n }\n\n var filteredData = data.filter(row => row[xKey] === reportDate[i]);\n\n for(let j = 0; j < funds.length; j++){\n var filteredDataFund = filteredData.filter(row => row['fund'] === funds[j]);\n\n const num = filteredDataFund.reduce( (numerator, row) => numerator + row[sumCol], 0);\n\n chart[`${funds[j]}`] = num;\n }\n\n chartMaturityList.push(chart);\n }\n\n return [chartMaturityList, funds];\n }\n\n getGroupedBarData = (data, xKey, sumCol) => {\n var reportDate = _.keys(_.countBy(data, function(data) { return data[xKey]; }));\n var chartMaturityList = [];\n\n for(let i = 0; i < reportDate.length; i++){\n var chart = {\n [`${xKey}`]: reportDate[i]\n }\n for(let j = 0; j < sumCol.length; j++){\n var filteredData = data.filter(row => row[xKey] === reportDate[i]);\n const value = filteredData.reduce( (numerator, row) => numerator + row[sumCol[j]], 0);\n chart[`${sumCol[j]}`] = value;\n }\n\n chartMaturityList.push(chart);\n }\n\n return [chartMaturityList, sumCol];\n }\n\n\n\n render() {\n var dataList, angle, options, lData, labels;\n if (this.props.chartType === 'pie') {\n lData = this.getPieData(this.props.dataList, this.props.labelKey, this.props.angleKey);\n dataList = lData[0];\n dataList.sort((a, b) => (a[this.props.angleKey] < b[this.props.angleKey]) ? 1 : -1)\n\n labels = lData[1];\n options = {\n theme: myTheme,\n data: dataList,\n title: {\n text: this.props.chartTitle\n },\n series: [\n {\n type: 'pie',\n angleKey: this.props.angleKey,\n labelKey: this.props.labelKey,\n tooltip: {\n renderer: function (params) {\n return {\n content: params.datum[params.labelKey] + \":\" + \n params.angleValue.toFixed(0).replace(/\\B(?;\n } else if (this.props.chartType === 'bar-stacked') {\n lData = this.getStackedBarData(this.props.dataList, this.props.GroupBy, this.props.xKey, this.props.yKeys);\n dataList = lData[0];\n dataList.sort((a, b) => (a[this.props.xKey] > b[this.props.xKey]) ? 1 : -1)\n\n labels = lData[1];\n angle = 360;\n if (this.props.rotationAngle) {\n angle = this.props.rotationAngle;\n } \n\n options = {\n theme: myTheme,\n data: dataList,\n title: {\n text: this.props.chartTitle\n },\n series: [\n {\n type: 'column',\n xKey: this.props.xKey,\n yKeys: labels,\n yNames: labels,\n tooltip: {\n renderer: function (params) {\n return {\n content: params.xValue + ' : ' + params.yValue.toFixed(0).replace(/\\B(?;\n } else if (this.props.chartType === 'bar-grouped') {\n lData = this.getGroupedBarData(this.props.dataList, this.props.xKey, this.props.yKeys);\n dataList = lData[0];\n dataList.sort((a, b) => (a[this.props.xKey] > b[this.props.xKey]) ? 1 : -1)\n labels = lData[1];\n angle = 360;\n if (this.props.rotationAngle){\n angle = this.props.rotationAngle;\n }\n\n options = {\n theme: myTheme,\n data: dataList,\n title: {\n text: this.props.chartTitle\n },\n series: [\n {\n type: 'column',\n xKey: this.props.xKey,\n yKeys: labels,\n yNames: labels,\n tooltip: {\n renderer: function (params) {\n return {\n content: params.xValue + ' : ' + params.yValue.toFixed(0).replace(/\\B(?;\n } else if (this.props.chartType === 'line-grouped') {\n lData = this.getGroupedBarData(this.props.dataList, this.props.xKey, this.props.yKeys);\n dataList = lData[0];\n labels = lData[1];\n angle = 360;\n\n if (this.props.rotationAngle) {\n angle = this.props.rotationAngle;\n }\n\n for (var i = 0; i < dataList.length; i++) {\n dataList[i][this.props.xKey] = new Date(dataList[i][this.props.xKey]);\n }\n\n options = {\n theme: myTheme,\n data: dataList,\n title: {\n text: this.props.chartTitle\n },\n series: [\n {\n xKey: this.props.xKey,\n yKey: labels,\n yName: labels,\n tooltip: {\n renderer: function (params) {\n return {\n content: moment(params.xValue).format(\"YYYY-MM-DD\") + ' : ' + params.yValue.toFixed(0).replace(/\\B(?;\n } else if (this.props.chartType === 'line-grouped-alt') {\n const fundList = this.props.fund === 'All'? ['TOR', 'TIFO', 'TACO', 'TACO II', 'TACO III', 'TACO IV', 'TALC'] : [this.props.fund]\n lData = this.getGroupedBarDataAlt(this.props.dataList, this.props.xKey, this.props.sumKeys, fundList);\n dataList = lData[0];\n labels = lData[1];\n angle = 360;\n\n var seriesList = [];\n\n for(let i = 0; i < fundList.length; i++) {\n seriesList.push({\n xKey: this.props.xKey,\n yKey: fundList[i],\n yName: fundList[i],\n tooltip: {\n renderer: function (params) {\n return {\n content: moment(params.xValue).format(\"YYYY-MM-DD\") + ' : ' + params.yValue.toFixed(2).replace(/\\B(?;\n } else if (this.props.chartType === 'line-grouped-alt2') {\n const fundList = ['TOR', 'TIFO', 'TACO', 'TACO II', 'TACO III', 'TACO IV', 'TALC']\n lData = this.getGroupedBarData2(this.props.dataList, this.props.xKey, this.props.sumKeys, fundList);\n dataList = lData[0];\n labels = lData[1];\n angle = 360;\n\n seriesList = [];\n\n for(let i = 0; i < fundList.length; i++) {\n seriesList.push({\n xKey: this.props.xKey,\n yKey: fundList[i],\n yName: fundList[i],\n marker: {\n enabled: false\n },\n tooltip: {\n renderer: function (params) {\n return {\n content: moment(params.xValue).format(\"YYYY-MM-DD\") + ' : ' + params.yValue.toFixed(2).replace(/\\B(?;\n } else if (this.props.chartType === 'area') {\n lData = this.getStackedBarData(this.props.dataList, this.props.GroupBy, this.props.xKey, this.props.yKeys);\n dataList = lData[0];\n\n angle = 360;\n if (this.props.rotationAngle) {\n angle = this.props.rotationAngle;\n }\n\n for (let i = 0; i < dataList.length; i++) {\n dataList[i][this.props.xKey] = new Date(dataList[i][this.props.xKey]);\n }\n\n labels = lData[1];\n options = {\n theme: areaTheme,\n data: dataList,\n title: {\n text: this.props.chartTitle\n },\n series: [\n {\n type: 'area',\n xKey: this.props.xKey,\n yKeys: labels,\n yNames: labels\n }\n ],\n axes: [\n {\n type: 'time',\n nice: false,\n position: 'bottom',\n tick: { count: agCharts.time.month },\n label: { format: '%b %Y', rotation: angle }\n },\n {\n type: 'number',\n position: 'left',\n tick: { count: 5 },\n label: {\n formatter: function (params) {\n return params.value + '%';\n },\n },\n },\n ],\n legend: { enabled: false, position: 'bottom' }\n }\n\n return ;\n } else if (this.props.chartType === 'area-mln') {\n lData = this.getStackedBarData(this.props.dataList, this.props.GroupBy, this.props.xKey, this.props.yKeys);\n dataList = lData[0];\n\n angle = 360;\n if (this.props.rotationAngle) {\n angle = this.props.rotationAngle;\n }\n\n for (let i = 0; i < dataList.length; i++) {\n dataList[i][this.props.xKey] = new Date(dataList[i][this.props.xKey]);\n }\n\n labels = lData[1];\n options = {\n theme: myTheme,\n data: dataList,\n title: {\n text: this.props.chartTitle\n },\n series: [\n {\n type: 'area',\n xKey: this.props.xKey,\n yKeys: labels,\n yNames: labels,\n fillOpacity: 1,\n tooltip: {\n renderer: function (params) {\n return {\n content: moment(params.xValue).format('YYYY-MM-DD') + ' : ' + params.yValue.toFixed(0).replace(/\\B(?;\n } else if (this.props.chartType === 'area-normalized') {\n lData = this.getStackedBarData(this.props.dataList, this.props.GroupBy, this.props.xKey, this.props.yKeys);\n dataList = lData[0];\n\n angle = 360;\n if (this.props.rotationAngle) {\n angle = this.props.rotationAngle;\n }\n\n for (let i = 0; i < dataList.length; i++) {\n dataList[i][this.props.xKey] = new Date(dataList[i][this.props.xKey]);\n }\n\n const {xKey} = this.props;\n\n labels = lData[1];\n options = {\n theme: myTheme,\n data: dataList,\n title: {\n text: this.props.chartTitle\n },\n series: [\n {\n type: 'area',\n xKey: xKey,\n yKeys: labels,\n yNames: labels,\n normalizedTo: 100,\n fillOpacity: 1,\n tooltip: {\n renderer: function (params) {\n let sumVal = lData[2].filter(function (item) {\n return item[xKey] === moment(params.xValue).format('YYYY-MM-DD')\n })[0].sumVal;\n return {\n content: moment(params.xValue).format('YYYY-MM-DD') + ' : ' + (params.yValue / sumVal * 100).toFixed(2) + \"%\",\n };\n },\n },\n }\n ],\n axes: [\n {\n type: 'time',\n nice: false,\n position: 'bottom',\n tick: { count: 10 },\n label: { format: '%b %Y', rotation: angle }\n },\n {\n type: 'number',\n position: 'left',\n tick: { count: 5 },\n label: {\n formatter: function (params) {\n return params.value + '%';\n },\n },\n },\n ],\n legend: { enabled: false, position: 'bottom' }\n }\n\n return ;\n } else if (this.props.chartType === \"cartesian\") {\n options = {\n type: 'cartesian',\n theme: areaTheme,\n autoSize: true,\n title: {\n enabled: true,\n text: 'Historical Cashflows',\n },\n data: this.props.data,\n series: [\n {\n type: 'column',\n xKey: this.props.xKey,\n yKeys: this.props.yKeys,\n yNames: this.props.yNames\n },\n {\n type: 'line',\n xKey: this.props.xKey,\n yKey: this.props.yKeyLine,\n yName: 'Cumulative Cashflow',\n },\n ],\n axes: [\n {\n type: 'category',\n position: 'bottom',\n tick: { count: 5 },\n label: {\n rotation: 335\n }\n },\n {\n type: 'number',\n position: 'left',\n tick: { count: 5 },\n label: {\n formatter: function (params) {\n return params.value / 1e6 + 'M';\n },\n },\n },\n ],\n legend: { enabled: false, position: 'bottom' }\n };\n\n return ;\n } else if (this.props.chartType === \"cartesian-pnl\") {\n options = {\n type: 'cartesian',\n theme: areaTheme,\n autoSize: true,\n title: {\n enabled: true,\n text: 'Historical CTR',\n },\n data: this.props.data,\n series: [\n {\n type: 'column',\n xKey: this.props.xKey,\n yKeys: this.props.yKeys,\n yNames: this.props.yNames\n },\n {\n type: 'line',\n xKey: this.props.xKey,\n yKey: this.props.yKeyLine,\n yName: 'Cumulative CTR',\n },\n ],\n axes: [\n {\n type: 'category',\n position: 'bottom',\n tick: { count: 5 },\n label: {\n rotation: 335\n }\n },\n {\n type: 'number',\n position: 'left',\n tick: { count: 5 }\n },\n ],\n legend: { enabled: false, position: 'bottom' }\n };\n\n return ;\n } else {\n return null;\n }\n }\n}\n\nvar myTheme = {\n baseTheme: 'ag-vivid',\n palette: {\n fills: [\n '#003396',\n '#5A89E6',\n '#77a2f7',\n '#91B7FF',\n '#73B9EE',\n '#A8C6FF',\n '#A5B7D9',\n '#B7E9F7',\n '#DBF3FA',\n '#AAB6D6',\n '#8FA3D9',\n '#7489CE',\n '#6275CC',\n '#5266C0',\n '#1647A6',\n '#285CBF',\n '#3D70D4',\n '#4750B8'\n ],\n strokes: ['#09253D']\n },\n defaults: {\n cartesian: {\n title: { fontSize: 24 },\n series: {\n column: {\n label: {\n enabled: true,\n color: 'black',\n },\n },\n },\n },\n },\n};\n\nvar areaTheme = {\n baseTheme: 'ag-vivid',\n palette: {\n fills: [\n\n '#011f4b',\n '#5A89E6', \n '#005b96', \n '#6497b1', \n '#b3cde0'\n\n // '#003396',\n // '#1647A6',\n // '#285CBF',\n // '#3D70D4',\n // '#5A89E6',\n // '#77a2f7',\n ],\n strokes: ['#09253D']\n },\n defaults: {\n cartesian: {\n title: { fontSize: 24 },\n series: {\n column: {\n label: {\n enabled: true,\n color: 'black',\n },\n },\n },\n },\n },\n};\n\nvar lineTheme = {\n baseTheme: 'ag-vivid',\n palette: {\n fills: [\n '#007E86',\n '#00AC88',\n '#907245', \n '#DFA01E',\n '#de6e56',\n '#6B4E3F',\n '#FFD700'\n],\n strokes: ['#09253D']\n },\n defaults: {\n cartesian: {\n title: { fontSize: 24 },\n series: {\n column: {\n label: {\n enabled: true,\n color: 'black',\n },\n },\n },\n },\n },\n};\n\nexport default ChartDisplay;","import React, { Component } from \"react\";\n\nexport default class extends Component {\n constructor(props) {\n super(props);\n this.checkedHandler = this.checkedHandler.bind(this);\n }\n\n checkedHandler(e) {\n let checked = e.target.checked;\n let colId = this.props.column.colId;\n this.props.node.setDataValue(colId, checked);\n if(this.props.colDef?.onUpdate)\n this.props.colDef.onUpdate(this.props);\n }\n\n render() {\n return (\n \n );\n }\n}\n","import React, { Component, createRef } from 'react';\nimport NumberFormat from 'react-number-format';\n\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_F2 = 113;\nconst KEY_ENTER = 13;\nconst KEY_TAB = 9;\n\nclass NumericEditor extends Component {\n constructor(props) {\n super(props);\n\n this.inputRef = createRef(null);\n\n this.cancelBeforeStart = this.props.charPress && '1234567890.'.indexOf(this.props.charPress) < 0;\n\n this.state = this.createInitialState(props);\n\n this.onKeyDown = this.onKeyDown.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.getFormatted = this.getFormatted.bind(this); \n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed( Number.isInteger(value) ? 0 : 2) : value;\n }\n\n componentDidMount() {\n this.setCarot();\n }\n\n render() {\n const {disabled, placeholder, name, value, suffix, prefix } = this.state;\n return (\n { \n this.setState({ value: values.floatValue }); \n }\n }\n suffix={suffix}\n prefix={prefix}\n className={'form-control inputLightP'}\n /> \n );\n }\n\n /* Component Editor Lifecycle methods */\n // the final value to send to the grid, on completion of editing\n getValue() {\n return this.state.value;\n }\n\n // Gets called once before editing starts, to give editor a chance to\n // cancel the editing before it even starts.\n isCancelBeforeStart() {\n return this.cancelBeforeStart;\n }\n\n // Gets called once when editing is finished (eg if Enter is pressed).\n // If you return true, then the result of the edit will be ignored.\n isCancelAfterEnd() {\n // will reject the number if it greater than 1,000,000\n // not very practical, but demonstrates the method.\n return this.state.value > 1000000;\n }\n\n /* Utility methods */\n createInitialState(props) {\n let startValue;\n let highlightAllOnFocus = true;\n\n if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {\n // if backspace or delete pressed, we clear the cell\n startValue = '';\n } else if (props.charPress) {\n // if a letter was pressed, we start with the letter\n startValue = props.charPress;\n highlightAllOnFocus = false;\n } else {\n // otherwise we start with the current value\n startValue = props.value;\n if (props.keyPress === KEY_F2) {\n highlightAllOnFocus = false;\n }\n }\n\n return {\n value: startValue,\n highlightAllOnFocus,\n disabled: this.props.disabled, \n placeholder: this.props.placeholder,\n name: this.props.name,\n suffix: this.props.suffix,\n prefix: this.props.prefix\n };\n }\n\n onKeyDown(event) {\n if (this.isLeftOrRight(event) || this.deleteOrBackspace(event)) {\n event.stopPropagation();\n return;\n }\n\n if (\n !this.finishedEditingPressed(event) &&\n !this.isKeyPressedNumeric(event)\n ) {\n if (event.preventDefault) event.preventDefault();\n }\n }\n\n isLeftOrRight(event) {\n return [37, 39].indexOf(event.keyCode) > -1;\n }\n\n handleChange(event) {\n this.setState({ value: event.target.value });\n }\n\n getCharCodeFromEvent(event) {\n event = event || window.event;\n return typeof event.which === 'undefined' ? event.keyCode : event.which;\n }\n\n isCharNumeric(charStr) {\n return !!/\\d/.test(charStr);\n }\n\n isKeyPressedNumeric(event) {\n const charCode = this.getCharCodeFromEvent(event);\n const charStr = event.key ? event.key : String.fromCharCode(charCode);\n return this.isCharNumeric(charStr);\n }\n\n deleteOrBackspace(event) {\n return [KEY_DELETE, KEY_BACKSPACE].indexOf(event.keyCode) > -1;\n }\n\n finishedEditingPressed(event) {\n const charCode = this.getCharCodeFromEvent(event);\n return charCode === KEY_ENTER || charCode === KEY_TAB;\n }\n\n setCarot() {\n // https://github.com/facebook/react/issues/7835#issuecomment-395504863\n setTimeout(() => {\n const currentInput = this.inputRef.current; \n if(currentInput) {\n currentInput.focus();\n if (this.state.highlightAllOnFocus) {\n currentInput.select();\n\n this.setState({\n highlightAllOnFocus: false,\n });\n } else {\n // when we started editing, we want the carot at the end, not the start.\n // this comes into play in two scenarios: a) when user hits F2 and b)\n // when user hits a printable character, then on IE (and only IE) the carot\n // was placed after the first character, thus 'apply' would end up as 'pplea'\n const length = currentInput.value ? currentInput.value.length : 0;\n if (length > 0) {\n currentInput.setSelectionRange(length, length);\n }\n }\n }\n });\n }\n}\n\nexport default NumericEditor;","import React, { Component, createRef } from 'react'; \n\nexport default class TextAreaEditor extends Component {\n constructor(props) {\n super(props);\n \n this.inputRef = createRef();\n \n this.state = {\n value: props.value\n };\n }\n \n componentDidMount() {\n this.inputRef.current.focus();\n }\n \n /* Component Editor Lifecycle methods */\n // the final value to send to the grid, on completion of editing\n getValue() {\n // this simple editor doubles any value entered into the input\n return this.state.value;\n }\n \n // Gets called once when editing is finished (eg if Enter is pressed).\n // If you return true, then the result of the edit will be ignored. \n\n render() {\n return (\n
\n this.setState({value: event.target.value})}\n value={this.state.value}\n autoComplete=\"off\"\n className={'form-control input'}\n />
\n );\n }\n }","import React, { useState, forwardRef, useImperativeHandle } from 'react';\nimport JoditEditor from \"jodit-react\";\nexport const RichTextEditor = forwardRef((props, ref) => {\n const [value, setValue] = useState(props.value);\n useImperativeHandle(ref, () => ({\n getValue() {\n return value?.replace(\"

\", \"

\")?.replace(\"

\", \"
\");\n },\n isPopup() {\n return true;\n },\n afterGuiAttached() {\n // Optionally focus or set up other functionality\n },\n })); \n \n return setValue(newContent)} // preferred to use only this option to update the content for performance reasons\n askBeforePasteHTML={false}\n askBeforePasteFromWord={false}\n defaultActionOnPaste=\"insert_clear_html\"\n />\n //return (quillRef = el ? el.getEditor() : null)}/>;\n });","import { userBALService } from './user.bal';\nimport { Utils } from '../helper/utils';\nconst {config} = require('../config');\n\n\nexport const s3BALService = {\n uploadFile,\n downloadFile,\n deleteFile,\n getFiles\n};\n\n//https://morioh.com/p/4fc51303e865\nfunction uploadFile(params) { \n let formData = new FormData();\n formData.append('file', params.file);\n return fetch(`${config.apiDDSUrl}/uploadFile/path=${params.path ?? ''}`, { body: formData, method: 'PUT', headers: { ...userBALService.getAuthHeader() } }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction downloadFile(params) {\n return fetch(`${config.apiDDSUrl}/downloadFile`, { body: JSON.stringify({fileName: params}), method: 'PUT', responseType: 'arraybuffer', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json'} }).then( data => { return Utils.handleResponseFile(data) });\n}\n\nfunction deleteFile(params) {\n return fetch(`${config.apiDDSUrl}/deleteFile`, { body: JSON.stringify(params), method: 'DELETE', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json'} }).then( data => { return Utils.handleResponse(data) });\n}\n\nfunction getFiles(params) {\n return fetch(`${config.apiDDSUrl}/getS3Files`, { body: JSON.stringify(params), method: 'PUT', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json'} }).then( data => { return Utils.handleResponse(data) });\n}\n","import { s3BALService } from '../../bal/s3.bal';\nimport React, { Component } from \"react\";\nimport Modal from 'react-awesome-modal';\n\nclass FileAttachmentEditor extends Component {\n constructor(props) {\n super(props);\n this.state = {\n value : this.props.value,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n\n //files : [{fileName : 'aa.txt', fileFullPath : 'c:\\\\temp\\\\aa.txt'} , {fileName : 'bb.txt', fileFullPath : 'c:\\\\temp\\\\bb.txt'} ]\n }\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.setFile = this.setFile.bind(this);\n this.upload = this.upload.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.remove = this.remove.bind(this);\n this.getFiles = this.getFiles.bind(this);\n if(!this.state?.value?.areFilesLoaded) {\n this.getFiles();\n }\n }\n\n isPopup() {\n return true;\n }\n\n setFile(e) {\n this.setState({\n file: e.target.files[0]\n });\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n remove(fileFullPath, fileName) { \n s3BALService.deleteFile({fileName : fileFullPath, type: this.props.value.fileType}).then(data => {\n this.updateFiles(data);\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while removing the attached file:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Attached file could not be removed, please contact support!'\n });\n });\n}\n\nupdateFiles (data) { \n const { value } = this.state;\n let colId = this.props.column.colId;\n var valueNew = {...value, files: data.files, areFilesLoaded: true }\n this.props.node.setDataValue(colId, valueNew);\n this.setState({ value: valueNew });\n}\n\n getFiles() {\n const { value } = this.state;\n const { path } = value; \n s3BALService.getFiles({ path: path.replace(/~/g, '/') }).then(data => {\n this.updateFiles(data);\n });\n }\n\n upload(e) {\n const { file, value } = this.state;\n const { path } = value;\n if(file) {\n s3BALService.uploadFile({file: file, path: path }).then(data => {\n this.setState({\n showMessage: false, \n file: null,\n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'File uploaded successfully!',\n open: false\n });\n this.updateFiles(data);\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while uploading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'File could not be uploaded, please contact support!'\n });\n }\n );\n }\n }\n \n handleKeyPress(event) {\n if (event.key === 'Enter') {\n }\n };\n\n render() {\n const { modalHeading } = this.state;\n const files = this.state?.value?.files;\n return
\n
\n
\n Select file to upload : this.setFile(file) } /> \n
\n
\n \n
\n
\n
\n {files && files.length > 0 &&

Uploaded Files:

}\n {files &&\n files.map((file, index) => ( \n
\n
\n
\n

{file.fileName.substring(file.fileName.indexOf('_') + 1)}

\n
\n
\n
this.download(file.fileFullPath, file.fileName)}>\n \n
\n
this.remove(file.fileFullPath)}>\n \n
\n
\n ))}\n
\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n \n
\n

{modalHeading}

\n \n \n
\n
\n :\n \n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n }\n}\n\nexport default FileAttachmentEditor;","import React, { Component } from 'react';\n\nexport default class RemoveButton extends Component {\n buttonClick = (e) => {\n // e is getting the current node (Row Node)*\n this.setState({\n visible:true\n });\n let deletedRow = this.props.node.data;\n e.gridApi.updateRowData({ remove: [deletedRow] }) // It will update the row\n };\n render() {\n return (\n \n );\n }\n}\n","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\n\nexport const gridLayoutBALService = {\n saveGridLayout\n ,getGridLayout\n ,getAllGridLayout\n ,removeGridLayout\n};\n\nfunction removeGridLayout(gridLayoutId, id) {\n const user = userBALService.getUserInfo()?.user;\n var data = {\n GridLayoutId : gridLayoutId \n ,UserId : user?.id\n ,Id : id\n }\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(data) };\n return fetch(`${config.apiDDSUrl}/removegridlayout`, requestOptions).then(Utils.handleResponse);\n}\nfunction saveGridLayout(gridLayoutId, id, type, sortModel, filterModel, columnState, columnGroupState, isPivotMode, isGlobal) {\n const user = userBALService.getUserInfo()?.user;\n var data = {\n GridLayoutId : gridLayoutId\n ,UserId : user?.id\n ,Id : id\n ,Type : type\n ,SortModel : JSON.stringify(sortModel)\n ,FilterModel : JSON.stringify(filterModel)\n ,ColumnState : JSON.stringify(columnState)\n ,ColumnGroupState : JSON.stringify(columnGroupState)\n ,IsPivotMode : isPivotMode\n ,IsGlobal : isGlobal ?? false\n }\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(data) };\n return fetch(`${config.apiDDSUrl}/savegridlayout`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction getGridLayout(gridId, type) {\n const user = userBALService.getUserInfo()?.user;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n const requestURL = `${config.apiDDSUrl}/getgridlayout/gridId=${gridId}/userId=${user.id}/type=${type}`;\n return fetch(requestURL, requestOptions).then(Utils.handleResponse).then(gridLayout => { return gridLayout; });\n}\n\nfunction getAllGridLayout(gridId) {\n const user = userBALService.getUserInfo()?.user;\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n const requestURL = `${config.apiDDSUrl}/getallgridlayout/gridId=${gridId}/userId=${user.id}`;\n return fetch(requestURL, requestOptions).then(Utils.handleResponse).then(gridLayoutList => { return gridLayoutList; });\n}","/*****************************************************************************************************\n * http://www.ajaxload.info/ - For generating Loading gif image\n * https://blog.ag-grid.com/persisting-ag-grid-state-with-react-redux/ - Ag grid persisting columns layout.\n * https://react.semantic-ui.com/modules/dropdown/ - React dropdown\n * https://fontawesome.com/icons?d=gallery - Fonts\n * https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages - Fonts\n*/\n\nimport CheckboxRenderer from \"../common/CheckboxRenderer\";\n\nimport React, { Component } from 'react';\nimport { Collapse } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSave, faTrash } from \"@fortawesome/free-solid-svg-icons\";\nimport { Dropdown } from 'semantic-ui-react'\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { Utils } from './../../helper/utils'; \n// Ag-Grid\nimport { AgGridReact } from 'ag-grid-react';\nimport 'ag-grid-enterprise';\nimport { LicenseManager } from \"@ag-grid-enterprise/core\";\nimport 'ag-grid-enterprise/dist/styles/ag-grid.css';\nimport '@ag-grid-community/core/dist/styles/ag-theme-alpine.css';\nimport { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';\nimport { RowGroupingModule } from '@ag-grid-enterprise/row-grouping';\nimport { SetFilterModule } from '@ag-grid-enterprise/set-filter';\nimport { MenuModule } from '@ag-grid-enterprise/menu';\nimport { AllModules } from '@ag-grid-enterprise/all-modules';\nimport { AllCommunityModules } from '@ag-grid-community/all-modules';\nimport NumericEditor from \"./numericEditor\";\nimport TextAreaEditor from \"./textAreaEditor\"; \nimport {RichTextEditor} from \"./richTextEditor\"; \nimport FileAttachmentEditor from \"./fileAttachmentEditor\";\n\nimport RemoveButton from \"./removeButton\";\n// Our components\nimport { userBALService } from '../../bal/user.bal';\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport { gridLayoutBALService } from '../../bal/gridLayout.bal';\nimport './torgrid.css'; \n\nimport { ColumnsToolPanelModule } from '@ag-grid-enterprise/column-tool-panel'; \nimport { ModuleRegistry } from '@ag-grid-community/core';\n import { CsvExportModule } from \"@ag-grid-community/csv-export\";\nimport { ExcelExportModule } from \"@ag-grid-enterprise/excel-export\";\nimport { MasterDetailModule } from \"@ag-grid-enterprise/master-detail\";\n\nModuleRegistry.registerModules([\n ClientSideRowModelModule,\n CsvExportModule,\n ExcelExportModule,\n MasterDetailModule\n]);\nLicenseManager.setLicenseKey(\"Using_this_AG_Grid_Enterprise_key_( AG-045460 )_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_( legal@ag-grid.com )___For_help_with_changing_this_key_please_contact_( info@ag-grid.com )___( Tor Investment Management )_is_granted_a_( Single Application )_Developer_License_for_the_application_( DDS )_only_for_( 2 )_Front-End_JavaScript_developers___All_Front-End_JavaScript_developers_working_on_( DDS )_need_to_be_licensed___( DDS )_has_been_granted_a_Deployment_License_Add-on_for_( 1 )_Production_Environment___This_key_works_with_AG_Grid_Enterprise_versions_released_before_( 21 September 2024 )____[v2]_MTcyNjg3MzIwMDAwMA==cb1b566e378c4f55166d73f9a205d0e8\");\n \nconst $ = window.$;\nconst {config} = require('../../config');\n\nclass TorGrid extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n //this.getDatePicker = this.getDatePicker.bind(this);\n this.state = {\n GridId: props.guikey ?? this.constructor.name + \"_default\"\n , GridIdentityColumn: props.gridIdentityColumn\n , GridTitle: props.gridTitle\n , IsHideDateInputs: props.isHideDateInputs === true\n , isHideSaveGridLayout: props.isHideSaveGridLayout === true\n , rowClassRules : props.rowClassRules\n , GridLinkColumn: props.gridLinkColumn\n , GridEditColumn: props.gridEditColumn\n , GridApproveColumn: props.gridApproveColumn\n , GridColumnList: []\n , GridGroupColumnDef: {}\n , GridLayoutIsGlobal: false\n , GridLayoutRemoveDisplay: \"none\"\n , GridFetchAgain: true\n , GridLayoutChanged: false\n , GridTypeList: []\n , GridTypeSelected: null\n , GridTypeName: \"\"\n , GridShowType: true\n , GridLoadInProgress: false\n , GridRowsToUpdate: []\n , GridRawcolumnList: []\n , GridModules: [AllModules, AllCommunityModules]\n , GridStyle: this.props.GridStyle ? this.props.GridStyle: this.props.GridWidth ? { height: '100%', margin: 'auto', overflow: 'hidden', width: this.props.GridWidth } : { height: '100%', margin: 'auto', overflow: 'hidden', width: '100%' }\n , DialogOpen: false\n , sideBar: {\n toolPanels: ['columns'],\n defaultToolPanel: ''\n }\n , modules: [ClientSideRowModelModule, RowGroupingModule, SetFilterModule, MenuModule, ColumnsToolPanelModule] \n , frameworkComponents : { fileAttachmentEditor : FileAttachmentEditor, richTextEditor: RichTextEditor, textAreaEditor: TextAreaEditor, numericEditor: NumericEditor, checkboxRenderer: CheckboxRenderer, removeButton : RemoveButton }\n , components : { datePicker: getDatePicker(this.props.dateFormat) }\n , ws: null\n , showPopup: false\n , display: \"none\"\n , isOpenGrid: false\n , isOpenLoad: true\n , isLoading: false\n , rowData: []\n , detailCellRendererParams : this.props.detailCellRendererParams ?? torGridBALService.getDetailCellRendererParams(props.guikey ?? this.constructor.name + \"_default\")\n , rowGroupPanelShow: 'always'\n , AsOfDate: null\n , Frequency: 'm'\n , Fund: null\n , MessageBoxBackground: \"Red\"\n , FrequencyList: [{ key: \"m\", text: \"Monthly\", value: \"m\" }\n , { key: \"d\", text: \"Daily\", value: \"d\" }\n , { key: \"w\", text: \"Weekly\", value: \"w\" }\n , { key: \"q\", text: \"Quaterly\", value: \"q\" }\n ]\n }\n\n this.refresh = this.refresh.bind(this);\n this.saveGridLayout = this.saveGridLayout.bind(this);\n this.removeGridLayout = this.removeGridLayout.bind(this);\n this.handleCloseErrorBox = this.handleCloseErrorBox.bind(this);\n this.handleCloseDialog = this.handleCloseDialog.bind(this);\n this.handleClickOpen = this.handleClickOpen.bind(this);\n this.handleChangeGridText = this.handleChangeGridText.bind(this);\n this.setGridLayout = this.setGridLayout.bind(this);\n this.getGridLayout = this.getGridLayout.bind(this);\n this.onFirstDataRendered = this.onFirstDataRendered.bind(this);\n this.openErrorBox = this.openErrorBox.bind(this);\n this.getSelectedGridType = this.getSelectedGridType.bind(this);\n this.handleCheckGridLayoutIsGlobal = this.handleCheckGridLayoutIsGlobal.bind(this);\n this.handleDropDownChangeGridType = this.handleDropDownChangeGridType.bind(this);\n this.intervalFunc = this.intervalFunc.bind(this);\n this.showError = this.showError.bind(this);\n this.getLink = this.getLink.bind(this);\n Utils.wAvgRating = Utils.wAvgRating.bind(this);\n this.exportDataAsExcel = this.exportDataAsExcel.bind(this);\n this.shouldRowBeSkipped = this.shouldRowBeSkipped.bind(this);\n this.rowGroupCallback = this.rowGroupCallback.bind(this);\n this.getContextMenuItems = this.getContextMenuItems.bind(this);\n this.processColumn = this.processColumn.bind(this);\n this.getDefaultIsOpenGrid = this.getDefaultIsOpenGrid.bind(this);\n this.addNew = this.addNew.bind(this);\n this.refresh();\n }\n\n getDefaultIsOpenGrid(defaultValue) {\n return (this?.props?.isOpenGrid !== undefined) ? this?.props?.isOpenGrid : defaultValue;\n }\n\n componentDidMount() {\n //this.worker = new WebWorker(torgridworker);\n //this.startWorker();\n this.mounted = true;\n //if (this.mounted) this.connectServer();\n }\n\n componentDidUpdate(prevProps) {\n //console.log(prevProps)\n\n if (prevProps.rowData !== this.props.rowData || prevProps.query !== this.props.query || prevProps.toggleRefresh !== this.props.toggleRefresh) {\n this.refresh();\n }\n else if(prevProps.GridRowsToAdd !== this.props.GridRowsToAdd) {\n this.gridApi.batchUpdateRowData({ add: this.props.GridRowsToAdd });\n }\n else if(prevProps.GridRowsToUpdate !== this.props.GridRowsToUpdate) {\n this.gridApi.batchUpdateRowData({ update: this.props.GridRowsToUpdate });\n } else if ((prevProps.groupBy ?? '') !== (this.props.groupBy ?? '') || JSON.stringify(prevProps.groupColumns ?? []) !== JSON.stringify(this.props.groupColumns ?? [])) {\n this.setState({\n isLoading: true,\n isOpenGrid: false\n }, async () => {\n var columnList = this.state.GridRawcolumnList.map(column => {\n return {\n ...column,\n rowGroup: column.rowGroup || (column.col && column.col !== '' && column.col === this.props.groupBy) || (column.col && column.col !== '' && this.props.groupColumns && this.props.groupColumns.includes(column.col))\n , rowGroupIndex: (column.col && this.props.groupColumns && this.props.groupColumns.includes(column.col)) ? this.props.groupColumns.indexOf(column.col) : -1\n }\n });\n \n var groupColumnList = Utils.getColumnList(columnList);\n\n if(this.props.sortColumn !== true || (this.props.sortColumn && this.state.rowData?.length > 0)) {\n this.setState({ \n GridColumnList: groupColumnList\n }, async () => {\n await new Promise(resolve => setTimeout(resolve, 2000));\n \n await this.refresh();\n\n this.setState({\n isLoading: false,\n isOpenGrid: true\n });\n });\n }\n });\n }\n }\n\n componentWillUnmount() {\n if (this.mounted) {\n const { ws } = this.state;\n //console.log('Trader : componentWillUnmount');\n if (ws !== null && ws.readyState !== WebSocket.CLOSED) {\n ws.close();\n this.setState({ ws: ws });\n }\n }\n }\n\n connectServer = () => {\n var ws = new WebSocket(config.wsUrl);\n var connectInterval;\n\n ws.onopen = () => {\n //console.log(\"Connected...\");\n const { user } = this.state;\n this.timeout = 250;\n clearTimeout(connectInterval);\n\n if (this.mounted) {\n //console.log(\"Setting state...\");\n this.setState({ ws: ws, display: \"none\" });\n var _updateConnection = this.getData(\"updateConnection\", JSON.parse(user));\n ws.send(_updateConnection);\n }\n };\n\n ws.onmessage = e => {\n //console.log(\"On new message...\");\n //const { user } = this.state;\n let data = JSON.parse(e.data);\n //console.log(\"New Message - \" + row.Traders);\n\n switch (data.__MESSAGE__) {\n case \"security_tick\":\n var res = data['PX_LAST'] && !isNaN(data['PX_LAST']);\n if (res) {\n var security = data['SECURITIES'];\n var rows = this.state.rowData?.filter(row => row['cusip'] === security || row['investment code'] === security || row['isin'] === security)\n\n if (rows && rows.length > 0) {\n var rowsFound = rows.map(row1 => {\n const newprice = parseFloat(data['PX_LAST']) + Utils.randomBetween(1, 10) / 100;\n return {\n ...row1\n , 'ending local price': newprice\n , 'Mark_wAvg1': newprice\n , 'color': row1['ending local price'] < data['PX_LAST'] ? \"green\" : \"red\"\n };\n });\n\n rowsFound.forEach(row => {\n this.state.GridRowsToUpdate.push(row);\n });\n //this.gridApi.batchUpdateRowData({update: rows});\n }\n }\n break;\n default:\n break;\n }\n //console.log(tradersList);\n };\n\n ws.onerror = (e) => {\n //console.log(\"On error message...\");\n if (this.mounted) { this.setState({ display: 'block', error: `Socket is closed. Reconnecting in ${Math.min(10000 / 1000, (this.timeout + this.timeout) / 1000)} second.` }); }\n //console.log();\n this.timeout = this.timeout + this.timeout;\n connectInterval = setTimeout(this.check, Math.min(10000, this.timeout));\n //console.log(\"End On error message...\");\n };\n ws.onclose = (e) => {\n if (ws != null) { ws.close(); }\n //console.log(\"completed on close message...\");\n };\n };\n /*********************************************************************************************/\n\n /*****************************************************************************************************/\n check = () => {\n const { ws } = this.state;\n //check if websocket instance is closed, if so call `connectServer` function.\n if (!ws || ws.readyState === WebSocket.CLOSED) this.connectServer();\n };\n /***************************************************************************************************/\n\n /****************************************************************************************************/\n getData(messageType, payload) {\n //Copy the values from the payload object, if one was supplied\n var payloadCopy = {};\n if (payload !== undefined && payload !== null) {\n var keys = Object.keys(payload);\n for (var index in keys) {\n var key = keys[index];\n payloadCopy[key] = payload[key];\n }\n }\n payloadCopy['__MESSAGE__'] = messageType;\n return JSON.stringify(payloadCopy);\n }\n /***************************************************************************************************/\n\n handleChangeGridText(e) {\n const { value } = e.target;\n this.setState({ GridTypeName: value });\n }\n\n handleClickOpen = () => {\n this.setState({ DialogOpen: true });\n };\n\n handleCloseDialog = () => {\n this.setState({ DialogOpen: false });\n };\n\n openErrorBox(error) {\n const error_message = `Error loading data - ${error}`\n this.setState({\n display: \"inline\",\n MessageBoxBackground: \"Red\",\n error: error_message\n });\n }\n\n openMessageBox(message) {\n this.setState({\n display: \"inline\",\n MessageBoxBackground: \"Green\",\n error: message\n });\n }\n\n getSelectedGridType() {\n var list = this.state.GridTypeList.filter(gridLayout => gridLayout.gridLayoutId === this.state.GridTypeSelected)\n var result = null;\n if (list && list.length > 0)\n result = list[0].type;\n return result;\n }\n\n removeGridLayout() {\n const { GridTypeSelected, GridId } = this.state;\n if (GridTypeSelected === 0) this.openErrorBox('Cannot remove!');\n const gridLayoutType = this.getSelectedGridType();\n if (!gridLayoutType || gridLayoutType === \"\") {\n this.openErrorBox('Grid Name cannot be blank');\n return;\n }\n gridLayoutBALService.removeGridLayout(GridTypeSelected, GridId).then(data => {\n //var d = JSON.parse(data);\n this.getGridLayout(gridLayoutType);\n this.setState({ GridTypeName: \"\" });\n this.openMessageBox(\"Grid Layout have been removed successfully!!!\");\n }\n , error => {\n this.openErrorBox(error);\n console.log(error);\n });\n }\n\n saveGridLayout() {\n this.handleCloseErrorBox();\n const gridLayoutType = this.state.GridTypeSelected === 0 ? this.state.GridTypeName : this.getSelectedGridType();\n if (!gridLayoutType || gridLayoutType === \"\") {\n this.openErrorBox('Grid Name cannot be blank');\n return;\n }\n\n const { GridTypeSelected, GridId, GridLayoutIsGlobal } = this.state;\n //const {GridSortModel, GridFilterModel, GridColumnState, GridColumnGroupState, GridIsPivotMode } = this;\n\n var GridSortModel = this.gridApi?.getSortModel();\n var GridFilterModel = this.gridApi?.getFilterModel();\n var GridColumnState = this.gridColumnApi?.getColumnState();\n var GridColumnGroupState = this.gridColumnApi?.getColumnGroupState();\n var GridIsPivotMode = this.gridColumnApi?.isPivotMode();\n\n gridLayoutBALService.saveGridLayout(\n GridTypeSelected\n , GridId\n , gridLayoutType\n , GridSortModel\n , GridFilterModel\n , GridColumnState\n , GridColumnGroupState\n , GridIsPivotMode\n , GridLayoutIsGlobal\n ).then(data => {\n //var d = JSON.parse(data);\n this.getGridLayout(gridLayoutType);\n this.setState({ GridTypeName: \"\" });\n this.openMessageBox(\"Grid Layout have been saved successfully!!!\");\n }\n , error => {\n this.openErrorBox(error);\n console.log(error);\n });\n }\n\n getLink(params, action) {\n var link = document.createElement('a');\n link.href = '_blank';\n link.target = '_blank'\n link.innerText = action === \"Show Changes\" || action === \"Edit\" ? (this.props.isRowSelectable(params.node) ? action : '') : (params.value ?? '');\n //link.style = \"cursor: 'pointer\";\n link.addEventListener('click', (e) => {\n e.preventDefault();\n var a = { target: { name: this.state.GridIdentityColumn, value: params.data[this.state.GridIdentityColumn], data: params.data, action: action } };\n this.props.handleRowSelected(a);\n });\n return link;\n }\n\n refresh() {\n this.setState({\n isOpenGrid: false,\n isOpenLoad: true,\n display: \"none\",\n ...(this.props.sortColumn) && {GridColumnList: [], GridRawcolumnList: []}\n });\n\n var columnPromise = [];\n\n if(this.props.toggleColumn) {\n columnPromise = torGridBALService.getColumnListToggle(this.state.GridId);\n } else {\n columnPromise = torGridBALService.getColumnList(this.state.GridId);\n }\n \n if (columnPromise)\n columnPromise.then(data => {\n var gridColumns = data;\n var columnList = gridColumns.columnSpecs.filter(gridColumn => gridColumn['ag-grid'] === true);\n\n columnList = columnList.map(gridColumn => {\n return this.processColumn(gridColumn)\n });\n\n var SnPRatingMap = gridColumns.SnPRatingMap;\n var SnPRatingMapReverse = {};\n if (gridColumns.SnPRatingMap) {\n Object.keys(SnPRatingMap).forEach(element => {\n SnPRatingMapReverse[SnPRatingMap[element]] = element;\n });\n }\n\n if (this.props.rowData) {\n columnList = this.processRows(this.props.rowData, columnList, SnPRatingMapReverse, SnPRatingMap);\n //this.handleDropDownChangeGridType(null, {value : this.state.GridTypeSelected, isRefresh : true });\n } else if (this.props.query) {\n torGridBALService.getRowData(this.state.GridId, { query: this.props.query, RowData: this.props.RowData, Fund: this.state.Fund ?? this.props.Fund, AsOfDate: this.state.AsOfDate ?? this.props.AsOfDate, Frequency: this.props.Frequency ??this.state.Frequency }).then(data => {\n columnList = this.processRows(data, columnList, SnPRatingMapReverse, SnPRatingMap, true);\n }, error => {\n this.showError(error);\n });\n } else {\n columnList = this.processRows([], columnList, SnPRatingMapReverse, SnPRatingMap);\n }\n }, error => {\n this.showError(error);\n });\n }\n\n processColumn(gridColumn) {\n var fieldName = Utils.getFieldName(gridColumn.display, gridColumn.agg ?? gridColumn.aggfunc);\n var isCol = gridColumn.agg !== \"wAvg\" && gridColumn.agg !== \"geometricProduct\" && gridColumn.agg !== \"notionalSum\" && gridColumn.agg !== \"portfolioReturn\" && gridColumn.aggfunc !== \"wAvgRating\" && gridColumn.agg !== \"sumif\" && gridColumn.agg !== \"pctif\" && gridColumn.agg !== \"percent\" && gridColumn.agg !== \"aggDiv\" && gridColumn.agg !== \"aggDivIf\" && gridColumn.agg !== \"dominant\" && gridColumn.agg !== \"count\";\n return {\n ...gridColumn\n , rowGroup: gridColumn.rowGroup || (gridColumn.col && this.props.groupBy === gridColumn.col) || (gridColumn.col && this.props.groupColumns && this.props.groupColumns.includes(gridColumn.col))\n , rowGroupIndex:(gridColumn.col && this.props.groupColumns && this.props.groupColumns.includes(gridColumn.col)) ? this.props.groupColumns.indexOf(gridColumn.col) : -1\n , headerName: gridColumn.display\n , headerTooltip: gridColumn.display\n , ...(isCol) && { field: gridColumn.col }\n , ...(!isCol && gridColumn.agg !== \"wAvg\" && gridColumn.agg !== \"geometricProduct\" && gridColumn.agg !== \"notionalSum\" && gridColumn.agg !== \"portfolioReturn\" && gridColumn.aggfunc !== \"wAvgRating\" && gridColumn.agg !== \"aggDivIf\") && { field: fieldName }\n , ...(gridColumn.agg === \"wAvg\") && { field: fieldName + \"1\" }\n , ...(gridColumn.aggfunc === \"wAvgRating\") && { field: fieldName + \"2\" }\n , ...(gridColumn.agg === \"aggDivIf\") && { field: fieldName + \"3\" }\n , ...(gridColumn.agg === \"count\") && { field: fieldName + \"4\" }\n , ...(gridColumn.agg === \"geometricProduct\") && { field: fieldName + \"5\" }\n , ...(gridColumn.agg === \"portfolioReturn\") && { field: fieldName + \"6\" }\n , ...(gridColumn.agg === \"notionalSum\") && { field: fieldName + \"7\" }\n , valueFormatter: Utils.agValueFormatter\n , cellStyle: Utils.cellClassNegative\n , headerClass: 'resizable-header'\n , resizable: true\n , ...((gridColumn.agg === \"sum\" || gridColumn.agg === \"min\") && { aggFunc: gridColumn.agg })\n , ...((gridColumn.agg === \"uniq\") && { aggFunc: Utils.uniq })\n , ...((gridColumn.agg === \"wAvg\") && { aggFunc: Utils.wAvg })\n , ...((gridColumn.agg === \"geometricProduct\") && { aggFunc: Utils.geometricProduct })\n , ...((gridColumn.agg === \"notionalSum\") && { aggFunc: Utils.notionalSum })\n , ...((gridColumn.agg === \"portfolioReturn\") && { aggFunc: Utils.portfolioReturn })\n , ...((gridColumn.aggfunc === \"wAvgRating\") && { aggFunc: Utils.wAvgRating })\n , ...((gridColumn.agg === \"aggDiv\") && { aggFunc: Utils.aggDiv })\n , ...((gridColumn.agg === \"dominant\") && { aggFunc: Utils.dominant })\n , ...((gridColumn.agg === \"count\") && { aggFunc: Utils.countUnique })\n , ...((gridColumn.agg === \"aggDivIf\") && { aggFunc: Utils.aggDivIf })\n , ...((gridColumn.agg === \"sumif\" || gridColumn.agg === \"pctif\" || gridColumn.agg === \"percent\") && { aggFunc: \"sum\" })\n , ...(gridColumn.display === this.state.GridLinkColumn) && {\n cellRenderer: (params) => { return this.getLink(params, \"Link\") }\n }\n , ...(gridColumn.display === this.state.GridEditColumn) && {\n cellRenderer: (params) => { return this.getLink(params, \"Edit\") }\n }\n , ...(gridColumn.display === this.state.GridApproveColumn) && {\n cellRenderer: (params) => { return this.getLink(params, \"Show Changes\") }\n }\n }\n }\n\n processRows(data, columnList, SnPRatingMapReverse, SnPRatingMap) {\n if(data && data.length > 0) {\n columnList = columnList.map(gridColumn => {\n let display = gridColumn.display;\n let header = '';\n if(display.includes('.')) {\n const values = display.split('.');\n display = values[1];\n header = values[0] + '.';\n }\n if(display?.startsWith('!{col') && display?.endsWith('}')) {\n let column = display.substring(2, display.length - 1 );\n let columns = Object.keys(data[0]).filter(col =>col.startsWith(column));\n if(columns?.length > 0)\n return this.processColumn({\n ...gridColumn,\n display: header + columns[0].substring(7),\n col: columns[0].replace('.', ''),\n col3: columns[0]\n });\n }\n return gridColumn;\n });\n }\n \n var rowData = data;\n\n columnList.forEach(gridColumn => {\n var filterList = null;\n var numcol = gridColumn.agg === \"aggDivIf\" ? gridColumn.col : gridColumn.numcol;\n var denomcol = gridColumn.agg === \"aggDivIf\" ? gridColumn.col : gridColumn.denomcol;\n var denomvalue = 0;\n var fieldName = Utils.getFieldName(gridColumn.display, gridColumn.agg ?? gridColumn.aggfunc);\n\n if (gridColumn.fltr) {\n var filters = Object.keys(gridColumn.fltr)\n filterList = filters.map(filter => {\n return {\n column: filter\n , value: gridColumn.fltr[filter]\n }\n });\n }\n\n var rowDataFiltered = rowData;\n if (gridColumn.agg === \"pctif\" && filterList && filterList.length > 0) {\n rowDataFiltered = rowData;\n filterList.forEach(filter => {\n rowDataFiltered = rowDataFiltered.filter(row => row[filter.column] === filter.value && denomcol && numcol && row[numcol] && row[denomcol]);\n });\n denomvalue = rowDataFiltered.reduce((denominator, row) => denominator + row[denomcol], 0);\n } else if (gridColumn.agg === \"percent\" && gridColumn.cols && gridColumn.cols.length > 1) {\n denomvalue = rowData.reduce((denominator, row) => denominator + row[gridColumn.cols[1]], 0);\n }\n //var row_id = 0;\n //var GridIdentityColumn = this.state.GridIdentityColumn;\n const { ignoreBlanks } = this.props;\n\n if (ignoreBlanks) {\n rowData = rowData.filter(row => (row && row[ignoreBlanks] && row[ignoreBlanks] !== 0 && row[ignoreBlanks] !== ''));\n }\n\n rowData = rowData.map(row => { //++row_id; \n var newRow = {\n ...row\n , ...(gridColumn?.col2?.startsWith('!{col') && gridColumn?.col2?.endsWith('}')) && {[gridColumn.col]: row[gridColumn.col3]}\n , ...(gridColumn.aggfunc === \"wAvgRating\" && !(row['rating num'] && row['asset mv'] && row['rating num'] !== 0)) && { [fieldName + '2']: Utils.createValueObject2(0, 0, 'NR') }\n , ...(gridColumn.aggfunc === \"wAvgRating\" && row['rating num'] && row['asset mv'] && row['rating num'] !== 0) && { [fieldName + '2']: Utils.createValueObject2(row['rating num'], row['asset mv'], SnPRatingMapReverse[row['rating num']] ? SnPRatingMapReverse[row['rating num']] : 'NR') }\n , ...(gridColumn.agg === \"wAvg\" && !(gridColumn.cols && gridColumn.cols[0] && row[gridColumn.cols[0]])) && { [fieldName + '1']: Utils.createValueObject2(0, 0, 0) }\n , ...(gridColumn.agg === \"wAvg\" && gridColumn.cols && gridColumn.cols[0] && row[gridColumn.cols[0]]) && { [fieldName + '1']: Utils.createValueObject2(row[gridColumn.cols[0]], row[gridColumn.cols[1]], Utils.getValueFormatted(row[gridColumn.cols[0]])) }\n , ...(gridColumn.agg === \"geometricProduct\" && !(gridColumn.col)) && { [fieldName + '5']: 0 }\n , ...(gridColumn.agg === \"geometricProduct\" && gridColumn.col) && { [fieldName + '5']: row[gridColumn.col] }\n , ...(gridColumn.agg === \"notionalSum\" && !gridColumn.col) && { [fieldName + '7']: 0 }\n , ...(gridColumn.agg === \"notionalSum\" && gridColumn.col ) && { [fieldName + '7']: row[gridColumn.col] }\n , ...(gridColumn.agg === \"portfolioReturn\" && !(gridColumn.args)) && { [fieldName + '6']: 0 }\n , ...(gridColumn.agg === \"portfolioReturn\" && gridColumn.args) && { [fieldName + '6']: Utils.getDivide(row[gridColumn.args[0]], row[gridColumn.args[1]]) }\n , ...(gridColumn.agg === \"sumif\" && Utils.doesMatchFilter(row, filterList) && row[gridColumn.col]) && { [fieldName]: row[gridColumn.col] }\n , ...(gridColumn.agg === \"sumif\" && !(Utils.doesMatchFilter(row, filterList) && row[gridColumn.col])) && { [fieldName]: 0 }\n , ...(gridColumn.agg === \"pctif\" && !(Utils.doesMatchFilter(row, filterList) && denomcol && numcol && row[numcol] && row[denomcol] && row[denomcol] !== 0)) && { [fieldName]: 0 }\n , ...(gridColumn.agg === \"pctif\" && Utils.doesMatchFilter(row, filterList) && denomcol && numcol && row[numcol] && row[denomcol] && row[denomcol] !== 0) && { [fieldName]: row[numcol] / denomvalue }\n , ...(gridColumn.agg === \"percent\" && gridColumn.cols && gridColumn.cols.length > 1) && { [fieldName]: Utils.getDivide(row[gridColumn.cols[0]], denomvalue) }\n , ...(gridColumn.agg === \"percent\" && !(gridColumn.cols && gridColumn.cols.length > 1)) && { [fieldName]: '' }\n , ...(gridColumn.agg === \"aggDiv\" && gridColumn.numcols && gridColumn.numcols.length > 0 && gridColumn.denomcols && gridColumn.denomcols.length > 0) && { [fieldName]: Utils.createValueObject2(0, 0, Utils.getAggDiv([row], gridColumn)) }\n , ...(gridColumn.agg === \"aggDiv\" && !(gridColumn.numcols && gridColumn.numcols.length > 0 && gridColumn.denomcols && gridColumn.denomcols.length > 0)) && { [fieldName]: Utils.createValueObject2(0, 0, '') }\n , ...(gridColumn.agg === \"aggDivIf\" && !Utils.doesMatchFilter(row, filterList)) && { [fieldName + '3']: 0 }\n , ...(gridColumn.agg === \"aggDivIf\" && Utils.doesMatchFilter(row, filterList)) && { [fieldName + '3']: 1 }\n , ...(gridColumn.agg === \"dominant\" && (gridColumn.cols && gridColumn.cols[0] && row[gridColumn.cols[0]])) && { [fieldName]: Utils.createValueObject2(row[gridColumn.cols[0]], row[gridColumn.cols[1]], row[gridColumn.cols[0]]) }\n , ...(gridColumn.agg === \"dominant\" && !(gridColumn.cols && gridColumn.cols[0] && row[gridColumn.cols[0]])) && { [fieldName]: Utils.createValueObject2(null, null, '') }\n , ...(gridColumn.agg === \"count\" && (gridColumn.cols && gridColumn.cols[0] && row[gridColumn.cols[0]] && gridColumn.cols[1] && row[gridColumn.cols[1]])) && { [fieldName + '4']: row[gridColumn.cols[1]] !== 0 ? 1 : 0 }\n , ...(gridColumn.agg === \"count\" && !(gridColumn.cols && gridColumn.cols[0] && row[gridColumn.cols[0]] && gridColumn.cols[1] && row[gridColumn.cols[1]])) && { [fieldName + '4']: 0 }\n };\n //newRow[GridIdentityColumn] = row_id;\n return newRow;\n\n });\n });\n\n const sortColumn = this.props.sortColumn;\n if(sortColumn) {\n columnList = columnList.sort((column1, column2) => (column1.displayIndex > column2.displayIndex) ? 1 : -1);\n }\n\n var groupColumnList = Utils.getColumnList(columnList);\n var autoGroupColumnDef = torGridBALService.getAutoGroupColumnDef(this.state.GridId);\n\n \n\n this.setState({\n rowData: rowData\n , isOpenGrid: true\n , isOpenLoad: false\n , display: \"none\"\n ,...(this.props.sortColumn !== true || (this.props.sortColumn && rowData?.length > 0)) && {GridColumnList: groupColumnList, GridRawcolumnList: columnList, GridGroupColumnDef: autoGroupColumnDef}\n , SnPRatingMap: SnPRatingMap\n , SnPRatingMapReverse: SnPRatingMapReverse\n });\n\n //var intervalId;\n setInterval(this.intervalFunc, 1000);\n return columnList;\n }\n\n\n showError(error) {\n this.setState({\n isOpenGrid: false,\n isOpenLoad: false\n });\n this.openErrorBox(error);\n console.log(error);\n }\n\n intervalFunc() {\n if (this.state.GridRowsToUpdate && this.state.GridRowsToUpdate.length > 0) {\n this.gridApi.batchUpdateRowData({ update: this.state.GridRowsToUpdate });\n this.setState({ GridRowsToUpdate: [] });\n }\n }\n\n\n handleCloseErrorBox = () => {\n this.setState({ display: \"none\" });\n }\n\n handleChangeAsOfDate = date => {\n this.setState({ AsOfDate: date });\n };\n\n handleDropDownChangeFrequency = (event, data) => {\n const Frequency = data.value\n this.setState({\n Frequency: Frequency\n });\n };\n\n\n\n handleDropDownChangeGridType = (event, data) => {\n this.setState({\n isLoading: true\n , isOpenGrid: false\n , GridTypeSelected: data.value\n }, async () => {\n var isGlobal = false;\n var isRemoveDisplay = false;\n\n const GridTypeSelectedTemp = data.value;\n\n var index = this.state.GridTypeList.findIndex(item => item.value === GridTypeSelectedTemp);\n if (index > -1 && this.state.GridTypeList && this.state.GridTypeList.length > index) {\n isGlobal = this.state.GridTypeList[index].isGlobal;\n isRemoveDisplay = this.state.GridTypeList[index].isRemoveDisplay;\n }\n\n if(data.value === 0) {\n this.setState({\n GridShowType: true\n });\n } else {\n this.setState({\n GridShowType: false\n });\n }\n\n await new Promise(resolve => setTimeout(resolve, 1000));\n\n await this.setGridLayout(index);\n \n\n this.setState({\n GridLayoutIsGlobal: isGlobal\n , GridLayoutRemoveDisplay: isRemoveDisplay\n }, () => {\n this.setState({\n isLoading: false\n , isOpenGrid: true\n })\n });\n });\n \n //this.gridApi.refreshClientSideRowModel('aggregate');\n };\n\n render() {\n return this.getPage();\n }\n\n onFirstDataRendered(params) {\n //Load Filter \n //this.gridApi.refreshClientSideRowModel('aggregate');\n\n const { GridFilterModel, GridColumnState, GridColumnGroupState, GridIsPivotMode, GridSortModel } = params?.state ?? this;\n\n this.gridApi.setColumnDefs(this.state.GridColumnList);\n\n if (GridFilterModel) {\n this.gridApi.setFilterModel(GridFilterModel);\n }\n\n //Load Column State \n if (GridColumnState) {\n this.gridColumnApi.setColumnState(GridColumnState);\n //console.log(GridColumnState);\n }\n\n if (GridColumnGroupState) {\n this.gridColumnApi.setColumnGroupState(GridColumnGroupState);\n }\n\n //Load Pivot settings\n let isPivotModeDifferent = this.gridColumnApi?.isPivotMode() !== GridIsPivotMode;\n\n if (isPivotModeDifferent) {\n this.gridColumnApi.setPivotMode(GridIsPivotMode);\n }\n\n //Load Sort\n if (GridSortModel) {\n this.gridApi.setSortModel(GridSortModel);\n }\n\n this.setState({ GridLoadInProgress: false, GridLayoutChanged: false });\n //this.gridApi.refreshClientSideRowModel('aggregate');\n this.gridColumnApi.autoSizeColumns();\n //this.gridColumnApi.sizeColumnsToFit();\n }\n\n setGridLayout = async (index) => {\n if (index > -1 && this.state.GridTypeList.length > index) {\n var gridLayout = this.state.GridTypeList[index];\n\n const GridFilterModel = gridLayout.filterModel ? JSON.parse(gridLayout.filterModel) : '';\n const GridColumnState = gridLayout.columnState ? JSON.parse(gridLayout.columnState) : '';\n const GridColumnGroupState = gridLayout.columnGroupState ? JSON.parse(gridLayout.columnGroupState) : '';\n const GridIsPivotMode = gridLayout.isPivotMode ? gridLayout.isPivotMode : '';\n const GridSortModel = gridLayout.sortModel ? JSON.parse(gridLayout.sortModel) : '';\n\n //this.debounceSaveGridColumnState(GridColumnState);\n //this.debounceSaveGridColumnGroupState(GridColumnGroupState);\n //this.saveGridSortModel(GridSortModel);\n //this.saveGridFilterModel(GridFilterModel);\n //this.debounceSaveGridPivotModeState(GridIsPivotMode);\n await this.onFirstDataRendered({\n state: {\n GridFilterModel: GridFilterModel\n , GridColumnState: GridColumnState\n , GridColumnGroupState: GridColumnGroupState\n , GridIsPivotMode: GridIsPivotMode\n , GridSortModel: GridSortModel\n }\n });\n\n var columnList = this.state.GridRawcolumnList.map(column => {\n return {\n ...column,\n rowGroup: column.rowGroup || (column.col && column.col !== '' && column.col === this.props.groupBy) || (column.col && column.col !== '' && this.props.groupColumns && this.props.groupColumns.includes(column.col))\n , rowGroupIndex: (column.col && this.props.groupColumns && this.props.groupColumns.includes(column.col)) ? this.props.groupColumns.indexOf(column.col) : -1\n }\n });\n var groupColumnList = Utils.getColumnList(columnList);\n this.setState({ GridColumnList: groupColumnList });\n this.refresh();\n }\n //this.gridApi.setRowData(this.state.rowData);\n //this.gridApi.refreshClientSideRowModel('aggregate');\n }\n\n getGridLayout(gridLayoutType) {\n this.setState({ GridLoadInProgress: true, GridLayoutChanged: false });\n const userId = userBALService.getUserInfo()?.user?.id;\n gridLayoutBALService.getAllGridLayout(this.state.GridId).then(data => {\n if (data) {\n let gridLayoutList = data.map(gridLayout => {\n return {\n ...gridLayout\n , key: gridLayout.gridLayoutId\n , text: gridLayout.type\n , value: gridLayout.gridLayoutId\n , isRemoveDisplay: gridLayout.userId === userId ? \"inline\" : \"none\"\n }\n }\n );\n\n //var gridLayoutListstr = JSON.stringify(gridLayoutList);\n\n let newGridLayout = {\n key: 0, text: \"Add New\", value: 0,\n gridLayoutId: 0, userId: 0, id: 0, type: \"Add New\", sortModel: null, filterModel: null, columnState: null, columnGroupState: null, isPivotMode: false, isGlobal: false, isRemoveDisplay: \"none\"\n };\n\n var gridLayoutListFinal = [newGridLayout].concat(gridLayoutList);\n var index = gridLayoutListFinal.findIndex(item => item.text === gridLayoutType);\n\n if(index < 0 && this.props.GridTypeSelected) {\n index = gridLayoutListFinal.findIndex(item => item.text === this.props.GridTypeSelected);;\n }\n else if (index < 0)\n index = 0;\n\n const GridLayoutIsGlobal = gridLayoutListFinal[index].isGlobal;\n const GridTypeSelected = gridLayoutListFinal[index].gridLayoutId;\n const GridShowType = ((gridLayoutListFinal && gridLayoutListFinal.length < 2) || index === 0);\n\n this.setState({\n GridTypeList: gridLayoutListFinal\n , GridLayoutIsGlobal: GridLayoutIsGlobal\n , GridTypeSelected: GridTypeSelected\n , GridShowType: GridShowType\n }, () => {\n this.setGridLayout(index);\n });\n \n }\n }, error => {\n this.openErrorBox(error);\n console.log(error);\n }\n );\n }\n\n autoSizeAll = (skipHeader) => {\n var allColumnIds = [];\n this.gridColumnApi.getAllColumns().forEach(function (column) {\n allColumnIds.push(column.colId);\n });\n this.gridColumnApi.autoSizeColumns(allColumnIds, skipHeader);\n };\n\n handleCheckGridLayoutIsGlobal(e) {\n const { checked } = e.target;\n this.setState({\n GridLayoutIsGlobal: checked\n });\n }\n\n getRowHeight(params) {\n return params?.data?.rowHeight ?? \"auto\";\n }\n onGridReady(params) {\n this.gridApi = params.api;\n if (this.props.setAgGridAPI)\n this.props.setAgGridAPI(params.api);\n this.gridColumnApi = params.columnApi;\n\n params.api.gridPanel.eAllCellContainers.forEach(\n function (container) {\n container.addEventListener('keydown', keyDownFunc);\n });\n var allColumnIds = [];\n this.gridColumnApi.getAllColumns().forEach(function (column) {\n allColumnIds.push(column.colId);\n });\n //this.gridColumnApi.autoSizeColumns(allColumnIds, false);\n\n // When reloading the page and getting the state from local storage, fetch again the data for the currently displayed grid\n\n if (this.state.GridFetchAgain) {\n this.getGridLayout(null);\n this.setState({\n GridFetchAgain: false\n });\n }\n }\n\n getContextMenuItems(params) {\n var result = [\n {\n name: 'Export',\n action: this.exportDataAsExcel,\n },\n 'separator',\n 'copy'\n ]\n\n return result;\n }\n\n shouldRowBeSkipped(params) {\n if(params.node.level === 0) {\n return false;\n } else {\n return ! params.node.parent?.expanded;\n }\n }\n\n rowGroupCallback(params) {\n return params.node.key;\n }\n\n exportDataAsExcel() {\n this.gridApi.exportDataAsExcel({\n shouldRowBeSkipped: this.shouldRowBeSkipped, \n columnGroups: true,\n processRowGroupCallback: this.rowGroupCallback\n });\n }\n\n addNew() {\n //const { rowData } = this.state;\n const { identitySeed, gridIdentityColumn} = this.props;\n const { rowsToDisplay } = this.gridApi.rowModel \n\n var maxvalue = Math.max.apply(Math, rowsToDisplay.filter(p => p[gridIdentityColumn] < 0 ).map(function(o) { return o[gridIdentityColumn]; }));\n\n if(maxvalue < identitySeed)\n maxvalue = identitySeed;\n\n let identityvalue = (maxvalue ?? 0) + 1;\n if (identityvalue < (identitySeed ?? 0)) {\n identityvalue = identityvalue + identitySeed;\n }\n\n let newItem = { [gridIdentityColumn]: identityvalue, isNew :true };\n this.gridApi.updateRowData({add: [newItem]});\n }\n\n getPage() {\n const { rowClassRules, MessageBoxBackground, GridGroupColumnDef, detailCellRendererParams, components, GridTitle, rowData, GridIdentityColumn, GridTypeName, GridLayoutIsGlobal, error, isOpenGrid, display, GridTypeList, GridTypeSelected, GridColumnList, frameworkComponents, sideBar, GridModules, GridShowType, isOpenLoad, isLoading } = this.state;\n return (\n
1 ? this.props.className ?? \"ag-theme-alpine\" : this.props.className + \" nototal\" ?? \"ag-theme-alpine\"} style={this.props.className === \"ag-theme-alpine\" ? { gridTemplateRows: \"auto 1fr auto\", display: \"grid\", height: \"100%\" } : null}>\n
\n
\n {GridTitle}
\n
\n {error}\n \n ×\n \n
\n
\n\n \n
\n
\n {!this.state.isHideSaveGridLayout ?\n
\n
\n Column Ordering:\n
\n
\n \n
\n
\n \n
\n\n
\n  View Is Public  \n
\n
\n
\n
\n
\n
\n : null}\n {/*
\n \n
*/\n } {\n this.props.showAdd &&\n
\n \n
\n } {\n this.props.isApprover && this.props.showReject &&\n
\n \n
\n } {\n this.props.isApprover && this.props.approve &&\n
\n \n
\n } {\n this.props.showSave && this.props.isSaving && \n
\n \n
\n } {\n this.props.showSave && this.props.save && !this.props.isSaving && \n
\n \n
\n } {\n this.props.showSaveAndSend && this.props.saveAndSend &&\n
\n \n
\n } {\n this.props.genReport && this.props.emailReport &&\n
\n \n
\n } {\n this.props.isPanelCollapsed && this.props.togglePanel &&\n
\n \n
\n }\n
\n
\n 1 ? this.props.groupIncludeTotalFooter : false}\n groupIncludeFooter={rowData.length > 1 ? this.props.groupIncludeFooter : false}\n sideBar={this.props.sideBar ?? sideBar}\n suppressExpandablePivotGroups={this.props.suppressExpandablePivotGroups}\n modules={GridModules}\n onCellClicked={this.props.onCellClicked}\n suppressDragLeaveHidesColumns={true}\n suppressMakeColumnVisibleAfterUnGroup={true}\n suppressAggFuncInHeader={true}\n rowGroupPanelShow={this.props.rowGroupPanelShow ?? \"always\"}\n rowSelection={this.props.rowSelection}\n groupSelectsChildren={this.props.groupSelectsChildren ?? false}\n ref=\"agGrid\"\n frameworkComponents={frameworkComponents}\n components={components}\n rowMultiSelectWithClick = {this.props.rowMultiSelectWithClick ?? false}\n rowData={rowData}\n getRowNodeId={(data) => { return data[GridIdentityColumn]; }}\n enableFilter={this.props.enableFilter ?? true}\n domLayout={this.props.domLayout}\n groupDefaultExpanded={this.props.groupDefaultExpanded ?? 0}\n isRowSelectable={this.props.isRowSelectable}\n debounceVerticalScrollbar={true}\n pagination={this.props.pagination ?? false}\n paginationPageSize={this.props.paginationPageSize ?? 10} \n singleClickEdit = {this.props.singleClickEdit ?? true }\n defaultColDef={this.props.defaultColDef ??\n {\n sortable: true\n , filter: true\n , floatingFilter: true\n , enableRowGroup: true\n , resizable: true\n }\n }\n rowClassRules = {rowClassRules}\n columnDefs={GridColumnList}\n autoGroupColumnDef={GridGroupColumnDef}\n getContextMenuItems={this.getContextMenuItems}\n allowContextMenuWithControlKey={true}\n excelStyles={[\n {\n id: 'indent-1',\n alignment: { indent: 2 },\n dataType: 'string',\n },\n {\n id: 'indent-2',\n alignment: { indent: 4 },\n dataType: 'string',\n },\n {\n id: 'indent-3',\n alignment: { indent: 6 },\n dataType: 'string',\n },\n {\n id: 'indent-4',\n alignment: { indent: 8 },\n dataType: 'string',\n },\n {\n id: 'indent-5',\n alignment: { indent: 10 },\n dataType: 'string',\n },\n {\n id: 'indent-6',\n alignment: { indent: 12 },\n dataType: 'string',\n },\n {\n id: 'indent-7',\n alignment: { indent: 14 },\n dataType: 'string',\n },\n {\n id: 'indent-8',\n alignment: { indent: 16 },\n dataType: 'string',\n },\n {\n id: 'indent-9',\n alignment: { indent: 18 },\n dataType: 'string',\n },\n ]}\n\n onGridReady={this.onGridReady.bind(this)}\n onFirstDataRendered={this.onFirstDataRendered.bind(this)}\n onSelectionChanged = {this.props.rowSelected}\n onCellValueChanged = {this.props.cellValueChanged}\n masterDetail={this.props.masterDetail}\n detailCellRendererParams={ detailCellRendererParams } \n getRowHeight= {this.getRowHeight.bind(this)}\n allowDragFromColumnsToolPanel={true}\n stopEditingWhenCellsLoseFocus={true}\n //onSortChanged={this.onSortChanged.bind(this)}\n //onFilterChanged={this.onFilterChanged.bind(this)}\n //onColumnVisible={this.onSaveGridColumnState.bind(this)}\n //onColumnPinned={this.onSaveGridColumnState.bind(this)}\n //onColumnResized={this.onSaveGridColumnState.bind(this)}\n //onColumnMoved={this.onSaveGridColumnState.bind(this)}\n //onColumnRowGroupChanged={this.onSaveGridColumnState.bind(this)}\n //onColumnValueChanged={this.onSaveGridColumnState.bind(this)} // A value column was added or removed.\n //onColumnPivotModeChanged={this.onSavePivotModeState.bind(this)} // A pivot column was added, removed or order changed.\n >\n \n
\n
\n
\n \n
\n \"Loading...\"\n
\n
\n
\n );\n } /***************************************************************************************************/\n} /*****************************************************************************************/\n\nfunction getDatePicker(dateFormat) {\n function Datepicker() {}\n Datepicker.prototype.init = function (params) {\n this.eInput = document.createElement('input');\n this.eInput.value = params.value;\n this.eInput.classList.add('ag-input');\n this.eInput.style.height = '100%';\n $(this.eInput).datepicker({ dateFormat: dateFormat ?? 'dd/mm/yy' });\n };\n Datepicker.prototype.getGui = function () {\n return this.eInput;\n };\n Datepicker.prototype.afterGuiAttached = function () {\n this.eInput.focus();\n this.eInput.select();\n };\n Datepicker.prototype.getValue = function () {\n return this.eInput.value;\n };\n Datepicker.prototype.destroy = () => {};\n Datepicker.prototype.isPopup = () => {\n return false;\n };\n return Datepicker;\n}\n\nfunction keyDownFunc(e) {\n \n if (e.keyCode === 13) { // enter = 13\n // TODO: Handle event\n }\n}\nexport default TorGrid;\n","import React, { Component } from 'react';\nimport ChartDisplay from \"./components/chartDisplay.js\"\nimport moment from 'moment';\n\nimport TorGrid from './../torgrid/torgrid';\n\nclass PortfolioOverview extends Component {\n constructor(props) {\n super(props);\n this.state = {\n chartData: []\n }\n\n this.filterChartData = this.filterChartData.bind(this);\n\n this.isZero = this.isZero.bind(this);\n this.getDate = this.getDate.bind(this);\n this.agValueFormatter = this.agValueFormatter.bind(this);\n this.getValueFormatted = this.getValueFormatted.bind(this);\n this.getData = this.getData.bind(this);\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n isZero(value) {\n return value < 0.0001 && value > -0.0001\n }\n\n getDate(params) {\n var val = Date(params.value);\n return val;\n }\n\n agValueFormatter(value, format) {\n var agformat = format;\n if (value && value !== '' && value !== 0) {\n switch (agformat) {\n case 'millionsFormat':\n return this.getValueFormatted(value / 1e6, 1);\n case 'millionsFormat2':\n return this.getValueFormatted(value / 1e6, 2);\n case 'percentFormat':\n return this.getValueFormatted(value * 100);\n case 'percentFormat1':\n return this.getValueFormatted(value * 100, 1);\n case 'decimalFormat0':\n return this.getValueFormatted(value, 0);\n case 'decimalFormat2':\n return this.getValueFormatted(value, 2);\n case '{0:.2f}x':\n return this.getValueFormatted(value);\n case 'leverageFormat':\n const displayvalue = this.getValueFormatted(value, 2);\n return `${displayvalue}${displayvalue && displayvalue.toString() !== '' ? 'x' : ''}`;\n case 'dateFormat':\n return this.getDate(value);\n default:\n return value;\n }\n }\n else if (value && value !== '' && agformat === 'decimalFormatShowZero2')\n return this.getValueFormatted(value, 2);\n return '';\n }\n\n getValueFormatted(param, digit = 2) {\n var result = param;\n var val = 0.0;\n\n if (!isNaN(result)) {\n try {\n val = parseFloat(result).toFixed(digit);\n if (this.isZero(val)) return '';\n\n if (!isNaN(val))\n result = val.toString()\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n } catch (error) {\n val = result;\n }\n }\n return result;\n }\n\n getData() {\n var grossMV = 0.0;\n var capital = 0.0;\n var cYield = 0.0;\n\n var data = this.props.gridData\n\n for (var i = 0; i < data.length; i++) {\n grossMV += data[i]['asset mv'];\n capital += data[i]['capital total'];\n cYield += (data[i]['gross annual total coupon'] + data[i]['gross annual fx carry'] + data[i]['annual cost of capital'])\n }\n\n return [grossMV, capital, grossMV / capital, cYield / capital];\n }\n\n filterChartData(colName, value, freq) {\n var data = this.props.chartData;\n var AsOfDate = moment(this.props.AsOfDate).format(\"YYYYMMDD\");\n\n data = data.filter(function (item) {\n return item['for frequency'] === freq\n });\n\n data = data.filter(function (item) {\n return item['report date'] <= AsOfDate\n });\n\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n chartData: arr\n });\n } else {\n this.setState({\n chartData: data\n });\n }\n }\n\n componentDidMount() {\n if (this.props.fund && this.props.chartData) {\n this.setState({\n chartData: []\n }, () => {\n this.filterChartData('fund', this.props.fund, this.props.Frequency)\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.fund !== this.props.fund || prevProps.AsOfDate !== this.props.AsOfDate || prevProps.chartData !== this.props.chartData) {\n this.filterChartData('fund', this.props.fund, this.props.Frequency)\n }\n }\n\n\n getTemplate() {\n if (this.props.GroupBy && this.props.gridData.length > 0) {\n var l = this.getData();\n return (\n
\n
\n
\n
\n

Gross MV

\n

{`$${this.agValueFormatter(l[0], 'millionsFormat')}M`}

\n
\n\n
\n

Capital

\n

{`$${this.agValueFormatter(l[1], 'millionsFormat')}M`}

\n
\n\n
\n

Leverage

\n

{`${this.agValueFormatter(l[2], 'leverageFormat')}`}

\n
\n\n
\n

Current Yield

\n

{`${this.agValueFormatter(l[3], 'percentFormat1')}%`}

\n
\n
\n\n

{`Gross Asset MV by ${this.props.GroupByName}`}

\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default PortfolioOverview;","import React, { Component } from 'react';\nimport ChartDisplay from \"./components/chartDisplay.js\"\n\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport TorGrid from './../torgrid/torgrid';\n\nclass HedgeOverview extends Component {\n constructor(props) {\n super(props);\n this.state = {\n thetaChartData: []\n }\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n componentDidMount() {\n const {Fund, AsOfDate} = this.props;\n torGridBALService.getRowData('hedgeReport', { query: AsOfDate ? `Exec [sp_get_historical_theta] '${Fund}', '${AsOfDate}'` : `Exec [sp_get_historical_theta] '${Fund}'` }).then(data => {\n this.setState({ thetaChartData: data });\n });\n }\n\n componentDidUpdate(prevProps) {\n const {Fund, AsOfDate} = this.props;\n if(prevProps.Fund !== Fund || prevProps.AsOfDate !== AsOfDate) {\n torGridBALService.getRowData('hedgeReport', { query: AsOfDate ? `Exec [sp_get_historical_theta] '${Fund}', '${AsOfDate}'` : `Exec [sp_get_historical_theta] '${Fund}'` }).then(data => {\n this.setState({ thetaChartData: data });\n });\n }\n }\n\n\n getTemplate() {\n const { Fund, AsOfDate } = this.props;\n const {thetaChartData} = this.state;\n if(Fund && AsOfDate) {\n return (\n
\n
\n \n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n\n
\n \n
\n\n
\n \n
\n
\n
\n \n
\n
\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default HedgeOverview;","import React, { Component } from 'react';\nimport TorGrid from './../torgrid/torgrid';\n\nclass FxOverview extends Component {\n render() {\n return this.getTemplate();\n }\n\n\n getTemplate() {\n const { Fund } = this.props;\n if(Fund) {\n return (\n
\n
\n \n
\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default FxOverview;","import React, { Component } from 'react';\nimport TorGrid from '../torgrid/torgrid';\n\nclass PositionView extends Component {\n render() {\n return this.getTemplate();\n }\n\n getTemplate() {\n var groupByColumnList = ['fund'];\n groupByColumnList.push(this.props.GroupBy);\n\n if(this.props.GroupBy === \"gics_sector\") {\n groupByColumnList.push(\"gics_industry_group\");\n groupByColumnList.push(\"gics_industry\");\n groupByColumnList.push(\"gics_subindustry\");\n\n } else if(this.props.GroupBy === \"bics_sector\") {\n groupByColumnList.push(\"bics_industry_group\");\n groupByColumnList.push(\"bics_industry\");\n\n } else if(this.props.GroupBy === \"credit_ranking\") {\n groupByColumnList.push(\"holdco_opco\");\n\n }\n\n if(this.props.GroupBy !== \"product type\") {\n groupByColumnList.push(\"deal\");\n groupByColumnList.push(\"product type\");\n } else {\n groupByColumnList.push(\"product type\");\n groupByColumnList.push(\"deal\");\n }\n\n return (\n
\n \n
\n );\n }\n}\n\nexport default PositionView;\n","import React, { Component } from 'react';\nimport TorGrid from '../torgrid/torgrid';\nimport ChartDisplay from \"./components/chartDisplay.js\"\nimport moment from 'moment';\n\nclass StressView extends Component {\n constructor(props) {\n super(props);\n this.state = {\n hedgeData: [],\n chartData: []\n }\n\n this.filterData = this.filterData.bind(this);\n this.filterChartData = this.filterChartData.bind(this);\n }\n\n render() {\n return this.getTemplate();\n }\n\n filterData(colName, value) {\n var data = this.props.hedgeData;\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n hedgeData: arr\n });\n } else {\n this.setState({\n hedgeData: this.props.hedgeData\n });\n }\n }\n\n filterChartData(colName, value, freq) {\n var data = this.props.chartData;\n var AsOfDate = moment(this.props.AsOfDate).format(\"YYYYMMDD\");\n\n data = data.filter(function (item) {\n return item['for frequency'] === freq\n });\n\n data = data.filter(function (item) {\n return item['report date'] <= AsOfDate\n });\n\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n chartData: arr\n });\n } else {\n this.setState({\n chartData: data\n });\n }\n }\n\n componentDidMount() {\n if (this.props.fund && this.props.hedgeData && this.props.chartData) {\n this.setState({\n hedgeData: [],\n chartData: []\n }, () => {\n this.filterData('Fund', this.props.fund)\n this.filterChartData('fund', this.props.fund, this.props.Frequency)\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.fund !== this.props.fund || prevProps.AsOfDate !== this.props.AsOfDate) {\n this.filterData('Fund', this.props.fund);\n this.filterChartData('fund', this.props.fund, this.props.Frequency)\n }\n }\n\n getTemplate() {\n if (this.props.GroupBy && this.props.gridData.length > 0) {\n return (\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default StressView;","import React, { Component } from 'react';\nimport TorGrid from '../torgrid/torgrid';\n\nclass PortfolioPerformanceGrid extends Component {\n render() {\n return this.getTemplate();\n }\n\n getTemplate() {\n const {user} = this.props;\n var groupByColumnList = [];\n\n if (user?.userRoles?.includes(\"Analyst\") || user?.userRoles?.includes(\"Tester\")) {\n groupByColumnList.push(\"Fund\");\n groupByColumnList.push(\"Deal\");\n groupByColumnList.push(\"Investment Code\");\n } else {\n groupByColumnList.push(\"Fund\");\n\n groupByColumnList.push(this.props.GroupBy);\n\n if (user?.userRoles?.includes(\"Analyst\") || user?.userRoles?.includes(\"Tester\")) {}\n\n if(this.props.GroupBy === \"gics_sector\") {\n groupByColumnList.push(\"gics_industry_group\");\n groupByColumnList.push(\"gics_industry\");\n groupByColumnList.push(\"gics_subindustry\");\n\n } else if(this.props.GroupBy === \"bics_sector\") {\n groupByColumnList.push(\"bics_industry_group\");\n groupByColumnList.push(\"bics_industry\");\n\n } else if(this.props.GroupBy === \"credit_ranking\") {\n groupByColumnList.push(\"holdco_opco\");\n }\n\n groupByColumnList.push(\"Deal\");\n groupByColumnList.push(\"Investment Code\");\n }\n\n return (\n
\n \n
\n );\n }\n}\n\nexport default PortfolioPerformanceGrid;\n","import React, { Component } from 'react';\nimport ChartDisplay from \"./components/chartDisplay.js\"\nimport TorGrid from '../torgrid/torgrid';\nimport moment from 'moment';\n\nclass PortfolioPerformanceOverview extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n gridData: []\n }\n\n this.aggregateData = this.aggregateData.bind(this);\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n aggregateData() {\n var { gridData } = this.props;\n\n var cumSum = 1.0;\n var sum = 0.0;\n\n var jsObj = {\n date: null,\n sum: null,\n cumSum: null\n };\n\n var aggList = [];\n\n const monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\n for (var i = 0; i < gridData.length; i++) {\n var date = new Date(gridData[i]['Report Date']);\n date = monthNames[date.getMonth()];\n\n if (i === 0) {\n jsObj.date = date;\n sum += gridData[i]['ctr total'];\n } else if (date !== jsObj.date) {\n jsObj.sum = sum * 100;\n\n cumSum *= (1 + sum);\n\n jsObj.cumSum = (cumSum - 1) * 100;\n aggList.push(jsObj);\n\n jsObj = {\n date: null,\n sum: null,\n cumSum: null\n };\n jsObj.date = date;\n\n sum = gridData[i]['ctr total'];\n\n } else {\n sum += gridData[i]['ctr total'];\n }\n }\n\n if (jsObj.date !== null) {\n jsObj.sum = sum * 100;\n\n cumSum *= (1 + sum);\n\n jsObj.cumSum = (cumSum - 1) * 100;\n aggList.push(jsObj);\n }\n\n return aggList;\n }\n\n\n getTemplate() {\n const {user} = this.props;\n if (this.props.gridData && this.props.gridData.length > 0) {\n return (\n
\n {\n (user?.userRoles?.includes(\"Analyst\") || user?.userRoles?.includes(\"Tester\"))\n ?\n
\n
\n :\n
\n \n
\n }\n {\n (user?.userRoles?.includes(\"Analyst\") || user?.userRoles?.includes(\"Tester\"))\n ?\n
\n
\n :\n
\n \n
\n }\n \n {\n (user?.userRoles?.includes(\"Analyst\") || user?.userRoles?.includes(\"Tester\"))\n ?\n
\n
\n :\n
\n \n
\n }\n \n\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default PortfolioPerformanceOverview;","import React, { Component } from 'react';\nimport TorGrid from './../torgrid/torgrid';\nimport ChartDisplay from \"./components/chartDisplay.js\"\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\n\nclass PortfolioProjection extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n isLoading: false,\n gridData: [],\n filterData: []\n }\n\n this.getData = this.getData.bind(this);\n }\n\n render() {\n return this.getTemplate();\n }\n\n filterData(colName, value) {\n var data = this.state.gridData;\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n filterData: arr\n });\n } else {\n this.setState({\n filterData: this.state.gridData\n });\n }\n }\n\n getData = async () => {\n const { projectionDeal } = this.props;\n await torGridBALService.getRowData(\"pCashflow\", { query: `Exec [sp_projected_cashflow] '${projectionDeal}'` }).then(data => {\n this.setState({ gridData: data });\n this.setState({ isLoading: false });\n this.filterData('Fund', this.props.projectionFund);\n }, error => {\n this.setState({ isLoading: false });\n this.setState({ gridData: [], filterData: [] });\n });\n }\n\n componentDidMount() {\n if (this.props.projectionDeal) {\n this.setState({ isLoading: true, gridData: [], filterData: [] });\n this.getData();\n }\n }\n\n componentDidUpdate(prevProps) {\n if ((prevProps.projectionDeal ?? '') !== (this.props.projectionDeal ?? '')) {\n this.setState({ isLoading: true, gridData: [], filterData: [] })\n this.getData();\n }\n\n if (prevProps.projectionFund !== this.props.projectionFund) {\n this.filterData('Fund', this.props.projectionFund);\n }\n }\n\n getTemplate() {\n if (this.props.Fund) {\n return (\n
\n
\n { return true && (node.data ? node.data['Approval Status'] !== \"Approved\" : false) }}\n rowSelected={this.props.rowSelected}\n groupSelectsChildren={true}\n />\n
\n {\n !this.props.isCollapsed &&\n
\n {\n this.state.filterData.length > 0\n ?\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n :\n
\n
\n \n
\n
\n \n
\n
\n }\n
\n }\n\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default PortfolioProjection;","import React, { Component } from 'react';\nimport TorGrid from './../torgrid/torgrid';\n\nclass RealEstateRisk extends Component {\n render() {\n return this.getTemplate();\n }\n\n\n getTemplate() {\n if(this.props.AsOfDate && this.props.Frequency) {\n return (\n
\n
\n \n
\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default RealEstateRisk;","import React, { Component } from 'react';\nimport TorGrid from './../torgrid/torgrid';\n\nclass CommodityRisk extends Component {\n render() {\n return this.getTemplate();\n }\n\n\n getTemplate() {\n if(this.props.AsOfDate && this.props.Frequency) {\n return (\n
\n
\n \n
\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default CommodityRisk;","import React, { Component } from 'react';\nimport TorGrid from './../torgrid/torgrid';\n\nclass CreditMetrics extends Component {\n render() {\n return this.getTemplate();\n }\n\n getTemplate() {\n return (\n
\n
\n \n
\n
\n );\n }\n}\nexport default CreditMetrics;","import React, { Component } from 'react';\nimport ChartDisplay from \"./components/chartDisplay.js\"\n\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport TorGrid from './../torgrid/torgrid';\n\nclass CashMargin extends Component {\n constructor(props) {\n super(props);\n this.state = {\n chartData: []\n }\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n componentDidMount() {\n const { AsOfDate } = this.props;\n torGridBALService.getRowData('hedgeReport', { query: AsOfDate ? `Exec [sp_get_historical_cash_margin] '${AsOfDate}'` : `Exec [sp_get_historical_cash_margin]` }).then(data => {\n this.setState({ chartData: data });\n });\n }\n\n componentDidUpdate(prevProps) {\n const { AsOfDate } = this.props;\n if (prevProps.AsOfDate !== AsOfDate) {\n torGridBALService.getRowData('hedgeReport', { query: AsOfDate ? `Exec [sp_get_historical_cash_margin] '${AsOfDate}'` : `Exec [sp_get_historical_cash_margin]` }).then(data => {\n this.setState({ chartData: data });\n });\n }\n }\n\n\n getTemplate() {\n const { Fund, AsOfDate } = this.props;\n if (Fund && AsOfDate) {\n return (\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n );\n } else {\n return null;\n }\n }\n}\nexport default CashMargin;","import React, { Component } from 'react'\nimport { Message } from \"semantic-ui-react\";\n\nexport default class ToastMessage extends Component {\n render() {\n return (\n \n )\n }\n}\n\n","import React from 'react';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\nimport List from '@material-ui/core/List';\nimport Divider from '@material-ui/core/Divider';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\n\nconst useStyles = makeStyles({\n list: {\n width: 250,\n },\n fullList: {\n width: 'auto',\n },\n});\n\nconst SideDrawer = (props) => {\n const classes = useStyles();\n\n const toggleDrawer = () => (event) => {\n props.toggleDrawer();\n };\n\n const toggleTab = (val) => (event) => {\n toggleDrawer();\n props.toggleTabIndex(val);\n };\n\n const list = (anchor) => (\n \n \n \n \n \n \n {\n [{ id: 1, text: 'Overview' }, { id: 4, text: 'Grid' }].map((text, index) => (\n \n \n \n ))\n }\n {\n props.userRoles.includes(\"Analyst\")\n ?\n null\n :\n [{ id: 5, text: 'Stress' }, { id: 2, text: 'Hedges' }].map((text, index) => (\n \n \n \n ))\n }\n {\n // [{ id: 3, text: 'FX' }, { id: 12, text: 'Cash/ Margin' }].map((text, index) => (\n [{ id: 3, text: 'FX' }].map((text, index) => (\n \n \n \n ))\n }\n \n\n\n \n \n \n \n \n {\n [{ id: 6, text: 'Overview' }, { id: 7, text: 'Grid' }, { id: 8, text: 'Projection' }].map((text, index) => (\n \n \n \n ))\n }\n \n\n \n \n \n \n \n {\n [{ id: 9, text: 'Credit Metrics' }, { id: 10, text: 'Commodity Risks' }, { id: 11, text: 'Real Estate Risks' }].map((text, index) => (\n \n \n \n ))\n }\n \n\n \n );\n\n return (\n
\n \n \n {list('left')}\n \n \n
\n );\n}\n\nexport default SideDrawer;","import React, { Component } from 'react';\n\nimport { Collapse } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync, faBackward } from \"@fortawesome/free-solid-svg-icons\";\nimport { Dropdown } from 'semantic-ui-react';\nimport moment from 'moment';\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport _ from 'underscore';\nimport Modal from 'react-awesome-modal';\n\nimport { reportGeneratorBALService } from '../../bal/reportGenerator.bal'\nimport { portfolioProjectionBalService } from '../../bal/Portfolio-Dashboard/portfolioProjection.bal'\nimport { userBALService } from '../../bal/user.bal';\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport { dealDashboardBALService } from '../../bal/Deal-Dashboard/dealDashboard.bal';\nimport PortfolioOverview from './portfolio_overview.js';\nimport HedgeOverview from './hedge_overview.js';\nimport FxOverview from './fx_overview.js';\nimport PositionView from './positionView';\nimport StressView from './stressView';\nimport PortfolioPerformanceGrid from './portfolioPerformanceGrid.js';\nimport PortfolioPerformanceOverview from './portfolioPerformanceOverview.js';\nimport PortfolioProjection from './portfolioProjection.js';\nimport RealEstateRisk from './realEstateRisk';\nimport CommodityRisk from './commodityRisk';\nimport CreditMetrics from './creditMetrics';\nimport CashMargin from './cashMargin'\nimport ToastMessage from \"./../deals/components/toastMessage\";\nimport SideDrawer from './components/sideDrawer.js';\n\nimport './portfolioDashboard.css';\n\nclass PortfolioDashboard extends Component {\n constructor(props) {\n super(props);\n\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n this.state = {\n GridId: \"positions1\" ?? this.constructor.name + \"_default\",\n drawerOpen: false,\n GridTitle: 'Portfolio > Grid',\n display: \"none\",\n thetaChartData: [],\n tabindex: 4,\n chartMaturityData: [],\n chartVintageData: [],\n maturityLabel: [],\n vintageLabel: [],\n AsOfDate: null,\n Frequency: 'm',\n gridData: [],\n fxGridData: [],\n pnlGridData: [],\n projectionGridData: [],\n hedgeData: [],\n filterData: [],\n stressChartData: [],\n portfolioChartData: [],\n GroupBy: \"portfolio\",\n GroupByName: \"Public/Private\",\n fund: \"All\",\n MessageBoxBackground: \"Red\",\n isOpenLoad: false,\n dateList: [],\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n projectionDeal: null,\n projectionFund: null,\n isCollapsed: true,\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 6, text: \"TACO IV\", value: \"TACO IV\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" },\n { key: 7, text: \"ALL\", value: \"All\" }\n ],\n groupByList: [\n { key: 0, text: \"Public/Private\", value: \"portfolio\" },\n { key: 1, text: \"Country\", value: \"country\" },\n { key: 2, text: \"Market Risk Sensitivity\", value: \"market_risk\" },\n { key: 3, text: \"GICS Sector\", value: \"gics_sector\" },\n { key: 4, text: \"BICS Sector\", value: \"bics_sector\" },\n { key: 5, text: \"TACF Sub-strategy\", value: \"tacf_substrategy\" },\n { key: 6, text: \"TACOF Sub-strategy\", value: \"tacof_substrategy\" },\n { key: 7, text: \"Product Type\", value: \"product type\" },\n { key: 8, text: \"Asset Type\", value: \"asset_type\" },\n { key: 9, text: \"Ranking\", value: \"credit_ranking\" },\n { key: 10, text: \"Capital Type\", value: \"capital type\" },\n ]\n }\n\n this.handleCloseErrorBox = this.handleCloseErrorBox.bind(this);\n this.refresh = this.refresh.bind(this);\n this.handleChangeAsOfDate = this.handleChangeAsOfDate.bind(this);\n this.handleDropDownChangeFund = this.handleDropDownChangeFund.bind(this);\n this.handleDropDownChangeGroupBy = this.handleDropDownChangeGroupBy.bind(this);\n this.filterData = this.filterData.bind(this);\n this.filterDate = this.filterDate.bind(this);\n this.toggleTabIndex = this.toggleTabIndex.bind(this);\n this.drawerToggleClickHandler = this.drawerToggleClickHandler.bind(this);\n this.handleGridTitle = this.handleGridTitle.bind(this);\n this.closeErrorMessage = this.closeErrorMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.emailReport = this.emailReport.bind(this);\n this.handleRowSelected = this.handleRowSelected.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.approve = this.approve.bind(this);\n this.reject = this.reject.bind(this);\n this.togglePanelCollapse = this.togglePanelCollapse.bind(this);\n }\n\n componentDidMount = async () => {\n this.mounted = true;\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 0' }).then(data => {\n this.setState({ dateList: data });\n this.filterDate(data, data[0]['report date'], new Date(moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\")));\n });\n\n this.refresh();\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n handleChangeAsOfDate = (date) => {\n const { dateList } = this.state;\n if (date) {\n const frequencyList = dateList.filter(function (item) {\n return item['report date'] === parseInt(moment(date).format(\"YYYYMMDD\"))\n });\n\n if (frequencyList?.length > 0 && frequencyList[0]) {\n this.setState({\n AsOfDate: moment(date).format(\"YYYY-MM-DD\")\n }, async () => {\n await this.filterDate(this.state.dateList, parseInt(moment(date).format(\"YYYYMMDD\")), moment(date).format(\"YYYY-MM-DD\"));\n this.refresh();\n });\n } else {\n this.setState({\n AsOfDate: moment(date).format(\"YYYY-MM-DD\")\n });\n }\n\n } else {\n this.setState({\n AsOfDate: null\n })\n }\n\n };\n\n handleDropDownChangeGroupBy = (event, data) => {\n const GroupBy = data.value\n const GroupByName = _.filter(this.state.groupByList, function (group) {\n return group.value === GroupBy\n });\n\n this.setState({\n GroupBy: GroupBy,\n GroupByName: GroupByName[0].text\n });\n };\n\n handleDropDownChangeFund = (event, data) => {\n const Fund = data.value\n this.setState({\n fund: Fund\n });\n\n if (this.state.tabindex === 6 || this.state.tabindex === 7 || this.state.tabindex === 3 || this.state.tabindex === 8) {\n if (this.state.AsOfDate !== null) {\n this.refresh(event, Fund);\n }\n } else {\n this.filterData('fund', Fund);\n }\n };\n\n handleCloseErrorBox = () => {\n this.setState({ display: \"none\" });\n }\n\n filterData(colName, value) {\n var data = this.state.gridData;\n\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n filterData: arr\n });\n } else {\n this.setState({\n filterData: this.state.gridData\n });\n }\n }\n\n filterDate(data, date, formatDate) {\n const frequencyList = data.filter(function (item) {\n return item['report date'] === date\n });\n\n if (frequencyList?.length > 0 && frequencyList[0] && frequencyList[0]['for frequency'])\n this.setState({ AsOfDate: moment(formatDate).format(\"YYYY-MM-DD\"), Frequency: frequencyList[0]['for frequency'] });\n else\n this.setState({ AsOfDate: moment(formatDate).format(\"YYYY-MM-DD\"), Frequency: null });\n }\n\n emailReport() {\n reportGeneratorBALService.emailReport({ report_name: \"FX\", params: `Report_Date = ${moment(this.state.AsOfDate).format(\"YYYYMMDD\")}` }).then(data => {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Report Generation request has been sent'\n });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n })\n }\n\n getPositionsData = (fund) => {\n dealDashboardBALService.getPortfolioChartData({Frequency: this.state.Frequency, Year: moment(this.state.AsOfDate).format(\"YYYY\")}).then(data => {\n this.setState({ portfolioChartData: data });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n\n torGridBALService.getRowData('hedgeReport', { query: `Exec [sp_get_hedge_summary] '${moment(this.state.AsOfDate).format(\"YYYY-MM-DD\")}'` }).then(data => {\n this.setState({ hedgeData: data });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n\n return true;\n }\n\n refresh = async (e, fund = null) => {\n fund = fund ?? this.state.fund;\n const user = userBALService.getUserInfo();\n\n if (this.state.AsOfDate === null) {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Please select a date before refresh !'\n });\n } else if (this.state.tabindex === 1 || this.state.tabindex === 4 || this.state.tabindex === 5) {\n this.setState({ isOpenLoad: true });\n\n await torGridBALService.getDashboardData(this.state.GridId, { AsOfDate: this.state.AsOfDate, Frequency: this.state.Frequency }).then(data => {\n if (user?.userRoles?.includes(\"PM\")) {\n this.setState({ gridData: data }, () => {\n this.filterData('fund', fund);\n this.setState({ isOpenLoad: false });\n });\n }\n else if (user?.userRoles?.includes(\"Analyst\")) {\n const name = user?.user?.name;\n data = data.filter(function (item) {\n return item['Analyst 1'] === name || item['Analyst 2'] === name || item['Analyst 3'] === name\n });\n this.setState({ gridData: data }, () => {\n this.filterData('fund', fund);\n this.setState({ isOpenLoad: false });\n });\n } else {\n this.setState({ gridData: data }, () => {\n this.filterData('fund', fund);\n this.setState({ isOpenLoad: false });\n });\n }\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n\n this.getPositionsData(fund);\n\n } else if (this.state.tabindex === 6 || this.state.tabindex === 7) {\n this.setState({ isOpenLoad: true });\n var AsOfDate = new Date(this.state.AsOfDate);\n\n await torGridBALService.getRowData('hedgeReport', { query: `Exec [sp_get_pnl_fund] '${fund}', 'm', '${AsOfDate.toISOString().split('T')[0]}', '${user?.user?.username}'` }).then(data => {\n this.setState({ pnlGridData: data });\n this.setState({ isOpenLoad: false });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n } else if (this.state.tabindex === 3) {\n this.setState({ isOpenLoad: true });\n await torGridBALService.getRowData('hedgeReport', { query: `Exec [sp_fx_exposure] '${fund}', 'd', '${moment(this.state.AsOfDate).format(\"YYYYMMDD\")}', 1` }).then(data => {\n if (user?.userRoles?.includes(\"Analyst\")) {\n const name = user?.user?.name;\n data = data.filter(function (item) {\n return item['Analyst 1'] === name || item['Analyst 2'] === name || item['Analyst 3'] === name\n });\n }\n this.setState({ fxGridData: data });\n this.setState({ isOpenLoad: false });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n } else if (this.state.tabindex === 8) {\n this.setState({ isOpenLoad: true });\n\n await torGridBALService.getRowData('hedgeReport', { query: `exec [sp_portfolio_projection] '${fund}', '${user?.user?.username}'` }).then(data => {\n this.setState({ projectionGridData: data });\n this.setState({ isOpenLoad: false });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n }\n }\n\n drawerToggleClickHandler = () => {\n this.setState({\n drawerOpen: !this.state.drawerOpen\n })\n }\n\n handleGridTitle = (val) => {\n var gridTitle = ''\n if (val === 1) {\n gridTitle = 'Portfolio > Overview'\n } else if (val === 4) {\n gridTitle = 'Portfolio > Grid'\n } else if (val === 5) {\n gridTitle = 'Portfolio > Stress'\n } else if (val === 2) {\n gridTitle = 'Portfolio > Hedges'\n } else if (val === 3) {\n gridTitle = 'Portfolio > FX'\n } else if (val === 6) {\n gridTitle = 'Performance > Overview'\n } else if (val === 7) {\n gridTitle = 'Performance > Grid'\n } else if (val === 8) {\n gridTitle = 'Performance > Projection'\n } else if (val === 9) {\n gridTitle = 'Exposure > Credit Metrics'\n } else if (val === 10) {\n gridTitle = 'Exposure > Commodity Risk'\n } else if (val === 11) {\n gridTitle = 'Exposure > Real Estate Risk'\n } else if (val === 12) {\n gridTitle = 'Performance > Cash/ Margin'\n } \n\n this.setState({\n GridTitle: gridTitle\n })\n }\n\n toggleTabIndex = async (val) => {\n const { tabindex } = this.state;\n if (this.state.tabindex !== val) {\n this.setState({\n tabindex: val,\n drawerOpen: false\n }, async () => {\n this.handleGridTitle(val);\n\n var fundList = [];\n if ((val === 1 || val === 4 || val === 5) && tabindex !== 1 && tabindex !== 4 && tabindex !== 5) {\n fundList = [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 6, text: \"TACO IV\", value: \"TACO IV\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" },\n { key: 7, text: \"ALL\", value: \"All\" }\n ]\n\n this.setState({\n fundList: fundList,\n AsOfDate: null,\n fund: 'All',\n Frequency: 'm',\n gridData: [],\n filterData: []\n });\n\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 0' }).then(data => {\n this.setState({ dateList: data });\n this.filterDate(data, data[0]['report date'], new Date(moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\")));\n });\n\n this.refresh();\n\n } else if (val === 2 || val === 12) {\n fundList = [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 3, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" }\n ]\n\n this.setState({\n fundList: fundList,\n fund: 'TOR',\n AsOfDate: null,\n Frequency: 'd',\n gridData: [],\n filterData: []\n });\n\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 3' }).then(data => {\n this.setState({ dateList: data });\n this.filterDate(data, data[0]['report date'], new Date(moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\")));\n });\n\n } else if (val === 3) {\n fundList = [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 6, text: \"TACO IV\", value: \"TACO IV\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" }\n ]\n\n this.setState({\n fundList: fundList,\n fund: 'TOR',\n AsOfDate: null,\n Frequency: 'd',\n gridData: [],\n filterData: []\n });\n\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 2' }).then(data => {\n this.setState({ dateList: data });\n this.filterDate(data, data[0]['report date'], new Date(moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\")));\n });\n\n this.refresh();\n } else if ((val === 6 || val === 7) && tabindex !== 6 && tabindex !== 7) {\n fundList = [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 6, text: \"TACO IV\", value: \"TACO IV\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" },\n ]\n\n this.setState({\n fundList: fundList,\n fund: 'TOR',\n AsOfDate: null,\n Frequency: 'm',\n gridData: [],\n filterData: []\n });\n\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 1' }).then(data => {\n this.setState({ dateList: data });\n this.filterDate(data, data[0]['report date'], new Date(moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\")));\n });\n\n this.refresh();\n } else if (val === 8) {\n fundList = [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 6, text: \"TACO IV\", value: \"TACO IV\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" }\n ]\n\n this.setState({\n fundList: fundList,\n fund: 'All'\n });\n\n this.refresh();\n }\n });\n\n\n }\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ isOpenGrid: true, modalVisible: false });\n } else if (this.state.modalHandler === 'save') {\n this.saveDB();\n this.setState({ isOpenGrid: true, modalVisible: false });\n } else {\n this.setState({ isOpenGrid: true, modalVisible: false });\n }\n }\n\n closeErrorMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, messageHeader: \"\" });\n }\n\n handleRowSelected() {\n const selectedRows = this.gridApi?.getSelectedNodes();\n console.log(selectedRows);\n \n if (selectedRows?.length > 0) {\n const row = selectedRows.map(deal => { \n return deal.data ? { Deal: deal.data['Deal'], Fund: deal.data['Fund'] } : { Deal: null, Fund: null } });\n console.log(row);\n this.setState({\n projectionDeal: row[row.length - 1].Deal,\n projectionFund: row[row.length - 1].Fund\n })\n } else {\n this.setState({\n projectionDeal: null,\n projectionFund: null\n })\n }\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n }\n\n approvalRejection = (action) => {\n var selectRows = this.gridApi?.getSelectedNodes();\n\n const user = userBALService.getUserInfo();\n selectRows = selectRows.filter(deal => {\n return deal.data['Analyst 1'] === user?.user?.name\n });\n\n var selectedRows = selectRows.filter(deal => {\n return deal.data['Approval Status'] !== 'Approved'\n });\n\n if (selectedRows?.length > 0) {\n const proposals = selectedRows.map(deal => { return { id: deal.data['projectionId'], action: action } });\n\n var promises = portfolioProjectionBalService.approveGrid(proposals);\n Promise.all(promises).then(data => {\n //var d = JSON.parse(data);\n var errorList = data.filter(element => element.error).map(element => { return element.error });\n if (errorList && errorList.length > 0)\n this.setState({\n showMessage: true,\n errorList: errorList,\n messageHeader: `Error while ${action.toLowerCase().startsWith('approve') ? 'approving' : action.toLowerCase().startsWith('reject') ? 'rejecting' : action} the request :`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: `${action} failed, please contact support!`\n });\n else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: `${action} sucessfully!`\n });\n }\n this.refresh();\n }\n );\n } else if(selectRows?.length > 0) {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: `Proposal(s) have already been ${action?.toLowerCase().startsWith('approve') ? 'Approved' : action?.toLowerCase().startsWith('reject') ? 'Rejected' : action}`\n })\n } else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: `First select proposal(s) to ${action?.toLowerCase().startsWith('approve') ? 'Approve' : action?.toLowerCase().startsWith('reject') ? 'Reject' : action}`\n })\n }\n }\n\n approve() {\n this.approvalRejection('Approved');\n }\n\n reject() {\n this.approvalRejection('Rejected');\n }\n\n togglePanelCollapse() {\n this.setState({\n isCollapsed: !this.state.isCollapsed\n })\n }\n\n getTemplate() {\n const { MessageBoxBackground, GridTitle, AsOfDate, groupByList, GroupBy, fund, fundList, dateList, error, display, drawerOpen, tabindex, isOpenLoad, modalHeading, projectionDeal, projectionFund } = this.state;\n const includeDate = dateList.map(item => {\n return new Date(moment(item['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\"))\n });\n const user = userBALService.getUserInfo();\n return (\n
\n {\n this.state.showMessage ?\n :
\n }\n \n
\n
\n \n
\n
\n {GridTitle}\n
\n \n {\n tabindex === 2 || tabindex === 3 || tabindex === 5 || tabindex === 8 || tabindex === 9 || tabindex === 10 || tabindex === 11 || tabindex === 12\n ?\n null\n :\n
\n Pivoting:\n
\n }\n {\n tabindex === 2 || tabindex === 3 || tabindex === 5 || tabindex === 8 || tabindex === 9 || tabindex === 10 || tabindex === 11 || tabindex === 12\n ?\n null\n :\n
\n \n
\n }\n {\n tabindex === 9 || tabindex === 12\n ?\n null\n :\n
\n Fund Filter:\n
\n }\n {\n tabindex === 9 || tabindex === 12\n ?\n null\n :\n
\n \n
\n }\n
\n\n
\n {error}\n \n ×\n \n
\n\n \n
\n \n
\n {\n tabindex === 8 || tabindex === 9\n ?\n null\n :\n
\n As Of Date:\n
\n }\n
\n {\n tabindex === 8 || tabindex === 9\n ?\n null\n :\n \n }\n
\n
\n
\n {\n isOpenLoad === false\n ?\n
\n {\n this.state.tabindex === 1 ?\n \n :\n this.state.tabindex === 4 ?\n \n :\n this.state.tabindex === 5 ?\n \n :\n this.state.tabindex === 2\n ?\n \n :\n this.state.tabindex === 3\n ?\n \n :\n this.state.tabindex === 6 ?\n :\n this.state.tabindex === 7 ?\n :\n this.state.tabindex === 8\n ?\n \n :\n this.state.tabindex === 9\n ?\n \n :\n this.state.tabindex === 10\n ?\n \n :\n this.state.tabindex === 11\n ?\n \n :\n this.state.tabindex === 12\n ?\n \n :\n null\n }\n
\n :\n
\n \"Loading...\"\n
\n }\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n
\n
\n :\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\nexport default PortfolioDashboard;","import React, { Component } from 'react';\n// import history from '../../history/history';\nimport config from './../../config';\nimport './login.css';\nimport LOGO from '../../images/TOR_LOGO_430_2965.png';\nimport { Session } from './../../helper/session';\nimport { userBALService } from '../../bal/user.bal';\nimport { message } from 'antd'\nimport { Utils } from '../../helper/utils';\nconst publicIp = require('public-ip');\n\nclass Login extends Component {\n constructor(props) {\n super(props);\n this.timeout = 250;\n this.mounted = false;\n this.state = {\n username: '',\n password: '',\n token: config.token,\n showHide: 'alert alert-danger alert-dismissible fade',\n error_username: null,\n error_password: null,\n error_otp: null,\n Data: {\n __MESSAGE__: 'login',\n key: 'USER_AUTHENTICATION',\n username: '',\n password: '',\n GUID: ''\n },\n userInfo: null,\n display: \"none\",\n ws: null,\n showOtpSection: false,\n otp: ''\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleValidateOtp = this.handleValidateOtp.bind(this);\n this.handleClose = this.handleClose.bind(this);\n this.handleForgotPassword = this.handleForgotPassword.bind(this);\n this.loginConfirmed = this.loginConfirmed.bind(this);\n this.getPublicIP = this.getPublicIP.bind(this);\n this.validateLoginOtp = this.validateLoginOtp.bind(this); \n\n }\n\n getPublicIP = async () => {\n var ipAddress = await publicIp.v4();\n this.setState({ ipAddress: ipAddress });\n }\n\n componentWillUnmount() {\n }\n\n connectServer = () => {\n };\n\n check = () => {\n };\n\n handleClose() {\n var _showHide = this.state.showHide === 'alert alert-danger alert-dismissible fade show' ? 'alert alert-danger alert-dismissible fade' : 'alert alert-danger alert-dismissible fade show';\n if (this.mounted) {\n this.setState({ showHide: _showHide });\n }\n }\n\n handleSubmit(e) {\n e.preventDefault();\n const { username, password } = this.state;\n if (username && password) {\n this.login(username, password);\n }\n }\n\n handleValidateOtp(e) {\n e.preventDefault();\n const { username, otp } = this.state;\n if (username && otp) {\n this.validateLoginOtp(username, otp);\n }\n }\n\n loginConfirmed() {\n localStorage.setItem('loginStatus', 'login');\n Session.setItem(config.token, JSON.stringify(this.state.userInfo));\n //this.props.history.push('/home');\n\n const { location } = this.props;\n const { state } = location;\n\n /* Here place request login api // go to state.from if set before */\n\n let pathto = Utils.getArraysIntersection(['Approver', 'Trader', 'IR', 'Partner', 'PM', 'Analyst', 'Tester', 'Ops', 'Finance', 'Finance', 'Compliance', 'Legal'], this.state.userInfo.userRoles) ? '/dss' : '/housing';\n\n const newpath = state?.from ?? pathto;\n this.props.history.replace(newpath);\n document.getElementById('userDisplay').click('');\n }\n\n login(_username, _password) {\n userBALService.login(_username, _password, this.state.ipAddress).then(_user => {\n if(_user?.user?.isOutsideNetwork) {\n this.setState({ userInfo: _user, showOtpSection: true, error_message : '' });\n } else {\n this.resetState();\n this.setState({ userInfo: _user }, () => { this.loginConfirmed(); });\n }\n },\n error => {\n this.error(error.toString());\n console.log(error.toString()); \n this.setState({ showHide: 'alert alert-danger alert-dismissible fade show', error_message : error });\n }\n );\n }\n\n validateLoginOtp(_username, _otp) {\n userBALService.validateLoginOtp(_username, _otp).then(_user => {\n console.log(_user);\n this.setState({ userInfo: _user }, () => { this.loginConfirmed(); });\n },\n error => {\n this.error(error.toString());\n console.log(error.toString());\n this.setState({ showHide: 'alert alert-danger alert-dismissible fade show', error_message : error });\n }\n );\n }\n\n error(_error) {\n message.error(_error);\n };\n\n logout() {\n userBALService.logout();\n document.getElementById('userDisplay').click();\n }\n\n componentDidMount() {\n this.mounted = true;\n if (this.state.ipAddress !== '82.150.104.2' && this.state.ipAddress !== '82.150.107.2') {\n this.getPublicIP();\n }\n\n try {\n if (Session.getItem(config.token) && JSON.parse(Session.getItem(config.token))) {\n Session.removeItem(config.token);\n let userDisplay = document.getElementById('userDisplay');\n if(userDisplay)\n userDisplay.click();\n }\n } catch (error) {\n Session.removeItem(config.token);\n let userDisplay = document.getElementById('userDisplay');\n if(userDisplay)\n userDisplay.click();\n }\n this.connectServer();\n }\n\n handleChange(e) {\n const { name, value } = e.target;\n this.setState({\n [name]: value,\n ['error_' + name]: value\n });\n }\n handleForgotPassword(e) {\n this.props.history.replace('/forgotPassword');\n }\n\n resetState() {\n if (this.mounted) {\n this.setState({\n username: '',\n password: '',\n error_username: null,\n error_password: null\n });\n }\n }\n\n render() {\n return this.showPage();\n }\n\n showPage() {\n const { username, password, error_username, error_password, error_message, showOtpSection, otp, error_otp } = this.state;\n return (\n
\n
\n
\n
\n
\n
\n {error_message}\n \n ×\n \n
\n \n { \n !showOtpSection ?
\n LOGIN\n
\n \n
\n
\n \n
\n {/*\n Forgot Password ?\n */}\n \n Forgot Password ?\n \n
\n
\n
\n \n
\n
: \n
\n Enter login OTP sent to your official email:\n
\n \n
\n
\n \n
\n
\n }\n
\n
\n
\n
\n
\n \"Go\"\n
\n
\n
\n
\n );\n }\n}\n\nexport default Login;\n","import React from 'react';\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\nimport List from '@material-ui/core/List';\nimport Divider from '@material-ui/core/Divider';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\n\nconst useStyles = makeStyles({\n list: {\n width: 250,\n },\n fullList: {\n width: 'auto',\n },\n});\n\nconst SideDrawer = (props) => {\n const classes = useStyles();\n\n const toggleDrawer = () => (event) => {\n props.toggleDrawer();\n };\n\n const toggleTab = (val) => (event) => {\n toggleDrawer();\n props.toggleTabIndex(val);\n };\n\n const list = (anchor) => (\n \n \n \n \n \n \n \n {[ {id: 2, text: 'PNL'}, \n {id: 3, text: 'Cashflows'}, \n {id: 4, text: 'Projection'},\n {id: 8, text: 'Trades'},\n {id: 9, text: 'Mark History'}\n ].map((text, index) => (\n \n \n \n ))}\n \n \n \n \n \n \n {[ \n {id: 5, text: 'Overview'}, \n {id: 6, text: 'Risk'}, \n // {id: 7, text: 'Credit Metrics'} \n ].map((text, index) => (\n \n \n \n ))}\n \n \n );\n\n return (\n
\n \n \n {list('left')}\n \n \n
\n );\n}\n\nexport default SideDrawer;","import React, { Component } from 'react';\nimport TorGrid from '../../torgrid/torgrid';\nimport ChartDisplay from \"../../portfolioDashboard/components/chartDisplay.js\";\n\nclass DealOverview extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n chartData: []\n }\n\n }\n\n render() {\n return this.getTemplate();\n }\n\n componentDidMount() {\n const {AsOfDate, chartData} = this.props;\n\n let chartDataFiltered = [];\n\n if(AsOfDate) {\n chartDataFiltered = chartData.filter(row => new Date(row['For Report Date']) <= new Date(AsOfDate));\n }\n\n this.setState({\n chartData: chartDataFiltered\n });\n }\n\n componentDidUpdate(prevProps) {\n const {Deal, Fund, AsOfDate, chartData} = this.props;\n\n if(prevProps.Deal !== Deal || prevProps.AsOfDate !== AsOfDate || prevProps.chartData !== chartData) {\n let chartDataFiltered = [];\n\n if(AsOfDate) {\n chartDataFiltered = chartData.filter(row => new Date(row['For Report Date']) <= new Date(AsOfDate));\n }\n\n this.setState({\n chartData: chartDataFiltered\n });\n } else if (prevProps.Fund !== Fund) {\n let chartDataFiltered = [];\n\n if(AsOfDate) {\n chartDataFiltered = chartData.filter(row => new Date(row['For Report Date']) <= new Date(AsOfDate));\n }\n\n if(Fund && Fund !== 'All') {\n chartDataFiltered = chartDataFiltered.filter(row => row['Fund'] === Fund);\n }\n\n this.setState({\n chartData: chartDataFiltered\n });\n }\n }\n\n\n getTemplate() {\n if((this.props.gridData && this.props.gridData.length > 0) || (this.state.chartData && this.state.chartData.length > 0)) {\n return (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n );\n } else {\n return null;\n }\n \n\n }\n}\n\nexport default DealOverview;","import React, { Component } from 'react';\n\nimport TorGrid from '../../torgrid/torgrid';\nimport ChartDisplay from \"../../portfolioDashboard/components/chartDisplay.js\"\nimport moment from 'moment';\n\nclass DealRisk extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n chartData: []\n }\n\n }\n\n render() {\n return this.getTemplate();\n }\n\n componentDidMount() {\n const { AsOfDate, chartData } = this.props;\n\n let chartDataFiltered = [];\n\n if (AsOfDate) {\n chartDataFiltered = chartData.filter(row => new Date(row['report date']) <= new Date(AsOfDate));\n }\n\n this.setState({\n chartData: chartDataFiltered\n });\n }\n\n componentDidUpdate(prevProps) {\n const { Deal, Fund, AsOfDate, chartData } = this.props;\n\n if (prevProps.Deal !== Deal || prevProps.AsOfDate !== AsOfDate || prevProps.chartData !== chartData) {\n let chartDataFiltered = [];\n\n if (AsOfDate) {\n chartDataFiltered = chartData.filter(row => new Date(row['report date']) <= new Date(AsOfDate));\n }\n\n this.setState({\n chartData: chartDataFiltered\n });\n } else if (prevProps.Fund !== Fund) {\n let chartDataFiltered = [];\n\n if (AsOfDate) {\n chartDataFiltered = chartData.filter(row => new Date(row['report date']) <= new Date(AsOfDate));\n }\n\n if (Fund && Fund !== 'All') {\n chartDataFiltered = chartDataFiltered.filter(row => row['fund'] === Fund);\n }\n\n this.setState({\n chartData: chartDataFiltered\n });\n }\n }\n\n getTemplate() {\n var gridDataFiltered = this.props.gridData\n if (this.props.AsOfDate) {\n gridDataFiltered = gridDataFiltered.filter(row => row['report date'] === moment(this.props.AsOfDate).format(\"YYYYMMDD\"));\n }\n \n if(this.props.chartData && this.props.chartData.length > 0) {\n return (\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n );\n } else {\n return null;\n }\n }\n}\n\nexport default DealRisk;","import React, { Component } from 'react';\nimport moment from 'moment';\nimport ChartDisplay from \"../portfolioDashboard/components/chartDisplay.js\"\n\nimport { dealDashboardBALService } from '../../bal/Deal-Dashboard/dealDashboard.bal';\nimport TorGrid from './../torgrid/torgrid';\n\n\nclass HistoricalCashflow extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: false,\n gridData: [],\n irrData: [],\n irrFilterData: [],\n filterData: []\n }\n\n this.isZero = this.isZero.bind(this);\n this.getDate = this.getDate.bind(this);\n this.agValueFormatter = this.agValueFormatter.bind(this);\n this.getValueFormatted = this.getValueFormatted.bind(this);\n this.getData = this.getData.bind(this);\n this.aggregateData = this.aggregateData.bind(this);\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n isZero(value) {\n return value < 0.0001 && value > -0.0001\n }\n\n getDate(params) {\n var val = Date(params.value);\n return val;\n }\n\n agValueFormatter(value, format) {\n var agformat = format;\n if (value && value !== '' && value !== 0) {\n switch (agformat) {\n case 'millionsFormat':\n return this.getValueFormatted(value / 1e6, 1);\n case 'millionsFormat2':\n return this.getValueFormatted(value / 1e6, 2);\n case 'percentFormat':\n return this.getValueFormatted(value * 100);\n case 'percentFormat1':\n return this.getValueFormatted(value * 100, 1);\n case 'decimalFormat0':\n return this.getValueFormatted(value, 0);\n case 'decimalFormat2':\n return this.getValueFormatted(value, 2);\n case '{0:.2f}x':\n return this.getValueFormatted(value);\n case 'leverageFormat':\n const displayvalue = this.getValueFormatted(value, 2);\n return `${displayvalue}${displayvalue && displayvalue.toString() !== '' ? 'x' : ''}`;\n case 'dateFormat':\n return this.getDate(value);\n default:\n return value;\n }\n }\n else if (value && value !== '' && agformat === 'decimalFormatShowZero2')\n return this.getValueFormatted(value, 2);\n return '';\n }\n\n getValueFormatted(param, digit = 2) {\n var result = param;\n var val = 0.0;\n\n if (!isNaN(result)) {\n try {\n val = parseFloat(result).toFixed(digit);\n if (this.isZero(val)) return '';\n\n if (!isNaN(val))\n result = val.toString()\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n } catch (error) {\n val = result;\n }\n }\n return result;\n }\n\n filterData(colName, value) {\n var data = this.state.gridData;\n var data2 = this.state.irrData;\n\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n var arr2 = data2.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n filterData: arr,\n irrFilterData: arr2\n });\n } else {\n this.setState({\n filterData: this.state.gridData,\n irrFilterData: this.state.irrData\n });\n }\n\n this.aggregateData();\n }\n\n aggregateData() {\n var { filterData } = this.state;\n\n var cumSum = 0.0;\n var sum = 0.0;\n\n var jsObj = {\n date: null,\n sum: null,\n cumSum: null\n };\n\n var aggList = [];\n\n for (var i = 0; i < filterData.length; i++) {\n var date = new Date(filterData[i].tdate);\n date = new Date(date.getFullYear(), date.getMonth(), 1);\n date = moment(date).format(\"YYYY/MM/DD\");\n\n if (i === 0) {\n jsObj.date = date;\n sum += filterData[i]['netBook'];\n cumSum += filterData[i]['netBook'];\n } else if (date !== jsObj.date) {\n jsObj.sum = sum;\n jsObj.cumSum = cumSum;\n aggList.push(jsObj);\n\n jsObj = {\n date: null,\n sum: null,\n cumSum: null\n };\n jsObj.date = date;\n\n sum = filterData[i]['netBook'];\n cumSum += filterData[i]['netBook'];\n\n } else {\n sum += filterData[i]['netBook'];\n cumSum += filterData[i]['netBook'];\n }\n }\n\n if (jsObj.date !== null) {\n jsObj.sum = sum;\n jsObj.cumSum = cumSum;\n aggList.push(jsObj);\n }\n\n return aggList;\n }\n\n getData() {\n const { Deal, AsOfDate } = this.props;\n\n dealDashboardBALService.getCashflowData({ Deal: Deal, Quarter: AsOfDate }).then(data => {\n this.setState({ gridData: data.cashflows });\n this.setState({ irrData: data.irr });\n this.setState({ isLoading: false });\n this.filterData('fund', this.props.fund);\n }, error => {\n this.setState({ isLoading: false });\n console.log(error);\n });\n }\n\n componentDidMount() {\n if (this.props.Deal && this.props.AsOfDate) {\n this.setState({ isLoading: true, gridData: [], filterData: [] });\n this.getData();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.Deal !== this.props.Deal || prevProps.AsOfDate !== this.props.AsOfDate) {\n if (this.props.Deal && this.props.AsOfDate) {\n this.setState({ isLoading: true, gridData: [], filterData: [] })\n this.getData();\n }\n }\n\n if (prevProps.fund !== this.props.fund) {\n this.filterData('fund', this.props.fund);\n }\n }\n\n\n getTemplate() {\n const {AsOfDate} = this.props;\n let quarterDate = '';\n if(AsOfDate) {\n quarterDate = new Date(AsOfDate.substring(2), (parseInt(AsOfDate.substring(1, 2)) * 3).toString(), '01');\n quarterDate = new Date(quarterDate - 1);\n\n quarterDate = moment(quarterDate).format(\"YYYY-MM-DD\");\n }\n\n if (this.state.isLoading === true) {\n return (\n
\n \"Loading...\"\n
\n );\n } else {\n if (this.props.Deal && this.state.filterData.length > 0) {\n return (\n
\n
\n

{`Realized Performance though ${quarterDate}`}

\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n );\n } else {\n return null;\n }\n }\n\n }\n}\nexport default HistoricalCashflow;","import React, { Component } from 'react';\nimport ChartDisplay from \"../portfolioDashboard/components/chartDisplay.js\"\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport TorGrid from './../torgrid/torgrid';\nimport moment from 'moment';\n\nclass ProjectedCashflow extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: false,\n gridData: [],\n filterData: [],\n irrGridData: [],\n irrFilterData: [],\n gridTopData: []\n }\n\n this.isZero = this.isZero.bind(this);\n this.getDate = this.getDate.bind(this);\n this.agValueFormatter = this.agValueFormatter.bind(this);\n this.getValueFormatted = this.getValueFormatted.bind(this);\n this.getData = this.getData.bind(this);\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n isZero(value) {\n return value < 0.0001 && value > -0.0001\n }\n\n getDate(params) {\n var val = Date(params.value);\n return val;\n }\n\n agValueFormatter(value, format) {\n var agformat = format;\n if (value && value !== '' && value !== 0) {\n switch (agformat) {\n case 'millionsFormat':\n return this.getValueFormatted(value / 1e6, 1);\n case 'millionsFormat2':\n return this.getValueFormatted(value / 1e6, 2);\n case 'percentFormat':\n return this.getValueFormatted(value * 100);\n case 'percentFormat1':\n return this.getValueFormatted(value * 100, 1);\n case 'decimalFormat0':\n return this.getValueFormatted(value, 0);\n case 'decimalFormat2':\n return this.getValueFormatted(value, 2);\n case '{0:.2f}x':\n return this.getValueFormatted(value);\n case 'leverageFormat':\n const displayvalue = this.getValueFormatted(value, 2);\n return `${displayvalue}${displayvalue && displayvalue.toString() !== '' ? 'x' : ''}`;\n case 'dateFormat':\n return this.getDate(value);\n default:\n return value;\n }\n }\n else if (value && value !== '' && agformat === 'decimalFormatShowZero2')\n return this.getValueFormatted(value, 2);\n return '';\n }\n\n getValueFormatted(param, digit = 2) {\n var result = param;\n var val = 0.0;\n\n if (!isNaN(result)) {\n try {\n val = parseFloat(result).toFixed(digit);\n if (this.isZero(val)) return '';\n\n if (!isNaN(val))\n result = val.toString()\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n } catch (error) {\n val = result;\n }\n }\n return result;\n }\n\n filterData(colName, value) {\n var data = this.state.gridData;\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n filterData: arr\n });\n } else {\n this.setState({\n filterData: this.state.gridData\n });\n }\n }\n\n filterDataIRR(colName, value) {\n var data = this.state.irrGridData;\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n irrFilterData: arr\n });\n } else {\n this.setState({\n irrFilterData: data\n });\n }\n }\n\n getData = async () => {\n const { Deal, AsOfDate } = this.props;\n await torGridBALService.getRowData(\"pCashflow\", { query: AsOfDate ? `Exec [sp_projected_cashflow] '${Deal}', '${AsOfDate}'` : `Exec [sp_projected_cashflow] '${Deal}'` }).then(data => {\n this.setState({ gridData: data });\n this.setState({ isLoading: false });\n this.filterData('Fund', this.props.fund);\n }, error => {\n this.setState({ isLoading: false });\n this.setState({ gridData: [], filterData: [] });\n });\n\n await torGridBALService.getRowData(\"dealProjectionTop\", { query: AsOfDate ? `Exec [sp_get_irr_MOIC] '${Deal}', '${AsOfDate}'` : `Declare @date as varchar(10) = (Select CONVERT(varchar, MAX([date_captured]), 112) from irr_summary) Exec [sp_get_irr_MOIC] '${Deal}', @date` }).then(data => {\n this.setState({ irrGridData: data });\n this.setState({ isLoading: false });\n this.filterDataIRR('Fund', this.props.fund);\n }, error => {\n this.setState({ isLoading: false });\n this.setState({ irrGridData: [], irrFilterData: [] });\n });\n }\n\n componentDidMount() {\n if (this.props.Deal) {\n this.setState({ isLoading: true, gridData: [], filterData: [], irrGridData: [], irrFilterData: [] });\n this.getData();\n }\n }\n\n componentDidUpdate(prevProps) {\n if ((prevProps.Deal ?? '') !== (this.props.Deal ?? '') || (prevProps.AsOfDate ?? '') !== (this.props.AsOfDate ?? '')) {\n this.setState({ isLoading: true, gridData: [], filterData: [], irrGridData: [], irrFilterData: [] })\n this.getData();\n }\n\n if (prevProps.fund !== this.props.fund) {\n this.filterData('Fund', this.props.fund);\n this.filterDataIRR('Fund', this.props.fund);\n }\n }\n\n\n getTemplate() {\n const {AsOfDate} = this.props;\n let quarterDate = '';\n if(AsOfDate) {\n quarterDate = new Date(AsOfDate.substring(2), (parseInt(AsOfDate.substring(1, 2)) * 3).toString(), '01');\n quarterDate = new Date(quarterDate - 1);\n\n quarterDate = moment(quarterDate).format(\"YYYY-MM-DD\");\n }\n \n if (this.state.isLoading === true) {\n return (\n
\n \"Loading...\"\n
\n );\n } else {\n if (this.props.Deal && this.state.filterData.length > 0) {\n return (\n
\n
\n

{`Whole Life Projection as-of ${this.props.AsOfDate} for date ${quarterDate}`}

\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n );\n } else {\n return null;\n }\n }\n }\n}\nexport default ProjectedCashflow;","import React, { Component } from 'react';\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport TorGrid from './../torgrid/torgrid';\n\nclass DealTrades extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: false,\n gridData: [],\n filterData: [],\n dataList: {}\n }\n\n this.filterData = this.filterData.bind(this);\n this.getData = this.getData.bind(this);\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n filterData(colName, value) {\n var data = this.state.gridData;\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n filterData: arr\n });\n } else {\n this.setState({\n filterData: this.state.gridData\n });\n }\n }\n\n getData() {\n const { Deal, AsOfDate } = this.props;\n torGridBALService.getRowData(\"hedgeReport\", { query: AsOfDate ? `Exec [sp_deal_trades] '${Deal}'` : `Exec [sp_deal_trades] '${Deal}'` }).then(data => {\n var dataList = this.state.dataList;\n dataList[Deal] = data;\n this.setState({isLoading: false});\n this.setState({ \n gridData: data, \n filterData: data, \n dataList: dataList \n });\n }, error => {\n this.setState({isLoading: false});\n this.setState({ gridData: [], filterData: [] });\n });\n }\n\n componentDidMount() {\n if(this.props.Deal) {\n this.setState({isLoading: true, gridData: [], filterData: []});\n this.getData();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.Deal !== this.props.Deal || prevProps.AsOfDate !== this.props.AsOfDate) {\n var data = this.state.dataList[this.props.Deal];\n if(data) {\n this.setState({ \n gridData: data, \n filterData: data\n });\n } else {\n this.setState({isLoading: true, gridData: [], filterData: []})\n this.getData();\n }\n }\n\n if (prevProps.fund !== this.props.fund) {\n this.filterData('Fund', this.props.fund);\n }\n }\n\n\n getTemplate() {\n if(this.state.isLoading === true) {\n return (\n
\n \"Loading...\"\n
\n );\n } else {\n if(this.props.Deal && this.state.filterData.length > 0) {\n return (\n
\n
\n
\n \n
\n
\n
\n );\n } else {\n return null;\n }\n }\n }\n}\nexport default DealTrades;","import React, { Component } from 'react';\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport TorGrid from './../torgrid/torgrid';\n\nclass DealMarks extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: false,\n gridData: [],\n filterData: [],\n dataList: {}\n }\n\n this.filterData = this.filterData.bind(this);\n this.getData = this.getData.bind(this);\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n filterData(colName, value) {\n var data = this.state.gridData;\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n filterData: arr\n });\n } else {\n this.setState({\n filterData: this.state.gridData\n });\n }\n }\n\n getData() {\n const { Deal, AsOfDate } = this.props;\n torGridBALService.getRowData(\"hedgeReport\", { query: AsOfDate ? `Exec [sp_get_mark_history] ${Deal}` : `Exec [sp_get_mark_history] '${Deal}', '${AsOfDate}'` }).then(data => {\n var dataList = this.state.dataList;\n dataList[Deal] = data;\n this.setState({isLoading: false});\n this.setState({ \n gridData: data, \n filterData: data, \n dataList: dataList \n });\n }, error => {\n this.setState({isLoading: false});\n this.setState({ gridData: [], filterData: [] });\n });\n }\n\n componentDidMount() {\n if(this.props.Deal) {\n this.setState({isLoading: true, gridData: [], filterData: []});\n this.getData();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.Deal !== this.props.Deal || prevProps.AsOfDate !== this.props.AsOfDate) {\n var data = this.state.dataList[this.props.Deal];\n if(data) {\n this.setState({ \n gridData: data, \n filterData: data\n });\n } else {\n this.setState({isLoading: true, gridData: [], filterData: []})\n this.getData();\n }\n }\n\n if (prevProps.fund !== this.props.fund) {\n this.filterData('Fund', this.props.fund);\n }\n }\n\n\n getTemplate() {\n if(this.state.isLoading === true) {\n return (\n
\n \"Loading...\"\n
\n );\n } else {\n if(this.props.Deal && this.state.filterData.length > 0) {\n return (\n
\n
\n
\n \n
\n
\n
\n );\n } else {\n return null;\n }\n }\n }\n}\nexport default DealMarks;","import React, { Component } from 'react';\nimport { Utils } from './../../../helper/utils';\n\nclass DealCreditMetrics extends Component {\n constructor(props) {\n super(props);\n this.state = {\n chartData : []\n }\n }\n\n render() {\n return this.getTemplate();\n }\n \n getTemplate() {\n var chartData = null;\n // var data1 = [\n // ['Type', 'Parent', 'Value'],\n // ['Asset', null, 0],\n // ];\n // var data2 = [\n // ['Type', 'Parent', 'Value'],\n // ['Liabilities', null, 0],\n // ];\n\n if(this.props.chartData && this.props.chartData.length > 0) {\n \n chartData = this.props.chartData[0];\n var ltmebitda = chartData['LTM EBITDA']\n var seniorDebt = chartData['Senior Debt'];\n var pariPasu = chartData['Pari Pasu'];\n var torDebt = chartData['TOR Debt'];\n var equityValue = chartData['Equity Value'];\n\n seniorDebt = seniorDebt ?? 0;\n pariPasu = pariPasu ?? 0;\n torDebt = torDebt ?? 0;\n var enterpriseValue = seniorDebt + pariPasu + torDebt + equityValue;\n\n // data1 = [\n // ['Type', 'Parent', 'Value'],\n // ['Asset', null, 100],\n // [`Enterprise Value ${Utils.agValueFormatter({format : 'millionsFormat1M', value :enterpriseValue})}`, 'Asset', enterpriseValue]\n // ];\n\n // data2 = [\n // ['Type', 'Parent', 'Value'],\n // ['Liabilities', null, 0],\n // [`Senior Debt ${Utils.agValueFormatter({format : 'millionsFormat1M', value :seniorDebt})}`, 'Liabilities', seniorDebt],\n // [`Pari Pasu ${Utils.agValueFormatter({format : 'millionsFormat1M', value : pariPasu})}`, 'Liabilities', pariPasu],\n // [`TOR ${Utils.agValueFormatter({format : 'millionsFormat1M', value : torDebt})}`, 'Liabilities', torDebt],\n // [`Equity Value ${Utils.agValueFormatter({format : 'millionsFormat1M', value : equityValue})}`, 'Liabilities', equityValue]\n // ];\n var seniorDebtValue = `Senior Debt ${Utils.agValueFormatter({format : 'millionsFormat1M', value :seniorDebt})}`;\n var pariPasuValue = `Pari Pasu ${Utils.agValueFormatter({format : 'millionsFormat1M', value : pariPasu})}`;\n var torDebtValue = `TOR ${Utils.agValueFormatter({format : 'millionsFormat1M', value : torDebt})}`;\n var equityValueValue = `Equity Value ${Utils.agValueFormatter({format : 'millionsFormat1M', value : equityValue})}`;\n var enterpriseValueValue = `Enterprise Value ${Utils.agValueFormatter({format : 'millionsFormat1M', value :enterpriseValue})}`;\n\n var seniorDebtPer = {height: `${seniorDebt / enterpriseValue * 100}%`, width: \"100%\", background : '#5A89E6', display: 'flex', justifyContent: 'center', alignItems: 'center'};\n var pariPasuTorPer = {height: `${(pariPasu + torDebt) / enterpriseValue * 100}%`, width: \"100%\", display: \"flex\", justifyContent: 'center', alignItems: 'center' };\n var pariPasuPer = {width: `${pariPasu / (pariPasu + torDebt) * 100}%`, height: '100%', background : '#91B7FF', float:'left', display: 'flex', justifyContent: 'center', alignItems: 'center' };\n var torDebtPer = {width: `${torDebt / (pariPasu + torDebt) * 100}%`, height: '100%', background : '#73B9EE', float:'left', display: 'flex', justifyContent: 'center', alignItems: 'center' };\n var equityPer = {height: `${equityValue / enterpriseValue * 100}%`, width: \"100%\", background : '#4A71BD', display: 'flex', justifyContent: 'center', alignItems: 'center' };\n }\n return (\n \n { (this.props.chartData && this.props.chartData.length > 0) ? \n
\n
\n

LTM EBITDA


\n
\n
\n

{`${Utils.agValueFormatter({format : 'millionsFormat1M', value :ltmebitda})}`}

\n
\n
\n
\n
\n
\n Assets\n
\n
\n {enterpriseValueValue}\n
\n
\n
\n
\n Liabilities\n
\n
\n
\n {seniorDebtValue}\n
\n
\n
\n {pariPasuValue}\n
\n
\n {torDebtValue}\n
\n
\n
\n {equityValueValue}\n
\n
\n
\n
\n
\n
\n : null \n }\n
\n );\n }\n}\nexport default DealCreditMetrics;","import React, { Component } from 'react';\nimport TorGrid from '../torgrid/torgrid';\nimport ChartDisplay from \"../portfolioDashboard/components/chartDisplay.js\";\nimport _ from 'underscore';\n\n\nclass DealPerformanceOverview extends Component {\n constructor(props) {\n super(props);\n\n this.isZero = this.isZero.bind(this);\n this.getDate = this.getDate.bind(this);\n this.agValueFormatter = this.agValueFormatter.bind(this);\n this.getValueFormatted = this.getValueFormatted.bind(this);\n this.getData = this.getData.bind(this);\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n isZero(value) {\n return value < 0.0001 && value > -0.0001\n }\n\n getDate(params) {\n var val = Date(params.value);\n return val;\n }\n\n agValueFormatter(value, format) {\n var agformat = format;\n if (value && value !== '' && value !== 0) {\n switch (agformat) {\n case 'millionsFormat':\n return this.getValueFormatted(value / 1e6, 1);\n case 'millionsFormat2':\n return this.getValueFormatted(value / 1e6, 2);\n case 'percentFormat':\n return this.getValueFormatted(value * 100);\n case 'percentFormat1':\n return this.getValueFormatted(value * 100, 1);\n case 'decimalFormat0':\n return this.getValueFormatted(value, 0);\n case 'decimalFormat2':\n return this.getValueFormatted(value, 2);\n case '{0:.2f}x':\n return this.getValueFormatted(value);\n case 'leverageFormat':\n const displayvalue = this.getValueFormatted(value, 2);\n return `${displayvalue}${displayvalue && displayvalue.toString() !== '' ? 'x' : ''}`;\n case 'dateFormat':\n return this.getDate(value);\n default:\n return value;\n }\n }\n else if (value && value !== '' && agformat === 'decimalFormatShowZero2')\n return this.getValueFormatted(value, 2);\n return '';\n }\n\n getValueFormatted(param, digit = 2) {\n var result = param;\n var val = 0.0;\n\n if (!isNaN(result)) {\n try {\n val = parseFloat(result).toFixed(digit);\n if (this.isZero(val)) return '';\n\n if (!isNaN(val))\n result = val.toString()\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n } catch (error) {\n val = result;\n }\n }\n return result;\n }\n\n getData() {\n var grossMV = 0.0;\n var capital = 0.0;\n var cYield = 0.0;\n\n var data = this.props.gridData;\n if(data) {\n for (var i = 0; i < data.length; i++) {\n grossMV += data[i]['asset mv'];\n capital += data[i]['capital total'];\n cYield += (data[i]['gross annual total coupon'] + data[i]['gross annual fx carry'] + data[i]['annual cost of capital'])\n }\n }\n return [grossMV, capital, grossMV / capital, cYield / capital];\n }\n\n\n getTemplate() {\n if (this.props.gridData && this.props.gridData.length > 0) {\n const {gridData} = this.props;\n var fundList = _.keys(_.countBy(gridData, function(gridData) { return gridData['Fund']; }));\n return (\n
\n

*Deal level Contribution-To-Return is approximated and may not add up to the fund total return.

\n
\n 1 ? true : false}\n groupIncludeTotalFooter={fundList.length > 1 ? true : false}\n\n defaultColDef={this.props.defaultColDef ??\n {\n sortable: false\n , filter: false\n , floatingFilter: false\n , enableRowGroup: true\n , resizable: true\n , suppressSizeToFit: false\n , flex: 1\n }\n }\n handleRowSelected={this.handleRowSelected}\n sideBar='none'\n gridTitle='PNL Overview (Pnl in MM, excluding non-deal allocations):'\n gridIdentityColumn=\"pnl_id\"\n />\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n );\n } else {\n return null;\n }\n }\n}\n\nexport default DealPerformanceOverview;","import React, { Component } from 'react';\nimport Moment from 'moment';\nimport _ from 'underscore';\nimport { Collapse } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync, faBackward } from \"@fortawesome/free-solid-svg-icons\";\nimport Modal from 'react-awesome-modal';\nimport { Dropdown } from 'semantic-ui-react';\nimport moment from 'moment'\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { dealBALService } from '../../bal/deal.bal';\nimport { dealDashboardBALService } from '../../bal/Deal-Dashboard/dealDashboard.bal';\n\nimport SideDrawer from './components/sideDrawer.js';\nimport DealOverview from './components/dealOverview'\nimport DealRisk from './components/dealRisk'\nimport HistoricalCashflow from './historicalCashflow'\nimport ProjectedCashflow from './projectedCashflow'\nimport DealTrades from './dealTrades'\nimport DealMarks from './dealMarks'\nimport DealCreditMetrics from './components/dealCreditMetrics';\nimport DealPerformanceOverview from './dealPerformanceOverview';\nimport ToastMessage from \"./../deals/components/toastMessage\";\n\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\n\nclass DealDashboard extends Component {\n constructor(props) {\n super(props);\n\n this.mounted = false;\n this.timeout = 250;\n this.state = {\n GridId: \"dealDashboard\",\n drawerOpen: false,\n GridTitle: 'Exposure > Overview',\n display: \"none\",\n thetaChartData: [],\n tabindex: 5,\n chartMaturityData: [],\n chartVintageData: [],\n maturityLabel: [],\n vintageLabel: [],\n AsOfDate: null,\n Frequency: 'm',\n gridData: [],\n filterData: [],\n dateList: [],\n Deal: null,\n DealName: null,\n fund: \"All\",\n MessageBoxBackground: \"Red\",\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 6, text: \"TACO IV\", value: \"TACO IV\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" },\n { key: 7, text: \"ALL\", value: \"All\" }\n ],\n dealList: [],\n cashflowDealList: [],\n FrequencyList: [\n { key: \"m\", text: \"Monthly\", value: \"m\" }\n , { key: \"d\", text: \"Daily\", value: \"d\" }\n , { key: \"w\", text: \"Weekly\", value: \"w\" }\n , { key: \"q\", text: \"Quaterly\", value: \"q\" }\n ],\n chartData: [],\n chartDataRisk: [],\n quarterList: [],\n cashflowQuarter: [],\n filterQuarterList: [],\n selectedQuarter: null,\n creditMetrics: {},\n filterCreditMetrics: [],\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n }\n\n dealBALService.getAllDeals().then(data => {\n this.setState({ dealList: data });\n }, error => { console.log(error); });\n\n dealDashboardBALService.getAllCashflowDeals().then(data => {\n this.setState({ cashflowDealList: data });\n }, error => { console.log(error); });\n\n this.handleCloseErrorBox = this.handleCloseErrorBox.bind(this);\n this.refresh = this.refresh.bind(this);\n this.refreshClicked = this.refreshClicked.bind(this);\n\n this.handleDropDownChangeFrequency = this.handleDropDownChangeFrequency.bind(this);\n this.handleChangeAsOfDate = this.handleChangeAsOfDate.bind(this);\n\n this.handleDropDownChangeFund = this.handleDropDownChangeFund.bind(this);\n this.handleDropDownChangeDeal = this.handleDropDownChangeDeal.bind(this);\n this.handleDropDownChangeDealDates = this.handleDropDownChangeDealDates.bind(this);\n this.filterData = this.filterData.bind(this);\n this.filterDate = this.filterDate.bind(this);\n this.toggleTabIndex = this.toggleTabIndex.bind(this);\n this.drawerToggleClickHandler = this.drawerToggleClickHandler.bind(this);\n this.handleGridTitle = this.handleGridTitle.bind(this);\n this.closeErrorMessage = this.closeErrorMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n\n dealDashboardBALService.getDealQuarterlyDates(null).then(data => {\n this.setState({ quarterList: data });\n });\n }\n\n componentDidMount = async () => {\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 0' }).then(data => {\n this.setState({ dateList: data });\n this.filterDate(data, data[0]['report date'], new Date(moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\")));\n });\n this.mounted = true;\n }\n\n filterDate(data, date, formatDate) {\n const frequencyList = data.filter(function (item) {\n return item['report date'] === date\n });\n\n this.setState({ AsOfDate: formatDate, Frequency: frequencyList[0]['for frequency'] });\n }\n\n render() {\n return this.getTemplate();\n }\n\n handleChangeAsOfDate = date => {\n const {dateList} = this.state;\n if(date) {\n const frequencyList = dateList.filter(function (item) {\n return item['report date'] === parseInt(moment(date).format(\"YYYYMMDD\"))\n });\n\n if(frequencyList?.length > 0 && frequencyList[0]) {\n const asOfDate = moment(date).format(\"YYYY-MM-DD\");\n this.setState({ AsOfDate: asOfDate }, async () => {\n await this.filterDate(this.state.dateList, parseInt(moment(date).format(\"YYYYMMDD\")), moment(date).format(\"YYYY-MM-DD\"));\n this.refresh();\n });\n\n if (this.state.gridData && this.state.gridData.length > 0) {\n this.filterData(this.getFilterList(null, null, asOfDate));\n }\n } else {\n this.setState({\n AsOfDate: moment(date).format(\"YYYY-MM-DD\")\n });\n }\n } else {\n this.setState({\n AsOfDate: null\n })\n }\n \n };\n\n handleDropDownChangeDealDates = (event, data) => {\n const selectedQuarter = data.value;\n this.setState({\n selectedQuarter: selectedQuarter\n });\n };\n\n handleDropDownChangeFrequency = (event, data) => {\n const frequency = data.value\n this.setState({\n Frequency: frequency\n });\n if (this.state.gridData && this.state.gridData.length > 0) {\n this.filterData(this.getFilterList(null, null, null, frequency));\n }\n };\n\n handleDropDownChangeDeal = (event, data) => {\n const Deal = data?.value;\n const DealName = this.state.dealList.filter(function (item) { return item.id === Deal }).map(item => { return item.name });\n\n if (DealName && DealName.length > 0) {\n const filterQuarterList = this.state.quarterList.filter(item => item.Deal === DealName[0]).map(\n item => {\n return {\n key: item.Quarter, text: item.Quarter, value: item.Quarter\n }\n }\n );\n\n this.setState({\n Deal: Deal,\n fund: 'All',\n DealName: DealName,\n gridData: [],\n filterData: [],\n chartData: [],\n chartDataRisk: [],\n filterQuarterList: filterQuarterList\n }, () => {\n dealBALService.getAllFunds(Deal).then(data => {\n for (var i = 0; i < data.length; i++) {\n data[i]['key'] = data[i]['id']\n data[i]['text'] = (data[i]['fundName'] === 'TOR' ? 'TACF' : data[i]['fundName'])\n data[i]['value'] = data[i]['fundName']\n delete (data[i]['id']);\n delete (data[i]['fundName']);\n }\n data.push({ key: 4, text: \"ALL\", value: \"All\" });\n\n this.setState({\n fundList: data\n });\n }, error => {\n console.log(error);\n });\n\n this.refresh(this.state.tabindex);\n });\n }\n };\n\n handleDropDownChangeFund = (event, data) => {\n const Fund = data.value\n this.setState({\n fund: Fund\n });\n if (this.state.tabindex === 2) {\n this.filterData([{ colName: 'Fund', value: Fund }])\n } else if (this.state.tabindex === 5 || this.state.tabindex === 6) {\n this.filterData([{ colName: 'fund', value: Fund }])\n } else {\n this.filterData(this.getFilterList(null, Fund));\n }\n };\n\n handleCloseErrorBox = () => {\n this.setState({ display: \"none\" });\n }\n\n filterData(filterList) {\n var data = this.state.gridData;\n\n if (filterList) {\n filterList.forEach(filter => {\n const { colName, value } = filter;\n if (value !== 'All') {\n data = data.filter(function (item) {\n return item[colName] === value\n });\n }\n });\n }\n\n this.setState({ filterData: data });\n }\n\n\n\n getFilterList(deal, fundName, asOfDate, frequency) {\n const { DealName, fund, AsOfDate, Frequency } = this.state;\n\n asOfDate = asOfDate ?? AsOfDate;\n frequency = frequency ?? Frequency;\n\n if (DealName && DealName.length > 0) {\n return (\n [\n { colName: 'fund', value: fundName ?? fund },\n { colName: 'deal', value: deal ?? DealName[0] },\n { colName: 'for frequency', value: frequency },\n { colName: 'report date', value: asOfDate ? Moment(asOfDate).format('YYYYMMDD') : '' }\n ]);\n }\n return (\n [\n { colName: 'fund', value: fundName ?? fund },\n { colName: 'deal', value: deal ?? '' },\n { colName: 'for frequency', value: frequency },\n { colName: 'report date', value: asOfDate ? Moment(asOfDate).format('YYYYMMDD') : '' }\n ]);\n }\n\n refreshClicked() {\n this.refresh(null);\n }\n\n refresh(tabindexparam) {\n const { tabindex, AsOfDate, Frequency, DealName, fund, creditMetrics, selectedQuarter } = this.state;\n tabindexparam = tabindexparam ?? tabindex;\n\n if (tabindexparam === 5 && DealName && DealName[0] && Frequency && AsOfDate) {\n dealDashboardBALService.getPositionsData({ AsOfDate: AsOfDate, Frequency: Frequency, Deal: DealName[0], Fund: 'All' }).then(data => {\n this.setState({ gridData: data }, () => {\n this.filterData([{ colName: 'fund', value: fund }]);\n });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n\n dealDashboardBALService.getMVHistory({ Deal: DealName[0], Fund: fund }).then(data => {\n this.setState({ chartData: data });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n } else if (tabindexparam === 6 && DealName && DealName[0]) {\n dealDashboardBALService.getPositionsData({ AsOfDate: '', Frequency: Frequency, Deal: DealName[0], Fund: fund }).then(data => {\n var groups = _.groupBy(data, 'report date');\n var chartdata = _.map(groups, function (value, key) {\n var groups2 = _.groupBy(value, 'fund');\n var output = _.map(groups2, function (value2, key2) {\n return {\n 'report date': [key.slice(0, 4), \"-\", key.slice(4, 6), \"-\", key.slice(6, 8)].join(''),\n 'fund': key2,\n 'asset stress pnl': _.reduce(value2, function (total, o) { return total + o['asset stress pnl']; }, 0),\n 'ir 100bp': _.reduce(value2, function (total, o) { return total + o['ir 100bp']; }, 0),\n 'cs 100bp': _.reduce(value2, function (total, o) { return total + o['cs 100bp']; }, 0),\n 'cswpct_100': _.reduce(value2, function (total, o) { return total + o['cswpct_100']; }, 0),\n }\n })\n return output;\n });\n this.setState({ gridData: data, chartDataRisk: chartdata.flat() });\n this.filterData([{ colName: 'fund', value: fund }]);\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n\n } else if (tabindexparam === 2) {\n this.setState({ isOpenLoad: true });\n torGridBALService.getRowData('hedgeReport', { query: `Exec [sp_get_pnl_deal] '${DealName}', 'm', '${moment(this.state.AsOfDate).format(\"YYYYMMDD\")}'` }).then(data => {\n this.setState({ gridData: data });\n this.filterData([{ colName: 'Fund', value: 'All' }]);\n this.setState({ isOpenLoad: false });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n } else if (tabindexparam === 7) {\n if (DealName && creditMetrics[DealName[0]]) {\n this.setState({ filterCreditMetrics: creditMetrics[DealName[0]].filter(item => item.Quarter === selectedQuarter) })\n } else if (DealName) {\n dealDashboardBALService.getCreditMetrics({ Deal: DealName[0], Quarter: 'ALL' }).then(data => {\n let creditMetricsArray = this.state.creditMetrics;\n creditMetricsArray[DealName[0]] = data;\n this.setState({ \n filterCreditMetrics: data.filter(item => item.Quarter === selectedQuarter),\n creditMetrics: creditMetricsArray\n });\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while loading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error while loading the data'\n });\n console.log(error);\n });\n }\n }\n }\n\n drawerToggleClickHandler = () => {\n this.setState({\n drawerOpen: !this.state.drawerOpen\n })\n }\n\n handleGridTitle = (val) => {\n var gridTitle = ''\n if (val === 2) {\n gridTitle = 'Performance > PNL'\n } else if (val === 3) {\n gridTitle = 'Performance > Cashflows'\n } else if (val === 4) {\n gridTitle = 'Performance > Projection'\n } else if (val === 8) {\n gridTitle = 'Performance > Trades'\n } else if (val === 5) {\n gridTitle = 'Exposure > Overview'\n } else if (val === 6) {\n gridTitle = 'Exposure > Risk'\n } else if (val === 7) {\n gridTitle = 'Exposure > Credit Metrics'\n } else if (val === 9) {\n gridTitle = 'Exposure > Mark History'\n }\n\n this.setState({\n GridTitle: gridTitle\n })\n }\n\n toggleTabIndex = async (val) => {\n if (this.state.tabindex !== val) {\n if (val === 3) {\n await dealDashboardBALService.getCashflowQuarterlyDates(null).then(data => {\n this.setState({ cashflowQuarter: data, selectedQuarter: data[0]?.Quarter });\n });\n } else if (val === 4) {\n await dealDashboardBALService.getProjectedCashflowQuarterlyDates(null).then(data => {\n this.setState({ cashflowQuarter: data, selectedQuarter: data[0]?.Quarter });\n });\n } else if (val === 2) {\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 1' }).then(data => {\n this.setState({ dateList: data });\n this.filterDate(data, data[0]['report date'], moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\"));\n });\n } else if ((val === 5 || val === 6) && this.state.tabindex !== 5 && this.state.tabindex !== 6) {\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 0' }).then(data => {\n this.setState({ dateList: data });\n this.filterDate(data, data[0]['report date'], moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\"));\n });\n }\n this.setState({\n tabindex: val,\n drawerOpen: false\n })\n this.handleGridTitle(val);\n this.refresh(val);\n }\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ isOpenGrid: true, modalVisible: false });\n } else if (this.state.modalHandler === 'save') {\n this.saveDB();\n this.setState({ isOpenGrid: true, modalVisible: false });\n } else {\n this.setState({ isOpenGrid: true, modalVisible: false });\n }\n }\n\n closeErrorMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, messageHeader: \"\" });\n }\n\n\n getTemplate() {\n const { cashflowQuarter, MessageBoxBackground, filterCreditMetrics, filterQuarterList, selectedQuarter, chartData, chartDataRisk, GridTitle, AsOfDate, Deal, filterData, DealName, fund, fundList, error, display, drawerOpen, tabindex, modalHeading } = this.state;\n const dealList = this.state.dealList.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const cashflowDealList = this.state.cashflowDealList.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const cashflowQuarterList = cashflowQuarter.map(item => {\n return { key: item.Quarter, value: item.Quarter, text: item.Quarter }\n });\n\n const includeDate = this.state.dateList.map(item => {\n return new Date(moment(item['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\"))\n });\n return (\n
\n {\n this.state.showMessage ?\n :
\n }\n \n
\n
\n \n
\n {\n
\n
\n {GridTitle}\n
\n
\n Deal:\n
\n
\n \n
\n {\n tabindex === 7\n ?\n null\n :\n
\n Fund Filter:\n
\n }\n {\n tabindex === 7\n ?\n null\n :\n
\n \n
\n }\n
\n {error}\n \n ×\n \n
\n {\n \n
\n \n
\n {\n tabindex === 7 || tabindex === 3 || tabindex === 4\n ?\n
\n \n
\n : \n
\n \n
\n
\n }\n
\n As Of Date :\n
\n
\n }\n
\n }\n
\n\n
\n {\n tabindex === 2\n ?\n \n :\n tabindex === 3\n ?\n \n :\n tabindex === 4\n ?\n \n :\n tabindex === 5\n ?\n \n :\n tabindex === 6\n ?\n \n :\n tabindex === 7 && filterCreditMetrics && filterCreditMetrics.length > 0\n ?\n \n :\n tabindex === 8\n ?\n \n :\n tabindex === 9\n ?\n \n :\n null\n }\n
\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n
\n
\n :\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\nexport default DealDashboard;","/******************************************************************************************************/\nimport React, { Component } from 'react';\n//https://react.semantic-ui.com/modules/dropdown/\nimport { Dropdown, Popup } from 'semantic-ui-react';\nimport moment from 'moment';\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n// Our components\nimport '../deals.css';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCalculator, faInfoCircle } from '@fortawesome/free-solid-svg-icons';\nimport NumberFormat from 'react-number-format';\n\nclass FormDisplay extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedDate: null,\n fieldList: []\n }\n this.handleChange = this.handleChange.bind(this);\n this.handleChangeRisk = this.handleChangeRisk.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.handleNumberChange = this.handleNumberChange.bind(this);\n this.handleCalcChange = this.handleCalcChange.bind(this);\n this.handleMlnChange = this.handleMlnChange.bind(this);\n };\n\n handleCalcChange(e) {\n if (this.props?.id !== undefined) {\n this.props.handleChangeDate(this.props.id, this.props.fieldName, this.props.calcValue);\n } else {\n this.props.handleChangeDate(this.props.fieldName, this.props.calcValue);\n }\n }\n\n handleMlnChange(e) {\n if (this.props?.id !== undefined) {\n this.props.handleChangeDate(this.props.id, this.props.fieldName, this.props.dataField * 1e6);\n } else {\n this.props.handleChangeDate(this.props.fieldName, this.props.dataField * 1e6);\n }\n }\n\n handleNumberChange = values => {\n var val = values.value;\n\n if(typeof val === 'string' || val instanceof String) {\n val = parseFloat(val);\n }\n\n if (this.props?.id !== undefined) {\n this.props.handleChangeDate(this.props.id, this.props.fieldName, val);\n } else {\n this.props.handleChangeDate(this.props.fieldName, val);\n }\n }\n\n handleChange(e) {\n if (this.props?.id !== undefined) {\n this.props.handleChange(this.props.id, e.target.name, e.target.value);\n } else if (this.props.type === 'checkbox' || this.props.type === 'checkbox-in') {\n if (e.target.value === \"true\") {\n this.props.handleChangeDate(this.props.fieldName, true);\n } else if (e.target.value === \"false\") {\n this.props.handleChangeDate(this.props.fieldName, false);\n } else {\n this.props.handleChange(e);\n }\n } else {\n this.props.handleChange(e);\n }\n }\n\n handleChangeRisk(e) {\n if (e.target.value === \"true\") {\n this.props.handleChangeDate(`${this.props.fieldName}_is_development`, true);\n } else if (e.target.value === \"false\") {\n this.props.handleChangeDate(`${this.props.fieldName}_is_development`, false);\n } else {\n this.props.handleChange(e);\n }\n }\n\n handleDropDownChange(e, { name, value }) {\n if (this.props?.id !== undefined) {\n this.props.handleDropDownChange(this.props.id, name, value);\n } else {\n this.props.handleDropDownChange(e, { name, value });\n }\n }\n\n handleChangeDate = date => {\n this.setState({ selectedDate: date });\n if (this.props?.id !== undefined) {\n this.props.handleChangeDate(this.props.id, this.props.fieldName, date ? moment(date).format(\"YYYY-MM-DD\") : null);\n } else {\n console.log(this.props.fieldName, date ? moment(date).format(\"YYYY-MM-DD\") : null);\n this.props.handleChangeDate(this.props.fieldName, date ? moment(date).format(\"YYYY-MM-DD\") : null);\n }\n }\n\n render() {\n var fieldList = [];\n if (this.props?.fieldList && this.props?.fieldName && this.props?.fieldList.length > 0) {\n var field = this.props?.fieldName;\n fieldList = this.props?.fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n }\n if ((fieldList.length > 0 && fieldList[0].permission !== 0)) {\n if (this.props.formType === \"commentDisp\") {\n if (this.props.type === \"notes\") {\n return (\n
\n {\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n }\n {\n fieldList[0].permission === 1\n ?\n \n :\n \n }\n
\n )\n } else {\n if (fieldList[0].permission === 1 && this.props.type !== \"textbox-blue\") {\n let dF = '';\n if ((this.props.type === \"dropdown\" || this.props.type === \"dropdown-in\") && this.props.dataField !== null && this.props.dataField !== undefined && this.props.dataList !== undefined) {\n const { dataField, dataList } = this.props;\n dF = dataList.filter(function (item) { return item.value === dataField })[0]?.text;\n } else if ((this.props.type === \"checkbox\" || this.props.type === \"checkbox-in\") && this.props.dataField !== null && this.props.dataField !== undefined) {\n const { dataField } = this.props;\n if (dataField === true) {\n dF = 'Yes';\n } else if (dataField === false) {\n dF = 'No';\n }\n } else {\n dF = this.props.dataField;\n }\n return (\n
\n
\n {\n this.props.type === \"textbox-in\" || this.props.type === \"dropdown-in\" || this.props.type === \"datepick-in\" || this.props.type === \"checkbox-in\"\n ?\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n :\n this.props.tooltip === true\n ?\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n :\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n }\n
\n
\n
\n {\n this.props?.textType === \"number\"\n ?\n \n :\n this.props.type === 'datepick'\n ?\n \n :\n \n }\n
\n {\n this.props.noComment\n ?\n null\n :\n
\n \n
\n }\n
\n
\n );\n } else {\n return (\n
\n
\n {\n this.props.type === \"textbox-in\" || this.props.type === \"dropdown-in\" || this.props.type === \"datepick-in\" || this.props.type === \"checkbox-in\"\n ?\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n this.props.tooltip === true\n ?\n \n :\n \n :\n this.props.tooltip === true\n ?\n \n :\n \n :\n this.props.tooltip === true\n ?\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n :\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n }\n
\n
\n
\n {\n this.props.type === \"dropdown\" || this.props.type === \"dropdown-in\"\n ?\n \n :\n this.props.type === \"checkbox\" || this.props.type === \"checkbox-in\"\n ?\n
\n \n \n
\n :\n this.props.type === \"textbox\" || this.props.type === \"textbox-in\"\n ?\n this.props?.textType === \"number\"\n ?\n this.props?.calcType === \"value\"\n ?\n
\n \n
\n \n
\n
\n :\n this.props?.calcType === \"million\"\n ?\n
\n \n
\n MM\n
\n
\n :\n \n :\n \n :\n this.props.type === \"checkbox-pp\"\n ?\n
\n \n \n
\n :\n this.props.type === \"textbox-blue\"\n ?\n this.props?.textType === \"number\"\n ?\n \n :\n \n :\n this.props.maxDate\n ?\n \n :\n \n }\n
\n {\n this.props.noComment\n ?\n null\n :\n
\n \n
\n }\n
\n
\n );\n }\n }\n } else if (this.props.formType === \"commentDispPrior\") {\n if (this.props.type === \"notes\") {\n return (\n
\n {\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n }\n {\n fieldList[0].permission === 1\n ?\n \n :\n \n }\n
\n )\n } else {\n if (fieldList[0].permission === 1 && this.props.type !== \"textbox-blue\") {\n let dF = '';\n if ((this.props.type === \"dropdown\" || this.props.type === \"dropdown-in\") && this.props.dataField !== null && this.props.dataField !== undefined && this.props.dataList !== undefined) {\n const { dataField, dataList } = this.props;\n dF = dataList.filter(function (item) { return item.value === dataField })[0]?.text;\n } else if ((this.props.type === \"checkbox\" || this.props.type === \"checkbox-in\") && this.props.dataField !== null && this.props.dataField !== undefined) {\n const { dataField } = this.props;\n if (dataField === true) {\n dF = 'Yes';\n } else if (dataField === false) {\n dF = 'No';\n }\n } else {\n dF = this.props.dataField;\n }\n\n let dfPrior = '';\n if ((this.props.type === \"dropdown\" || this.props.type === \"dropdown-in\") && this.props.priorDataField !== null && this.props.priorDataField !== undefined && this.props.dataList !== undefined) {\n const { priorDataField, dataList } = this.props;\n dfPrior = dataList.filter(function (item) { return item.value === priorDataField })[0]?.text;\n } else if ((this.props.type === \"checkbox\" || this.props.type === \"checkbox-in\") && this.props.priorDataField !== null && this.props.priorDataField !== undefined) {\n const { priorDataField } = this.props;\n if (priorDataField === true) {\n dfPrior = 'Yes';\n } else if (priorDataField === false) {\n dfPrior = 'No';\n }\n } else {\n dfPrior = this.props.priorDataField;\n }\n\n return (\n
\n
\n {\n this.props.type === \"textbox-in\" || this.props.type === \"dropdown-in\" || this.props.type === \"datepick-in\" || this.props.type === \"checkbox-in\"\n ?\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n :\n this.props.tooltip === true\n ?\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n :\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n }\n
\n
\n
\n {\n this.props?.textType === \"number\"\n ?\n \n :\n this.props.type === 'datepick'\n ?\n \n :\n \n }\n
\n
\n {\n this.props?.textType === \"number\"\n ?\n \n :\n this.props.type === 'datepick'\n ?\n \n :\n \n }\n
\n {\n this.props.noComment\n ?\n null\n :\n
\n \n
\n }\n
\n
\n );\n } else {\n let dfPrior = '';\n if ((this.props.type === \"dropdown\" || this.props.type === \"dropdown-in\") && this.props.priorDataField !== null && this.props.priorDataField !== undefined && this.props.dataList !== undefined) {\n const { priorDataField, dataList } = this.props;\n dfPrior = dataList.filter(function (item) { return item.value === priorDataField })[0]?.text;\n } else if ((this.props.type === \"checkbox\" || this.props.type === \"checkbox-in\") && this.props.priorDataField !== null && this.props.priorDataField !== undefined) {\n const { priorDataField } = this.props;\n if (priorDataField === true) {\n dfPrior = 'Yes';\n } else if (priorDataField === false) {\n dfPrior = 'No';\n }\n } else {\n dfPrior = this.props.priorDataField;\n }\n\n return (\n
\n
\n {\n this.props.type === \"textbox-in\" || this.props.type === \"dropdown-in\" || this.props.type === \"datepick-in\" || this.props.type === \"checkbox-in\"\n ?\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n this.props.tooltip === true\n ?\n \n :\n \n :\n this.props.tooltip === true\n ?\n \n :\n \n :\n this.props.tooltip === true\n ?\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n :\n fieldList[0].required === true && (this.props?.required ?? true)\n ?\n \n :\n \n }\n
\n
\n
\n {\n this.props.type === \"dropdown\" || this.props.type === \"dropdown-in\"\n ?\n \n :\n this.props.type === \"checkbox\" || this.props.type === \"checkbox-in\"\n ?\n
\n \n \n
\n :\n this.props.type === \"textbox\" || this.props.type === \"textbox-in\"\n ?\n this.props?.textType === \"number\"\n ?\n this.props?.calcType === \"value\"\n ?\n
\n \n
\n \n
\n
\n :\n this.props?.calcType === \"million\"\n ?\n
\n \n
\n MM\n
\n
\n :\n \n :\n \n :\n this.props.type === \"checkbox-pp\"\n ?\n
\n \n \n
\n :\n this.props.type === \"textbox-blue\"\n ?\n this.props?.textType === \"number\"\n ?\n \n :\n \n :\n this.props.maxDate\n ?\n \n :\n \n }\n
\n
\n {\n this.props?.textType === \"number\"\n ?\n \n :\n this.props.type === 'datepick'\n ?\n \n :\n \n }\n
\n {\n this.props.noComment\n ?\n null\n :\n
\n \n
\n }\n
\n
\n );\n }\n }\n } else if (this.props.formType === \"riskDisp\") {\n if (fieldList[0].permission === 1) {\n const { dataField, dataList, optionsList, fieldName } = this.props;\n let df_id = dataList.filter(function (item) { return item.value === dataField[`${fieldName}_id`] })[0]?.text;\n let df_option = optionsList.filter(function (item) { return item.value === dataField[`${fieldName}_direction`] })[0]?.text;\n let df_price = dataField[`${fieldName}_is_development`];\n if (df_price === true)\n df_price = 'Yes';\n else if (df_price === false)\n df_price = 'No'\n return (\n
\n
\n
\n \n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n );\n } else {\n return (\n
\n
\n
\n \n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n );\n }\n } else if (this.props.formType === \"reDisp\") {\n if (fieldList[0].permission === 1) {\n const { dataField, dataList, fieldName } = this.props;\n let df_id = dataList.filter(function (item) { return item.value === dataField[`${fieldName}_type`] })[0]?.text;\n let df_price = dataField[`${fieldName}_is_development`];\n if (df_price === true)\n df_price = 'Yes';\n else if (df_price === false)\n df_price = 'No'\n return (\n
\n
\n
\n \n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n );\n } else {\n return (\n
\n
\n
\n \n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n );\n }\n } else {\n if (fieldList[0].permission === 1 && this.props.type !== \"textbox-blue\") {\n let dF = '';\n if ((this.props.type === \"dropdown\" || this.props.type === \"dropdown-in\" || this.props.type === \"dropdown-tooltip\") && this.props.dataField !== null && this.props.dataField !== undefined && this.props.dataList !== undefined) {\n const { dataField, dataList } = this.props;\n dF = dataList.filter(function (item) { return item.value === dataField })[0]?.text;\n } else if ((this.props.type === \"checkbox\" || this.props.type === \"checkbox-in\") && this.props.dataField !== null && this.props.dataField !== undefined) {\n const { dataField } = this.props;\n if (dataField === true) {\n dF = 'Yes';\n } else if (dataField === false) {\n dF = 'No';\n }\n } else {\n dF = this.props.dataField;\n }\n return (\n
\n {\n this.props.type === \"textbox-in\" || this.props.type === \"dropdown-in\" || this.props.type === \"datepick-in\" || this.props.type === \"checkbox-in\"\n ?\n \n :\n this.props.type === \"dropdown-tooltip\"\n ?\n \n :\n \n }\n \n
\n );\n }\n else {\n return (\n
\n {\n this.props.type === \"textbox-in\" || this.props.type === \"dropdown-in\" || this.props.type === \"datepick-in\" || this.props.type === \"checkbox-in\"\n ?\n fieldList[0].required === true\n ?\n \n :\n \n :\n this.props.type === \"dropdown-tooltip\"\n ?\n fieldList[0].required === true\n ?\n \n :\n \n :\n fieldList[0].required === true\n ?\n \n :\n \n }\n\n {\n this.props.type === \"dropdown\" || this.props.type === \"dropdown-in\" || this.props.type === \"dropdown-tooltip\"\n ?\n this.props.clearable === false\n ?\n \n :\n \n :\n this.props.type === \"checkbox\" || this.props.type === \"checkbox-in\"\n ?\n
\n \n \n
\n :\n this.props.type === \"textbox\" || this.props.type === \"textbox-in\"\n ?\n this.props?.textType === \"number\"\n ?\n \n :\n \n :\n this.props.type === \"checkbox-pp\"\n ?\n
\n \n \n
\n :\n this.props.type === \"textbox-blue\"\n ?\n \n :\n \n }\n
\n );\n }\n }\n } else {\n return null;\n }\n }\n}\n\nexport default FormDisplay;","import React, { Component } from 'react'\nimport { Progress } from 'semantic-ui-react'\n\nexport default class ProgressBar extends Component {\n render() {\n return (\n
\n \n
\n )\n }\n}","/******************************************************************************************************/\nimport React, { Component } from 'react';\nimport { dealBALService } from '../../bal/deal.bal';\nimport FormDisplay from './components/formDisplay.js';\nimport GICSPdf from '../../docs/112727-gics-mapbook_2018_v3_letter_digitalspreads.pdf';\nimport BICSPdf from '../../docs/2072704..pdf';\n\nimport ProgressBar from './components/progressbar';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowCircleRight, faCheck, faSave } from '@fortawesome/free-solid-svg-icons';\n\n// Our components\nimport './deals.css';\n\nclass Deal_Attribute_1 extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.state = {\n projectName: \"\",\n faceValue: 0,\n marketValue: 0,\n analyst1Weight: 0,\n analyst2Weight: 0,\n analyst3Weight: 0,\n analyst4Weight: 0,\n analystList: [],\n countryList: [],\n gicsSectorList: [],\n gicsIndustryGroupList: [],\n gicsIndustryList: [],\n gicsSubIndustryList: [],\n gicsNaceList: [],\n gicsActivityList: [],\n naceList: [],\n activityList: [],\n bicsSectorList: [],\n bicsIndustryGroupList: [],\n bicsIndustryList: [],\n dealAttributeList: [],\n percent: 0,\n dealAttribute: {\n deal_id: 0,\n country_of_risk_id: null,\n gics_sector_id: null,\n gics_industry_group_id: null,\n gics_industry_id: null,\n gics_sub_industry_id: null,\n bics_sector_id: null,\n bics_industry_group_id: null,\n bics_industry_id: null,\n snp_corporate_family_rating_id: null,\n moodys_corporate_family_rating_id: null,\n company_description: '',\n\n\n is_assetbased_cashflow: null,\n is_loan_underwritten: null,\n is_hard_asset_collateral: null,\n hard_asset_collateral_list: null,\n is_cov_lite: null,\n covenants_list: null,\n source_of_deal: null,\n has_financial_sponsor: null,\n financial_sponsor_list: null,\n has_leadership_role: null,\n primary_deal_purpose: null,\n secondary_deal_purpose: null,\n expected_exit_date: null,\n primary_exit_type_id: null,\n primary_exit_type: null,\n secondary_exit_type_id: null,\n secondary_exit_type: null,\n num_syndicate_leaders: null,\n\n\n is_assetbased_cashflow_comment: null,\n is_loan_underwritten_comment: null,\n is_hard_asset_collateral_comment: null,\n hard_asset_collateral_list_comment: null,\n is_cov_lite_comment: null,\n covenants_list_comment: null,\n source_of_deal_comment: null,\n has_financial_sponsor_comment: null,\n financial_sponsor_list_comment: null,\n has_leadership_role_comment: null,\n primary_deal_purpose_comment: null,\n secondary_deal_purpose_comment: null,\n expected_exit_date_comment: null,\n primary_exit_type_id_comment: null,\n primary_exit_type_comment: null,\n secondary_exit_type_id_comment: null,\n secondary_exit_type_comment: null,\n num_syndicate_leaders_comment: null,\n\n deal_information_notes: null\n }\n }\n dealBALService.getAnalysts().then(data => { this.setState({ analystList: data });}, error => { console.log(error); });\n dealBALService.getAllCountry().then(data => { this.setState({ countryList: data }); }, error => { console.log(error); });\n dealBALService.getGics().then(data => { this.setState({ gicsSectorList: data }); }, error => { console.log(error); });\n dealBALService.getNace().then(data => { this.setState({ naceList: data }); }, error => { console.log(error); });\n dealBALService.getNaceActivity().then(data => { this.setState({ activityList: data }); }, error => { console.log(error); });\n dealBALService.getBics().then(data => { this.setState({ bicsSectorList: data }); }, error => { console.log(error); });\n\n this.handleChange = this.handleChange.bind(this);\n this.handleChangeNumber = this.handleChangeNumber.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleDropDownChangeDeal = this.handleDropDownChangeDeal.bind(this);\n this.getProgress = this.getProgress.bind(this);\n this.getSettingByName = this.getSettingByName.bind(this);\n };\n\n handleChange(e) {\n this.props.handleChange(e);\n }\n\n handleDropDownChange(e, { name, value }) {\n this.props.handleDropDownChange(e, { name, value });\n\n if (name === \"gics_sector_id\") {\n this.setState({ gicsIndustryGroupList: this.state.gicsSectorList.filter(function (item) { return item.id === value })[0]?.industryGroups });\n } else if (name === \"gics_industry_group_id\") {\n this.setState({ gicsIndustryList: this.state.gicsIndustryGroupList.filter(function (item) { return item.id === value })[0]?.industries });\n } else if (name === \"gics_industry_id\" && this.state.gicsIndustryList !== undefined) {\n this.setState({ gicsSubIndustryList: this.state?.gicsIndustryList.filter(function (item) { return item.id === value })[0]?.subIndustries });\n } else if (name === \"gics_sub_industry_id\" && this.state.gicsSubIndustryList !== undefined) {\n const code = this.state?.gicsSubIndustryList.filter(function (item) { return item.id === value });\n console.log(\"Code\", code, value, this.state?.gicsSubIndustryList);\n this.setState({ gicsNaceList: this.state?.naceList.filter(function (item) { return item.code === code }) });\n } else if (name === \"bics_sector_id\" && (value !== \"\" || value != null)) {\n this.setState({ bicsIndustryGroupList: this.state.bicsSectorList.filter(function (item) { return item.id === value })[0]?.industryGroups });\n } else if (name === \"bics_industry_group_id\" && (value !== \"\" || value != null)) {\n this.setState({ bicsIndustryList: this.state.bicsIndustryGroupList.filter(function (item) { return item.id === value })[0]?.industries });\n }\n }\n\n handleChangeNumber(name, value) {\n this.props.handleChangeNumber(name, value);\n }\n\n handleDropDownChangeDeal(e, { name, value }) {\n this.setState({\n positionList: [],\n faceValue: 0,\n marketValue: 0\n })\n\n this.props.handleDropDownChangeDeal(e, { name, value });\n }\n\n roundToTwo(num) {\n return +(Math.round(num + \"e+2\") + \"e-2\");\n }\n\n getProgress() {\n const { dealAttribute, analyst1Name, projectName, analyst1Weight, fieldList } = this.props;\n let filterData, permission, required;\n var fillCount = 0;\n var count = 0;\n\n var columnList = [\"deal_id\",\n \"projectName\",\n \"country_of_risk_id\",\n \"gics_sector_id\",\n \"gics_industry_group_id\",\n \"gics_industry_id\",\n \"gics_sub_industry_id\",\n \"bics_sector_id\",\n \"bics_industry_group_id\",\n \"bics_industry_id\",\n \"snp_corporate_family_rating_id\",\n \"moodys_corporate_family_rating_id\",\n \"portfolio\",\n \"tacf_sub_strategy\",\n \"tacof_sub_strategy\",\n \"market_risk_sensitivity\",\n \"equity_upside\",\n \"equity_upside_form\",\n \"analyst1Name\",\n \"analyst1Weight\",\n \"company_description\"\n ]\n\n for (const key of columnList) {\n filterData = fieldList.filter(function (item) { return item.field_name === key }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n if (key === \"analyst1Weight\" && permission !== 2) {\n required = false;\n }\n\n if (required && permission === 2) {\n if (key === \"equity_upside_form\" && dealAttribute[\"equity_upside\"] === true) {\n count += 1;\n if (dealAttribute[key]) {\n fillCount += 1;\n }\n } else if(key !== \"equity_upside_form\") {\n count += 1;\n if (key === \"tacf_sub_strategy\" || key === \"tacof_sub_strategy\") {\n if (dealAttribute[\"tacf_sub_strategy\"] || dealAttribute[\"tacof_sub_strategy\"]) {\n fillCount += 1;\n }\n } else if (key === \"projectName\") {\n if (projectName) {\n fillCount += 1;\n }\n } else if (key === \"analyst1Name\") {\n if (analyst1Name) {\n fillCount += 1;\n }\n } else if (key === \"analyst1Weight\") {\n if (analyst1Weight || analyst1Weight === 0) {\n fillCount += 1;\n }\n } else {\n if (dealAttribute[key] || dealAttribute[key] === false || dealAttribute[key] === 0) {\n fillCount += 1;\n }\n }\n }\n }\n }\n\n this.setState({ percent: this.roundToTwo(fillCount / count * 100) });\n }\n\n componentDidMount() {\n this.getProgress();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.dealAttribute !== this.props.dealAttribute || prevProps.projectName !== this.props.projectName\n || prevProps.analyst1Name !== this.props.analyst1Name \n || (prevProps.analyst1Weight !== this.props.analyst1Weight && Number.isNaN(this.props.analyst1Weight) === false)) {\n this.getProgress();\n }\n }\n\n getSettingByName(name) {\n const { settingList } = this.props;\n let setting = settingList.filter(\n function (data) {\n return data['value'] === name\n }\n )\n\n return setting.length > 0 ? setting[0].childSettings : [];\n }\n\n render() {\n const { dealAttribute, projectName } = this.props;\n const { analyst1Name, analyst2Name, analyst3Name, analyst4Name, analyst1Weight, analyst2Weight, analyst3Weight, analyst4Weight, analystDate } = this.props;\n var { faceValue, marketValue } = this.props;\n faceValue = faceValue !== 0 ? '$' + Number(parseInt(faceValue, 10)).toLocaleString('en') : 0;\n marketValue = marketValue !== 0 ? '$' + Number(parseInt(marketValue, 10)).toLocaleString('en') : 0;\n const dealList = this.props.dealList.filter(function(item) {\n return (item ? true : false);\n }).map(item => { return { key: item.deal, value: item.dealID, text: item.deal } });\n const analystList = this.state.analystList.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const countryList = this.state.countryList.map(item => { return { key: item.id, value: item.id, text: item.name } });\n const gicsSectorList = this.state.gicsSectorList.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const gicsIndustryGroupList = this.state.gicsSectorList.filter(function (item) {\n return item.id === dealAttribute.gics_sector_id\n })[0]?.industryGroups.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n const gicsIndustryList = this.state.gicsSectorList.filter(function (item) {\n return item.id === dealAttribute.gics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.gics_industry_group_id\n })[0]?.industries.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n const gicsSubIndustryList = this.state.gicsSectorList.filter(function (item) {\n return item.id === dealAttribute.gics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.gics_industry_group_id\n })[0]?.industries.filter(function (item) {\n return item.id === dealAttribute.gics_industry_id\n })[0]?.subIndustries.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n\n const subindustryCode = this.state.gicsSectorList.filter(function (item) {\n return item.id === dealAttribute.gics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.gics_industry_group_id\n })[0]?.industries.filter(function (item) {\n return item.id === dealAttribute.gics_industry_id\n })[0]?.subIndustries.filter(function (item) {\n return item.id === dealAttribute.gics_sub_industry_id\n })[0]?.code;\n const gicsNaceList = this.state.naceList.filter(function (item) {\n return item.code === subindustryCode\n }).map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n\n const mitigationActivityList = this.state.activityList.filter(function(item) {\n return item.gics_nace_id === dealAttribute.gics_nace_id && item.mitigationActivity !== null\n }).map(item => {\n return {\n key: item.mitigationActivity, value: item.nace_climate_mitigation_id, text: item.mitigationActivity\n }\n });\n\n const adaptationActivityList = this.state.activityList.filter(function(item) {\n return item.gics_nace_id === dealAttribute.gics_nace_id && item.adaptationActivity !== null\n }).map(item => {\n return {\n key: item.adaptationActivity, value: item.nace_climate_adaptation_id, text: item.adaptationActivity\n }\n });\n\n const bicsSectorList = this.state.bicsSectorList.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const bicsIndustryGroupList = this.state.bicsSectorList.filter(function (item) {\n return item.id === dealAttribute.bics_sector_id\n })[0]?.industryGroups.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n const bicsIndustryList = this.state.bicsSectorList.filter(function (item) {\n return item.id === dealAttribute.bics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.bics_industry_group_id\n })[0]?.industries.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n const bicsSubIndustryList = this.state.bicsSectorList.filter(function (item) {\n return item.id === dealAttribute.bics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.bics_industry_group_id\n })[0]?.industries.filter(function (item) {\n return item.id === dealAttribute.bics_industry_id\n })[0]?.subIndustries.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n\n const snPRatingList = this.getSettingByName(\"S&P Corporate Family Rating\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const moodysRatingList = this.getSettingByName(\"Moody's Corporate Family Rating\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const tacfSubStrategyList = this.getSettingByName(\"TACF Sub-Strategy at Inception\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const tacofSubStrategyList = this.getSettingByName(\"TACOF Sub-Strategy at Inception\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const marketRiskList = this.getSettingByName(\"Market Risk Sensitivity\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n return (\n
\n
\n \n
\n
\n
\n
\n
\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
\n\n
\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n \n\n \n
\n
\n\n \n
\n
\n
\n
\n
\n \n
\n
this.props.saveDB()}>\n \n
\n
this.props.approveDB()}>\n \n
\n
\n
\n
\n )\n }\n}\n\nexport default Deal_Attribute_1;","/******************************************************************************************************/\nimport React, { Component } from 'react';\n//https://react.semantic-ui.com/modules/dropdown/\nimport FormDisplay from './components/formDisplay.js';\n\nimport ProgressBar from './components/progressbar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowCircleRight, faArrowCircleLeft, faSave, faCheck } from '@fortawesome/free-solid-svg-icons';\n\n// Our components\nimport './deals.css';\n\nclass Deal_Attribute_2 extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.state = {\n projectName: \"\",\n faceValue: 0,\n marketValue: 0,\n percent: 0\n }\n\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.getProgress = this.getProgress.bind(this);\n this.getSettingByName = this.getSettingByName.bind(this);\n };\n\n componentDidMount() {\n this.getProgress();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.dealAttribute !== this.props.dealAttribute) {\n this.getProgress();\n }\n }\n\n getSettingByName(name) {\n const { settingList } = this.props;\n let setting = settingList.filter(\n function (data) {\n return data['value'] === name\n }\n )\n\n return setting.length > 0 ? setting[0].childSettings : [];\n }\n\n handleChange(e) {\n this.props.handleChange(e);\n }\n\n handleDropDownChange(e, { name, value }) {\n this.props.handleDropDownChange(e, { name, value });\n }\n\n handleChangeDate(name, value) {\n this.props.handleChangeDate(name, value);\n }\n\n roundToTwo(num) {\n return +(Math.round(num + \"e+2\") + \"e-2\");\n }\n\n getProgress() {\n const { dealAttribute, fieldList } = this.props;\n var filterData, permission, required;\n var fillCount = 0;\n var count = 0;\n\n var columnList = [\"is_assetbased_cashflow\",\n \"is_loan_underwritten\",\n \"is_hard_asset_collateral\",\n \"hard_asset_collateral_list\",\n \"is_cov_lite\",\n \"covenants_list\",\n \"source_of_deal\",\n \"has_financial_sponsor\",\n \"financial_sponsor_list\",\n \"has_leadership_role\",\n \"primary_deal_purpose\",\n \"secondary_deal_purpose\",\n \"expected_exit_date\",\n \"primary_exit_type_id\",\n \"primary_exit_type\",\n \"secondary_exit_type_id\",\n \"secondary_exit_type\",\n \"num_syndicate_leaders\",\n \"is_tor_only_lender\"\n ]\n\n for (const key of columnList) {\n filterData = fieldList.filter(function (item) { return item.field_name === key }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n if (dealAttribute.portfolio === \"Public\") {\n required = false;\n }\n\n if (required === true && permission === 2) {\n if (key === \"hard_asset_collateral_list\" && dealAttribute[\"is_hard_asset_collateral\"] === true) {\n count += 1;\n if (dealAttribute[key]) {\n fillCount += 1;\n }\n } else if (key === \"covenants_list\" && dealAttribute[\"is_cov_lite\"] === false) {\n count += 1;\n if (dealAttribute[key]) {\n fillCount += 1;\n }\n } else if (key === \"financial_sponsor_list\" && dealAttribute[\"has_financial_sponsor\"] === true) {\n count += 1;\n if (dealAttribute[key]) {\n fillCount += 1;\n }\n } else if (key === \"primary_exit_type\" && dealAttribute[\"primary_exit_type_id\"] === 72) {\n count += 1;\n if (dealAttribute[key]) {\n fillCount += 1;\n }\n } else if (key === \"secondary_exit_type\" && dealAttribute[\"secondary_exit_type_id\"] === 80) {\n count += 1;\n if (dealAttribute[key]) {\n fillCount += 1;\n }\n } else if (key !== \"hard_asset_collateral_list\" && key !== \"covenants_list\" && key !== \"financial_sponsor_list\" && key !== \"primary_exit_type\" && key !== \"secondary_exit_type\") {\n count += 1;\n if (dealAttribute[key] || dealAttribute[key] === false) {\n fillCount += 1;\n }\n }\n }\n }\n\n this.setState({ percent: count === 0 ? 100 : this.roundToTwo(fillCount / count * 100) });\n }\n\n render() {\n const { dealAttribute } = this.props;\n\n const assetvscashList = this.getSettingByName(\"Asset Based vs. Cash Flow\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const loanunderwrittenList = this.getSettingByName(\"Was the loan underwritten based on LTV or cash flows, or both?\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const dealSourceList = this.getSettingByName(\"Source of Deal\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const structuringRoleList = this.getSettingByName(\"Did we have a leadership/structuring role?\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const primaryDealPurposeList = this.getSettingByName(\"Purpose of Deal (Primary)\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const secondaryDealPurposeList = this.getSettingByName(\"Purpose of Deal (Secondary)\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const primaryExitTypeList = this.getSettingByName(\"Expected Exit Type (Primary)\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const secondaryExitTypeList = this.getSettingByName(\"Expected Exit Type (Secondary)\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const syndicateLenderList = this.getSettingByName(\"How many lenders are in the syndicate?\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n\n return (\n
\n
\n \n
\n
\n
\n
\n
\n
\n

General Information at Inception

\n
\n
\n
\n

Response

\n
\n
\n

Comments

\n
\n
\n
\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
\n
\n
\n
\n
\n
\n
\n
this.props.saveDB()} title=\"Save\">
\n
this.props.approveDB()}>\n \n
\n
\n
\n
\n )\n }\n}\n\nexport default Deal_Attribute_2;","/******************************************************************************************************/\nimport React, { Component } from 'react';\n//https://react.semantic-ui.com/modules/dropdown/\nimport { Dropdown } from 'semantic-ui-react';\n\nimport ProgressBar from './components/progressbar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowCircleRight, faArrowCircleLeft, faSave, faCheck } from '@fortawesome/free-solid-svg-icons';\n\nimport moment from 'moment'\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n// Our components\nimport './deals.css';\n\nclass TrancheAttribute extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.state = {\n selectedDate: [],\n percent: 0\n }\n \n this.handleDropDownChangeTranche = this.handleDropDownChangeTranche.bind(this);\n this.getFieldName = this.getFieldName.bind(this);\n this.getFieldByName = this.getFieldByName.bind(this);\n this.getSettingByName = this.getSettingByName.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.getProgress = this.getProgress.bind(this);\n };\n\n componentDidMount() {\n this.getProgress();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.trancheAttributeList !== this.props.trancheAttributeList || prevProps.trancheAttribute !== this.props.trancheAttribute) {\n this.getProgress();\n }\n }\n\n roundToTwo(num) {\n return +(Math.round(num + \"e+2\") + \"e-2\");\n }\n\n getProgress() {\n const { trancheAttribute, trancheAttributeList, fieldList, positionList } = this.props;\n var filterData, permission, required;\n var fillCount = 0;\n var count = 0;\n\n var columnList = [\n \"asset_type\",\n \"credit_ranking\",\n \"holdco_vs_opco\",\n \"has_defaulted\",\n \"default_date\",\n \"makewhole\",\n \"amortization\",\n \"is_non_recourse\"\n ]\n\n for (const key of columnList) {\n filterData = fieldList.filter(function (item) { return item.field_name === key }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n for (var i = 0; i < trancheAttributeList.length; i++) {\n if(key !== \"asset_type\" && ['Private Equity Shares', 'Common Stock', 'Warrant'].includes(positionList[i].productType)) {\n required = false;\n } else {\n required = true;\n }\n\n if(permission === 2 && key === \"is_non_recourse\"){\n if(['Total Return Swap', 'Swap Financing'].includes(positionList[i].productType)) {\n count += 1;\n if (trancheAttributeList[i][key]) {\n fillCount += 1;\n } else if (trancheAttribute[key]) {\n fillCount += 1\n }\n }\n } else if (required === true && permission === 2) {\n if (key === \"default_date\" && trancheAttributeList[i][\"has_defaulted\"] === true) {\n count += 1;\n if (trancheAttributeList[i][key]) {\n fillCount += 1;\n } else if (trancheAttribute[key] || trancheAttribute[key] === false) {\n fillCount += 1\n }\n } else if (key !== \"default_date\") {\n count += 1;\n if (trancheAttributeList[i][key] || trancheAttributeList[i][key] === false) {\n fillCount += 1;\n } else if (trancheAttribute[key] || trancheAttribute[key] === false) {\n fillCount += 1\n }\n }\n }\n }\n }\n\n this.setState({ percent: this.roundToTwo(fillCount / count * 100) });\n }\n\n handleDropDownChangeTranche(e, { id, name, value }) {\n this.props.handleDropDownChangeTranche(e, { id, name, value });\n }\n\n getFieldName(l, f) {\n return l.filter(function (item) { return item.value === f })[0]?.text;\n }\n\n getFieldByName(name) {\n const { fieldList } = this.props;\n return fieldList.filter(\n function (data) {\n return data['field_name'] === name\n }\n )\n }\n\n getSettingByName(name) {\n const { settingList } = this.props;\n let setting = settingList.filter(\n function (data) {\n return data['value'] === name\n }\n )\n\n return setting.length > 0 ? setting[0].childSettings : [];\n }\n\n handleChange(e) {\n if (e.target.value === \"true\") {\n this.props.handleChangeTranche(parseInt(e.target?.name.split(\"-\")[1]), e.target.name?.split(\"-\")[0], true);\n } else if (e.target.value === \"false\") {\n this.props.handleChangeTranche(parseInt(e.target?.name.split(\"-\")[1]), e.target.name?.split(\"-\")[0], false);\n } else {\n this.props.handleChangeTranche(e.target?.name, e.target?.name, e.target?.value);\n }\n }\n\n handleChangeDate = (date, name) => {\n this.props.handleChangeTranche(parseInt(name.split(\"-\")[1]), \"default_date\", date ? moment(date).format(\"YYYY-MM-DD\") : null);\n }\n\n\n render() {\n const { trancheAttribute, trancheAttributeList, positionList } = this.props;\n\n const assetClassList = this.getSettingByName(\"Asset Type\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const assetRankingList = this.getSettingByName(\"Credit Ranking\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const holdcoList = this.getSettingByName(\"HoldCo vs OpCo\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n\n const percent = this.state.percent;\n const fieldListA = this.getFieldByName(\"asset_type\");\n const fieldListB = this.getFieldByName(\"credit_ranking\");\n const fieldListC = this.getFieldByName(\"holdco_vs_opco\");\n const fieldListD = this.getFieldByName(\"has_defaulted\");\n const fieldListE = this.getFieldByName(\"default_date\");\n const fieldListF = this.getFieldByName(\"makewhole\");\n const fieldListG = this.getFieldByName(\"amortization\");\n const fieldListH = this.getFieldByName(\"is_non_recourse\");\n\n return (\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n {\n positionList.map((item, i) => {\n return (\n \n );\n })\n }\n \n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n {\n fieldListA[0]?.permission === 0\n ?\n null\n :\n fieldListA[0]?.permission === 1\n ?\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n :\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n }\n\n {\n fieldListB[0]?.permission === 0\n ?\n null\n :\n fieldListB[0]?.permission === 1\n ?\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n :\n \n \n {\n positionList.map((item, i) => {\n if (item.productType === 'Private Equity Shares' || item.productType === 'Common Stock' || item.productType === 'Warrant') {\n return \n } else {\n return \n }\n })\n }\n \n }\n\n {\n fieldListC[0]?.permission === 0\n ?\n null\n :\n fieldListC[0]?.permission === 1\n ?\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n :\n\n \n \n {\n positionList.map((item, i) => {\n if (item.productType === 'Private Equity Shares' || item.productType === 'Common Stock' || item.productType === 'Warrant') {\n return \n } else {\n return \n }\n })\n }\n \n }\n\n {\n fieldListD[0]?.permission === 0\n ?\n null\n :\n fieldListD[0]?.permission === 1\n ?\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n :\n\n \n \n {\n positionList.map((item, i) => {\n if (item.productType === 'Private Equity Shares' || item.productType === 'Common Stock' || item.productType === 'Warrant') {\n return \n } else {\n return \n }\n })\n }\n \n }\n\n {\n fieldListE[0]?.permission === 0\n ?\n null\n :\n fieldListE[0]?.permission === 1\n ?\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n :\n\n \n \n {\n positionList.map((item, i) => {\n if (item.productType === 'Private Equity Shares' || item.productType === 'Common Stock' || item.productType === 'Warrant') {\n return \n } else {\n return \n }\n })\n }\n \n }\n\n {\n fieldListF[0]?.permission === 0\n ?\n null\n :\n fieldListF[0]?.permission === 1\n ?\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n :\n\n \n \n {\n positionList.map((item, i) => {\n if (item.productType === 'Private Equity Shares' || item.productType === 'Common Stock' || item.productType === 'Warrant') {\n return \n } else {\n return \n }\n })\n }\n \n }\n\n {\n fieldListG[0]?.permission === 0\n ?\n null\n :\n fieldListG[0]?.permission === 1\n ?\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n :\n\n \n \n {\n positionList.map((item, i) => {\n if (item.productType === 'Private Equity Shares' || item.productType === 'Common Stock' || item.productType === 'Warrant') {\n return \n } else {\n return \n }\n })\n }\n \n }\n\n {\n fieldListH[0]?.permission === 0\n ?\n null\n :\n fieldListH[0]?.permission === 1\n ?\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n :\n\n \n \n {\n positionList.map((item, i) => {\n if (!['Total Return Swap', 'Swap Financing'].includes(item.productType)) {\n return \n } else {\n return \n }\n })\n }\n \n }\n\n {/* \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n */}\n\n \n

Tranche Attributes

\n {\n item.hasExpired === true\n ?\n

Tranche {i + 1} (Expired)

\n :\n

Tranche {i + 1}

\n }\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n \n \n
\n \n
\n \n \n \n
\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n \n \n this.handleChangeDate(date, `default_date-${i}`)}\n dateFormat=\"yyyy-MM-dd\"\n autoComplete = \"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n \n \n
\n \n\n \n
\n
\n \n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
this.props.saveDB()} title=\"Save\">
\n
this.props.approveDB()}>\n \n
\n
\n
\n
\n\n )\n }\n}\n\nexport default TrancheAttribute;","/******************************************************************************************************/\nimport React, { Component } from 'react';\nimport FormDisplay from './formDisplay.js';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n// Our components\nimport '../deals.css';\nimport { faMinusSquare, faPlusSquare } from '@fortawesome/free-solid-svg-icons';\n\nclass Deal_Returns extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.state = {\n open: false,\n }\n\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.togglePanel = this.togglePanel.bind(this);\n };\n\n handleChange(id, name, value) {\n this.props.handleChangeReturns(id, name, value);\n }\n\n handleDropDownChange(id, name, value) {\n this.props.handleChangeReturns(id, name, value);\n }\n\n handleChangeDate(id, name, value) {\n this.props.handleChangeReturns(id, name, value);\n }\n\n togglePanel(e) {\n this.setState({ open: !this.state.open })\n }\n\n componentDidMount() {\n if(this.props.scenarioName === 'Tor Base Case') {\n this.setState({open: true})\n }\n }\n\n render() {\n const {dealReturnList} = this.props;\n return (\n
\n\n
this.togglePanel(e)} className='headerComponent'>\n {\n !this.state.open\n ?\n
\n \n
\n :\n
\n \n
\n }\n\n {`Deal Level: Return Components: ${this.props.scenarioName}`}\n
\n\n {\n !this.state.open\n ?\n null\n :\n
\n \n\n \n\n \n\n \n\n \n\n \n
\n }\n
\n )\n }\n}\n\nexport default Deal_Returns;","/******************************************************************************************************/\nimport React, { Component } from 'react';\nimport { dealBALService } from '../../../bal/deal.bal';\n//https://react.semantic-ui.com/modules/dropdown/\nimport FormDisplay from './formDisplay.js';\n// Our components\nimport '../deals.css';\n\nclass Deal_Metrics extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.state = {\n ratesList: []\n }\n dealBALService.getRates().then(data => { this.setState({ ratesList: data }); }, error => { console.log(error); });\n\n this.handleChangeMetrics = this.handleChangeMetrics.bind(this);\n this.handleDropDownChangeMetrics = this.handleDropDownChangeMetrics.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.getSettingByName = this.getSettingByName.bind(this);\n };\n\n handleChangeMetrics(e) {\n this.props.handleChangeMetrics(e);\n }\n\n handleDropDownChangeMetrics = async (e, { name, value }) => {\n if(name === \"currency\") {\n let rateVal = this.state.ratesList.find(\n data => data.Currency === value\n );\n await this.props.handleChangeCurrency(name, value, rateVal?.Rate);\n } else {\n this.props.handleDropDownChangeMetrics(e, { name, value });\n }\n }\n\n handleChangeDate(name, value) {\n this.props.handleChangeDate(name, value);\n }\n\n getSettingByName(name) {\n const { settingList } = this.props;\n let setting = settingList.filter(\n function (data) {\n return data['value'] === name\n }\n )\n\n return setting.length > 0 ? setting[0].childSettings : [];\n }\n\n render() {\n const { dealMetrics, dealPriorMetrics } = this.props;\n const grossDebt = parseFloat(dealMetrics?.total_debt_entry ?? '0') + parseFloat(dealMetrics?.cash_balance_entry ?? '0');\n const grossPriorDebt = parseFloat(dealPriorMetrics?.total_debt_entry ?? '0') + parseFloat(dealPriorMetrics?.cash_balance_entry ?? '0');\n\n const impOwn = dealMetrics?.cash_balance_entry && dealMetrics?.enterprise_value && this.props?.torPositionVal ? parseFloat((this.props?.torPositionVal / (dealMetrics?.enterprise_value + dealMetrics?.cash_balance_entry) * 100.0).toFixed(2)) : 0.0;\n \n console.log(dealMetrics?.cash_balance_entry, dealMetrics?.enterprise_value, this.props?.torPositionVal, impOwn);\n\n const debtEquityVal = (dealMetrics?.total_debt_entry || dealMetrics?.cash_balance_entry) && dealMetrics?.equity_book_value ? parseFloat((grossDebt / parseInt(dealMetrics?.equity_book_value)).toFixed(2)) : null;\n const debtEquityPriorVal = (dealPriorMetrics?.total_debt_entry || dealPriorMetrics?.cash_balance_entry) && dealPriorMetrics?.equity_book_value ? parseFloat((grossPriorDebt / parseInt(dealPriorMetrics?.equity_book_value)).toFixed(2)) : null;\n \n const totalLeverage = dealMetrics?.total_debt_entry && dealMetrics?.adjusted_ltm_ebitda ? parseFloat((parseInt(dealMetrics?.total_debt_entry) / parseInt(dealMetrics?.adjusted_ltm_ebitda)).toFixed(2)) : null;\n const totalLtv = dealMetrics?.total_debt_entry && dealMetrics?.enterprise_value ? (parseFloat((parseInt(dealMetrics?.total_debt_entry) / parseInt(dealMetrics?.enterprise_value)).toFixed(2))) * 100 : null;\n \n const statusList = this.getSettingByName(\"Real Estate Status\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const ratesList = this.state.ratesList.map(item => { return { key: item.Currency, value: item.Currency, text: item.Currency } });\n const esgRatingList = [{ key: 1, value: 1, text: 1 }, { key: 2, value: 2, text: 2 }, { key: 3, value: 3, text: 3 }, { key: 4, value: 4, text: 4 }, { key: 5, value: 5, text: 5 }]\n let quarterDate = '';\n if(dealMetrics?.quarter !== \"Underwriting\") {\n quarterDate = new Date(dealMetrics?.quarter.substring(2), (parseInt(dealMetrics?.quarter.substring(1, 2)) * 3).toString(), '01');\n quarterDate = new Date(quarterDate - 1);\n\n if(! dealMetrics?.as_of_date) {\n this.handleChangeDate('as_of_date', quarterDate);\n }\n }\n\n return (\n
\n {\n dealMetrics?.quarter !== \"Underwriting\"\n ?\n
\n
\n

Deal Level: Credit Metrics

\n
\n
\n
\n

Response

\n
\n
\n

Prior Quarter Response

\n
\n
\n

Comments

\n
\n
\n
\n :\n
\n
\n

Deal Level: Credit Metrics

\n
\n
\n
\n

Response

\n
\n
\n

Comments

\n
\n
\n
\n }\n\n
\n \n\n \n\n \n\n \n\n \n\n \n\n \n
\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n \n\n \n\n
\n \n
\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n
\n \n
\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n
\n \n
\n
\n \n
\n\n \n\n \n\n \n\n
\n \n
\n\n \n\n \n\n \n\n
\n \n
\n\n \n\n \n\n \n\n \n\n \n {\n dealMetrics?.quarter !== \"Underwriting\"\n ?\n null\n :\n \n }\n
\n )\n }\n}\n\nexport default Deal_Metrics;","/******************************************************************************************************/\nimport React, { Component } from 'react';\n\nimport { Dropdown } from 'semantic-ui-react'\n\n// Our components\nimport './deals.css';\nimport FormDisplay from './components/formDisplay.js';\nimport DealReturns from './components/deal_returns.js';\nimport DealMetrics from './components/deal_metrics.js';\n\nimport ProgressBar from './components/progressbar'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowCircleRight, faArrowCircleLeft, faSave, faCheck } from '@fortawesome/free-solid-svg-icons';\n\nclass CreditMetrics extends Component {\n constructor(props) {\n super(props);\n this.timeout = 250;\n this.state = {\n quarterList: [],\n percent: 0\n }\n this.handleChangeMetrics = this.handleChangeMetrics.bind(this);\n this.handleDropDownChangeMetrics = this.handleDropDownChangeMetrics.bind(this);\n this.handleChangeReturns = this.handleChangeReturns.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.getProgress = this.getProgress.bind(this);\n this.handleChangeCurrency = this.handleChangeCurrency.bind(this);\n };\n\n handleChangeMetrics(e) {\n this.props.handleChangeMetrics(e);\n }\n\n handleDropDownChangeMetrics(e, { name, value }) {\n this.props.handleDropDownChangeMetrics(e, { name, value });\n }\n\n handleChangeReturns(id, name, value) {\n this.props.handleChangeReturns(id, name, value);\n }\n\n handleChangeDate(name, value) {\n this.props.handleChangeDateMetrics(name, value);\n }\n\n handleChangeCurrency(name, currency, rate) {\n this.props.handleChangeCurrency(name, currency, rate);\n }\n\n componentDidMount() {\n var quarterList = [];\n var quarterUd = {\n key: 0,\n value: \"Underwriting\",\n text: \"Underwriting\"\n }\n quarterList.push(quarterUd);\n\n for (var i = new Date().getFullYear(); i >= 2013; i--) {\n var m = 4;\n if (i === new Date().getFullYear()) {\n m = new Date().getMonth() / 3;\n m = Number(parseInt(m, 10))\n }\n for (var j = m; j >= 1; j--) {\n var s = \"q\" + j.toString() + i.toString();\n var v = \"Q\" + j.toString() + '-' + i.toString();\n var quarter = {\n key: (i - 2013) * 4 + j,\n value: s,\n text: v\n }\n quarterList.push(quarter);\n }\n }\n this.setState({ quarterList: quarterList });\n\n this.getProgress();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.dealMetrics !== this.props.dealMetrics || prevProps.dealReturnList !== this.props.dealReturnList) {\n this.getProgress();\n }\n }\n\n roundToTwo(num) {\n return +(Math.round(num + \"e+2\") + \"e-2\");\n }\n\n getProgress() {\n const { dealMetrics, dealReturnList, fieldList } = this.props;\n let filterData, permission, required;\n var fillCount = 0;\n var count = 0;\n\n var columnList = [\n \"total_debt_entry\",\n \"cash_balance_entry\",\n \"currency\",\n \"rate\",\n // \"equity_book_value\",\n // \"equity_market_value\",\n // \"equity_value_dcf\",\n \"unadjusted_ltm_ebitda\",\n \"adjusted_ltm_ebitda\",\n \"appraised_value\",\n \"implied_ownership\",\n \"purchased_price\",\n \"ltm_interest_expense\",\n \"ltm_revenue\",\n \"ltm_revenue_oceania\",\n \"ltm_revenue_africa\",\n \"ltm_revenue_asia\",\n \"ltm_revenue_europe\",\n \"ltm_revenue_north_america\",\n \"ltm_revenue_south_america\",\n // \"ltm_operation_cashflow\",\n \"ltm_capital_expenditure\",\n \"esg_rating_value\",\n \"enterprise_value\",\n \"esg_environment_rating_value\",\n \"esg_social_rating_value\",\n \"esg_governance_rating_value\",\n \"deal_metrics_notes\"\n ]\n\n columnList.push(...[\"total_ranking_drawn_debt\", \"total_drawn_debt_tranche\", \"has_borrower_missed_payment\", \"has_borrower_breach_covenant\", \"as_of_date\"]);\n\n if(dealMetrics?.quarter === \"Underwriting\") {\n columnList.push(...[ \"is_ESG_in_Memo\"]);\n }\n\n for (const key of columnList) {\n filterData = fieldList.filter(function (item) { return item.field_name === key }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n if (required && permission === 2) {\n count += 1;\n if (dealMetrics[key] || dealMetrics[key] === false || dealMetrics[key] === 0) {\n fillCount += 1;\n }\n }\n }\n\n if ((dealMetrics[\"total_leverage_multiple\"] || dealMetrics[\"total_leverage_multiple\"] === false || dealMetrics[\"total_leverage_multiple\"] === 0) ||\n (dealMetrics[\"tor_leverage_attachment\"] || dealMetrics[\"tor_leverage_attachment\"] === false || dealMetrics[\"tor_leverage_attachment\"] === 0) ||\n (dealMetrics[\"tor_leverage_detachment\"] || dealMetrics[\"tor_leverage_detachment\"] === false || dealMetrics[\"tor_leverage_detachment\"] === 0)\n ) {\n count += 3;\n\n if (dealMetrics[\"total_leverage_multiple\"] || dealMetrics[\"total_leverage_multiple\"] === false || dealMetrics[\"total_leverage_multiple\"] === 0) {\n fillCount += 1;\n }\n\n if (dealMetrics[\"tor_leverage_attachment\"] || dealMetrics[\"tor_leverage_attachment\"] === false || dealMetrics[\"tor_leverage_attachment\"] === 0) {\n fillCount += 1;\n }\n\n if (dealMetrics[\"tor_leverage_detachment\"] || dealMetrics[\"tor_leverage_detachment\"] === false || dealMetrics[\"tor_leverage_detachment\"] === 0) {\n fillCount += 1;\n }\n } else {\n count += 3;\n\n if (dealMetrics[\"total_ltv_percentage\"] || dealMetrics[\"total_ltv_percentage\"] === false || dealMetrics[\"total_ltv_percentage\"] === 0) {\n fillCount += 1;\n }\n\n if (dealMetrics[\"tor_ltv_detachment\"] || dealMetrics[\"tor_ltv_detachment\"] === false || dealMetrics[\"tor_ltv_detachment\"] === 0) {\n fillCount += 1;\n }\n\n if (dealMetrics[\"tor_ltv_attachment\"] || dealMetrics[\"tor_ltv_attachment\"] === false || dealMetrics[\"tor_ltv_attachment\"] === 0) {\n fillCount += 1;\n }\n }\n\n columnList = [\"unlevered_irr_percentage\",\n \"levered_irr_percentage\",\n \"unlevered_moic\",\n \"levered_moic\",\n \"return_scenario_probability\"\n ]\n\n if(dealMetrics?.quarter === \"Underwriting\") {\n if (dealReturnList.length > 0) {\n for (const key of columnList) {\n filterData = fieldList.filter(function (item) { return item.field_name === key }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n \n if (required && permission === 2) {\n count += 1;\n if (dealReturnList[0][key]) {\n fillCount += 1;\n }\n }\n }\n } else {\n count += 6;\n }\n }\n \n\n this.setState({ percent: this.roundToTwo(fillCount / count * 100) });\n }\n\n render() {\n const { dealMetrics, dealPriorMetrics, dealReturnList, bbg_quarter } = this.props;\n const { quarterList } = this.state;\n const percent = this.state.percent;\n\n var dealList = this.props.bbgDealList.filter(function (entry) {\n return entry.deal_id === dealMetrics.deal_id\n });\n\n dealList = dealList.map(item => { return { key: item.for_report_date, value: item.for_report_date, text: item.quarter } });\n\n return (\n
\n
\n \n
\n
\n
\n {\n (dealMetrics?.quarter ?? 'Underwriting') === 'Underwriting'\n ? \n
\n \n
\n \n
\n
\n :\n
\n \n
\n \n
\n \n
\n\n }\n\n {\n dealList.length > 0\n ?\n
\n \n
\n \n
\n \n
\n :\n null\n }\n\n \n\n {(dealMetrics?.quarter ?? 'Underwriting') === 'Underwriting' \n ?\n
\n \n\n \n\n \n
\n : null\n }\n \n\n \n
\n
\n
\n
\n
\n
\n
this.props.saveDB()} title=\"Save\">
\n
this.props.approveDB()}>\n \n
\n
\n
\n
\n )\n }\n}\n\nexport default CreditMetrics;","/******************************************************************************************************/\nimport React, { Component } from 'react';\n//https://react.semantic-ui.com/modules/dropdown/\nimport FormDisplay from './components/formDisplay.js';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowCircleLeft, faSave, faCheck } from '@fortawesome/free-solid-svg-icons';\n\n\n// Our components\nimport './deals.css';\n\nclass DealRisks extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.state = {\n \n }\n\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.getSettingByName = this.getSettingByName.bind(this);\n };\n\n handleChange(e) {\n this.props.handleChange(e);\n }\n\n handleDropDownChange(e, { name, value }) {\n this.props.handleDropDownChange(e, { name, value });\n }\n\n handleChangeDate(name, value) {\n this.props.handleChangeDate(name, value);\n }\n\n getSettingByName(name) {\n const { settingList } = this.props;\n let setting = settingList.filter(\n function (data) {\n return data['value'] === name\n }\n )\n\n return setting.length > 0 ? setting[0].childSettings : [];\n }\n\n render() {\n const { dealRisk } = this.props;\n\n const commodityList = this.getSettingByName(\"Commodity Risk\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const realEstateList = this.getSettingByName(\"Property Type\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const optionsList = this.getSettingByName(\"Risk Price Direction\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n\n return (\n
\n
\n
\n
\n
\n
\n

Commodity Risks

\n
\n
\n

{\"\"}

\n
\n
\n

Direction

\n
\n
\n
\n
\n
\n

Description

\n
\n
\n

Is Development Asset?

\n
\n
\n

Location

\n
\n
\n

% of Deal Asset

\n
\n
\n
\n
\n\n \n\n \n\n \n\n
\n
\n
\n
\n\n
\n
\n
\n

Real-Estate Risks

\n
\n
\n

{\"\"}

\n
\n
\n

Description

\n
\n
\n
\n
\n
\n

Is Development Asset?

\n
\n
\n

Location

\n
\n
\n

% of Deal Asset

\n
\n
\n
\n
\n\n \n\n \n\n \n
\n
\n
\n
\n
\n
this.props.saveDB()} title=\"Save\">
\n
this.props.approveDB()}>\n \n
\n
\n
\n
\n )\n }\n}\n\nexport default DealRisks;","/******************************************************************************************************/\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { Collapse } from 'reactstrap';\nimport { dealBALService } from '../../bal/deal.bal';\nimport { Prompt } from \"react-router-dom\";\n\nimport Modal from 'react-awesome-modal';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync } from \"@fortawesome/free-solid-svg-icons\";\nimport { faHome } from '@fortawesome/free-solid-svg-icons';\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from './../../config';\nimport { Session } from '../../helper/session';\n\n\nimport './deals.css';\nimport DealAttributes from './deal_attributes_1.js';\nimport DealAttributes2 from './deal_attributes_2.js';\nimport TrancheAttributes from './tranche_attribute.js';\nimport CreditMetrics from './credit_metrics.js';\nimport TorGrid from './../torgrid/torgrid';\nimport DealRisks from './deal_risks';\nimport ToastMessage from \"./components/toastMessage\";\n\nclass Deals extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n const user = JSON.parse(Session.getItem(config.token)); \n const approverRole = user.userRoles.filter(function (item) { return item === \"Approver\" });\n\n this.state = {\n columnDefs: [\n {\n headerName: \"Deal Name\", field: \"instrument_code\", width: 245, sortable: true, filter: true, resizable: true,\n cellRenderer: (params) => {\n var link = document.createElement('a');\n link.href = '#';\n link.innerText = params.value;\n link.addEventListener('click', (e) => {\n e.preventDefault();\n this.state.isOpenGrid = false;\n this.setState({ dealAttribute: { ...this.state.dealAttribute, InvestmentCode: params.data.instrument_code } });\n this.setState({ tabindex: 1 });\n });\n return link;\n }\n },\n { headerName: \"Company Description\", field: \"company_description\", width: 245, sortable: true, filter: true, resizable: true },\n ],\n rowData: [],\n ws: null,\n dealDictionary: {},\n user: user,\n isApprover: approverRole.length > 0,\n showPopup: false,\n display: \"none\",\n deal: null,\n quarter: \"Underwriting\",\n bbg_quarter: null,\n dealName: \"\",\n isOpenGrid: true,\n projectName: \"\",\n analystDate: null,\n analyst1Weight: null,\n analyst1Name: null,\n analyst2Weight: null,\n analyst2Name: null,\n analyst3Weight: null,\n analyst3Name: null,\n analyst4Weight: null,\n analyst4Name: null,\n faceValue: 0,\n marketValue: 0,\n torPositionVal: 0,\n genevaDealName: \"\",\n dealAttributeList: [],\n positionList: [],\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n dealList: [],\n bbgDealList: [],\n dealAttribute: {\n deal_id: null,\n country_of_risk_id: null,\n gics_sector_id: null,\n gics_industry_group_id: null,\n gics_industry_id: null,\n gics_sub_industry_id: null,\n gics_nace_id: null,\n eligible_climate_mitigation_activity: null,\n eligible_climate_adaptation_activity: null,\n bics_sector_id: null,\n bics_industry_group_id: null,\n bics_industry_id: null,\n bics_sub_industry_id: null,\n snp_corporate_family_rating_id: null,\n moodys_corporate_family_rating_id: null,\n portfolio: null,\n tacf_sub_strategy: null,\n tacof_sub_strategy: null,\n market_risk_sensitivity: null,\n equity_upside: null,\n equity_upside_form: null,\n is_new_issue: null,\n upfront_fee: null,\n total_facility_amount: null,\n company_description: null,\n\n\n is_assetbased_cashflow: null,\n is_loan_underwritten: null,\n is_hard_asset_collateral: null,\n hard_asset_collateral_list: null,\n is_cov_lite: null,\n covenants_list: null,\n source_of_deal: null,\n has_financial_sponsor: null,\n financial_sponsor_list: null,\n has_leadership_role: null,\n primary_deal_purpose: null,\n secondary_deal_purpose: null,\n expected_exit_date: null,\n primary_exit_type_id: null,\n primary_exit_type: null,\n secondary_exit_type_id: null,\n secondary_exit_type: null,\n num_syndicate_leaders: null,\n is_tor_only_lender: null,\n\n\n is_assetbased_cashflow_comment: null,\n is_loan_underwritten_comment: null,\n is_hard_asset_collateral_comment: null,\n hard_asset_collateral_list_comment: null,\n is_cov_lite_comment: null,\n covenants_list_comment: null,\n source_of_deal_comment: null,\n has_financial_sponsor_comment: null,\n financial_sponsor_list_comment: null,\n has_leadership_role_comment: null,\n primary_deal_purpose_comment: null,\n secondary_deal_purpose_comment: null,\n expected_exit_date_comment: null,\n primary_exit_type_id_comment: null,\n primary_exit_type_comment: null,\n secondary_exit_type_id_comment: null,\n secondary_exit_type_comment: null,\n num_syndicate_leaders_comment: null,\n is_tor_only_lender_comment: null,\n\n deal_information_notes: null\n },\n trancheAttribute: {\n deal_id: null,\n investment_code: null,\n asset_type: null,\n credit_ranking: null,\n holdco_vs_opco: null,\n has_defaulted: null,\n default_date: null,\n makewhole: null,\n amortization: null,\n is_non_recourse: null\n },\n trancheAttributeList: [],\n dealMetrics: {\n deal_id: null,\n is_underwriting: true,\n quarter: \"Underwriting\",\n currency: \"USD\",\n rate: 1.0,\n dispRate: 1.0,\n\n senior_debt: null,\n secured_debt: null,\n parri_passu_debt: null,\n senior_debt_tranche: null,\n total_debt_entry: null,\n distressed_market_value: null,\n cash_balance_entry: null,\n gross_debt: null,\n equity_book_value: null,\n equity_market_value: null,\n equity_value_dcf: null,\n unadjusted_ltm_ebitda: null,\n adjusted_ltm_ebitda: null,\n appraised_value: null,\n implied_ownership: null,\n purchased_price: null,\n ltm_interest_expense: null,\n ltm_revenue: null,\n ltm_revenue_oceania: null,\n ltm_revenue_africa: null,\n ltm_revenue_asia: null,\n ltm_revenue_europe: null,\n ltm_revenue_north_america: null,\n ltm_revenue_south_america: null,\n ltm_operation_cashflow: null,\n ltm_capital_expenditure: null,\n total_leverage_multiple: null,\n total_ltv_percentage: null,\n tor_leverage_attachment: null,\n tor_leverage_detachment: null,\n tor_ltv_detachment: null,\n tor_ltv_attachment: null,\n esg_rating_value: null,\n is_ESG_in_Memo: null,\n\n senior_debt_comment: null,\n secured_debt_comment: null,\n parri_passu_debt_comment: null,\n senior_debt_tranche_comment: null,\n total_debt_entry_comment: null,\n distressed_market_value_comment: null,\n cash_balance_entry_comment: null,\n gross_debt_comment: null,\n equity_book_value_comment: null,\n equity_market_value_comment: null,\n equity_value_dcf_comment: null,\n unadjusted_ltm_ebitda_comment: null,\n adjusted_ltm_ebitda_comment: null,\n appraised_value_comment: null,\n implied_ownership_comment: null,\n purchased_price_comment: null,\n ltm_interest_expense_comment: null,\n ltm_revenue_comment: null,\n ltm_revenue_oceania_comment: null,\n ltm_revenue_africa_comment: null,\n ltm_revenue_asia_comment: null,\n ltm_revenue_europe_comment: null,\n ltm_revenue_north_america_comment: null,\n ltm_revenue_south_america_comment: null,\n ltm_operation_cashflow_comment: null,\n ltm_capital_expenditure_comment: null,\n total_leverage_multiple_comment: null,\n total_ltv_percentage_comment: null,\n tor_leverage_attachment_comment: null,\n tor_leverage_detachment_comment: null,\n tor_ltv_detachment_comment: null,\n tor_ltv_attachment_comment: null,\n esg_rating_comment: null,\n is_ESG_in_Memo_comment: null,\n\n total_ranking_drawn_debt: null,\n total_drawn_debt_tranche: null,\n has_borrower_missed_payment: null,\n has_borrower_breach_covenant: null,\n enterprise_value: null,\n debt_equity_ratio: null,\n esg_environment_rating_value: null,\n esg_social_rating_value: null,\n esg_governance_rating_value: null,\n\n total_ranking_drawn_debt_comment: null,\n total_drawn_debt_tranche_comment: null,\n has_borrower_missed_payment_comment: null,\n has_borrower_breach_covenant_comment: null,\n enterprise_value_comment: null,\n debt_equity_ratio_comment: null,\n esg_environment_rating_comment: null,\n esg_social_rating_comment: null,\n esg_governance_rating_comment: null,\n\n as_of_date: null,\n as_of_date_comment: null,\n\n deal_metrics_notes: null\n },\n dealPriorMetrics: {\n deal_id: null,\n is_underwriting: true,\n quarter: \"Underwriting\",\n\n senior_debt: null,\n secured_debt: null,\n parri_passu_debt: null,\n senior_debt_tranche: null,\n total_debt_entry: null,\n distressed_market_value: null,\n cash_balance_entry: null,\n gross_debt: null,\n equity_book_value: null,\n equity_market_value: null,\n equity_value_dcf: null,\n unadjusted_ltm_ebitda: null,\n adjusted_ltm_ebitda: null,\n appraised_value: null,\n implied_ownership: null,\n purchased_price: null,\n ltm_interest_expense: null,\n ltm_revenue: null,\n ltm_revenue_oceania: null,\n ltm_revenue_africa: null,\n ltm_revenue_asia: null,\n ltm_revenue_europe: null,\n ltm_revenue_north_america: null,\n ltm_revenue_south_america: null,\n ltm_operation_cashflow: null,\n ltm_capital_expenditure: null,\n total_leverage_multiple: null,\n total_ltv_percentage: null,\n tor_leverage_attachment: null,\n tor_leverage_detachment: null,\n tor_ltv_detachment: null,\n tor_ltv_attachment: null,\n esg_rating_value: null,\n is_ESG_in_Memo: null,\n\n senior_debt_comment: null,\n secured_debt_comment: null,\n parri_passu_debt_comment: null,\n senior_debt_tranche_comment: null,\n total_debt_entry_comment: null,\n distressed_market_value_comment: null,\n cash_balance_entry_comment: null,\n gross_debt_comment: null,\n equity_book_value_comment: null,\n equity_market_value_comment: null,\n equity_value_dcf_comment: null,\n unadjusted_ltm_ebitda_comment: null,\n adjusted_ltm_ebitda_comment: null,\n appraised_value_comment: null,\n implied_ownership_comment: null,\n purchased_price_comment: null,\n ltm_interest_expense_comment: null,\n ltm_revenue_comment: null,\n ltm_revenue_oceania_comment: null,\n ltm_revenue_africa_comment: null,\n ltm_revenue_asia_comment: null,\n ltm_revenue_europe_comment: null,\n ltm_revenue_north_america_comment: null,\n ltm_revenue_south_america_comment: null,\n ltm_operation_cashflow_comment: null,\n ltm_capital_expenditure_comment: null,\n total_leverage_multiple_comment: null,\n total_ltv_percentage_comment: null,\n tor_leverage_attachment_comment: null,\n tor_leverage_detachment_comment: null,\n tor_ltv_detachment_comment: null,\n tor_ltv_attachment_comment: null,\n esg_rating_comment: null,\n is_ESG_in_Memo_comment: null,\n\n total_ranking_drawn_debt: null,\n total_drawn_debt_tranche: null,\n has_borrower_missed_payment: null,\n has_borrower_breach_covenant: null,\n enterprise_value: null,\n debt_equity_ratio: null,\n esg_environment_rating_value: null,\n esg_social_rating_value: null,\n esg_governance_rating_value: null,\n\n total_ranking_drawn_debt_comment: null,\n total_drawn_debt_tranche_comment: null,\n has_borrower_missed_payment_comment: null,\n has_borrower_breach_covenant_comment: null,\n enterprise_value_comment: null,\n debt_equity_ratio_comment: null,\n esg_environment_rating_comment: null,\n esg_social_rating_comment: null,\n esg_governance_rating_comment: null,\n\n as_of_date: null,\n as_of_date_comment: null,\n\n deal_metrics_notes: null\n },\n dealRisk: {\n deal_id: null,\n is_underwriting: true,\n quarter: \"Underwriting\",\n energy_1_id: null,\n energy_1_direction: null,\n energy_1_price: null,\n energy_1_comment: null,\n\n energy_2_id: null,\n energy_2_direction: null,\n energy_2_price: null,\n energy_2_comment: null,\n\n metal_1_id: null,\n metal_1_direction: null,\n metal_1_price: null,\n metal_1_comment: null,\n\n metal_2_id: null,\n metal_2_direction: null,\n metal_2_price: null,\n metal_2_comment: null,\n\n currency_1_id: null,\n currency_1_direction: null,\n currency_1_price: null,\n currency_1_comment: null,\n\n currency_2_id: null,\n currency_2_direction: null,\n currency_2_price: null,\n currency_2_comment: null,\n\n gics_ig_1_id: null,\n gics_ig_1_direction: null,\n gics_ig_1_price: null,\n gics_ig_1_comment: null,\n\n gics_ig_2_id: null,\n gics_ig_2_direction: null,\n gics_ig_2_price: null,\n gics_ig_2_comment: null,\n\n miscellanious_1: null,\n miscellanious_1_comment: null,\n\n miscellanious_2: null,\n miscellanious_2_comment: null,\n\n counterparty: null,\n counterparty_comment: null,\n\n real_estate_1_type: null,\n real_estate_1_desc: null,\n real_estate_1_is_development: null,\n real_estate_1_location: null,\n real_estate_1_deal_percentage: null,\n\n real_estate_2_type: null,\n real_estate_2_desc: null,\n real_estate_2_is_development: null,\n real_estate_2_location: null,\n real_estate_2_deal_percentage: null,\n\n real_estate_3_type: null,\n real_estate_3_desc: null,\n real_estate_3_is_development: null,\n real_estate_3_location: null,\n real_estate_3_deal_percentage: null\n },\n gridData: [],\n dealReturnList: [],\n dealAttributeDb: {},\n dealMetricsDb: {},\n dealReturnListDb: [],\n trancheAttributeListDb: [],\n dealRiskDb: {},\n fieldList: [],\n settingList: [],\n percent: 0,\n totalPercent: 0,\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n isDataChanged: false,\n isDealChange: false,\n toggleRefresh: true\n }\n\n dealBALService.getAllBbgDeals().then(data => {\n this.setState({ bbgDealList: data });\n }, error => { console.log(error); });\n\n dealBALService.getRowData().then(data => {\n this.setState({ gridData: data, dealList: data });\n }, error => { console.log(error); });\n\n dealBALService.getFields().then(data => { this.setState({ fieldList: data }); }, error => { console.log(error); });\n dealBALService.getAllSettings().then(data => { this.setState({ settingList: data }); }, error => { console.log(error); });\n\n this.refresh = this.refresh.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.addDeal = this.addDeal.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleChangeNumber = this.handleChangeNumber.bind(this);\n this.handleChangeRisk = this.handleChangeRisk.bind(this);\n this.handleChangeMetrics = this.handleChangeMetrics.bind(this);\n this.handleRowSelected = this.handleRowSelected.bind(this);\n this.handleDropDownChangeMetrics = this.handleDropDownChangeMetrics.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleDropDownChangeRisk = this.handleDropDownChangeRisk.bind(this);\n this.handleDropDownChangeDeal = this.handleDropDownChangeDeal.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.handleChangeDateRisk = this.handleChangeDateRisk.bind(this);\n this.handleChangeDateMetrics = this.handleChangeDateMetrics.bind(this);\n this.setTabIndex = this.setTabIndex.bind(this);\n this.saveDB = this.saveDB.bind(this);\n this.handleDropDownChangeTranche = this.handleDropDownChangeTranche.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleChangeReturns = this.handleChangeReturns.bind(this);\n this.handleChangeTranche = this.handleChangeTranche.bind(this);\n this.getProgress = this.getProgress.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeErrorMessage = this.closeErrorMessage.bind(this);\n this.approveDB = this.approveDB.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.approveDeals = this.approveDeals.bind(this);\n this.round = this.round.bind(this);\n this.handleHome = this.handleHome.bind(this);\n this.handleClickBbg = this.handleClickBbg.bind(this);\n this.handleChangeCurrency = this.handleChangeCurrency.bind(this);\n this.roundToTwo = this.roundToTwo.bind(this);\n };\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n refresh() {\n if (this.state.isOpenGrid === false && this.state.dealAttribute.deal_id !== null && this.state.isDataChanged === true) {\n this.setState({\n modalVisible: true,\n modalType: 'saveClose',\n modalHandler: 'refresh',\n modalHeading: 'Do you want to save changes?'\n })\n } else if (this.state.isOpenGrid === true) {\n dealBALService.getRowData().then(data => {\n this.setState({ gridData: data, dealList: data });\n }, error => { console.log(error); });\n }\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({isOpenGrid: true});\n } else if (this.state.modalHandler === 'save') {\n this.saveDB();\n this.setState({isOpenGrid: true});\n } else {\n this.setState({isOpenGrid: true});\n }\n\n this.setState({\n modalVisible: false\n });\n }\n\n addDeal() {\n this.setState({ isOpenGrid: false, tabindex: 1 });\n }\n\n getProgress() {\n const { dealAttribute, analyst1Name, projectName, analyst1Weight, trancheAttribute, trancheAttributeList, dealMetrics, dealReturnList, fieldList, positionList } = this.state;\n const { analyst2Name, analyst2Weight, analyst3Name, analyst3Weight, analyst4Name, analyst4Weight, analystDate } = this.state;\n let field, filterData, permission, required;\n var fillCount = 0;\n var totalCount = 0;\n var count = 0;\n var totalFill = 0;\n\n var listVal = \"\";\n var errorList = [];\n\n var columnList = [\n { label: \"Deal\", id: \"deal_id\" },\n { label: \"Project Name\", id: \"projectName\" },\n { label: \"Country of Risk\", id: \"country_of_risk_id\" },\n { label: \"GICS Sector\", id: \"gics_sector_id\" },\n { label: \"Gics Industry Group\", id: \"gics_industry_group_id\" },\n { label: \"GICS Industry\", id: \"gics_industry_id\" },\n { label: \"GICS Sub Industry\", id: \"gics_sub_industry_id\" },\n { label: \"BICS Sector\", id: \"bics_sector_id\" },\n { label: \"BICS Industry Group\", id: \"bics_industry_group_id\" },\n { label: \"BICS Industry\", id: \"bics_industry_id\" },\n { label: \"BICS Sub Industry\", id: \"bics_sub_industry_id\" },\n { label: \"S&P Corporate Family Rating\", id: \"snp_corporate_family_rating_id\" },\n { label: \"Moody's Corporate Family rating\", id: \"moodys_corporate_family_rating_id\" },\n { label: \"Portfolio\", id: \"portfolio\" },\n { label: \"TACF Sub Strategy\", id: \"tacf_sub_strategy\" },\n { label: \"TACOF Sub Strategy\", id: \"tacof_sub_strategy\" },\n { label: \"Analyst 1 Name\", id: \"analyst1Name\" },\n { label: \"Analyst Weighting Date\", id: \"analystDate\" },\n { label: \"Analyst 1 Weight\", id: \"analyst1Weight\" },\n { label: \"Analyst 2 Name\", id: \"analyst2Name\" },\n { label: \"Analyst 3 Name\", id: \"analyst3Name\" },\n { label: \"Analyst 4 Name\", id: \"analyst4Name\" },\n { label: \"Market Risk Sensitivity\", id: \"market_risk_sensitivity\" },\n { label: \"Equity Upside?\", id: \"equity_upside\" },\n { label: \"Form of Equity Upside\", id: \"equity_upside_form\" },\n { label: \"Company Description\", id: \"company_description\" }\n ]\n\n for (const key of columnList) {\n field = key.id;\n filterData = fieldList.filter(function (item) { return item.field_name === key.id }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n if (field === \"analyst1Weight\" && permission !== 2) {\n required = false;\n } else if(field === \"analyst1Weight\" && permission === 2) {\n var sum = parseInt(Number.isNaN(analyst1Weight) ? 0 : analyst1Weight ?? 0) + parseInt(Number.isNaN(analyst2Weight) ? 0 : analyst2Weight ?? 0) + parseInt(Number.isNaN(analyst3Weight) ? 0 : analyst3Weight ?? 0) + parseInt(Number.isNaN(analyst4Weight) ? 0 : analyst4Weight ?? 0);\n if(((sum <= 99.9 || sum > 100) && sum !== 0) || Number.isNaN(sum)) {\n errorList.push(\"Analyst Weights should sum to 100%\");\n }\n\n if(((analyst1Name ?? '111') === (analyst2Name ?? '222')) || ((analyst1Name ?? '111') === (analyst3Name ?? '333')) || ((analyst1Name ?? '111') === (analyst4Name ?? '444'))\n || ((analyst2Name ?? '222') === (analyst3Name ?? '333')) || ((analyst2Name ?? '222') === (analyst4Name ?? '444')) || ((analyst3Name ?? '333') === (analyst4Name ?? '444'))) \n {\n errorList.push(\"Please enter different analysts for position 1, 2, 3, 4\");\n }\n }\n\n if (required && permission === 2) {\n if (field === \"equity_upside_form\" && dealAttribute[\"equity_upside\"] === true) {\n count += 1;\n if (dealAttribute[field]) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if(field !== \"equity_upside_form\") {\n if(field !== \"analyst2Name\" && field !== \"analyst3Name\" && field !== \"analyst4Name\") {\n count += 1;\n }\n \n if (field === \"tacf_sub_strategy\" || field === \"tacof_sub_strategy\") {\n if (dealAttribute[\"tacf_sub_strategy\"] || dealAttribute[\"tacof_sub_strategy\"]) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"projectName\") {\n if (projectName) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"analystDate\") {\n if (analystDate) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst1Name\") {\n if (analyst1Name) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst1Weight\") {\n if (analyst1Weight || analyst1Weight === 0) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst2Name\") {\n if (analyst2Weight && (analyst2Name === null || analyst2Name === undefined || analyst2Name === '')) {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst3Name\") {\n if (analyst3Weight && (analyst3Name === null || analyst3Name === undefined || analyst3Name === '')) {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst4Name\") {\n if (analyst4Weight && (analyst4Name === null || analyst4Name === undefined || analyst4Name === '')) {\n listVal += key.label + \", \"\n }\n } else {\n if (dealAttribute[field] || dealAttribute[field] === false || dealAttribute[field] === 0) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n }\n }\n }\n\n if (required) {\n if (field === \"equity_upside_form\" && dealAttribute[\"equity_upside\"] === true) {\n totalCount += 1;\n if (dealAttribute[field]) {\n totalFill += 1;\n } else {\n console.log(field + \" Missing\");\n }\n } else if(field !== \"equity_upside_form\" && field !== \"analyst2Name\" && field !== \"analyst3Name\" && field !== \"analyst4Name\") {\n totalCount += 1;\n if (field === \"tacf_sub_strategy\" || field === \"tacof_sub_strategy\") {\n if (dealAttribute[\"tacf_sub_strategy\"] || dealAttribute[\"tacof_sub_strategy\"]) {\n totalFill += 1;\n } \n } else if (field === \"projectName\") {\n if (projectName) {\n totalFill += 1;\n } \n } else if (field === \"analystDate\") {\n if (analystDate) {\n totalFill += 1;\n } \n } else if (field === \"analyst1Name\") {\n if (analyst1Name) {\n totalFill += 1;\n } \n } else if (field === \"analyst1Weight\") {\n if (analyst1Weight || analyst1Weight === 0) {\n totalFill += 1;\n } \n } else {\n if (dealAttribute[field] || dealAttribute[field] === false || dealAttribute[field] === 0) {\n totalFill += 1;\n } \n }\n }\n }\n }\n\n if (listVal !== \"\") {\n listVal = \"Executive Summary: \" + listVal.substring(0, listVal.length - 2);\n errorList.push(listVal);\n }\n\n listVal = \"\";\n\n columnList = [\n { label: \"Asset Based vs. Cashflow\", id: \"is_assetbased_cashflow\" },\n { label: \"Is loan underwritten?\", id: \"is_loan_underwritten\" },\n { label: \"Is there hard-asset collateral?\", id: \"is_hard_asset_collateral\" },\n { label: \"List of Hard Asset Collateral\", id: \"hard_asset_collateral_list\" },\n { label: \"Is the position cov-lite?\", id: \"is_cov_lite\" },\n { label: \"List of Covenants\", id: \"covenants_list\" },\n { label: \"Source of Deal\", id: \"source_of_deal\" },\n { label: \"Has Financial Sponsor?\", id: \"has_financial_sponsor\" },\n { label: \"List of Financial Sponsor\", id: \"financial_sponsor_list\" },\n { label: \"leadership/ Structuring role?\", id: \"has_leadership_role\" },\n { label: \"Purpose of Deal (Primary)\", id: \"primary_deal_purpose\" },\n { label: \"Purpose of Deal (Secondary)\", id: \"secondary_deal_purpose\" },\n { label: \"Expected Exit Date\", id: \"expected_exit_date\" },\n { label: \"Expected Exit Type (Primary)\", id: \"primary_exit_type_id\" },\n { label: \"Other Primary Exit Type\", id: \"primary_exit_type\" },\n { label: \"Expected Exit Type (Secondary)\", id: \"secondary_exit_type_id\" },\n { label: \"Other Secondary Exit Type\", id: \"secondary_exit_type\" },\n { label: \"Number of Syndicate Lenders\", id: \"num_syndicate_leaders\" },\n { label: \"Is Tor the only lender for this deal?\", id: \"is_tor_only_lender\" }\n ]\n\n for (const key of columnList) {\n field = key.id;\n filterData = fieldList.filter(function (item) { return item.field_name === key.id }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n if (dealAttribute.portfolio === \"Public\") {\n required = false;\n }\n\n if (permission === 2 && required === true) {\n if (field === \"hard_asset_collateral_list\" && dealAttribute[\"is_hard_asset_collateral\"] === true) {\n count += 1;\n if (dealAttribute[field]) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"covenants_list\" && dealAttribute[\"is_cov_lite\"] === false) {\n count += 1;\n if (dealAttribute[field]) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"financial_sponsor_list\" && dealAttribute[\"has_financial_sponsor\"] === true) {\n count += 1;\n if (dealAttribute[field]) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"primary_exit_type\" && dealAttribute[\"primary_exit_type_id\"] === 72) {\n count += 1;\n if (dealAttribute[field]) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"secondary_exit_type\" && dealAttribute[\"secondary_exit_type_id\"] === 80) {\n count += 1;\n if (dealAttribute[field]) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n } else if (field !== \"hard_asset_collateral_list\" && field !== \"covenants_list\" && field !== \"financial_sponsor_list\"\n && field !== \"primary_exit_type\" && field !== \"secondary_exit_type\") {\n count += 1;\n if (dealAttribute[field] || dealAttribute[field] === false) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \"\n }\n }\n }\n\n if (required === true) {\n if (field === \"hard_asset_collateral_list\" && dealAttribute[\"is_hard_asset_collateral\"] === true) {\n totalCount += 1;\n if (dealAttribute[field]) {\n totalFill += 1;\n } \n } else if (field === \"covenants_list\" && dealAttribute[\"is_cov_lite\"] === false) {\n totalCount += 1;\n if (dealAttribute[field]) {\n totalFill += 1;\n } \n } else if (field === \"financial_sponsor_list\" && dealAttribute[\"has_financial_sponsor\"] === true) {\n totalCount += 1;\n if (dealAttribute[field]) {\n totalFill += 1;\n } \n } else if (field === \"primary_exit_type\" && dealAttribute[\"primary_exit_type_id\"] === 72) {\n totalCount += 1;\n if (dealAttribute[field]) {\n totalFill += 1;\n } \n } else if (field === \"secondary_exit_type\" && dealAttribute[\"secondary_exit_type_id\"] === 80) {\n totalCount += 1;\n if (dealAttribute[field]) {\n totalFill += 1;\n } \n } else if (field !== \"hard_asset_collateral_list\" && field !== \"covenants_list\" && field !== \"financial_sponsor_list\"\n && field !== \"primary_exit_type\" && field !== \"secondary_exit_type\") {\n totalCount += 1;\n if (dealAttribute[field] || dealAttribute[field] === false) {\n totalFill += 1;\n } \n }\n }\n }\n\n if (listVal !== \"\") {\n listVal = \"Deal Attributes: \" + listVal.substring(0, listVal.length - 2);\n errorList.push(listVal);\n }\n\n listVal = \"\";\n\n columnList = [\n { label: \"Asset Type\", id: \"asset_type\" },\n { label: \"Credit ranking\", id: \"credit_ranking\" },\n { label: \"HoldCo vs OpCo\", id: \"holdco_vs_opco\" },\n { label: \"Has Defaulted?\", id: \"has_defaulted\" },\n { label: \"Default Date\", id: \"default_date\" },\n { label: \"Make-Whole\", id: \"makewhole\" },\n { label: \"Amortization\", id: \"amortization\" },\n { label: \"Is Non-Recourse Financing?\", id: \"is_non_recourse\" }\n ]\n\n for (const key of columnList) {\n field = key.id;\n filterData = fieldList.filter(function (item) { return item.field_name === key.id }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n var flag = false;\n\n for (var i = 0; i < trancheAttributeList.length; i++) {\n if(key !== \"asset_type\" && ['Private Equity Shares', 'Common Stock', 'Warrant'].includes(positionList[i].productType)) {\n required = false;\n } else {\n required = true;\n }\n\n if(permission === 2 && field === \"is_non_recourse\"){\n if(['Total Return Swap', 'Swap Financing'].includes(positionList[i].productType)) {\n count += 1;\n if (trancheAttributeList[i][field]) {\n fillCount += 1;\n } else if (trancheAttribute[field]) {\n fillCount += 1\n } else {\n flag = true;\n }\n }\n } else if (permission === 2 && required === true) {\n if (field === \"default_date\" && trancheAttributeList[i][\"has_defaulted\"] === true) {\n count += 1;\n if (trancheAttributeList[i][field]) {\n fillCount += 1;\n } else if (trancheAttribute[field]) {\n fillCount += 1\n } else {\n flag = true;\n }\n } else if (field !== \"default_date\") {\n count += 1;\n if (trancheAttributeList[i][field] || trancheAttributeList[i][field] === false) {\n fillCount += 1;\n } else if (trancheAttribute[field]) {\n fillCount += 1\n } else {\n flag = true;\n }\n }\n }\n\n if (required === true) {\n if (field === \"default_date\" && trancheAttributeList[\"has_defaulted\"] === true) {\n totalCount += 1;\n if (trancheAttributeList[i][field]) {\n totalFill += 1;\n } else if (trancheAttribute[field]) {\n totalFill += 1\n } \n } else if (field === \"is_non_recourse\") {\n if(['Total Return Swap', 'Swap Financing'].includes(positionList[i].productType)) {\n totalCount += 1;\n if (trancheAttributeList[i][field] || trancheAttributeList[i][field] === false) {\n totalFill += 1;\n } else if (trancheAttribute[field]) {\n totalFill += 1\n }\n }\n } else if (field !== \"default_date\") {\n totalCount += 1;\n if (trancheAttributeList[i][field] || trancheAttributeList[i][field] === false) {\n totalFill += 1;\n } else if (trancheAttribute[field]) {\n totalFill += 1\n } \n }\n }\n }\n\n if (flag) {\n listVal += key.label + \", \"\n }\n }\n\n if (listVal !== \"\") {\n listVal = \"Tranche Attributes: \" + listVal.substring(0, listVal.length - 2);\n errorList.push(listVal);\n }\n\n listVal = \"\";\n\n columnList = [\n { label: \"Total Value of All Prior Ranking Drawn Debt\", id: \"total_ranking_drawn_debt\" },\n { label: \"Total Drawn Debt through Tranche\", id: \"total_drawn_debt_tranche\" },\n { label: \"As Of Date\", id: \"as_of_date\" },\n { label: \"Currency\", id: \"currency\" },\n { label: \"Rate\", id: \"rate\" },\n { label: \"Has the borrower missed any payments?\", id: \"has_borrower_missed_payment\" },\n { label: \"Is the borrower in breach of any covenants?\", id: \"has_borrower_breach_covenant\" },\n { label: \"Total Net Debt\", id: \"total_debt_entry\" },\n { label: \"Cash Balance\", id: \"cash_balance_entry\" },\n // { label: \"Book Value of Equity\", id: \"equity_book_value\" },\n // { label: \"Market Value of Equity\", id: \"equity_market_value\" },\n // { label: \"Equity Value from DCF\", id: \"equity_value_dcf\" },\n { label: \"Unadjusted LTM EBITDA\", id: \"unadjusted_ltm_ebitda\" },\n { label: \"Adjusted LTM EBITDA\", id: \"adjusted_ltm_ebitda\" },\n { label: \"Appraised Value\", id: \"appraised_value\" },\n { label: \"Implied Ownership\", id: \"implied_ownership\" },\n { label: \"Purchased Price\", id: \"purchased_price\" },\n { label: \"LTM Interest Expense\", id: \"ltm_interest_expense\" },\n { label: \"LTM revenue\", id: \"ltm_revenue\" },\n { label: \"LTM Revenue in Oceana\", id: \"ltm_revenue_oceania\" },\n { label: \"LTM Revenue in Africa\", id: \"ltm_revenue_africa\" },\n { label: \"LTM Revenue in Asia\", id: \"ltm_revenue_asia\" },\n { label: \"LTM Revenue in Europe\", id: \"ltm_revenue_europe\" },\n { label: \"LTM Revenue in North America\", id: \"ltm_revenue_north_america\" },\n { label: \"LTM Revenue in South America\", id: \"ltm_revenue_south_america\" },\n // { label: \"LTM Cashflow from Operations\", id: \"ltm_operation_cashflow\" },\n { label: \"LTM Capital Expenditure\", id: \"ltm_capital_expenditure\" },\n { label: \"Overall ESG Risk Rating\", id: \"esg_rating_value\" },\n { label: \"Is ESG Risk score in IC Memo?\", id: \"is_ESG_in_Memo\" },\n { label: \"Enterprise Value\", id: \"enterprise_value\"},\n { label: \"ESG Environment Score\", id: \"esg_environment_rating_value\"},\n { label: \"ESG Social Score\", id: \"esg_social_rating_value\"},\n { label: \"ESG Governance Score\", id: \"esg_governance_rating_value\"},\n { label: \"Deal Metrics Comments\", id: \"deal_metrics_notes\"}\n ]\n\n for (const key of columnList) {\n field = key.id;\n filterData = fieldList.filter(function (item) { return item.field_name === key.id }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n if (permission === 2 && required) {\n count += 1;\n if(field === \"deal_metrics_notes\") {\n if(dealMetrics[field] && dealMetrics[field].length > 0) {\n fillCount += 1;\n\n if(dealMetrics[field].length < 20) {\n errorList.push('Please ensure the note for “Quarterly Performance Update: Please provide a brief summary of any developments during the quarter” is at least 20 characters')\n }\n } else {\n listVal += key.label + \", \";\n }\n } else if (field === \"esg_environment_rating_value\" || field === \"esg_social_rating_value\" || field === \"esg_governance_rating_value\" || field === \"esg_rating_value\") {\n if(dealMetrics[field] || dealMetrics[field] === 0) {\n fillCount += 1;\n\n if (dealMetrics[field] < 1 || dealMetrics[field] > 5) {\n errorList.push(`Please ensure the ESG values for “${key.label}” is between 1 and 5`)\n }\n\n if (!Number.isInteger(dealMetrics[field])) {\n errorList.push(`Please ensure the ESG values for “${key.label}” is a whole number`)\n }\n } else {\n listVal += key.label + \", \";\n }\n } else {\n if (dealMetrics[field] || dealMetrics[field] === false || dealMetrics[field] === 0) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \";\n }\n }\n }\n\n if (required) {\n totalCount += 1;\n if(field === \"deal_metrics_notes\") {\n if(dealMetrics[field] && dealMetrics[field].length > 0) {\n totalFill += 1;\n } \n } else {\n if (dealMetrics[field] || dealMetrics[field] === false || dealMetrics[field] === 0) {\n totalFill += 1;\n } \n }\n }\n }\n\n if (dealMetrics['occupancy'] || dealMetrics['occupancy'] === 0) {\n if(dealMetrics['occupancy'] < 0 || dealMetrics['occupancy'] > 100) {\n errorList.push('Occupancy (%) for real estate assets should be between 0 and 100 %')\n }\n }\n\n if ((dealMetrics['total_ranking_drawn_debt'] || dealMetrics['total_ranking_drawn_debt'] === false) \n && (dealMetrics['total_drawn_debt_tranche'] || dealMetrics['total_drawn_debt_tranche'] === false)) {\n if(dealMetrics['total_drawn_debt_tranche'] < dealMetrics['total_ranking_drawn_debt']) {\n errorList.push('Please ensure “Total Drawn Debt through to Tor’s Position” is >= “Total Drawn Debt Senior to Tor’s Position”')\n }\n }\n\n if ((dealMetrics['tor_leverage_attachment'] || dealMetrics['tor_leverage_attachment'] === false) \n && (dealMetrics['tor_leverage_detachment'] || dealMetrics['tor_leverage_detachment'] === false)) {\n if(dealMetrics['tor_leverage_attachment'] < dealMetrics['tor_leverage_detachment']) {\n errorList.push('Please ensure “Tor Leverage Multiple Attachment Point” is >= “Tor Leverage Multiple Detachment Point”')\n }\n }\n\n if ((dealMetrics['tor_ltv_attachment'] || dealMetrics['tor_ltv_attachment'] === false) \n && (dealMetrics['tor_ltv_detachment'] || dealMetrics['tor_ltv_detachment'] === false)) {\n if(dealMetrics['tor_ltv_attachment'] < dealMetrics['tor_ltv_detachment']) {\n errorList.push('Please ensure “Tor LTV Multiple Attachment Point” is >= “Tor LTV Multiple Detachment Point”')\n }\n }\n\n if ((dealMetrics[\"total_leverage_multiple\"] || dealMetrics[\"total_leverage_multiple\"] === false || dealMetrics[\"total_leverage_multiple\"] === 0) ||\n (dealMetrics[\"tor_leverage_attachment\"] || dealMetrics[\"tor_leverage_attachment\"] === false || dealMetrics[\"tor_leverage_attachment\"] === 0) ||\n (dealMetrics[\"tor_leverage_detachment\"] || dealMetrics[\"tor_leverage_detachment\"] === false || dealMetrics[\"tor_leverage_detachment\"] === 0)\n ) {\n totalCount += 3;\n\n field = \"total_leverage_multiple\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1;\n if (dealMetrics[\"total_leverage_multiple\"] || dealMetrics[\"total_leverage_multiple\"] === false || dealMetrics[\"total_leverage_multiple\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Total Leverage Multiple, \"\n }\n }\n\n if (dealMetrics[\"total_leverage_multiple\"] || dealMetrics[\"total_leverage_multiple\"] === false || dealMetrics[\"total_leverage_multiple\"] === 0) {\n totalFill += 1;\n }\n\n field = \"tor_leverage_attachment\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"tor_leverage_attachment\"] || dealMetrics[\"tor_leverage_attachment\"] === false || dealMetrics[\"tor_leverage_attachment\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Tor Leverage Attachment, \"\n }\n }\n\n if (dealMetrics[\"tor_leverage_attachment\"] || dealMetrics[\"tor_leverage_attachment\"] === false || dealMetrics[\"tor_leverage_attachment\"] === 0) {\n totalFill += 1;\n }\n\n field = \"tor_leverage_detachment\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"tor_leverage_detachment\"] || dealMetrics[\"tor_leverage_detachment\"] === false || dealMetrics[\"tor_leverage_detachment\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Tor Leverage Detachment, \"\n }\n }\n\n if (dealMetrics[\"tor_leverage_detachment\"] || dealMetrics[\"tor_leverage_detachment\"] === false || dealMetrics[\"tor_leverage_detachment\"] === 0) {\n totalFill += 1;\n }\n\n } else {\n totalCount += 3;\n\n field = \"total_ltv_percentage\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"total_ltv_percentage\"] || dealMetrics[\"total_ltv_percentage\"] === false || dealMetrics[\"total_ltv_percentage\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Total LTV %, \"\n }\n }\n\n if (dealMetrics[\"total_ltv_percentage\"] || dealMetrics[\"total_ltv_percentage\"] === false || dealMetrics[\"total_ltv_percentage\"] === 0) {\n totalFill += 1;\n }\n\n field = \"tor_ltv_detachment\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"tor_ltv_detachment\"] || dealMetrics[\"tor_ltv_detachment\"] === false || dealMetrics[\"tor_ltv_detachment\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Tor LTV Detachment, \"\n }\n }\n\n if (dealMetrics[\"tor_ltv_detachment\"] || dealMetrics[\"tor_ltv_detachment\"] === false || dealMetrics[\"tor_ltv_detachment\"] === 0) {\n totalFill += 1;\n }\n\n field = \"tor_ltv_attachment\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"tor_ltv_attachment\"] || dealMetrics[\"tor_ltv_attachment\"] === false || dealMetrics[\"tor_ltv_attachment\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Tor LTV Attachment, \"\n }\n }\n\n if (dealMetrics[\"tor_ltv_attachment\"] || dealMetrics[\"tor_ltv_attachment\"] === false || dealMetrics[\"tor_ltv_attachment\"] === 0) {\n totalFill += 1;\n }\n\n }\n\n if (listVal !== \"\") {\n listVal = \"Credit Metrics: \" + listVal.substring(0, listVal.length - 2);\n errorList.push(listVal);\n }\n\n listVal = \"\";\n\n columnList = [\n { label: \"Unlevered IRR %\", id: \"unlevered_irr_percentage\" },\n // { label: \"Expected Return from Equity\", id: \"expected_return_percentage\" },\n { label: \"Levered IRR %\", id: \"levered_irr_percentage\" },\n { label: \"Unlevered MOIC\", id: \"unlevered_moic\" },\n { label: \"Levered MOIC\", id: \"levered_moic\" },\n { label: \"Probability of Scenario\", id: \"return_scenario_probability\" }\n ]\n\n listVal = \"\";\n\n if (dealReturnList.length > 0) {\n for (const key of columnList) {\n field = key.id;\n filterData = fieldList.filter(function (item) { return item.field_name === key.id }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n if (permission === 2 && required) {\n count += 1;\n if (dealReturnList[0][field]) {\n fillCount += 1;\n } else {\n listVal += key.label + \" cannot be 0 or empty, \"\n }\n }\n\n if (required) {\n totalCount += 1;\n if (dealReturnList[0][field]) {\n totalFill += 1;\n }\n }\n }\n } else {\n count += 6;\n totalCount += 6;\n for (const key of columnList) {\n listVal += key.label + \", \"\n }\n }\n\n if (listVal !== \"\") {\n listVal = \"Deal Returns (Tor Base Case): \" + listVal.substring(0, listVal.length - 2);\n errorList.push(listVal);\n }\n\n listVal = \"\";\n\n return { percent: fillCount / count * 100, totalPercent: totalFill / totalCount * 100, errorList: errorList };\n }\n\n getQuarterlyProgress() {\n const { dealMetrics, fieldList } = this.state;\n var field, filterData, permission, required;\n var fillCount = 0;\n var totalCount = 0;\n var count = 0;\n var totalFill = 0;\n\n var listVal = \"\";\n var errorList = [];\n\n var columnList = [\n { label: \"Total Value of All Prior Ranking Drawn Debt\", id: \"total_ranking_drawn_debt\" },\n { label: \"Total Drawn Debt through Tranche\", id: \"total_drawn_debt_tranche\" },\n { label: \"As Of Date\", id: \"as_of_date\" },\n { label: \"Currency\", id: \"currency\" },\n { label: \"Rate\", id: \"rate\" },\n { label: \"Has the borrower missed any payments?\", id: \"has_borrower_missed_payment\" },\n { label: \"Is the borrower in breach of any covenants?\", id: \"has_borrower_breach_covenant\" },\n { label: \"Total Net Debt\", id: \"total_debt_entry\" },\n { label: \"Cash Balance\", id: \"cash_balance_entry\" },\n // { label: \"Book Value of Equity\", id: \"equity_book_value\" },\n // { label: \"Market Value of Equity\", id: \"equity_market_value\" },\n // { label: \"Equity Value from DCF\", id: \"equity_value_dcf\" },\n { label: \"Unadjusted LTM EBITDA\", id: \"unadjusted_ltm_ebitda\" },\n { label: \"Adjusted LTM EBITDA\", id: \"adjusted_ltm_ebitda\" },\n { label: \"Appraised Value\", id: \"appraised_value\" },\n { label: \"Implied Ownership\", id: \"implied_ownership\" },\n { label: \"Purchased Price\", id: \"purchased_price\" },\n { label: \"LTM Interest Expense\", id: \"ltm_interest_expense\" },\n { label: \"LTM revenue\", id: \"ltm_revenue\" },\n { label: \"LTM Revenue in Oceana\", id: \"ltm_revenue_oceania\" },\n { label: \"LTM Revenue in Africa\", id: \"ltm_revenue_africa\" },\n { label: \"LTM Revenue in Asia\", id: \"ltm_revenue_asia\" },\n { label: \"LTM Revenue in Europe\", id: \"ltm_revenue_europe\" },\n { label: \"LTM Revenue in North America\", id: \"ltm_revenue_north_america\" },\n { label: \"LTM Revenue in South America\", id: \"ltm_revenue_south_america\" },\n // { label: \"LTM Cashflow from Operations\", id: \"ltm_operation_cashflow\" },\n { label: \"LTM Capital Expenditure\", id: \"ltm_capital_expenditure\" },\n { label: \"Overall ESG Risk Rating\", id: \"esg_rating_value\" },\n { label: \"Enterprise Value\", id: \"enterprise_value\"},\n { label: \"ESG Environment Score\", id: \"esg_environment_rating_value\"},\n { label: \"ESG Social Score\", id: \"esg_social_rating_value\"},\n { label: \"ESG Governance Score\", id: \"esg_governance_rating_value\"},\n { label: \"Deal Metrics Comments\", id: \"deal_metrics_notes\"}\n ]\n\n if (dealMetrics['occupancy'] || dealMetrics['occupancy'] === 0) {\n if(dealMetrics['occupancy'] < 0 || dealMetrics['occupancy'] > 100) {\n errorList.push('Occupancy (%) for real estate assets should be between 0 and 100 %')\n }\n }\n\n if ((dealMetrics['total_ranking_drawn_debt'] || dealMetrics['total_ranking_drawn_debt'] === false) \n && (dealMetrics['total_drawn_debt_tranche'] || dealMetrics['total_drawn_debt_tranche'] === false)) {\n if(dealMetrics['total_drawn_debt_tranche'] < dealMetrics['total_ranking_drawn_debt']) {\n errorList.push('Please ensure “Total Drawn Debt through to Tor’s Position” is >= “Total Drawn Debt Senior to Tor’s Position”')\n }\n }\n\n if ((dealMetrics['tor_leverage_attachment'] || dealMetrics['tor_leverage_attachment'] === false) \n && (dealMetrics['tor_leverage_detachment'] || dealMetrics['tor_leverage_detachment'] === false)) {\n if(dealMetrics['tor_leverage_attachment'] < dealMetrics['tor_leverage_detachment']) {\n errorList.push('Please ensure “Tor Leverage Multiple Attachment Point” is >= “Tor Leverage Multiple Detachment Point”')\n }\n }\n\n if ((dealMetrics['tor_ltv_attachment'] || dealMetrics['tor_ltv_attachment'] === false) \n && (dealMetrics['tor_ltv_detachment'] || dealMetrics['tor_ltv_detachment'] === false)) {\n if(dealMetrics['tor_ltv_attachment'] < dealMetrics['tor_ltv_detachment']) {\n errorList.push('Please ensure “Tor LTV Multiple Attachment Point” is >= “Tor LTV Multiple Detachment Point”')\n }\n }\n\n for (const key of columnList) {\n field = key.id;\n filterData = fieldList.filter(function (item) { return item.field_name === key.id }).map(item => { return item });\n permission = filterData[0]?.permission;\n required = true;\n\n if (permission === 2 && required) {\n count += 1;\n if(field === \"deal_metrics_notes\") {\n if(dealMetrics[field] && dealMetrics[field].length > 0) {\n fillCount += 1;\n\n if(dealMetrics[field].length < 20) {\n errorList.push('Please ensure the note for “Quarterly Performance Update: Please provide a brief summary of any developments during the quarter” is at least 20 characters')\n }\n } else {\n listVal += key.label + \", \";\n }\n } else if (field === \"esg_environment_rating_value\" || field === \"esg_social_rating_value\" || field === \"esg_governance_rating_value\" || field === \"esg_rating_value\") {\n if(dealMetrics[field]) {\n fillCount += 1;\n\n if (dealMetrics[field] < 1 || dealMetrics[field] > 5) {\n errorList.push(`Please ensure the ESG values for “${key.label}” is between 1 and 5`)\n }\n if (!Number.isInteger(dealMetrics[field])) {\n errorList.push(`Please ensure the ESG values for “${key.label}” is a whole number`)\n }\n } else {\n listVal += key.label + \", \";\n }\n } else {\n if (dealMetrics[field] || dealMetrics[field] === false || dealMetrics[field] === 0) {\n fillCount += 1;\n } else {\n listVal += key.label + \", \";\n }\n }\n }\n\n if (required) {\n totalCount += 1;\n if(field === \"deal_metrics_notes\") {\n if(dealMetrics[field] && dealMetrics[field].length > 0) {\n totalFill += 1;\n }\n } else {\n if (dealMetrics[field] || dealMetrics[field] === false || dealMetrics[field] === 0) {\n totalFill += 1;\n }\n }\n }\n }\n\n if ((dealMetrics[\"total_leverage_multiple\"] || dealMetrics[\"total_leverage_multiple\"] === false || dealMetrics[\"total_leverage_multiple\"] === 0) ||\n (dealMetrics[\"tor_leverage_attachment\"] || dealMetrics[\"tor_leverage_attachment\"] === false || dealMetrics[\"tor_leverage_attachment\"] === 0) ||\n (dealMetrics[\"tor_leverage_detachment\"] || dealMetrics[\"tor_leverage_detachment\"] === false || dealMetrics[\"tor_leverage_detachment\"] === 0)\n ) {\n totalCount += 3;\n\n field = \"total_leverage_multiple\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1;\n if (dealMetrics[\"total_leverage_multiple\"] || dealMetrics[\"total_leverage_multiple\"] === false || dealMetrics[\"total_leverage_multiple\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Total Leverage Multiple, \"\n }\n }\n\n if (dealMetrics[\"total_leverage_multiple\"] || dealMetrics[\"total_leverage_multiple\"] === false || dealMetrics[\"total_leverage_multiple\"] === 0) {\n totalFill += 1;\n }\n\n field = \"tor_leverage_attachment\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"tor_leverage_attachment\"] || dealMetrics[\"tor_leverage_attachment\"] === false || dealMetrics[\"tor_leverage_attachment\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Tor Leverage Attachment, \"\n }\n }\n\n if (dealMetrics[\"tor_leverage_attachment\"] || dealMetrics[\"tor_leverage_attachment\"] === false || dealMetrics[\"tor_leverage_attachment\"] === 0) {\n totalFill += 1;\n }\n\n field = \"tor_leverage_detachment\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"tor_leverage_detachment\"] || dealMetrics[\"tor_leverage_detachment\"] === false || dealMetrics[\"tor_leverage_detachment\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Tor Leverage Detachment, \"\n }\n }\n\n if (dealMetrics[\"tor_leverage_detachment\"] || dealMetrics[\"tor_leverage_detachment\"] === false || dealMetrics[\"tor_leverage_detachment\"] === 0) {\n totalFill += 1;\n }\n\n } else {\n totalCount += 3;\n\n field = \"total_ltv_percentage\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"total_ltv_percentage\"] || dealMetrics[\"total_ltv_percentage\"] === false || dealMetrics[\"total_ltv_percentage\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Total LTV %, \"\n }\n }\n\n if (dealMetrics[\"total_ltv_percentage\"] || dealMetrics[\"total_ltv_percentage\"] === false || dealMetrics[\"total_ltv_percentage\"] === 0) {\n totalFill += 1;\n }\n\n field = \"tor_ltv_detachment\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"tor_ltv_detachment\"] || dealMetrics[\"tor_ltv_detachment\"] === false || dealMetrics[\"tor_ltv_detachment\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Tor LTV Detachment, \"\n }\n }\n\n if (dealMetrics[\"tor_ltv_detachment\"] || dealMetrics[\"tor_ltv_detachment\"] === false || dealMetrics[\"tor_ltv_detachment\"] === 0) {\n totalFill += 1;\n }\n\n field = \"tor_ltv_attachment\";\n filterData = fieldList.filter(function (item) { return item.field_name === field }).map(item => { return item });\n permission = filterData[0]?.permission;\n\n if (permission === 2) {\n count += 1\n if (dealMetrics[\"tor_ltv_attachment\"] || dealMetrics[\"tor_ltv_attachment\"] === false || dealMetrics[\"tor_ltv_attachment\"] === 0) {\n fillCount += 1;\n } else {\n listVal += \"Tor LTV Attachment, \"\n }\n }\n\n if (dealMetrics[\"tor_ltv_attachment\"] || dealMetrics[\"tor_ltv_attachment\"] === false || dealMetrics[\"tor_ltv_attachment\"] === 0) {\n totalFill += 1;\n }\n\n }\n\n if (listVal !== \"\") {\n listVal = \"Credit Metrics: \" + listVal.substring(0, listVal.length - 2);\n errorList.push(listVal);\n }\n\n return { percent: fillCount / count * 100, totalPercent: totalFill / totalCount * 100, errorList: errorList };\n }\n\n closeMessage() {\n this.setState({ showMessage: false, messageHeader: \"Following Fields have not been filled in: \" });\n }\n\n closeErrorMessage() {\n this.setState({ showErrorMessage: false, errorList: [] });\n }\n\n approveDB = async () => {\n var progress;\n\n if(this.state.quarter === \"Underwriting\"){\n progress = this.getProgress();\n } else if (this.state.quarter !== null) {\n progress = this.getQuarterlyProgress();\n }\n\n console.log(\"Progress: \", progress);\n\n if (progress.totalPercent !== 100 || progress.errorList.length > 0) {\n if(progress.percent !== 100 || progress.errorList.length > 0) {\n this.setState({ showMessage: true, errorList: progress.errorList });\n } else {\n await this.saveDB();\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data has been submitted. Risk to fill in remaining fields for submission.'\n })\n dealBALService.generateEmail({deal: this.state.dealName, quarter: this.state.quarter, allFilled: false});\n }\n } else {\n const {dealAttribute, dealMetrics, dealReturnList, dealRisk, trancheAttributeList} = this.state;\n if(this.state.isDataChanged === true || dealAttribute.status === 'Draft' || dealMetrics.status === 'Draft' || dealRisk.status === 'Draft'\n || JSON.stringify(trancheAttributeList).includes('Draft') || JSON.stringify(dealReturnList).includes('Draft')) \n {\n await this.saveDB(false);\n\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data has been submitted for approval'\n });\n\n dealBALService.generateEmail({deal: this.state.dealName, quarter: this.state.quarter})\n } else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'No changes for submission'\n });\n }\n \n \n }\n }\n\n round(value, decimals) {\n return Number(Math.round(value +'e'+ decimals) +'e-'+ decimals).toFixed(decimals);\n }\n\n saveDB = async (isDraft = true) => {\n try {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data save in progress !!'\n });\n\n this.closeMessage();\n\n var i, key, errorList = [];\n var { dealAttribute, dealAttributeDb, dealMetrics, dealMetricsDb, dealRisk, dealRiskDb, projectName, fieldList } = this.state;\n const {analyst1Name, analyst1Weight, analyst2Name, analyst2Weight, analyst3Name, analyst3Weight, analyst4Name, analyst4Weight} = this.state;\n\n var filterData = fieldList.filter(function (item) { return item.field_name === \"analyst1Weight\" }).map(item => { return item });\n var permission = filterData[0]?.permission;\n\n if(permission === 2) {\n var sum = parseInt(Number.isNaN(analyst1Weight) ? 0 : analyst1Weight ?? 0) + parseInt(Number.isNaN(analyst2Weight) ? 0 : analyst2Weight ?? 0) + parseInt(Number.isNaN(analyst3Weight) ? 0 : analyst3Weight ?? 0) + parseInt(Number.isNaN(analyst4Weight) ? 0 : analyst4Weight ?? 0);\n if(((sum <= 99.9 || sum > 100) && sum !== 0) || Number.isNaN(sum)) {\n errorList.push(\"Analyst Weights should sum to 100%\");\n }\n\n if(((analyst1Name ?? '111') === (analyst2Name ?? '222')) || ((analyst1Name ?? '111') === (analyst3Name ?? '333')) || ((analyst1Name ?? '111') === (analyst4Name ?? '444'))\n || ((analyst2Name ?? '222') === (analyst3Name ?? '333')) || ((analyst2Name ?? '222') === (analyst4Name ?? '444')) || ((analyst3Name ?? '333') === (analyst4Name ?? '444'))) \n {\n errorList.push(\"Please enter different analysts for position 1, 2, 3, 4\");\n } \n }\n\n if(errorList.length === 0){\n var body = {};\n body['project'] = projectName;\n\n\n await dealBALService.updateDeal(body, dealAttribute.deal_id).then(data => {\n\n }, error => {\n errorList.push(error);\n });\n }\n\n\n if(errorList.length === 0){\n var analystDeal = {};\n\n analystDeal['analystDate'] = this.state.analystDate;\n analystDeal['analyst1Name'] = this.state.analyst1Name;\n analystDeal['analyst1Weight'] = this.state.analyst1Weight;\n analystDeal['analyst2Name'] = this.state.analyst2Name;\n analystDeal['analyst2Weight'] = this.state.analyst2Weight;\n analystDeal['analyst3Name'] = this.state.analyst3Name;\n analystDeal['analyst3Weight'] = this.state.analyst3Weight;\n analystDeal['analyst4Name'] = this.state.analyst4Name;\n analystDeal['analyst4Weight'] = this.state.analyst4Weight;\n\n await dealBALService.insertDealAnalyst(analystDeal, dealAttribute.deal_id).then(data => {\n \n }, error => {\n errorList.push(error);\n });\n }\n\n if(errorList.length === 0){\n if(JSON.stringify(dealAttribute) !== JSON.stringify(dealAttributeDb) || (dealAttribute.status === 'Draft' && isDraft === false)) {\n for (key in dealAttribute) {\n if (dealAttribute[key] === null || dealAttribute[key] === 0 || dealAttribute[key] === \"\" || Number.isNaN(dealAttribute[key])) {\n delete dealAttribute[key];\n }\n }\n\n if(isDraft) {\n dealAttribute.status = 'Draft';\n } else {\n dealAttribute.status = 'Submitted';\n }\n\n await dealBALService.insertDealAttribute(dealAttribute).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n this.setState({\n dealAttribute: data, \n dealAttributeDb: data\n });\n }, error => {\n errorList.push(error);\n });\n }\n }\n\n\n var {trancheAttributeList, trancheAttributeListDb} = this.state;\n\n if(errorList.length === 0){\n if(JSON.stringify(trancheAttributeList) !== JSON.stringify(trancheAttributeListDb) || (JSON.stringify(trancheAttributeList).includes('Draft') && isDraft === false)) {\n for (i = 0; i < trancheAttributeList.length; i++) {\n if(JSON.stringify(trancheAttributeList[i]) !== JSON.stringify(trancheAttributeListDb[i]) || (trancheAttributeList[i].status === 'Draft' && isDraft === false)){\n for (key in trancheAttributeList[i]) {\n if (trancheAttributeList[i][key] === null || trancheAttributeList[i][key] === 0 || trancheAttributeList[i][key] === \"\") {\n delete trancheAttributeList[i][key];\n }\n }\n trancheAttributeList[i]['isChanged'] = true;\n\n if(isDraft === true) {\n trancheAttributeList[i].status = 'Draft';\n } else {\n trancheAttributeList[i].status = 'Submitted';\n }\n } else {\n trancheAttributeList[i]['isChanged'] = false;\n }\n }\n \n await dealBALService.insertTrancheAttribute(trancheAttributeList).then(data => {\n data = data.data;\n for (var i = 0; i < data.length; i++) {\n data[i]['deal_id'] = data[i]['deal']\n data[i]['investment_code'] = data[i]['investmentCode']\n delete (data[i]['deal']);\n delete (data[i]['investmentCode']);\n }\n this.setState({\n trancheAttributeList: data,\n trancheAttributeListDb: data,\n trancheAttribute: {\n deal_id: null,\n investment_code: null,\n asset_type: null,\n credit_ranking: null,\n holdco_vs_opco: null,\n has_defaulted: null,\n default_date: null,\n makewhole: null,\n amortization: null,\n is_non_recourse: null\n }\n }); \n }, error => {\n errorList.push(error);\n });\n }\n } \n\n\n if(errorList.length === 0){\n if(JSON.stringify(dealMetrics) !== JSON.stringify(dealMetricsDb) || (dealMetrics.status === 'Draft' && isDraft === false)) {\n for (key in dealMetrics) {\n if (dealMetrics[key] === null || dealMetrics[key] === \"\" || Number.isNaN(dealMetrics[key])) {\n delete dealMetrics[key];\n }\n }\n\n if(isDraft) {\n dealMetrics.status = 'Draft';\n } else {\n dealMetrics.status = 'Submitted';\n }\n \n await dealBALService.insertDealMetrics(dealMetrics).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n this.setState({\n dealMetrics: data,\n dealMetricsDb: data\n });\n }, error => {\n errorList.push(error);\n });\n }\n }\n \n\n\n var { dealReturnList, dealReturnListDb } = this.state;\n\n if(errorList.length === 0){\n if(JSON.stringify(dealReturnList) !== JSON.stringify(dealReturnListDb) || (JSON.stringify(dealReturnList).includes('Draft') && isDraft === false)) {\n for (i = 0; i < dealReturnList.length; i++) {\n if(JSON.stringify(dealReturnList[i]) !== JSON.stringify(dealReturnListDb[i]) || (dealReturnList[i].status === 'Draft' && isDraft === false)){\n for (key in dealReturnList[i]) {\n if (dealReturnList[i][key] === null || dealReturnList[i][key] === \"\" || Number.isNaN(dealReturnList[i][key])) {\n delete dealReturnList[i][key];\n }\n }\n dealReturnList[i]['isChanged'] = true;\n\n if(isDraft) {\n dealReturnList[i].status = 'Draft';\n } else {\n dealReturnList[i].status = 'Submitted';\n }\n } else {\n dealReturnList[i]['isChanged'] = false;\n }\n }\n \n await dealBALService.insertDealReturns(dealReturnList).then(data => {\n data = data.data;\n for (var i = 0; i < data.length; i++) {\n data[i]['deal_id'] = data[i]['deal']\n data[i]['return_scenario'] = data[i]['returnScenario']\n delete (data[i]['deal']);\n delete (data[i]['returnScenario']);\n }\n this.setState({\n dealReturnList: data,\n dealReturnListDb: data\n });\n }, error => {\n errorList.push(error);\n }); \n }\n }\n\n if(errorList.length === 0){\n if(JSON.stringify(dealRisk) !== JSON.stringify(dealRiskDb) || (dealRisk.status === 'Draft' && isDraft === false)) {\n for (key in dealRisk) {\n if (dealRisk[key] === null || dealRisk[key] === 0 || dealRisk[key] === \"\") {\n delete dealRisk[key];\n }\n }\n\n if(isDraft) {\n dealRisk.status = 'Draft';\n } else {\n dealRisk.status = 'Submitted';\n }\n \n await dealBALService.insertDealRisks(dealRisk).then(data => {\n data['deal_id'] = data['deal'];\n delete (data['deal']);\n this.setState({\n dealRisk: data,\n dealRiskDb: data\n });\n }, error => {\n errorList.push(error);\n });\n }\n }\n \n\n if(errorList.length === 0){\n dealBALService.getRowData().then(data => {\n this.setState({ gridData: data, dealList: data });\n }, error => { console.log(error); });\n\n // dealBALService.getAllDeals().then(data => {\n // this.setState({ dealList: data });\n // }, error => { console.log(error); });\n\n this.setState({\n isDataChanged: false,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data has been saved successfully'\n });\n } else {\n console.log(errorList);\n this.setState({\n showMessage: true, \n errorList: errorList, \n messageHeader : \"Error while saving the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data could not be saved, please contact support!'\n });\n }\n } catch (error) {\n console.log(error);\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data could not be saved, please retry!'\n });\n }\n };\n\n setTabIndex = param => e => {\n this.setState({ tabindex: param });\n };\n\n componentDidMount() {\n this.mounted = true;\n }\n\n handleChange(e) {\n const { name, value } = e.target;\n\n this.setState({ isDataChanged: true });\n\n if (name === \"projectName\" || name === \"analyst1Weight\" || name === \"analyst2Weight\" || name === \"analyst3Weight\" || name === \"analyst4Weight\") {\n if(Number.isNaN(value)){\n this.setState({\n [name]: null\n })\n } else {\n this.setState({\n [name]: value\n });\n }\n } else {\n this.setState({\n dealAttribute: {\n ...this.state.dealAttribute,\n [name]: value\n }\n });\n }\n }\n\n handleChangeNumber(name, value) {\n this.setState({ isDataChanged: true });\n\n if (name === \"projectName\" || name === \"analyst1Weight\" || name === \"analyst2Weight\" || name === \"analyst3Weight\" || name === \"analyst4Weight\" || name === \"analystDate\") {\n this.setState({\n [name]: value\n });\n } else {\n this.setState({\n dealAttribute: {\n ...this.state.dealAttribute,\n [name]: value\n }\n });\n }\n }\n\n handleChangeMetrics(e) {\n this.setState({ isDataChanged: true });\n\n const { name, value } = e.target;\n // if(name === \"rate\" && [\"AUD\", \"NZD\", \"EUR\", \"GBP\"].includes(this.state.dealMetrics?.currency)) {\n // this.setState({\n // dealMetrics: {\n // ...this.state.dealMetrics,\n // [name]: 1/ value,\n // dispRate: value\n // }\n // });\n // } else {\n this.setState({\n dealMetrics: {\n ...this.state.dealMetrics,\n [name]: value\n }\n });\n // }\n }\n\n handleRowSelected(e) {\n const { value, data, action } = e.target;\n const name = 'deal_id';\n\n if(action === \"Show Changes\") {\n this.setState({ redirectTo:{pathname : '/dealchanges', state : {deal : data.deal, dealId : value} } });\n } \n else { \n this.setState({ isOpenGrid: false, tabindex: data.status === \"Complete\" ? 4 : 1 });\n this.handleDropDownChangeDeal(e, { name, value });\n }\n }\n\n handleChangeDate(name, date) {\n this.setState({ isDataChanged: true });\n this.setState({ dealAttribute: { ...this.state.dealAttribute, [name]: date } });\n };\n\n handleChangeCurrency(name, currency, rate) {\n // if([\"AUD\", \"NZD\", \"EUR\", \"GBP\"].includes(currency)) {\n // this.setState({ dealMetrics: { ...this.state.dealMetrics, [name]: currency, \"rate\": rate, dispRate: this.roundToTwo(1/ rate) } });\n // } else {\n this.setState({ dealMetrics: { ...this.state.dealMetrics, [name]: currency, \"rate\": rate, dispRate: rate } });\n // }\n \n }\n\n handleChangeDateMetrics(name, date) {\n this.setState({ isDataChanged: true });\n this.setState({ dealMetrics: { ...this.state.dealMetrics, [name]: date } });\n };\n\n handleChangeDateRisk(name, date) {\n this.setState({ isDataChanged: true });\n this.setState({ dealRisk: { ...this.state.dealRisk, [name]: date } });\n };\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ isDataChanged: true });\n this.setState({ dealAttribute: { ...this.state.dealAttribute, [name]: value } });\n if (name === \"analyst1Name\" || name === \"analyst2Name\" || name === \"analyst3Name\" || name === \"analyst4Name\") {\n this.setState({ [name]: value });\n } else if (name === \"gics_sector_id\" && (value === \"\" || value === null)) {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, gics_sector_id: null, gics_industry_group_id: null, gics_industry_id: null, gics_sub_industry_id: null } });\n } else if (name === \"gics_industry_group_id\" && (value === \"\" || value === null)) {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, gics_industry_group_id: null, gics_industry_id: null, gics_sub_industry_id: null } });\n } else if (name === \"gics_industry_id\" && (value === \"\" || value === null)) {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, gics_industry_id: null, gics_sub_industry_id: null } });\n } else if (name === \"gics_sub_industry_id\" && (value === \"\" || value === null)) {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, gics_sub_industry_id: null, gics_nace_id: null } });\n } else if (name === \"gics_nace_id\" && (value === \"\" || value === null)) {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, gics_nace_id: null, eligible_climate_mitigation_activity: null, eligible_climate_adaptation_activity: null } });\n } else if (name === \"bics_sector_id\" && (value === \"\" || value === null)) {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, bics_sector_id: null, bics_industry_group_id: null, bics_industry_id: null} });\n } else if (name === \"bics_industry_group_id\" && (value === \"\" || value === null)) {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, bics_industry_group_id: null, bics_industry_id: null } });\n } else if (name === \"bics_industry_id\" && (value === \"\" || value === null)) {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, bics_industry_id: null, bics_sub_industry_id: null } });\n }\n }\n\n handleDropDownChangeRisk(e, { name, value }) {\n this.setState({ isDataChanged: true });\n this.setState({ dealRisk: { ...this.state.dealRisk, [name]: value } });\n }\n\n handleChangeRisk(e) {\n const { name, value } = e.target;\n\n this.setState({ isDataChanged: true });\n this.setState({\n dealRisk: {\n ...this.state.dealRisk,\n [name]: value\n }\n });\n }\n\n handleClickBbg = async(e) => {\n if(this.state.bbg_quarter === null) {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Please select FY Quarter before loading data'\n });\n }\n\n await dealBALService.getBbgMetrics(this.state.dealMetrics.deal_id, this.state.bbg_quarter).then(data => {\n console.log(data[0]);\n this.setState({\n dealMetrics: {\n ...this.state.dealMetrics,\n ...data[0]\n }\n }, () => {\n console.log(this.state.dealMetrics)\n })\n })\n }\n\n roundToTwo(num) {\n return +(Math.round(num + \"e+2\") + \"e-2\"); \n }\n\n handleClickPriorMetrics = async(e) => {\n await dealBALService.getPriorDealMetrics(this.state.dealMetrics.deal_id, this.state.dealMetrics.quarter).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n\n // let values = [\n // 'total_debt_entry'\n // ,'distressed_market_value'\n // ,'cash_balance_entry'\n // ,'gross_debt'\n // ,'equity_book_value'\n // ,'equity_market_value'\n // ,'equity_value_dcf'\n // ,'unadjusted_ltm_ebitda'\n // ,'adjusted_ltm_ebitda'\n // ,'appraised_value'\n // ,'purchased_price'\n // ,'ltm_interest_expense'\n // ,'ltm_revenue'\n // ,'ltm_revenue_oceania'\n // ,'ltm_revenue_africa'\n // ,'ltm_revenue_asia'\n // ,'ltm_revenue_europe'\n // ,'ltm_revenue_north_america'\n // ,'ltm_revenue_south_america'\n // ,'ltm_operation_cashflow'\n // ,'ltm_capital_expenditure'\n // ,'total_ranking_drawn_debt'\n // ,'total_drawn_debt_tranche'\n // ,'enterprise_value'\n // ];\n\n // const rate = this.state.dealMetrics?.rate;\n\n // if(data['currency'] === \"USD\" && this.state.dealMetrics?.currency !== \"USD\") {\n // for(let i = 0; i < values.length; i++) {\n // data[values[i]] = +(Math.round(data[values[i]] * rate));\n // }\n // }\n\n // data['currency'] = this.state.dealMetrics?.currency;\n // data['rate'] = this.state.dealMetrics?.rate;\n data['dispRate'] = data['rate'];\n \n this.setState({\n dealMetrics: data,\n dealMetricsDb: data\n });\n }, error => {\n this.setState({\n dealMetrics: {\n ...this.state.dealMetrics,\n is_underwriting: true,\n quarter: \"Underwriting\",\n\n senior_debt: null,\n secured_debt: null,\n parri_passu_debt: null,\n senior_debt_tranche: null,\n total_debt_entry: null,\n distressed_market_value: null,\n cash_balance_entry: null,\n gross_debt: null,\n equity_book_value: null,\n equity_market_value: null,\n equity_value_dcf: null,\n unadjusted_ltm_ebitda: null,\n adjusted_ltm_ebitda: null,\n appraised_value: null,\n implied_ownership: null,\n purchased_price: null,\n ltm_interest_expense: null,\n ltm_revenue: null,\n ltm_revenue_oceania: null,\n ltm_revenue_africa: null,\n ltm_revenue_asia: null,\n ltm_revenue_europe: null,\n ltm_revenue_north_america: null,\n ltm_revenue_south_america: null,\n ltm_operation_cashflow: null,\n ltm_capital_expenditure: null,\n total_leverage_multiple: null,\n total_ltv_percentage: null,\n tor_leverage_attachment: null,\n tor_leverage_detachment: null,\n tor_ltv_detachment: null,\n tor_ltv_attachment: null,\n esg_rating_value: null,\n is_ESG_in_Memo: null,\n\n senior_debt_comment: null,\n secured_debt_comment: null,\n parri_passu_debt_comment: null,\n senior_debt_tranche_comment: null,\n total_debt_entry_comment: null,\n distressed_market_value_comment: null,\n cash_balance_entry_comment: null,\n gross_debt_comment: null,\n equity_book_value_comment: null,\n equity_market_value_comment: null,\n equity_value_dcf_comment: null,\n unadjusted_ltm_ebitda_comment: null,\n adjusted_ltm_ebitda_comment: null,\n appraised_value_comment: null,\n implied_ownership_comment: null,\n purchased_price_comment: null,\n ltm_interest_expense_comment: null,\n ltm_revenue_comment: null,\n ltm_revenue_oceania_comment: null,\n ltm_revenue_africa_comment: null,\n ltm_revenue_asia_comment: null,\n ltm_revenue_europe_comment: null,\n ltm_revenue_north_america_comment: null,\n ltm_revenue_south_america_comment: null,\n ltm_operation_cashflow_comment: null,\n ltm_capital_expenditure_comment: null,\n total_leverage_multiple_comment: null,\n total_ltv_percentage_comment: null,\n tor_leverage_attachment_comment: null,\n tor_leverage_detachment_comment: null,\n tor_ltv_detachment_comment: null,\n tor_ltv_attachment_comment: null,\n esg_rating_comment: null,\n is_ESG_in_Memo_comment: null,\n\n total_ranking_drawn_debt: null,\n total_drawn_debt_tranche: null,\n has_borrower_missed_payment: null,\n has_borrower_breach_covenant: null,\n enterprise_value: null,\n debt_equity_ratio: null,\n esg_environment_rating_value: null,\n esg_social_rating_value: null,\n esg_governance_rating_value: null,\n\n total_ranking_drawn_debt_comment: null,\n total_drawn_debt_tranche_comment: null,\n has_borrower_missed_payment_comment: null,\n has_borrower_breach_covenant_comment: null,\n enterprise_value_comment: null,\n debt_equity_ratio_comment: null,\n esg_environment_rating_comment: null,\n esg_social_rating_comment: null,\n esg_governance_rating_comment: null,\n\n as_of_date: null,\n as_of_date_comment: null,\n\n deal_metrics_notes: null\n }\n });\n console.log(error);\n });\n }\n\n handleDropDownChangeDeal = async (e, { name, value }) => {\n this.setState({isDealChange: true, bbg_quarter: null});\n this.setState({ dealAttribute: { ...this.state.dealAttribute, [name]: value } });\n this.setState({ dealMetrics: { ...this.state.dealMetrics, [name]: value } });\n this.setState({ dealRisk: { ...this.state.dealRisk, [name]: value } });\n var dealReturnList = [];\n\n var project = this.state.dealList.filter(function (item) { return item.dealID === value }).map(item => { return item.projectName });\n if (project.length > 0) {\n this.setState({ projectName: project[0] });\n }\n\n var dealName = this.state.dealList.filter(function (item) { return item.dealID === value }).map(item => { return item.deal });\n if (project.length > 0) {\n this.setState({ dealName: dealName[0] });\n }\n\n await dealBALService.getAllAnalysts(value).then(data => {\n if (data.length >= 4) {\n this.setState({ analyst4Name: data[3].analyst.id, analyst4Weight: data[3].dealWeighting });\n } else {\n this.setState({ analyst4Name: null, analyst4Weight: null });\n }\n\n if (data.length >= 3) {\n this.setState({ analyst3Name: data[2].analyst.id, analyst3Weight: data[2].dealWeighting });\n } else {\n this.setState({ analyst3Name: null, analyst3Weight: null });\n }\n\n if (data.length >= 2) {\n this.setState({ analyst2Name: data[1].analyst.id, analyst2Weight: data[1].dealWeighting })\n } else {\n this.setState({ analyst2Name: null, analyst2Weight: null });\n }\n\n if (data.length >= 1) {\n this.setState({ analyst1Name: data[0].analyst.id, analyst1Weight: data[0].dealWeighting, analystDate: data[0].fromDate })\n } else {\n this.setState({ analyst1Name: null, analyst1Weight: null });\n }\n }, error => {\n console.log(error);\n });\n\n for (var i = 0; i < 3; i++) {\n var dealReturn = {\n deal_id: null,\n is_underwriting: true,\n quarter: \"Underwriting\",\n return_scenario: null,\n\n unlevered_irr_percentage: null,\n expected_return_percentage: null,\n levered_irr_percentage: null,\n unlevered_moic: null,\n levered_moic: null,\n return_scenario_probability: null,\n\n unlevered_irr_percentage_comment: null,\n expected_return_percentage_comment: null,\n levered_irr_percentage_comment: null,\n unlevered_moic_comment: null,\n levered_moic_comment: null,\n return_scenario_probability_comment: null\n };\n\n dealReturn.deal_id = value;\n\n if (i === 0) {\n dealReturn.return_scenario = \"Tor Base Case\";\n } else if (i === 1) {\n dealReturn.return_scenario = \"Tor Downside Case\";\n } else {\n dealReturn.return_scenario = \"Management Base Case\";\n }\n\n dealReturnList.push(dealReturn);\n }\n\n this.setState({ dealReturnList: dealReturnList });\n\n\n await dealBALService.getDealAttribute(value).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n this.setState({\n dealAttribute: data, \n dealAttributeDb: data\n });\n }, error => {\n this.setState({\n dealAttribute: {\n ...this.state.dealAttribute,\n country_of_risk_id: null,\n gics_sector_id: null,\n gics_industry_group_id: null,\n gics_industry_id: null,\n gics_sub_industry_id: null,\n gics_nace_id: null,\n eligible_climate_mitigation_activity: null,\n eligible_climate_adaptation_activity: null,\n bics_sector_id: null,\n bics_industry_group_id: null,\n bics_industry_id: null,\n bics_sub_industry_id: null,\n snp_corporate_family_rating_id: 264,\n moodys_corporate_family_rating_id: 265,\n portfolio: null,\n tacf_sub_strategy: null,\n tacof_sub_strategy: null,\n market_risk_sensitivity: null,\n equity_upside: null,\n equity_upside_form: null,\n is_new_issue: null,\n upfront_fee: null,\n company_description: null,\n\n\n is_assetbased_cashflow: null,\n is_loan_underwritten: null,\n is_hard_asset_collateral: null,\n hard_asset_collateral_list: null,\n is_cov_lite: null,\n covenants_list: null,\n source_of_deal: null,\n has_financial_sponsor: null,\n financial_sponsor_list: null,\n has_leadership_role: null,\n primary_deal_purpose: null,\n secondary_deal_purpose: null,\n expected_exit_date: null,\n primary_exit_type_id: null,\n primary_exit_type: null,\n secondary_exit_type_id: null,\n secondary_exit_type: null,\n num_syndicate_leaders: null,\n is_tor_only_lender: null,\n\n\n is_assetbased_cashflow_comment: null,\n is_loan_underwritten_comment: null,\n is_hard_asset_collateral_comment: null,\n hard_asset_collateral_list_comment: null,\n is_cov_lite_comment: null,\n covenants_list_comment: null,\n source_of_deal_comment: null,\n has_financial_sponsor_comment: null,\n financial_sponsor_list_comment: null,\n has_leadership_role_comment: null,\n primary_deal_purpose_comment: null,\n secondary_deal_purpose_comment: null,\n expected_exit_date_comment: null,\n primary_exit_type_id_comment: null,\n primary_exit_type_comment: null,\n secondary_exit_type_id_comment: null,\n secondary_exit_type_comment: null,\n num_syndicate_leaders_comment: null,\n is_tor_only_lender_comment: null,\n\n deal_information_notes: null\n }\n });\n console.log(error);\n });\n\n await dealBALService.getDealMetrics(value, this.state.dealMetrics.quarter).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n data['dispRate'] = data['rate']\n this.setState({\n dealMetrics: data,\n dealMetricsDb: data\n });\n }, error => {\n this.setState({\n dealMetrics: {\n ...this.state.dealMetrics,\n is_underwriting: true,\n quarter: \"Underwriting\",\n currency: \"USD\",\n rate: 1.0,\n dispRate: 1.0,\n\n senior_debt: null,\n secured_debt: null,\n parri_passu_debt: null,\n senior_debt_tranche: null,\n total_debt_entry: null,\n distressed_market_value: null,\n cash_balance_entry: null,\n gross_debt: null,\n equity_book_value: null,\n equity_market_value: null,\n equity_value_dcf: null,\n unadjusted_ltm_ebitda: null,\n adjusted_ltm_ebitda: null,\n appraised_value: null,\n implied_ownership: null,\n purchased_price: null,\n ltm_interest_expense: null,\n ltm_revenue: null,\n ltm_revenue_oceania: null,\n ltm_revenue_africa: null,\n ltm_revenue_asia: null,\n ltm_revenue_europe: null,\n ltm_revenue_north_america: null,\n ltm_revenue_south_america: null,\n ltm_operation_cashflow: null,\n ltm_capital_expenditure: null,\n total_leverage_multiple: null,\n total_ltv_percentage: null,\n tor_leverage_attachment: null,\n tor_leverage_detachment: null,\n tor_ltv_detachment: null,\n tor_ltv_attachment: null,\n esg_rating_value: null,\n is_ESG_in_Memo: null,\n\n senior_debt_comment: null,\n secured_debt_comment: null,\n parri_passu_debt_comment: null,\n senior_debt_tranche_comment: null,\n total_debt_entry_comment: null,\n distressed_market_value_comment: null,\n cash_balance_entry_comment: null,\n gross_debt_comment: null,\n equity_book_value_comment: null,\n equity_market_value_comment: null,\n equity_value_dcf_comment: null,\n unadjusted_ltm_ebitda_comment: null,\n adjusted_ltm_ebitda_comment: null,\n appraised_value_comment: null,\n implied_ownership_comment: null,\n purchased_price_comment: null,\n ltm_interest_expense_comment: null,\n ltm_revenue_comment: null,\n ltm_revenue_oceania_comment: null,\n ltm_revenue_africa_comment: null,\n ltm_revenue_asia_comment: null,\n ltm_revenue_europe_comment: null,\n ltm_revenue_north_america_comment: null,\n ltm_revenue_south_america_comment: null,\n ltm_operation_cashflow_comment: null,\n ltm_capital_expenditure_comment: null,\n total_leverage_multiple_comment: null,\n total_ltv_percentage_comment: null,\n tor_leverage_attachment_comment: null,\n tor_leverage_detachment_comment: null,\n tor_ltv_detachment_comment: null,\n tor_ltv_attachment_comment: null,\n esg_rating_comment: null,\n is_ESG_in_Memo_comment: null,\n\n total_ranking_drawn_debt: null,\n total_drawn_debt_tranche: null,\n has_borrower_missed_payment: null,\n has_borrower_breach_covenant: null,\n enterprise_value: null,\n debt_equity_ratio: null,\n esg_environment_rating_value: null,\n esg_social_rating_value: null,\n esg_governance_rating_value: null,\n\n total_ranking_drawn_debt_comment: null,\n total_drawn_debt_tranche_comment: null,\n has_borrower_missed_payment_comment: null,\n has_borrower_breach_covenant_comment: null,\n enterprise_value_comment: null,\n debt_equity_ratio_comment: null,\n esg_environment_rating_comment: null,\n esg_social_rating_comment: null,\n esg_governance_rating_comment: null,\n\n as_of_date: null,\n as_of_date_comment: null,\n\n deal_metrics_notes: null\n }\n });\n console.log(error);\n });\n\n await dealBALService.getDealRisks(value).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n this.setState({\n dealRisk: data,\n dealRiskDb: data\n });\n }, error => {\n this.setState({\n dealRisk: {\n ...this.state.dealRisk,\n is_underwriting: true,\n quarter: \"Underwriting\",\n energy_1_id: null,\n energy_1_direction: null,\n energy_1_price: null,\n energy_1_comment: null,\n\n energy_2_id: null,\n energy_2_direction: null,\n energy_2_price: null,\n energy_2_comment: null,\n\n metal_1_id: null,\n metal_1_direction: null,\n metal_1_price: null,\n metal_1_comment: null,\n\n metal_2_id: null,\n metal_2_direction: null,\n metal_2_price: null,\n metal_2_comment: null,\n\n currency_1_id: null,\n currency_1_direction: null,\n currency_1_price: null,\n currency_1_comment: null,\n\n currency_2_id: null,\n currency_2_direction: null,\n currency_2_price: null,\n currency_2_comment: null,\n\n gics_ig_1_id: null,\n gics_ig_1_direction: null,\n gics_ig_1_price: null,\n gics_ig_1_comment: null,\n\n gics_ig_2_id: null,\n gics_ig_2_direction: null,\n gics_ig_2_price: null,\n gics_ig_2_comment: null,\n\n miscellanious_1: null,\n miscellanious_1_comment: null,\n\n miscellanious_2: null,\n miscellanious_2_comment: null,\n\n counterparty: null,\n counterparty_comment: null,\n\n real_estate_1_type: null,\n real_estate_1_desc: null,\n real_estate_1_is_development: null,\n real_estate_1_location: null,\n real_estate_1_deal_percentage: null,\n\n real_estate_2_type: null,\n real_estate_2_desc: null,\n real_estate_2_is_development: null,\n real_estate_2_location: null,\n real_estate_2_deal_percentage: null,\n\n real_estate_3_type: null,\n real_estate_3_desc: null,\n real_estate_3_is_development: null,\n real_estate_3_location: null,\n real_estate_3_deal_percentage: null\n }\n });\n console.log(error);\n });\n\n await dealBALService.getAllPositions(value).then(data => {\n this.setState({\n positionList: data\n });\n\n var faceV = 0.0;\n var marketV = 0.0;\n var torPos = 0.0;\n\n for (var i = 0; i < data.length; i++) {\n if (data[i].hasExpired === false) {\n faceV += data[i].faceValue;\n marketV += data[i].bookValue;\n torPos += data[i].torPosition;\n }\n }\n\n console.log(torPos);\n\n this.setState({\n faceValue: faceV,\n marketValue: marketV,\n torPositionVal: torPos\n });\n }, error => {\n console.log(error);\n });\n\n await dealBALService.getTrancheAttribute(value).then(data => {\n for (var i = 0; i < data.length; i++) {\n data[i]['deal_id'] = data[i]['deal']\n data[i]['investment_code'] = data[i]['investmentCode']\n delete (data[i]['deal']);\n delete (data[i]['investmentCode']);\n }\n this.setState({\n trancheAttributeList: data,\n trancheAttributeListDb: data,\n trancheAttribute: {\n deal_id: null,\n investment_code: null,\n asset_type: null,\n credit_ranking: null,\n holdco_vs_opco: null,\n has_defaulted: null,\n default_date: null,\n makewhole: null,\n amortization: null,\n is_non_recourse: null\n }\n });\n }, error => {\n this.setState({\n trancheAttribute: {\n deal_id: null,\n investment_code: null,\n asset_type: null,\n credit_ranking: null,\n holdco_vs_opco: null,\n has_defaulted: null,\n default_date: null,\n makewhole: null,\n amortization: null,\n is_non_recourse: null\n }\n });\n console.log(error);\n });\n\n await dealBALService.getDealReturns(value, this.state.dealMetrics.quarter).then(data => {\n for (var i = 0; i < data.length; i++) {\n data[i]['deal_id'] = data[i]['deal']\n data[i]['return_scenario'] = data[i]['returnScenario']\n delete (data[i]['deal']);\n delete (data[i]['returnScenario']);\n }\n this.setState({\n dealReturnList: data,\n dealReturnListDb: data\n });\n }, error => {\n console.log(error);\n });\n\n if(this.state.dealMetrics.quarter !== \"Underwriting\") {\n await dealBALService.getPriorDealMetrics(value, this.state.dealMetrics.quarter).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n this.setState({\n dealPriorMetrics: data\n });\n });\n }\n\n this.setState({ isDataChanged: false, isDealChange: false });\n }\n\n handleDropDownChangeTranche(e, { id, name, value }) {\n this.setState({ isDataChanged: true });\n\n if (this.state.trancheAttribute[name] === null && name !== \"has_defaulted\") {\n this.setState({ trancheAttribute: { ...this.state.trancheAttribute, [name]: value } });\n let trancheAttributeList = [...this.state.trancheAttributeList];\n\n for(var i = 0; i < trancheAttributeList.length; i++) {\n if(i === id || trancheAttributeList[i][name] === null || trancheAttributeList[i][name] === undefined) {\n let trancheAttribute = {\n ...trancheAttributeList[i],\n [name]: value\n }\n trancheAttributeList[i] = trancheAttribute;\n }\n }\n\n this.setState({\n trancheAttributeList: trancheAttributeList,\n });\n\n } else{\n let trancheAttributeList = [...this.state.trancheAttributeList];\n let trancheAttribute = {\n ...trancheAttributeList[id],\n [name]: value\n }\n trancheAttributeList[id] = trancheAttribute;\n\n this.setState({\n trancheAttributeList: trancheAttributeList,\n });\n }\n \n }\n\n handleChangeTranche(id, name, value) {\n this.setState({ isDataChanged: true });\n\n if (this.state.trancheAttribute[name] === null && name !== \"has_defaulted\") {\n this.setState({ trancheAttribute: { ...this.state.trancheAttribute, [name]: value } });\n let trancheAttributeList = [...this.state.trancheAttributeList];\n\n for(var i = 0; i < trancheAttributeList.length; i++) {\n if(i === id || trancheAttributeList[i][name] === null || trancheAttributeList[i][name] === undefined) {\n let trancheAttribute = {\n ...trancheAttributeList[i],\n [name]: value\n }\n trancheAttributeList[i] = trancheAttribute;\n }\n }\n\n this.setState({\n trancheAttributeList: trancheAttributeList,\n });\n\n } else{\n let trancheAttributeList = [...this.state.trancheAttributeList];\n let trancheAttribute = {\n ...trancheAttributeList[id],\n [name]: value\n }\n trancheAttributeList[id] = trancheAttribute;\n\n this.setState({\n trancheAttributeList: trancheAttributeList,\n });\n }\n }\n\n handleChangeReturns(id, name, value) {\n let dealReturnList = [...this.state.dealReturnList];\n let dealReturn = {\n ...dealReturnList[id],\n [name]: value\n }\n dealReturnList[id] = dealReturn;\n this.setState({\n dealReturnList: dealReturnList,\n });\n this.setState({ isDataChanged: true });\n }\n\n handleDropDownChangeMetrics(e, { name, value }) {\n var i;\n if (name === \"quarter\" && value === \"Underwriting\") {\n this.setState({ dealMetrics: { ...this.state.dealMetrics, [name]: value, is_underwriting: true } });\n this.setState({ dealRisk: { ...this.state.dealRisk, [name]: value, is_underwriting: true } });\n\n let dealReturnList = [...this.state.dealReturnList];\n\n for (i = 0; i < 3; i++) {\n let dealReturn = {\n ...dealReturnList[i],\n [name]: value,\n is_underwriting: true\n }\n dealReturnList[i] = dealReturn;\n }\n\n this.setState({\n dealReturnList: dealReturnList\n });\n } else if (name === \"quarter\") {\n this.setState({ dealMetrics: { ...this.state.dealMetrics, [name]: value, is_underwriting: false } });\n this.setState({ dealRisk: { ...this.state.dealRisk, [name]: value, is_underwriting: false } });\n\n let dealReturnList = [...this.state.dealReturnList];\n\n for (i = 0; i < 3; i++) {\n let dealReturn = {\n ...dealReturnList[i],\n [name]: value,\n is_underwriting: false\n }\n dealReturnList[i] = dealReturn;\n }\n\n this.setState({\n dealReturnList: dealReturnList\n });\n\n dealBALService.getPriorDealMetrics(this.state.dealMetrics.deal_id, value).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n this.setState({\n dealPriorMetrics: data\n });\n });\n\n } else if (name === \"bbg_quarter\") {\n this.setState({\n bbg_quarter: value \n })\n } else {\n this.setState({ isDataChanged: true });\n this.setState({ dealMetrics: { ...this.state.dealMetrics, [name]: value } });\n }\n\n if (name === \"quarter\") {\n this.setState({quarter: value});\n dealBALService.getDealMetrics(this.state.dealMetrics.deal_id, value).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n // data['currency'] = this.state.dealMetrics?.currency;\n // data['rate'] = this.state.dealMetrics?.rate;\n // data['dispRate'] = this.state.dealMetrics?.dispRate;\n\n data['dispRate'] = data['rate']\n\n this.setState({\n dealMetrics: data,\n dealMetricsDb: data\n });\n }, error => {\n this.setState({\n dealMetrics: {\n ...this.state.dealMetrics,\n is_underwriting: true,\n quarter: value,\n currency: \"USD\",\n rate: 1.0,\n dispRate: 1.0,\n\n senior_debt: null,\n secured_debt: null,\n parri_passu_debt: null,\n senior_debt_tranche: null,\n total_debt_entry: null,\n distressed_market_value: null,\n cash_balance_entry: null,\n gross_debt: null,\n equity_book_value: null,\n equity_market_value: null,\n equity_value_dcf: null,\n unadjusted_ltm_ebitda: null,\n adjusted_ltm_ebitda: null,\n appraised_value: null,\n implied_ownership: null,\n purchased_price: null,\n ltm_interest_expense: null,\n ltm_revenue: null,\n ltm_revenue_geography: null,\n ltm_revenue_oceania: null,\n ltm_revenue_africa: null,\n ltm_revenue_asia: null,\n ltm_revenue_europe: null,\n ltm_revenue_north_america: null,\n ltm_revenue_south_america: null,\n ltm_operation_cashflow: null,\n ltm_capital_expenditure: null,\n total_leverage_multiple: null,\n ltv_percentage: null,\n esg_rating_value: null,\n is_ESG_in_Memo: null,\n\n senior_debt_comment: null,\n secured_debt_comment: null,\n parri_passu_debt_comment: null,\n senior_debt_tranche_comment: null,\n total_debt_entry_comment: null,\n distressed_market_value_comment: null,\n cash_balance_entry_comment: null,\n gross_debt_comment: null,\n equity_book_value_comment: null,\n equity_market_value_comment: null,\n equity_value_dcf_comment: null,\n unadjusted_ltm_ebitda_comment: null,\n adjusted_ltm_ebitda_comment: null,\n appraised_value_comment: null,\n implied_ownership_comment: null,\n purchased_price_comment: null,\n ltm_interest_expense_comment: null,\n ltm_revenue_comment: null,\n ltm_revenue_geography_comment: null,\n ltm_revenue_oceania_comment: null,\n ltm_revenue_africa_comment: null,\n ltm_revenue_asia_comment: null,\n ltm_revenue_europe_comment: null,\n ltm_revenue_north_america_comment: null,\n ltm_revenue_south_america_comment: null,\n ltm_operation_cashflow_comment: null,\n ltm_capital_expenditure_comment: null,\n total_leverage_multiple_comment: null,\n ltv_percentage_comment: null,\n esg_rating_comment: null,\n is_ESG_in_Memo_comment: null,\n\n total_ranking_drawn_debt: null,\n total_drawn_debt_tranche: null,\n has_borrower_missed_payment: null,\n has_borrower_breach_covenant: null,\n enterprise_value: null,\n debt_equity_ratio: null,\n esg_environment_rating_value: null,\n esg_social_rating_value: null,\n esg_governance_rating_value: null,\n\n total_ranking_drawn_debt_comment: null,\n total_drawn_debt_tranche_comment: null,\n has_borrower_missed_payment_comment: null,\n has_borrower_breach_covenant_comment: null,\n enterprise_value_comment: null,\n debt_equity_ratio_comment: null,\n esg_environment_rating_comment: null,\n esg_social_rating_comment: null,\n esg_governance_rating_comment: null,\n\n as_of_date: null,\n as_of_date_comment: null,\n\n deal_metrics_notes: null\n }\n });\n console.log(error);\n });\n\n dealBALService.getDealReturns(this.state.dealMetrics.deal_id, value).then(data => {\n for (var i = 0; i < data.length; i++) {\n data[i]['deal_id'] = data[i]['deal']\n data[i]['return_scenario'] = data[i]['returnScenario']\n delete (data[i]['deal']);\n delete (data[i]['returnScenario']);\n }\n this.setState({\n dealReturnList: data,\n dealReturnListDb: data\n });\n }, error => {\n console.log(error);\n var dealReturnList = [];\n\n for (var i = 0; i < 3; i++) {\n var dealReturn = {\n deal_id: null,\n is_underwriting: true,\n quarter: \"Underwriting\",\n return_scenario: null,\n\n unlevered_irr_percentage: null,\n expected_return_percentage: null,\n levered_irr_percentage: null,\n unlevered_moic: null,\n levered_moic: null,\n return_scenario_probability: null,\n\n unlevered_irr_percentage_comment: null,\n expected_return_percentage_comment: null,\n levered_irr_percentage_comment: null,\n unlevered_moic_comment: null,\n levered_moic_comment: null,\n return_scenario_probability_comment: null\n };\n\n dealReturn.deal_id = this.state.dealMetrics.deal_id;\n dealReturn.quarter = value;\n\n if (value !== 'Underwriting') {\n dealReturn.is_underwriting = false;\n }\n\n if (i === 0) {\n dealReturn.return_scenario = \"Tor Base Case\";\n } else if (i === 1) {\n dealReturn.return_scenario = \"Tor Downside Case\";\n } else {\n dealReturn.return_scenario = \"Management Base Case\";\n }\n\n dealReturnList.push(dealReturn);\n }\n\n this.setState({ dealReturnList: dealReturnList });\n });\n }\n }\n\n render() {\n if(this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n invokeErgonomy(_errorPanicList) {\n Session.setItem(\"ergonomy\", JSON.stringify(_errorPanicList));\n this.getPage();\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n }\n\n approveDeals = async () => {\n const selectedRows = this.gridApi?.getSelectedNodes();\n if(selectedRows.length > 0) {\n const deals = selectedRows.map(deal => {return {dealID: deal.data['dealID'], dealName: deal.data['deal']} });\n\n var promises = dealBALService.approve(deals);\n Promise.all(promises).then(data => {\n //var d = JSON.parse(data);\n var errorList = data.filter(element => element.error).map(element => { return element.error });\n if(errorList && errorList.length > 0)\n this.setState({ showErrorMessage: true, errorList : errorList, errorHeader : \"Error while approving the request :\", toggleRefresh : !this.state.toggleRefresh });\n else \n this.setState({ showErrorMessage: true, errorList : [], errorHeader : \"Approved Successfully\", toggleRefresh : !this.state.toggleRefresh });\n }\n );\n\n await dealBALService.getRowData().then(data => {\n this.setState({ gridData: data, dealList: data });\n }, error => { console.log(error); });\n }\n else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: 'First select deal(s) to approve'\n })\n }\n }\n\n handleHome() {\n if(this.state.isDataChanged) {\n this.setState({\n modalVisible: true,\n modalType: 'saveChanges',\n modalHandler: 'discard',\n modalHeading: 'Do you want to discard changes?'\n })\n } else {\n this.setState({isOpenGrid: true, isDataChanged: false});\n }\n }\n\n getPage() {\n const { dealAttribute, isApprover, trancheAttribute, trancheAttributeList, modalHeading, dealMetrics, dealPriorMetrics, dealReturnList, dealRisk, dealName, isDataChanged } = this.state;\n const { projectName, faceValue, marketValue, analystDate, analyst1Name, analyst1Weight, analyst2Name, analyst2Weight, analyst3Name, analyst3Weight, analyst4Name, analyst4Weight, torPositionVal } = this.state;\n const elements = ['Executive Summary', 'Tranche Attributes', 'Deal Attributes', 'Credit Metrics', 'Macro Risks']\n if(this.state.gridData.length > 0 && this.state.isDealChange === false) {\n return (\n
\n {\n this.state.isOpenGrid\n ?\n
\n
\n {\n this.state.showErrorMessage ?\n \n : null\n } \n
\n
\n
\n { \n return isApprover && (node.data? node.data['status'] === 'Submitted' || node.data['statusUnderwriting'] === 'Submitted' || node.data['statusLastQuarter'] === 'Submitted' : false); \n } }\n />\n
\n
\n :\n
\n
\n Deals {dealName === \"\" ? null : `/ ${dealName}`}\n
\n
\n
\n {\n elements.map((value, index) => {\n if (index + 1 !== this.state.tabindex) {\n return \n } else {\n return \n }\n })\n }\n
\n
\n {\n this.state.showMessage === false\n ?\n null\n :\n \n }\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n }\n\n `Do you want to discard changes?`}\n />\n\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n
\n
\n :\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n Cannot connect to server.\n \n ×\n \n
\n
\n );\n } else {\n return (\n
\n \"Loading...\"\n
\n );\n }\n } /***************************************************************************************************/\n} /*****************************************************************************************/\n\nexport default Deals;\n","import React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport Modal from 'react-awesome-modal';\nimport DatePicker from 'react-datepicker';\nimport TorGrid from '../torgrid/torgrid';\nimport { Dropdown } from 'semantic-ui-react';\nimport moment from 'moment';\n\nclass ModalForm extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n this.state = {\n rowData: []\n }\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n getPage() {\n return (\n
\n
\n {\n this.props.modalType === 'close'\n ?\n \n
\n

{this.props.modalHeading}

\n \n
\n
\n :\n this.props.modalType === 'saveChanges'\n ?\n \n
\n

{this.props.modalHeading}

\n \n \n
\n
\n :\n this.props.modalType === 'genReport'\n ?\n \n
\n

{this.props.modalHeading}

\n
\n
\n Fund:\n
\n
\n \n
\n
\n From Date:\n
\n
\n {\n this.props.handleChange('fromDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n filterDate={(date) => {\n const day = date.getDay();\n return day !== 0 && day !== 6;\n }}\n maxDate={this.props.maxDate}\n autoComplete=\"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n To Date:\n
\n
\n {\n this.props.handleChange('toDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n filterDate={(date) => {\n const day = date.getDay();\n return day !== 0 && day !== 6;\n }}\n maxDate={this.props.maxDate}\n autoComplete=\"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n Generate\n
\n
\n
\n
\n :\n this.props.modalType === 'datagrid'\n ?\n \n
\n

{this.props.modalHeading}

\n \n \n \n
\n
:\n \n
\n

{this.props.modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n );\n }\n}\n\nexport default ModalForm;","import './../../App.css'\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { dealSummaryBALService } from '../../bal/dealSummary.bal';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync, faPlusCircle } from \"@fortawesome/free-solid-svg-icons\";\n\nclass DealSummaryDashboard extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n\n this.state = {\n ...userBALService.getUserDetails(),\n id: null,\n isOpenGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n editType: 'fullRow',\n existingTaskDetail: [],\n newTaskDetail: [],\n dealList: [],\n editorState: null, \n selectedRows: null\n };\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.getPage = this.getPage.bind(this);\n this.addNew = this.addNew.bind(this);\n this.refresh = this.refresh.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleRowSelected = this.handleRowSelected.bind(this);\n this.refresh();\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n \n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n addNew = async () => {\n //history.push('/taskMaster');\n //window.location.pathname = '/taskMaster';\n const {gridData} = this.state;\n\n this.setState({ redirectTo:{pathname : '/dealUpload', state : { gridData : gridData } } });\n }\n\n refresh() {\n dealSummaryBALService.getRowData().then(data => {\n let showGrid = true;\n console.log(data);\n if(data && data.length > 0) {\n data = data.map(row => { return {\n ...row, \n existingValue: row?.value\n }\n });\n showGrid = true;\n }\n this.setState({\n gridData: [{ \"Project Name\": \"Project Wallaby\",\n \"Company Overview\": \"Intelligent Monitoring Group (IMG) is an ASX-listed business providing comprehensive security monitoring services and products to Australian businesses, commercial locations, and personal residential homes. The company was founded in 1993 as Threat Protect before transitioning to IMG in September 2021. Black Crane Capital is the majority owner (61%). The business runs a recurring fee model, with monitoring revenue accounting for 60-70% of combined revenue. IMG has approximately 72,000 lines, while ADT, a subsidiary of Johnson Controls International (JCI), has around 110,000 lines.\",\n \"Deal Background\": \"IMG intends to acquire ADT from JCI for A$45 million in cash, a reduction from the original A$60 million due to JCI's motivation to close quickly and considerations like lease and service leave liabilities. IMG also plans to refinance its existing A$31 million debt alongside the transaction. The total financing ask is A$87.5 million from Tor (compared to the original A$95 million), with an additional A$15 million equity raise underwritten by Black Crane.\",\n \"Sources and Uses\": {\n \"Sources\": {\n \"Tor Loan\": \"A$87.5 million (85%)\",\n \"Sponsor Equity\": \"A$15.0 million (15%)\"\n },\n \"Uses\": {\n \"Cash Acquisition\": \"A$45.0 million (44%)\",\n \"Refinance Existing Debt\": \"A$31.8 million (31%)\",\n \"Refinance Black Crane\": \"A$1.6 million (2%)\",\n \"Working Capital / Liquidity Buffer\": \"A$15.9 million (16%)\",\n \"Transaction Fees\": \"A$8.2 million (8%)\"\n }\n },\n \"Transaction Summary\": \"A$87.5 million first lien senior secured 3-year amortizing loan secured by all assets of the two combined companies. The gross and net leverage are 3.7x and 2.7x, respectively, with Tor financing being the only debt in the capital structure. Expected IRR is approximately 18% from upfront fees, cash interest, and PIK interest. There is also a 7.5% equity upside for Tor via penny warrants. Exit strategies include amortization, a potential take-private by Black Crane, and refinancing opportunities.\",\n \"Transaction Details\": \"The transaction consists of a senior secured first lien loan of A$87.5 million with a 3-year term. The financing will cover the acquisition of ADT, refinancing of existing IMG debt, and transaction expenses. The security package includes all assets, including cash accounts and share pledges. The deal structure allows for quarterly cash sweeps and amortization schedules. HSBC has committed A$15 million, with additional co-investors being sought to fill the remaining A$32.5 million. Expected commitment is by the end of May 2023, with funding by the end of June or early July.\",\n \"Investment Highlights\": [\n \"Attractive risk-return profile: 18% fixed return with potential to exceed 20%+ depending on equity exit value.\",\n \"First lien security package with all-asset pledge and share pledge, making it the only debt in the capital structure.\",\n \"Recurring revenue model ensuring stable cash flow and revenue visibility.\",\n \"Attractive acquisition price: A$45 million valuation translates to 9-10 months’ worth of revenue per line, well below market norms of 12-20 months.\",\n \"Recognized ADT brand, adding credibility and market strength to the merged entity.\",\n \"Strong EBITDA margins and rapid deleveraging profile, with leverage expected to reduce from 3.7x to 2.4x in one year and 1.4x in two years.\"\n ],\n \"Key Risks\": [\n \"Potential customer churn due to ADT ownership change and transition from 3G to 4G technology.\",\n \"Integration challenges that may disrupt existing services and affect cost and revenue targets.\",\n \"Macroeconomic risks linked to housing market fluctuations affecting demand for security services.\",\n \"Competitive threats in a fragmented and technology-driven industry, with potential obsolescence risks.\"\n ],\n \"Deal Structure\": \"Tor will lend to the ASX-listed public company (Acquirer) and will take security over the intermediate holding companies and all assets of the relevant businesses, as well as all shares of ADT (Target). The governing law is New South Wales.\",\n \"Sponsor Background\": \"Black Crane Capital is a catalyst-driven deep value fund with a focus on corporate governance improvements and undervalued companies. The fund takes a private equity approach to public markets with investment sizes between A$15 million and A$50 million. Black Crane has been a major investor in IMG, supporting its recapitalization and growth strategy since 2019.\",\n \"Management Background\": {\n \"CEO\": \"Dennison Hambling - Joined IMG in January 2020, with over 15 years of experience in investment management and private equity.\",\n \"Head of Customer & Innovation\": \"Rob Hilton - 30+ years of experience in sales and marketing, previously founder of The Promotions Factory and Mammoth Innovation.\"\n },\n \"Industry Background\": \"The security monitoring industry is expected to grow due to rising demand from businesses and residential customers. The market is fragmented, with major players like Chubb, Wilson, and ADT holding leading positions. Growth drivers include increasing crime rates, technological advancements, and the shift towards proactive security monitoring.\",\n \"ESG Summary\": \"The deal has undergone an ESG assessment, though detailed ratings are not specified.\",\n \"ESG Environment\": \"Not explicitly detailed in the memo.\",\n \"ESG Social\": \"Not explicitly detailed in the memo.\",\n \"ESG Governance\": \"Not explicitly detailed in the memo.\",\n \"Covenants\": [\n \"Debt/EBITDA ratio maintenance\",\n \"EBITDA/Interest coverage requirement\",\n \"Churn rate monitoring\",\n \"Minimum liquidity thresholds\"\n ],\n \"Contract Terms\": {\n \"Total Size\": \"A$87.5 million\",\n \"TOR Size\": \"A$40 million\",\n \"Maturity Date\": \"June 30, 2026\",\n \"Coupon\": \"Cash interest of 10% plus PIK interest of 5%\",\n \"Currency\": \"AUD\",\n \"Upfront Fee\": \"3%\",\n \"Unlevered Returns\": \"Fixed: 17.7% / 1.44x; All-in with warrants: 20.6% / 1.53x\",\n \"Levered Returns\": \"Fixed: 19.1% / 1.48x; All-in with warrants: 25.1% / 1.67x\",\n \"Seniority\": \"Senior Secured Loan\",\n \"Equity Upside\": \"7.5% warrants at penny warrants\"\n },\n \"Projected Financials\": {\n \"Total Debt\": \"A$91.0 million post-transaction\",\n \"Revenue\": \"Projected revenue of A$126.8 million in FY23, growing to A$159.2 million by FY27\",\n \"EBITDA\": \"Projected EBITDA of A$24.8 million in FY23, growing to A$37.3 million by FY27\"\n }\n }],\n showGrid: showGrid\n });\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while retrieving Deal Summary...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while retrieving Deal Summary!'\n }); \n console.log(error);\n });\n }\n\n handleRowSelected(e) { \n const {gridData} = this.state;\n const { data } = e.target;\n console.log(data);\n this.setState({ redirectTo: { pathname : '/dealSummaryInfo', state : {data : data, gridData : gridData } } });\n }\n\n getPage() {\n const { modalType, showGrid, modalVisible, modalHeading, gridData } = this.state;\n console.log(gridData);\n return (\n
\n {\n this.state.showMessage ?\n :
\n } \n
\n

Deal Summary

\n
\n
\n
\n { \n showGrid? \n
\n { \n return false }}\n /> \n \n
:
Deal Summary - No rows to display
\n }\n this.closeModal()}\n onClickClose={() => this.closeModal()}\n onClickYes={() => this.handleModalChange()}\n />\n
\n );\n }\n}\n\nexport default DealSummaryDashboard;","import './../../App.css'\nimport { Dropdown } from 'semantic-ui-react';\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { Prompt } from \"react-router-dom\";\nimport { dealBALService } from '../../bal/deal.bal';\nimport { assetCommentaryBALService } from '../../bal/assetCommentary.bal';\nimport moment from 'moment';\nimport DatePicker from 'react-datepicker';\nimport JoditEditor from \"jodit-react\";\n\nclass AssetCommentaryInput extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n\n this.state = {\n ...userBALService.getUserDetails(),\n rowData: [],\n id: null,\n isShowInput: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n existingDealDetails: [],\n newDealDetails: [],\n dealList: [],\n editorState: null,\n fordate: null,\n toDate: moment(today).format(\"YYYY-MM-DD\"),\n fromDate: moment(yesterday).format(\"YYYY-MM-DD\"),\n deal: null,\n fund: 'All',\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"ALL\", value: \"All\" }\n ],\n };\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.getPage = this.getPage.bind(this);\n this.addNew = this.addNew.bind(this);\n this.refresh = this.refresh.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleRowSelected = this.handleRowSelected.bind(this);\n this.generateReport = this.generateReport.bind(this);\n this.reportModal = this.reportModal.bind(this);\n this.setInput = this.setInput.bind(this);\n\n dealBALService.getAllDeals().then(data => {\n let dealList = data.filter(function (item) {\n return (item ? true : false);\n }).map(item => { return { key: item.name, value: item.id, text: item.name } });\n\n this.setState({ dealList: dealList });\n }, error => {\n this.setState({\n showMessage: true,\n messageHeader: 'Error while getting the deals:',\n errorList: [error],\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while getting the deals:'\n });\n console.log(error);\n });\n\n assetCommentaryBALService.getRowData().then(data => {\n this.setState({\n gridData: data\n })\n });\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n generateReport = async () => {\n let body = {}\n const { fromDate, toDate, fund } = this.state;\n body = { fromDate: fromDate, toDate: toDate, fund: fund }\n\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Report is being generated!'\n });\n\n assetCommentaryBALService.generateReport(body).then(\n data => {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Report generated successfully!'\n });\n }, error => {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error, please contact support!'\n });\n }\n );\n }\n\n reportModal = () => {\n this.setState({\n modalVisible: true,\n modalType: 'genReport',\n modalHandler: 'close',\n modalHeading: 'Generate Report'\n })\n }\n\n addNew = async () => {\n const { id, forDate, editorState, deal } = this.state;\n const body = id ? { id: id, deal: deal, comment: editorState, report_date: forDate } : { deal: deal, comment: editorState, report_date: forDate };\n var result = assetCommentaryBALService.addComment(deal, body).then(\n data => {\n this.setState({\n showMessage: false,\n errorList: null,\n messageHeader: \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved commentary successfully!',\n open: false\n });\n }\n , error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: `Error while saving commentary:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving commentary failed!'\n });\n console.log(error);\n });\n\n this.setState(prevState => ({\n rowData: [...prevState.rowData, body],\n id: result.id\n }));\n\n this.refresh();\n }\n\n refresh() {\n assetCommentaryBALService.getRowData().then(data => {\n this.setState({\n gridData: data\n })\n });\n }\n\n setInput() {\n const { isShowInput } = this.state;\n this.setState({\n isShowInput: !isShowInput\n })\n }\n\n handleChange(name, value) {\n console.log(name, value);\n this.setState({ [name]: value });\n\n if (this.state.deal && value) {\n assetCommentaryBALService.getComment({ deal: this.state.deal, date: value }).then(data => {\n this.setState({\n id: data.id,\n editorState: data.comment\n })\n })\n }\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ [name]: value });\n\n if (this.state.forDate && value) {\n assetCommentaryBALService.getComment({ deal: value, date: this.state.forDate }).then(data => {\n this.setState({\n id: data.id,\n editorState: data.comment\n })\n })\n }\n }\n\n handleRowSelected(e) {\n const { data, action } = e.target;\n if (action === \"Edit\") {\n this.setState({\n id: data.deal_risk_commentary_id,\n deal: data.deal_id,\n forDate: new Date(data.report_date),\n editorState: data.comment\n })\n }\n }\n\n getPage() {\n const { modalType, deal, fund, fundList, forDate, fromDate, toDate, editorState, dealList, modalVisible, modalHeading, gridReminderData, gridData, isShowInput, existingDealDetails, newDealDetails } = this.state;\n const isDisabled = !deal || !forDate;\n\n const config = {\n readonly: isDisabled // all options from https://xdsoft.net/jodit/doc/,\n }\n return (\n
\n {\n this.state.showMessage ?\n :
\n }\n
\n {\n isShowInput\n ?\n
\n
\n
\n Report Date:\n
\n
\n {\n this.handleChange('forDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n filterDate={(date) => {\n const day = date.getDay();\n return day !== 0 && day !== 6;\n }}\n maxDate={this.state.maxDate}\n autoComplete=\"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n Deal:\n
\n
\n \n
\n\n
\n Generate Report\n
\n
\n Refresh\n
\n
\n Hide Input\n
\n
\n Save Commentary\n
\n
\n
\n this.setState({ editorState: newContent })} // preferred to use only this option to update the content for performance reasons\n disabled={isDisabled}\n hidden={isDisabled}\n readonly={isDisabled}\n\n\n askBeforePasteHTML={false}\n askBeforePasteFromWord={false}\n defaultActionOnPaste=\"insert_clear_html\"\n />\n
\n
\n :\n
\n
\n Generate Report\n
\n
\n Refresh\n
\n
\n Show Input\n
\n
\n }\n\n
\n {\n return true;\n }}\n />\n
\n
\n\n\n \n this.closeModal()}\n onClickClose={() => this.closeModal()}\n onClickYes={() => this.handleModalChange()}\n generateReport={() => this.generateReport()}\n handleChange={this.handleChange}\n handleDropDownChange={this.handleDropDownChange}\n />\n
\n );\n }\n}\n\nexport default AssetCommentaryInput;","import './../../App.css'\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { Prompt } from \"react-router-dom\";\nimport { assetCommentaryReviewBALService } from '../../bal/assetCommentaryReview.bal';\nimport moment from 'moment';\n\nclass AssetCommentaryReview extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n\n this.state = {\n ...userBALService.getUserDetails(),\n rowData: [],\n id: null,\n isOpenGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n editType: 'fullRow',\n existingDealDetails: [],\n newDealDetails: [],\n dealList: [],\n editorState: null,\n fordate: null,\n toDate: moment(today).format(\"YYYY-MM-DD\"),\n fromDate: moment(yesterday).format(\"YYYY-MM-DD\"),\n deal: null,\n fund: 'All',\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"ALL\", value: \"All\" }\n ],\n };\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.getPage = this.getPage.bind(this);\n this.addNew = this.addNew.bind(this);\n this.refresh = this.refresh.bind(this);\n this.save = this.save.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleRowSelected = this.handleRowSelected.bind(this);\n this.generateReport = this.generateReport.bind(this);\n this.reportModal = this.reportModal.bind(this);\n this.refresh();\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n generateReport = async() => {\n\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Report is being generated!'\n }); \n }\n\n reportModal = () => {\n this.setState({\n modalVisible: true,\n modalType: 'genReport',\n modalHandler: 'close',\n modalHeading: 'Generate Report'\n })\n }\n\n addNew = async () => {\n this.refresh();\n }\n\n save = async (rowData) => {\n let rows = rowData.map(p=>p.data);\n console.log(rows);\n\n rows = rows.filter(row => row.notes !== row.existingNotes || row.isReviewed !== row.existingIsReviewed)\n\n console.log(rows);\n assetCommentaryReviewBALService.save(rows).then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved data successfully!',\n open: false\n });\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving marks:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving data failed!'\n }); \n console.log(error);\n });\n this.refresh();\n }\n\n refresh() {\n assetCommentaryReviewBALService.getRowData().then(data => {\n let showGrid = false;\n if(data && data.length > 0) {\n data = data.map(row => { return {\n ...row, \n existingNotes: row.notes, \n existingIsReviewed: row.isReviewed, \n }\n });\n showGrid = true;\n }\n this.setState({\n gridData: data,\n showGrid: showGrid\n });\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while retrieving...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while retrieving data!'\n }); \n console.log(error);\n });\n }\n\n handleChange(name, value) {\n console.log(name, value);\n this.setState({ [name]: value });\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ [name]: value });\n }\n\n handleRowSelected(e) {\n const { data, action } = e.target;\n if (action === \"Edit\") {\n this.setState({\n id: data.deal_risk_commentary_id,\n deal: data.deal_id,\n forDate: new Date(data.report_date),\n editorState: data.comment\n })\n }\n }\n\n getPage() {\n const { modalType, editType, showGrid, fund, fundList, fromDate, toDate, modalVisible, modalHeading, gridReminderData, gridData, existingDealDetails, newDealDetails } = this.state;\n return (\n
\n {\n this.state.showMessage ?\n :
\n } \n {\n showGrid ? \n
\n Asset Management Commentary Review\n { this.save(true)}}\n editType={editType}\n //isShowLoad = {isShowLoad}\n //isShowGrid = {isShowGrid}\n cellValueChanged = {this.cellValueChanged}\n />\n
:
Asset Management Commentary Review - No Rows to display
\n }\n \n this.closeModal()}\n onClickClose={() => this.closeModal()}\n onClickYes={() => this.handleModalChange()}\n generateReport={() => this.generateReport()}\n handleChange={this.handleChange}\n handleDropDownChange={this.handleDropDownChange}\n />\n
\n );\n }\n}\n\nexport default AssetCommentaryReview;","import React, { Component } from 'react';\nimport TorGrid from '../torgrid/torgrid';\nimport { dealAttributeChangesBALService } from '../../bal/Deal-Dashboard/dealAttributeChanges.bal'\nimport { dealCreditMetricsChangesBALService } from '../../bal/Deal-Dashboard/dealCreditMetricsChanges.bal'\nimport { dealMacroRiskChangesBALService } from '../../bal/Deal-Dashboard/dealMacroRiskChanges.bal'\nimport { dealReturnsChangesBALService } from '../../bal/Deal-Dashboard/dealReturnsChanges.bal'\nimport { dealTrancheAttributeChangesBALService } from '../../bal/Deal-Dashboard/dealTrancheAttributeChanges.bal'\nimport { dealBALService } from '../../bal/deal.bal';\nimport { Redirect } from \"react-router-dom\";\nimport queryString from 'query-string';\n\nclass DealChanges extends Component {\n constructor(props) {\n super(props);\n\n \n this.approveDeals = this.approveDeals.bind(this);\n\n let params = queryString.parse(this.props.location.search);\n var deal = ''\n if(params && params.deal){\n deal = params.deal;\n } else {\n deal = this.props?.location?.state?.deal;\n }\n\n this.state = {\n deal : deal,\n dealId : this.props?.location?.state?.dealId,\n dealAttributeChangesList : [\n /* { \n Deal : 'APLN',\n column : 'BICS Industry',\n 'New Value' : 'Real Estate Investment Trusts (REIT)',\n 'Existing Value' : 'Real Estate Owners & Developers'\n }*/\n ],\n dealTrancheAttributeChangesList : [],\n dealCreditMetricsChangesList : [],\n dealMacroRiskChangesList : [],\n dealReturnsChangesList : [],\n }\n\n if(deal) { \n dealAttributeChangesBALService.getRowData({ Deal : deal }).then(data => {\n this.setState({ dealAttributeChangesList: data });\n });\n dealCreditMetricsChangesBALService.getRowData({ Deal : deal }).then(data => {\n this.setState({ dealCreditMetricsChangesList: data });\n });\n dealReturnsChangesBALService.getRowData({ Deal : deal }).then(data => {\n this.setState({ dealReturnsChangesList: data });\n });\n dealMacroRiskChangesBALService.getRowData({ Deal : deal }).then(data => {\n this.setState({ dealMacroRiskChangesList: data });\n });\n dealTrancheAttributeChangesBALService.getRowData({ Deal : deal }).then(data => {\n this.setState({ dealTrancheAttributeChangesList: data });\n }); \n } \n }\n\n render() {\n if(this.state.redirectTo)\n return ;\n return this.getTemplate();\n }\n\n approveDeals = async () => { \n await dealBALService.approve([{ dealName: this.state.deal }]);\n this.setState({ redirectTo:{pathname : '/dss' } });\n }\n \n getTemplate() {\n const { deal, dealAttributeChangesList, dealTrancheAttributeChangesList, dealCreditMetricsChangesList, dealMacroRiskChangesList, dealReturnsChangesList } = this.state;\n return (\n
\n
\n

Changes for Deal - {deal}

\n
\n \n
\n
\n
\n {\n dealAttributeChangesList && dealAttributeChangesList.length > 0 ? \n
\n \n
\n :null\n }\n {\n dealCreditMetricsChangesList && dealCreditMetricsChangesList.length > 0 ? \n
\n \n
\n :null\n }\n {\n dealReturnsChangesList && dealReturnsChangesList.length > 0 ? \n
\n \n
\n :null\n }\n {\n dealMacroRiskChangesList && dealMacroRiskChangesList.length > 0 ? \n
\n \n
\n :null\n }\n {\n dealTrancheAttributeChangesList && dealTrancheAttributeChangesList.length > 0 ? \n
\n \n
\n :null\n }\n
\n
\n );\n \n }\n}\n\nexport default DealChanges;","import React, { Component } from 'react';\nimport { dealBALService } from '../../bal/deal.bal';\nimport { Redirect } from \"react-router-dom\";\nimport queryString from 'query-string';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheck } from '@fortawesome/free-solid-svg-icons'; import FormDisplay from './components/formDisplay.js';\nimport GICSPdf from '../../docs/112727-gics-mapbook_2018_v3_letter_digitalspreads.pdf';\nimport BICSPdf from '../../docs/2072704..pdf';\nimport { Dropdown } from 'semantic-ui-react';\nimport ToastMessage from \"./components/toastMessage\";\nimport Modal from 'react-awesome-modal';\n\n\nclass DealSetup extends Component {\n constructor(props) {\n super(props);\n let params = queryString.parse(this.props.location.search);\n var deal = '';\n var dealID = null;\n if (params && params.deal && params.dealID) {\n deal = params.deal;\n dealID = parseInt(params.dealID);\n }\n\n const analystDate = new Date('2013-01-01');\n\n this.state = {\n dealAttribute: {\n deal_id: dealID,\n country_of_risk_id: null,\n gics_sector_id: null,\n gics_industry_group_id: null,\n gics_industry_id: null,\n gics_sub_industry_id: null,\n bics_sector_id: null,\n bics_industry_group_id: null,\n bics_industry_id: null,\n bics_sub_industry_id: null,\n portfolio: null,\n market_risk_sensitivity: null,\n tacf_sub_strategy: null,\n tacof_sub_strategy: null,\n status: 'Approved'\n },\n trancheAttribute: {\n deal_id: null,\n investment_code: null,\n asset_type: null,\n credit_ranking: null,\n holdco_vs_opco: null,\n },\n showMessage: false,\n errorList: [],\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n trancheAttributeList: [],\n projectName: null,\n analystDate: analystDate,\n analyst1Weight: null,\n analyst1Name: null,\n analyst2Weight: null,\n analyst2Name: null,\n analyst3Weight: null,\n analyst3Name: null,\n dealName: deal,\n dealID: dealID,\n dealList: [],\n analystList: [],\n countryList: [],\n gicsSectorList: [],\n gicsIndustryGroupList: [],\n gicsIndustryList: [],\n gicsSubIndustryList: [],\n bicsSectorList: [],\n bicsIndustryGroupList: [],\n bicsIndustryList: [],\n bicsSubIndustryList: [],\n marketRiskList: [],\n tacfSubStrategyList: [],\n tacofSubStrategyList: [],\n assetClassList: [],\n assetRankingList: [],\n holdcoList: [],\n fieldList: [],\n positionList: [],\n display: true,\n isLoading: true\n }\n dealBALService.getFields().then(data => { this.setState({ fieldList: data }); }, error => { console.log(error); });\n\n dealBALService.checkDeal(dealID).then(data => {\n this.setState({ display: data.message });\n }, error => { console.log(error); })\n\n dealBALService.getAnalysts().then(data => { this.setState({ analystList: data }); }, error => { console.log(error); });\n dealBALService.getAllCountry().then(data => { this.setState({ countryList: data }); }, error => { console.log(error); });\n dealBALService.getGics().then(data => { this.setState({ gicsSectorList: data }); }, error => { console.log(error); });\n dealBALService.getBics().then(data => { this.setState({ bicsSectorList: data }); }, error => { console.log(error); });\n dealBALService.getSetting({ value: \"Asset Type\" }).then(data => { this.setState({ assetClassList: data.childSettings }); }, error => { console.log(error); });\n dealBALService.getSetting({ value: \"Credit Ranking\" }).then(data => { this.setState({ assetRankingList: data.childSettings }); }, error => { console.log(error); });\n dealBALService.getSetting({ value: \"HoldCo vs OpCo\" }).then(data => { this.setState({ holdcoList: data.childSettings }); }, error => { console.log(error); });\n dealBALService.getSetting({ value: \"TACF Sub-Strategy at Inception\" }).then(data => { this.setState({ tacfSubStrategyList: data.childSettings }); }, error => { console.log(error); });\n dealBALService.getSetting({ value: \"TACOF Sub-Strategy at Inception\" }).then(data => { this.setState({ tacofSubStrategyList: data.childSettings }); }, error => { console.log(error); });\n dealBALService.getSetting({ value: \"Market risk Sensitivity\" }).then(data => { this.setState({ marketRiskList: data.childSettings }); }, error => { console.log(error); });\n\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleChangeDate = this.handleChangeDate.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChangeTranche = this.handleDropDownChangeTranche.bind(this);\n this.approveDB = this.approveDB.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.round = this.round.bind(this);\n }\n\n componentDidMount = async () => {\n const { dealID } = this.state;\n await dealBALService.getAllDeals().then(data => {\n var project = data.filter(function (item) { return item.id === dealID }).map(item => { return item.project });\n if (project.length > 0) {\n this.setState({ projectName: project[0] });\n }\n this.setState({ dealList: data });\n }, error => { console.log(error); });\n\n await dealBALService.getAllPositions(this.state.dealID).then(data => {\n let trancheAttributeList = [];\n\n for (var i = 0; i < data.length; i++) {\n let trancheAttribute = {\n deal_id: this.state.dealID,\n investment_code: data[i].investmentCode,\n asset_type: null\n }\n trancheAttributeList.push(trancheAttribute);\n }\n\n this.setState({\n positionList: data,\n trancheAttributeList: trancheAttributeList\n });\n }, error => {\n console.log(error);\n });\n\n await dealBALService.getAllAnalysts(this.state.dealID).then(data => {\n if (data.length >= 3) {\n this.setState({ analyst3Name: data[2].analyst.id, analyst3Weight: data[2].dealWeighting });\n } else {\n this.setState({ analyst3Name: null, analyst3Weight: null });\n }\n\n if (data.length >= 2) {\n this.setState({ analyst2Name: data[1].analyst.id, analyst2Weight: data[1].dealWeighting })\n } else {\n this.setState({ analyst2Name: null, analyst2Weight: null });\n }\n\n if (data.length >= 1) {\n this.setState({ analyst1Name: data[0].analyst.id, analyst1Weight: data[0].dealWeighting, analystDate: data[0].fromDate })\n } else {\n this.setState({ analyst1Name: null, analyst1Weight: null });\n }\n }, error => {\n console.log(error);\n });\n\n await dealBALService.getDealAttribute(this.state.dealID).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n this.setState({\n dealAttribute: data,\n dealAttributeDb: data\n });\n }, error => {\n console.log(error);\n });\n\n await dealBALService.getTrancheAttribute(this.state.dealID).then(data => {\n for (var i = 0; i < data.length; i++) {\n data[i]['deal_id'] = data[i]['deal']\n data[i]['investment_code'] = data[i]['investmentCode']\n delete (data[i]['deal']);\n delete (data[i]['investmentCode']);\n }\n this.setState({\n trancheAttributeList: data,\n trancheAttributeListDb: data,\n trancheAttribute: {\n deal_id: null,\n investment_code: null,\n asset_type: null,\n credit_ranking: null,\n holdco_vs_opco: null,\n has_defaulted: null,\n default_date: null,\n makewhole: null,\n amortization: null\n }\n });\n }, error => {\n console.log(error);\n });\n\n this.setState({ isLoading: false })\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getTemplate();\n }\n\n closeModal() {\n this.setState({\n modalVisible: false\n });\n }\n\n handleDropDownChange(e, { name, value }) {\n if (name === \"analyst1Name\" || name === \"analyst2Name\" || name === \"analyst3Name\") {\n this.setState({ [name]: value });\n } else {\n this.setState({ dealAttribute: { ...this.state.dealAttribute, [name]: value } });\n }\n\n if (name === \"gics_sector_id\") {\n this.setState({ gicsIndustryGroupList: this.state.gicsSectorList.filter(function (item) { return item.id === value })[0]?.industryGroups });\n } else if (name === \"gics_industry_group_id\") {\n this.setState({ gicsIndustryList: this.state.gicsIndustryGroupList.filter(function (item) { return item.id === value })[0]?.industries });\n } else if (name === \"gics_industry_id\" && this.state.gicsIndustryList !== undefined) {\n this.setState({ gicsSubIndustryList: this.state?.gicsIndustryList.filter(function (item) { return item.id === value })[0]?.subIndustries });\n } else if (name === \"bics_sector_id\" && (value !== \"\" || value != null)) {\n this.setState({ bicsIndustryGroupList: this.state.bicsSectorList.filter(function (item) { return item.id === value })[0]?.industryGroups });\n } else if (name === \"bics_industry_group_id\" && (value !== \"\" || value != null)) {\n this.setState({ bicsIndustryList: this.state.bicsIndustryGroupList.filter(function (item) { return item.id === value })[0]?.industries });\n } else if (name === \"bics_industry_id\" && this.state.bicsIndustryList !== undefined) {\n this.setState({ bicsSubIndustryList: this.state?.bicsIndustryList.filter(function (item) { return item.id === value })[0]?.subIndustries });\n }\n\n }\n\n handleChangeDate(name, value) {\n if (name === \"projectName\" || name === \"analyst1Weight\" || name === \"analyst2Weight\" || name === \"analyst3Weight\" || name === \"analystDate\") {\n this.setState({\n [name]: value\n });\n } else {\n this.setState({\n dealAttribute: {\n ...this.state.dealAttribute,\n [name]: value\n }\n });\n }\n };\n\n handleChange(e) {\n const { name, value } = e.target;\n\n if (name === \"projectName\" || name === \"analyst1Weight\" || name === \"analyst2Weight\" || name === \"analyst3Weight\") {\n if (Number.isNaN(value)) {\n this.setState({\n [name]: null\n })\n } else {\n this.setState({\n [name]: value\n });\n }\n } else {\n this.setState({\n dealAttribute: {\n ...this.state.dealAttribute,\n [name]: value\n }\n });\n }\n }\n\n handleDropDownChangeTranche(e, { id, name, value }) {\n if (this.state.trancheAttribute[name] === null && name !== \"has_defaulted\") {\n this.setState({ trancheAttribute: { ...this.state.trancheAttribute, [name]: value } });\n let trancheAttributeList = [...this.state.trancheAttributeList];\n\n for (var i = 0; i < trancheAttributeList.length; i++) {\n if (i === id || trancheAttributeList[i][name] === null || trancheAttributeList[i][name] === undefined) {\n let trancheAttribute = {\n ...trancheAttributeList[i],\n [name]: value\n }\n trancheAttributeList[i] = trancheAttribute;\n }\n }\n this.setState({\n trancheAttributeList: trancheAttributeList,\n });\n\n } else {\n let trancheAttributeList = [...this.state.trancheAttributeList];\n let trancheAttribute = {\n ...trancheAttributeList[id],\n [name]: value\n }\n trancheAttributeList[id] = trancheAttribute;\n\n this.setState({\n trancheAttributeList: trancheAttributeList,\n });\n }\n }\n\n round(value, decimals) {\n return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals).toFixed(decimals);\n }\n\n approveDB = async () => {\n try {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data save in progress !!'\n });\n var i, key, errorList = [];\n var { dealAttribute, projectName, trancheAttributeList } = this.state;\n const { analyst1Name, analyst1Weight, analyst2Name, analyst2Weight, analyst3Name, analyst3Weight, analystDate } = this.state;\n\n var sum = parseInt(Number.isNaN(analyst1Weight) ? 0 : analyst1Weight ?? 0) + parseInt(Number.isNaN(analyst2Weight) ? 0 : analyst2Weight ?? 0) + parseInt(Number.isNaN(analyst3Weight) ? 0 : analyst3Weight ?? 0);\n if (((sum <= 99.9 || sum > 100) && sum !== 0) || Number.isNaN(sum)) {\n errorList.push(\"Analyst Weights should sum to 100%\");\n }\n\n if (((analyst1Name ?? '111') === (analyst2Name ?? '222') && analyst1Name !== \"\" && analyst2Name !== \"\")\n || ((analyst1Name ?? '111') === (analyst3Name ?? '333') && analyst1Name !== \"\" && analyst3Name !== \"\")\n || ((analyst2Name ?? '222') === (analyst3Name ?? '333') && analyst2Name !== \"\" && analyst3Name !== \"\")) {\n errorList.push(\"Please enter different analysts for position 1, 2, 3\");\n }\n\n // if (projectName === \"\" || projectName === null) {\n // errorList.push(\"Project name cannot be empty\");\n // }\n\n var listVal = \"\", field = \"\";\n var columnList = [\n { label: \"Deal\", id: \"deal_id\" },\n { label: \"Country of Risk\", id: \"country_of_risk_id\" },\n { label: \"GICS Sector\", id: \"gics_sector_id\" },\n { label: \"Gics Industry Group\", id: \"gics_industry_group_id\" },\n { label: \"GICS Industry\", id: \"gics_industry_id\" },\n { label: \"GICS Sub Industry\", id: \"gics_sub_industry_id\" },\n { label: \"BICS Sector\", id: \"bics_sector_id\" },\n { label: \"BICS Industry Group\", id: \"bics_industry_group_id\" },\n { label: \"BICS Industry\", id: \"bics_industry_id\" },\n { label: \"BICS Sub Industry\", id: \"bics_sub_industry_id\" },\n { label: \"Portfolio\", id: \"portfolio\" },\n { label: \"TACF Sub Strategy\", id: \"tacf_sub_strategy\" },\n { label: \"TACOF Sub Strategy\", id: \"tacof_sub_strategy\" },\n { label: \"Analyst Weighting Date\", id: \"analystDate\" },\n { label: \"Analyst 1 Name\", id: \"analyst1Name\" },\n { label: \"Analyst 1 Weight\", id: \"analyst1Weight\" },\n { label: \"Analyst 2 Name\", id: \"analyst2Name\" },\n { label: \"Analyst 3 Name\", id: \"analyst3Name\" },\n { label: \"Market Risk Sensitivity\", id: \"market_risk_sensitivity\" },\n ]\n\n for (const key of columnList) {\n field = key.id;\n if (field === \"tacf_sub_strategy\" || field === \"tacof_sub_strategy\") {\n if (dealAttribute[\"tacf_sub_strategy\"] || dealAttribute[\"tacof_sub_strategy\"]) {\n // \n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"analystDate\") {\n if (analystDate) {\n //\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst1Name\") {\n if (analyst1Name) {\n //\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst1Weight\") {\n if (analyst1Weight || analyst1Weight === 0) {\n //\n } else {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst2Name\") {\n if (analyst2Weight && (analyst2Name === null || analyst2Name === undefined || analyst2Name === '')) {\n listVal += key.label + \", \"\n }\n } else if (field === \"analyst3Name\") {\n if (analyst3Weight && (analyst3Name === null || analyst3Name === undefined || analyst3Name === '')) {\n listVal += key.label + \", \"\n }\n } else {\n if (dealAttribute[field] || dealAttribute[field] === false || dealAttribute[field] === 0) {\n // \n } else {\n listVal += key.label + \", \"\n }\n }\n }\n\n if (listVal !== \"\") {\n listVal = \"Deal Attribute: \" + listVal.substring(0, listVal.length - 2);\n errorList.push(listVal);\n }\n\n listVal = \"\";\n var flag = false;\n\n for (i = 0; i < trancheAttributeList.length; i++) {\n field = \"asset_type\";\n if (trancheAttributeList[i][field] || trancheAttributeList[i][field] === false || trancheAttributeList[i][field] === 0) {\n // \n } else {\n flag = true;\n }\n\n }\n\n if (flag) {\n listVal += \"Asset Type\"\n }\n\n if (listVal !== \"\") {\n listVal = \"Tranche Attribute: \" + listVal;\n errorList.push(listVal);\n }\n\n if (errorList.length === 0) {\n var body = {};\n body['project'] = projectName;\n\n await dealBALService.updateDeal(body, dealAttribute.deal_id).then(data => {\n\n }, error => {\n errorList.push(error);\n });\n }\n\n\n if (errorList.length === 0) {\n var analystDeal = {};\n\n analystDeal['analystDate'] = this.state.analystDate;\n analystDeal['analyst1Name'] = this.state.analyst1Name;\n analystDeal['analyst1Weight'] = this.state.analyst1Weight;\n analystDeal['analyst2Name'] = this.state.analyst2Name;\n analystDeal['analyst2Weight'] = this.state.analyst2Weight;\n analystDeal['analyst3Name'] = this.state.analyst3Name;\n analystDeal['analyst3Weight'] = this.state.analyst3Weight;\n\n await dealBALService.insertDealAnalyst(analystDeal, dealAttribute.deal_id).then(data => {\n \n }, error => {\n errorList.push(error);\n });\n }\n\n if (errorList.length === 0) {\n for (key in dealAttribute) {\n if (dealAttribute[key] === null || dealAttribute[key] === 0 || dealAttribute[key] === \"\" || Number.isNaN(dealAttribute[key])) {\n delete dealAttribute[key];\n }\n }\n\n dealAttribute.status = 'Approved';\n dealAttribute.approved_by = 43;\n\n\n await dealBALService.insertDealAttribute(dealAttribute).then(data => {\n data['deal_id'] = data['deal']\n delete (data['deal']);\n this.setState({\n dealAttribute: data,\n dealAttributeDb: data\n });\n }, error => {\n errorList.push(error);\n });\n }\n\n\n if (errorList.length === 0) {\n for (i = 0; i < trancheAttributeList.length; i++) {\n for (key in trancheAttributeList[i]) {\n if (trancheAttributeList[i][key] === null || trancheAttributeList[i][key] === 0 || trancheAttributeList[i][key] === \"\") {\n delete trancheAttributeList[i][key];\n }\n }\n trancheAttributeList[i]['isChanged'] = true;\n\n trancheAttributeList[i].status = 'Approved';\n trancheAttributeList[i].approved_by = 43;\n\n }\n\n await dealBALService.insertTrancheAttribute(trancheAttributeList).then(data => {\n data = data.data;\n for (var i = 0; i < data.length; i++) {\n data[i]['deal_id'] = data[i]['deal']\n data[i]['investment_code'] = data[i]['investmentCode']\n delete (data[i]['deal']);\n delete (data[i]['investmentCode']);\n }\n this.setState({\n trancheAttributeList: data,\n trancheAttributeListDb: data,\n trancheAttribute: {\n deal_id: null,\n investment_code: null,\n asset_type: null,\n credit_ranking: null,\n holdco_vs_opco: null,\n has_defaulted: null,\n default_date: null,\n makewhole: null,\n amortization: null\n }\n });\n }, error => {\n errorList.push(error);\n });\n\n }\n\n if (errorList.length === 0) {\n await dealBALService.getRowData().then(data => {\n this.setState({ gridData: data });\n }, error => { console.log(error); });\n\n await dealBALService.getAllDeals().then(data => {\n this.setState({ dealList: data });\n }, error => { console.log(error); });\n\n this.setState({\n isDataChanged: false,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data has been saved successfully'\n });\n\n await dealBALService.generateEmailConfirmation({ deal: this.state.dealName });\n\n setTimeout(function () {\n window.location.href = '/dss';\n }, 3000);\n } else {\n console.log(errorList);\n this.setState({\n showMessage: true,\n errorList: errorList,\n messageHeader: \"Error while saving the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Please fill all fields before submitting.'\n });\n }\n } catch (error) {\n console.log(error);\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data could not be saved, please retry!'\n });\n }\n };\n\n closeMessage() {\n this.setState({ showMessage: false, messageHeader: \"Following Fields have not been filled in: \" });\n }\n\n getTemplate() {\n const { dealAttribute, fieldList, trancheAttributeList, positionList, dealName, projectName, modalHeading, display, isLoading } = this.state;\n const { analyst1Name, analyst2Name, analyst3Name, analyst1Weight, analyst2Weight, analyst3Weight, analystDate } = this.state;\n\n const analystList = this.state.analystList.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const countryList = this.state.countryList.map(item => { return { key: item.id, value: item.id, text: item.name } });\n const gicsSectorList = this.state.gicsSectorList.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const gicsIndustryGroupList = this.state.gicsSectorList.filter(function (item) {\n return item.id === dealAttribute.gics_sector_id\n })[0]?.industryGroups.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n const gicsIndustryList = this.state.gicsSectorList.filter(function (item) {\n return item.id === dealAttribute.gics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.gics_industry_group_id\n })[0]?.industries.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n const gicsSubIndustryList = this.state.gicsSectorList.filter(function (item) {\n return item.id === dealAttribute.gics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.gics_industry_group_id\n })[0]?.industries.filter(function (item) {\n return item.id === dealAttribute.gics_industry_id\n })[0]?.subIndustries.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n\n const bicsSectorList = this.state.bicsSectorList.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const bicsIndustryGroupList = this.state.bicsSectorList.filter(function (item) {\n return item.id === dealAttribute.bics_sector_id\n })[0]?.industryGroups.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n const bicsIndustryList = this.state.bicsSectorList.filter(function (item) {\n return item.id === dealAttribute.bics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.bics_industry_group_id\n })[0]?.industries.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n const bicsSubIndustryList = this.state.bicsSectorList.filter(function (item) {\n return item.id === dealAttribute.bics_sector_id\n })[0]?.industryGroups.filter(function (item) {\n return item.id === dealAttribute.bics_industry_group_id\n })[0]?.industries.filter(function (item) {\n return item.id === dealAttribute.bics_industry_id\n })[0]?.subIndustries.map(item => {\n return {\n key: item.name, value: item.id, text: item.name\n }\n });\n\n const tacfSubStrategyList = this.state.tacfSubStrategyList.map(item => { return { key: item.value, value: item.id, text: item.value } });\n const tacofSubStrategyList = this.state.tacofSubStrategyList.map(item => { return { key: item.value, value: item.id, text: item.value } });\n const marketRiskList = this.state.marketRiskList.map(item => { return { key: item.value, value: item.id, text: item.value } });\n\n const assetClassList = this.state.assetClassList.map(item => { return { key: item.value, value: item.id, text: item.value } });\n const assetRankingList = this.state.assetRankingList.map(item => { return { key: item.value, value: item.id, text: item.value } });\n const holdcoList = this.state.holdcoList.map(item => { return { key: item.value, value: item.id, text: item.value } });\n\n if (this.state.redirectTo)\n return ;\n if (!isLoading) {\n if (display) {\n return (\n
\n
\n
\n {\n this.state.showMessage === false\n ?\n null\n :\n \n }\n
\n
\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
\n\n
\n \n\n \n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
\n
\n\n
\n
\n
\n \n \n \n \n {\n positionList.map((item, i) => {\n return (\n \n );\n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n \n {\n positionList.map((item, i) => {\n return \n })\n }\n \n\n \n

Tranche Attributes

\n {\n item.hasExpired === true\n ?\n

Tranche {i + 1} (Expired)

\n :\n

Tranche {i + 1}

\n }\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
this.approveDB()}>\n \n
\n
\n
\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n
\n )\n } else {\n return (\n
Please Fill from DSS - No permission !!
\n )\n }\n } else {\n return (\n
\n \"Loading...\"\n
\n );\n }\n\n }\n}\n\nexport default DealSetup;","import React, { Component } from 'react';\n// import history from '../../history/history';\nimport config from './../../config';\nimport LOGO from '../../images/TOR_LOGO_430_2965.png';\nimport { Session } from '../../helper/session';\nimport { userBALService } from '../../bal/user.bal';\nimport { message } from 'antd';\n\nclass ChangePassword extends Component {\n constructor(props) {\n super(props);\n this.timeout = 250;\n this.mounted = false;\n this.state = {\n isOtpValidated: false,\n otp: '',\n username: '',\n password: '',\n isPasswordChanged: false,\n error_Message: '',\n token: config.token,\n showHide: 'alert alert-danger alert-dismissible fade',\n error_username: null,\n error_password: null,\n Data: {\n __MESSAGE__: 'changePassword',\n key: 'USER_AUTHENTICATION',\n username: '',\n password: '',\n GUID: ''\n },\n userInfo: null,\n display: \"none\",\n ws: null,\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleClose = this.handleClose.bind(this);\n this.changePassword = this.changePassword.bind(this);\n this.handleSubmitOtp = this.handleSubmitOtp.bind(this);\n\n userBALService.generateOtp(this.state.otp).then(otp => {\n if (otp !== \"SUCCESS\") {\n this.setState({ error_Message: `Error generating OTP : ${otp}` });\n this.handleClose();\n }\n },\n error => {\n this.setState({ error_Message: `Error generating OTP : ${error.toString()}` });\n this.handleClose();\n }\n );\n }\n\n componentWillUnmount() {\n }\n\n connectServer = () => {\n };\n\n check = () => {\n };\n\n handleClose() {\n var _showHide = this.state.showHide === 'alert alert-danger alert-dismissible fade show' ? 'alert alert-danger alert-dismissible fade' : 'alert alert-danger alert-dismissible fade show';\n if (this.mounted) {\n this.setState({ showHide: _showHide });\n }\n }\n\n handleSubmitOtp(e) {\n e.preventDefault();\n userBALService.validateOtp(this.state.otp).then(otp => {\n if (otp?.message === \"VALID\") {\n this.setState({ isOtpValidated: true });\n } else {\n this.setState({ error_Message: `Error - ${otp?.message}` });\n this.handleClose();\n }\n\n },\n error => {\n this.setState({ error_Message: `Error - ${error.toString()}` });\n this.handleClose();\n }\n );\n }\n\n handleSubmit(e) {\n e.preventDefault();\n let { error_oldPassword, error_newConfirmPassword, error_newPassword } = this.state;\n let error_Message;\n const { oldPassword, newPassword, newConfirmPassword } = this.state;\n\n if (oldPassword) {\n if (newPassword && newConfirmPassword) {\n if (newPassword.length < 8) {\n error_Message = \"Enter atleast 8 character in New password!\";\n error_newPassword = null;\n error_newConfirmPassword = null;\n }\n else if (oldPassword === newPassword) {\n error_Message = \"New Password cannot be same as Current password!\";\n error_oldPassword = null;\n error_newPassword = null;\n error_newConfirmPassword = null;\n }\n else if (newPassword === newConfirmPassword) {\n this.changePassword(oldPassword, newPassword);\n }\n else {\n error_Message = \"New Password and Confirm Password doesn't match!\";\n error_newPassword = null;\n error_newConfirmPassword = null;\n }\n }\n else {\n error_Message = \"Enter New Password and Confirm Password!\";\n error_oldPassword = true;\n }\n }\n else {\n error_Message = \"Please enter the Current Password!\";\n error_oldPassword = true;\n }\n\n if (error_Message) {\n this.setState({ error_Message: error_Message, error_newPassword: error_newPassword, error_newConfirmPassword: error_newConfirmPassword, error_oldPassword: error_oldPassword });\n this.handleClose();\n }\n }\n\n changePassword(oldPassword, newPassword) {\n userBALService.changePassword(oldPassword, newPassword).then(_user => {\n this.resetState();\n localStorage.setItem('loginStatus', 'login');\n this.setState({ userInfo: _user, error_Message: \"Password Updated successfully!\", isPasswordChanged: true });\n Session.setItem(config.token, JSON.stringify(_user));\n\n const { location } = this.props;\n const { state } = location;\n\n /* Here place request login api // go to state.from if set before */\n\n if (state && state.from) {\n this.props.history.replace(state.from);\n }\n else { // else go to home\n //this.props.history.replace('/home');\n }\n },\n error => {\n this.setState({ error_Message: `Error changing password - ${error.toString()}` });\n console.log(error.toString());\n this.handleClose();\n }\n );\n }\n\n error(_error) {\n message.error(_error);\n };\n\n logout() {\n }\n\n componentDidMount() {\n this.mounted = true;\n }\n\n handleChange(e) {\n const { name, value } = e.target;\n this.setState({\n [name]: value,\n ['error_' + name]: value\n });\n }\n\n resetState() {\n if (this.mounted) {\n this.setState({\n username: '',\n password: '',\n error_username: null,\n error_password: null\n });\n }\n }\n\n\n render() {\n return this.showPage();\n }\n\n showPage() {\n const { oldPassword, isOtpValidated, isPasswordChanged, newPassword, newConfirmPassword, error_otp, error_newConfirmPassword, error_oldPassword, error_newPassword, error_Message, otp } = this.state;\n return (\n
\n
\n
\n
\n {!isOtpValidated ?\n
\n
\n {error_Message}\n \n ×\n \n
\n
\n
\n Enter OTP sent to your email\n \n
\n
\n \n
\n
\n
\n : !isPasswordChanged ?\n
\n
\n {error_Message}\n \n ×\n \n
\n
\n

Change Password

\n
\n Current Password *\n \n
\n
\n New Password *\n \n
\n
\n Confirm Password *\n \n
\n
\n \n
\n
\n
\n : null\n }\n
\n
\n
\n
\n \"Go\"\n
\n
\n
\n
\n );\n }\n}\nexport default ChangePassword;\n","import React, { Component } from 'react';\n// import history from '../../history/history';\nimport config from './../../config';\nimport LOGO from '../../images/TOR_LOGO_430_2965.png';\nimport { Session } from '../../helper/session';\nimport { userBALService } from '../../bal/user.bal';\nimport { message } from 'antd';\n\nclass ForgotPassword extends Component {\n constructor(props) {\n super(props);\n this.timeout = 250;\n this.mounted = false;\n this.cssShowError = 'alert alert-danger alert-dismissible fade show';\n this.cssHideError = 'alert alert-danger alert-dismissible fade';\n this.state = {\n isOtpValidated: false,\n isOtpGenerated: false,\n otp: '',\n username: '',\n password: '',\n isPasswordChanged: false,\n error_Message: '',\n token: config.token,\n showHide: 'alert alert-danger alert-dismissible fade',\n error_username: null,\n error_password: null, \n Data: {\n __MESSAGE__: 'forgotPassword',\n key: 'USER_AUTHENTICATION',\n username: '',\n password: '',\n GUID: ''\n },\n userInfo: null,\n display: \"none\",\n ws: null,\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleClose = this.handleClose.bind(this);\n this.changePassword = this.changePassword.bind(this);\n this.handleSubmitOtp = this.handleSubmitOtp.bind(this);\n this.handleGenerateOtp = this.handleGenerateOtp.bind(this);\n this.handleLogin = this.handleLogin.bind(this);\n \n }\n handleLogin(e) {\n this.props.history.replace('/login');\n }\n\n handleGenerateOtp(e) {\n e.preventDefault();\n const {username} = this.state;\n if(username) {\n userBALService.generateOtpForgotPassword(this.state.username).then(otp => {\n if (otp !== \"SUCCESS\") {\n this.setState({ error_Message: `Error generating OTP : ${otp}`, showHide: this.cssShowError });\n } else {\n this.setState({ error_Message: '', showHide: this.cssHideError, isOtpGenerated: true });\n }\n },\n error => {\n this.setState({ error_Message: `Error generating OTP : ${error.toString()}`, showHide: this.cssShowError });\n }\n ); \n } else {\n this.setState({ error_Message: 'Enter the Windows Username', showHide: this.cssShowError });\n }\n }\n\n componentWillUnmount() {\n }\n\n connectServer = () => {\n };\n\n check = () => {\n };\n\n handleClose() {\n if (this.mounted) {\n this.setState({ showHide: this.cssHideError });\n }\n }\n\n handleSubmitOtp(e) {\n e.preventDefault();\n const { otp} = this.state;\n if(!isNaN(otp)) {\n userBALService.validateOtpForgotPassword(this.state.username, this.state.otp).then(otp => {\n if (otp === \"VALID\") {\n this.setState({ error_Message: '', showHide: this.cssHideError, isOtpValidated: true });\n } else {\n this.setState({ error_Message: `Error - ${otp}`, showHide: this.cssShowError }); \n }\n\n },\n error => {\n this.setState({ error_Message: `Error - ${error.toString()}`, showHide: this.cssShowError });\n }\n );\n } else {\n this.setState({ error_Message: 'Enter the numeric Otp', showHide: this.cssShowError });\n }\n }\n\n handleSubmit(e) {\n e.preventDefault();\n let { error_newConfirmPassword, error_newPassword, username, newPassword, newConfirmPassword } = this.state;\n let error_Message;\n e.preventDefault();\n\n if (newPassword && newConfirmPassword) {\n if (newPassword.length < 8) {\n error_Message = \"Enter atleast 8 character in New password!\";\n error_newPassword = null;\n error_newConfirmPassword = null;\n }\n else if (newPassword === newConfirmPassword) {\n this.changePassword(username, newPassword);\n }\n else {\n error_Message = \"New Password and Confirm Password doesn't match!\";\n error_newPassword = null;\n error_newConfirmPassword = null;\n }\n }\n else {\n error_Message = \"Enter New Password and Confirm Password!\";\n error_newPassword = true;\n error_newConfirmPassword = true;\n } \n\n if (error_Message) {\n this.setState({ error_Message: error_Message, showHide: this.cssShowError, error_newPassword: error_newPassword, error_newConfirmPassword: error_newConfirmPassword});\n }\n }\n\n changePassword(username, newPassword) {\n userBALService.changePasswordForgot(username, newPassword).then(_user => {\n this.resetState();\n localStorage.setItem('loginStatus', 'login');\n this.setState({ userInfo: _user, error_Message: \"Password Updated successfully!\", isPasswordChanged: true, showHide: this.cssShowError });\n Session.setItem(config.token, JSON.stringify(_user));\n\n const { location } = this.props;\n const { state } = location;\n\n /* Here place request login api // go to state.from if set before */\n\n if (state && state.from) {\n this.props.history.replace(state.from);\n }\n else { // else go to home\n //this.props.history.replace('/home');\n }\n },\n error => {\n this.setState({ error_Message: `Error changing password - ${error.toString()}`, showHide: this.cssShowError });\n console.log(error.toString());\n }\n );\n }\n\n error(_error) {\n message.error(_error);\n };\n\n logout() {\n }\n\n componentDidMount() {\n this.mounted = true;\n }\n\n handleChange(e) {\n const { name, value } = e.target;\n this.setState({\n [name]: value,\n ['error_' + name]: value\n });\n }\n\n resetState() {\n if (this.mounted) {\n this.setState({\n username: '',\n password: '',\n error_username: null,\n error_password: null\n });\n }\n }\n\n\n render() {\n return this.showPage();\n }\n\n showPage() {\n const { username, error_username, isOtpGenerated, isOtpValidated, isPasswordChanged, newPassword, newConfirmPassword, error_otp, error_newConfirmPassword, error_newPassword, error_Message, otp } = this.state;\n return (\n
\n\n
\n
\n
\n
\n {error_Message}\n \n × \n \n
\n { !isOtpGenerated ? \n
\n
\n \n
\n
\n \n
\n
:\n !isOtpValidated ?\n
\n
\n
\n Enter OTP sent to your email\n \n
\n
\n \n
\n
\n
\n : !isPasswordChanged ?\n
\n
\n

Change Password

\n
\n New Password *\n \n
\n
\n Confirm Password *\n \n
\n
\n \n
\n
\n
\n : \n
\n {//Login\n }\n \n Login\n \n
\n }\n
\n
\n
\n
\n \"Go\"\n
\n
\n
\n
\n );\n }\n}\nexport default ForgotPassword;\n","import React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport TorGrid from './../torgrid/torgrid';\nimport {approvalBALService} from '../../bal/approval.bal';\n\nclass ApprovalGrid extends Component {\n constructor(props) {\n super(props); \n this.state = {\n id : this.props.id,\n type: this.props.type,\n num: this.props.num,\n gridData: []\n };\n\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.refresh = this.refresh.bind(this);\n this.refresh();\n }\n \n componentDidUpdate(prevProps) { \n if (prevProps.num !== this.props.num) {\n this.refresh();\n }\n }\n\n refresh(modalVisible = false) {\n approvalBALService.getRowData({type : 'CreditProposal', id : this.state.id}).then(data => { \n this.setState({ \n gridData: data,\n ...!modalVisible && {\n showMessage: false,\n errorList: null,\n messageHeader : null,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Grid data has been refreshed!'\n }\n });\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the grid data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); });\n }\n\n render() {\n if(this.state.redirectTo)\n return ;\n return this.getTemplate();\n }\n\n componentDidMount() {\n\n }\n \n setAgGridAPI(api) {\n this.gridApi = api; \n }\n\n getTemplate() {\n const { gridData } = this.state;\n return (\n gridData.length>0 ?\n
\n \n
\n :\n );\n }\n}\n\nexport default ApprovalGrid;","import fileDownload from 'js-file-download'\n/******************************************************************************************************/\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { icApprovalBALService } from '../../bal/icApproval.bal';\nimport { approvalBALService } from '../../bal/approval.bal';\n\nimport { dealBALService } from '../../bal/deal.bal';\nimport { Prompt } from \"react-router-dom\";\nimport NumberFormat from 'react-number-format';\nimport { Dropdown } from 'semantic-ui-react';\nimport { faMinusSquare, faPlusSquare, faTrashAlt, faFileDownload, faBell } from '@fortawesome/free-solid-svg-icons';\n\nimport moment from 'moment';\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\nimport { faCheck, faSave } from '@fortawesome/free-solid-svg-icons';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync, faHome, faPlusCircle } from \"@fortawesome/free-solid-svg-icons\";\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\n\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport ApprovalGrid from \"../approval/approvalGrid\";\nimport { s3BALService } from '../../bal/s3.bal';\n\nconst type = 'CreditProposal';\nclass IcApproval extends Component { \n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user?.approvalKey?.filter(function (item) { return item && item.toLowerCase() === type.toLowerCase() });\n const isRiskRole = user?.userRoles?.filter(item => item && item.toLowerCase() === 'risk');\n\n this.state = { \n rowData: [],\n isRiskRole: isRiskRole?.length>0,\n isOpenGrid: true, \n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n existingDeal: {\n id: null,\n proposalDate: moment(new Date()).format(\"YYYY-MM-DD\"), \n approvalCondition: null, \n transactionSizeMax: null, \n sizeApproved: null, \n tacfAllocation: null, \n tifoAllocation: null, \n tacoiiAllocation: null, \n tacoiiiAllocation: null, \n creditProposalName: null,\n coinvest1: null, \n coinvest2: null,\n coinvest3: null,\n tacfIsdollar: true,\n tifoIsdollar: true,\n tacoiiIsdollar: true,\n tacoiiiIsdollar: true,\n co1Isdollar: true,\n co2Isdollar: true,\n co3Isdollar: true,\n coInvestor1Name: null,\n coInvestor2Name: null,\n coInvestor3Name: null,\n analyst1Id: null,\n analyst2Id: null,\n analyst3Id: null,\n approvalRejectionComment: null,\n approver_status: null,\n status: null,\n file: null,\n fileName: null,\n },\n newDeal: {\n id: null,\n proposalDate: moment(new Date()).format(\"YYYY-MM-DD\"), \n approvalCondition: null, \n transactionSizeMax: null, \n sizeApproved: null, \n tacfAllocation: null, \n tifoAllocation: null, \n tacoiiAllocation: null, \n tacoiiiAllocation: null, \n creditProposalName: null,\n coinvest1: null, \n coinvest2: null,\n coinvest3: null,\n tacfIsdollar: true,\n tifoIsdollar: true,\n tacoiiIsdollar: true,\n tacoiiiIsdollar: true,\n co1Isdollar: true,\n co2Isdollar: true,\n co3Isdollar: true,\n coInvestor1Name: null,\n coInvestor2Name: null,\n coInvestor3Name: null,\n analyst1Id: null,\n analyst2Id: null,\n analyst3Id: null,\n approvalRejectionComment: null,\n approver_status: null,\n status: null,\n file: null,\n fileName: null,\n },\n analystList: [],\n user: user,\n isApprover: (config.environment === 'local' && config.setAsApprover !== undefined ? config.setAsApprover : approverRole?.length > 0),\n num: -1,\n open:false\n };\n this.refresh = this.refresh.bind(this);\n //this.resetFields = this.resetFields(this);\n this.addNew = this.addNew.bind(this);\n this.handleHome = this.handleHome.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.saveDB = this.saveDB.bind(this);\n this.saveData = this.saveData.bind(this);\n this.sendReminder = this.sendReminder.bind(this);\n this.handleSendReminder = this.handleSendReminder.bind(this);\n this.handleRowSelected = this.handleRowSelected.bind(this);\n this.handleChangeCreditProposal = this.handleChangeCreditProposal.bind(this);\n this.handleChangeCheckbox = this.handleChangeCheckbox.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.approve = this.approve.bind(this);\n this.reject = this.reject.bind(this);\n this.approvalRejection = this.approvalRejection.bind(this);\n this.actionApproved = this.actionApproved.bind(this);\n this.actionRejected = this.actionRejected.bind(this);\n this.approveReject = this.approveReject.bind(this);\n\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.setAgGridAPI2 = this.setAgGridAPI2.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.togglePanel = this.togglePanel.bind(this);\n this.handleChangeNew = this.handleChangeNew.bind(this);\n this.loadAnalysts = this.loadAnalysts.bind(this);\n this.download = this.download.bind(this);\n this.remove = this.remove.bind(this);\n this.setFile = this.setFile.bind(this);\n //getFormatted = getFormatted(this);\n this.loadAnalysts();\n this.refresh(null, true);\n }\n\n loadAnalysts() {\n dealBALService.getAnalysts().then(data => { \n const { user, newDeal } = this.state;\n var analyst1Id = newDeal.analyst1Id ?? (data.filter((e) => e.id === user.id) ? user.id : null );\n this.setState({ \n analystList: data.map(item => { return { key: item.name, value: item.id, text: item.name }}),\n newDeal: {\n ...newDeal,\n analyst1Id : analyst1Id\n }\n })\n }, error => { \n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the analyst data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Analyst data could not be retrieved, please contact support!'\n }); \n console.log(error);\n }\n );\n }\n\n togglePanel(e) {\n this.setState({ open: !this.state.open })\n }\n\n refresh(e, modalVisible = false) {\n icApprovalBALService.getRowData().then(data => {\n let isApprover = this.state.isApprover;\n let inApproval = [];\n if(isApprover) {\n inApproval = data.filter(p=> p.approver_status === 'In Approval'); \n }\n this.setState({ \n gridData: data,\n inApproval: inApproval?.length > 1,\n ...!modalVisible && {\n showMessage: false,\n errorList: null,\n messageHeader : null,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Grid data has been refreshed!'\n }\n });\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the grid data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); });\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({isOpenGrid: true, modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.saveDB(null, false);\n this.setState({isOpenGrid: true, modalVisible: false});\n } else {\n this.setState({isOpenGrid: true, modalVisible: false});\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed( Number.isInteger(value) ? 0 : 2) : value;\n }\n \n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n } \n\n setAgGridAPI2(api) {\n this.gridApi2 = api;\n this.gridApprovalApi2 = api;\n } \n\n resetFields(isOpenGrid = null) {\n this.setState({\n ...(isOpenGrid) && { isOpenGrid: isOpenGrid },\n newDeal: {\n id: null, \n proposalDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n approvalCondition: null, \n transactionSizeMax: null, \n sizeApproved: null, \n tacfAllocation: null, \n tifoAllocation: null, \n tacoiiAllocation: null, \n tacoiiiAllocation: null, \n creditProposalName: null,\n coinvest1: null, \n coinvest2: null,\n coinvest3: null,\n tacfIsdollar: true,\n tifoIsdollar: true,\n tacoiiIsdollar: true,\n tacoiiiIsdollar: true,\n co1Isdollar: true,\n co2Isdollar: true,\n co3Isdollar: true,\n coInvestor1Name: null,\n coInvestor2Name: null,\n coInvestor3Name: null,\n analyst1Id: null,\n analyst2Id: null,\n analyst3Id: null,\n approvalRejectionComment: null,\n approver_status: null,\n status: null,\n file: null,\n fileName: null,\n },\n existingDeal: {\n id: null, \n proposalDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n approvalCondition: null, \n transactionSizeMax: null, \n sizeApproved: null, \n tacfAllocation: null, \n tifoAllocation: null, \n tacoiiAllocation: null, \n tacoiiiAllocation: null, \n creditProposalName: null,\n coinvest1: null, \n coinvest2: null,\n coinvest3: null,\n tacfIsdollar: true,\n tifoIsdollar: true,\n tacoiiIsdollar: true,\n tacoiiiIsdollar: true,\n co1Isdollar: true,\n co2Isdollar: true,\n co3Isdollar: true,\n coInvestor1Name: null,\n coInvestor2Name: null,\n coInvestor3Name: null,\n analyst1Id: null,\n analyst2Id: null,\n analyst3Id: null,\n approvalRejectionComment: null,\n approver_status: null,\n status: null,\n file: null,\n fileName: null,\n }\n });\n }\n\n addNew() {\n this.resetFields();\n this.setState({\n isOpenGrid : false\n });\n }\n\n approveReject = (action) => {\n const {newDeal, num} = this.state;\n const {id, approvalRejectionComment, creditProposalName } = newDeal;\n if(id) {\n approvalBALService.approve({id : id, type : type, action: action, comment: approvalRejectionComment })\n .then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: `${action} ${creditProposalName} successfully!`,\n open: false,\n newDeal: {\n ...newDeal,\n approvalRejectionComment: null,\n approver_status : action\n },\n existingDeal : {\n ...newDeal,\n approvalRejectionComment: null,\n approver_status : action\n },\n num : num + 1\n });\n this.refresh(null, true);\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while ${action} ${creditProposalName}:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: `${action} ${creditProposalName} failed!`\n }); \n console.log(error);\n this.refresh(null, true);\n }\n );\n }\n }\n \n actionApproved() {\n this.approveReject('approved');\n }\n\n actionRejected() {\n this.approveReject('rejected');\n }\n\n approvalRejection = (action) => {\n const selectedRows = this.gridApi?.getSelectedNodes();\n if(selectedRows?.length > 0) {\n const proposals = selectedRows.map(deal => {return {id: deal.data['id'], type: type, action: action} });\n\n var promises = approvalBALService.approveGrid(proposals);\n Promise.all(promises).then(data => {\n //var d = JSON.parse(data);\n var errorList = data.filter(element => element.error).map(element => { return element.error });\n if(errorList && errorList.length > 0)\n this.setState({ \n showMessage: true, \n errorList : errorList,\n messageHeader : `Error while ${ action.toLowerCase().startsWith('approve') ? 'approving' : action.toLowerCase().startsWith('reject') ? 'rejecting' : action } the request :`, \n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: `${action} failed, please contact support!`\n });\n else {\n this.setState({ \n showMessage: true, \n errorList : [], \n messageHeader : `${action} successfully!!!`, \n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: `${action} sucessfully!`\n });\n }\n this.refresh(null, true);\n }\n );\n } else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: `First select proposal(s) to ${action?.toLowerCase().startsWith('approve') ? 'Approve' : action?.toLowerCase().startsWith('reject') ? 'Reject' : action }`\n })\n }\n }\n\n\n approve() {\n this.approvalRejection('approved');\n }\n\n reject() {\n this.approvalRejection('rejected');\n }\n\n saveData(isSendForApproval, fileNameUploaded) {\n const { newDeal } = this.state;\n const { co1Isdollar, co2Isdollar, co3Isdollar, tacfIsdollar, tifoIsdollar, tacoiiIsdollar, tacoiiiIsdollar, tacfAllocation, tifoAllocation, tacoiiAllocation, tacoiiiAllocation, coinvest1, coinvest2, coinvest3} = newDeal;\n icApprovalBALService.save({\n ...newDeal,\n [tacfIsdollar ? 'tacfAmount' : 'tacfPercentage'] : tacfAllocation,\n [tifoIsdollar ? 'tifoAmount' : 'tifoPercentage'] : tifoAllocation,\n [tacoiiIsdollar ? 'tacoiiAmount' : 'tacoiiPercentage'] : tacoiiAllocation,\n [tacoiiiIsdollar ? 'tacoiiiAmount' : 'tacoiiiPercentage'] : tacoiiiAllocation,\n [co1Isdollar ? 'coinvest1Amount' : 'coinvest1Percentage'] : coinvest1,\n [co2Isdollar ? 'coinvest2Amount' : 'coinvest2Percentage'] : coinvest2,\n [co3Isdollar ? 'coinvest3Amount' : 'coinvest3Percentage'] : coinvest3,\n \n [!tacfIsdollar ? 'tacfAmount' : 'tacfPercentage'] : null,\n [!tifoIsdollar ? 'tifoAmount' : 'tifoPercentage'] : null,\n [!tacoiiIsdollar ? 'tacoiiAmount' : 'tacoiiPercentage'] : null,\n [!tacoiiiIsdollar ? 'tacoiiiAmount' : 'tacoiiiPercentage'] : null,\n [!co1Isdollar ? 'coinvest1Amount' : 'coinvest1Percentage'] : null,\n [!co2Isdollar ? 'coinvest2Amount' : 'coinvest2Percentage'] : null,\n [!co3Isdollar ? 'coinvest3Amount' : 'coinvest3Percentage'] : null,\n 'submitted': isSendForApproval,\n 'fileName' : fileNameUploaded\n }).then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: isSendForApproval ? 'Sent for Approval successfully!' : 'Data has been saved successfully!',\n existingDeal : {\n ...newDeal,\n id: data.id,\n status: isSendForApproval? 'In Approval' : 'Draft',\n fileName : fileNameUploaded\n },\n newDeal : {\n ...newDeal,\n id: data.id,\n status: isSendForApproval? 'In Approval' : 'Draft',\n fileName : fileNameUploaded\n }, \n });\n this.refresh(null, true);\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while saving the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: isSendForApproval ? 'Error sending for approval, please contact support!' : 'Data could not be saved, please contact support!'\n }); \n console.log(error); \n this.refresh(null, true);\n }\n ); \n }\n\n handleSendReminder(e) { \n this.setState({ \n showMessage: false, \n errorList: [], \n messageHeader : '',\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Sending reminder...'\n }); \n approvalBALService.sendReminder({type : type}).then(data => {\n this.setState({ \n showMessage: false, \n errorList: [], \n messageHeader : '',\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Reminder sent!'\n }); \n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while sending reminder!\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error sending reminder!'\n }); \n }\n );\n }\n\n sendReminder(e) {\n this.setState({ \n showMessage: false, \n errorList: [], \n messageHeader : '',\n modalVisible: true,\n gridReminderData : [],\n modalType: 'datagrid',\n modalHandler: 'close',\n modalHeading: 'Getting pending approvals...'\n }); \n approvalBALService.getPendingApproval({type : type}).then(data => {\n this.setState({ \n showMessage: false, \n errorList: [], \n messageHeader : '',\n modalVisible: true,\n gridReminderData : data,\n modalType: 'datagrid',\n modalHandler: 'save',\n modalHeading: 'Send reminder for below?'\n }); \n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error getting pending approvals!\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error getting pending approvals!'\n }); \n }\n );\n }\n\n saveDB(e, isSendForApproval=false) {\n const { newDeal, existingDeal } = this.state;\n const { analyst1Id, proposalDate, co1Isdollar, co2Isdollar, co3Isdollar, tacfIsdollar, tifoIsdollar, tacoiiIsdollar, tacoiiiIsdollar, sizeApproved, tacfAllocation, tifoAllocation, tacoiiAllocation, tacoiiiAllocation, coinvest1, coinvest2, coinvest3, coInvestor1Name, coInvestor2Name, coInvestor3Name, creditProposalName, status, file, fileName} = newDeal;\n var errorList = [];\n \n if(((isSendForApproval && status && status !=='Draft') || !isSendForApproval) && JSON.stringify(existingDeal) === JSON.stringify(newDeal)) {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'No changes to save or submit for approval!',\n })\n } else {\n if(!creditProposalName) {\n errorList.push(\"'Name' cannot be blank\");\n }\n if(!analyst1Id) {\n errorList.push(\"'Lead Analyst' cannot be blank\");\n }\n\n if(isSendForApproval) {\n if(!fileName && !file) {\n errorList.push('IC Memo not uploaded');\n }\n\n if(coInvestor1Name && coInvestor1Name === coInvestor2Name) {\n errorList.push(`'Co-Investor [1] Name' & 'Co-Investor [2] Name' cannot be same :${coInvestor1Name}`);\n }\n if(coInvestor1Name && coInvestor1Name === coInvestor3Name) {\n errorList.push(`'Co-Investor [1] Name' & 'Co-Investor [3] Name' cannot be same :${coInvestor1Name}`);\n }\n if(coInvestor2Name && coInvestor3Name === coInvestor2Name) {\n errorList.push(`'Co-Investor [2] Name' & 'Co-Investor [3] Name' cannot be same :${coInvestor2Name}`);\n }\n\n if(coinvest1 && !coInvestor1Name) {\n errorList.push(\"'Co-Investor [1] Name' cannot be blank\");\n }\n if(coinvest2 && !coInvestor2Name) {\n errorList.push(\"'Co-Investor [2] Name' cannot be blank\");\n }\n if(coinvest3 && !coInvestor3Name) {\n errorList.push(\"'Co-Investor [3] Name' cannot be blank\");\n }\n\n if(coInvestor1Name && !coinvest1) {\n errorList.push(`'Co-Investor [1] ${co1Isdollar ? 'amount':'percentage'}' cannot be blank`);\n }\n\n if(coInvestor2Name && !coinvest2) {\n errorList.push(`'Co-Investor [2] ${co2Isdollar ? 'amount':'percentage'}' cannot be blank`);\n }\n\n if(coInvestor3Name && !coinvest3) {\n errorList.push(`'Co-Investor [3] ${co3Isdollar ? 'amount':'percentage'}' cannot be blank`);\n }\n\n if(!proposalDate) {\n errorList.push(\"'Proposal Date' is not selected\");\n }\n \n if(!tacfAllocation && !tifoAllocation && !tacoiiAllocation && !tacoiiiAllocation) {\n errorList.push(`Please add fund allocations`);\n } else {\n let sumallocation = (tacfAllocation ?? 0) + (tifoAllocation ?? 0) + (tacoiiAllocation ?? 0) + (tacoiiiAllocation ?? 0);\n\n if(!tacfIsdollar && !tifoIsdollar && !tacoiiIsdollar && !tacoiiiIsdollar && sumallocation !== 100) {\n errorList.push(`Fund allocation percentage sum : ${sumallocation}% should be 100%`);\n\n } else if(tacfIsdollar && tifoIsdollar && tacoiiIsdollar && tacoiiiIsdollar && sumallocation !== sizeApproved) {\n errorList.push(`Fund allocation sum : $${sumallocation}M should be equal to 'Size Approved' : $${sizeApproved}M`);\n }\n }\n\n let sumcoinvest = (coinvest1 ? parseFloat(coinvest1) : 0) + (coinvest2 ? parseFloat(coinvest2) : 0) + (coinvest3 ? parseFloat(coinvest3) : 0);\n if(!co1Isdollar && !co2Isdollar && !co3Isdollar && sumcoinvest > 100) {\n errorList.push(`Co-investor percentage sum : ${sumcoinvest}% should be less than or equal to 100%`);\n } \n }\n\n if(file && !fileName) {\n const sizeFile = (file.size / 1024 / 1024).toFixed(2);\n // The size of the file.\n if (sizeFile >= 20) {\n errorList.push(`File size ${sizeFile} MB is too big, please select a file less than 20 MB`);\n }\n }\n\n if(errorList.length > 0) {\n this.setState({ \n showMessage: true, \n errorList: errorList,\n messageHeader : \"Please fix below errors:\",\n });\n } else {\n this.setState({ \n showMessage: false,\n errorList: null,\n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: isSendForApproval ? 'Sending for approval...' : 'Data save in progress...'\n });\n\n let fileNameUploaded = fileName;\n if(file && !fileName) {\n s3BALService.uploadFile({file: file}).then(data => {\n fileNameUploaded = data.fileName;\n this.saveData(isSendForApproval, fileNameUploaded);\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while saving the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: isSendForApproval ? 'Error sending for approval, please contact support!' : 'Data could not be saved, please contact support!'\n }); \n }\n );\n }\n else {\n this.saveData(isSendForApproval, fileNameUploaded);\n }\n }\n }\n }\n \n handleChange(e) {\n const { name, value } = e.target; \n this.setState({ \n newDeal: {\n ...this.state.newDeal,\n [name]: value\n }\n }); \n }\n\n handleHome() {\n const { existingDeal, newDeal } = this.state;\n if(JSON.stringify(existingDeal) !== JSON.stringify(newDeal)) {\n this.setState({\n modalVisible: true,\n modalType: 'saveChanges',\n modalHandler: 'discard',\n modalHeading: 'Do you want to discard changes?'\n })\n } else {\n this.resetFields(true); \n }\n }\n \n handleChangeCreditProposal(e, data) {\n const { tacfAmount, tifoAmount, tacoiiAmount, tacoiiiAmount, tacfPercentage, tifoPercentage, tacoiiPercentage, tacoiiiPercentage, coinvest1Amount, coinvest2Amount, coinvest3Amount, coinvest1Percentage, coinvest2Percentage, coinvest3Percentage } = data;\n this.setState({\n isOpenGrid: false,\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: false,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: null,\n existingDeal: {\n ...data,\n tacfAllocation: tacfAmount ?? tacfPercentage, \n tifoAllocation: tifoAmount ?? tifoPercentage, \n tacoiiAllocation: tacoiiAmount ?? tacoiiPercentage, \n tacoiiiAllocation: tacoiiiAmount ?? tacoiiiPercentage, \n tacfIsdollar: tacfAmount ? true : false,\n tifoIsdollar: tifoAmount ? true : false,\n tacoiiIsdollar: tacoiiAmount ? true : false,\n tacoiiiIsdollar: tacoiiiAmount ? true : false,\n coinvest1: coinvest1Amount ?? coinvest1Percentage, \n coinvest2: coinvest2Amount ?? coinvest2Percentage,\n coinvest3: coinvest3Amount ?? coinvest3Percentage,\n co1Isdollar: coinvest1Amount ? true : false,\n co2Isdollar: coinvest2Amount ? true : false,\n co3Isdollar: coinvest3Amount ? true : false\n },\n newDeal: {\n ...data,\n tacfAllocation: tacfAmount ?? tacfPercentage, \n tifoAllocation: tifoAmount ?? tifoPercentage, \n tacoiiAllocation: tacoiiAmount ?? tacoiiPercentage, \n tacoiiiAllocation: tacoiiiAmount ?? tacoiiiPercentage, \n tacfIsdollar: tacfAmount ? true : false,\n tifoIsdollar: tifoAmount ? true : false,\n tacoiiIsdollar: tacoiiAmount ? true : false,\n tacoiiiIsdollar: tacoiiiAmount ? true : false,\n coinvest1: coinvest1Amount ?? coinvest1Percentage, \n coinvest2: coinvest2Amount ?? coinvest2Percentage,\n coinvest3: coinvest3Amount ?? coinvest3Percentage,\n co1Isdollar: coinvest1Amount ? true : false,\n co2Isdollar: coinvest2Amount ? true : false,\n co3Isdollar: coinvest3Amount ? true : false\n }\n });\n }\n\n handleChangeCheckbox(e) {\n this.setState({\n newDeal: {\n ...this.state.newDeal,\n [e.target.name]: e.target.value === \"true\"\n }\n });\n }\n\n handleRowSelected(e) {\n const { data, action } = e.target;\n if(action === \"Show Changes\") {\n this.setState({ redirectTo:{pathname : '/approve', state : {id : data.id, name : data.name} } });\n } \n else {\n this.handleChangeCreditProposal(e, data);\n }\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ newDeal: { ...this.state.newDeal, [name]: value } });\n }\n\n handleChangeNew(name, value) {\n this.setState({\n newDeal: {\n ...this.state.newDeal,\n [name]: value \n }\n });\n }\n\n setFile(e) { \n this.setState({ \n newDeal : {\n ...this.state.newDeal,\n file: e.target.files[0]\n }, \n existingDeal : {\n ...this.state.existingDeal,\n file: null\n }\n });\n }\n \n download() {\n const fileName = this.state.newDeal.fileName;\n s3BALService.downloadFile(fileName).then(data => {\n //console.log(data);\n\n fileDownload(data, fileName.substring(fileName.indexOf('_') + 1));\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while downloading the attached file:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Attached file could not be downloaded, please contact support!'\n });\n });\n }\n\n remove() {\n const {newDeal, existingDeal} = this.state;\n const fileName = newDeal.fileName;\n s3BALService.deleteFile({fileName : fileName, type: type}).then(data => {\n this.setState({\n newDeal : {\n ...newDeal\n ,fileName : null\n ,isSendForApproval : false\n ,file: null\n },\n existingDeal : {\n ...existingDeal\n ,fileName : null\n ,isSendForApproval : false\n ,file: null\n }\n });\n this.refresh(null, true);\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while removing the attached file:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Attached file could not be removed, please contact support!'\n });\n });\n }\n \n render() {\n if(this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n getPage() {\n const { isRiskRole, newDeal, existingDeal, analystList, modalHeading, gridReminderData, isOpenGrid, gridData, isApprover, num, inApproval } = this.state;\n const { fileName, analyst1Id, approver_status, approvalRejectionComment, id, coInvestor1Name, coInvestor2Name, coInvestor3Name, co1Isdollar, co2Isdollar, co3Isdollar, tacfIsdollar, tifoIsdollar, tacoiiIsdollar, tacoiiiIsdollar, proposalDate, approvalCondition, sizeApproved, tacfAllocation, tifoAllocation, tacoiiAllocation, tacoiiiAllocation, coinvest1, coinvest2, coinvest3, creditProposalName } = newDeal;\n const commentText = approver_status && approver_status.toLowerCase() !=='approved' ? 'Approval comment' : 'Rejection comment'; \n return (\n
\n {\n this.state.showMessage ? \n :
\n } \n {\n isOpenGrid\n ?\n
\n
\n

IC Approval

\n {\n !isApprover && \n
\n }\n
\n {\n isRiskRole && \n
\n \n
\n }\n
\n
\n { \n return isApprover && (node.data? node.data['approver_status'] === 'In Approval' : false); } }\n />\n
\n
\n :\n
\n
\n

{id=== null ? 'New' : `Edit '${creditProposalName}'`}

\n
\n
\n
\n
\n
\n
\n Name:\n \n
\n
\n Lead Analyst:\n \n
\n
\n Proposal Date:
\n { \n this.handleChangeNew('proposalDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n autoComplete = \"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n
\n
\n Size Approved(in millions USD):\n { this.handleChangeNew('sizeApproved', values.floatValue ); }}\n suffix={'M'}\n prefix={'$'}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n

Allocations

\n
\n
\n
\n
\n TACF      \n \n
\n { this.handleChangeNew('tacfAllocation', values.floatValue); }} \n suffix={tacfIsdollar ? 'M' : '%'}\n prefix={tacfIsdollar ? '$' : ''}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n TIFO      \n \n
\n { this.handleChangeNew('tifoAllocation', values.floatValue); }}\n suffix={tifoIsdollar ? 'M' : '%'}\n prefix={tifoIsdollar ? '$' : ''}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n TACO II      \n \n
\n { this.handleChangeNew('tacoiiAllocation', values.floatValue); }}\n suffix={tacoiiIsdollar ? 'M' : '%'}\n prefix={tacoiiIsdollar ? '$' : ''}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n TACO III      \n \n
\n { this.handleChangeNew('tacoiiiAllocation', values.floatValue); }}\n suffix={tacoiiiIsdollar ? 'M' : '%'}\n prefix={tacoiiiIsdollar ? '$' : ''}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n
\n Co-Investor [1]\n
\n
\n    \n \n
\n
\n Co-Investor [2]\n
\n
\n    \n \n
\n
\n Co-Investor [3]\n
\n
\n    \n \n
\n
\n
\n
\n \n
\n
\n { this.handleChangeNew('coinvest1',values.floatValue); }}\n suffix={co1Isdollar ? 'M' : '%'}\n prefix={co1Isdollar ? '$' : ''}\n className={'form-control inputLightP'}\n disabled={isApprover}\n /> \n
\n
\n \n
\n
\n { this.handleChangeNew('coinvest2', values.floatValue); }}\n suffix={co2Isdollar ? 'M' : '%'}\n prefix={co2Isdollar ? '$' : ''}\n className={'form-control inputLightP'}\n disabled={isApprover}\n /> \n
\n
\n \n
\n
\n { this.handleChangeNew('coinvest3', values.floatValue); }}\n suffix={co3Isdollar ? 'M' : '%'}\n prefix={co3Isdollar ? '$' : ''}\n className={'form-control inputLightP'}\n disabled={isApprover}\n />\n
\n
\n
\n
\n Approval conditions(if any):\n \n
\n
\n
\n
\n {\n fileName?\n
\n
\n IC Memo : \n {fileName.substring(fileName.indexOf('_') + 1)}\n
\n
\n \n
\n
\n \n
\n
\n :\n Upload IC Memo (.pdf) : \n \n }\n
\n
\n {\n id &&\n
\n \n
\n }\n
\n
\n
\n {\n isApprover ?\n
\n
\n
\n \n
\n Approval Panel\n
\n {\n this.state.open &&\n
\n {commentText} (if any):\n
\n { \n (approver_status?.toLowerCase() !== 'approved') &&\n \n }\n {\n (approver_status?.toLowerCase() !== 'rejected') &&\n \n }\n
\n }\n
\n : \n
\n
\n \n
\n
this.saveDB(e,true)}>\n \n
\n
\n }\n
\n
\n }\n `Do you want to discard changes?`}\n />\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n
\n
:\n this.state.modalType === 'datagrid'?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
:\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\n\nexport default IcApproval;","import fileDownload from 'js-file-download'\n/******************************************************************************************************/\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { coInvestmentBALService } from '../../bal/coInvestment.bal';\n\nimport { dealBALService } from '../../bal/deal.bal';\nimport { Prompt } from \"react-router-dom\";\nimport NumberFormat from 'react-number-format';\nimport { Dropdown } from 'semantic-ui-react';\n\nimport moment from 'moment';\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\nimport { faSave } from '@fortawesome/free-solid-svg-icons';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync, faHome, faPlusCircle } from \"@fortawesome/free-solid-svg-icons\";\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\n\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { s3BALService } from '../../bal/s3.bal';\n\nconst type = 'CoInvestment';\nclass CoInvestment extends Component { \n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user?.approvalKey?.filter(function (item) { return item && item.toLowerCase() === type.toLowerCase() });\n const isRiskRole = user?.userRoles?.filter(item => item && item.toLowerCase() === 'risk');\n\n this.state = { \n rowData: [],\n isRiskRole: isRiskRole?.length>0,\n isOpenGrid: true, \n analystList: [],\n deal_id: null,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n existingDeal: {\n id:null,\n employeeId:null,\n projectName:null,\n analyst1Id:null,\n coInvestorName: null,\n dealSize: null,\n currency:\"USD\",\n introductionDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n closingDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n upfrontFee: null,\n managementFee: null,\n carryHurdle: null,\n carryParticipation: null,\n comment: null,\n dealCoStatusId:null\n },\n newDeal: {\n id:null,\n employeeId:null,\n projectName:null,\n analyst1Id:null,\n coInvestorName: null,\n dealSize: null,\n currency:\"USD\",\n introductionDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n closingDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n upfrontFee: null,\n managementFee: null,\n carryHurdle: null,\n carryParticipation: null,\n comment: null,\n dealCoStatusId:null\n },\n user: user,\n isApprover: (config.environment === 'local' && config.setAsApprover !== undefined ? config.setAsApprover : approverRole?.length > 0),\n num: -1,\n open:false\n };\n this.refresh = this.refresh.bind(this);\n //this.resetFields = this.resetFields(this);\n this.addNew = this.addNew.bind(this);\n this.handleHome = this.handleHome.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.saveDB = this.saveDB.bind(this);\n this.saveData = this.saveData.bind(this);\n this.handleRowSelected = this.handleRowSelected.bind(this);\n this.handleChangeCoInvestment = this.handleChangeCoInvestment.bind(this);\n this.handleChangeCheckbox = this.handleChangeCheckbox.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.setAgGridAPI2 = this.setAgGridAPI2.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.togglePanel = this.togglePanel.bind(this);\n this.handleChangeNew = this.handleChangeNew.bind(this);\n this.loadAnalysts = this.loadAnalysts.bind(this);\n this.loadCurrency = this.loadCurrency.bind(this);\n this.loadStatus = this.loadStatus.bind(this);\n\n this.loadAnalysts();\n this.loadCurrency();\n this.loadStatus();\n this.refresh(null, true);\n }\n\n loadCurrency() {\n dealBALService.getRates().then(data => {\n const currencyList = data.map(item => { return { key: item.Currency, value: item.Currency, text: item.Currency } });\n this.setState({ currencyList: currencyList }); \n }, error => { console.log(error); });\n }\n\n loadStatus() {\n coInvestmentBALService.getStatusList().then(data => {\n const statusList = data.map(item => { return { key: item.displayName, value: item.id, text: item.displayName } });\n this.setState({ statusList: statusList }); \n }, error => { \n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the Status list :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Status list could not be retrieved, please contact support!'\n }); \n console.log(error); });\n }\n\n loadAnalysts() {\n dealBALService.getAnalysts().then(data => { \n const { user, newDeal } = this.state;\n var analyst1Id = newDeal.analyst1Id ?? (data.filter((e) => e.id === user.id) ? user.id : null );\n this.setState({ \n analystList: data.map(item => { return { key: item.name, value: item.id, text: item.name }}),\n newDeal: {\n ...newDeal,\n analyst1Id : analyst1Id\n }\n })\n }, error => { \n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the analyst data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Analyst data could not be retrieved, please contact support!'\n }); \n console.log(error);\n }\n );\n }\n togglePanel(e) {\n this.setState({ open: !this.state.open })\n }\n\n refresh(e, modalVisible = false) {\n coInvestmentBALService.getRowData().then(data => { \n this.setState({ \n gridData: data, \n ...!modalVisible && {\n showMessage: false,\n errorList: null,\n messageHeader : null,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Grid data has been refreshed!',\n isOpenGrid: true\n }\n });\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the Co investments:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); });\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({isOpenGrid: true, modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.saveDB(null, false);\n this.setState({isOpenGrid: true, modalVisible: false});\n } else {\n this.setState({isOpenGrid: true, modalVisible: false});\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed( Number.isInteger(value) ? 0 : 2) : value;\n }\n \n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n } \n\n setAgGridAPI2(api) {\n this.gridApi2 = api;\n this.gridApprovalApi2 = api;\n } \n\n resetFields(isOpenGrid = null) {\n this.setState({\n ...(isOpenGrid) && { isOpenGrid: isOpenGrid },\n newDeal: {\n id:null,\n employeeId:null,\n projectName:null,\n analyst1Id:null,\n coInvestorName: null,\n dealSize: null,\n currency:\"USD\",\n introductionDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n closingDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n upfrontFee: null,\n managementFee: null,\n carryHurdle: null,\n carryParticipation: null,\n comment: null,\n dealCoStatusId:null\n },\n existingDeal: {\n id:null,\n employeeId:null,\n projectName:null,\n analyst1Id:null,\n coInvestorName: null,\n dealSize: null,\n currency:\"USD\",\n introductionDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n closingDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n upfrontFee: null,\n managementFee: null,\n carryHurdle: null,\n carryParticipation: null,\n comment: null,\n dealCoStatusId:null\n }\n });\n }\n\n addNew() {\n this.resetFields();\n this.setState({\n isOpenGrid : false\n });\n }\n \n saveData(isSendForApproval, fileNameUploaded) {\n const { newDeal } = this.state;\n coInvestmentBALService.save(newDeal).then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: isSendForApproval ? 'Sent for Approval successfully!' : 'Data has been saved successfully!',\n existingDeal : {\n ...newDeal,\n id: data.id\n },\n newDeal : {\n ...newDeal ,\n id: data.id\n }, \n });\n this.refresh(null, true);\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while saving the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: isSendForApproval ? 'Error sending for approval, please contact support!' : 'Data could not be saved, please contact support!'\n }); \n console.log(error); \n this.refresh(null, true);\n }\n ); \n }\n \n saveDB(e, isSendForApproval=false) {\n const { newDeal, existingDeal } = this.state;\n const { projectName, analyst1Id, dealCoStatusId, coInvestorName, dealSize } = newDeal;\n var errorList = [];\n \n if(JSON.stringify(existingDeal) === JSON.stringify(newDeal)) {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'No changes to save !',\n })\n } else {\n if(!analyst1Id) {\n errorList.push(\"'Analyst' cannot be blank\");\n } \n if(!dealCoStatusId) {\n errorList.push(\"'Status' cannot be blank\");\n } \n if(!coInvestorName) {\n errorList.push(\"'Co Investor Name' cannot be blank\");\n } \n if(!projectName) {\n errorList.push(\"'Project Name' cannot be blank\");\n } \n if(!dealSize || dealSize <= 0) {\n errorList.push(\"'Deal Size' must be positive value\");\n }\n\n if(errorList.length > 0) {\n this.setState({ \n showMessage: true, \n errorList: errorList,\n messageHeader : \"Please fix below errors:\",\n });\n } else {\n this.setState({ \n showMessage: false,\n errorList: null,\n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: isSendForApproval ? 'Sending for approval...' : 'Data save in progress...'\n });\n\n this.saveData(isSendForApproval);\n }\n }\n }\n \n handleChange(e) {\n const { name, value } = e.target; \n this.setState({ \n newDeal: {\n ...this.state.newDeal,\n [name]: value\n }\n }); \n }\n\n handleHome() {\n const { existingDeal, newDeal } = this.state;\n if(JSON.stringify(existingDeal) !== JSON.stringify(newDeal)) {\n this.setState({\n modalVisible: true,\n modalType: 'saveChanges',\n modalHandler: 'discard',\n modalHeading: 'Do you want to discard changes?'\n })\n } else {\n this.resetFields(true);\n this.refresh(null, true);\n }\n }\n \n handleChangeCoInvestment(e, data) { \n this.setState({\n isOpenGrid: false,\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: false,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: null,\n existingDeal: {\n ...data\n },\n newDeal: {\n ...data\n }\n });\n }\n\n handleChangeCheckbox(e) {\n this.setState({\n newDeal: {\n ...this.state.newDeal,\n [e.target.name]: e.target.value === \"true\"\n }\n });\n }\n\n handleRowSelected(e) {\n const { data } = e.target;\n this.handleChangeCoInvestment(e, data);\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ newDeal: { ...this.state.newDeal, [name]: value } });\n }\n\n handleChangeNew(name, value) {\n this.setState({\n newDeal: {\n ...this.state.newDeal,\n [name]: value \n }\n });\n }\n\n setFile(e) { \n this.setState({ \n newDeal : {\n ...this.state.newDeal,\n file: e.target.files[0]\n }, \n existingDeal : {\n ...this.state.existingDeal,\n file: null\n }\n });\n }\n \n download() {\n const fileName = this.state.newDeal.fileName;\n s3BALService.downloadFile(fileName).then(data => {\n\n fileDownload(data, fileName.substring(fileName.indexOf('_') + 1));\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while downloading the attached file:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Attached file could not be downloaded, please contact support!'\n });\n });\n }\n\n remove() {\n const {newDeal, existingDeal} = this.state;\n const fileName = newDeal.fileName;\n s3BALService.deleteFile({fileName : fileName, type: type}).then(data => {\n this.setState({\n newDeal : {\n ...newDeal\n ,fileName : null\n ,isSendForApproval : false\n ,file: null\n },\n existingDeal : {\n ...existingDeal\n ,fileName : null\n ,isSendForApproval : false\n ,file: null\n }\n });\n this.refresh(null, true);\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while removing the attached file:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Attached file could not be removed, please contact support!'\n });\n });\n }\n \n render() {\n if(this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n getPage() {\n const { newDeal, currencyList, statusList, existingDeal, analystList, modalHeading, gridReminderData, isOpenGrid, gridData, isApprover} = this.state;\n const { id, projectName, coInvestorName, analyst1Id, dealCoStatusId, introductionDate, closingDate, currency, dealSize, upfrontFee, managementFee, carryHurdle, carryParticipation, comment } = newDeal;\n return (\n
\n {\n this.state.showMessage ? \n :
\n } \n {\n isOpenGrid\n ?\n
\n
\n

Co Investments

\n {\n !isApprover && \n
\n }\n
\n
\n
\n { \n return false }}\n />\n
\n
\n :\n
\n
\n

{id=== null ? 'New CoInvestment' : `Edit '${projectName}' - '${coInvestorName}' `}

\n
\n
\n
\n
\n
\n
\n Lead Analyst Name:\n \n
\n
\n
\n
\n Project Name:\n \n
\n
\n
\n
\n Co Investment Name:\n \n
\n
\n
\n
\n Introduction Date:
\n { \n this.handleChangeNew('introductionDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n autoComplete = \"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n
\n
\n Closing Date:
\n { \n this.handleChangeNew('closingDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n autoComplete = \"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n
\n
\n Status:\n \n
\n
\n
\n
\n Currency:
\n \n
\n
\n
\n
\n Deal Size (in {currency}):\n { this.handleChangeNew('dealSize', values.floatValue ); }}\n //suffix={'M'}\n //prefix={'$'}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n
\n Upfront Fee %:\n { this.handleChangeNew('upfrontFee', values.floatValue); }} \n suffix={'%'}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n
\n Management Fee %:\n { this.handleChangeNew('managementFee', values.floatValue); }}\n suffix={'%'}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n
\n Carry Hurdle %:\n { this.handleChangeNew('carryHurdle', values.floatValue); }}\n suffix={'%'}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n
\n Carry Participation %:\n { this.handleChangeNew('carryParticipation', values.floatValue); }}\n suffix={'%'}\n className={'form-control inputLightP'}\n /> \n
\n
\n
\n
\n Comment:\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n }\n `Do you want to discard changes?`}\n />\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n
\n
:\n this.state.modalType === 'datagrid'?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
:\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\n\nexport default CoInvestment;","import { userBALService } from './user.bal';\nimport { Utils } from '../helper/utils';\nconst {config} = require('../config');\n\nexport const fundBALService = {\n getFunds\n ,getRowData\n};\n\nfunction getRowData(params) {\n return getFunds(params);\n}\n\nfunction getFunds(params) {\n const query = {query : \"select fund_id, display_name, [description], case display_name when 'Tor' then 'TACF' else display_name end as code from [fund] union (select 0 as fund_id, 'ALL' as [display_name], 'ALL' as [description], 'ALL' as [code] ) order by [code]\"};\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' , width: 100}, body: JSON.stringify(query) };\n return fetch(`${config.apiDDSUrl}/spdata`, requestOptions).then(Utils.handleResponse); \n}","/******************************************************************************************************/\nimport dateFormat from \"dateformat\";\nimport moment from 'moment';\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { Dropdown } from 'semantic-ui-react';\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { markingToolBALService } from '../../bal/markingTool.bal';\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport { approvalBALService } from '../../bal/approval.bal';\nimport { fundBALService } from '../../bal/fund.bal';\nimport { Prompt } from \"react-router-dom\";\n\n\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync } from \"@fortawesome/free-solid-svg-icons\";\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\n\nclass PriceMark extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user?.approvalKey?.filter(function (item) { return item && item.toLowerCase() === \"markingtool\" });\n\n this.state = { \n rowData: [],\n loadDate: true,\n isShowLoad: false, \n isShowGrid: false, \n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n user: user,\n isApprover: (config.environment === 'local' && config.setAsApprover !== undefined ? config.setAsApprover : approverRole?.length > 0),\n num: -1,\n open:false,\n fundList : [],\n fund : null,\n forDate : moment(new Date()).format(\"YYYY-MM-DD\"),\n maxDate: null\n };\n this.refresh = this.refresh.bind(this);\n\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.approve = this.approve.bind(this);\n this.save = this.save.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n //getFormatted = getFormatted(this);\n this.handleChange = this.handleChange.bind(this);\n this.togglePanel = this.togglePanel.bind(this);\n this.loadFunds = this.loadFunds.bind(this);\n this.cellValueChanged = this.cellValueChanged.bind(this);\n this.loadFunds();\n\n var date = new Date();\n date.setDate(date.getDate() - 7);\n var dateString = moment(date).format('YYYYMMDD');\n\n torGridBALService.getRowData('hedgeReport', { query: `Select MAX([Report Date]) as repDate From vw_position Where [For Frequency] = 'd' And Fund = 'TOR' And [For Report Date] > '${dateString}'` }).then(data => {\n const repDate = moment(data[0]['repDate'], \"YYYYMMDD\").format(\"YYYY-MM-DD\");\n this.setState({ maxDate: repDate, forDate: repDate, loadDate: false });\n });\n }\n\n loadFunds() {\n fundBALService.getRowData().then(data => {\n if(data) {\n this.setState({\n fundList : data.map(item => { return { key: item.display_name, value: item.display_name, text: item.code } })\n });\n }\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the fund list:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Fund list could not be retrieved, please contact support!'\n }); \n console.log(error); \n });\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n togglePanel(e) {\n this.setState({ open: !this.state.open })\n }\n\n refresh(e, modalVisible = false) {\n const { forDate, fund } = this.state;\n this.setState({ \n isShowLoad : true, \n isShowGrid : false,\n showMessage: false, \n errorList: [], \n messageHeader : null,\n modalVisible: false,\n });\n markingToolBALService.getRowData({ reportDate : forDate, fund : fund }).then(data => {\n this.setState({\n gridData: data,\n isShowLoad:false,\n isShowGrid: data?.length > 0,\n ...(data?.length <= 0) && {\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'No bonds exists for given date/fund.'\n },\n ...!modalVisible && {\n showMessage: false,\n errorList: null,\n messageHeader : null\n }\n });\n }, error => {\n this.setState({ \n isShowGrid: false,\n isShowLoad : false,\n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the grid data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); \n });\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.setState({ modalVisible: false});\n } else {\n this.setState({ modalVisible: false});\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed( Number.isInteger(value) ? 0 : 2) : value;\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n approveReject(action) {\n const { newDeal, num } = this.state;\n const { id, approvalRejectionComment, instrumentMark } = newDeal;\n approvalBALService.approve({id : id, type : 'instrumentMark', action: action, comment: approvalRejectionComment })\n .then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: `${action} ${instrumentMark} successfully!`,\n open: false,\n num : num+1\n });\n this.refresh(null, true);\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while ${action} ${instrumentMark}:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: `${action} ${instrumentMark} failed!`\n }); \n console.log(error); \n this.refresh(null, true);\n }\n );\n }\n\n save = async (sendForApproval) => { \n const { forDate, fund, gridData } = this.state;\n const pricecol = `col001_${dateFormat(forDate, \"dd-mmm-yyyy\")}`;\n let previouspricecol = `col002_${dateFormat(forDate, \"dd-mmm-yyyy\")}`;\n\n if(gridData && gridData.length > 0){\n const cols = Object.keys(gridData[0]).filter(p=> p.startsWith(\"col002_\"));\n if(cols && cols.length > 0)\n previouspricecol = cols[0];\n }\n\n let allRows = this.gridApi?.rowModel?.rowsToDisplay?.map(row => {\n if(row && row.data) {\n return {\n ...row.data,\n price : row?.data[pricecol], \n previousPrice : row?.data[previouspricecol]\n };\n } else {\n return undefined;\n }\n });\n allRows = allRows.filter(p => p !== undefined);\n\n var noPriceList = allRows.filter(p=> p && p.price === undefined);\n\n if(sendForApproval && noPriceList.length > 0) {\n var errorList = noPriceList.map(p => {\n return `${p['Investment Code']} - ${p['Description']}` \n });\n this.setState({ \n showMessage: true, \n messageHeader : `Marks for below are not specified:`,\n errorList: errorList, \n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving and sending for approval failed'\n });\n } else {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: sendForApproval ? 'Saving and sending for approval...' : 'Saving marks...',\n open: false \n });\n markingToolBALService.save(allRows, sendForApproval, forDate, fund).then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: sendForApproval ? 'Saved and sent for approval successfully!' : 'Saved marks successfully!',\n open: false ,\n gridData: data\n });\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving marks:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: sendForApproval ? 'Saving and sending for approval failed!' : 'Saving marks failed!'\n }); \n console.log(error);\n });\n }\n }\n\n approve = async () => {\n const selectedRows = this.gridApi?.getSelectedNodes();\n if(selectedRows.length > 0) {\n const proposals = selectedRows.map(deal => {return {id: deal.data['id'], type: 'CreditProposal', action: 'approved'} });\n\n var promises = approvalBALService.approveGrid(proposals);\n Promise.all(promises).then(data => {\n var errorList = data.filter(element => element.error).map(element => { return element.error });\n if(errorList && errorList.length > 0)\n this.setState({ showMessage: true, errorList : errorList, messageHeader : \"Error while approving the request :\" });\n else {\n this.setState({ showMessage: true, errorList : [], messageHeader : \"Approved Successfully\"});\n }\n this.refresh(null, true);\n }\n );\n } else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: 'First select proposal(s) to approve'\n });\n }\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ [name]: value });\n }\n \n render() {\n if(this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n cellValueChanged(e) {\n if(e && e.data) {\n let col1 = Object.keys(e.data).filter(p => p.startsWith(\"col001_\"));\n let data = this.state.gridData.filter(p=>p['Investment Code'] === e.data['Investment Code'] && p.instrument_id !== e.data.instrument_id);\n\n data = data.map(row => {\n return {\n ...row,\n [col1] : e.data[col1],\n isBloomberg : e.data.isBloomberg\n }\n })\n\n this.setState({\n GridRowsToUpdate: data\n });\n }\n }\n\n getPage() {\n const { newDeal, GridRowsToUpdate, existingDeal, modalHeading, isShowLoad, loadDate, isShowGrid, gridData, isApprover, fundList, fund, forDate, showMessage, messageHeader, errorList } = this.state;\n return (\n \n loadDate === false\n ?\n
\n {\n showMessage ?\n :
\n } \n
\n
\n

Marking Tool

\n
\n
\n For Date: \n { \n this.handleChange('forDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n filterDate={(date) => {\n const day = date.getDay();\n return day !== 0 && day !== 6;\n }}\n maxDate = {this.state.maxDate}\n autoComplete = \"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n \n
\n
\n
\n { this.save(false)}}\n showSave = {true}\n saveAndSend = {() => { this.save(true)}}\n showSaveAndSend = {!isApprover}\n\n isShowLoad = {isShowLoad}\n isShowGrid = {isShowGrid}\n cellValueChanged = {this.cellValueChanged}\n />\n
\n
\n `Do you want to discard changes?`}\n />\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n \n
\n

{modalHeading}

\n \n \n
\n
\n :\n \n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n :\n
\n \"Loading...\"\n
\n \n \n );\n }\n}\n\nexport default PriceMark;","import React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport queryString from 'query-string';\nimport { approvalBALService } from '../../bal/approval.bal';\nimport Modal from 'react-awesome-modal';\nimport ToastMessage from \"./../deals/components/toastMessage\";\n\nclass ApproveReject extends Component {\n constructor(props) {\n super(props);\n \n let params = queryString.parse(this.props.location.search);\n var id = params?.id ?? this.props?.location?.state?.id;\n var action = params?.action ?? this.props?.location?.state?.id;\n var name = params?.name ?? this.props?.location?.state?.name;\n var type = params?.type ?? this.props?.location?.state?.type;\n\n this.state = {\n id : id,\n action: action,\n name: name,\n type: type,\n display: \"none\", \n showMessage: false,\n errorList: null,\n messageHeader : null,\n modalVisible: false,\n modalType: null,\n modalHandler: null,\n modalHeading: null,\n showComment: true,\n approvalRejectionComment : null,\n buttonText : null,\n buttonTextDefault : 'Add Comment',\n redirectTo : null\n }\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.approveReject = this.approveReject.bind(this);\n this.closeErrorMessage = this.closeErrorMessage.bind(this);\n }\n\n handleChange(e) {\n const { name, value } = e.target; \n this.setState({ \n [name]: value \n }); \n }\n\n render() {\n if(this.state.redirectTo)\n return ;\n return this.getTemplate();\n }\n\n componentDidMount() {\n this.approveReject();\n }\n\n approveReject () {\n const { id, action, type, approvalRejectionComment, name, buttonText, buttonTextDefault } = this.state;\n if(id && action && type) {\n approvalBALService.approve({id:id, type:type, action:action, comment:approvalRejectionComment}).then(data => {\n this.setState({ \n showMessage: false,\n errorList: null,\n messageHeader : null,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: buttonText === buttonTextDefault ? 'Comment has been added' : `${type}:${name} id:${id} is ${action}`,\n showComment: buttonText !== buttonTextDefault,\n redirect:buttonText === buttonTextDefault,\n buttonText: buttonTextDefault,\n });\n }, error => {\n let msg = `Error ${action==='approved'? 'approving' : action==='rejected'? 'rejecting' : action} ${type}:${name} id:${id}:`;\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : msg,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n showComment: true,\n modalHeading: msg,\n buttonText: (action==='approved'? 'Approve' : action==='rejected'? 'Reject' : action)\n }); \n console.log(error); });\n } else {\n let errorMessage = `Invalid request ${action} ${type}:${name} id:${id}`;\n this.setState({ \n showMessage: true, \n errorList: [], \n messageHeader : errorMessage,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: errorMessage,\n showComment: false\n }); \n }\n }\n \n handleModalChange() {\n this.setState({\n modalVisible: false\n });\n }\n\n closeModal() {\n const { id, action, type, redirect, modalHandler } = this.state;\n if (modalHandler === 'refresh') {\n window.location.reload();\n }\n\n const paths = {'CreditProposal' : '/icApproval', 'InstrumentMark' : '/markingTool' };\n\n this.setState({\n modalVisible: false,\n ...(redirect) && { redirectTo: {pathname : paths[type], state : {id : id, action : action, type:type } } }\n });\n }\n\n closeErrorMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n getTemplate() {\n const { id, name, action, type, showComment, approvalRejectionComment, modalHeading, showMessage, messageHeader, errorList, buttonText } = this.state;\n return (\n
\n { \n showMessage ?\n \n : null\n }\n {\n showComment ? \n
\n

{type}: {name}
id:{id}
{action}

\n Optional - {action==='approved'? 'Approval' : action==='rejected'? 'Rejection' : action} comment(if any):\n
\n \n
\n :\n }\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n
\n
\n :\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\n\nexport default ApproveReject;\n","/******************************************************************************************************/\nimport moment from 'moment';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { Dropdown } from 'semantic-ui-react';\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport { fundBALService } from '../../bal/fund.bal';\nimport { Prompt } from \"react-router-dom\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync } from \"@fortawesome/free-solid-svg-icons\";\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\n\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\n\nclass Pnl extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user?.approvalKey?.filter(function (item) { return item && item.toLowerCase() === \"markingtool\" });\n\n this.state = {\n rowData: [],\n isChecked: false,\n isShowLoad: false,\n isShowGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n filterData: [],\n user: user,\n isApprover: (config.environment === 'local' && config.setAsApprover !== undefined ? config.setAsApprover : approverRole?.length > 0),\n num: -1,\n open: false,\n fundList: [],\n fund: 'TOR',\n forDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n maxDate: null\n };\n this.refresh = this.refresh.bind(this);\n\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n //getFormatted = getFormatted(this);\n this.handleChange = this.handleChange.bind(this);\n this.togglePanel = this.togglePanel.bind(this);\n this.loadFunds = this.loadFunds.bind(this);\n this.cellValueChanged = this.cellValueChanged.bind(this);\n this.filterAsset = this.filterAsset.bind(this);\n this.loadFunds();\n }\n\n componentDidMount() {\n //this.worker = new WebWorker(torgridworker);\n //this.startWorker();\n this.mounted = true;\n if (this.mounted) {\n torGridBALService.getRowData('hedgeReport', { query: `exec [sp_get_position_summary_pnl] '20210824', '${this.state.fund}';` }).then(data => {\n const { fund } = this.state;\n\n var filterData = data.filter(function (item) {\n return item['Fund'] === fund\n });\n var filterData1 = filterData.map(row1 => {\n return {\n ...row1\n , 'cellcss': 'cell-normal'\n }\n });\n var gridData = data.map(row1 => {\n return {\n ...row1\n , 'cellcss': 'cell-normal'\n }\n });\n this.setState({ gridData: gridData, filterData: filterData1 }, () => {\n this.connectServer();\n });\n });\n\n this.connectServer();\n }\n }\n\n connectServer = () => {\n var ws = new WebSocket(config.wsUrl);\n var connectInterval;\n\n ws.onopen = () => {\n console.log(\"Connected...\");\n\n this.timeout = 250;\n clearTimeout(connectInterval);\n\n if (this.mounted) {\n console.log(\"Setting state...\");\n this.setState({ ws: ws, display: \"none\" });\n //var _updateConnection = this.getData(\"updateConnection\", JSON.parse(user));\n //ws.send(_updateConnection);\n }\n };\n\n ws.onmessage = e => {\n let data = JSON.parse(e.data);\n console.log(data);\n const { fund } = this.state;\n\n if (fund === data.Fund) {\n switch (data.__MESSAGE__) {\n case \"security_tick\":\n var res = data['Current Price'] && !isNaN(data['Current Price']);\n if (res) {\n\n var rows = this.state.gridData?.filter(row => row['position_id'] === data['position_id'])\n\n if (rows && rows.length > 0) {\n var rowsFound = rows.map(row1 => {\n return {\n ...row1\n , 'Book': data['Book']\n , 'Country': data['Country']\n , 'Credit Sub-Strategy': data['Credit Sub-Strategy']\n , 'Curr': data['Curr']\n , 'Current Price': data['Current Price']\n , 'Current Quantity': data['Current Quantity']\n , 'Deal': data['Deal']\n , 'Description': data['Description']\n , 'Entry Cost': data['Entry Cost']\n , 'Factor': data['Factor']\n , 'Fund': data['Fund']\n , 'MTD FX': data['MTD FX']\n , 'MTD Interest': data['MTD Interest']\n , 'MTD Other': data['MTD Other']\n , 'MTD Price': data['MTD Price']\n , 'MV': data['MV']\n , 'Position P&L': data['Position P&L']\n , 'Prev Price': data['Prev Price']\n , 'Prev Quantity': data['Prev Quantity']\n , 'Product Type': data['Product Type']\n , 'Sector': data['Sector']\n , 'Trade P&L': data['Trade P&L']\n , '__MESSAGE__': data['__MESSAGE__']\n , 'position_id': data['position_id']\n , 'cellcss': (row1['Current Price'] < data['Current Price'] ? 'cell-green' : row1['Current Price'] > data['Current Price'] ? 'cell-red' : 'cell-blue')\n };\n });\n\n /*rowsFound.forEach(row => {\n this.props.GridRowsToUpdate.push(row); \n });*/\n if (JSON.stringify(rowsFound) !== JSON.stringify(rows)) {\n this.setState({\n GridRowsToUpdate: rowsFound\n });\n }\n //this.gridApi.batchUpdateRowData({update: rows});\n } else {\n const rows = [{\n 'Book': data['Book']\n , 'Country': data['Country']\n , 'Credit Sub-Strategy': data['Credit Sub-Strategy']\n , 'Curr': data['Curr']\n , 'Current Price': data['Current Price']\n , 'Current Quantity': data['Current Quantity']\n , 'Deal': data['Deal']\n , 'Description': data['Description']\n , 'Entry Cost': data['Entry Cost']\n , 'Factor': data['Factor']\n , 'Fund': data['Fund']\n , 'MTD FX': data['MTD FX']\n , 'MTD Interest': data['MTD Interest']\n , 'MTD Other': data['MTD Other']\n , 'MTD Price': data['MTD Price']\n , 'MV': data['MV']\n , 'Position P&L': data['Position P&L']\n , 'Prev Price': data['Prev Price']\n , 'Prev Quantity': data['Prev Quantity']\n , 'Product Type': data['Product Type']\n , 'Sector': data['Sector']\n , 'Trade P&L': data['Trade P&L']\n , '__MESSAGE__': data['__MESSAGE__']\n , 'position_id': data['position_id']\n , 'cellcss': 'cell-normal'\n }];\n this.state.gridData = [...this.state.gridData, ...rows];\n this.setState({\n GridRowsToAdd: rows\n });\n }\n }\n break;\n default:\n break;\n }\n }\n //console.log(tradersList);\n };\n\n ws.onerror = (e) => {\n //console.log(\"On error message...\");\n if (this.mounted) { this.setState({ display: 'block', error: `Socket is closed. Reconnecting in ${Math.min(10000 / 1000, (this.timeout + this.timeout) / 1000)} second.` }); }\n //console.log();\n this.timeout = this.timeout + this.timeout;\n connectInterval = setTimeout(this.check, Math.min(10000, this.timeout));\n //console.log(\"End On error message...\");\n };\n ws.onclose = (e) => {\n if (ws != null) { ws.close(); }\n //console.log(\"completed on close message...\");\n };\n };\n\n loadFunds() {\n fundBALService.getRowData().then(data => {\n if (data) {\n this.setState({\n fundList: data.map(item => { return { key: item.display_name, value: item.display_name, text: item.code } })\n });\n }\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while getting the fund list:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Fund list could not be retrieved, please contact support!'\n });\n console.log(error);\n });\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n togglePanel(e) {\n this.setState({ open: !this.state.open });\n }\n\n refresh(e, modalVisible = false) {\n torGridBALService.getRowData('hedgeReport', { query: `exec [sp_get_position_summary_pnl] '20210824', '${this.state.fund}';` }).then(data => {\n const { fund } = this.state;\n\n var filterData = data.filter(function (item) {\n return item['Fund'] === fund\n });\n var filterData1 = filterData.map(row1 => {\n return {\n ...row1\n , 'cellcss': 'cell-normal'\n }\n });\n var gridData = data.map(row1 => {\n return {\n ...row1\n , 'cellcss': 'cell-normal'\n }\n });\n this.setState({ gridData: gridData, filterData: filterData1 }, () => {\n this.connectServer();\n });\n });\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ modalVisible: false });\n } else if (this.state.modalHandler === 'save') {\n this.setState({ modalVisible: false });\n } else {\n this.setState({ modalVisible: false });\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed(Number.isInteger(value) ? 0 : 2) : value;\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ [name]: value });\n\n const { gridData } = this.state;\n\n var filterData = gridData.filter(function (item) {\n return item['Fund'] === value\n });\n\n this.setState({\n filterData: filterData\n })\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n filterAsset() {\n const { isChecked, gridData, fund } = this.state;\n\n this.setState({\n isChecked: !isChecked\n });\n let filterData = [];\n if (isChecked === false) {\n filterData = gridData.filter(function (item) {\n return [\"Cash and Equivalents\", \"Swap Financing\", \"FX Forward\"].includes(item['Product Type']) === false\n });\n\n filterData = filterData.filter(function (item) {\n return item['Deal'] !== \"MACRO HEDGE\"\n });\n\n this.setState({\n filterData: filterData\n });\n } else {\n filterData = gridData.filter(function (item) {\n return item['Fund'] === fund\n });\n\n this.setState({\n filterData: filterData\n });\n }\n }\n\n cellValueChanged(e) {\n if (e && e.data) {\n let col1 = Object.keys(e.data).filter(p => p.startsWith(\"col001_\"));\n let data = this.state.gridData.filter(p => p['Investment Code'] === e.data['Investment Code'] && p.instrument_id !== e.data.instrument_id);\n\n data = data.map(row => {\n return {\n ...row,\n [col1]: e.data[col1],\n isBloomberg: e.data.isBloomberg\n }\n })\n\n this.setState({\n GridRowsToUpdate: data\n });\n }\n }\n\n getPage() {\n const { newDeal, GridRowsToUpdate, existingDeal, modalHeading, isShowLoad, isShowGrid, filterData, isApprover, fundList, fund, showMessage, messageHeader, errorList } = this.state;\n return (\n
\n {\n showMessage ?\n :
\n }\n
\n
\n

Pnl

\n
\n \n
\n
\n \n
\n
\n
\n\n { /*For Date: \n { \n this.handleChange('forDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n filterDate={(date) => {\n const day = date.getDay();\n return day !== 0 && day !== 6;\n }}\n maxDate = {this.state.maxDate}\n autoComplete = \"off\"\n showYearDropdown\n showMonthDropdown\n />*/}\n
\n
\n \n
\n
\n
\n
\n \n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n 'Do you want to discard changes?'}\n />\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n \n
\n

{modalHeading}

\n \n \n
\n
\n :\n \n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\n\nexport default Pnl;","/******************************************************************************************************/\nimport moment from 'moment';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { Dropdown } from 'semantic-ui-react';\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { fundBALService } from '../../bal/fund.bal';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync } from \"@fortawesome/free-solid-svg-icons\";\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\n\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\n\nclass PublicPnL extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user?.approvalKey?.filter(function (item) { return item && item.toLowerCase() === \"markingtool\" });\n\n this.state = {\n rowData: [],\n isChecked: false,\n isShowGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n filterData: [],\n filterDataBtm: [],\n filterDataTop: [],\n filterDataMtdBtm: [],\n filterDataMtdTop: [],\n hideBottomTables: true,\n user: user,\n isApprover: (config.environment === 'local' && config.setAsApprover !== undefined ? config.setAsApprover : approverRole?.length > 0),\n num: -1,\n fundList: [],\n fund: 'ALL',\n forDate: moment(new Date()).format(\"YYYY-MM-DD\"),\n maxDate: null\n };\n this.refresh = this.refresh.bind(this);\n\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.toggleView = this.toggleView.bind(this);\n this.loadFunds = this.loadFunds.bind(this);\n this.cellValueChanged = this.cellValueChanged.bind(this);\n this.loadFunds();\n this.filterData = this.filterData.bind(this);\n }\n\n componentDidMount() {\n this.mounted = true;\n if (this.mounted) {\n this.connectServer();\n }\n }\n\n filterData = () => {\n let filterDataBackup = this.state.gridData;\n const {fund} = this.state;\n\n if(fund !== 'ALL') {\n filterDataBackup = filterDataBackup.filter(function (item) {\n return item['fund'] === fund\n });\n }\n\n const filterDataBtm = []; \n const filterDataTop = [];\n const filterDataMtdBtm = []; \n const filterDataMtdTop = []; \n\n for (const item of filterDataBackup) {\n if (item[\"pnl total\"] < 0) {\n filterDataBtm.push(item);\n } else if (item[\"pnl total\"] > 0) {\n filterDataTop.push(item);\n }\n\n if (item[\"mtd pnl total\"] < 0) {\n filterDataMtdBtm.push(item);\n } else if (item[\"mtd pnl total\"] > 0) {\n filterDataMtdTop.push(item);\n }\n }\n\n // console.log(filterDataBtm, filterDataTop);\n\n this.setState({\n filterDataBtm: filterDataBtm,\n filterDataTop: filterDataTop,\n filterDataMtdBtm: filterDataMtdBtm,\n filterDataMtdTop: filterDataMtdTop\n })\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.gridData !== prevState.gridData || this.state.filterData !== prevState.filterData) {\n this.filterData();\n }\n }\n\n connectServer = () => {\n var ws = new WebSocket(config.wsUrl);\n var connectInterval;\n\n ws.onopen = () => {\n console.log(\"Connected...\");\n //TODO: Need to send actual token\n ws.send('{\"__messagetype__\": \"login\", \"token\" : \"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhc3JpdmFzdGF2YV90b3IiLCJ1c2VybmFtZSI6ImFzcml2YXN0YXZhX3RvciIsImlkIjo1LCJpYXQiOjE3MDc0MDI0NTAsImV4cCI6MTcwODAwNzI1MH0.Drrz3nilz54s9jGIUqjNRPmup6Cn0LOvc-FsXre_hjs\"}');\n\n this.timeout = 250;\n clearTimeout(connectInterval);\n\n if (this.mounted) {\n console.log(\"Setting state...\");\n this.setState({ ws: ws, display: \"none\" });\n //var _updateConnection = this.getData(\"updateConnection\", JSON.parse(user));\n //ws.send(_updateConnection);\n }\n };\n\n ws.onmessage = e => {\n let data = JSON.parse(e.data);\n // console.log(\"Data ----> \", data);\n\n switch (data.__MESSAGE__) {\n case \"security_tick\":\n var res = data['price_current'] && !isNaN(data['price_current']);\n if (res) {\n\n var rows = this.state.gridData?.filter(row => row['position_id'] === data['position_id'])\n\n if (rows && rows.length > 0) {\n var rowsFound = rows.map(row1 => {\n return {\n ...row1\n , ...data\n , 'cellcss': (row1['price_current'] < data['price_current'] ? 'cell-green' : row1['price_current'] > data['price_current'] ? 'cell-red' : 'cell-blue')\n };\n });\n\n \n rowsFound.forEach(row => {\n if (row?.cellcss !== 'cell-blue') {\n console.log('CSS: ', row?.cellcss, row.position_id)\n const newGridData = [...this.state.gridData];\n\n const index = newGridData.findIndex((item) => item.position_id === row.position_id);\n\n if(index !== -1) {\n newGridData[index] = { ...row };\n }\n\n this.setState({\n gridData: newGridData\n })\n } \n });\n\n \n\n\n if (JSON.stringify(rowsFound) !== JSON.stringify(rows)) {\n this.setState({\n GridRowsToUpdate: rowsFound\n });\n // console.log(\"Updating Rows: \");\n // console.log(rowsFound);\n }\n //this.gridApi.batchUpdateRowData({update: rows});\n } else {\n const rows = [{\n ...data\n , 'cellcss': 'cell-normal'\n }];\n const gridData = [...this.state.gridData, ...rows];\n const filterData = [...this.state.filterData, ...rows];\n\n this.setState({\n gridData: gridData,\n filterData: filterData\n })\n\n // console.log(\"Adding Rows: \");\n // console.log(rows);\n }\n }\n break;\n default:\n break;\n }\n };\n\n ws.onerror = (e) => {\n console.log(\"On error message...\");\n console.log(e);\n if (this.mounted) { this.setState({ display: 'block', error: `Socket is closed. Reconnecting in ${Math.min(10000 / 1000, (this.timeout + this.timeout) / 1000)} second.` }); }\n //console.log();\n this.timeout = this.timeout + this.timeout;\n connectInterval = setTimeout(this.check, Math.min(10000, this.timeout));\n console.log(\"End On error message...\");\n };\n ws.onclose = (e) => {\n if (ws != null) { ws.close(); }\n console.log(\"completed on close message...\");\n };\n };\n\n loadFunds() {\n fundBALService.getRowData().then(data => {\n if (data) {\n this.setState({\n fundList: data.map(item => { return { key: item.display_name, value: item.display_name, text: item.code } })\n });\n }\n }, error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: \"Error while getting the fund list:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Fund list could not be retrieved, please contact support!'\n });\n console.log(error);\n });\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n toggleView(e) {\n this.setState({ hideBottomTables: !this.state.hideBottomTables });\n }\n\n refresh(e, modalVisible = false) {\n this.connectServer();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ modalVisible: false });\n } else if (this.state.modalHandler === 'save') {\n this.setState({ modalVisible: false });\n } else {\n this.setState({ modalVisible: false });\n }\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n handleDropDownChange(e, { name, value }) {\n const { gridData } = this.state;\n this.setState({ [name]: value });\n\n if (value === \"ALL\") {\n this.setState({ filterData: gridData })\n } else {\n var filterData = gridData.filter(function (item) {\n return item['fund'] === value\n });\n\n this.setState({\n filterData: filterData\n })\n }\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n cellValueChanged(e) {\n if (e && e.data) {\n let col1 = Object.keys(e.data).filter(p => p.startsWith(\"col001_\"));\n let data = this.state.gridData.filter(p => p['Investment Code'] === e.data['Investment Code'] && p.instrument_id !== e.data.instrument_id);\n\n data = data.map(row => {\n return {\n ...row,\n [col1]: e.data[col1],\n isBloomberg: e.data.isBloomberg\n }\n })\n\n this.setState({\n GridRowsToUpdate: data\n });\n }\n }\n\n getPage() {\n const { GridRowsToUpdate, modalHeading, hideBottomTables, filterData, filterDataBtm, filterDataTop, isApprover, fundList, fund, showMessage, messageHeader, errorList } = this.state;\n if(this.state.gridData.length > 0) {\n return (\n
\n {\n showMessage ?\n :
\n }\n
\n
\n

Public Pnl Dashboard

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n {\n hideBottomTables\n ?\n
\n :\n
\n
\n
\n \n
\n
\n \n
\n {/*
\n \n
\n
\n \n
*/}\n
\n
\n }\n
\n
\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n \n
\n

{modalHeading}

\n \n \n
\n
\n :\n \n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n } else {\n return (\n
\n \"Loading...\"\n
\n );\n }\n }\n}\n\nexport default PublicPnL;","import { Utils } from '../../helper/utils';\nimport './../../App.css'\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { Prompt } from \"react-router-dom\";\nimport { covenantMasterBALService } from '../../bal/covenantMaster.bal';\nimport { covenantTargetBALService } from '../../bal/covenantTarget.bal';\nimport history from '../../history/history';\nimport TorGrid from '../torgrid/torgrid';\nimport config from './../../config';\nimport { Session } from '../../helper/session';\n\nclass CovenantDashboard extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n const user = JSON.parse(Session.getItem(config.token)); \n const approverRole = user.userRoles.filter(function (item) { return item === \"CovenantApprover\" });\n\n this.state = {\n ...userBALService.getUserDetails(),\n rowData: [],\n user: user,\n isApprover: approverRole.length > 0,\n isOpenGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n editType: 'fullRow',\n existingDealDetails: [],\n newDealDetails: [],\n dealList: [],\n editorState: null,\n fordate: null,\n isShowLoad: false,\n isShowGrid: true,\n includeDate: true, \n toggleRefresh: true,\n deal: null,\n fund: 'All',\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"ALL\", value: \"All\" }\n ], \n covenantFrequencyList: null,\n covenantCategoryList: null,\n covenantTypeList: null,\n newCovenant : {\n id:null,\n dealId:null,\n covenantTypeId : null,\n covenantFrequencyId : null, \n covenantCategoryId : null,\n startDate : null, \n endDate : null, \n daysDue : 0\n },\n };\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.getPage = this.getPage.bind(this);\n this.refresh = this.refresh.bind(this);\n this.save = this.save.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleChangeValues = this.handleChangeValues.bind(this);\n this.handleChangeNew = this.handleChangeNew.bind(this);\n this.getFormatted = this.getFormatted.bind(this);\n this.updateGridData = this.updateGridData.bind(this);\n this.addNew = this.addNew.bind(this);\n this.approveCovenants = this.approveCovenants.bind(this);\n this.refresh(null);\n }\n\n addNew() {\n history.push('/covenantNew');\n window.location.pathname = '/covenantNew';\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed(0) : value;\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n \n save (rowData) {\n rowData = rowData.map(p=>p.data);\n console.log(rowData);\n \n const modifiedRows = rowData.filter(p=>((!Utils.isBlank(p.value1) && Utils.isBlank(p.valueNew1)) || (Utils.isBlank(p.value1) && !Utils.isBlank(p.valueNew1)) || p.value1 !== p.valueNew1 || p.statusObject?.code !== p.covenantStatusId)).map (p => {\n return {\n ...{id : p.id},\n ...(p.value1 !== p.valueNew1) && {value: p.valueNew1}, \n ...(p.statusObject?.code !== p.covenantStatusId) && {covenantStatusId: p.statusObject?.code}, \n } \n }\n );\n\n const commentRows = rowData.filter(p=>!Utils.isBlank(p.commentNew)).map(\n p=> {\n return {\n id : p.id,\n comment : p.commentNew\n }\n }\n ); \n console.log(modifiedRows);\n console.log(commentRows);\n } \n\n updateGridData(data, targets) {\n let showGrid = false;\n if(data && data.length > 0) {\n data = data.map(row => { return {\n ...row, \n existingValue: row?.value,\n statusObject : { name: row.status, code : row.covenantStatusId },\n valueNew1 : row.value1,\n commentNew : row.comment,\n targets : targets?.filter(p => p.covenantMasterId === row.id)\n }\n });\n showGrid = true;\n } \n\n this.setState({\n gridData: data,\n targets : targets,\n showGrid: showGrid\n }, () => {\n console.log(data);\n }); \n }\n\n refresh(deal) {\n covenantTargetBALService.getRowData().then(targets => {\n\n covenantMasterBALService.getRowData().then(data => {\n this.updateGridData(data, targets);\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while retrieving...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while retrieving data!'\n }); \n console.log(error);\n }); \n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while retrieving...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while retrieving data!'\n }); \n console.log(error);\n });\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n \n handleDropDownChange(e, { name, value }) {\n this.setState({ newCovenant: { ...this.state.newCovenant, [name]: value } });\n }\n\n handleChangeNew(name, value) {\n this.setState({\n newCovenant: {\n ...this.state.newCovenant,\n [name]: value \n }\n });\n }\n\n handleChangeValues(e) { \n const { name, value } = e.target; \n this.setState({ \n values: {\n ...this.state.values,\n [name]: value\n }\n }); \n }\n\n approveCovenants = async () => {\n const selectedRows = this.gridApi?.getSelectedNodes();\n if(selectedRows.length > 0) {\n const covenants = selectedRows.map(covenantMaster => {return {id: covenantMaster.data['id']} });\n console.log(covenants);\n\n var promises = covenantMasterBALService.approve(covenants);\n Promise.all(promises).then(data => {\n //var d = JSON.parse(data);\n var errorList = data.filter(element => element.error).map(element => { return element.error });\n if(errorList && errorList.length > 0) {\n this.setState({ showMessage: true, errorList : errorList, errorHeader : \"Error while approving the Covenant:\", toggleRefresh : !this.state.toggleRefresh });\n } else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: 'Approved Successfully!'\n });\n }\n }\n );\n\n this.refresh(null);\n }\n else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: 'First select covenant master(s) to approve'\n });\n }\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n }\n\n getPage() {\n const { includeDate, gridData, isShowLoad, toggleRefresh, isShowGrid, isApprover, newCovenant, existingCovenant, modalType, modalVisible, modalHeading, gridReminderData } = this.state;\n const { startDate, endDate } = newCovenant\n return (\n
\n
\n\n {\n this.state.showMessage ?\n :
\n } \n
\n
\n \n
\n
\n {\n return isApprover && (node.data? node.data['approved'] === false : false);\n } }\n />\n
\n \n this.closeModal()}\n onClickClose={() => this.closeModal()}\n onClickYes={() => this.handleModalChange()}\n generateReport={() => this.generateReport()}\n handleChange={this.handleChange}\n handleDropDownChange={this.handleDropDownChange} />\n
\n );\n }\n}\n\nexport default CovenantDashboard;","import './../../App.css'\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport NumberFormat from 'react-number-format';\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { Prompt } from \"react-router-dom\";\nimport { covenantTargetBALService } from '../../bal/covenantTarget.bal';\nimport { covenantMasterBALService } from '../../bal/covenantMaster.bal';\nimport { dealBALService } from '../../bal/deal.bal';\nimport moment from 'moment';\nimport { Dropdown } from 'semantic-ui-react'; \nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSave, faHome } from '@fortawesome/free-solid-svg-icons';\nimport DatePicker from 'react-datepicker';\nimport TorGrid from '../torgrid/torgrid';\nimport history from '../../history/history';\nimport JoditEditor from \"jodit-react\";\n\nclass CovenantNew extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n\n this.state = {\n ...userBALService.getUserDetails(),\n rowData: [],\n isOpenGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n editType: 'fullRow',\n existingDealDetails: [],\n newDealDetails: [],\n dealList: [],\n editorState: null,\n fordate: null,\n isShowLoad: false,\n isShowGrid: true,\n includeDate: true, \n deal: null,\n fund: 'All',\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"ALL\", value: \"All\" }\n ], \n covenantFrequencyList: null,\n covenantCategoryList: null,\n covenantTypeList: null,\n oldCovenant : {\n id:null,\n dealId:null,\n covenantTypeId : null,\n covenantFrequencyId : null, \n covenantCategoryId : null,\n startDate : null, \n endDate : null, \n daysDue : 0,\n loan: null,\n covenantCategory : null,\n comment : null\n },\n newCovenant : {\n id:null,\n dealId:null,\n covenantTypeId : null,\n covenantFrequencyId : null, \n covenantCategoryId : null,\n startDate : null, \n endDate : null, \n daysDue : 0,\n loan: null,\n covenantCategory : null,\n comment : null\n },\n joditConfig: {\n readonly: false // all options from https://xdsoft.net/jodit/doc/,\n }\n };\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.getPage = this.getPage.bind(this);\n this.save = this.save.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleDropDownChangeCovenantType = this.handleDropDownChangeCovenantType.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleChangeValues = this.handleChangeValues.bind(this);\n this.populateDeals = this.populateDeals.bind(this);\n this.populateCovenantFrequency = this.populateCovenantFrequency.bind(this);\n this.populateCovenantType = this.populateCovenantType.bind(this);\n this.handleChangeNew = this.handleChangeNew.bind(this);\n this.getFormatted = this.getFormatted.bind(this);\n this.handleHome = this.handleHome.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.goHome = this.goHome.bind(this);\n this.handleDropDownChangeDeal = this.handleDropDownChangeDeal.bind(this);\n \n this.populateDropDownLists();\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({isOpenGrid: true, modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.saveDB(null, false);\n this.setState({isOpenGrid: true, modalVisible: false});\n } else {\n this.setState({isOpenGrid: true, modalVisible: false});\n }\n }\n\n goHome() {\n history.push('/covenantdashboard');\n window.location.pathname = '/covenantdashboard';\n }\n\n handleHome() {\n const { oldCovenant, newCovenant } = this.state;\n if(JSON.stringify(oldCovenant) !== JSON.stringify(newCovenant)) {\n this.setState({\n modalVisible: true,\n modalType: 'saveChanges',\n modalHandler: 'discard',\n modalHeading: 'Do you want to discard changes?'\n })\n } else {\n //this.resetFields(true);\n //this.refresh(null, true);\n //window.open(\"/covenantdashboard\");\n this.goHome();\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed(0) : value;\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n \n save (rowData) {\n const { newCovenant } = this.state;\n rowData = rowData.map(p=>p.data);\n\n console.log(newCovenant);\n console.log(rowData);\n\n covenantMasterBALService.save(newCovenant).then( \n data => {\n console.log(data);\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved data successfully!',\n open: false,\n deal:null\n }, ()=> {\n rowData = rowData.map(p=> {return {...p, covenantMasterId:data.id}});\n covenantTargetBALService.save(rowData).then(\n data => {\n console.log(data);\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved data successfully!',\n open: false,\n deal:null,\n rowData : null, \n oldCovenant : {\n id:null,\n dealId:null,\n covenantTypeId : null,\n covenantFrequencyId : null, \n startDate : null, \n endDate : null, \n daysDue : 0,\n loan : null,\n covenantCategory : null,\n comment : null\n },\n newCovenant : {\n id:null,\n dealId:null,\n covenantTypeId : null,\n covenantFrequencyId : null, \n startDate : null, \n endDate : null, \n daysDue : 0,\n loan : null,\n covenantCategory : null,\n comment : null\n }\n });\n });\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving covenant target:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving data failed!'\n }); \n console.log(error);\n }); \n } \n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving covenant master :`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving data failed!'\n }); \n console.log(error);\n });\n }\n\n populateDeals() {\n dealBALService.getAllDealLoans().then(data => {\n const dealList = [];\n data.map((item) => {\n var findItem = dealList.find((x) => x.value === item.dealId);\n if (!findItem) dealList.push({ key: item.deal, value: item.dealId, text: item.deal }); \n return item;\n });\n \n const dealListSorted = [].concat(dealList).sort((a, b) => a.text.localeCompare(b.text) );\n\n const loanList = data.filter(function (item) {\n return (item ? true : false);\n }).map(item => { return { key: item.description, value: item.description, text: item.description, dealId : item.dealId } });\n \n this.setState({ dealList: dealListSorted, loanList : loanList });\n }, error => {\n this.setState({\n showMessage: true,\n messageHeader: 'Error while getting the deals:',\n errorList: [error],\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while getting the deals:'\n });\n console.log(error);\n });\n }\n\n populateCovenantFrequency() {\n covenantMasterBALService.getAllCovenantFrequency().then(data => {\n let list = data.filter(function (item) {\n return (item ? true : false);\n }).map(item => { return { key: item.name, value: item.id, text: item.name } });\n\n this.setState({ covenantFrequencyList: list });\n }, error => {\n this.setState({\n showMessage: true,\n messageHeader: 'Error while getting the Covenant Frequency List:',\n errorList: [error],\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while getting the Covenant Frequency List:'\n });\n console.log(error);\n });\n }\n\n populateCovenantType() {\n covenantMasterBALService.getAllCovenantCategory().then(categories => {\n let categoryList = categories.filter(function (item) {\n return (item ? true : false);\n }).map(item => { return { key: item.name, value: item.id, text: item.name } });\n\n covenantMasterBALService.getAllCovenantType().then(types => {\n \n var typeCategoryDict = {};\n\n let typeList = types.filter(function (item) {\n return (item ? true : false);\n }).map(item => { \n var categoryName = categories.filter(p => p.id === item.covenantCategoryId )[0].name;\n typeCategoryDict = {...typeCategoryDict, [item.id] : categoryName }\n return { key: item.name, value: item.id, text: item.name } \n });\n\n this.setState({ covenantTypeList: typeList, covenantCategoryList: categoryList, typeCategoryDict : typeCategoryDict });\n }, error => {\n this.setState({\n showMessage: true,\n messageHeader: 'Error while getting the Covenant Type List:',\n errorList: [error],\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while getting the Covenant Type List:'\n });\n console.log(error);\n }); \n }, error => {\n this.setState({\n showMessage: true,\n messageHeader: 'Error while getting the Covenant Category List:',\n errorList: [error],\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while getting the Covenant Category List:'\n });\n console.log(error);\n });\n }\n\n populateDropDownLists() {\n this.populateDeals();\n this.populateCovenantFrequency();\n this.populateCovenantType();\n } \n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n \n handleDropDownChangeDeal(e, { name, value }) {\n \n const { loanList } = this.state;\n\n var dealLoanList = loanList.filter(p=> p.dealId === value);\n\n this.setState({ dealLoanList : dealLoanList, newCovenant: { ...this.state.newCovenant, [name]: value, loan: null } });\n }\n \n handleDropDownChange(e, { name, value }) {\n this.setState({ newCovenant: { ...this.state.newCovenant, [name]: value } });\n }\n \n handleDropDownChangeCovenantType(e, { name, value }) {\n const { typeCategoryDict } = this.state;\n this.setState({ newCovenant: { ...this.state.newCovenant, [name]: value, covenantCategory : typeCategoryDict[value] } });\n }\n\n handleChangeNew(name, value) {\n this.setState({\n newCovenant: {\n ...this.state.newCovenant,\n [name]: value \n }\n });\n }\n\n handleChangeValues(e) { \n const { name, value } = e.target; \n this.setState({ \n values: {\n ...this.state.values,\n [name]: value\n }\n }); \n }\n\n getPage() {\n const { includeDate, rowData, joditConfig, isShowLoad, isShowGrid, newCovenant, existingCovenant, modalType, dealList, covenantFrequencyList, dealLoanList, covenantTypeList, modalVisible, modalHeading, gridReminderData } = this.state;\n const { id, dealId, covenantTypeId, covenantFrequencyId, loan, covenantCategory, startDate, endDate, daysDue, comment } = newCovenant\n return (\n
\n {\n this.state.showMessage ?\n :
\n } \n
\n
\n

{id=== null ? 'New ' : `Edit`}

\n
\n
\n
\n
\n
\n
\n Deal:\n
\n
\n \n
\n
\n
\n
\n Loan:\n
\n
\n \n
\n
\n
\n
\n Type:\n
\n
\n \n
\n
\n
\n
\n Metric:\n
\n
\n {covenantCategory}\n
\n
\n
\n
\n Frequency:\n
\n
\n \n
\n
\n
\n
\n Start Date:
\n
\n
\n { \n this.handleChangeNew('startDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n autoComplete = \"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n
\n
\n End Date:\n
\n
\n { \n this.handleChangeNew('endDate', date ? moment(date).format(\"YYYY-MM-DD\") : null)\n }}\n autoComplete = \"off\"\n showYearDropdown\n showMonthDropdown\n />\n
\n
\n
\n
\n Days Due:\n
\n
\n { this.handleChangeNew('daysDue', values.floatValue ); }}\n //suffix={'M'}\n //prefix={'$'}\n className={'form-control inputLightP'}\n />\n
\n
\n
\n
\n Comment:\n
\n
\n this.setState({ newCovenant : {...this.state.newCovenant, comment: newComment} })} // preferred to use only this option to update the content for performance reasons\n //disabled={isDisabled}\n //hidden={isDisabled}\n readonly//={isDisabled}\n\n askBeforePasteHTML={false}\n askBeforePasteFromWord={false}\n defaultActionOnPaste=\"insert_clear_html\"\n />\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n this.closeModal()}\n onClickClose={() => this.closeModal()}\n onClickYes={() => this.goHome()}\n generateReport={() => this.generateReport()}\n handleChange={this.handleChange}\n handleDropDownChange={this.handleDropDownChange} />\n
\n );\n }\n}\n\nexport default CovenantNew;","import { Utils } from '../../helper/utils';\nimport './../../App.css'\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom' \nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { Prompt } from \"react-router-dom\";\nimport { covenantInstanceBALService } from '../../bal/covenantInstance.bal'; \nimport TorGrid from '../torgrid/torgrid';\n\nclass CovenantInstance extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n\n this.state = {\n ...userBALService.getUserDetails(),\n isSaving : false,\n rowData: [],\n isOpenGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n editType: 'fullRow',\n existingDealDetails: [],\n newDealDetails: [],\n dealList: [],\n editorState: null,\n fordate: null,\n isShowLoad: false,\n isShowGrid: true,\n includeDate: true, \n deal: null,\n fund: 'All',\n selectedOption:'Due',\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"ALL\", value: \"All\" }\n ], \n covenantFrequencyList: null,\n covenantCategoryList: null,\n covenantTypeList: null,\n newCovenant : {\n id:null,\n dealId:null,\n covenantTypeId : null,\n covenantFrequencyId : null, \n covenantCategoryId : null,\n startDate : null, \n endDate : null, \n daysDue : 0\n }\n };\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.getPage = this.getPage.bind(this);\n this.refresh = this.refresh.bind(this);\n this.save = this.save.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleChangeValues = this.handleChangeValues.bind(this);\n this.handleChangeNew = this.handleChangeNew.bind(this);\n this.getFormatted = this.getFormatted.bind(this);\n this.updateGridData = this.updateGridData.bind(this);\n this.handleOptionChange = this.handleOptionChange.bind(this);\n this.setError = this.setError.bind(this);\n \n this.refresh(this.state.selectedOption);\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed(0) : value;\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n \n save(rowData) {\n this.setState({isSaving : true, gridData : null});\n rowData = rowData.map(p=>p.data);\n\n console.log(rowData);\n \n const modifiedRows = rowData.filter(p=>((!Utils.isBlank(p.value1) && Utils.isBlank(p.valueNew1)) || (Utils.isBlank(p.value1) && !Utils.isBlank(p.valueNew1)) || p.value1 !== p.valueNew1 || p.statusObject?.code !== p.covenantStatusId)).map (p => {\n return {\n ...{id : p.id},\n ...(p.value1 !== p.valueNew1) && {value: p.valueNew1}, \n ...(p.statusObject?.code !== p.covenantStatusId) && {covenantStatusId: p.statusObject?.code}, \n } \n }\n );\n\n const commentRows = []\n rowData.filter(p=>!Utils.isBlank(p.commentNew)).map( \n p=> {\n var findItem = commentRows.find((x) => x.id === p.id);\n if (!findItem) commentRows.push({ id : p.id, comment : p.commentNew }); \n return p;\n }\n );\n\n const saveInstance = covenantInstanceBALService.save(modifiedRows).then(data => {\n //this.updateGridData(data, this.state.comments, this.state.selectedOption);\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving Covenant Instance Data...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while saving Covenant Instance Data!',\n isSaving : false\n }); \n console.log(error);\n });\n\n const saveComment = covenantInstanceBALService.saveComment(commentRows).then(data => {\n this.refresh(this.state.selectedOption);\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving Covenant Instance Comments...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while saving Covenant Instance Comments!',\n isSaving : false\n }); \n console.log(error);\n });\n Promise.all([saveInstance, saveComment]);\n console.log(modifiedRows);\n console.log(commentRows);\n \n }\n\n updateGridData(data, comments, selectedOption) {\n let showGrid = false;\n if(data && data.length > 0) {\n data = data.map(row => { return {\n ...row, \n existingValue: row?.value,\n statusObject : { name: row.status, code : row.covenantStatusId },\n valueNew1 : row.value1,\n commentNew : row.comment,\n comments : comments?.filter(p => p.covenantInstanceId === row.id),\n attachments : { path : `covenant~${row.id}`, files : [] } \n }\n });\n showGrid = true;\n }\n\n this.setState({\n showMessage: false, \n gridData: data,\n isShowGrid: showGrid,\n selectedOption : selectedOption,\n isSaving : false\n }, () => {\n console.log(data);\n }); \n }\n\n setError(error, selectedOption) {\n this.setState({ \n showMessage: true, \n selectedOption : selectedOption,\n errorList: [error], \n messageHeader : `Error while retrieving...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while retrieving Covenants!'\n }); \n console.log(error);\n }\n\n refresh(selectedOption) {\n this.setState({ isShowGrid: false, gridData: [] }, () => {\n covenantInstanceBALService.getAllComments().then(comments => {\n\n covenantInstanceBALService.getRowDataBy(selectedOption).then(data => {\n this.updateGridData(data, comments, selectedOption);\n }, error => {\n this.setError(error, selectedOption);\n }); \n }, error => {\n this.setError(error, selectedOption);\n });\n });\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n \n handleDropDownChange(e, { name, value }) {\n this.setState({ newCovenant: { ...this.state.newCovenant, [name]: value } });\n }\n\n handleChangeNew(name, value) {\n this.setState({\n newCovenant: {\n ...this.state.newCovenant,\n [name]: value \n }\n });\n }\n\n handleChangeValues(e) { \n const { name, value } = e.target; \n this.setState({ \n values: {\n ...this.state.values,\n [name]: value\n }\n }); \n }\n\n handleOptionChange (e) {\n //this.setState({ selectedOption: e.target.value });\n this.refresh(e.target.value);\n }\n\n getPage() {\n const { isSaving, includeDate, gridData, isShowLoad, isShowGrid, newCovenant, existingCovenant, modalType, modalVisible, modalHeading, gridReminderData } = this.state;\n const { startDate, endDate } = newCovenant\n return (\n
\n
\n {\n this.state.showMessage ?\n :
\n } \n \n \n \n \n \n
\n\n
\n {\n isShowGrid ? :
\n }\n
\n \n this.closeModal()}\n onClickClose={() => this.closeModal()}\n onClickYes={() => this.handleModalChange()}\n generateReport={() => this.generateReport()}\n handleChange={this.handleChange}\n handleDropDownChange={this.handleDropDownChange} /> \n
\n );\n }\n}\n\nexport default CovenantInstance;","/******************************************************************************************************/\nimport { Dropdown } from 'semantic-ui-react';\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { Prompt } from \"react-router-dom\"; \nimport Modal from 'react-awesome-modal';\nimport { housingBALService } from '../../bal/housing.bal';\nimport { s3BALService } from '../../bal/s3.bal';\nimport fileDownload from 'js-file-download'\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\n\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\n\nclass Housing extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n const user = JSON.parse(Session.getItem(config.token));\n let newList = [\n //{key: '2021', value: '2021', text: '2021-2022'},\n {key: '2024', value: '2024', text: '2024-2025'}\n ];\n this.state = { \n rowData: [],\n isShowLoad: false, \n isShowGrid: true, \n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n user: user,\n userId: user.user.id,\n num: -1,\n open:false,\n fyList : newList,\n fy : '2024',\n currencyList : [{key: 'HKD', value: 'HKD', text: 'HKD'} ,{key: 'SGD', value: 'SGD', text: 'SGD'} ,{key: 'USD', value: 'USD', text: 'USD'}],\n currency: 'HKD',\n //forDate : moment(new Date()).format(\"YYYY-MM-DD\"),\n maxDate: null\n };\n this.refresh = this.refresh.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleDropDownChangeDefaultCurrency = this.handleDropDownChangeDefaultCurrency.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n //getFormatted = getFormatted(this);\n this.handleChange = this.handleChange.bind(this);\n this.togglePanel = this.togglePanel.bind(this); \n this.cellValueChanged = this.cellValueChanged.bind(this); \n this.save = this.save.bind(this);\n this.setFile = this.setFile.bind(this);\n this.upload = this.upload.bind(this);\n this.getS3Path = this.getS3Path.bind(this);\n this.getFiles = this.getFiles.bind(this);\n this.download = this.download.bind(this);\n this.remove = this.remove.bind(this);\n }\n\n download(fileFullPath, fileName) {\n s3BALService.downloadFile(fileFullPath).then(data => {\n fileDownload(data, fileName.substring(fileName.indexOf('_') + 1));\n }, error => {\n this.setState({\n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while downloading the attached file:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Attached file could not be downloaded, please contact support!'\n });\n });\n }\n\n remove(fileFullPath, fileName) { \n s3BALService.deleteFile({fileName : fileFullPath, type: 'housing'}).then(data => {\n this.getFiles();\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while removing the attached file:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Attached file could not be removed, please contact support!'\n });\n });\n }\n \n getFiles = async () => {\n await s3BALService.getFiles({ path: this.getS3Path().replace(/~/g, '/') }).then(data => {\n this.setState({files : data.files});\n });\n }\n\n getS3Path() {\n const { fy, user} = this.state;\n return `housing~${fy}~${user.user.username}`;\n }\n\n upload(e) {\n const { file, fy, userId} = this.state;\n if(file) {\n const path = this.getS3Path();\n s3BALService.uploadFile({file: file, fy: fy, userId:userId, path: path }).then(data => {\n this.setState({\n showMessage: false, \n file: null,\n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'File uploaded successfully!',\n open: false\n });\n this.getFiles();\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while uploading the data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'File could not be uploaded, please contact support!'\n });\n }\n );\n }\n }\n\n setFile(e) { \n this.setState({\n file: e.target.files[0]\n });\n }\n\n componentDidMount() { \n this.mounted = true;\n this.setState({\n fy: '2024'\n }, () => {\n this.getFiles();\n })\n if (this.mounted) { \n }\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n togglePanel(e) {\n this.setState({ open: !this.state.open });\n }\n\n refresh(e, modalVisible = false) {\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.setState({ modalVisible: false});\n } else {\n this.setState({ modalVisible: false});\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed( Number.isInteger(value) ? 0 : 2) : value;\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n \n\n handleDropDownChange(e, { name, value }) {\n this.setState({ \n [name]: value \n });\n }\n \n\n handleDropDownChangeDefaultCurrency(e, { name, value }) {\n this.setState({ \n [name]: value \n });\n }\n\n render() {\n if(this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n cellValueChanged(e) {\n if(e && e.data) {\n let col1 = Object.keys(e.data).filter(p => p.startsWith(\"col001_\"));\n let data = this.state.gridData.filter(p=>p['Investment Code'] === e.data['Investment Code'] && p.instrument_id !== e.data.instrument_id);\n\n data = data.map(row => {\n return {\n ...row,\n [col1] : e.data[col1],\n isBloomberg : e.data.isBloomberg\n }\n })\n\n this.setState({\n GridRowsToUpdate: data\n });\n }\n }\n\n save = async (rowData) => {\n let housingRows = rowData.map(p=>p.data);\n housingRows = housingRows.map(p=> {return {...p, fyStart:this.state.fy}});\n\n console.log(housingRows);\n\n housingBALService.save(housingRows).then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved housing data successfully!',\n open: false ,\n gridData: data\n });\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving housing:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving housing data failed!'\n }); \n console.log(error);\n });\n }\n\n getPage() {\n const { newDeal,includeDate, fyList, fy, files, existingDeal, modalHeading, isShowLoad, isShowGrid, showMessage, messageHeader, errorList } = this.state;\n return (\n
\n {\n showMessage ?\n :
\n } \n
\n

Housing

\n \n {/*
*/}\n \n
\n \n
\n
\n Financial Year\n
\n
\n Currency : HKD\n
\n
\n
\n \n
\n
\n
\n
\n Select file to upload :
\n
\n
\n \n
\n
\n
\n {files && files.length > 0 &&

Uploaded Files:

}\n {files &&\n files.map((file, index) => ( \n
\n
\n
\n

{file.fileName.substring(file.fileName.indexOf('_') + 1)}

\n
\n
\n
this.download(file.fileFullPath, file.fileName)}>\n \n
\n
this.remove(file.fileFullPath)}>\n \n
\n
\n ))}\n
\n
\n 'Do you want to discard changes?'}\n />\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n \n
\n

{modalHeading}

\n \n \n
\n
\n :\n \n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\n\nexport default Housing;","/******************************************************************************************************/\nimport moment from 'moment'; \nimport \"react-datepicker/dist/react-datepicker.css\"; \nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\"; \nimport { torGridBALService } from '../../bal/torGridBALService.bal'; \nimport { Prompt } from \"react-router-dom\";\n\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\n\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\n\nclass HousingSummary extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user?.approvalKey?.filter(function (item) { return item && item.toLowerCase() === \"markingtool\" });\n\n this.state = { \n rowData: [],\n isShowLoad: false, \n isShowGrid: false, \n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n user: user,\n isApprover: (config.environment === 'local' && config.setAsApprover !== undefined ? config.setAsApprover : approverRole?.length > 0),\n num: -1,\n open:false,\n fundList : [],\n fund : null,\n forDate : moment(new Date()).format(\"YYYY-MM-DD\"),\n maxDate: null\n };\n this.refresh = this.refresh.bind(this);\n\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n //getFormatted = getFormatted(this);\n this.handleChange = this.handleChange.bind(this);\n this.togglePanel = this.togglePanel.bind(this); \n this.refresh();\n\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n togglePanel(e) {\n this.setState({ open: !this.state.open })\n }\n\n refresh(e, modalVisible = false) {\n this.setState({ \n isShowLoad : true, \n isShowGrid : false,\n showMessage: false, \n errorList: [], \n messageHeader : null,\n modalVisible: false,\n });\n\n torGridBALService.getRowData('housing', { query: \"select * From vw_housing\" }).then(data => {\n this.setState({\n gridData: data,\n isShowLoad:false,\n isShowGrid: data?.length > 0,\n ...(data?.length <= 0) && {\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'No bonds exists for given date/fund.'\n },\n ...!modalVisible && {\n showMessage: false,\n errorList: null,\n messageHeader : null\n }\n });\n }, error => {\n this.setState({ \n isShowGrid: false,\n isShowLoad : false,\n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the grid data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); \n });\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.setState({ modalVisible: false});\n } else {\n this.setState({ modalVisible: false});\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed( Number.isInteger(value) ? 0 : 2) : value;\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ [name]: value });\n }\n \n render() {\n if(this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n getPage() {\n const { newDeal, existingDeal, modalHeading, isShowLoad, isShowGrid, gridData, showMessage, messageHeader, errorList } = this.state;\n return (\n
\n {\n showMessage ?\n :
\n } \n
\n
\n

Housing Summary

\n
\n \n
\n
\n
\n \n
\n
\n `Do you want to discard changes?`}\n />\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n \n
\n

{modalHeading}

\n \n \n
\n
\n :\n \n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\n\nexport default HousingSummary;","import { Utils } from '../helper/utils';\nimport { userBALService } from './user.bal';\nconst {config} = require('../config');\n\nexport const profileBALService = {\n saveUserProfile,\n getProfileData\n};\n\nfunction getProfileData(params) {\n const requestOptions = { method: 'GET', headers: userBALService.getAuthHeader() };\n return fetch(`${config.apiDDSUrl}/getUserProfile`, requestOptions).then(Utils.handleResponse);\n}\n\nfunction saveUserProfile(value) {\n const requestOptions = { method: 'POST', headers: { ...userBALService.getAuthHeader(), 'Content-Type': 'application/json' }, body: JSON.stringify(value) };\n return fetch(`${config.apiDDSUrl}/saveUserProfile`, requestOptions).then(Utils.handleResponse);\n}\n","/******************************************************************************************************/\nimport React, { Component } from 'react';\nimport { dealBALService } from '../../bal/deal.bal';\nimport { profileBALService } from '../../bal/userProfile.bal';\nimport { userBALService } from '../../bal/user.bal';\nimport { Dropdown } from 'semantic-ui-react';\nimport { Redirect } from \"react-router-dom\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\nimport Modal from 'react-awesome-modal';\n\nclass UserProfile extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.state = {\n countryList: [],\n settingList: [],\n dataSaved: false,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n name: \"\",\n profileSummary: {}\n }\n dealBALService.getAllCountry().then(data => { this.setState({ countryList: data }); }, error => { console.log(error); });\n dealBALService.getAllSettings().then(data => { this.setState({ settingList: data }); }, error => { console.log(error); });\n \n\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.approveDB = this.approveDB.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n };\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n\n if (this.state.dataSaved) {\n this.setState({\n modalVisible: false\n })\n } else {\n this.setState({\n modalVisible: false\n });\n }\n }\n\n componentDidMount() {\n const fullname = userBALService.getUserInfo()?.user?.name;\n this.setState({name: fullname});\n\n profileBALService.getProfileData().then(data => {\n this.setState({profileSummary: data})\n }, error => { \n console.log(error); \n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({isOpenGrid: true, modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.saveDB(null, false);\n this.setState({isOpenGrid: true, modalVisible: false});\n } else {\n this.setState({isOpenGrid: true, modalVisible: false});\n }\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ profileSummary: { ...this.state.profileSummary, [name]: value } });\n }\n\n handleChange(e) {\n this.setState({ profileSummary: { ...this.state.profileSummary, [e.target.name]: e.target.value } });\n }\n\n getSettingByName(name) {\n const { settingList } = this.state;\n let setting = settingList.filter(\n function (data) {\n return data['value'] === name\n }\n )\n\n let settingL = setting.length > 0 ? setting[0].childSettings : [];\n\n settingL.sort(function(a, b) {\n return a.value.localeCompare(b.value);\n })\n\n return settingL;\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n approveDB() {\n var {profileSummary} = this.state;\n var errorList = [];\n console.log(profileSummary);\n\n const columnsToCheck = [\n {label: \"Gender\", id: \"gender\"},\n {label: \"Career Start Date\", id: \"career_start_date\"},\n {label: \"Degree 1\", id: \"degree_1\"},\n {label: \"Degree 1 Major\", id: \"degree_1_major\"},\n {label: \"Degree 1 Institution\", id: \"degree_1_school\"},\n {label: \"Degree 1 Country\", id: \"degree_1_country\"},\n {label: \"Home Country 1\", id: \"home_country_1\"},\n {label: \"Citizenship 1\", id: \"citizenship_1\"}\n ]\n\n var flag = true;\n\n for (const key of columnsToCheck) {\n if (!profileSummary[key.id]) {\n flag = false;\n errorList.push(key.label);\n }\n }\n\n console.log(errorList);\n\n if(flag === false) {\n this.setState({ \n showMessage: false,\n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Please fill out the missing sections in red !'\n });\n } else {\n profileBALService.saveUserProfile(profileSummary).then(data => {\n this.setState({ \n showMessage: false,\n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Thank you - your changes have been saved',\n dataSaved: true\n });\n }, error => {\n this.setState({ \n showMessage: false,\n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'Error saving data, please contact support !'\n });\n })\n }\n }\n\n getPage() {\n const { profileSummary, modalHeading, name } = this.state;\n const countryList = this.state.countryList\n .filter(item => item.id !== 418 && item.id !== 419)\n .map(item => { return { key: item.id, value: item.id, text: item.name } });\n\n const nonDisclose = this.state.countryList\n .filter(item => item.id === 419)\n .map(item => { return { key: item.id, value: item.id, text: item.name } });\n\n const countryListFull = countryList.concat(nonDisclose);\n\n const genderList = this.getSettingByName(\"Gender\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const languageList = this.getSettingByName(\"Language\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const levelList = this.getSettingByName(\"Language Level\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const degreeList = this.getSettingByName(\"Degree\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const qualificationList = this.getSettingByName(\"Professional Qualification\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const universityList = this.getSettingByName(\"University & Institution\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n\n return (\n
\n
\n \n
\n \n

\n Please review your profile below. To update your profile, you may directly edit each field below. Once you have made your updates, \n please save your changes by clicking on the “Submit” button at the bottom of the page. \n

\n\n
\n
\n
\n \n
\n
\n
\n\n
\n \n
\n\n {/* Gender */}\n\n
\n \n
\n
\n
\n\n
\n \n
\n\n {/* Career Start Date */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n\n {/* Degree 1 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Degree 2 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Degree 3 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Degree 4 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n
\n\n {/* Qualification 1 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Qualification 2 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Qualification 3 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n
\n\n {/* Language 1 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Language 2 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Language 3 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Language 4 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Language 5 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Language 6 */}\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n
\n\n {/* Home Country 1 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Home Country 2 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Home Country 3 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Home Country 4 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Home Country 5 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Home Country 6 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n\n {/* Citizenship 1 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Citizenship 2 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Citizenship 3 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n {/* Citizenship 4 */}\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
this.approveDB()}>\n \n \n
\n
\n
\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n
\n }\n
\n
\n
\n )\n }\n}\n\nexport default UserProfile;","/******************************************************************************************************/\nimport moment from 'moment';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport { Prompt } from \"react-router-dom\";\n\n\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync } from \"@fortawesome/free-solid-svg-icons\";\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\n\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\n\nclass UserLog extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n const user = JSON.parse(Session.getItem(config.token));\n const approverRole = user?.approvalKey?.filter(function (item) { return item && item.toLowerCase() === \"markingtool\" });\n\n this.state = { \n rowData: [],\n isShowLoad: false, \n isShowGrid: false, \n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n user: user,\n isApprover: (config.environment === 'local' && config.setAsApprover !== undefined ? config.setAsApprover : approverRole?.length > 0),\n num: -1,\n open:false,\n fundList : [],\n fund : null,\n forDate : moment(new Date()).format(\"YYYY-MM-DD\"),\n maxDate: null\n };\n this.refresh = this.refresh.bind(this);\n\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n //getFormatted = getFormatted(this);\n this.handleChange = this.handleChange.bind(this);\n this.togglePanel = this.togglePanel.bind(this); \n\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n togglePanel(e) {\n this.setState({ open: !this.state.open })\n }\n\n refresh(e, modalVisible = false) { \n this.setState({ \n isShowLoad : true, \n isShowGrid : false,\n showMessage: false, \n errorList: [], \n messageHeader : null,\n modalVisible: false,\n });\n\n torGridBALService.getRowData('userLog', { query: \"select * From vw_user_log\" }).then(data => {\n this.setState({\n gridData: data,\n isShowLoad:false,\n isShowGrid: data?.length > 0,\n ...(data?.length <= 0) && {\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'No log exists.'\n },\n ...!modalVisible && {\n showMessage: false,\n errorList: null,\n messageHeader : null\n }\n });\n }, error => {\n this.setState({ \n isShowGrid: false,\n isShowLoad : false,\n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the grid data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); \n });\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.setState({ modalVisible: false});\n } else {\n this.setState({ modalVisible: false});\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed( Number.isInteger(value) ? 0 : 2) : value;\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ [name]: value });\n }\n \n render() {\n if(this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n getPage() {\n const { newDeal, existingDeal, modalHeading, isShowLoad, isShowGrid, gridData, showMessage, messageHeader, errorList } = this.state;\n return (\n
\n {\n showMessage ?\n :
\n } \n
\n
\n

User Log

\n
\n
\n
\n \n
\n
\n `Do you want to discard changes?`}\n />\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n \n
\n

{modalHeading}

\n \n \n
\n
\n :\n \n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\n\nexport default UserLog;","import './../../App.css'\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { Prompt } from \"react-router-dom\";\nimport { dealLegalDetailsBALService } from '../../bal/dealLegalDetails.bal';\nimport moment from 'moment';\nimport { Dropdown } from 'semantic-ui-react';\nimport NumberFormat from 'react-number-format';\n\nclass DealLegalDetails extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n\n this.state = {\n ...userBALService.getUserDetails(),\n rowData: [],\n id: null,\n isOpenGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n editType: 'fullRow',\n existingDealDetails: [],\n newDealDetails: [],\n dealList: [],\n editorState: null,\n fordate: null,\n toDate: moment(today).format(\"YYYY-MM-DD\"),\n fromDate: moment(yesterday).format(\"YYYY-MM-DD\"),\n deal: null,\n fund: 'All',\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"ALL\", value: \"All\" }\n ],\n values: null,\n selectedRows: null,\n showAll: false\n };\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.getPage = this.getPage.bind(this);\n this.refresh = this.refresh.bind(this);\n this.save = this.save.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleChangeCheckboxValues = this.handleChangeCheckboxValues.bind(this);\n this.handleChangeValues = this.handleChangeValues.bind(this);\n this.handleChangeCheckbox = this.handleChangeCheckbox.bind(this);\n this.populateDeals = this.populateDeals.bind(this);\n \n this.refresh(null);\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n\n save () {\n const { values, deal } = this.state; \n let rows = Object.keys(values).map(function(key){ \n let keys = key.split(\"_\");\n return { dealId : keys[0] , questionId: keys[1], value : values[key]};\n });\n\n rows = rows.filter(row => row.value !== row.existingValue)\n\n console.log(rows);\n dealLegalDetailsBALService.save(rows).then( \n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved data successfully!',\n open: false,\n deal:null\n }, ()=> {\n this.refresh(deal);\n });\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving marks:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving data failed!'\n }); \n console.log(error);\n });\n }\n\n populateDeals() {\n const {showAll, gridData} = this.state;\n let deals = [...new Set(gridData.filter(function (item) {\n return (item && (showAll || !(item.id && item.id>0)) ? true : false);\n }).map(item => item.dealName))];\n\n let dealList = deals.map(item => { return { key: item, value: item, text: item } });\n\n this.setState({\n dealList: dealList\n }, () => {\n const {dealList, deal} = this.state;\n if(dealList.filter(item=>item.value === deal).length === 0 ) {\n this.handleDropDownChange(null, {name: 'deal', value : null});\n }\n });\n }\n \n handleChangeCheckbox(e) {\n this.setState({ \n [e.target.name]: e.target.value === \"true\"\n }, () => {\n this.populateDeals();\n });\n }\n\n refresh(deal) {\n dealLegalDetailsBALService.getRowData().then(data => {\n let showGrid = false;\n if(data && data.length > 0) {\n data = data.map(row => { return {\n ...row, \n existingValue: row?.value\n }\n });\n showGrid = true;\n } \n \n this.setState({\n gridData: data,\n showGrid: showGrid\n }, () => {\n this.populateDeals();\n if(deal) {\n this.handleChange('deal', deal);\n }\n });\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while retrieving...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while retrieving data!'\n }); \n console.log(error);\n });\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({\n values : null,\n existingValues : null,\n selectedRows: [],\n }, () => {\n const { gridData, showAll } = this.state;\n let rows = gridData.filter(item => item.dealName === value).sort((a, b) => a.questionId > b.questionId ? 1 : -1);\n\n let values = Object.assign({}, ...rows.map((x) => ({[x.idDealQuestion]: x.valueString})));\n let existingValues = Object.assign({}, ...rows.map((x) => ({[x.idDealQuestion]: x.valueString})));\n\n this.setState({ \n [name]: value,\n selectedRows: rows,\n values : values,\n existingValues : existingValues,\n showAll: showAll\n });\n });\n }\n \n handleChangeValues(e) { \n const { name, value } = e.target; \n this.setState({ \n values: {\n ...this.state.values,\n [name]: value\n }\n }); \n }\n\n handleChangeCheckboxValues(e) {\n this.setState({\n values: {\n ...this.state.values,\n [e.target.name]: e.target.value\n }\n });\n } \n\n getPage() {\n const { modalType, dealList, values, showAll, selectedRows, deal, fund, fundList, fromDate, toDate, modalVisible, modalHeading, gridReminderData, existingDealDetails, newDealDetails } = this.state;\n let showGroup = false;\n let previousGroup = ' ';\n let isFilled = false;\n let divs = selectedRows?.map(item => {\n isFilled = item.id;\n showGroup = previousGroup !== item.group2;\n previousGroup = item.group2;\n return
\n {\n showGroup ?
{item.group2}
:
\n }\n
{item.question}
\n
\n {\n item.isReadOnly ?
{item.valueString}
: \n item.dataType === \"bigstring\" || item.dataType === \"string\" ? \n : \n item.dataType === \"boolean\" ? \n
\n    \n \n
:\n item.dataType === \"biginteger\" || item.dataType === \"integer\" ? \n { this.handleChangeNew(item.idDealQuestion, values.floatValue); }}\n className={'form-control inputLightP'}\n /> :
\n }\n
\n
\n });\n return (\n
\n {\n this.state.showMessage ?\n :
\n } \n
\n
\n    \n \n
\n
\n \n
\n {\n deal !==null && deal !=='' ?\n
\n Status: \n {\n isFilled ? \"Filled\" : \"Not Filled\"\n }\n
:
\n }\n {\n deal !==null && deal !=='' ?\n
\n \n
:
\n }\n
\n
\n {divs}\n
\n \n this.closeModal()}\n onClickClose={() => this.closeModal()}\n onClickYes={() => this.handleModalChange()}\n generateReport={() => this.generateReport()}\n handleChange={this.handleChange}\n handleDropDownChange={this.handleDropDownChange} />\n
\n );\n }\n}\n\nexport default DealLegalDetails;","import './../../App.css'\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { Prompt } from \"react-router-dom\";\nimport { dealLegalDetailsBALService } from '../../bal/dealLegalDetails.bal';\nimport moment from 'moment'; \n\nclass DealLegalDetailsSummary extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n\n this.state = {\n ...userBALService.getUserDetails(),\n rowData: [],\n id: null,\n isOpenGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n editType: 'fullRow',\n existingDealDetails: [],\n newDealDetails: [],\n dealList: [],\n editorState: null,\n fordate: null,\n toDate: moment(today).format(\"YYYY-MM-DD\"),\n fromDate: moment(yesterday).format(\"YYYY-MM-DD\"),\n deal: null,\n fund: 'All',\n fundList: [\n { key: 0, text: \"TACF\", value: \"TOR\" },\n { key: 1, text: \"TACO\", value: \"TACO\" },\n { key: 2, text: \"TACO II\", value: \"TACO II\" },\n { key: 3, text: \"TACO III\", value: \"TACO III\" },\n { key: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"ALL\", value: \"All\" }\n ],\n values: null,\n selectedRows: null\n };\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.getPage = this.getPage.bind(this);\n this.addNew = this.addNew.bind(this);\n this.refresh = this.refresh.bind(this);\n this.save = this.save.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleRowSelected = this.handleRowSelected.bind(this);\n this.generateReport = this.generateReport.bind(this);\n this.reportModal = this.reportModal.bind(this);\n this.handleChangeCheckboxValues = this.handleChangeCheckboxValues.bind(this);\n this.handleChangeValues = this.handleChangeValues.bind(this);\n this.refresh();\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n }\n\n generateReport = async() => {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Report is being generated!'\n }); \n }\n\n reportModal = () => {\n this.setState({\n modalVisible: true,\n modalType: 'genReport',\n modalHandler: 'close',\n modalHeading: 'Generate Report'\n })\n }\n\n addNew = async () => {\n this.refresh();\n }\n\n save () {\n const { values } = this.state; \n let rows = Object.keys(values).map(function(key){ \n let keys = key.split(\"_\");\n return { dealId : keys[0] , questionId: keys[1], value : values[key]};\n });\n\n rows = rows.filter(row => row.value !== row.existingValue)\n\n console.log(rows);\n dealLegalDetailsBALService.save(rows).then( \n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved data successfully!',\n open: false\n });\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving marks:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving data failed!'\n }); \n console.log(error);\n });\n \n this.refresh();\n }\n\n refresh() {\n dealLegalDetailsBALService.getRowData().then(data => {\n let showGrid = false;\n if(data && data.length > 0) {\n data = data.map(row => { return {\n ...row, \n existingValue: row?.value\n }\n });\n showGrid = true;\n }\n\n let deals = [...new Set(data.filter(function (item) {\n return (item ? true : false);\n }).map(item => item.dealName))];\n\n let dealList = deals.map(item => { return { key: item, value: item, text: item } });\n \n this.setState({\n gridData: data,\n showGrid: showGrid,\n dealList: dealList\n });\n }, error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while retrieving...`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Error while retrieving data!'\n }); \n console.log(error);\n });\n }\n\n handleChange(name, value) {\n console.log(name, value);\n this.setState({ [name]: value });\n }\n\n handleDropDownChange(e, { name, value }) {\n const { gridData } = this.state;\n let rows = gridData.filter(item => item.dealName === value );\n\n let values = Object.assign({}, ...rows.map((x) => ({[x.idDealQuestion]: x.valueString})));\n let existingValues = Object.assign({}, ...rows.map((x) => ({[x.idDealQuestion]: x.valueString})));\n\n this.setState({ \n [name]: value,\n selectedRows: rows,\n values : values,\n existingValues : existingValues,\n });\n }\n \n handleChangeValues(e) { \n const { name, value } = e.target; \n this.setState({ \n values: {\n ...this.state.values,\n [name]: value\n }\n }); \n }\n\n handleChangeCheckboxValues(e) {\n this.setState({\n values: {\n ...this.state.values,\n [e.target.name]: e.target.value\n }\n });\n }\n\n handleRowSelected(e) {\n const { data, action } = e.target;\n if (action === \"Edit\") {\n this.setState({\n id: data.deal_risk_commentary_id,\n deal: data.deal_id,\n forDate: new Date(data.report_date),\n editorState: data.comment\n })\n }\n }\n\n\n getPage() {\n const { modalType, deal, editType, showGrid, fund, fundList, fromDate, toDate, modalVisible, modalHeading, gridReminderData, gridData, existingDealDetails, newDealDetails } = this.state;\n return (\n
\n {\n this.state.showMessage ?\n :
\n } \n
\n {\n deal !==null && deal !=='' ?\n
\n \n
:
\n }\n
\n { \n showGrid? \n
\n Deal Questionnaire Summary\n { this.save(true)}}\n editType = {editType}\n //isShowLoad = {isShowLoad}\n isShowGrid = {showGrid}\n cellValueChanged = {this.cellValueChanged}\n />\n
:
Deal Questionnaire Summary - No rows to display
\n }\n \n this.closeModal()}\n onClickClose={() => this.closeModal()}\n onClickYes={() => this.handleModalChange()}\n generateReport={() => this.generateReport()}\n handleChange={this.handleChange}\n handleDropDownChange={this.handleDropDownChange} />\n
\n );\n }\n}\n\nexport default DealLegalDetailsSummary;","/******************************************************************************************************/\nimport moment from 'moment';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport React, { Component } from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { restrictedListBALService } from '../../bal/restrictedList.bal';\nimport { Prompt } from \"react-router-dom\";\nimport { Utils } from '../../helper/utils';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\n\n//https://fontawesome.com/icons?d=gallery\n//https://stackoverflow.com/questions/56559772/where-do-i-find-the-object-names-of-icons-in-the-fontawesome-free-packages\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSync } from \"@fortawesome/free-solid-svg-icons\";\n\nimport 'ag-grid-community/dist/styles/ag-grid.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham.css';\nimport 'ag-grid-community/dist/styles/ag-theme-balham-dark.css';\n\n// Our components\nimport config from '../../config';\nimport { Session } from '../../helper/session';\n\nimport TorGrid from '../torgrid/torgrid';\nimport ToastMessage from \"../deals/components/toastMessage\";\n\nclass RestrictedList extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n const user = JSON.parse(Session.getItem(config.token));\n this.state = { \n rowData: [],\n existingGridData: [],\n deleted : [],\n restrictionTypes: [],\n isShowLoad: false, \n isShowGrid: false, \n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"Following Fields have not been filled in: \",\n showMessage: false,\n gridData: [],\n user: user,\n num: -1,\n open:false,\n fundList : [],\n fund : null,\n forDate : moment(new Date()).format(\"YYYY-MM-DD\"),\n maxDate: null\n };\n this.refresh = this.refresh.bind(this);\n\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n //getFormatted = getFormatted(this);\n this.handleChange = this.handleChange.bind(this);\n this.togglePanel = this.togglePanel.bind(this); \n this.update = this.update.bind(this); \n this.onCellClicked = this.onCellClicked.bind(this);\n this.refresh(null);\n\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n togglePanel(e) {\n this.setState({ open: !this.state.open })\n }\n\n refresh(e, modalVisible = false) { \n this.setState({ \n gridData: null,\n existingGridData: null,\n isShowLoad : true, \n isShowGrid : false,\n showMessage: false, \n errorList: [], \n messageHeader : null,\n modalVisible: false,\n });\n \n restrictedListBALService.getAllRestrictionType().then(\n data => {\n let restrictionTypes = data.filter(function (item) {\n return (item ? true : false);\n }).map(item => { return { key: item.restrictionTypeId, value: item.restrictionTypeId, text: item.displayName } });\n if(restrictionTypes) {\n this.setState({\n restrictionTypes: restrictionTypes\n });\n }\n }, error => {\n this.setState({ \n isShowGrid: false,\n isShowLoad : false,\n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the restriction type:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); \n });\n\n restrictedListBALService.getAllExchangeMco().then(\n data => {\n let exchanges = data.filter(function (item) {\n return (item ? true : false);\n }).map(item => { return { key: item.exchangeMcoId, value: item.exchangeMcoId, text: item.code } });\n if(exchanges) {\n this.setState({\n exchanges: exchanges\n });\n }\n }, error => {\n this.setState({ \n isShowGrid: false,\n isShowLoad : false,\n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the exchanges:\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); \n });\n\n restrictedListBALService.getRowData('restrictedList', null).then(data => {\n this.setState({\n gridData: data,\n existingGridData: data,\n isShowLoad:false,\n isShowGrid: data?.length > 0,\n ...(data?.length <= 0) && {\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: 'No restriction names exists.'\n },\n ...!modalVisible && {\n showMessage: false,\n errorList: null,\n messageHeader : null\n }\n });\n }, error => {\n this.setState({ \n isShowGrid: false,\n isShowLoad : false,\n showMessage: true, \n errorList: [error], \n messageHeader : \"Error while getting the grid data :\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Data could not be retrieved, please contact support!'\n }); \n console.log(error); \n });\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ modalVisible: false});\n } else if (this.state.modalHandler === 'save') {\n this.setState({ modalVisible: false});\n } else {\n this.setState({ modalVisible: false});\n }\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed( Number.isInteger(value) ? 0 : 2) : value;\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n this.gridApprovalApi = api;\n \n }\n\n onCellClicked(params) { \n if (params.column.colId === \"delete\") {\n params.api.applyTransaction({\n remove: [params.node.data]\n });\n this.setState( {\n deleted : [...this.state.deleted, params.node.data] \n });\n }\n }\n\n handleDropDownChange(e, { name, value }) {\n this.setState({ [name]: value });\n }\n \n render() {\n if(this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n update(restrictedListRows) {\n if(restrictedListRows && restrictedListRows.length>0) {\n restrictedListRows = restrictedListRows.map(restricted => {\n return Utils.removeBlanksNotZero(restricted );\n });\n \n let errorList = [];\n restrictedListRows.forEach(restrictedName => {\n if(!(restrictedName.isin || restrictedName.cusip || restrictedName.sedol || (restrictedName.ticker && restrictedName.exchangeSymbol))) {\n errorList = [...errorList, `CompanyName:${restrictedName.companyName}, Description:${restrictedName.description} - Either ISIN/Cusip/Sedol/Ticker&Exchange must be provided`]\n }\n if(!(restrictedName.companyName && restrictedName.restrictionType && restrictedName.description && restrictedName.addedDate && restrictedName.addedDate !== 'undefined')) {\n errorList = [...errorList, `CompanyName:${restrictedName.companyName}, Description:${restrictedName.description}, Date put on list:${restrictedName.addedDate}, RestrictionType:${restrictedName.restrictionType} - All four columns are mandatory`]\n }\n });\n\n if(errorList.length > 0 ) {\n this.setState({ \n showMessage: true, \n errorList: errorList, \n messageHeader : `Error while saving restricted list:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving restricted list data failed!'\n }); \n console.log(errorList);\n } else {\n restrictedListBALService.save(restrictedListRows).then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved restriction list successfully!',\n open: false ,\n gridData: data\n });\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while saving restricted list:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving restricted list data failed!'\n }); \n console.log(error);\n });\n }\n }\n }\n\n save = async (rowData) => {\n let restrictedListRows = rowData.map(p=>p.data);\n //restrictedListRows = restrictedListRows.map(p=> {return {...p, fyStart:this.state.fy}});\n let {deleted} = this.state;\n console.log(restrictedListRows);\n\n if(deleted && deleted.length > 0) {\n let idsToDelete = this.state.deleted.map(p=>p.restrictedListId);\n\n restrictedListBALService.remove(idsToDelete).then(\n data => {\n this.setState({\n showMessage: false, \n errorList: null, \n messageHeader : \"\",\n modalVisible: false,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: '',\n open: false ,\n });\n this.update(restrictedListRows);\n }\n , error => {\n this.setState({ \n showMessage: true, \n errorList: [error], \n messageHeader : `Error while removing restricted names:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Removing restricted names failed!'\n }); \n console.log(error);\n return;\n });\n } else {\n this.update(restrictedListRows);\n }\n }\n\n getPage() {\n const { newDeal, existingDeal, modalHeading, isShowLoad, gridData, showMessage, messageHeader, errorList } = this.state;\n return (\n
\n {\n showMessage ?\n :
\n } \n
\n
\n

Restricted List

\n
\n
\n
\n \n
\n
\n `Do you want to discard changes?`}\n />\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n \n
\n

{modalHeading}

\n \n \n
\n
\n :\n \n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\n\nexport default RestrictedList;","import React, { Component } from 'react';\nimport ChartDisplay from \"../portfolioDashboard/components/chartDisplay.js\"\n\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport TorGrid from './../torgrid/torgrid';\n\nclass CashMargin extends Component {\n constructor(props) {\n super(props);\n this.state = {\n chartData: []\n }\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n componentDidMount() {\n const { AsOfDate } = this.props;\n console.log(AsOfDate);\n torGridBALService.getRowData('hedgeReport', { query: AsOfDate ? `Exec [sp_get_historical_cash_margin] '${AsOfDate}'` : `Exec [sp_get_historical_cash_margin]` }).then(data => {\n this.setState({ chartData: data });\n });\n }\n\n componentDidUpdate(prevProps) {\n const { AsOfDate } = this.props;\n if (prevProps.AsOfDate !== AsOfDate) {\n console.log(AsOfDate);\n torGridBALService.getRowData('hedgeReport', { query: AsOfDate ? `Exec [sp_get_historical_cash_margin] '${AsOfDate}'` : `Exec [sp_get_historical_cash_margin]` }).then(data => {\n this.setState({ chartData: data });\n });\n }\n }\n\n\n getTemplate() {\n const { AsOfDate } = this.props;\n return (\n
\n
\n
\n \n
\n
\n
\n {/*
\n \n
*/}\n
\n {/* */}\n \n
\n
\n
\n );\n }\n}\nexport default CashMargin;","import React, { Component } from 'react';\n\nimport { Collapse } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faBackward } from \"@fortawesome/free-solid-svg-icons\";\nimport moment from 'moment';\nimport DatePicker from 'react-datepicker';\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport Modal from 'react-awesome-modal';\n\nimport { portfolioProjectionBalService } from '../../bal/Portfolio-Dashboard/portfolioProjection.bal'\nimport { userBALService } from '../../bal/user.bal';\nimport { torGridBALService } from '../../bal/torGridBALService.bal';\nimport CashMargin from './cashMargin'\nimport ToastMessage from \"./../deals/components/toastMessage\";\n\nimport './liquidityDashboard.css';\n\nclass LiquidityDashboard extends Component {\n constructor(props) {\n super(props);\n\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n this.state = {\n GridId: \"positions1\" ?? this.constructor.name + \"_default\",\n drawerOpen: false,\n GridTitle: 'Cash / Margin Dashboard',\n display: \"none\",\n thetaChartData: [],\n tabindex: 4,\n chartMaturityData: [],\n chartVintageData: [],\n maturityLabel: [],\n vintageLabel: [],\n AsOfDate: null,\n Frequency: 'm',\n gridData: [],\n fxGridData: [],\n pnlGridData: [],\n projectionGridData: [],\n hedgeData: [],\n filterData: [],\n stressChartData: [],\n portfolioChartData: [],\n MessageBoxBackground: \"Red\",\n isOpenLoad: false,\n dateList: [],\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n isCollapsed: true\n }\n\n this.handleCloseErrorBox = this.handleCloseErrorBox.bind(this);\n this.handleChangeAsOfDate = this.handleChangeAsOfDate.bind(this);\n this.filterData = this.filterData.bind(this);\n this.filterDate = this.filterDate.bind(this);\n this.drawerToggleClickHandler = this.drawerToggleClickHandler.bind(this);\n this.closeErrorMessage = this.closeErrorMessage.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleModalChange = this.handleModalChange.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.setAgGridAPI = this.setAgGridAPI.bind(this);\n this.approve = this.approve.bind(this);\n this.reject = this.reject.bind(this);\n this.togglePanelCollapse = this.togglePanelCollapse.bind(this);\n }\n\n componentDidMount = async () => {\n this.mounted = true;\n await torGridBALService.getRowData('hedgeReport', { query: 'Exec [sp_get_quarterly_dates] 4' }).then(data => {\n this.setState({ dateList: data });\n this.setState({ AsOfDate: new Date(moment(data[0]['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\"))});\n });\n }\n\n\n render() {\n return this.getTemplate();\n }\n\n handleChangeAsOfDate = (date) => {\n const { dateList } = this.state;\n if (date) {\n const frequencyList = dateList.filter(function (item) {\n return item['report date'] === parseInt(moment(date).format(\"YYYYMMDD\"))\n });\n\n if (frequencyList?.length > 0 && frequencyList[0]) {\n this.setState({\n AsOfDate: moment(date).format(\"YYYY-MM-DD\")\n }, async () => {\n await this.filterDate(this.state.dateList, parseInt(moment(date).format(\"YYYYMMDD\")), moment(date).format(\"YYYY-MM-DD\"));\n });\n } else {\n this.setState({\n AsOfDate: moment(date).format(\"YYYY-MM-DD\")\n });\n }\n\n } else {\n this.setState({\n AsOfDate: null\n })\n }\n\n };\n\n handleCloseErrorBox = () => {\n this.setState({ display: \"none\" });\n }\n\n filterData(colName, value) {\n var data = this.state.gridData;\n\n if (value !== 'All') {\n var arr = data.filter(function (item) {\n return item[colName] === value\n });\n\n this.setState({\n filterData: arr\n });\n } else {\n this.setState({\n filterData: this.state.gridData\n });\n }\n }\n\n filterDate(data, date, formatDate) {\n const frequencyList = data.filter(function (item) {\n return item['report date'] === date\n });\n\n if (frequencyList?.length > 0 && frequencyList[0] && frequencyList[0]['for frequency'])\n this.setState({ AsOfDate: moment(formatDate).format(\"YYYY-MM-DD\"), Frequency: frequencyList[0]['for frequency'] });\n else\n this.setState({ AsOfDate: moment(formatDate).format(\"YYYY-MM-DD\"), Frequency: null });\n }\n\n drawerToggleClickHandler = () => {\n this.setState({\n drawerOpen: !this.state.drawerOpen\n })\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleModalChange() {\n if (this.state.modalHandler === 'refresh') {\n this.setState({ isOpenGrid: true, modalVisible: false });\n } else if (this.state.modalHandler === 'save') {\n this.saveDB();\n this.setState({ isOpenGrid: true, modalVisible: false });\n } else {\n this.setState({ isOpenGrid: true, modalVisible: false });\n }\n }\n\n closeErrorMessage() {\n this.setState({ showMessage: false, errorList: [] });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, messageHeader: \"\" });\n }\n\n setAgGridAPI(api) {\n this.gridApi = api;\n }\n\n approvalRejection = (action) => {\n var selectRows = this.gridApi?.getSelectedNodes();\n\n const user = userBALService.getUserInfo();\n selectRows = selectRows.filter(deal => {\n return deal.data['Analyst 1'] === user?.user?.name\n });\n\n var selectedRows = selectRows.filter(deal => {\n return deal.data['Approval Status'] !== 'Approved'\n });\n\n if (selectedRows?.length > 0) {\n const proposals = selectedRows.map(deal => { return { id: deal.data['projectionId'], action: action } });\n\n var promises = portfolioProjectionBalService.approveGrid(proposals);\n Promise.all(promises).then(data => {\n //var d = JSON.parse(data);\n var errorList = data.filter(element => element.error).map(element => { return element.error });\n if (errorList && errorList.length > 0)\n this.setState({\n showMessage: true,\n errorList: errorList,\n messageHeader: `Error while ${action.toLowerCase().startsWith('approve') ? 'approving' : action.toLowerCase().startsWith('reject') ? 'rejecting' : action} the request :`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: `${action} failed, please contact support!`\n });\n else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'save',\n modalHeading: `${action} sucessfully!`\n });\n }\n }\n );\n } else if (selectRows?.length > 0) {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: `Proposal(s) have already been ${action?.toLowerCase().startsWith('approve') ? 'Approved' : action?.toLowerCase().startsWith('reject') ? 'Rejected' : action}`\n })\n } else {\n this.setState({\n modalVisible: true,\n modalType: 'close',\n modalHandler: '',\n modalHeading: `First select proposal(s) to ${action?.toLowerCase().startsWith('approve') ? 'Approve' : action?.toLowerCase().startsWith('reject') ? 'Reject' : action}`\n })\n }\n }\n\n approve() {\n this.approvalRejection('Approved');\n }\n\n reject() {\n this.approvalRejection('Rejected');\n }\n\n togglePanelCollapse() {\n this.setState({\n isCollapsed: !this.state.isCollapsed\n })\n }\n\n getTemplate() {\n const { GridTitle, AsOfDate, dateList, isOpenLoad, modalHeading } = this.state;\n const includeDate = dateList.map(item => {\n return new Date(moment(item['report date'], \"YYYYMMDD\").format(\"YYYY-MM-DD\"))\n });\n \n return (\n
\n {\n this.state.showMessage ?\n :
\n }\n
\n
\n \n
\n
\n {GridTitle}\n
\n\n \n
\n As Of Date:\n
\n
\n \n
\n
\n
\n {\n isOpenLoad === false\n ?\n
\n \n
\n :\n
\n \"Loading...\"\n
\n }\n
\n
\n {\n this.state.modalType === 'close'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n
\n
\n :\n this.state.modalType === 'saveChanges'\n ?\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n
\n
\n :\n this.closeModal()}>\n
\n

{modalHeading}

\n \n \n \n
\n
\n }\n
\n
\n
\n );\n }\n}\nexport default LiquidityDashboard;","import './../../App.css'\nimport ModalForm from '../common/modalForm'\nimport { userBALService } from '../../bal/user.bal'\nimport React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport ToastMessage from \"../deals/components/toastMessage\";\nimport { Prompt } from \"react-router-dom\";\nimport { dealPipelineSummaryBALService } from '../../bal/dealPipelineSummary.bal';\nimport { Dropdown } from 'semantic-ui-react';\nimport NumberFormat from 'react-number-format';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faHome, faSave } from \"@fortawesome/free-solid-svg-icons\";\n\nimport { dealBALService } from '../../bal/deal.bal';\n\nclass DealPipelineSummary extends Component {\n constructor(props) {\n super(props);\n this.mounted = false;\n this.timeout = 250;\n this.gridApi = null;\n\n const today = new Date();\n const yesterday = new Date(today);\n\n yesterday.setDate(yesterday.getDate() - 14);\n const dealPipeline = this.props?.location?.state?.data;\n\n const user = userBALService.getUserDetails();\n const userId = user?.user?.user?.id;\n\n const isIRUser = user?.user?.userRoles?.filter(item => item && item.toLowerCase() === 'ir')?.length > 0;\n const isReadOnly = dealPipeline && dealPipeline?.leadAnalystId !== userId && dealPipeline?.createdById !== userId && dealPipeline?.analyst2Id !== userId && dealPipeline?.analyst3Id !== userId && dealPipeline?.analyst4Id !== userId;\n const roles = user?.user?.userRoles?.filter(item => item && (item.toLowerCase() === 'risk' || item.toLowerCase() === 'ir' || item.toLowerCase() === 'pm' || item.toLowerCase() === 'partner'));\n const isAllRole = roles?.length > 0;\n this.state = {\n ...user,\n isReadOnly: isReadOnly,\n isIRUser: isIRUser,\n isAllRole: isAllRole,\n rowData: [],\n id: null,\n isOpenGrid: true,\n modalVisible: false,\n modalType: 'close',\n modalHeading: '',\n modalHandler: '',\n errorList: [],\n messageHeader: \"\",\n showMessage: false,\n gridData: [],\n editType: 'fullRow',\n editorState: null,\n existingDealPipeSummary: dealPipeline ?? {\n dealPipeSummaryId: null,\n projectName: null,\n gicsSectorId: null,\n gicsIndustryGroupId: null,\n gicsIndustryId: null,\n gicsSubIndustryId: null,\n gicsNACEId: null,\n bicsSectorId: null,\n bicsIndustryGroupId: null,\n bicsIndustryId: null,\n bicsSubIndustryId: null,\n countryOfRiskId: null,\n isPublic: null,\n equityUpside: null,\n equityUpsideForm: null,\n assetTypeId: null,\n creditRankingId: null,\n statusId: null,\n expectedExecutionDate: null,\n purchaseIssuePrice: null,\n cashCoupon: null,\n pikCoupon: null,\n contractualMaturity: null,\n expectedTenor: null,\n currency: null,\n totalDealSizeLow: null,\n totalDealSizeHigh: null,\n totalDealSize: null,\n expectedTorSizeLow: null,\n expectedTorSizeHigh: null,\n expectedTorSize: null,\n isin: null,\n comment: null,\n lastUpdatedById: null,\n leadAnalystId: null,\n analyst2Id: null,\n analyst3Id: null,\n analyst4Id: null,\n expectedIRR: null\n },\n newDealPipeSummary: dealPipeline ?? {\n dealPipeSummaryId: null,\n projectName: null,\n gicsSectorId: null,\n gicsIndustryGroupId: null,\n gicsIndustryId: null,\n gicsSubIndustryId: null,\n gicsNACEId: null,\n bicsSectorId: null,\n bicsIndustryGroupId: null,\n bicsIndustryId: null,\n bicsSubIndustryId: null,\n countryOfRiskId: null,\n isPublic: null,\n equityUpside: null,\n equityUpsideForm: null,\n assetTypeId: null,\n creditRankingId: null,\n statusId: null,\n expectedExecutionDate: null,\n purchaseIssuePrice: null,\n cashCoupon: null,\n pikCoupon: null,\n contractualMaturity: null,\n expectedTenor: null,\n currency: null,\n totalDealSizeLow: null,\n totalDealSizeHigh: null,\n totalDealSize: null,\n expectedTorSizeLow: null,\n expectedTorSizeHigh: null,\n expectedTorSize: null,\n isin: null,\n comment: null,\n lastUpdatedById: null,\n leadAnalystId: null,\n analyst2Id: null,\n analyst3Id: null,\n analyst4Id: null,\n expectedIRR: null\n },\n analystListRaw: [],\n gicsSectorListRaw: [],\n gicsIndustryGroupListRaw: [],\n gicsIndustryListRaw: [],\n gicsSubIndustryListRaw: [],\n naceListRaw: [],\n gicsSectorList: [],\n gicsIndustryGroupList: [],\n gicsIndustryList: [],\n gicsSubIndustryList: [],\n naceList: [],\n bicsSectorList: [],\n bicsIndustryGroupList: [],\n bicsIndustryList: [],\n bicsSubIndustryList: [],\n countryList: [],\n assetTypeList: [],\n creditRankingList: [],\n statusList: [],\n currencyList: [],\n values: null,\n selectedRows: null,\n showAll: false\n };\n this.render = this.render.bind(this);\n this.closeMessage = this.closeMessage.bind(this);\n this.getPage = this.getPage.bind(this);\n this.saveDB = this.saveDB.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleDropDownChange = this.handleDropDownChange.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleChangeCheckbox = this.handleChangeCheckbox.bind(this);\n this.handleChangeTextBox = this.handleChangeTextBox.bind(this);\n this.goHome = this.goHome.bind(this);\n //this.handleModalChange = this.handleModalChange.bind(this);\n //this.togglePanel = this.togglePanel.bind(this);\n this.handleChangeNew = this.handleChangeNew.bind(this);\n this.getSettingByName = this.getSettingByName.bind(this);\n this.loadSettings = this.loadSettings.bind(this);\n\n dealBALService.getNace().then(data => { this.setState({ naceListRaw: data, naceList: [] }); }, error => { console.log(error); });\n dealBALService.getNaceActivity().then(data => { this.setState({ activityListRaw: data, activityList: [] }); }, error => { console.log(error); });\n dealBALService.getAnalysts().then(data => { this.setState({ analystList: data.map(item => { return { key: item.name, value: item.id, text: item.name } }) }); }, error => { console.log(error); });\n dealBALService.getAllCountry().then(data => { this.setState({ countryList: data.map(item => { return { key: item.id, value: item.id, text: item.name } }) }); }, error => { console.log(error); });\n dealBALService.getGics().then(data => {\n const gicsSectorList = data.map(item => { return { key: item.name, value: item.id, text: item.name } });\n const { gicsSectorId, gicsIndustryGroupId, gicsIndustryId, gicsSubIndustryId, gicsNACEId } = this.state?.newDealPipeSummary;\n this.setState({\n gicsSectorListRaw: data,\n gicsSectorList: gicsSectorList\n });\n if (gicsSectorId > 0) {\n this.handleDropDownChange(null, { name: \"gicsSectorId\", value: gicsSectorId });\n }\n if (gicsIndustryGroupId > 0) {\n this.handleDropDownChange(null, { name: \"gicsIndustryGroupId\", value: gicsIndustryGroupId });\n }\n if (gicsIndustryId > 0) {\n this.handleDropDownChange(null, { name: \"gicsIndustryId\", value: gicsIndustryId });\n }\n if (gicsSubIndustryId > 0) {\n this.handleDropDownChange(null, { name: \"gicsSubIndustryId\", value: gicsSubIndustryId });\n }\n if (gicsNACEId > 0) {\n this.handleDropDownChange(null, { name: \"gicsNACEId\", value: gicsNACEId });\n }\n },\n error => { console.log(error); });\n this.loadSettings();\n }\n\n goHome = async () => {\n this.setState({ redirectTo: 'dealPipelineDashboard' });\n }\n\n getFormatted = (value) => {\n return value && !isNaN(value) && parseFloat(value) ? parseFloat(value).toFixed(Number.isInteger(value) ? 0 : 2) : value;\n }\n\n render() {\n if (this.state.redirectTo)\n return ;\n return this.getPage();\n }\n\n closeModal() {\n if (this.state.modalHandler === 'refresh') {\n window.location.reload();\n }\n this.setState({\n modalVisible: false\n });\n }\n\n handleChangeTextBox(e) {\n const { name, value } = e.target;\n this.setState({\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value }\n });\n }\n\n handleDropDownChange(e, { name, value }) {\n if (name === \"gicsSectorId\") {\n if (value) {\n var industryGroupsRaw = this.state.gicsSectorListRaw.filter(function (item) { return item.id === value })[0]?.industryGroups;\n this.setState({\n gicsIndustryGroupListRaw: industryGroupsRaw,\n gicsIndustryGroupList: industryGroupsRaw.map(item => { return { key: item.name, value: item.id, text: item.name } }),\n gicsIndustryListRaw: [],\n gicsIndustryList: [],\n gicsSubIndustryListRaw: [],\n gicsSubIndustryList: [],\n naceList: [],\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value, gicsIndustryGroupId: null, gicsIndustryId: null, gicsSubIndustryId: null, gicsNACEId: null }\n });\n } else {\n this.setState({\n gicsIndustryGroupListRaw: [],\n gicsIndustryGroupList: [],\n gicsIndustryListRaw: [],\n gicsIndustryList: [],\n gicsSubIndustryListRaw: [],\n gicsSubIndustryList: [],\n naceList: [],\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value, gicsIndustryGroupId: null, gicsIndustryId: null, gicsSubIndustryId: null, gicsNACEId: null }\n });\n\n }\n } else if (name === \"gicsIndustryGroupId\") {\n if (value) {\n var industriesRaw = this.state.gicsIndustryGroupListRaw.filter(function (item) { return item.id === value })[0]?.industries;\n this.setState({\n gicsIndustryListRaw: industriesRaw,\n gicsIndustryList: industriesRaw.map(item => { return { key: item.name, value: item.id, text: item.name } }),\n gicsSubIndustryListRaw: [],\n gicsSubIndustryList: [],\n naceList: [],\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value, gicsIndustryId: null, gicsSubIndustryId: null, gicsNACEId: null }\n });\n } else {\n this.setState({\n gicsIndustryListRaw: [],\n gicsIndustryList: [],\n gicsSubIndustryListRaw: [],\n gicsSubIndustryList: [],\n naceList: [],\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value, gicsIndustryId: null, gicsSubIndustryId: null, gicsNACEId: null }\n });\n }\n } else if (name === \"gicsIndustryId\" && this.state.gicsIndustryListRaw !== undefined) {\n if (value) {\n var subIndustriesRaw = this.state?.gicsIndustryListRaw.filter(function (item) { return item.id === value })[0]?.subIndustries;\n this.setState({\n gicsSubIndustryListRaw: subIndustriesRaw,\n gicsSubIndustryList: subIndustriesRaw.map(item => { return { key: item.name, value: item.id, text: item.name } }),\n naceList: [],\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value, gicsSubIndustryId: null, gicsNACEId: null }\n });\n } else {\n this.setState({\n gicsSubIndustryListRaw: [],\n gicsSubIndustryList: [],\n naceList: [],\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value, gicsSubIndustryId: null, gicsNACEId: null }\n });\n }\n } else if (name === \"gicsSubIndustryId\" && this.state.gicsSubIndustryListRaw !== undefined) {\n var setBlank = false;\n if (value) {\n const gicsSubIndustries = this.state?.gicsSubIndustryListRaw.filter(function (item) { return item.id === value });\n if (gicsSubIndustries && gicsSubIndustries.length > 0) {\n const code = gicsSubIndustries[0].code;\n console.log(`Sub-Industry Code - ${code} Sub-Industry Id- ${value} `);\n const naceListRaw = this.state?.naceListRaw.filter(function (item) { return item.code === code });\n this.setState({\n naceList: naceListRaw?.map(item => { return { key: item.name, value: item.id, text: item.name } }),\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value, gicsNACEId: null }\n });\n } else {\n setBlank = true;\n }\n } else {\n setBlank = true;\n }\n if (setBlank) {\n this.setState({\n naceList: [],\n newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value, gicsNACEId: null }\n });\n }\n } else {\n this.setState({ newDealPipeSummary: { ...this.state.newDealPipeSummary, [name]: value } });\n }\n }\n\n handleChangeNew(name, value) {\n this.setState({\n newDealPipeSummary: {\n ...this.state.newDealPipeSummary,\n [name]: value\n }\n });\n }\n\n closeMessage() {\n this.setState({ showMessage: false, errorList: [], messageHeader: \"\" });\n }\n\n saveDB() {\n const { newDealPipeSummary, existingDealPipeSummary, isIRUser } = this.state;\n\n if (JSON.stringify(newDealPipeSummary) === JSON.stringify(existingDealPipeSummary)) {\n this.setState({\n showMessage: false,\n errorList: null,\n messageHeader: \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'No changes to save!',\n open: false,\n deal: null\n }, () => {\n\n });\n return;\n }\n\n if (newDealPipeSummary.projectName === null || newDealPipeSummary.projectName === '') {\n this.setState({\n showMessage: false,\n errorList: null,\n messageHeader: \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Project Name is mandatory!',\n open: false,\n deal: null\n }, () => {\n\n });\n return;\n }\n\n \n //console.log(newDealPipeSummary);\n var dealPipeSummary = newDealPipeSummary;\n if(isIRUser) {\n if (newDealPipeSummary.projectName !== existingDealPipeSummary.projectName)\n dealPipeSummary = {'id' : newDealPipeSummary.id, 'projectName':newDealPipeSummary.projectName, 'isOnlyUpdatedFields': true};\n else { \n this.setState({\n showMessage: false,\n errorList: null,\n messageHeader: \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'As IR user you can only change Project Name but it is same as before',\n open: false,\n deal: null\n }, () => { \n }); \n }\n }\n\n dealPipelineSummaryBALService.save(dealPipeSummary).then(\n data => {\n this.setState({\n newDealPipeSummary : data,\n existingDealPipeSummary: data,\n showMessage: false,\n errorList: null,\n messageHeader: \"\",\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saved data successfully!',\n open: false,\n deal: null\n }, () => {\n\n });\n }\n , error => {\n this.setState({\n showMessage: true,\n errorList: [error],\n messageHeader: `Error while saving Deal Pipeline:`,\n modalVisible: true,\n modalType: 'close',\n modalHandler: 'close',\n modalHeading: 'Saving data failed!'\n });\n console.log(error);\n });\n }\n\n handleChangeCheckbox(e) {\n this.setState({\n newDealPipeSummary: {\n ...this.state.newDealPipeSummary,\n [e.target.name]: e.target.value === \"true\"\n }\n });\n }\n\n\n getSettingByName(settingList, name) {\n let setting = settingList.filter(\n function (data) {\n return data['value'] === name\n }\n )\n\n return setting.length > 0 ? setting[0].childSettings : [];\n }\n\n loadSettings() {\n dealBALService.getAllSettings().then(settingList => {\n const assetTypeList = this.getSettingByName(settingList, \"Asset Type\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const creditRankingList = this.getSettingByName(settingList, \"Credit Ranking\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n const statusList = this.getSettingByName(settingList, \"Deal Pipe Status\").map(item => { return { key: item.value, value: item.id, text: item.value } });\n\n\n dealBALService.getRates().then(data => {\n const currencyList = data.map(item => { return { key: item.Currency, value: item.Currency, text: item.Currency } });\n this.setState({\n settingList: settingList,\n assetTypeList: assetTypeList,\n creditRankingList: creditRankingList,\n statusList: statusList,\n currencyList: currencyList\n });\n }, error => { console.log(error); });\n\n }, error => { console.log(error); });\n }\n\n handleChange(name, value) {\n this.setState({ [name]: value });\n }\n\n getPage() {\n const { modalType, modalVisible, modalHeading, gridReminderData, newDealPipeSummary, existingDealPipeSummary,\n analystList, gicsSectorList, countryList, assetTypeList, creditRankingList, statusList, isReadOnly, isIRUser\n } = this.state;\n const { projectName, gicsSectorId, countryOfRiskId, equityUpside, assetTypeId, creditRankingId, statusId, expectedExecutionDate, purchaseIssuePrice, cashCoupon, pikCoupon, expectedTenor, totalDealSize, expectedTorSize, comment, leadAnalystId, analyst2Id, analyst3Id, analyst4Id, expectedIRR } = newDealPipeSummary;\n\n return (\n
\n {\n this.state.showMessage ?\n :
\n }\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n    \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n { this.handleChangeNew('purchaseIssuePrice', values.floatValue); }}\n className={'form-control inputLightP'}\n disabled={isReadOnly}\n />\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n { this.handleChangeNew('cashCoupon', values.floatValue); }}\n className={'form-control inputLightP'}\n disabled={isReadOnly}\n />\n
\n
\n
\n
\n
\n
\n \n
\n
\n { this.handleChangeNew('pikCoupon', values.floatValue); }}\n className={'form-control inputLightP'}\n disabled={isReadOnly}\n />\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n    \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n { this.handleChangeNew('expectedTenor', values.floatValue); }}\n className={'form-control inputLightP'}\n disabled={isReadOnly}\n />\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n { this.handleChangeNew('expectedTorSize', values.floatValue); }}\n className={'form-control inputLightP'}\n disabled={isReadOnly}\n />\n
\n
\n
\n
\n
\n
\n \n
\n
\n { this.handleChangeNew('totalDealSize', values.floatValue); }}\n className={'form-control inputLightP'}\n disabled={isReadOnly}\n />\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n