diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ceb94a11..ec2acb0c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,13 +5,21 @@ 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.223.0 - 2025-12-14 + +### Added + +- Included wealth projection data calculated for the retirement date in the _FIRE_ section (experimental) ### Changed - Moved the notification module to `@ghostfolio/ui` - Improved the language localization for German (`de`) +### Fixed + +- Fixed a calculation issue that resulted in the incorrect assignment of unknown data in the portfolio proportion chart component + ## 2.222.0 - 2025-12-07 ### Added diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index b900343cc..1a04a675c 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -258,6 +258,11 @@ export class UserService { }; } + // Set default value for annual interest rate + if (!(user.settings.settings as UserSettings)?.annualInterestRate) { + (user.settings.settings as UserSettings).annualInterestRate = 5; + } + // Set default value for base currency if (!(user.settings.settings as UserSettings)?.baseCurrency) { (user.settings.settings as UserSettings).baseCurrency = DEFAULT_CURRENCY; @@ -275,11 +280,21 @@ export class UserService { PerformanceCalculationType.ROAI; } + // Set default value for projected total amount + if (!(user.settings.settings as UserSettings)?.projectedTotalAmount) { + (user.settings.settings as UserSettings).projectedTotalAmount = 0; + } + // Set default value for safe withdrawal rate if (!(user.settings.settings as UserSettings)?.safeWithdrawalRate) { (user.settings.settings as UserSettings).safeWithdrawalRate = 0.04; } + // Set default value for savings rate + if (!(user.settings.settings as UserSettings)?.savingsRate) { + (user.settings.settings as UserSettings).savingsRate = 0; + } + // Set default value for view mode if (!(user.settings.settings as UserSettings).viewMode) { (user.settings.settings as UserSettings).viewMode = 'DEFAULT'; diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts index 63187c05c..da1378d22 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts @@ -1,7 +1,11 @@ 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 { FireWealth, User } from '@ghostfolio/common/interfaces'; +import { + FireCalculationCompleteEvent, + FireWealth, + User +} from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { GfFireCalculatorComponent } from '@ghostfolio/ui/fire-calculator'; import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; @@ -38,11 +42,15 @@ export class GfFirePageComponent implements OnDestroy, OnInit { public hasImpersonationId: boolean; public hasPermissionToUpdateUserSettings: boolean; public isLoading = false; + public projectedTotalAmount: number; + public retirementDate: Date; public safeWithdrawalRateControl = new FormControl(undefined); public safeWithdrawalRateOptions = [0.025, 0.03, 0.035, 0.04, 0.045]; public user: User; public withdrawalRatePerMonth: Big; + public withdrawalRatePerMonthProjected: Big; public withdrawalRatePerYear: Big; + public withdrawalRatePerYearProjected: Big; private unsubscribeSubject = new Subject(); @@ -79,8 +87,6 @@ export class GfFirePageComponent implements OnDestroy, OnInit { this.calculateWithdrawalRates(); - this.isLoading = false; - this.changeDetectorRef.markForCheck(); }); @@ -139,6 +145,18 @@ export class GfFirePageComponent implements OnDestroy, OnInit { }); } + public onCalculationComplete({ + projectedTotalAmount, + retirementDate + }: FireCalculationCompleteEvent) { + this.projectedTotalAmount = projectedTotalAmount; + this.retirementDate = retirementDate; + + this.calculateWithdrawalRatesProjected(); + + this.isLoading = false; + } + public onRetirementDateChange(retirementDate: Date) { this.dataService .putUserSetting({ @@ -170,6 +188,7 @@ export class GfFirePageComponent implements OnDestroy, OnInit { this.user = user; this.calculateWithdrawalRates(); + this.calculateWithdrawalRatesProjected(); this.changeDetectorRef.markForCheck(); }); @@ -225,4 +244,19 @@ export class GfFirePageComponent implements OnDestroy, OnInit { this.withdrawalRatePerMonth = this.withdrawalRatePerYear.div(12); } } + + private calculateWithdrawalRatesProjected() { + if ( + this.fireWealth && + this.projectedTotalAmount && + this.user?.settings?.safeWithdrawalRate + ) { + this.withdrawalRatePerYearProjected = new Big( + this.projectedTotalAmount + ).mul(this.user.settings.safeWithdrawalRate); + + this.withdrawalRatePerMonthProjected = + this.withdrawalRatePerYearProjected.div(12); + } + } } diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.html b/apps/client/src/app/pages/portfolio/fire/fire-page.html index ce51717fa..b441b2563 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.html +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -28,6 +28,7 @@ [retirementDate]="user?.settings?.retirementDate" [savingsRate]="user?.settings?.savingsRate" (annualInterestRateChanged)="onAnnualInterestRateChange($event)" + (calculationCompleted)="onCalculationComplete($event)" (projectedTotalAmountChanged)="onProjectedTotalAmountChange($event)" (retirementDateChanged)="onRetirementDateChange($event)" (savingsRateChanged)="onSavingsRateChange($event)" @@ -62,74 +63,127 @@ } @else {
- If you retire today, you would be able to withdraw -   - +
+ If you retire today, you would be able to withdraw +   + +   + per year   - per year -   - or -   - + or   - per month, -   - based on your total assets of -   - - -   - and a safe withdrawal rate (SWR) of - @if ( - !hasImpersonationId && - hasPermissionToUpdateUserSettings && - user?.settings?.isExperimentalFeatures - ) { - . - } @else { + , based on your total assets of   . + [unit]="user?.settings?.baseCurrency" + [value]="fireWealth?.today.valueInBaseCurrency" + /> + +   + and a safe withdrawal rate (SWR) of + @if ( + !hasImpersonationId && + hasPermissionToUpdateUserSettings && + user?.settings?.isExperimentalFeatures + ) { + . + } @else { +   + . + } +
+ + @if (user?.settings?.isExperimentalFeatures) { +
+ By +   + {{ + user?.settings?.retirementDate ?? retirementDate + | date: 'MMMM yyyy' + }} + , +   + this is projected to increase to +   + +   + per year +   + or +   + +   + per month + , assuming a +   + +   + annual interest rate. +
}
} diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 2944e43fb..4b86b37ba 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -655,7 +655,7 @@ Realment vol suprimir aquest compte? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -1398,6 +1398,14 @@ 107 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Actualitzar plataforma @@ -2015,7 +2023,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -2475,7 +2487,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2646,6 +2662,14 @@ 203 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Autenticació biomètrica @@ -3884,7 +3908,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -4844,7 +4868,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -5001,7 +5025,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5289,7 +5317,7 @@ Realment voleu eliminar el saldo d’aquest compte? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -5353,7 +5381,7 @@ De veritat vols suprimir aquestes activitats? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -5361,7 +5389,7 @@ Realment vols suprimir aquesta activitat? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -5496,12 +5524,12 @@ 61 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5576,12 +5604,20 @@ 59 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Dipòsit libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -5597,7 +5633,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -5609,7 +5645,7 @@ Estalvi libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -5849,7 +5885,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -6165,7 +6201,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -6245,11 +6281,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -6616,12 +6652,12 @@ 178 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6876,6 +6912,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -7700,7 +7744,7 @@ Do you really want to delete this item? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 02ef33acd..60490492f 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -302,7 +302,7 @@ Möchtest du dieses Konto wirklich löschen? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -862,7 +862,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -1230,7 +1234,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2146,7 +2154,7 @@ Nachhaltiges Einkommen im Ruhestand apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -2302,7 +2310,7 @@ Möchtest du diese Aktivität wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -2509,12 +2517,20 @@ 90 + + annual interest rate + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Einlage libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -2530,7 +2546,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -2542,7 +2558,7 @@ Ersparnisse libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -2954,7 +2970,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -2974,11 +2990,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -3022,7 +3038,7 @@ Wenn du heute in den Ruhestand gehen würdest, könntest du apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -3762,7 +3778,7 @@ Möchtest du diese Aktivitäten wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -3773,6 +3789,14 @@ 306 + + By + Bis + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Plattform bearbeiten @@ -4557,6 +4581,14 @@ 52 + + this is projected to increase to + wird ein Anstieg prognostiziert auf + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Biometrische Authentifizierung @@ -5320,7 +5352,7 @@ und einer sicheren Entnahmerate (SWR) von apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -5535,12 +5567,12 @@ 5 - + , - entnehmen, + apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5564,7 +5596,11 @@ pro Monat apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5680,7 +5716,7 @@ Möchtest du diesen Cash-Bestand wirklich löschen? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6640,12 +6676,12 @@ 178 - - based on your total assets of - bezogen auf dein Gesamtanlagevermögen von + + , based on your total assets of + entnehmen, bezogen auf dein Gesamtanlagevermögen von apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6900,6 +6936,14 @@ 163 + + , assuming a + , bei einem angenommenen Jahreszinssatz von + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year um unseren Empfehlungslink zu verwenden und ein Ghostfolio Premium-Abonnement für ein Jahr zu erhalten @@ -7700,7 +7744,7 @@ Möchtest du diesen Eintrag wirklich löschen? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 4314903be..c7aef0b07 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -303,7 +303,7 @@ ¿Estás seguro de eliminar esta cuenta? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -847,7 +847,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -1215,7 +1219,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2131,7 +2139,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -2287,7 +2295,7 @@ ¿Estás seguro de eliminar esta operación? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -2491,7 +2499,7 @@ Ahorros libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -2507,19 +2515,27 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts 40 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Depósito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -2939,7 +2955,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -2959,11 +2975,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -3007,7 +3023,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -3739,7 +3755,7 @@ ¿Realmente deseas eliminar estas actividades? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -3750,6 +3766,14 @@ 306 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Actualizar plataforma @@ -4534,6 +4558,14 @@ 52 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Autenticación biométrica @@ -5297,7 +5329,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -5512,12 +5544,12 @@ 5 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5541,7 +5573,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5657,7 +5693,7 @@ ¿Realmente desea eliminar el saldo de esta cuenta? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6617,12 +6653,12 @@ 178 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6877,6 +6913,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -7701,7 +7745,7 @@ ¿Realmente deseas eliminar este elemento? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 41dc3d391..8f6179681 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -358,7 +358,7 @@ Voulez-vous vraiment supprimer ce compte ? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -1118,7 +1118,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -1498,7 +1502,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2389,12 +2397,20 @@ 38 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Dépôt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -2514,7 +2530,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -2758,7 +2774,7 @@ Voulez-vous vraiment supprimer cette activité ? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -2814,7 +2830,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -2826,7 +2842,7 @@ Épargne libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -2962,7 +2978,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -3154,7 +3170,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -3198,11 +3214,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -3738,7 +3754,7 @@ Voulez-vous vraiment supprimer toutes vos activités ? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -3749,6 +3765,14 @@ 306 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Mettre à jour la Plateforme @@ -4533,6 +4557,14 @@ 52 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Authentication biométrique @@ -5296,7 +5328,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -5511,12 +5543,12 @@ 5 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5540,7 +5572,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5656,7 +5692,7 @@ Voulez-vous vraiment supprimer ce solde de compte ? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6616,12 +6652,12 @@ 178 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6876,6 +6912,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -7700,7 +7744,7 @@ Voulez-vous vraiment supprimer cet élément? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index e5bc9ccc6..a32ed3165 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -303,7 +303,7 @@ Vuoi davvero eliminare questo account? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -847,7 +847,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -1215,7 +1219,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2131,7 +2139,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -2287,7 +2295,7 @@ Vuoi davvero eliminare questa attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -2491,7 +2499,7 @@ Risparmio libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -2507,19 +2515,27 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts 40 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Deposito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -2939,7 +2955,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -2959,11 +2975,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -3007,7 +3023,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -3739,7 +3755,7 @@ Vuoi davvero eliminare tutte le tue attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -3750,6 +3766,14 @@ 306 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Aggiorna la piattaforma @@ -4534,6 +4558,14 @@ 52 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Autenticazione biometrica @@ -5297,7 +5329,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -5512,12 +5544,12 @@ 5 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5541,7 +5573,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5657,7 +5693,7 @@ Vuoi veramente elimnare il saldo di questo conto? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6617,12 +6653,12 @@ 178 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6877,6 +6913,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -7701,7 +7745,7 @@ Vuoi davvero eliminare questo elemento? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 5d1bec1b5..e3a289e20 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -302,7 +302,7 @@ Wil je deze rekening echt verwijderen? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -846,7 +846,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -1214,7 +1218,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2130,7 +2138,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -2286,7 +2294,7 @@ Wil je deze activiteit echt verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -2490,7 +2498,7 @@ Besparingen libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -2506,19 +2514,27 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts 40 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Storting libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -2938,7 +2954,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -2958,11 +2974,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -3006,7 +3022,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -3738,7 +3754,7 @@ Weet je zeker dat je alle activiteiten wilt verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -3749,6 +3765,14 @@ 306 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Platform bijwerken @@ -4533,6 +4557,14 @@ 52 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Biometrische authenticatie @@ -5296,7 +5328,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -5511,12 +5543,12 @@ 5 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5540,7 +5572,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5656,7 +5692,7 @@ Wilt u dit rekeningsaldo echt verwijderen? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6616,12 +6652,12 @@ 178 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6876,6 +6912,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -7700,7 +7744,7 @@ Wilt u dit item echt verwijderen? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 6e167a355..735aab38e 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -579,7 +579,7 @@ Czy na pewno chcesz usunąć to konto? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -1226,6 +1226,14 @@ 107 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Aktualizuj platformę @@ -1711,7 +1719,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -2191,7 +2203,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2330,6 +2346,14 @@ 203 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Uwierzytelnianie Biometryczne @@ -3503,7 +3527,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -3607,7 +3631,7 @@ Czy na pewno chcesz usunąć te aktywności? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -4058,12 +4082,20 @@ 38 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Depozyt libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -4383,7 +4415,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -4516,7 +4548,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -4864,7 +4900,7 @@ Czy na pewno chcesz usunąć tę działalność? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -4879,12 +4915,12 @@ 140 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -4972,7 +5008,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -4984,7 +5020,7 @@ Oszczędności libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -5216,7 +5252,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -5524,7 +5560,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -5604,11 +5640,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -5656,7 +5692,7 @@ Czy na pewno chcesz usunąć saldo tego konta? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6616,12 +6652,12 @@ 178 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6876,6 +6912,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -7700,7 +7744,7 @@ Czy na pewno chcesz usunąć ten element? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 8b63acdf6..999f23c98 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -358,7 +358,7 @@ Pretende realmente eliminar esta conta? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -917,12 +917,20 @@ 17 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Depósito libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -994,7 +1002,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -1486,7 +1498,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2450,7 +2466,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -2658,7 +2674,7 @@ Deseja realmente eliminar esta atividade? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -2714,7 +2730,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -2726,7 +2742,7 @@ Poupanças libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -2806,7 +2822,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -2998,7 +3014,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -3042,11 +3058,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -3738,7 +3754,7 @@ Deseja mesmo eliminar estas atividades? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -3749,6 +3765,14 @@ 306 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Atualizar plataforma @@ -4533,6 +4557,14 @@ 52 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Autenticação biométrica @@ -5296,7 +5328,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -5511,12 +5543,12 @@ 5 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5540,7 +5572,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5656,7 +5692,7 @@ Você realmente deseja excluir o saldo desta conta? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6616,12 +6652,12 @@ 178 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6876,6 +6912,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -7700,7 +7744,7 @@ Do you really want to delete this item? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index bc687b3d4..91f695a20 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -539,7 +539,7 @@ Bu hesabı silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -1142,6 +1142,14 @@ 107 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Platformu Güncelle @@ -1571,7 +1579,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3111,7 +3123,7 @@ Tüm işlemlerinizi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -3546,12 +3558,20 @@ 38 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Para Yatırma libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -3871,7 +3891,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -4336,7 +4356,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -4443,6 +4467,14 @@ 203 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Biyometrik Kimlik Doğrulama @@ -4584,7 +4616,7 @@ TBu işlemi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -4664,7 +4696,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -4676,7 +4708,7 @@ Tasarruflar libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -4908,7 +4940,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -5200,7 +5232,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -5244,11 +5276,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -5304,7 +5336,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -5511,12 +5543,12 @@ 5 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5540,7 +5572,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5656,7 +5692,7 @@ Bu nakit bakiyesini silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6616,12 +6652,12 @@ 178 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6876,6 +6912,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -7700,7 +7744,7 @@ Bu öğeyi silmek istediğinize emin misiniz? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 166b79a13..c7c1b195e 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -671,7 +671,7 @@ Ви дійсно хочете видалити цей обліковий запис? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -1386,6 +1386,14 @@ 107 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform Оновити платформу @@ -1527,7 +1535,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -2763,7 +2775,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2934,6 +2950,14 @@ 203 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication Біометрична аутентифікація @@ -4164,7 +4188,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -4963,12 +4987,12 @@ 58 - - based on your total assets of - based on your total assets of + + , based on your total assets of + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -5216,7 +5240,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -5607,7 +5631,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -5762,6 +5790,14 @@ 171 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year to use our referral link and get a Ghostfolio Premium membership for one year @@ -6007,7 +6043,7 @@ Ви дійсно хочете видалити цей рахунок? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -6071,7 +6107,7 @@ Ви дійсно хочете видалити ці дії? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -6079,7 +6115,7 @@ Ви дійсно хочете видалити цю активність? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -6214,12 +6250,12 @@ 61 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -6294,12 +6330,20 @@ 59 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit Депозит libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -6315,7 +6359,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -6327,7 +6371,7 @@ Заощадження libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -6675,7 +6719,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -7015,7 +7059,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -7267,11 +7311,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -7700,7 +7744,7 @@ Do you really want to delete this item? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 92d1c9639..b1539bb8a 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -555,7 +555,7 @@ Do you really want to delete this account? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -1161,6 +1161,13 @@ 107 + + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform @@ -1601,7 +1608,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -2038,7 +2049,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2162,6 +2177,13 @@ 203 + + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication @@ -3235,7 +3257,7 @@ and a safe withdrawal rate (SWR) of apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -3331,7 +3353,7 @@ Do you really want to delete these activities? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -3737,11 +3759,18 @@ 38 + + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -4028,7 +4057,7 @@ Sustainable retirement income apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -4146,7 +4175,11 @@ per month apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -4431,7 +4464,7 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -4481,7 +4514,7 @@ Do you really want to delete this activity? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -4509,11 +4542,11 @@ 61 - + , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -4591,7 +4624,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -4602,7 +4635,7 @@ Savings libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -4815,7 +4848,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -5091,7 +5124,7 @@ If you retire today, you would be able to withdraw apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -5163,11 +5196,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -6075,11 +6108,11 @@ 34 - - based on your total assets of + + , based on your total assets of apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6259,6 +6292,13 @@ 10 + + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year @@ -6983,7 +7023,7 @@ Do you really want to delete this item? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 6a9abc040..17b7f26ea 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -588,7 +588,7 @@ 您确定要删除此账户吗? libs/ui/src/lib/accounts-table/accounts-table.component.ts - 151 + 150 @@ -1235,6 +1235,14 @@ 107 + + By + By + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 139 + + Update platform 更新平台 @@ -1720,7 +1728,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 81 + 83 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -2200,7 +2212,11 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 78 + 80 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 apps/client/src/app/pages/pricing/pricing-page.html @@ -2339,6 +2355,14 @@ 203 + + this is projected to increase to + this is projected to increase to + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 147 + + Biometric Authentication 生物识别认证 @@ -3512,7 +3536,7 @@ 和安全取款率 (SWR) 为 apps/client/src/app/pages/portfolio/fire/fire-page.html - 107 + 108 @@ -3616,7 +3640,7 @@ 您确定要删除这些活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 279 + 278 @@ -4067,12 +4091,20 @@ 38 + + annual interest rate + annual interest rate + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 185 + + Deposit 存款 libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 362 + 377 @@ -4392,7 +4424,7 @@ 可持续的退休收入 apps/client/src/app/pages/portfolio/fire/fire-page.html - 40 + 41 @@ -4525,7 +4557,11 @@ 每月 apps/client/src/app/pages/portfolio/fire/fire-page.html - 92 + 94 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 172 @@ -4837,7 +4873,7 @@ 您确实要删除该帐户余额吗? libs/ui/src/lib/account-balances/account-balances.component.ts - 121 + 120 @@ -4893,7 +4929,7 @@ 您确实要删除此活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 289 + 288 @@ -4924,12 +4960,12 @@ 61 - + , , apps/client/src/app/pages/portfolio/fire/fire-page.html - 93 + 145 @@ -5017,7 +5053,7 @@ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 372 + 387 libs/ui/src/lib/i18n.ts @@ -5029,7 +5065,7 @@ 储蓄 libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 382 + 397 @@ -5261,7 +5297,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 413 + 437 @@ -5569,7 +5605,7 @@ 如果您今天退休,您将能够提取 apps/client/src/app/pages/portfolio/fire/fire-page.html - 66 + 68 @@ -5649,11 +5685,11 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 415 + 439 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 428 + 452 libs/ui/src/lib/top-holdings/top-holdings.component.html @@ -6617,12 +6653,12 @@ 178 - - based on your total assets of - 基于您总资产的 + + , based on your total assets of + 基于您总资产的 apps/client/src/app/pages/portfolio/fire/fire-page.html - 95 + 96 @@ -6877,6 +6913,14 @@ 163 + + , assuming a + , assuming a + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 174 + + to use our referral link and get a Ghostfolio Premium membership for one year 使用我们的推荐链接并获得一年的Ghostfolio Premium会员资格 @@ -7701,7 +7745,7 @@ 您确定要删除此项目吗? libs/ui/src/lib/benchmark/benchmark.component.ts - 140 + 139 diff --git a/libs/common/src/lib/interfaces/fire-calculation-complete-event.interface.ts b/libs/common/src/lib/interfaces/fire-calculation-complete-event.interface.ts new file mode 100644 index 000000000..1238b0729 --- /dev/null +++ b/libs/common/src/lib/interfaces/fire-calculation-complete-event.interface.ts @@ -0,0 +1,4 @@ +export interface FireCalculationCompleteEvent { + projectedTotalAmount: number; + retirementDate: Date; +} diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index 1d7991e40..4b8e8009a 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -18,6 +18,7 @@ import type { DataProviderInfo } from './data-provider-info.interface'; import type { EnhancedSymbolProfile } from './enhanced-symbol-profile.interface'; import type { FilterGroup } from './filter-group.interface'; import type { Filter } from './filter.interface'; +import type { FireCalculationCompleteEvent } from './fire-calculation-complete-event.interface'; import type { FireWealth } from './fire-wealth.interface'; import type { HistoricalDataItem } from './historical-data-item.interface'; import type { HoldingWithParents } from './holding-with-parents.interface'; @@ -140,6 +141,7 @@ export { ExportResponse, Filter, FilterGroup, + FireCalculationCompleteEvent, FireWealth, HistoricalDataItem, HistoricalResponse, diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts index 68d6dfa22..7d1c4434a 100644 --- a/libs/common/src/lib/personal-finance-tools.ts +++ b/libs/common/src/lib/personal-finance-tools.ts @@ -1021,9 +1021,11 @@ export const personalFinanceTools: Product[] = [ }, { hasSelfHostingAbility: false, + isArchived: true, key: 'wallmine', languages: ['English'], name: 'wallmine', + note: 'wallmine was discontinued in 2024', origin: 'Czech Republic', pricingPerYear: '$600', slogan: 'Make Smarter Investments' diff --git a/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts b/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts index 44276ec43..655798b3d 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.ts @@ -4,6 +4,7 @@ import { } from '@ghostfolio/common/chart-helper'; import { primaryColorRgb } from '@ghostfolio/common/config'; import { getLocale } from '@ghostfolio/common/helper'; +import { FireCalculationCompleteEvent } from '@ghostfolio/common/interfaces'; import { ColorScheme } from '@ghostfolio/common/types'; import { CommonModule } from '@angular/common'; @@ -88,6 +89,8 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy { @Input() savingsRate: number; @Output() annualInterestRateChanged = new EventEmitter(); + @Output() calculationCompleted = + new EventEmitter(); @Output() projectedTotalAmountChanged = new EventEmitter(); @Output() retirementDateChanged = new EventEmitter(); @Output() savingsRateChanged = new EventEmitter(); @@ -131,6 +134,18 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy { this.initialize(); }); + this.calculatorForm.valueChanges + .pipe(debounceTime(500), takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + const { projectedTotalAmount, retirementDate } = + this.calculatorForm.getRawValue(); + + this.calculationCompleted.emit({ + projectedTotalAmount, + retirementDate + }); + }); + this.calculatorForm .get('annualInterestRate') .valueChanges.pipe(debounceTime(500), takeUntil(this.unsubscribeSubject)) @@ -161,10 +176,10 @@ export class GfFireCalculatorComponent implements OnChanges, OnDestroy { if (isNumber(this.fireWealth) && this.fireWealth >= 0) { this.calculatorForm.setValue( { - annualInterestRate: this.annualInterestRate ?? 5, - paymentPerPeriod: this.savingsRate ?? 0, + annualInterestRate: this.annualInterestRate, + paymentPerPeriod: this.savingsRate, principalInvestmentAmount: this.fireWealth, - projectedTotalAmount: this.projectedTotalAmount ?? 0, + projectedTotalAmount: this.projectedTotalAmount, retirementDate: this.retirementDate ?? this.DEFAULT_RETIREMENT_DATE }, { diff --git a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts index 2d8a03ac0..fb11897eb 100644 --- a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts +++ b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -1,6 +1,6 @@ import { getTooltipOptions } from '@ghostfolio/common/chart-helper'; import { UNKNOWN_KEY } from '@ghostfolio/common/config'; -import { getLocale, getTextColor } from '@ghostfolio/common/helper'; +import { getLocale, getSum, getTextColor } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier, PortfolioPosition @@ -193,6 +193,30 @@ export class GfPortfolioProportionChartComponent }); } + if (this.isInPercent) { + const totalValueInPercentage = getSum( + Object.values(chartData).map(({ value }) => { + return value; + }) + ); + + const unknownValueInPercentage = new Big(1).minus(totalValueInPercentage); + + if (unknownValueInPercentage.gt(0)) { + // If total is below 100%, allocate the remaining percentage to UNKNOWN_KEY + if (chartData[UNKNOWN_KEY]) { + chartData[UNKNOWN_KEY].value = chartData[UNKNOWN_KEY].value.plus( + unknownValueInPercentage + ); + } else { + chartData[UNKNOWN_KEY] = { + name: UNKNOWN_KEY, + value: unknownValueInPercentage + }; + } + } + } + let chartDataSorted = Object.entries(chartData) .sort((a, b) => { return a[1].value.minus(b[1].value).toNumber(); diff --git a/package-lock.json b/package-lock.json index 61f38db9f..87db87109 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.222.0", + "version": "2.223.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.222.0", + "version": "2.223.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index d0ee2c084..30989f304 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.222.0", + "version": "2.223.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio",