@ -4,6 +4,7 @@ import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-foote 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  {  GfDialogHeaderModule  }  from  '@ghostfolio/client/components/dialog-header/dialog-header.module' ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  {  DataService  }  from  '@ghostfolio/client/services/data.service' ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  {  UserService  }  from  '@ghostfolio/client/services/user/user.service' ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  {  NUMERICAL_PRECISION_THRESHOLD  }  from  '@ghostfolio/common/config' ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  {  DATE_FORMAT ,  downloadAsFile  }  from  '@ghostfolio/common/helper' ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  DataProviderInfo ,  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -84,18 +85,22 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  dataProviderInfo : DataProviderInfo ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  dataSource : MatTableDataSource < Activity > ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  dividendInBaseCurrency : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  dividendInBaseCurrencyPrecision  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  dividendYieldPercentWithCurrencyEffect : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  feeInBaseCurrency : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  firstBuyDate : string ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  historicalDataItems : LineChartItem [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  investment : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  investmentPrecision  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  marketPrice : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  maxPrice : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  minPrice : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  netPerformance : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  netPerformancePrecision  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  netPerformancePercent : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  netPerformancePercentWithCurrencyEffect : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  netPerformanceWithCurrencyEffect : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  netPerformanceWithCurrencyEffectPrecision  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  quantity : number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  quantityPrecision  =  2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  public  reportDataGlitchMail : string ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -161,10 +166,20 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . dataProviderInfo  =  dataProviderInfo ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . dataSource  =  new  MatTableDataSource ( orders . reverse ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . dividendInBaseCurrency  =  dividendInBaseCurrency ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          if  (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . data . deviceType  ===  'mobile'  &&  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . dividendInBaseCurrency  >=  NUMERICAL_PRECISION_THRESHOLD  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . dividendInBaseCurrencyPrecision  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . dividendYieldPercentWithCurrencyEffect  =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            dividendYieldPercentWithCurrencyEffect ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . feeInBaseCurrency  =  feeInBaseCurrency ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . firstBuyDate  =  firstBuyDate ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . historicalDataItems  =  historicalData . map (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            ( {  averagePrice ,  date ,  marketPrice  } )  = >  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              this . benchmarkDataItems . push ( {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -178,17 +193,58 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              } ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . investment  =  investment ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          if  (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . data . deviceType  ===  'mobile'  &&  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . investment  >=  NUMERICAL_PRECISION_THRESHOLD  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . investmentPrecision  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . marketPrice  =  marketPrice ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . maxPrice  =  maxPrice ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . minPrice  =  minPrice ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . netPerformance  =  netPerformance ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          if  (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . data . deviceType  ===  'mobile'  &&  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . netPerformance  >=  NUMERICAL_PRECISION_THRESHOLD  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . netPerformancePrecision  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . netPerformancePercent  =  netPerformancePercent ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . netPerformancePercentWithCurrencyEffect  =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            netPerformancePercentWithCurrencyEffect ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . netPerformanceWithCurrencyEffect  =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            netPerformanceWithCurrencyEffect ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          if  (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . data . deviceType  ===  'mobile'  &&  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . netPerformanceWithCurrencyEffect  >=  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              NUMERICAL_PRECISION_THRESHOLD  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . netPerformanceWithCurrencyEffectPrecision  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . quantity  =  quantity ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          if  ( Number . isInteger ( this . quantity ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . quantityPrecision  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          }  else  if  ( this . SymbolProfile ? . assetSubClass  ===  'CRYPTOCURRENCY' )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            if  ( this . quantity  <  1 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              this . quantityPrecision  =  7 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  else  if  ( this . quantity  <  1000 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              this . quantityPrecision  =  5 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  else  if  ( this . quantity  >=  10000000 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              this . quantityPrecision  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . reportDataGlitchMail  =  ` mailto:hi@ghostfol.io?Subject=Ghostfolio Data Glitch Report&body=Hello%0D%0DI would like to report a data glitch for%0D%0DSymbol:  ${ SymbolProfile ? . symbol } %0DData Source:  ${ SymbolProfile ? . dataSource } %0D%0DAdditional notes:%0D%0DCan you please take a look?%0D%0DKind regards ` ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . sectors  =  { } ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . SymbolProfile  =  SymbolProfile ;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -282,18 +338,6 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          if  ( Number . isInteger ( this . quantity ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            this . quantityPrecision  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          }  else  if  ( this . SymbolProfile ? . assetSubClass  ===  'CRYPTOCURRENCY' )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            if  ( this . quantity  <  1 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              this . quantityPrecision  =  7 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  else  if  ( this . quantity  <  1000 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              this . quantityPrecision  =  5 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  else  if  ( this . quantity  >  10000000 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					              this . quantityPrecision  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          this . changeDetectorRef . markForCheck ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      ) ;