|
@ -47,7 +47,6 @@ export class PortfolioProportionChartComponent |
|
|
[symbol: string]: Pick<PortfolioPosition, 'type'> & { |
|
|
[symbol: string]: Pick<PortfolioPosition, 'type'> & { |
|
|
dataSource?: DataSource; |
|
|
dataSource?: DataSource; |
|
|
name: string; |
|
|
name: string; |
|
|
valueInBaseCurrency: number; |
|
|
|
|
|
value: number; |
|
|
value: number; |
|
|
}; |
|
|
}; |
|
|
} = {}; |
|
|
} = {}; |
|
@ -106,10 +105,9 @@ export class PortfolioProportionChartComponent |
|
|
if (chartData[this.positions[symbol][this.keys[0]].toUpperCase()]) { |
|
|
if (chartData[this.positions[symbol][this.keys[0]].toUpperCase()]) { |
|
|
chartData[ |
|
|
chartData[ |
|
|
this.positions[symbol][this.keys[0]].toUpperCase() |
|
|
this.positions[symbol][this.keys[0]].toUpperCase() |
|
|
].value.plus( |
|
|
].value = chartData[ |
|
|
this.positions[symbol].valueInBaseCurrency ?? |
|
|
this.positions[symbol][this.keys[0]].toUpperCase() |
|
|
this.positions[symbol].value |
|
|
].value.plus(this.positions[symbol].value); |
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
if ( |
|
|
if ( |
|
|
chartData[this.positions[symbol][this.keys[0]].toUpperCase()] |
|
|
chartData[this.positions[symbol][this.keys[0]].toUpperCase()] |
|
@ -117,31 +115,24 @@ 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 = |
|
|
this.positions[symbol].valueInBaseCurrency ?? |
|
|
chartData[ |
|
|
|
|
|
this.positions[symbol][this.keys[0]].toUpperCase() |
|
|
|
|
|
].subCategory[this.positions[symbol][this.keys[1]]].value.plus( |
|
|
this.positions[symbol].value |
|
|
this.positions[symbol].value |
|
|
); |
|
|
); |
|
|
} else { |
|
|
} else { |
|
|
chartData[ |
|
|
chartData[ |
|
|
this.positions[symbol][this.keys[0]].toUpperCase() |
|
|
this.positions[symbol][this.keys[0]].toUpperCase() |
|
|
].subCategory[ |
|
|
].subCategory[ |
|
|
this.positions[symbol][this.keys[1]] ?? UNKNOWN_KEY |
|
|
this.positions[symbol][this.keys[1]] ?? UNKNOWN_KEY |
|
|
] = { |
|
|
] = { value: new Big(this.positions[symbol].value) }; |
|
|
value: new Big( |
|
|
|
|
|
this.positions[symbol].valueInBaseCurrency ?? |
|
|
|
|
|
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( |
|
|
value: new Big(this.positions[symbol].value ?? 0) |
|
|
this.positions[symbol].valueInBaseCurrency ?? |
|
|
|
|
|
this.positions[symbol].value ?? |
|
|
|
|
|
0 |
|
|
|
|
|
) |
|
|
|
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
if (this.positions[symbol][this.keys[1]]) { |
|
|
if (this.positions[symbol][this.keys[1]]) { |
|
@ -149,10 +140,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( |
|
|
value: new Big(this.positions[symbol].value) |
|
|
this.positions[symbol].valueInBaseCurrency ?? |
|
|
|
|
|
this.positions[symbol].value |
|
|
|
|
|
) |
|
|
|
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
} |
|
|
} |
|
@ -160,8 +148,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 |
|
|
this.positions[symbol].value |
|
|
|
|
|
); |
|
|
); |
|
|
} else { |
|
|
} else { |
|
|
chartData[UNKNOWN_KEY] = { |
|
|
chartData[UNKNOWN_KEY] = { |
|
@ -169,10 +156,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( |
|
|
value: new Big(this.positions[symbol].value) |
|
|
this.positions[symbol].valueInBaseCurrency ?? |
|
|
|
|
|
this.positions[symbol].value |
|
|
|
|
|
) |
|
|
|
|
|
}; |
|
|
}; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -360,6 +344,7 @@ export class PortfolioProportionChartComponent |
|
|
|
|
|
|
|
|
this.isLoading = false; |
|
|
this.isLoading = false; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Color palette, inspired by https://yeun.github.io/open-color
|
|
|
* Color palette, inspired by https://yeun.github.io/open-color
|
|
|
*/ |
|
|
*/ |
|
|