From 77beaaba082cdc2d7f72605b28465efd29462283 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 3 May 2024 21:48:46 +0200 Subject: [PATCH 1/8] Refactoring portfolio service (#3365) --- apps/api/src/app/portfolio/portfolio.service.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 10c09a21f..4be9d4e00 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1604,7 +1604,7 @@ export class PortfolioService { userId = await this.getUserId(impersonationId, userId); const user = await this.userService.user({ id: userId }); - const performanceInformation = await this.getPerformance({ + const { performance } = await this.getPerformance({ impersonationId, userId }); @@ -1694,7 +1694,7 @@ export class PortfolioService { .toNumber(); const netWorth = new Big(balanceInBaseCurrency) - .plus(performanceInformation.performance.currentValue) + .plus(performance.currentValue) .plus(valuables) .plus(excludedAccountsAndActivities) .minus(liabilities) @@ -1704,21 +1704,19 @@ export class PortfolioService { const annualizedPerformancePercent = this.getAnnualizedPerformancePercent({ daysInMarket, - netPerformancePercent: new Big( - performanceInformation.performance.currentNetPerformancePercent - ) + netPerformancePercent: new Big(performance.currentNetPerformancePercent) })?.toNumber(); const annualizedPerformancePercentWithCurrencyEffect = this.getAnnualizedPerformancePercent({ daysInMarket, netPerformancePercent: new Big( - performanceInformation.performance.currentNetPerformancePercentWithCurrencyEffect + performance.currentNetPerformancePercentWithCurrencyEffect ) })?.toNumber(); return { - ...performanceInformation.performance, + ...performance, annualizedPerformancePercent, annualizedPerformancePercentWithCurrencyEffect, cash, @@ -1740,7 +1738,7 @@ export class PortfolioService { filteredValueInPercentage: netWorth ? filteredValueInBaseCurrency.div(netWorth).toNumber() : undefined, - fireWealth: new Big(performanceInformation.performance.currentValue) + fireWealth: new Big(performance.currentValue) .minus(emergencyFundPositionsValueInBaseCurrency) .toNumber(), interest: interest.toNumber(), From 42b70ef56890e640a2d49d03c9ef0039b8050589 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 4 May 2024 07:49:37 +0200 Subject: [PATCH 2/8] Feature/improve performance labels in position detail dialog (#3363) * Improve performance labels (with and without currency effects) * Update changelog --- CHANGELOG.md | 6 + .../position-detail-dialog.component.ts | 16 +- .../position-detail-dialog.html | 69 +++++--- apps/client/src/locales/messages.de.xlf | 156 ++++++++++-------- apps/client/src/locales/messages.es.xlf | 156 ++++++++++-------- apps/client/src/locales/messages.fr.xlf | 156 ++++++++++-------- apps/client/src/locales/messages.it.xlf | 156 ++++++++++-------- apps/client/src/locales/messages.nl.xlf | 156 ++++++++++-------- apps/client/src/locales/messages.pl.xlf | 156 ++++++++++-------- apps/client/src/locales/messages.pt.xlf | 156 ++++++++++-------- apps/client/src/locales/messages.tr.xlf | 156 ++++++++++-------- apps/client/src/locales/messages.xlf | 154 +++++++++-------- apps/client/src/locales/messages.zh.xlf | 156 ++++++++++-------- libs/ui/src/lib/value/value.component.html | 4 +- 14 files changed, 927 insertions(+), 726 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc79a2ddf..8ba54382c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Improved the performance labels (with and without currency effects) in the position detail dialog + ## 2.78.0 - 2024-05-02 ### Added diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts index bb37b9ed5..2a0303686 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts @@ -56,6 +56,8 @@ export class PositionDetailDialog implements OnDestroy, OnInit { public marketPrice: number; public maxPrice: number; public minPrice: number; + public netPerformance: number; + public netPerformancePercent: number; public netPerformancePercentWithCurrencyEffect: number; public netPerformanceWithCurrencyEffect: number; public quantity: number; @@ -104,6 +106,8 @@ export class PositionDetailDialog implements OnDestroy, OnInit { marketPrice, maxPrice, minPrice, + netPerformance, + netPerformancePercent, netPerformancePercentWithCurrencyEffect, netPerformanceWithCurrencyEffect, orders, @@ -126,15 +130,15 @@ export class PositionDetailDialog implements OnDestroy, OnInit { this.feeInBaseCurrency = feeInBaseCurrency; this.firstBuyDate = firstBuyDate; this.historicalDataItems = historicalData.map( - (historicalDataItem) => { + ({ averagePrice, date, marketPrice }) => { this.benchmarkDataItems.push({ - date: historicalDataItem.date, - value: historicalDataItem.averagePrice + date, + value: averagePrice }); return { - date: historicalDataItem.date, - value: historicalDataItem.marketPrice + date, + value: marketPrice }; } ); @@ -142,6 +146,8 @@ export class PositionDetailDialog implements OnDestroy, OnInit { this.marketPrice = marketPrice; this.maxPrice = maxPrice; this.minPrice = minPrice; + this.netPerformance = netPerformance; + this.netPerformancePercent = netPerformancePercent; this.netPerformancePercentWithCurrencyEffect = netPerformancePercentWithCurrencyEffect; this.netPerformanceWithCurrencyEffect = diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html index 537fe104d..9ae432a35 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -37,27 +37,58 @@
- Change + @if ( + SymbolProfile?.currency && + data.baseCurrency !== SymbolProfile?.currency + ) { + Change with currency effect + } @else { + Change + }
- Performance + @if ( + SymbolProfile?.currency && + data.baseCurrency !== SymbolProfile?.currency + ) { + Performance with currency effect + } @else { + Performance + }
apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -138,7 +138,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -146,7 +146,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -154,7 +154,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -190,31 +190,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -338,7 +338,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -354,7 +354,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -446,7 +446,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -466,7 +466,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -486,11 +486,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -506,7 +506,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -530,11 +530,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -546,7 +546,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -562,7 +562,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -842,7 +842,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -1350,7 +1350,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -1472,7 +1472,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -1480,11 +1480,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -1508,7 +1508,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -1528,7 +1528,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -1540,11 +1540,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -1556,7 +1556,7 @@ Datenfehler melden apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -1576,7 +1576,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2076,7 +2076,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2448,7 +2448,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2456,11 +2456,11 @@ Anzahl apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2472,11 +2472,11 @@ Stückpreis apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2488,11 +2488,11 @@ Gebühr apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2512,7 +2512,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -2532,11 +2532,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -2852,7 +2852,7 @@ Änderung apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -2860,7 +2860,7 @@ Ø Preis pro Einheit apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -2868,7 +2868,7 @@ Minimum Preis apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -2876,7 +2876,7 @@ Maximum Preis apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -2896,11 +2896,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -2912,7 +2912,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -2928,7 +2928,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -2972,7 +2972,7 @@ Projizierter Gesamtbetrag libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -3924,7 +3924,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -4028,7 +4028,7 @@ Ups! Der historische Wechselkurs konnte nicht abgerufen werden vom apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -4136,7 +4136,7 @@ Plattform bearbeiten apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -4144,7 +4144,7 @@ Plattform hinzufügen apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -4160,7 +4160,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -4184,7 +4184,7 @@ Cash-Bestand aktualisieren apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -13236,7 +13236,7 @@ Ups! Der historische Wechselkurs konnte nicht abgerufen werden vom apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -13284,7 +13284,7 @@ Tag bearbeiten apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -13292,7 +13292,7 @@ Tag hinzufügen apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -13736,7 +13736,7 @@ Ups, der Cash-Bestand Transfer ist fehlgeschlagen. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -13784,7 +13784,7 @@ Ups! Die historischen Daten konnten nicht geparsed werden. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -14632,7 +14632,7 @@ Möchtest du diesen Cash-Bestand wirklich löschen? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14656,7 +14656,7 @@ Der aktuelle Marktpreis ist apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14704,7 +14704,7 @@ Ups! Der Zugang konnte nicht gewährt werden. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -15000,7 +15000,7 @@ Aktivität apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15008,7 +15008,7 @@ Dividendenrendite apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15043,6 +15043,22 @@ 43 + + Change with currency effect + Änderung mit Währungseffekt + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance mit Währungseffekt + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 42e5e299a..09dd7c44a 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -107,11 +107,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -139,7 +139,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -147,7 +147,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -155,7 +155,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -191,31 +191,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -339,7 +339,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -355,7 +355,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -447,7 +447,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -467,7 +467,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -487,11 +487,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -507,7 +507,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -531,11 +531,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -547,7 +547,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -563,7 +563,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -843,7 +843,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -1351,7 +1351,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -1470,7 +1470,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -1478,11 +1478,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -1506,7 +1506,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -1526,7 +1526,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -1538,11 +1538,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -1554,7 +1554,7 @@ Reporta un anomalía de los datos apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -1574,7 +1574,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2074,7 +2074,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2446,7 +2446,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2454,11 +2454,11 @@ Cantidad apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2470,11 +2470,11 @@ Precio unitario apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2486,11 +2486,11 @@ Comisión apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2510,7 +2510,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -2530,11 +2530,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -2850,7 +2850,7 @@ Modificar apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -2882,11 +2882,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -2894,7 +2894,7 @@ Precio unitario medio apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -2902,7 +2902,7 @@ Precio máximo apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -2938,7 +2938,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -2954,7 +2954,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -2962,7 +2962,7 @@ Precio mínimo apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -2970,7 +2970,7 @@ Importe total previsto libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -3922,7 +3922,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -4026,7 +4026,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -4134,7 +4134,7 @@ Update platform apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -4142,7 +4142,7 @@ Add platform apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -4158,7 +4158,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -4182,7 +4182,7 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -13234,7 +13234,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -13282,7 +13282,7 @@ Update tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -13290,7 +13290,7 @@ Add tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -13734,7 +13734,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -13782,7 +13782,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -14630,7 +14630,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14654,7 +14654,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14702,7 +14702,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -14998,7 +14998,7 @@ Activity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15006,7 +15006,7 @@ Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15041,6 +15041,22 @@ 43 + + Change with currency effect + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 3955e6dd8..9042459f8 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -118,11 +118,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -150,7 +150,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -158,7 +158,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -166,7 +166,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -206,7 +206,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -246,31 +246,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -386,7 +386,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -402,7 +402,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -502,7 +502,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -522,7 +522,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -542,11 +542,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -562,7 +562,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -586,11 +586,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -602,7 +602,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -630,11 +630,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -654,11 +654,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -674,7 +674,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -762,7 +762,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -778,7 +778,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -794,7 +794,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -814,7 +814,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -838,7 +838,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -930,11 +930,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -1054,7 +1054,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -1090,7 +1090,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1714,7 +1714,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -1841,7 +1841,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -1849,11 +1849,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -1869,7 +1869,7 @@ Différence apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -1877,7 +1877,7 @@ Prix Unitaire Moyen apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -1885,7 +1885,7 @@ Prix Minimum apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -1893,7 +1893,7 @@ Prix Maximum apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -1901,11 +1901,11 @@ Quantité apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1917,7 +1917,7 @@ Signaler une Erreur de Données apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -2673,7 +2673,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2681,11 +2681,11 @@ Prix Unitaire apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2697,11 +2697,11 @@ Frais apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3309,7 +3309,7 @@ Montant Total Prévu libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -3921,7 +3921,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -4025,7 +4025,7 @@ Oups ! Nous n'avons pas pu obtenir le taux de change historique à partir de apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -4133,7 +4133,7 @@ Mettre à jour la Plateforme apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -4141,7 +4141,7 @@ Ajouter une Plateforme apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -4157,7 +4157,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -4181,7 +4181,7 @@ Mettre à jour le Solde apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -13233,7 +13233,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -13281,7 +13281,7 @@ Update tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -13289,7 +13289,7 @@ Add tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -13733,7 +13733,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -13781,7 +13781,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -14629,7 +14629,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14653,7 +14653,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14701,7 +14701,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -14997,7 +14997,7 @@ Activity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15005,7 +15005,7 @@ Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15040,6 +15040,22 @@ 43 + + Change with currency effect + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 7aafd8d57..6e141e532 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -107,11 +107,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -139,7 +139,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -147,7 +147,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -155,7 +155,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -191,31 +191,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -339,7 +339,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -355,7 +355,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -447,7 +447,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -467,7 +467,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -487,11 +487,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -507,7 +507,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -531,11 +531,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -547,7 +547,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -563,7 +563,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -843,7 +843,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -1351,7 +1351,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -1470,7 +1470,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -1478,11 +1478,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -1506,7 +1506,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -1526,7 +1526,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -1538,11 +1538,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -1554,7 +1554,7 @@ Segnala un'anomalia dei dati apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -1574,7 +1574,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2074,7 +2074,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2446,7 +2446,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2454,11 +2454,11 @@ Quantità apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2470,11 +2470,11 @@ Prezzo unitario apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2486,11 +2486,11 @@ Commissione apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2510,7 +2510,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -2530,11 +2530,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -2850,7 +2850,7 @@ Modifica apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -2882,11 +2882,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -2894,7 +2894,7 @@ Prezzo unitario medio apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -2902,7 +2902,7 @@ Prezzo massimo apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -2938,7 +2938,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -2954,7 +2954,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -2962,7 +2962,7 @@ Prezzo minimo apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -2970,7 +2970,7 @@ Importo totale previsto libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -3922,7 +3922,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -4026,7 +4026,7 @@ Ops! Impossibile ottenere il tasso di cambio storico da apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -4134,7 +4134,7 @@ Aggiorna la piattaforma apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -4142,7 +4142,7 @@ Aggiungi la piattaforma apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -4158,7 +4158,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -4182,7 +4182,7 @@ Aggiornamento del saldo di cassa apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -13234,7 +13234,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -13282,7 +13282,7 @@ Update tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -13290,7 +13290,7 @@ Add tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -13734,7 +13734,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -13782,7 +13782,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -14630,7 +14630,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14654,7 +14654,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14702,7 +14702,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -14998,7 +14998,7 @@ Activity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15006,7 +15006,7 @@ Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15041,6 +15041,22 @@ 43 + + Change with currency effect + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 65a45962a..da29f87e3 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -106,11 +106,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -138,7 +138,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -146,7 +146,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -154,7 +154,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -190,31 +190,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -338,7 +338,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -354,7 +354,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -446,7 +446,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -466,7 +466,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -486,11 +486,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -506,7 +506,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -530,11 +530,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -546,7 +546,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -562,7 +562,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -842,7 +842,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -1350,7 +1350,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -1469,7 +1469,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -1477,11 +1477,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -1505,7 +1505,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -1525,7 +1525,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -1537,11 +1537,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -1553,7 +1553,7 @@ Gegevensstoring melden apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -1573,7 +1573,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2073,7 +2073,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2445,7 +2445,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2453,11 +2453,11 @@ Hoeveelheid apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2469,11 +2469,11 @@ Prijs per eenheid apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2485,11 +2485,11 @@ Transactiekosten apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2509,7 +2509,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -2529,11 +2529,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -2849,7 +2849,7 @@ Verandering apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -2881,11 +2881,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -2893,7 +2893,7 @@ Gemiddelde prijs per eenheid apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -2901,7 +2901,7 @@ Maximale prijs apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -2937,7 +2937,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -2953,7 +2953,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -2961,7 +2961,7 @@ Minimale prijs apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -2969,7 +2969,7 @@ Verwacht totaalbedrag libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -3921,7 +3921,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -4025,7 +4025,7 @@ Oeps! Kon de historische wisselkoers niet krijgen van apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -4133,7 +4133,7 @@ Platform bijwerken apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -4141,7 +4141,7 @@ Platform toevoegen apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -4157,7 +4157,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -4181,7 +4181,7 @@ Saldo bijwerken apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -13233,7 +13233,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -13281,7 +13281,7 @@ Update tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -13289,7 +13289,7 @@ Add tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -13733,7 +13733,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -13781,7 +13781,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -14629,7 +14629,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14653,7 +14653,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14701,7 +14701,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -14997,7 +14997,7 @@ Activity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15005,7 +15005,7 @@ Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15040,6 +15040,22 @@ 43 + + Change with currency effect + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 966be7459..4dec633e4 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -1622,11 +1622,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -1682,7 +1682,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -1690,7 +1690,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1698,7 +1698,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1738,7 +1738,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1762,31 +1762,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1918,7 +1918,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -1934,7 +1934,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -2018,7 +2018,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -2038,7 +2038,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -2058,11 +2058,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -2078,7 +2078,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2102,11 +2102,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -2118,7 +2118,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -2178,11 +2178,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -2202,11 +2202,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -2222,7 +2222,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2298,7 +2298,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -2342,7 +2342,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -2358,7 +2358,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -2374,7 +2374,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -2394,7 +2394,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -2434,7 +2434,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -2470,7 +2470,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2658,7 +2658,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -2682,7 +2682,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -2706,7 +2706,7 @@ Update platform apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -2714,7 +2714,7 @@ Add platform apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -2734,11 +2734,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -2766,7 +2766,7 @@ Update tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -2774,7 +2774,7 @@ Add tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -2842,7 +2842,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -3296,7 +3296,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -3324,7 +3324,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -3456,7 +3456,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -3464,11 +3464,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -3484,7 +3484,7 @@ Change apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -3492,7 +3492,7 @@ Average Unit Price apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -3500,7 +3500,7 @@ Minimum Price apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -3508,7 +3508,7 @@ Maximum Price apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -3516,11 +3516,11 @@ Quantity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3532,7 +3532,7 @@ Report Data Glitch apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -4140,7 +4140,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -5028,7 +5028,7 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -5036,11 +5036,11 @@ Unit Price apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -5052,7 +5052,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -5060,11 +5060,11 @@ Fee apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -5076,7 +5076,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -13316,7 +13316,7 @@ Projected Total Amount libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -14632,7 +14632,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14656,7 +14656,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14704,7 +14704,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -15000,7 +15000,7 @@ Activity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15008,7 +15008,7 @@ Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15043,6 +15043,22 @@ 43 + + Change with currency effect + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index ad6aedb7a..a467edaa5 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -118,11 +118,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -150,7 +150,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -158,7 +158,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -166,7 +166,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -206,7 +206,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -246,31 +246,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -386,7 +386,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -402,7 +402,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -502,7 +502,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -522,7 +522,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -542,11 +542,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -562,7 +562,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -586,11 +586,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -602,7 +602,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -630,11 +630,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -654,11 +654,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -674,7 +674,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -922,7 +922,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -958,7 +958,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1590,7 +1590,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -1717,7 +1717,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -1725,11 +1725,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -1745,7 +1745,7 @@ Alterar apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -1753,7 +1753,7 @@ Preço Médio por Unidade apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -1761,7 +1761,7 @@ Preço Mínimo apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -1769,7 +1769,7 @@ Preço Máximo apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -1777,11 +1777,11 @@ Quantidade apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1797,7 +1797,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -1813,7 +1813,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -1829,7 +1829,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -1849,7 +1849,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -1861,11 +1861,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -1877,7 +1877,7 @@ Dados do Relatório com Problema apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -2577,7 +2577,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2585,11 +2585,11 @@ Preço por Unidade apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2601,11 +2601,11 @@ Comissão apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -2625,7 +2625,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -3181,7 +3181,7 @@ Montante Total Projetado libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -3921,7 +3921,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -4025,7 +4025,7 @@ Oops! Não foi possível obter a taxa de câmbio histórica de apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -4133,7 +4133,7 @@ Atualizar plataforma apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -4141,7 +4141,7 @@ Adicionar plataforma apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -4157,7 +4157,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -4181,7 +4181,7 @@ Atualizar saldo em Dinheiro apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -13233,7 +13233,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -13281,7 +13281,7 @@ Update tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -13289,7 +13289,7 @@ Add tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -13733,7 +13733,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -13781,7 +13781,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -14629,7 +14629,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14653,7 +14653,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14701,7 +14701,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -14997,7 +14997,7 @@ Activity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15005,7 +15005,7 @@ Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15040,6 +15040,22 @@ 43 + + Change with currency effect + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index af530e9d5..91e97ea12 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -1614,11 +1614,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -1646,7 +1646,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -1654,7 +1654,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1662,7 +1662,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1702,7 +1702,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1726,31 +1726,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1866,7 +1866,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -1882,7 +1882,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -1982,7 +1982,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -2002,7 +2002,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -2022,11 +2022,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -2042,7 +2042,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2066,11 +2066,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -2082,7 +2082,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -2134,11 +2134,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -2158,11 +2158,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -2178,7 +2178,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2274,7 +2274,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -2290,7 +2290,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -2306,7 +2306,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -2326,7 +2326,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -2358,7 +2358,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -2378,7 +2378,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2470,11 +2470,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -2570,7 +2570,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -2594,7 +2594,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -2618,7 +2618,7 @@ Platformu Güncelle apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -2626,7 +2626,7 @@ Platform Ekle apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -2702,7 +2702,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -3126,7 +3126,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -3281,7 +3281,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -3289,11 +3289,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -3309,7 +3309,7 @@ Para Birimi apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -3317,7 +3317,7 @@ Ortalama Birim Fiyat apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -3325,7 +3325,7 @@ Asgari Fiyat apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -3333,7 +3333,7 @@ Azami Fiyat apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -3341,11 +3341,11 @@ Miktar apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3361,7 +3361,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -3373,7 +3373,7 @@ Rapor Veri Sorunu apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -4513,7 +4513,7 @@ Nakit Bakiyesini Güncelle apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -4521,11 +4521,11 @@ Birim Fiyat apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4537,7 +4537,7 @@ Hay Allah! Geçmiş döviz kuru alınamadı: apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -4545,11 +4545,11 @@ Komisyon apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -12737,7 +12737,7 @@ Hesaplanan Toplam Tutar libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -13241,7 +13241,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -13281,7 +13281,7 @@ Update tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -13289,7 +13289,7 @@ Add tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -13733,7 +13733,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -13781,7 +13781,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -14629,7 +14629,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14653,7 +14653,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14701,7 +14701,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -14997,7 +14997,7 @@ Activity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15005,7 +15005,7 @@ Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15040,6 +15040,22 @@ 43 + + Change with currency effect + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index d12c7f060..2c1e7fa02 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -1590,11 +1590,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -1654,7 +1654,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -1662,7 +1662,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1670,7 +1670,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1708,7 +1708,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1731,31 +1731,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1881,7 +1881,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -1896,7 +1896,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -1970,7 +1970,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1989,7 +1989,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -2008,11 +2008,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -2028,7 +2028,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2051,11 +2051,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -2067,7 +2067,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -2121,11 +2121,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -2144,11 +2144,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -2163,7 +2163,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2231,7 +2231,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -2271,7 +2271,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -2286,7 +2286,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -2301,7 +2301,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -2320,7 +2320,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -2356,7 +2356,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -2388,7 +2388,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2561,7 +2561,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -2584,7 +2584,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -2606,14 +2606,14 @@ Update platform apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 Add platform apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -2631,11 +2631,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -2660,14 +2660,14 @@ Update tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 Add tag apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -2727,7 +2727,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -3132,7 +3132,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -3157,7 +3157,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -3275,7 +3275,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -3283,11 +3283,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -3301,39 +3301,39 @@ Change apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 Average Unit Price apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 Minimum Price apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 Maximum Price apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 Quantity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3344,7 +3344,7 @@ Report Data Glitch apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -3892,7 +3892,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -4683,18 +4683,18 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 Unit Price apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4705,18 +4705,18 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 Fee apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -4727,7 +4727,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -13456,7 +13456,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -13637,7 +13637,7 @@ Projected Total Amount libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -14076,7 +14076,7 @@ The current market price is apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14090,7 +14090,7 @@ Oops! Could not grant access. apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -14374,14 +14374,14 @@ Activity apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -14412,6 +14412,20 @@ 43 + + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 36f0ef1bc..0c48eaed2 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -1623,11 +1623,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 190 + 221 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 300 + 331 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -1691,7 +1691,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 7 + 12 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -1699,7 +1699,7 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 7 + 12 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1707,7 +1707,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 138 + 134 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1747,7 +1747,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 144 + 140 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1771,31 +1771,31 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 194 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 199 + 195 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 201 + 197 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 263 + 257 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 264 + 258 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 265 + 259 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 266 + 260 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1927,7 +1927,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 301 @@ -1943,7 +1943,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 154 + 150 @@ -2027,7 +2027,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 160 + 156 libs/ui/src/lib/account-balances/account-balances.component.html @@ -2047,7 +2047,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 81 + 112 @@ -2067,11 +2067,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 26 + 39 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 13 + 22 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -2087,7 +2087,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 408 + 399 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -2111,11 +2111,11 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 33 + 46 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 20 + 29 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -2127,7 +2127,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 415 + 406 @@ -2187,11 +2187,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 197 + 228 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 334 + 326 @@ -2211,11 +2211,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 206 + 237 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 350 + 342 @@ -2231,7 +2231,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 178 + 209 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2307,7 +2307,7 @@ 哎呀!无法解析历史数据。 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 235 + 236 @@ -2351,7 +2351,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 223 + 254 @@ -2367,7 +2367,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 233 + 264 @@ -2383,7 +2383,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 239 + 270 apps/client/src/app/pages/public/public-page.html @@ -2403,7 +2403,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 282 @@ -2443,7 +2443,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 319 + 311 @@ -2479,7 +2479,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 122 + 120 @@ -2675,7 +2675,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 13 + 22 @@ -2699,7 +2699,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 325 + 356 apps/client/src/app/pages/accounts/accounts-page.html @@ -2723,7 +2723,7 @@ 更新平台 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 2 + 7 @@ -2731,7 +2731,7 @@ 添加平台 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 3 + 8 @@ -2751,11 +2751,11 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 345 + 376 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 363 + 355 libs/ui/src/lib/assistant/assistant.html @@ -2783,7 +2783,7 @@ 更新标签 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + 7 @@ -2791,7 +2791,7 @@ 添加标签 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + 8 @@ -2859,7 +2859,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 59 + 89 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -3313,7 +3313,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 134 + 165 @@ -3341,7 +3341,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 168 + 199 apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -3473,7 +3473,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 146 + 177 apps/client/src/app/pages/features/features-page.html @@ -3481,11 +3481,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 196 + 192 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 261 + 255 @@ -3501,7 +3501,7 @@ 修改 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 48 + 63 @@ -3509,7 +3509,7 @@ 平均单价 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 70 + 101 @@ -3517,7 +3517,7 @@ 最低价格 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 97 + 128 @@ -3525,7 +3525,7 @@ 最高价格 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 113 + 144 @@ -3533,11 +3533,11 @@ 数量 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 123 + 154 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 183 + 179 libs/ui/src/lib/activities-table/activities-table.component.html @@ -3549,7 +3549,7 @@ 报告数据故障 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 363 + 394 @@ -4157,7 +4157,7 @@ 糟糕,现金余额转账失败。 apps/client/src/app/pages/accounts/accounts-page.component.ts - 308 + 304 @@ -5045,7 +5045,7 @@ 更新现金余额 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 110 + 108 @@ -5053,11 +5053,11 @@ 单价 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 203 + 199 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 261 libs/ui/src/lib/activities-table/activities-table.component.html @@ -5069,7 +5069,7 @@ 哎呀!无法从以下来源获取历史汇率 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 232 + 226 @@ -5077,11 +5077,11 @@ 费用 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 286 + 280 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 310 + 302 libs/ui/src/lib/activities-table/activities-table.component.html @@ -5093,7 +5093,7 @@ 哎呀!无法获取历史汇率 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 300 + 292 @@ -13961,7 +13961,7 @@ 您确实要删除该帐户余额吗? libs/ui/src/lib/account-balances/account-balances.component.ts - 104 + 102 @@ -14165,7 +14165,7 @@ 预计总额 libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + 57 @@ -14665,7 +14665,7 @@ 当前市场价格为 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 330 + 342 @@ -14681,7 +14681,7 @@ 哎呀!无法授予访问权限。 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts - 80 + 88 @@ -15001,7 +15001,7 @@ 活动 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 188 + 219 @@ -15009,7 +15009,7 @@ Dividend Yield apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 156 + 187 @@ -15044,6 +15044,22 @@ 43 + + Change with currency effect + Change with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 52 + + + + Performance with currency effect + Performance with currency effect + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 79 + + diff --git a/libs/ui/src/lib/value/value.component.html b/libs/ui/src/lib/value/value.component.html index 4bdaf06a5..3ebda6e52 100644 --- a/libs/ui/src/lib/value/value.component.html +++ b/libs/ui/src/lib/value/value.component.html @@ -73,13 +73,13 @@ /> -
+
{{ subLabel }}
- + From f3d961bc16bb43356d398ac360059690e4c6dd45 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 4 May 2024 14:11:37 +0200 Subject: [PATCH 3/8] Feature/move holdings table to holdings tab of home page (#3368) * Move holdings table to holdings tab of home page * Deprecate api/v1/portfolio/positions endpoint * Update changelog --- CHANGELOG.md | 1 + .../src/app/portfolio/portfolio.controller.ts | 3 + .../home-holdings/home-holdings.component.ts | 98 +++++----- .../home-holdings/home-holdings.html | 55 +++--- .../home-holdings/home-holdings.module.ts | 8 +- .../interfaces/interfaces.ts | 0 .../position-detail-dialog.component.scss | 0 .../position-detail-dialog.component.ts | 0 .../position-detail-dialog.html | 0 .../position-detail-dialog.module.ts | 0 .../position/position.component.html | 72 -------- .../position/position.component.scss | 13 -- .../components/position/position.component.ts | 40 ---- .../components/position/position.module.ts | 29 --- .../positions/positions.component.html | 35 ---- .../positions/positions.component.scss | 17 -- .../positions/positions.component.ts | 70 ------- .../components/positions/positions.module.ts | 21 --- .../src/app/components/rules/rules.module.ts | 2 - .../pages/home/home-page-routing.module.ts | 5 + .../activities/activities-page.component.ts | 4 +- .../allocations/allocations-page.component.ts | 6 +- .../analysis/analysis-page.component.ts | 6 +- .../holdings/holdings-page-routing.module.ts | 21 --- .../holdings/holdings-page.component.ts | 171 ------------------ .../portfolio/holdings/holdings-page.html | 38 ---- .../holdings/holdings-page.module.ts | 22 --- .../portfolio/holdings/holdings-page.scss | 3 - .../portfolio-page-routing.module.ts | 7 - .../portfolio/portfolio-page.component.ts | 5 - apps/client/src/app/services/data.service.ts | 3 + .../holdings-table.component.ts | 2 +- 32 files changed, 108 insertions(+), 649 deletions(-) rename apps/client/src/app/components/{position => }/position-detail-dialog/interfaces/interfaces.ts (100%) rename apps/client/src/app/components/{position => }/position-detail-dialog/position-detail-dialog.component.scss (100%) rename apps/client/src/app/components/{position => }/position-detail-dialog/position-detail-dialog.component.ts (100%) rename apps/client/src/app/components/{position => }/position-detail-dialog/position-detail-dialog.html (100%) rename apps/client/src/app/components/{position => }/position-detail-dialog/position-detail-dialog.module.ts (100%) delete mode 100644 apps/client/src/app/components/position/position.component.html delete mode 100644 apps/client/src/app/components/position/position.component.scss delete mode 100644 apps/client/src/app/components/position/position.component.ts delete mode 100644 apps/client/src/app/components/position/position.module.ts delete mode 100644 apps/client/src/app/components/positions/positions.component.html delete mode 100644 apps/client/src/app/components/positions/positions.component.scss delete mode 100644 apps/client/src/app/components/positions/positions.component.ts delete mode 100644 apps/client/src/app/components/positions/positions.module.ts delete mode 100644 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts delete mode 100644 apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts delete mode 100644 apps/client/src/app/pages/portfolio/holdings/holdings-page.html delete mode 100644 apps/client/src/app/pages/portfolio/holdings/holdings-page.module.ts delete mode 100644 apps/client/src/app/pages/portfolio/holdings/holdings-page.scss diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ba54382c..a744b8e3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Moved the holdings table to the holdings tab of the home page - Improved the performance labels (with and without currency effects) in the position detail dialog ## 2.78.0 - 2024-05-02 diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 0828fb3e4..7aa8e9159 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -490,6 +490,9 @@ export class PortfolioController { return performanceInformation; } + /** + * @deprecated + */ @Get('positions') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseInterceptors(RedactValuesInResponseInterceptor) diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts index 9dbf9d9bf..1a556e6f4 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts @@ -1,11 +1,11 @@ -import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component'; -import { ToggleComponent } from '@ghostfolio/client/components/toggle/toggle.component'; +import { PositionDetailDialogParams } from '@ghostfolio/client/components/position-detail-dialog/interfaces/interfaces'; +import { PositionDetailDialog } from '@ghostfolio/client/components/position-detail-dialog/position-detail-dialog.component'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { Position, User } from '@ghostfolio/common/interfaces'; +import { PortfolioPosition, User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { DateRange } from '@ghostfolio/common/types'; +import { HoldingType, ToggleOption } from '@ghostfolio/common/types'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; @@ -15,19 +15,21 @@ import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; -import { PositionDetailDialogParams } from '../position/position-detail-dialog/interfaces/interfaces'; - @Component({ selector: 'gf-home-holdings', styleUrls: ['./home-holdings.scss'], templateUrl: './home-holdings.html' }) export class HomeHoldingsComponent implements OnDestroy, OnInit { - public dateRangeOptions = ToggleComponent.DEFAULT_DATE_RANGE_OPTIONS; public deviceType: string; public hasImpersonationId: boolean; public hasPermissionToCreateOrder: boolean; - public positions: Position[]; + public holdings: PortfolioPosition[]; + public holdingType: HoldingType = 'ACTIVE'; + public holdingTypeOptions: ToggleOption[] = [ + { label: $localize`Active`, value: 'ACTIVE' }, + { label: $localize`Closed`, value: 'CLOSED' } + ]; public user: User; private unsubscribeSubject = new Subject(); @@ -56,6 +58,17 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { }); } }); + } + + public ngOnInit() { + this.deviceType = this.deviceService.getDeviceInfo().deviceType; + + this.impersonationStorageService + .onChangeHasImpersonation() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((impersonationId) => { + this.hasImpersonationId = !!impersonationId; + }); this.userService.stateChanged .pipe(takeUntil(this.unsubscribeSubject)) @@ -68,37 +81,32 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { permissions.createOrder ); - this.update(); + this.holdings = undefined; + + this.fetchHoldings() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(({ holdings }) => { + this.holdings = holdings; + + this.changeDetectorRef.markForCheck(); + }); + + this.changeDetectorRef.markForCheck(); } }); } - public ngOnInit() { - this.deviceType = this.deviceService.getDeviceInfo().deviceType; + public onChangeHoldingType(aHoldingType: HoldingType) { + this.holdingType = aHoldingType; - this.impersonationStorageService - .onChangeHasImpersonation() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((impersonationId) => { - this.hasImpersonationId = !!impersonationId; - }); - } + this.holdings = undefined; - public onChangeDateRange(dateRange: DateRange) { - this.dataService - .putUserSetting({ dateRange }) + this.fetchHoldings() .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(() => { - this.userService.remove(); - - this.userService - .get() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((user) => { - this.user = user; + .subscribe(({ holdings }) => { + this.holdings = holdings; - this.changeDetectorRef.markForCheck(); - }); + this.changeDetectorRef.markForCheck(); }); } @@ -107,6 +115,19 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { this.unsubscribeSubject.complete(); } + private fetchHoldings() { + const filters = this.userService.getFilters(); + + if (this.holdingType === 'CLOSED') { + filters.push({ id: 'CLOSED', type: 'HOLDING_TYPE' }); + } + + return this.dataService.fetchPortfolioHoldings({ + filters, + range: this.user?.settings?.dateRange + }); + } + private openPositionDialog({ dataSource, symbol @@ -147,19 +168,4 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { }); }); } - - private update() { - this.positions = undefined; - - this.dataService - .fetchPositions({ range: this.user?.settings?.dateRange }) - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ positions }) => { - this.positions = positions; - - this.changeDetectorRef.markForCheck(); - }); - - this.changeDetectorRef.markForCheck(); - } } diff --git a/apps/client/src/app/components/home-holdings/home-holdings.html b/apps/client/src/app/components/home-holdings/home-holdings.html index 72328eac2..a2bd43636 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.html +++ b/apps/client/src/app/components/home-holdings/home-holdings.html @@ -1,27 +1,38 @@ -
+
-
- - - - - -
- Manage Activities +
+

Holdings

+
+
+
+
+
+
+ + @if (hasPermissionToCreateOrder && holdings?.length > 0) { + + }
diff --git a/apps/client/src/app/components/home-holdings/home-holdings.module.ts b/apps/client/src/app/components/home-holdings/home-holdings.module.ts index b6fa70e8f..f10adeab2 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.module.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.module.ts @@ -1,11 +1,9 @@ -import { GfPositionDetailDialogModule } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.module'; -import { GfPositionsModule } from '@ghostfolio/client/components/positions/positions.module'; import { GfToggleModule } from '@ghostfolio/client/components/toggle/toggle.module'; +import { GfHoldingsTableComponent } from '@ghostfolio/ui/holdings-table'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; -import { MatCardModule } from '@angular/material/card'; import { RouterModule } from '@angular/router'; import { HomeHoldingsComponent } from './home-holdings.component'; @@ -14,11 +12,9 @@ import { HomeHoldingsComponent } from './home-holdings.component'; declarations: [HomeHoldingsComponent], imports: [ CommonModule, - GfPositionDetailDialogModule, - GfPositionsModule, + GfHoldingsTableComponent, GfToggleModule, MatButtonModule, - MatCardModule, RouterModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA] diff --git a/apps/client/src/app/components/position/position-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/position-detail-dialog/interfaces/interfaces.ts similarity index 100% rename from apps/client/src/app/components/position/position-detail-dialog/interfaces/interfaces.ts rename to apps/client/src/app/components/position-detail-dialog/interfaces/interfaces.ts diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.scss b/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.scss similarity index 100% rename from apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.scss rename to apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.scss diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts b/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.ts similarity index 100% rename from apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts rename to apps/client/src/app/components/position-detail-dialog/position-detail-dialog.component.ts diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html b/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html similarity index 100% rename from apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html rename to apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.module.ts b/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.module.ts similarity index 100% rename from apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.module.ts rename to apps/client/src/app/components/position-detail-dialog/position-detail-dialog.module.ts diff --git a/apps/client/src/app/components/position/position.component.html b/apps/client/src/app/components/position/position.component.html deleted file mode 100644 index 4a5ed6f9a..000000000 --- a/apps/client/src/app/components/position/position.component.html +++ /dev/null @@ -1,72 +0,0 @@ - diff --git a/apps/client/src/app/components/position/position.component.scss b/apps/client/src/app/components/position/position.component.scss deleted file mode 100644 index 7044d7795..000000000 --- a/apps/client/src/app/components/position/position.component.scss +++ /dev/null @@ -1,13 +0,0 @@ -:host { - display: block; - - .container { - gf-trend-indicator { - padding-top: 0.15rem; - } - - .chevron { - opacity: 0.33; - } - } -} diff --git a/apps/client/src/app/components/position/position.component.ts b/apps/client/src/app/components/position/position.component.ts deleted file mode 100644 index 3a5fbae81..000000000 --- a/apps/client/src/app/components/position/position.component.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { UNKNOWN_KEY } from '@ghostfolio/common/config'; -import { getLocale } from '@ghostfolio/common/helper'; -import { Position } from '@ghostfolio/common/interfaces'; - -import { - ChangeDetectionStrategy, - Component, - Input, - OnDestroy, - OnInit -} from '@angular/core'; -import { Subject } from 'rxjs'; - -@Component({ - selector: 'gf-position', - changeDetection: ChangeDetectionStrategy.OnPush, - templateUrl: './position.component.html', - styleUrls: ['./position.component.scss'] -}) -export class PositionComponent implements OnDestroy, OnInit { - @Input() baseCurrency: string; - @Input() deviceType: string; - @Input() isLoading: boolean; - @Input() locale = getLocale(); - @Input() position: Position; - @Input() range: string; - - public unknownKey = UNKNOWN_KEY; - - private unsubscribeSubject = new Subject(); - - public constructor() {} - - public ngOnInit() {} - - public ngOnDestroy() { - this.unsubscribeSubject.next(); - this.unsubscribeSubject.complete(); - } -} diff --git a/apps/client/src/app/components/position/position.module.ts b/apps/client/src/app/components/position/position.module.ts deleted file mode 100644 index 6483e274a..000000000 --- a/apps/client/src/app/components/position/position.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { GfTrendIndicatorComponent } from '@ghostfolio/ui/trend-indicator'; -import { GfValueComponent } from '@ghostfolio/ui/value'; - -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatDialogModule } from '@angular/material/dialog'; -import { RouterModule } from '@angular/router'; -import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; - -import { GfPositionDetailDialogModule } from './position-detail-dialog/position-detail-dialog.module'; -import { PositionComponent } from './position.component'; - -@NgModule({ - declarations: [PositionComponent], - exports: [PositionComponent], - imports: [ - CommonModule, - GfPositionDetailDialogModule, - GfSymbolModule, - GfTrendIndicatorComponent, - GfValueComponent, - MatDialogModule, - NgxSkeletonLoaderModule, - RouterModule - ], - schemas: [CUSTOM_ELEMENTS_SCHEMA] -}) -export class GfPositionModule {} diff --git a/apps/client/src/app/components/positions/positions.component.html b/apps/client/src/app/components/positions/positions.component.html deleted file mode 100644 index 606c59211..000000000 --- a/apps/client/src/app/components/positions/positions.component.html +++ /dev/null @@ -1,35 +0,0 @@ -
-
-
- - - - - - - - -
- -
-
-
-
-
diff --git a/apps/client/src/app/components/positions/positions.component.scss b/apps/client/src/app/components/positions/positions.component.scss deleted file mode 100644 index d3e8995a1..000000000 --- a/apps/client/src/app/components/positions/positions.component.scss +++ /dev/null @@ -1,17 +0,0 @@ -:host { - display: block; - - gf-position { - &:nth-child(even) { - background-color: rgba(0, 0, 0, var(--gf-theme-alpha-hover)); - } - } -} - -:host-context(.is-dark-theme) { - gf-position { - &:nth-child(even) { - background-color: rgba(255, 255, 255, var(--gf-theme-alpha-hover)); - } - } -} diff --git a/apps/client/src/app/components/positions/positions.component.ts b/apps/client/src/app/components/positions/positions.component.ts deleted file mode 100644 index ab9812462..000000000 --- a/apps/client/src/app/components/positions/positions.component.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { getLocale } from '@ghostfolio/common/helper'; -import { Position } from '@ghostfolio/common/interfaces'; - -import { - ChangeDetectionStrategy, - Component, - Input, - OnChanges, - OnInit -} from '@angular/core'; - -@Component({ - selector: 'gf-positions', - changeDetection: ChangeDetectionStrategy.OnPush, - templateUrl: './positions.component.html', - styleUrls: ['./positions.component.scss'] -}) -export class PositionsComponent implements OnChanges, OnInit { - @Input() baseCurrency: string; - @Input() deviceType: string; - @Input() hasPermissionToCreateOrder: boolean; - @Input() locale = getLocale(); - @Input() positions: Position[]; - @Input() range: string; - - public hasPositions: boolean; - public positionsRest: Position[] = []; - public positionsWithPriority: Position[] = []; - - public constructor() {} - - public ngOnInit() {} - - public ngOnChanges() { - if (this.positions) { - this.hasPositions = this.positions.length > 0; - - if (!this.hasPositions) { - return; - } - - this.positionsRest = []; - this.positionsWithPriority = []; - - for (const portfolioPosition of this.positions) { - if (portfolioPosition.marketState === 'open' || this.range !== '1d') { - // Only show positions where the market is open in today's view - this.positionsWithPriority.push(portfolioPosition); - } else { - this.positionsRest.push(portfolioPosition); - } - } - - this.positionsRest.sort((a, b) => - (a.name || a.symbol)?.toLowerCase() > - (b.name || b.symbol)?.toLowerCase() - ? 1 - : -1 - ); - this.positionsWithPriority.sort((a, b) => - (a.name || a.symbol)?.toLowerCase() > - (b.name || b.symbol)?.toLowerCase() - ? 1 - : -1 - ); - } else { - this.hasPositions = false; - } - } -} diff --git a/apps/client/src/app/components/positions/positions.module.ts b/apps/client/src/app/components/positions/positions.module.ts deleted file mode 100644 index 34bd38b2d..000000000 --- a/apps/client/src/app/components/positions/positions.module.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { GfNoTransactionsInfoComponent } from '@ghostfolio/ui/no-transactions-info'; - -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; - -import { GfPositionModule } from '../position/position.module'; -import { PositionsComponent } from './positions.component'; - -@NgModule({ - declarations: [PositionsComponent], - exports: [PositionsComponent], - imports: [ - CommonModule, - GfNoTransactionsInfoComponent, - GfPositionModule, - MatButtonModule - ], - schemas: [CUSTOM_ELEMENTS_SCHEMA] -}) -export class GfPositionsModule {} diff --git a/apps/client/src/app/components/rules/rules.module.ts b/apps/client/src/app/components/rules/rules.module.ts index 3b82c6ab1..26ed1d83e 100644 --- a/apps/client/src/app/components/rules/rules.module.ts +++ b/apps/client/src/app/components/rules/rules.module.ts @@ -6,7 +6,6 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; -import { GfPositionModule } from '../position/position.module'; import { RulesComponent } from './rules.component'; @NgModule({ @@ -15,7 +14,6 @@ import { RulesComponent } from './rules.component'; imports: [ CommonModule, GfNoTransactionsInfoComponent, - GfPositionModule, GfRuleModule, MatButtonModule, MatCardModule diff --git a/apps/client/src/app/pages/home/home-page-routing.module.ts b/apps/client/src/app/pages/home/home-page-routing.module.ts index bccfc2f57..f50b55192 100644 --- a/apps/client/src/app/pages/home/home-page-routing.module.ts +++ b/apps/client/src/app/pages/home/home-page-routing.module.ts @@ -22,6 +22,11 @@ const routes: Routes = [ component: HomeHoldingsComponent, title: $localize`Holdings` }, + { + path: 'holdings', + component: HomeHoldingsComponent, + title: $localize`Holdings` + }, { path: 'summary', component: HomeSummaryComponent, diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index f6f0feded..6e66bb666 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -1,8 +1,8 @@ import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; -import { PositionDetailDialogParams } from '@ghostfolio/client/components/position/position-detail-dialog/interfaces/interfaces'; -import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component'; +import { PositionDetailDialogParams } from '@ghostfolio/client/components/position-detail-dialog/interfaces/interfaces'; +import { PositionDetailDialog } from '@ghostfolio/client/components/position-detail-dialog/position-detail-dialog.component'; import { DataService } from '@ghostfolio/client/services/data.service'; import { IcsService } from '@ghostfolio/client/services/ics/ics.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts index 6d3aed4d3..0172c8094 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts @@ -1,7 +1,7 @@ import { AccountDetailDialog } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.component'; import { AccountDetailDialogParams } from '@ghostfolio/client/components/account-detail-dialog/interfaces/interfaces'; -import { PositionDetailDialogParams } from '@ghostfolio/client/components/position/position-detail-dialog/interfaces/interfaces'; -import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component'; +import { PositionDetailDialogParams } from '@ghostfolio/client/components/position-detail-dialog/interfaces/interfaces'; +import { PositionDetailDialog } from '@ghostfolio/client/components/position-detail-dialog/position-detail-dialog.component'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; @@ -103,7 +103,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { private router: Router, private userService: UserService ) { - route.queryParams + this.route.queryParams .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((params) => { if (params['accountId'] && params['accountDetailDialog']) { diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts index 184297b26..4acf6dbb9 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts @@ -1,5 +1,5 @@ -import { PositionDetailDialogParams } from '@ghostfolio/client/components/position/position-detail-dialog/interfaces/interfaces'; -import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component'; +import { PositionDetailDialogParams } from '@ghostfolio/client/components/position-detail-dialog/interfaces/interfaces'; +import { PositionDetailDialog } from '@ghostfolio/client/components/position-detail-dialog/position-detail-dialog.component'; import { ToggleComponent } from '@ghostfolio/client/components/toggle/toggle.component'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; @@ -80,7 +80,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { const { benchmarks } = this.dataService.fetchInfo(); this.benchmarks = benchmarks; - route.queryParams + this.route.queryParams .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((params) => { if ( diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts b/apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts deleted file mode 100644 index 94b49a9d0..000000000 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; - -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; - -import { HoldingsPageComponent } from './holdings-page.component'; - -const routes: Routes = [ - { - canActivate: [AuthGuard], - component: HoldingsPageComponent, - path: '', - title: $localize`Holdings` - } -]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule] -}) -export class HoldingsPageRoutingModule {} diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts b/apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts deleted file mode 100644 index 107e8f307..000000000 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts +++ /dev/null @@ -1,171 +0,0 @@ -import { PositionDetailDialogParams } from '@ghostfolio/client/components/position/position-detail-dialog/interfaces/interfaces'; -import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; -import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { PortfolioPosition, User } from '@ghostfolio/common/interfaces'; -import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { HoldingType, ToggleOption } from '@ghostfolio/common/types'; - -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { ActivatedRoute, Router } from '@angular/router'; -import { DataSource } from '@prisma/client'; -import { DeviceDetectorService } from 'ngx-device-detector'; -import { Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; - -@Component({ - selector: 'gf-holdings-page', - styleUrls: ['./holdings-page.scss'], - templateUrl: './holdings-page.html' -}) -export class HoldingsPageComponent implements OnDestroy, OnInit { - public deviceType: string; - public hasImpersonationId: boolean; - public hasPermissionToCreateOrder: boolean; - public holdings: PortfolioPosition[]; - public holdingType: HoldingType = 'ACTIVE'; - public holdingTypeOptions: ToggleOption[] = [ - { label: $localize`Active`, value: 'ACTIVE' }, - { label: $localize`Closed`, value: 'CLOSED' } - ]; - public user: User; - - private unsubscribeSubject = new Subject(); - - public constructor( - private changeDetectorRef: ChangeDetectorRef, - private dataService: DataService, - private deviceService: DeviceDetectorService, - private dialog: MatDialog, - private impersonationStorageService: ImpersonationStorageService, - private route: ActivatedRoute, - private router: Router, - private userService: UserService - ) { - route.queryParams - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((params) => { - if ( - params['dataSource'] && - params['positionDetailDialog'] && - params['symbol'] - ) { - this.openPositionDialog({ - dataSource: params['dataSource'], - symbol: params['symbol'] - }); - } - }); - } - - public ngOnInit() { - this.deviceType = this.deviceService.getDeviceInfo().deviceType; - - this.impersonationStorageService - .onChangeHasImpersonation() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((impersonationId) => { - this.hasImpersonationId = !!impersonationId; - }); - - this.userService.stateChanged - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((state) => { - if (state?.user) { - this.user = state.user; - - this.hasPermissionToCreateOrder = hasPermission( - this.user.permissions, - permissions.createOrder - ); - - this.holdings = undefined; - - this.fetchHoldings() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ holdings }) => { - this.holdings = holdings; - - this.changeDetectorRef.markForCheck(); - }); - - this.changeDetectorRef.markForCheck(); - } - }); - } - - public onChangeHoldingType(aHoldingType: HoldingType) { - this.holdingType = aHoldingType; - - this.holdings = undefined; - - this.fetchHoldings() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ holdings }) => { - this.holdings = holdings; - - this.changeDetectorRef.markForCheck(); - }); - } - - public ngOnDestroy() { - this.unsubscribeSubject.next(); - this.unsubscribeSubject.complete(); - } - - private fetchHoldings() { - const filters = this.userService.getFilters(); - - if (this.holdingType === 'CLOSED') { - filters.push({ id: 'CLOSED', type: 'HOLDING_TYPE' }); - } - - return this.dataService.fetchPortfolioHoldings({ - filters, - range: this.user?.settings?.dateRange - }); - } - - private openPositionDialog({ - dataSource, - symbol - }: { - dataSource: DataSource; - symbol: string; - }) { - this.userService - .get() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((user) => { - this.user = user; - - const dialogRef = this.dialog.open(PositionDetailDialog, { - autoFocus: false, - data: { - dataSource, - symbol, - baseCurrency: this.user?.settings?.baseCurrency, - colorScheme: this.user?.settings?.colorScheme, - deviceType: this.deviceType, - hasImpersonationId: this.hasImpersonationId, - hasPermissionToReportDataGlitch: hasPermission( - this.user?.permissions, - permissions.reportDataGlitch - ), - locale: this.user?.settings?.locale - }, - height: this.deviceType === 'mobile' ? '97.5vh' : '80vh', - width: this.deviceType === 'mobile' ? '100vw' : '50rem' - }); - - dialogRef - .afterClosed() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(() => { - this.router.navigate(['.'], { relativeTo: this.route }); - }); - }); - } -} diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page.html b/apps/client/src/app/pages/portfolio/holdings/holdings-page.html deleted file mode 100644 index a2bd43636..000000000 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page.html +++ /dev/null @@ -1,38 +0,0 @@ -
-
-
-

Holdings

-
-
-
-
-
- -
- - @if (hasPermissionToCreateOrder && holdings?.length > 0) { - - } -
-
-
diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page.module.ts b/apps/client/src/app/pages/portfolio/holdings/holdings-page.module.ts deleted file mode 100644 index a5040f373..000000000 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { GfToggleModule } from '@ghostfolio/client/components/toggle/toggle.module'; -import { GfHoldingsTableComponent } from '@ghostfolio/ui/holdings-table'; - -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; - -import { HoldingsPageRoutingModule } from './holdings-page-routing.module'; -import { HoldingsPageComponent } from './holdings-page.component'; - -@NgModule({ - declarations: [HoldingsPageComponent], - imports: [ - CommonModule, - GfHoldingsTableComponent, - GfToggleModule, - HoldingsPageRoutingModule, - MatButtonModule - ], - schemas: [CUSTOM_ELEMENTS_SCHEMA] -}) -export class HoldingsPageModule {} diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page.scss b/apps/client/src/app/pages/portfolio/holdings/holdings-page.scss deleted file mode 100644 index 5d4e87f30..000000000 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page.scss +++ /dev/null @@ -1,3 +0,0 @@ -:host { - display: block; -} diff --git a/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts b/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts index d4f93b567..6146c573c 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -16,13 +16,6 @@ const routes: Routes = [ (m) => m.AnalysisPageModule ) }, - { - path: 'holdings', - loadChildren: () => - import('./holdings/holdings-page.module').then( - (m) => m.HoldingsPageModule - ) - }, { path: 'activities', loadChildren: () => diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts index bbd70c1c9..0c980e25b 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts @@ -34,11 +34,6 @@ export class PortfolioPageComponent implements OnDestroy, OnInit { label: $localize`Analysis`, path: ['/portfolio'] }, - { - iconName: 'wallet-outline', - label: $localize`Holdings`, - path: ['/portfolio', 'holdings'] - }, { iconName: 'swap-vertical-outline', label: $localize`Activities`, diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index 16d104834..d5c1bec00 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -376,6 +376,9 @@ export class DataService { }); } + /** + * @deprecated + */ public fetchPositions({ filters, range 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 93ac5b6fe..f25239277 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.ts +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.ts @@ -1,5 +1,5 @@ import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; -import { GfPositionDetailDialogModule } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.module'; +import { GfPositionDetailDialogModule } from '@ghostfolio/client/components/position-detail-dialog/position-detail-dialog.module'; import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { getLocale } from '@ghostfolio/common/helper'; import { PortfolioPosition, UniqueAsset } from '@ghostfolio/common/interfaces'; From c1ad483f3329c663ed561b43abd18be618bb9a5c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 4 May 2024 15:50:47 +0200 Subject: [PATCH 4/8] Improve alignment (#3370) --- libs/ui/src/lib/value/value.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/ui/src/lib/value/value.component.html b/libs/ui/src/lib/value/value.component.html index 3ebda6e52..d1e498bcc 100644 --- a/libs/ui/src/lib/value/value.component.html +++ b/libs/ui/src/lib/value/value.component.html @@ -1,7 +1,7 @@
-
+
Date: Sat, 4 May 2024 15:51:09 +0200 Subject: [PATCH 5/8] Bugfix/fix locale in markets overview (#3369) * Fix locale if no user is logged in * Update changelog --- CHANGELOG.md | 5 +++++ apps/client/src/app/components/home-market/home-market.html | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a744b8e3d..699722298 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Moved the holdings table to the holdings tab of the home page - Improved the performance labels (with and without currency effects) in the position detail dialog +### Fixed + +- Fixed an issue with the benchmarks in the markets overview +- Fixed an issue with the _Fear & Greed Index_ (market mood) in the markets overview + ## 2.78.0 - 2024-05-02 ### Added diff --git a/apps/client/src/app/components/home-market/home-market.html b/apps/client/src/app/components/home-market/home-market.html index 333c612f7..0e9d51336 100644 --- a/apps/client/src/app/components/home-market/home-market.html +++ b/apps/client/src/app/components/home-market/home-market.html @@ -11,7 +11,7 @@ [colorScheme]="user?.settings?.colorScheme" [historicalDataItems]="historicalDataItems" [isAnimated]="true" - [locale]="user?.settings?.locale" + [locale]="user?.settings?.locale || undefined" [showXAxis]="true" [showYAxis]="true" [yMax]="100" @@ -30,7 +30,7 @@
Date: Sat, 4 May 2024 15:53:02 +0200 Subject: [PATCH 6/8] Feature/optimize get porfolio details endpoint (#3366) * Eliminate getPerformance() from getSummary() function * Disable cache for getDetails() * Add hint to portfolio summary * Update changelog --- CHANGELOG.md | 1 + .../src/app/portfolio/portfolio.controller.ts | 30 ++--- .../app/portfolio/portfolio.service.spec.ts | 10 +- .../src/app/portfolio/portfolio.service.ts | 105 +++++++++++------- .../portfolio-performance.component.html | 6 +- .../portfolio-performance.component.ts | 9 +- .../portfolio-summary.component.html | 28 +++-- .../portfolio-summary.component.ts | 4 + .../portfolio-summary.module.ts | 3 +- .../portfolio/analysis/analysis-page.html | 20 ++-- .../portfolio-performance.interface.ts | 20 ++-- libs/ui/src/lib/i18n.ts | 1 + 12 files changed, 137 insertions(+), 100 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 699722298..a9e8fd811 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Moved the holdings table to the holdings tab of the home page - Improved the performance labels (with and without currency effects) in the position detail dialog +- Optimized the calculations of the of the portfolio details endpoint ### Fixed diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 7aa8e9159..4a07cd65b 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -165,21 +165,21 @@ export class PortfolioController { portfolioSummary = nullifyValuesInObject(summary, [ 'cash', 'committedFunds', - 'currentGrossPerformance', - 'currentGrossPerformanceWithCurrencyEffect', - 'currentNetPerformance', - 'currentNetPerformanceWithCurrencyEffect', 'currentNetWorth', - 'currentValue', + 'currentValueInBaseCurrency', 'dividendInBaseCurrency', 'emergencyFund', 'excludedAccountsAndActivities', 'fees', 'filteredValueInBaseCurrency', 'fireWealth', + 'grossPerformance', + 'grossPerformanceWithCurrencyEffect', 'interest', 'items', 'liabilities', + 'netPerformance', + 'netPerformanceWithCurrencyEffect', 'totalBuy', 'totalInvestment', 'totalSell', @@ -449,10 +449,14 @@ export class PortfolioController { .div(performanceInformation.performance.totalInvestment) .toNumber(), valueInPercentage: - performanceInformation.performance.currentValue === 0 + performanceInformation.performance.currentValueInBaseCurrency === + 0 ? 0 : new Big(value) - .div(performanceInformation.performance.currentValue) + .div( + performanceInformation.performance + .currentValueInBaseCurrency + ) .toNumber() }; } @@ -461,12 +465,12 @@ export class PortfolioController { performanceInformation.performance = nullifyValuesInObject( performanceInformation.performance, [ - 'currentGrossPerformance', - 'currentGrossPerformanceWithCurrencyEffect', - 'currentNetPerformance', - 'currentNetPerformanceWithCurrencyEffect', 'currentNetWorth', - 'currentValue', + 'currentValueInBaseCurrency', + 'grossPerformance', + 'grossPerformanceWithCurrencyEffect', + 'netPerformance', + 'netPerformanceWithCurrencyEffect', 'totalInvestment' ] ); @@ -483,7 +487,7 @@ export class PortfolioController { ); performanceInformation.performance = nullifyValuesInObject( performanceInformation.performance, - ['currentNetPerformance', 'currentNetPerformancePercent'] + ['netPerformance'] ); } diff --git a/apps/api/src/app/portfolio/portfolio.service.spec.ts b/apps/api/src/app/portfolio/portfolio.service.spec.ts index 7654b7df3..92970f547 100644 --- a/apps/api/src/app/portfolio/portfolio.service.spec.ts +++ b/apps/api/src/app/portfolio/portfolio.service.spec.ts @@ -27,7 +27,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: NaN, // differenceInDays of date-fns returns NaN for the same day - netPerformancePercent: new Big(0) + netPerformancePercentage: new Big(0) }) .toNumber() ).toEqual(0); @@ -36,7 +36,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: 0, - netPerformancePercent: new Big(0) + netPerformancePercentage: new Big(0) }) .toNumber() ).toEqual(0); @@ -48,7 +48,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: 65, // < 1 year - netPerformancePercent: new Big(0.1025) + netPerformancePercentage: new Big(0.1025) }) .toNumber() ).toBeCloseTo(0.729705); @@ -57,7 +57,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: 365, // 1 year - netPerformancePercent: new Big(0.05) + netPerformancePercentage: new Big(0.05) }) .toNumber() ).toBeCloseTo(0.05); @@ -69,7 +69,7 @@ describe('PortfolioService', () => { portfolioService .getAnnualizedPerformancePercent({ daysInMarket: 575, // > 1 year - netPerformancePercent: new Big(0.2374) + netPerformancePercentage: new Big(0.2374) }) .toNumber() ).toBeCloseTo(0.145); diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 4be9d4e00..a98887ca9 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -208,16 +208,16 @@ export class PortfolioService { public getAnnualizedPerformancePercent({ daysInMarket, - netPerformancePercent + netPerformancePercentage }: { daysInMarket: number; - netPerformancePercent: Big; + netPerformancePercentage: Big; }): Big { if (isNumber(daysInMarket) && daysInMarket > 0) { const exponent = new Big(365).div(daysInMarket).toNumber(); return new Big( - Math.pow(netPerformancePercent.plus(1).toNumber(), exponent) + Math.pow(netPerformancePercentage.plus(1).toNumber(), exponent) ).minus(1); } @@ -360,7 +360,7 @@ export class PortfolioService { userId, calculationType: PerformanceCalculationType.TWR, currency: userCurrency, - hasFilters: filters?.length > 0, + hasFilters: true, // disable cache isExperimentalFeatures: this.request.user?.Settings.settings.isExperimentalFeatures }); @@ -704,7 +704,7 @@ export class PortfolioService { const dividendYieldPercent = this.getAnnualizedPerformancePercent({ daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)), - netPerformancePercent: timeWeightedInvestment.eq(0) + netPerformancePercentage: timeWeightedInvestment.eq(0) ? new Big(0) : dividendInBaseCurrency.div(timeWeightedInvestment) }); @@ -712,7 +712,9 @@ export class PortfolioService { const dividendYieldPercentWithCurrencyEffect = this.getAnnualizedPerformancePercent({ daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)), - netPerformancePercent: timeWeightedInvestmentWithCurrencyEffect.eq(0) + netPerformancePercentage: timeWeightedInvestmentWithCurrencyEffect.eq( + 0 + ) ? new Big(0) : dividendInBaseCurrency.div( timeWeightedInvestmentWithCurrencyEffect @@ -1108,16 +1110,16 @@ export class PortfolioService { firstOrderDate: undefined, hasErrors: false, performance: { - currentGrossPerformance: 0, - currentGrossPerformancePercent: 0, - currentGrossPerformancePercentWithCurrencyEffect: 0, - currentGrossPerformanceWithCurrencyEffect: 0, - currentNetPerformance: 0, - currentNetPerformancePercent: 0, - currentNetPerformancePercentWithCurrencyEffect: 0, - currentNetPerformanceWithCurrencyEffect: 0, currentNetWorth: 0, - currentValue: 0, + currentValueInBaseCurrency: 0, + grossPerformance: 0, + grossPerformancePercentage: 0, + grossPerformancePercentageWithCurrencyEffect: 0, + grossPerformanceWithCurrencyEffect: 0, + netPerformance: 0, + netPerformancePercentage: 0, + netPerformancePercentageWithCurrencyEffect: 0, + netPerformanceWithCurrencyEffect: 0, totalInvestment: 0 } }; @@ -1152,9 +1154,9 @@ export class PortfolioService { let currentNetPerformance = netPerformance; - let currentNetPerformancePercent = netPerformancePercentage; + let currentNetPerformancePercentage = netPerformancePercentage; - let currentNetPerformancePercentWithCurrencyEffect = + let currentNetPerformancePercentageWithCurrencyEffect = netPerformancePercentageWithCurrencyEffect; let currentNetPerformanceWithCurrencyEffect = @@ -1173,11 +1175,11 @@ export class PortfolioService { if (itemOfToday) { currentNetPerformance = new Big(itemOfToday.netPerformance); - currentNetPerformancePercent = new Big( + currentNetPerformancePercentage = new Big( itemOfToday.netPerformanceInPercentage ).div(100); - currentNetPerformancePercentWithCurrencyEffect = new Big( + currentNetPerformancePercentageWithCurrencyEffect = new Big( itemOfToday.netPerformanceInPercentageWithCurrencyEffect ).div(100); @@ -1195,19 +1197,19 @@ export class PortfolioService { firstOrderDate: parseDate(items[0]?.date), performance: { currentNetWorth, - currentGrossPerformance: grossPerformance.toNumber(), - currentGrossPerformancePercent: grossPerformancePercentage.toNumber(), - currentGrossPerformancePercentWithCurrencyEffect: + currentValueInBaseCurrency: currentValueInBaseCurrency.toNumber(), + grossPerformance: grossPerformance.toNumber(), + grossPerformancePercentage: grossPerformancePercentage.toNumber(), + grossPerformancePercentageWithCurrencyEffect: grossPerformancePercentageWithCurrencyEffect.toNumber(), - currentGrossPerformanceWithCurrencyEffect: + grossPerformanceWithCurrencyEffect: grossPerformanceWithCurrencyEffect.toNumber(), - currentNetPerformance: currentNetPerformance.toNumber(), - currentNetPerformancePercent: currentNetPerformancePercent.toNumber(), - currentNetPerformancePercentWithCurrencyEffect: - currentNetPerformancePercentWithCurrencyEffect.toNumber(), - currentNetPerformanceWithCurrencyEffect: + netPerformance: currentNetPerformance.toNumber(), + netPerformancePercentage: currentNetPerformancePercentage.toNumber(), + netPerformancePercentageWithCurrencyEffect: + currentNetPerformancePercentageWithCurrencyEffect.toNumber(), + netPerformanceWithCurrencyEffect: currentNetPerformanceWithCurrencyEffect.toNumber(), - currentValue: currentValueInBaseCurrency.toNumber(), totalInvestment: totalInvestment.toNumber() } }; @@ -1604,11 +1606,6 @@ export class PortfolioService { userId = await this.getUserId(impersonationId, userId); const user = await this.userService.user({ id: userId }); - const { performance } = await this.getPerformance({ - impersonationId, - userId - }); - const { activities } = await this.orderService.getOrders({ userCurrency, userId, @@ -1626,6 +1623,19 @@ export class PortfolioService { } } + const { + currentValueInBaseCurrency, + grossPerformance, + grossPerformancePercentage, + grossPerformancePercentageWithCurrencyEffect, + grossPerformanceWithCurrencyEffect, + netPerformance, + netPerformancePercentage, + netPerformancePercentageWithCurrencyEffect, + netPerformanceWithCurrencyEffect, + totalInvestment + } = await portfolioCalculator.getSnapshot(); + const dividendInBaseCurrency = await portfolioCalculator.getDividendInBaseCurrency(); @@ -1694,7 +1704,7 @@ export class PortfolioService { .toNumber(); const netWorth = new Big(balanceInBaseCurrency) - .plus(performance.currentValue) + .plus(currentValueInBaseCurrency) .plus(valuables) .plus(excludedAccountsAndActivities) .minus(liabilities) @@ -1704,19 +1714,18 @@ export class PortfolioService { const annualizedPerformancePercent = this.getAnnualizedPerformancePercent({ daysInMarket, - netPerformancePercent: new Big(performance.currentNetPerformancePercent) + netPerformancePercentage: new Big(netPerformancePercentage) })?.toNumber(); const annualizedPerformancePercentWithCurrencyEffect = this.getAnnualizedPerformancePercent({ daysInMarket, - netPerformancePercent: new Big( - performance.currentNetPerformancePercentWithCurrencyEffect + netPerformancePercentage: new Big( + netPerformancePercentageWithCurrencyEffect ) })?.toNumber(); return { - ...performance, annualizedPerformancePercent, annualizedPerformancePercentWithCurrencyEffect, cash, @@ -1725,6 +1734,7 @@ export class PortfolioService { totalBuy, totalSell, committedFunds: committedFunds.toNumber(), + currentValueInBaseCurrency: currentValueInBaseCurrency.toNumber(), dividendInBaseCurrency: dividendInBaseCurrency.toNumber(), emergencyFund: { assets: emergencyFundPositionsValueInBaseCurrency, @@ -1738,15 +1748,28 @@ export class PortfolioService { filteredValueInPercentage: netWorth ? filteredValueInBaseCurrency.div(netWorth).toNumber() : undefined, - fireWealth: new Big(performance.currentValue) + fireWealth: new Big(currentValueInBaseCurrency) .minus(emergencyFundPositionsValueInBaseCurrency) .toNumber(), + grossPerformance: grossPerformance.toNumber(), + grossPerformancePercentage: grossPerformancePercentage.toNumber(), + grossPerformancePercentageWithCurrencyEffect: + grossPerformancePercentageWithCurrencyEffect.toNumber(), + grossPerformanceWithCurrencyEffect: + grossPerformanceWithCurrencyEffect.toNumber(), interest: interest.toNumber(), items: valuables.toNumber(), liabilities: liabilities.toNumber(), + netPerformance: netPerformance.toNumber(), + netPerformancePercentage: netPerformancePercentage.toNumber(), + netPerformancePercentageWithCurrencyEffect: + netPerformancePercentageWithCurrencyEffect.toNumber(), + netPerformanceWithCurrencyEffect: + netPerformanceWithCurrencyEffect.toNumber(), ordersCount: activities.filter(({ type }) => { - return type === 'BUY' || type === 'SELL'; + return ['BUY', 'SELL'].includes(type); }).length, + totalInvestment: totalInvestment.toNumber(), totalValueInBaseCurrency: netWorth }; } diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html index 68d191b5c..3ef55f800 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html @@ -41,9 +41,7 @@ [isCurrency]="true" [locale]="locale" [value]=" - isLoading - ? undefined - : performance?.currentNetPerformanceWithCurrencyEffect + isLoading ? undefined : performance?.netPerformanceWithCurrencyEffect " />
@@ -55,7 +53,7 @@ [value]=" isLoading ? undefined - : performance?.currentNetPerformancePercentWithCurrencyEffect + : performance?.netPerformancePercentageWithCurrencyEffect " />
diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts index b76ecb004..4d205b761 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts @@ -49,12 +49,12 @@ export class PortfolioPerformanceComponent implements OnChanges, OnInit { this.value.nativeElement.innerHTML = ''; } } else { - if (isNumber(this.performance?.currentValue)) { - new CountUp('value', this.performance?.currentValue, { + if (isNumber(this.performance?.currentValueInBaseCurrency)) { + new CountUp('value', this.performance?.currentValueInBaseCurrency, { decimal: getNumberFormatDecimal(this.locale), decimalPlaces: this.deviceType === 'mobile' && - this.performance?.currentValue >= 100000 + this.performance?.currentValueInBaseCurrency >= 100000 ? 0 : 2, duration: 1, @@ -63,8 +63,7 @@ export class PortfolioPerformanceComponent implements OnChanges, OnInit { } else if (this.showDetails === false) { new CountUp( 'value', - this.performance?.currentNetPerformancePercentWithCurrencyEffect * - 100, + this.performance?.netPerformancePercentageWithCurrencyEffect * 100, { decimal: getNumberFormatDecimal(this.locale), decimalPlaces: 2, diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html index 347767011..6b80e87b6 100644 --- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html +++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -9,9 +9,19 @@ class="flex-nowrap px-3 py-1 row" [hidden]="summary?.ordersCount === null" > -
+
{{ summary?.ordersCount }} - {summary?.ordersCount, plural, =1 {transaction} other {transactions}} + {summary?.ordersCount, plural, + =1 {activity} + other {activities} + } + + +
@@ -65,9 +75,7 @@ [locale]="locale" [unit]="baseCurrency" [value]=" - isLoading - ? undefined - : summary?.currentGrossPerformanceWithCurrencyEffect + isLoading ? undefined : summary?.grossPerformanceWithCurrencyEffect " />
@@ -91,7 +99,7 @@ [value]=" isLoading ? undefined - : summary?.currentGrossPerformancePercentWithCurrencyEffect + : summary?.grossPerformancePercentageWithCurrencyEffect " />
@@ -121,9 +129,7 @@ [locale]="locale" [unit]="baseCurrency" [value]=" - isLoading - ? undefined - : summary?.currentNetPerformanceWithCurrencyEffect + isLoading ? undefined : summary?.netPerformanceWithCurrencyEffect " />
@@ -147,7 +153,7 @@ [value]=" isLoading ? undefined - : summary?.currentNetPerformancePercentWithCurrencyEffect + : summary?.netPerformancePercentageWithCurrencyEffect " />
@@ -164,7 +170,7 @@ [isCurrency]="true" [locale]="locale" [unit]="baseCurrency" - [value]="isLoading ? undefined : summary?.currentValue" + [value]="isLoading ? undefined : summary?.currentValueInBaseCurrency" />
diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts index 9ceae5186..020a8fed0 100644 --- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts +++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts @@ -1,5 +1,6 @@ import { getDateFnsLocale, getLocale } from '@ghostfolio/common/helper'; import { PortfolioSummary } from '@ghostfolio/common/interfaces'; +import { translate } from '@ghostfolio/ui/i18n'; import { ChangeDetectionStrategy, @@ -28,6 +29,9 @@ export class PortfolioSummaryComponent implements OnChanges, OnInit { @Output() emergencyFundChanged = new EventEmitter(); + public buyAndSellActivitiesTooltip = translate( + 'BUY_AND_SELL_ACTIVITIES_TOOLTIP' + ); public timeInMarket: string; public constructor() {} diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.module.ts b/apps/client/src/app/components/portfolio-summary/portfolio-summary.module.ts index 603d5271a..b35f1e317 100644 --- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.module.ts +++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.module.ts @@ -2,13 +2,14 @@ import { GfValueComponent } from '@ghostfolio/ui/value'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { PortfolioSummaryComponent } from './portfolio-summary.component'; @NgModule({ declarations: [PortfolioSummaryComponent], exports: [PortfolioSummaryComponent], - imports: [CommonModule, GfValueComponent], + imports: [CommonModule, GfValueComponent, MatTooltipModule], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class GfPortfolioSummaryModule {} diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html index 5f6acdbe2..191dca06f 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html @@ -42,7 +42,7 @@ [value]=" isLoadingInvestmentChart ? undefined - : performance?.currentNetPerformance + : performance?.netPerformance " />
@@ -61,7 +61,7 @@ [value]=" isLoadingInvestmentChart ? undefined - : performance?.currentNetPerformancePercent + : performance?.netPerformancePercentage " />
@@ -86,10 +86,10 @@ [value]=" isLoadingInvestmentChart ? undefined - : performance?.currentNetPerformance === null + : performance?.netPerformance === null ? null - : performance?.currentNetPerformanceWithCurrencyEffect - - performance?.currentNetPerformance + : performance?.netPerformanceWithCurrencyEffect - + performance?.netPerformance " />
@@ -108,10 +108,10 @@ [value]=" isLoadingInvestmentChart ? undefined - : performance?.currentNetPerformancePercent === null + : performance?.netPerformancePercentage === null ? null - : performance?.currentNetPerformancePercentWithCurrencyEffect - - performance?.currentNetPerformancePercent + : performance?.netPerformancePercentageWithCurrencyEffect - + performance?.netPerformancePercentage " /> @@ -131,7 +131,7 @@ [value]=" isLoadingInvestmentChart ? undefined - : performance?.currentNetPerformanceWithCurrencyEffect + : performance?.netPerformanceWithCurrencyEffect " /> @@ -150,7 +150,7 @@ [value]=" isLoadingInvestmentChart ? undefined - : performance?.currentNetPerformancePercentWithCurrencyEffect + : performance?.netPerformancePercentageWithCurrencyEffect " /> diff --git a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts index 1c6f50b30..9d4ac5fab 100644 --- a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts +++ b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts @@ -1,14 +1,14 @@ export interface PortfolioPerformance { annualizedPerformancePercent?: number; - currentGrossPerformance: number; - currentGrossPerformancePercent: number; - currentGrossPerformancePercentWithCurrencyEffect: number; - currentGrossPerformanceWithCurrencyEffect: number; - currentNetPerformance: number; - currentNetPerformancePercent: number; - currentNetPerformancePercentWithCurrencyEffect: number; - currentNetPerformanceWithCurrencyEffect: number; - currentNetWorth: number; - currentValue: number; + currentNetWorth?: number; + currentValueInBaseCurrency: number; + grossPerformance: number; + grossPerformancePercentage: number; + grossPerformancePercentageWithCurrencyEffect: number; + grossPerformanceWithCurrencyEffect: number; + netPerformance: number; + netPerformancePercentage: number; + netPerformancePercentageWithCurrencyEffect: number; + netPerformanceWithCurrencyEffect: number; totalInvestment: number; } diff --git a/libs/ui/src/lib/i18n.ts b/libs/ui/src/lib/i18n.ts index e1266baa3..51b3cab69 100644 --- a/libs/ui/src/lib/i18n.ts +++ b/libs/ui/src/lib/i18n.ts @@ -5,6 +5,7 @@ const locales = { 'Asia-Pacific': $localize`Asia-Pacific`, ASSET_CLASS: $localize`Asset Class`, ASSET_SUB_CLASS: $localize`Asset Sub Class`, + BUY_AND_SELL_ACTIVITIES_TOOLTIP: $localize`Buy and sell`, CORE: $localize`Core`, DATA_IMPORT_AND_EXPORT_TOOLTIP_BASIC: $localize`Switch to Ghostfolio Premium or Ghostfolio Open Source easily`, DATA_IMPORT_AND_EXPORT_TOOLTIP_OSS: $localize`Switch to Ghostfolio Premium easily`, From 30a64e7fc1cd68f28414e65c4208c09edbe85bb8 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 4 May 2024 15:54:29 +0200 Subject: [PATCH 7/8] Release 2.79.0 (#3371) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9e8fd811..72446d8c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.79.0 - 2024-05-04 ### Changed diff --git a/package.json b/package.json index e2bb13468..362763b4d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.78.0", + "version": "2.79.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 8438a45bcfb9e6a75ff78903adb43bd8fef6b61e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 4 May 2024 16:32:32 +0200 Subject: [PATCH 8/8] Update changelog (#3372) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72446d8c8..5535ba45a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Moved the holdings table to the holdings tab of the home page - Improved the performance labels (with and without currency effects) in the position detail dialog -- Optimized the calculations of the of the portfolio details endpoint +- Optimized the calculations of the portfolio details endpoint ### Fixed