Browse Source

Refactoring

pull/2167/head
Thomas 2 years ago
parent
commit
15da8dbfbf
  1. 20
      apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
  2. 20
      libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts

20
apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts

@ -65,13 +65,8 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
public positions: { public positions: {
[symbol: string]: Pick< [symbol: string]: Pick<
PortfolioPosition, PortfolioPosition,
| 'assetClass' 'assetClass' | 'assetSubClass' | 'currency' | 'exchange' | 'name'
| 'assetSubClass' > & { etfProvider: string; value: number };
| 'currency'
| 'exchange'
| 'name'
| 'valueInBaseCurrency'
> & { etfProvider: string };
}; };
public sectors: { public sectors: {
[name: string]: { name: string; value: number }; [name: string]: { name: string; value: number };
@ -81,7 +76,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
dataSource?: DataSource; dataSource?: DataSource;
name: string; name: string;
symbol: string; symbol: string;
valueInBaseCurrency: number; value: number;
}; };
}; };
@ -259,7 +254,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
[UNKNOWN_KEY]: { [UNKNOWN_KEY]: {
name: UNKNOWN_KEY, name: UNKNOWN_KEY,
symbol: UNKNOWN_KEY, symbol: UNKNOWN_KEY,
valueInBaseCurrency: 0 value: 0
} }
}; };
} }
@ -296,7 +291,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
} }
this.positions[symbol] = { this.positions[symbol] = {
valueInBaseCurrency: value, value,
assetClass: position.assetClass, assetClass: position.assetClass,
assetSubClass: position.assetSubClass, assetSubClass: position.assetSubClass,
currency: position.currency, currency: position.currency,
@ -389,7 +384,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
dataSource: position.dataSource, dataSource: position.dataSource,
name: position.name, name: position.name,
symbol: prettifySymbol(symbol), symbol: prettifySymbol(symbol),
valueInBaseCurrency: isNumber(position.valueInBaseCurrency) value: isNumber(position.valueInBaseCurrency)
? position.valueInBaseCurrency ? position.valueInBaseCurrency
: position.valueInPercentage : position.valueInPercentage
}; };
@ -425,6 +420,9 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
this.markets.emergingMarkets.value / marketsTotal; this.markets.emergingMarkets.value / marketsTotal;
this.markets.otherMarkets.value = this.markets.otherMarkets.value =
this.markets.otherMarkets.value / marketsTotal; this.markets.otherMarkets.value / marketsTotal;
console.log(this.positions);
console.log(this.symbols);
} }
public onAccountChartClicked({ symbol }: UniqueAsset) { public onAccountChartClicked({ symbol }: UniqueAsset) {

20
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts

@ -44,12 +44,10 @@ export class PortfolioProportionChartComponent
@Input() maxItems?: number; @Input() maxItems?: number;
@Input() showLabels = false; @Input() showLabels = false;
@Input() positions: { @Input() positions: {
[symbol: string]: Pick< [symbol: string]: Pick<PortfolioPosition, 'type'> & {
PortfolioPosition,
'type' | 'valueInBaseCurrency'
> & {
dataSource?: DataSource; dataSource?: DataSource;
name: string; name: string;
value: number;
}; };
} = {}; } = {};
@ -107,7 +105,7 @@ export class PortfolioProportionChartComponent
chartData[this.positions[symbol][this.keys[0]].toUpperCase()].value = chartData[this.positions[symbol][this.keys[0]].toUpperCase()].value =
chartData[ chartData[
this.positions[symbol][this.keys[0]].toUpperCase() this.positions[symbol][this.keys[0]].toUpperCase()
].value.plus(this.positions[symbol].valueInBaseCurrency); ].value.plus(this.positions[symbol].value);
if ( if (
chartData[this.positions[symbol][this.keys[0]].toUpperCase()] chartData[this.positions[symbol][this.keys[0]].toUpperCase()]
@ -119,19 +117,19 @@ export class PortfolioProportionChartComponent
chartData[ chartData[
this.positions[symbol][this.keys[0]].toUpperCase() this.positions[symbol][this.keys[0]].toUpperCase()
].subCategory[this.positions[symbol][this.keys[1]]].value.plus( ].subCategory[this.positions[symbol][this.keys[1]]].value.plus(
this.positions[symbol].valueInBaseCurrency this.positions[symbol].value
); );
} else { } else {
chartData[ chartData[
this.positions[symbol][this.keys[0]].toUpperCase() this.positions[symbol][this.keys[0]].toUpperCase()
].subCategory[this.positions[symbol][this.keys[1]] ?? UNKNOWN_KEY] = ].subCategory[this.positions[symbol][this.keys[1]] ?? UNKNOWN_KEY] =
{ value: new Big(this.positions[symbol].valueInBaseCurrency) }; { value: new Big(this.positions[symbol].value) };
} }
} else { } else {
chartData[this.positions[symbol][this.keys[0]].toUpperCase()] = { chartData[this.positions[symbol][this.keys[0]].toUpperCase()] = {
name: this.positions[symbol][this.keys[0]], name: this.positions[symbol][this.keys[0]],
subCategory: {}, subCategory: {},
value: new Big(this.positions[symbol].valueInBaseCurrency ?? 0) value: new Big(this.positions[symbol].value ?? 0)
}; };
if (this.positions[symbol][this.keys[1]]) { if (this.positions[symbol][this.keys[1]]) {
@ -139,7 +137,7 @@ export class PortfolioProportionChartComponent
this.positions[symbol][this.keys[0]].toUpperCase() this.positions[symbol][this.keys[0]].toUpperCase()
].subCategory = { ].subCategory = {
[this.positions[symbol][this.keys[1]]]: { [this.positions[symbol][this.keys[1]]]: {
value: new Big(this.positions[symbol]?.valueInBaseCurrency ?? 0) value: new Big(this.positions[symbol]?.value ?? 0)
} }
}; };
} }
@ -147,7 +145,7 @@ export class PortfolioProportionChartComponent
} else { } else {
if (chartData[UNKNOWN_KEY]) { if (chartData[UNKNOWN_KEY]) {
chartData[UNKNOWN_KEY].value = chartData[UNKNOWN_KEY].value.plus( chartData[UNKNOWN_KEY].value = chartData[UNKNOWN_KEY].value.plus(
this.positions[symbol].valueInBaseCurrency this.positions[symbol].value
); );
} else { } else {
chartData[UNKNOWN_KEY] = { chartData[UNKNOWN_KEY] = {
@ -155,7 +153,7 @@ export class PortfolioProportionChartComponent
subCategory: this.keys[1] subCategory: this.keys[1]
? { [this.keys[1]]: { value: new Big(0) } } ? { [this.keys[1]]: { value: new Big(0) } }
: undefined, : undefined,
value: new Big(this.positions[symbol].valueInBaseCurrency) value: new Big(this.positions[symbol].value)
}; };
} }
} }

Loading…
Cancel
Save