diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index 4e2ddf8401..71b934628c 100644 --- a/libs/common/src/lib/helper.spec.ts +++ b/libs/common/src/lib/helper.spec.ts @@ -156,6 +156,17 @@ describe('Helper', () => { ).toEqual('Cash (CHF)'); }); + it('Cash position without asset sub class label', () => { + expect( + getHoldingName({ + assetSubClass: 'CASH', + assetSubClassLabel: undefined, + name: 'CHF', + symbol: 'CHF' + }) + ).toEqual('CHF'); + }); + it('Holding with name', () => { expect( getHoldingName({ diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 4c82a08116..7e4e13de7e 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -462,7 +462,7 @@ export function getHoldingName({ PortfolioPosition['assetProfile'], 'assetSubClass' | 'assetSubClassLabel' | 'name' | 'symbol' >) { - if (isCashPosition({ assetSubClass })) { + if (isCashPosition({ assetSubClass }) && assetSubClassLabel) { return `${assetSubClassLabel} (${symbol})`; } diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.html b/libs/ui/src/lib/holdings-table/holdings-table.component.html index 688aac75e8..e1c012ab15 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.html +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -40,11 +40,16 @@ mat-cell [class.w-100]="mode() === 'simple'" > -
- {{ getHoldingName(element.assetProfile) }} + @let holdingName = getHoldingName(element.assetProfile); + +
+ {{ holdingName }} + @if ( + !isCashPosition(element.assetProfile) && + element.assetProfile.name === element.assetProfile.symbol + ) { + ({{ element.assetProfile.assetSubClassLabel }}) + }
@if (mode() === 'default') {
diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.ts b/libs/ui/src/lib/holdings-table/holdings-table.component.ts index 5eed45950f..1894260b78 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.ts +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.ts @@ -91,6 +91,7 @@ export class GfHoldingsTableComponent { }); protected readonly getHoldingName = getHoldingName; + protected readonly isCashPosition = isCashPosition; protected readonly isLoading = computed(() => { return !this.holdings(); @@ -107,7 +108,13 @@ export class GfHoldingsTableComponent { }); public constructor() { - this.dataSource.sortingDataAccessor = getLowercase; + this.dataSource.sortingDataAccessor = (holding, path) => { + if (path === 'assetProfile.name') { + return getHoldingName(holding.assetProfile).toLocaleLowerCase(); + } + + return getLowercase(holding, path) as number | string; + }; // Reactive data update effect(() => {