Browse Source
			
			
			Bugfix/fix values in position detail dialog (#351)
			
				* Nullify netPerformance
* Introduce precision
* Update changelog
			
			
				pull/352/head^2
			
			
		 
		
			
				
					
						 Thomas Kaul
					
					4 years ago
						Thomas Kaul
					
					4 years ago
					
						
							committed by
							
								 GitHub
								GitHub
							
						 
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: 4AEE18F83AFDEB23
						
					
				
			
		
		
		
	
		
			
				 6 changed files with 
29 additions and 
18 deletions
			 
			
		 
		
			
				- 
					
					
					 
					CHANGELOG.md
				
- 
					
					
					 
					apps/api/src/app/portfolio/portfolio.controller.ts
				
- 
					
					
					 
					apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html
				
- 
					
					
					 
					libs/ui/.eslintrc.json
				
- 
					
					
					 
					libs/ui/src/lib/value/value.component.stories.ts
				
- 
					
					
					 
					libs/ui/src/lib/value/value.component.ts
				
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. | 
			
		
	
		
			
				
					|  |  |  | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | 
			
		
	
		
			
				
					|  |  |  | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ## Unreleased | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ### Added | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | - Added the attribute `precision` in the value component | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ### Fixed | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | - Hid the performance in the _Presenter View_ | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ## 1.47.1 - 06.09.2021 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ### Fixed | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -276,6 +276,7 @@ export class PortfolioController { | 
			
		
	
		
			
				
					|  |  |  |         position = nullifyValuesInObject(position, [ | 
			
		
	
		
			
				
					|  |  |  |           'grossPerformance', | 
			
		
	
		
			
				
					|  |  |  |           'investment', | 
			
		
	
		
			
				
					|  |  |  |           'netPerformance', | 
			
		
	
		
			
				
					|  |  |  |           'quantity' | 
			
		
	
		
			
				
					|  |  |  |         ]); | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -80,7 +80,8 @@ | 
			
		
	
		
			
				
					|  |  |  |         <gf-value | 
			
		
	
		
			
				
					|  |  |  |           label="Quantity" | 
			
		
	
		
			
				
					|  |  |  |           size="medium" | 
			
		
	
		
			
				
					|  |  |  |           [isCurrency]="true" | 
			
		
	
		
			
				
					|  |  |  |           [locale]="data.locale" | 
			
		
	
		
			
				
					|  |  |  |           [precision]="2" | 
			
		
	
		
			
				
					|  |  |  |           [value]="quantity" | 
			
		
	
		
			
				
					|  |  |  |         ></gf-value> | 
			
		
	
		
			
				
					|  |  |  |       </div> | 
			
		
	
	
		
			
				
					|  |  | @ -103,8 +104,6 @@ | 
			
		
	
		
			
				
					|  |  |  |       <div class="col-6 mb-3"> | 
			
		
	
		
			
				
					|  |  |  |         <gf-value | 
			
		
	
		
			
				
					|  |  |  |           size="medium" | 
			
		
	
		
			
				
					|  |  |  |           [isCurrency]="false" | 
			
		
	
		
			
				
					|  |  |  |           [isInteger]="true" | 
			
		
	
		
			
				
					|  |  |  |           [label]="transactionCount === 1 ? 'Transaction' : 'Transactions'" | 
			
		
	
		
			
				
					|  |  |  |           [locale]="data.locale" | 
			
		
	
		
			
				
					|  |  |  |           [value]="transactionCount" | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -13,7 +13,7 @@ | 
			
		
	
		
			
				
					|  |  |  |           "error", | 
			
		
	
		
			
				
					|  |  |  |           { | 
			
		
	
		
			
				
					|  |  |  |             "type": "attribute", | 
			
		
	
		
			
				
					|  |  |  |             "prefix": "ghostfolio", | 
			
		
	
		
			
				
					|  |  |  |             "prefix": "gf", | 
			
		
	
		
			
				
					|  |  |  |             "style": "camelCase" | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         ], | 
			
		
	
	
		
			
				
					|  |  | @ -21,7 +21,7 @@ | 
			
		
	
		
			
				
					|  |  |  |           "error", | 
			
		
	
		
			
				
					|  |  |  |           { | 
			
		
	
		
			
				
					|  |  |  |             "type": "element", | 
			
		
	
		
			
				
					|  |  |  |             "prefix": "ghostfolio", | 
			
		
	
		
			
				
					|  |  |  |             "prefix": "gf", | 
			
		
	
		
			
				
					|  |  |  |             "style": "kebab-case" | 
			
		
	
		
			
				
					|  |  |  |           } | 
			
		
	
		
			
				
					|  |  |  |         ] | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -29,17 +29,16 @@ Currency.args = { | 
			
		
	
		
			
				
					|  |  |  |   value: 7 | 
			
		
	
		
			
				
					|  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export const Integer = Template.bind({}); | 
			
		
	
		
			
				
					|  |  |  | Integer.args = { | 
			
		
	
		
			
				
					|  |  |  |   isInteger: true, | 
			
		
	
		
			
				
					|  |  |  |   locale: 'en-US', | 
			
		
	
		
			
				
					|  |  |  |   value: 7 | 
			
		
	
		
			
				
					|  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export const Label = Template.bind({}); | 
			
		
	
		
			
				
					|  |  |  | Label.args = { | 
			
		
	
		
			
				
					|  |  |  |   isInteger: true, | 
			
		
	
		
			
				
					|  |  |  |   label: 'Label', | 
			
		
	
		
			
				
					|  |  |  |   locale: 'en-US', | 
			
		
	
		
			
				
					|  |  |  |   value: 7 | 
			
		
	
		
			
				
					|  |  |  |   value: 7.25 | 
			
		
	
		
			
				
					|  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | export const Precision = Template.bind({}); | 
			
		
	
		
			
				
					|  |  |  | Precision.args = { | 
			
		
	
		
			
				
					|  |  |  |   locale: 'en-US', | 
			
		
	
		
			
				
					|  |  |  |   precision: 3, | 
			
		
	
		
			
				
					|  |  |  |   value: 7.2534802394809285309 | 
			
		
	
		
			
				
					|  |  |  | }; | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -18,11 +18,11 @@ export class ValueComponent implements OnChanges { | 
			
		
	
		
			
				
					|  |  |  |   @Input() colorizeSign = false; | 
			
		
	
		
			
				
					|  |  |  |   @Input() currency = ''; | 
			
		
	
		
			
				
					|  |  |  |   @Input() isCurrency = false; | 
			
		
	
		
			
				
					|  |  |  |   @Input() isInteger = false; | 
			
		
	
		
			
				
					|  |  |  |   @Input() isPercent = false; | 
			
		
	
		
			
				
					|  |  |  |   @Input() label = ''; | 
			
		
	
		
			
				
					|  |  |  |   @Input() locale = ''; | 
			
		
	
		
			
				
					|  |  |  |   @Input() position = ''; | 
			
		
	
		
			
				
					|  |  |  |   @Input() precision: number | undefined; | 
			
		
	
		
			
				
					|  |  |  |   @Input() size = ''; | 
			
		
	
		
			
				
					|  |  |  |   @Input() value: number | string = ''; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -82,13 +82,15 @@ export class ValueComponent implements OnChanges { | 
			
		
	
		
			
				
					|  |  |  |               minimumFractionDigits: 2 | 
			
		
	
		
			
				
					|  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |           } catch {} | 
			
		
	
		
			
				
					|  |  |  |         } else if (this.isInteger) { | 
			
		
	
		
			
				
					|  |  |  |         } else if (this.precision || this.precision === 0) { | 
			
		
	
		
			
				
					|  |  |  |           try { | 
			
		
	
		
			
				
					|  |  |  |             this.formattedValue = this.value?.toLocaleString(this.locale, { | 
			
		
	
		
			
				
					|  |  |  |               maximumFractionDigits: 0, | 
			
		
	
		
			
				
					|  |  |  |               minimumFractionDigits: 0 | 
			
		
	
		
			
				
					|  |  |  |               maximumFractionDigits: this.precision, | 
			
		
	
		
			
				
					|  |  |  |               minimumFractionDigits: this.precision | 
			
		
	
		
			
				
					|  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |           } catch {} | 
			
		
	
		
			
				
					|  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |           this.formattedValue = this.value?.toString(); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       } else { | 
			
		
	
		
			
				
					|  |  |  |         try { | 
			
		
	
	
		
			
				
					|  |  | 
 |