{"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/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/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","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","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","AssetCommentaryInput","reportModal","forDate","editorState","report_date","prevState","today","yesterday","isShowInput","existingDealDetails","newDealDetails","fordate","setInput","gridApprovalApi","deal_risk_commentary_id","isDisabled","readonly","onBlur","hidden","AssetCommentaryReview","notes","existingNotes","isReviewed","existingIsReviewed","editType","showGrid","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","faPlusCircle","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","existingValue","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","existingTaskDetail","newTaskDetail","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","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.714d92a4.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 { 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'\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}\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'] : [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']\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 ],\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 //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: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" },\n { key: 6, 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: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" },\n { key: 6, 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: 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: 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: 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: 4, text: \"TIFO\", value: \"TIFO\" },\n { key: 5, text: \"TALC\", value: \"TALC\" },\n { key: 6, 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 { 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