|
|
@ -454,30 +454,22 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { |
|
|
|
|
|
|
|
if (position.holdings.length > 0) { |
|
|
|
for (const holding of position.holdings) { |
|
|
|
const { name, valueInBaseCurrency } = holding; |
|
|
|
|
|
|
|
if ( |
|
|
|
!this.hasImpersonationId && |
|
|
|
!this.user.settings.isRestrictedView |
|
|
|
) { |
|
|
|
if (this.topHoldingsMap[name]?.value) { |
|
|
|
this.topHoldingsMap[name].value += |
|
|
|
valueInBaseCurrency * |
|
|
|
(isNumber(position.valueInBaseCurrency) |
|
|
|
? position.valueInBaseCurrency |
|
|
|
: position.valueInPercentage); |
|
|
|
} else { |
|
|
|
this.topHoldingsMap[name] = { |
|
|
|
name, |
|
|
|
value: |
|
|
|
valueInBaseCurrency * |
|
|
|
(isNumber(position.valueInBaseCurrency) |
|
|
|
? this.portfolioDetails.holdings[symbol] |
|
|
|
.valueInBaseCurrency |
|
|
|
: this.portfolioDetails.holdings[symbol] |
|
|
|
.valueInPercentage) |
|
|
|
}; |
|
|
|
} |
|
|
|
const { allocationInPercentage, name, valueInBaseCurrency } = |
|
|
|
holding; |
|
|
|
|
|
|
|
if (this.topHoldingsMap[name]?.value) { |
|
|
|
this.topHoldingsMap[name].value += isNumber(valueInBaseCurrency) |
|
|
|
? valueInBaseCurrency |
|
|
|
: allocationInPercentage * |
|
|
|
this.portfolioDetails.holdings[symbol].valueInPercentage; |
|
|
|
} else { |
|
|
|
this.topHoldingsMap[name] = { |
|
|
|
name, |
|
|
|
value: isNumber(valueInBaseCurrency) |
|
|
|
? valueInBaseCurrency |
|
|
|
: allocationInPercentage * |
|
|
|
this.portfolioDetails.holdings[symbol].valueInPercentage |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -562,6 +554,14 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { |
|
|
|
|
|
|
|
this.topHoldings = Object.values(this.topHoldingsMap) |
|
|
|
.map(({ name, value }) => { |
|
|
|
if (this.hasImpersonationId || this.user.settings.isRestrictedView) { |
|
|
|
return { |
|
|
|
name, |
|
|
|
allocationInPercentage: value, |
|
|
|
valueInBaseCurrency: null |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
name, |
|
|
|
allocationInPercentage: |
|
|
@ -570,7 +570,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { |
|
|
|
}; |
|
|
|
}) |
|
|
|
.sort((a, b) => { |
|
|
|
return b.valueInBaseCurrency - a.valueInBaseCurrency; |
|
|
|
return b.allocationInPercentage - a.allocationInPercentage; |
|
|
|
}); |
|
|
|
|
|
|
|
if (this.topHoldings.length > MAX_TOP_HOLDINGS) { |
|
|
|