 Thomas Kaul
					
					2 years ago
						Thomas Kaul
					
					2 years ago
					
						
							committed by
							
								 GitHub
								GitHub
							
						 
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: B5690EEEBB952194
						
					
				
			
		
		
		
	
		
			
				 32 changed files with 
35 additions and 
35 deletions
			 
			
		 
		
			
				- 
					
					
					 
					apps/api/src/app/account/account.service.ts
				
- 
					
					
					 
					apps/api/src/app/benchmark/benchmark.service.ts
				
- 
					
					
					 
					apps/api/src/app/import/import.service.ts
				
- 
					
					
					 
					apps/api/src/app/order/order.service.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/interfaces/current-positions.interface.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/interfaces/portfolio-calculator.interface.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/interfaces/portfolio-order.interface.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/interfaces/transaction-point-symbol.interface.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-baln-buy-and-sell.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-baln-buy.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-googl-buy.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-msft-buy-with-dividend.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-no-orders.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-novn-buy-and-sell-partially.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator-novn-buy-and-sell.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator.spec.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio-calculator.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio.controller.ts
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio.service.ts
				
- 
					
					
					 
					apps/api/src/helper/object.helper.ts
				
- 
					
					
					 
					apps/api/src/services/data-provider/data-provider.service.ts
				
- 
					
					
					 
					apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts
				
- 
					
					
					 
					apps/client/src/app/pages/portfolio/fire/fire-page.component.ts
				
- 
					
					
					 
					libs/common/src/lib/helper.ts
				
- 
					
					
					 
					libs/common/src/lib/interfaces/symbol-metrics.interface.ts
				
- 
					
					
					 
					libs/common/src/lib/interfaces/timeline-position.interface.ts
				
- 
					
					
					 
					libs/ui/src/lib/fire-calculator/fire-calculator.service.ts
				
- 
					
					
					 
					libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
				
- 
					
					
					 
					package.json
				
