| 
						
						
							
								
							
						
						
					 | 
					@ -30,8 +30,6 @@ export class PortfolioCalculator { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  ) {} | 
					 | 
					 | 
					  ) {} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  public computeTransactionPoints(orders: PortfolioOrder[]) { | 
					 | 
					 | 
					  public computeTransactionPoints(orders: PortfolioOrder[]) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    console.time('compute-transaction-points'); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    orders.sort((a, b) => a.date.localeCompare(b.date)); | 
					 | 
					 | 
					    orders.sort((a, b) => a.date.localeCompare(b.date)); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    this.transactionPoints = []; | 
					 | 
					 | 
					    this.transactionPoints = []; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -97,7 +95,6 @@ export class PortfolioCalculator { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      } | 
					 | 
					 | 
					      } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      lastDate = currentDate; | 
					 | 
					 | 
					      lastDate = currentDate; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    console.timeEnd('compute-transaction-points'); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  public setTransactionPoints(transactionPoints: TransactionPoint[]) { | 
					 | 
					 | 
					  public setTransactionPoints(transactionPoints: TransactionPoint[]) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -247,8 +244,6 @@ export class PortfolioCalculator { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    if (timelineSpecification.length === 0) { | 
					 | 
					 | 
					    if (timelineSpecification.length === 0) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      return []; | 
					 | 
					 | 
					      return []; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    console.time('calculate-timeline-total'); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    console.time('calculate-timeline-calculations'); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    const startDate = timelineSpecification[0].start; | 
					 | 
					 | 
					    const startDate = timelineSpecification[0].start; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    const start = parseDate(startDate); | 
					 | 
					 | 
					    const start = parseDate(startDate); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -296,17 +291,11 @@ export class PortfolioCalculator { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        timelinePeriodPromises.push(timePeriodForDates); | 
					 | 
					 | 
					        timelinePeriodPromises.push(timePeriodForDates); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      } | 
					 | 
					 | 
					      } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    console.timeEnd('calculate-timeline-calculations'); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    console.time('calculate-timeline-periods'); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    const timelinePeriods: TimelinePeriod[][] = await Promise.all( | 
					 | 
					 | 
					    const timelinePeriods: TimelinePeriod[][] = await Promise.all( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					      timelinePeriodPromises | 
					 | 
					 | 
					      timelinePeriodPromises | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    ); | 
					 | 
					 | 
					    ); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    console.timeEnd('calculate-timeline-periods'); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    console.timeEnd('calculate-timeline-total'); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    return flatten(timelinePeriods); | 
					 | 
					 | 
					    return flatten(timelinePeriods); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					  } | 
					 | 
					 | 
					  } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |