Browse Source

Bugfix/allocate remaining percentage to unknown data in portfolio proportion chart (#6054)

* Allocate remaining percentage to unknown data in portfolio proportion chart

* Update changelog
pull/6034/head^2
David Requeno 5 days ago
committed by GitHub
parent
commit
646ee7271a
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 4
      CHANGELOG.md
  2. 26
      libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts

4
CHANGELOG.md

@ -12,6 +12,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Moved the notification module to `@ghostfolio/ui`
- Improved the language localization for German (`de`)
### Fixed
- Fixed a calculation issue that resulted in the incorrect assignment of unknown data in the portfolio proportion chart component
## 2.222.0 - 2025-12-07
### Added

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

@ -1,6 +1,6 @@
import { getTooltipOptions } from '@ghostfolio/common/chart-helper';
import { UNKNOWN_KEY } from '@ghostfolio/common/config';
import { getLocale, getTextColor } from '@ghostfolio/common/helper';
import { getLocale, getSum, getTextColor } from '@ghostfolio/common/helper';
import {
AssetProfileIdentifier,
PortfolioPosition
@ -193,6 +193,30 @@ export class GfPortfolioProportionChartComponent
});
}
if (this.isInPercent) {
const totalValueInPercentage = getSum(
Object.values(chartData).map(({ value }) => {
return value;
})
);
const unknownValueInPercentage = new Big(1).minus(totalValueInPercentage);
if (unknownValueInPercentage.gt(0)) {
// If total is below 100%, allocate the remaining percentage to UNKNOWN_KEY
if (chartData[UNKNOWN_KEY]) {
chartData[UNKNOWN_KEY].value = chartData[UNKNOWN_KEY].value.plus(
unknownValueInPercentage
);
} else {
chartData[UNKNOWN_KEY] = {
name: UNKNOWN_KEY,
value: unknownValueInPercentage
};
}
}
}
let chartDataSorted = Object.entries(chartData)
.sort((a, b) => {
return a[1].value.minus(b[1].value).toNumber();

Loading…
Cancel
Save