- 
					
					
					 
					yarn.lock
				
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -5,7 +5,7 @@ import { Filter } from '@ghostfolio/common/interfaces'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { Injectable } from '@nestjs/common'; | 
			
		
	
		
			
				
					|  |  |  | import { Account, Order, Platform, Prisma } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { groupBy } from 'lodash'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CashDetails } from './interfaces/cash-details.interface'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -26,7 +26,7 @@ import { BenchmarkTrend } from '@ghostfolio/common/types'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { Injectable, Logger } from '@nestjs/common'; | 
			
		
	
		
			
				
					|  |  |  | import { SymbolProfile } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { format, isSameDay, subDays } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import { isNumber, last, uniqBy } from 'lodash'; | 
			
		
	
		
			
				
					|  |  |  | import ms from 'ms'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -27,7 +27,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { Injectable } from '@nestjs/common'; | 
			
		
	
		
			
				
					|  |  |  | import { DataSource, Prisma, SymbolProfile } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { endOfToday, format, isAfter, isSameSecond, parseISO } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import { uniqBy } from 'lodash'; | 
			
		
	
		
			
				
					|  |  |  | import { v4 as uuidv4 } from 'uuid'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -21,7 +21,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  |   Tag, | 
			
		
	
		
			
				
					|  |  |  |   Type as ActivityType | 
			
		
	
		
			
				
					|  |  |  | } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { endOfToday, isAfter } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import { groupBy } from 'lodash'; | 
			
		
	
		
			
				
					|  |  |  | import { v4 as uuidv4 } from 'uuid'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,6 +1,6 @@ | 
			
		
	
		
			
				
					|  |  |  | import { ResponseError, TimelinePosition } from '@ghostfolio/common/interfaces'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export interface CurrentPositions extends ResponseError { | 
			
		
	
		
			
				
					|  |  |  |   currentValueInBaseCurrency: Big; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,4 +1,4 @@ | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioOrder } from './portfolio-order.interface'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,5 +1,5 @@ | 
			
		
	
		
			
				
					|  |  |  | import { DataSource, Tag, Type as ActivityType } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export interface PortfolioOrder { | 
			
		
	
		
			
				
					|  |  |  |   currency: string; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,5 +1,5 @@ | 
			
		
	
		
			
				
					|  |  |  | import { DataSource, Tag } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export interface TransactionPointSymbol { | 
			
		
	
		
			
				
					|  |  |  |   averagePrice: Big; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -2,7 +2,7 @@ import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.s | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -2,7 +2,7 @@ import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.s | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -2,7 +2,7 @@ import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.s | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -3,7 +3,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate- | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataServiceMock } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -3,7 +3,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate- | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataServiceMock } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -3,7 +3,7 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate- | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataServiceMock } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -2,7 +2,7 @@ import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.s | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -2,7 +2,7 @@ import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.s | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -2,7 +2,7 @@ import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.s | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; | 
			
		
	
		
			
				
					|  |  |  | import { parseDate } from '@ghostfolio/common/helper'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateServiceMock } from './current-rate.service.mock'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,6 +1,6 @@ | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { CurrentRateService } from './current-rate.service'; | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioCalculator } from './portfolio-calculator'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -13,7 +13,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  | import { GroupBy } from '@ghostfolio/common/types'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { Logger } from '@nestjs/common'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { | 
			
		
	
		
			
				
					|  |  |  |   addDays, | 
			
		
	
		
			
				
					|  |  |  |   addMilliseconds, | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -46,7 +46,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  | } from '@nestjs/common'; | 
			
		
	
		
			
				
					|  |  |  | import { REQUEST } from '@nestjs/core'; | 
			
		
	
		
			
				
					|  |  |  | import { AuthGuard } from '@nestjs/passport'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { StatusCodes, getReasonPhrase } from 'http-status-codes'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { PortfolioPositionDetail } from './interfaces/portfolio-position-detail.interface'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -67,7 +67,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  |   Prisma, | 
			
		
	
		
			
				
					|  |  |  |   Tag | 
			
		
	
		
			
				
					|  |  |  | } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { isUUID } from 'class-validator'; | 
			
		
	
		
			
				
					|  |  |  | import { | 
			
		
	
		
			
				
					|  |  |  |   differenceInDays, | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,4 +1,4 @@ | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { cloneDeep, isArray, isObject } from 'lodash'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export function hasNotDefinedValuesInObject(aObject: Object): boolean { | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -20,7 +20,7 @@ import type { Granularity, UserWithSettings } from '@ghostfolio/common/types'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { Inject, Injectable, Logger } from '@nestjs/common'; | 
			
		
	
		
			
				
					|  |  |  | import { DataSource, MarketData, SymbolProfile } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { eachDayOfInterval, format, isValid } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import { groupBy, isEmpty, isNumber, uniqWith } from 'lodash'; | 
			
		
	
		
			
				
					|  |  |  | import ms from 'ms'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -21,7 +21,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  | import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; | 
			
		
	
		
			
				
					|  |  |  | import { Sort, SortDirection } from '@angular/material/sort'; | 
			
		
	
		
			
				
					|  |  |  | import { MatTableDataSource } from '@angular/material/table'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { format, parseISO } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import { isNumber } from 'lodash'; | 
			
		
	
		
			
				
					|  |  |  | import { Subject } from 'rxjs'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -5,7 +5,7 @@ import { PortfolioReportRule, User } from '@ghostfolio/common/interfaces'; | 
			
		
	
		
			
				
					|  |  |  | import { hasPermission, permissions } from '@ghostfolio/common/permissions'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { DeviceDetectorService } from 'ngx-device-detector'; | 
			
		
	
		
			
				
					|  |  |  | import { Subject } from 'rxjs'; | 
			
		
	
		
			
				
					|  |  |  | import { takeUntil } from 'rxjs/operators'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,7 +1,7 @@ | 
			
		
	
		
			
				
					|  |  |  | import * as currencies from '@dinero.js/currencies'; | 
			
		
	
		
			
				
					|  |  |  | import { NumberParser } from '@internationalized/number'; | 
			
		
	
		
			
				
					|  |  |  | import { DataSource, MarketData, Type as ActivityType } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { | 
			
		
	
		
			
				
					|  |  |  |   getDate, | 
			
		
	
		
			
				
					|  |  |  |   getMonth, | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,4 +1,4 @@ | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export interface SymbolMetrics { | 
			
		
	
		
			
				
					|  |  |  |   currentValues: { | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,5 +1,5 @@ | 
			
		
	
		
			
				
					|  |  |  | import { DataSource, Tag } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export interface TimelinePosition { | 
			
		
	
		
			
				
					|  |  |  |   averagePrice: Big; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -1,5 +1,5 @@ | 
			
		
	
		
			
				
					|  |  |  | import { Injectable } from '@angular/core'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | @Injectable() | 
			
		
	
		
			
				
					|  |  |  | export class FireCalculatorService { | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -18,7 +18,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  |   ViewChild | 
			
		
	
		
			
				
					|  |  |  | } from '@angular/core'; | 
			
		
	
		
			
				
					|  |  |  | import { DataSource } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import Big from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { Big } from 'big.js'; | 
			
		
	
		
			
				
					|  |  |  | import { ChartConfiguration, Tooltip } from 'chart.js'; | 
			
		
	
		
			
				
					|  |  |  | import { LinearScale } from 'chart.js'; | 
			
		
	
		
			
				
					|  |  |  | import { ArcElement } from 'chart.js'; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -164,7 +164,7 @@ | 
			
		
	
		
			
				
					|  |  |  |     "@storybook/angular": "7.6.5", | 
			
		
	
		
			
				
					|  |  |  |     "@storybook/core-server": "7.6.5", | 
			
		
	
		
			
				
					|  |  |  |     "@trivago/prettier-plugin-sort-imports": "4.3.0", | 
			
		
	
		
			
				
					|  |  |  |     "@types/big.js": "6.1.6", | 
			
		
	
		
			
				
					|  |  |  |     "@types/big.js": "6.2.2", | 
			
		
	
		
			
				
					|  |  |  |     "@types/body-parser": "1.19.2", | 
			
		
	
		
			
				
					|  |  |  |     "@types/cache-manager": "3.4.2", | 
			
		
	
		
			
				
					|  |  |  |     "@types/color": "3.0.3", | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -6946,10 +6946,10 @@ | 
			
		
	
		
			
				
					|  |  |  |   dependencies: | 
			
		
	
		
			
				
					|  |  |  |     "@babel/types" "^7.20.7" | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | "@types/big.js@6.1.6": | 
			
		
	
		
			
				
					|  |  |  |   version "6.1.6" | 
			
		
	
		
			
				
					|  |  |  |   resolved "https://registry.yarnpkg.com/@types/big.js/-/big.js-6.1.6.tgz#3d417e758483d55345a03a087f7e0c87137ca444" | 
			
		
	
		
			
				
					|  |  |  |   integrity sha512-0r9J+Zz9rYm2hOTwiMAVkm3XFQ4u5uTK37xrQMhc9bysn/sf/okzovWMYYIBMFTn/yrEZ11pusgLEaoarTlQbA== | 
			
		
	
		
			
				
					|  |  |  | "@types/big.js@6.2.2": | 
			
		
	
		
			
				
					|  |  |  |   version "6.2.2" | 
			
		
	
		
			
				
					|  |  |  |   resolved "https://registry.yarnpkg.com/@types/big.js/-/big.js-6.2.2.tgz#69422ec9ef59df1330ccfde2106d9e1159a083c3" | 
			
		
	
		
			
				
					|  |  |  |   integrity sha512-e2cOW9YlVzFY2iScnGBBkplKsrn2CsObHQ2Hiw4V1sSyiGbgWL8IyqE3zFi1Pt5o1pdAtYkDAIsF3KKUPjdzaA== | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | "@types/body-parser@*": | 
			
		
	
		
			
				
					|  |  |  |   version "1.19.4" | 
			
		
	
	
		
			
				
					|  |  | 
 |