From fcf0cea98279d7835be89c6237de36d40d5da5ce Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 13 Nov 2023 20:22:47 +0100 Subject: [PATCH 01/19] Change BTC to BTCUSD (#2646) --- test/import/invalid-currency.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/import/invalid-currency.csv b/test/import/invalid-currency.csv index 6782047c7..8e2a2336c 100644 --- a/test/import/invalid-currency.csv +++ b/test/import/invalid-currency.csv @@ -1,2 +1,2 @@ Date,Code,Currency,Price,Quantity,Action,Fee -12/12/2021,BTC,,44558.42,1,buy,0 +12/12/2021,BTCUSD,,44558.42,1,buy,0 From 1ffde2a27e023fd77156b51f02d9e20115ae12b5 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 13 Nov 2023 20:35:15 +0100 Subject: [PATCH 02/19] Feature/setup polish (#2650) * Set up polski * Update changelog --- CHANGELOG.md | 4 + apps/api/src/assets/sitemap.xml | 4 + apps/client/project.json | 12 + apps/client/src/app/app.component.html | 5 + .../user-account-settings.component.ts | 1 + .../user-account-settings.html | 4 + .../src/app/pages/features/features-page.html | 3 +- apps/client/src/locales/messages.de.xlf | 44 +- apps/client/src/locales/messages.es.xlf | 44 +- apps/client/src/locales/messages.fr.xlf | 44 +- apps/client/src/locales/messages.it.xlf | 44 +- apps/client/src/locales/messages.nl.xlf | 44 +- apps/client/src/locales/messages.pl.xlf | 12844 ++++++++++++++++ apps/client/src/locales/messages.pt.xlf | 44 +- apps/client/src/locales/messages.tr.xlf | 44 +- apps/client/src/locales/messages.xlf | 44 +- libs/common/src/lib/config.ts | 1 + libs/common/src/lib/helper.ts | 4 +- 18 files changed, 13072 insertions(+), 162 deletions(-) create mode 100644 apps/client/src/locales/messages.pl.xlf diff --git a/CHANGELOG.md b/CHANGELOG.md index 236611852..3db4addc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Set up the language localization for Polski (`pl`) + ### Changed - Improved the language localization for German (`de`) diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml index 015a6f67b..4fbc9efac 100644 --- a/apps/api/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -1092,6 +1092,10 @@ https://ghostfol.io/nl/veelgestelde-vragen ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/pl + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/pt ${currentDate}T00:00:00+00:00 diff --git a/apps/client/project.json b/apps/client/project.json index 0d2e589dc..0ccce26d8 100644 --- a/apps/client/project.json +++ b/apps/client/project.json @@ -60,6 +60,10 @@ "baseHref": "/nl/", "localize": ["nl"] }, + "development-pl": { + "baseHref": "/pl/", + "localize": ["pl"] + }, "development-pt": { "baseHref": "/pt/", "localize": ["pt"] @@ -170,6 +174,9 @@ "development-nl": { "browserTarget": "client:build:development-nl" }, + "development-pl": { + "browserTarget": "client:build:development-pl" + }, "development-pt": { "browserTarget": "client:build:development-pt" }, @@ -193,6 +200,7 @@ "messages.fr.xlf", "messages.it.xlf", "messages.nl.xlf", + "messages.pl.xlf", "messages.pt.xlf", "messages.tr.xlf" ] @@ -235,6 +243,10 @@ "baseHref": "/nl/", "translation": "apps/client/src/locales/messages.nl.xlf" }, + "pl": { + "baseHref": "/pl/", + "translation": "apps/client/src/locales/messages.pl.xlf" + }, "pt": { "baseHref": "/pt/", "translation": "apps/client/src/locales/messages.pt.xlf" diff --git a/apps/client/src/app/app.component.html b/apps/client/src/app/app.component.html index c6ff195f1..31281fe48 100644 --- a/apps/client/src/app/app.component.html +++ b/apps/client/src/app/app.component.html @@ -150,6 +150,11 @@
  • Nederlands
  • +
  • Português
  • diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts index 3fb3592e0..3a1e02596 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -44,6 +44,7 @@ export class UserAccountSettingsComponent implements OnDestroy, OnInit { 'fr', 'it', 'nl', + 'pl', 'pt', 'tr' ]; diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.html b/apps/client/src/app/components/user-account-settings/user-account-settings.html index 87762d449..4d55bbc27 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.html +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -74,6 +74,10 @@ >Nederlands (Community) + Polski (Community) Português (Community)Multi-Language

    Use Ghostfolio in multiple languages: English, Dutch, French, - German, Italian, Portuguese, Spanish and Turkish are currently + German, Italian, + Portuguese, Spanish and Turkish are currently supported.

    diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 9e7d73e9b..bf20c7019 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -22,7 +22,7 @@ Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst. apps/client/src/app/app.component.html - 174 + 179 @@ -1130,7 +1130,7 @@ Registrieren apps/client/src/app/pages/features/features-page.html - 298 + 299 apps/client/src/app/pages/public/public-page.html @@ -1788,7 +1788,7 @@ Möchtest du diese Anmeldemethode wirklich löschen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 181 + 182 @@ -1868,7 +1868,7 @@ Lokalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 91 + 95 @@ -1876,7 +1876,7 @@ Datums- und Zahlenformat apps/client/src/app/components/user-account-settings/user-account-settings.html - 93 + 97 @@ -1884,7 +1884,7 @@ Zen Modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 137 + 141 apps/client/src/app/pages/features/features-page.html @@ -1896,7 +1896,7 @@ Einloggen mit Fingerabdruck apps/client/src/app/components/user-account-settings/user-account-settings.html - 155 + 159 @@ -1904,7 +1904,7 @@ Benutzer ID apps/client/src/app/components/user-account-settings/user-account-settings.html - 188 + 192 @@ -3012,7 +3012,7 @@ Experimentelle Funktionen apps/client/src/app/components/user-account-settings/user-account-settings.html - 172 + 176 @@ -3060,7 +3060,7 @@ Aussehen apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 118 @@ -3068,7 +3068,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 126 + 130 @@ -3076,7 +3076,7 @@ Hell apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 131 @@ -3084,7 +3084,7 @@ Dunkel apps/client/src/app/components/user-account-settings/user-account-settings.html - 128 + 132 @@ -3370,9 +3370,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 82 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3608,7 +3612,7 @@ Unbeschwertes Erlebnis für turbulente Zeiten apps/client/src/app/components/user-account-settings/user-account-settings.html - 138 + 142 @@ -3616,7 +3620,7 @@ Vorschau auf kommende Funktionalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 @@ -4448,7 +4452,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -9116,7 +9120,7 @@ Biometrische Authentifizierung apps/client/src/app/components/user-account-settings/user-account-settings.html - 154 + 158 @@ -9200,7 +9204,7 @@ Daten exportieren apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 199 @@ -12837,4 +12841,4 @@ - + \ No newline at end of file diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 9f11036e8..d369af6d0 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -23,7 +23,7 @@ El riesgo de pérdida en trading puede ser importante. No es aconsejable invertir dinero que puedas necesitar a corto plazo. apps/client/src/app/app.component.html - 174 + 179 @@ -1131,7 +1131,7 @@ Empezar apps/client/src/app/pages/features/features-page.html - 298 + 299 apps/client/src/app/pages/public/public-page.html @@ -1786,7 +1786,7 @@ ¿Estás seguro de eliminar este método de acceso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 181 + 182 @@ -1866,7 +1866,7 @@ Ubicación apps/client/src/app/components/user-account-settings/user-account-settings.html - 91 + 95 @@ -1874,7 +1874,7 @@ Formato de fecha y número apps/client/src/app/components/user-account-settings/user-account-settings.html - 93 + 97 @@ -1882,7 +1882,7 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 137 + 141 apps/client/src/app/pages/features/features-page.html @@ -1894,7 +1894,7 @@ Accede con huella digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 155 + 159 @@ -1902,7 +1902,7 @@ ID usuario apps/client/src/app/components/user-account-settings/user-account-settings.html - 188 + 192 @@ -3010,7 +3010,7 @@ Funcionalidades experimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 172 + 176 @@ -3058,7 +3058,7 @@ Apariencia apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 118 @@ -3066,7 +3066,7 @@ Automático apps/client/src/app/components/user-account-settings/user-account-settings.html - 126 + 130 @@ -3074,7 +3074,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 131 @@ -3082,7 +3082,7 @@ Oscuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 128 + 132 @@ -3368,9 +3368,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 82 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3606,7 +3610,7 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 138 + 142 @@ -3614,7 +3618,7 @@ Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 @@ -4446,7 +4450,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -9114,7 +9118,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 154 + 158 @@ -9198,7 +9202,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 199 @@ -12835,4 +12839,4 @@ - + \ No newline at end of file diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index fa40e277b..3c37ad77a 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -6,7 +6,7 @@ Le risque de perte en investissant peut être important. Il est déconseillé d'investir de l'argent dont vous pourriez avoir besoin à court terme. apps/client/src/app/app.component.html - 174 + 179 @@ -2049,7 +2049,7 @@ Voulez-vous vraiment supprimer cette méthode de connexion ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 181 + 182 @@ -2163,9 +2163,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 82 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -2173,7 +2177,7 @@ Paramètres régionaux apps/client/src/app/components/user-account-settings/user-account-settings.html - 91 + 95 @@ -2181,7 +2185,7 @@ Format de date et d'heure apps/client/src/app/components/user-account-settings/user-account-settings.html - 93 + 97 @@ -2189,7 +2193,7 @@ Apparence apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 118 @@ -2197,7 +2201,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 126 + 130 @@ -2205,7 +2209,7 @@ Clair apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 131 @@ -2213,7 +2217,7 @@ Sombre apps/client/src/app/components/user-account-settings/user-account-settings.html - 128 + 132 @@ -2221,7 +2225,7 @@ Mode Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 137 + 141 apps/client/src/app/pages/features/features-page.html @@ -2233,7 +2237,7 @@ Se connecter avec empreinte apps/client/src/app/components/user-account-settings/user-account-settings.html - 155 + 159 @@ -2241,7 +2245,7 @@ Fonctionnalités expérimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 172 + 176 @@ -2249,7 +2253,7 @@ ID d'utilisateur apps/client/src/app/components/user-account-settings/user-account-settings.html - 188 + 192 @@ -3009,7 +3013,7 @@ Démarrer apps/client/src/app/pages/features/features-page.html - 298 + 299 apps/client/src/app/pages/public/public-page.html @@ -3605,7 +3609,7 @@ Expérience sans distraction pour les périodes tumultueuses apps/client/src/app/components/user-account-settings/user-account-settings.html - 138 + 142 @@ -3613,7 +3617,7 @@ Avant-première de fonctionnalités futures apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 @@ -4445,7 +4449,7 @@ Logiciel Open Source apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -9113,7 +9117,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 154 + 158 @@ -9197,7 +9201,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 199 @@ -12834,4 +12838,4 @@ - + \ No newline at end of file diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index cc759b412..611cf0168 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -23,7 +23,7 @@ Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine. apps/client/src/app/app.component.html - 174 + 179 @@ -1131,7 +1131,7 @@ Inizia apps/client/src/app/pages/features/features-page.html - 298 + 299 apps/client/src/app/pages/public/public-page.html @@ -1786,7 +1786,7 @@ Vuoi davvero rimuovere questo metodo di accesso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 181 + 182 @@ -1866,7 +1866,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 91 + 95 @@ -1874,7 +1874,7 @@ Formato data e numero apps/client/src/app/components/user-account-settings/user-account-settings.html - 93 + 97 @@ -1882,7 +1882,7 @@ Modalità Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 137 + 141 apps/client/src/app/pages/features/features-page.html @@ -1894,7 +1894,7 @@ Accesso con impronta digitale apps/client/src/app/components/user-account-settings/user-account-settings.html - 155 + 159 @@ -1902,7 +1902,7 @@ ID utente apps/client/src/app/components/user-account-settings/user-account-settings.html - 188 + 192 @@ -3010,7 +3010,7 @@ Funzionalità sperimentali apps/client/src/app/components/user-account-settings/user-account-settings.html - 172 + 176 @@ -3058,7 +3058,7 @@ Aspetto apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 118 @@ -3066,7 +3066,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 126 + 130 @@ -3074,7 +3074,7 @@ Chiaro apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 131 @@ -3082,7 +3082,7 @@ Scuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 128 + 132 @@ -3368,9 +3368,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 82 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3606,7 +3610,7 @@ Esperienza priva di distrazioni per i periodi più turbolenti apps/client/src/app/components/user-account-settings/user-account-settings.html - 138 + 142 @@ -3614,7 +3618,7 @@ Un'anteprima delle funzionalità in arrivo apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 @@ -4446,7 +4450,7 @@ Software open source apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -9114,7 +9118,7 @@ Autenticazione biometrica apps/client/src/app/components/user-account-settings/user-account-settings.html - 154 + 158 @@ -9198,7 +9202,7 @@ Esporta dati apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 199 @@ -12835,4 +12839,4 @@ - + \ No newline at end of file diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 96aaaa199..bd47098ee 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -22,7 +22,7 @@ Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft. apps/client/src/app/app.component.html - 174 + 179 @@ -1130,7 +1130,7 @@ Aan de slag apps/client/src/app/pages/features/features-page.html - 298 + 299 apps/client/src/app/pages/public/public-page.html @@ -1785,7 +1785,7 @@ Wil je deze aanmeldingsmethode echt verwijderen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 181 + 182 @@ -1865,7 +1865,7 @@ Locatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 91 + 95 @@ -1873,7 +1873,7 @@ Datum- en getalnotatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 93 + 97 @@ -1881,7 +1881,7 @@ Zen-modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 137 + 141 apps/client/src/app/pages/features/features-page.html @@ -1893,7 +1893,7 @@ Aanmelden met vingerafdruk apps/client/src/app/components/user-account-settings/user-account-settings.html - 155 + 159 @@ -1901,7 +1901,7 @@ Gebruikers-ID apps/client/src/app/components/user-account-settings/user-account-settings.html - 188 + 192 @@ -3009,7 +3009,7 @@ Experimentele functies apps/client/src/app/components/user-account-settings/user-account-settings.html - 172 + 176 @@ -3057,7 +3057,7 @@ Weergave apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 118 @@ -3065,7 +3065,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 126 + 130 @@ -3073,7 +3073,7 @@ Licht apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 131 @@ -3081,7 +3081,7 @@ Donker apps/client/src/app/components/user-account-settings/user-account-settings.html - 128 + 132 @@ -3367,9 +3367,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 82 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3605,7 +3609,7 @@ Afleidingsvrije ervaring voor roerige tijden apps/client/src/app/components/user-account-settings/user-account-settings.html - 138 + 142 @@ -3613,7 +3617,7 @@ Voorproefje van nieuwe functionaliteit apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 @@ -4445,7 +4449,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -9113,7 +9117,7 @@ Biometrische authenticatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 154 + 158 @@ -9197,7 +9201,7 @@ Exporteer Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 199 @@ -12834,4 +12838,4 @@ - + \ No newline at end of file diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf new file mode 100644 index 000000000..c2feb29d0 --- /dev/null +++ b/apps/client/src/locales/messages.pl.xlf @@ -0,0 +1,12844 @@ + + + + + about + about + + apps/client/src/app/app-routing.module.ts + 8 + + + apps/client/src/app/app.component.ts + 47 + + + apps/client/src/app/app.component.ts + 48 + + + apps/client/src/app/app.component.ts + 49 + + + apps/client/src/app/app.component.ts + 51 + + + apps/client/src/app/components/header/header.component.ts + 71 + + + apps/client/src/app/components/header/header.component.ts + 76 + + + apps/client/src/app/pages/about/about-page.component.ts + 44 + + + apps/client/src/app/pages/about/about-page.component.ts + 49 + + + apps/client/src/app/pages/about/about-page.component.ts + 54 + + + apps/client/src/app/pages/about/about-page.component.ts + 62 + + + apps/client/src/app/pages/about/about-page.component.ts + 73 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023/hacktoberfest-2023-debriefing-page.component.ts + 13 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 22 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/basil-finance-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/beanvest-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/capitally-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/capmon-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/copilot-money-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/delta-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/divvydiary-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/eightfigures-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/finwise-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/getquin-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/gospatz-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/intuit-mint-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/justetf-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/kubera-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/magnifi-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/markets.sh-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/maybe-finance-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/monse-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/parqet-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/plannix-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/projectionlab-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/rocket-money-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/seeking-alpha-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/sharesight-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/simple-portfolio-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/sumio-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/utluna-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/yeekatee-page.component.ts + 25 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts + 25 + + + + faq + faq + + apps/client/src/app/app-routing.module.ts + 9 + + + apps/client/src/app/app.component.ts + 54 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 19 + + + + features + features + + apps/client/src/app/app-routing.module.ts + 10 + + + apps/client/src/app/app.component.ts + 55 + + + apps/client/src/app/components/header/header.component.ts + 72 + + + apps/client/src/app/components/header/header.component.ts + 77 + + + apps/client/src/app/pages/about/overview/about-overview-page.component.ts + 20 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023/hacktoberfest-2023-debriefing-page.component.ts + 14 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 13 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 34 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/basil-finance-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/beanvest-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/capitally-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/capmon-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/copilot-money-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/delta-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/divvydiary-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/eightfigures-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/finwise-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/getquin-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/gospatz-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/intuit-mint-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/justetf-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/kubera-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/magnifi-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/markets.sh-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/maybe-finance-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/monse-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/parqet-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/plannix-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/projectionlab-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/rocket-money-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/seeking-alpha-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/sharesight-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/simple-portfolio-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/sumio-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/utluna-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/yeekatee-page.component.ts + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts + 26 + + + + license + license + + apps/client/src/app/app-routing.module.ts + 11 + + + apps/client/src/app/app.component.ts + 49 + + + apps/client/src/app/pages/about/about-page.component.ts + 54 + + + + markets + markets + + apps/client/src/app/app-routing.module.ts + 12 + + + apps/client/src/app/app.component.ts + 56 + + + apps/client/src/app/components/header/header.component.ts + 73 + + + apps/client/src/app/components/header/header.component.ts + 78 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts + 16 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 14 + + + + pricing + pricing + + apps/client/src/app/app-routing.module.ts + 13 + + + apps/client/src/app/app.component.ts + 57 + + + apps/client/src/app/components/header/header.component.ts + 74 + + + apps/client/src/app/components/header/header.component.ts + 79 + + + apps/client/src/app/components/home-summary/home-summary.component.ts + 124 + + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts + 14 + + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + + + apps/client/src/app/core/http-response.interceptor.ts + 80 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts + 15 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts + 14 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 15 + + + libs/ui/src/lib/membership-card/membership-card.component.ts + 13 + + + + privacy-policy + privacy-policy + + apps/client/src/app/app-routing.module.ts + 14 + + + apps/client/src/app/app.component.ts + 52 + + + apps/client/src/app/pages/about/about-page.component.ts + 62 + + + + register + register + + apps/client/src/app/app-routing.module.ts + 15 + + + apps/client/src/app/app.component.ts + 58 + + + apps/client/src/app/components/header/header.component.ts + 80 + + + apps/client/src/app/core/auth.guard.ts + 53 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 16 + + + apps/client/src/app/pages/features/features-page.component.ts + 17 + + + apps/client/src/app/pages/landing/landing-page.component.ts + 26 + + + apps/client/src/app/pages/pricing/pricing-page.component.ts + 35 + + + + resources + resources + + apps/client/src/app/app-routing.module.ts + 16 + + + apps/client/src/app/app.component.ts + 59 + + + apps/client/src/app/components/header/header.component.ts + 75 + + + apps/client/src/app/components/header/header.component.ts + 81 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts + 14 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts + 13 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts + 14 + + + apps/client/src/app/pages/features/features-page.component.ts + 18 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 14 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/basil-finance-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/beanvest-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/capitally-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/capmon-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/copilot-money-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/delta-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/divvydiary-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/eightfigures-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/finwise-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/getquin-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/gospatz-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/intuit-mint-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/justetf-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/kubera-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/magnifi-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/markets.sh-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/maybe-finance-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/monse-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/parqet-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/plannix-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/projectionlab-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/rocket-money-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/seeking-alpha-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/sharesight-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/simple-portfolio-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/sumio-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/utluna-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/yeekatee-page.component.ts + 28 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts + 28 + + + apps/client/src/app/pages/resources/resources-page.component.ts + 17 + + + + You are using the Live Demo. + You are using the Live Demo. + + apps/client/src/app/app.component.html + 17 + + + + Create Account + Create Account + + apps/client/src/app/app.component.html + 18 + + + apps/client/src/app/pages/register/register-page.html + 26 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 2 + + + + Personal Finance + Personal Finance + + apps/client/src/app/app.component.html + 55 + + + + Markets + Markets + + apps/client/src/app/app.component.html + 58 + + + apps/client/src/app/components/header/header.component.html + 348 + + + apps/client/src/app/components/home-market/home-market.html + 2 + + + apps/client/src/app/pages/resources/resources-page.html + 39 + + + + Resources + Resources + + apps/client/src/app/app.component.html + 60 + + + apps/client/src/app/components/header/header.component.html + 79 + + + apps/client/src/app/components/header/header.component.html + 251 + + + apps/client/src/app/pages/resources/resources-page.html + 4 + + + + About + About + + apps/client/src/app/app.component.html + 66 + + + apps/client/src/app/components/header/header.component.html + 110 + + + apps/client/src/app/components/header/header.component.html + 319 + + + + Blog + Blog + + apps/client/src/app/app.component.html + 68 + + + apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html + 203 + + + apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html + 183 + + + apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html + 183 + + + apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html + 183 + + + apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html + 209 + + + apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html + 195 + + + apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html + 181 + + + apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html + 139 + + + apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.html + 168 + + + apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.html + 178 + + + apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.html + 202 + + + apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html + 252 + + + apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html + 233 + + + apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.html + 243 + + + apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html + 154 + + + apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.html + 273 + + + apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.html + 181 + + + apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023/hacktoberfest-2023-debriefing-page.html + 270 + + + apps/client/src/app/pages/blog/blog-page.html + 5 + + + + Changelog + Changelog + + apps/client/src/app/app.component.html + 71 + + + apps/client/src/app/pages/about/changelog/changelog-page.html + 4 + + + + Features + Features + + apps/client/src/app/app.component.html + 73 + + + apps/client/src/app/components/header/header.component.html + 306 + + + apps/client/src/app/pages/features/features-page.html + 5 + + + + Frequently Asked Questions (FAQ) + Frequently Asked Questions (FAQ) + + apps/client/src/app/app.component.html + 76 + + + + License + License + + apps/client/src/app/app.component.html + 80 + + + apps/client/src/app/pages/about/license/license-page.html + 4 + + + + Pricing + Pricing + + apps/client/src/app/app.component.html + 86 + + + apps/client/src/app/components/header/header.component.html + 97 + + + apps/client/src/app/components/header/header.component.html + 263 + + + apps/client/src/app/components/header/header.component.html + 332 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + + Privacy Policy + Privacy Policy + + apps/client/src/app/app.component.html + 90 + + + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html + 4 + + + + Community + Community + + apps/client/src/app/app.component.html + 105 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 62 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 + + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + + + apps/client/src/app/pages/features/features-page.html + 260 + + + + The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. + The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. + + apps/client/src/app/app.component.html + 179 + + + + Alias + Alias + + apps/client/src/app/components/access-table/access-table.component.html + 3 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 + + + + Grantee + Grantee + + apps/client/src/app/components/access-table/access-table.component.html + 10 + + + + Type + Type + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 28 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 164 + + + + Details + Details + + apps/client/src/app/components/access-table/access-table.component.html + 27 + + + + Revoke + Revoke + + apps/client/src/app/components/access-table/access-table.component.html + 54 + + + + Do you really want to revoke this granted access? + Do you really want to revoke this granted access? + + apps/client/src/app/components/access-table/access-table.component.ts + 49 + + + + Cash Balance + Cash Balance + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 43 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 122 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 31 + + + + Equity + Equity + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 54 + + + + Activities + Activities + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 59 + + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 69 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 105 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 110 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 44 + + + apps/client/src/app/components/admin-users/admin-users.html + 120 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 251 + + + apps/client/src/app/pages/portfolio/activities/activities-page.html + 4 + + + + Platform + Platform + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 63 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 77 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 45 + + + + Transfer Cash Balance + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 9 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Name + Name + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 34 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 38 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 182 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 30 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 7 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 30 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 7 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 12 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 114 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 179 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 28 + + + + Total + Total + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 50 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 159 + + + + Currency + Currency + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 60 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 91 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 22 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 120 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 209 + + + + Value + Value + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 157 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 192 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 47 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 168 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 169 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 171 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 224 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 225 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 226 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 227 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 321 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 356 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 74 + + + + Edit + Edit + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 259 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 170 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 86 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 91 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 71 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 507 + + + + Delete + Delete + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 269 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 180 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 99 + + + apps/client/src/app/components/admin-overview/admin-overview.html + 201 + + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 97 + + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 77 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 529 + + + + Do you really want to delete this account? + Do you really want to delete this account? + + apps/client/src/app/components/accounts-table/accounts-table.component.ts + 83 + + + + Asset Profile + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31 + + + + Historical Market Data + Historical Market Data + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 37 + + + + Symbol + Symbol + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 45 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 24 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 86 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 + + + + Data Source + Data Source + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 54 + + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 51 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 130 + + + + Attempts + Attempts + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 63 + + + + Created + Created + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 72 + + + + Finished + Finished + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 81 + + + + Status + Status + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 90 + + + + Delete Jobs + Delete Jobs + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 135 + + + + View Data + View Data + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 150 + + + + View Stacktrace + View Stacktrace + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 157 + + + + Delete Job + Delete Job + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 160 + + + + Details for + Details for + + apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + 2 + + + + Date + Date + + apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + 6 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 136 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 152 + + + + Market Price + Market Price + + apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + 26 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 81 + + + + Cancel + Cancel + + apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + 46 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 260 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 40 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 19 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 13 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 96 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 59 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 362 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 37 + + + + Save + Save + + apps/client/src/app/components/admin-market-data-detail/market-data-detail-dialog/market-data-detail-dialog.html + 48 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 267 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 47 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 26 + + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 20 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 103 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 369 + + + + Currencies + Currencies + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 66 + + + + ETFs without Countries + ETFs without Countries + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 71 + + + + ETFs without Sectors + ETFs without Sectors + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 76 + + + + Do you really want to delete this asset profile? + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 184 + + + + Filter by... + Filter by... + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 281 + + + + Asset Class + Asset Class + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 60 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 119 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 188 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 174 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 291 + + + + Asset Sub Class + Asset Sub Class + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 69 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 128 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 201 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 183 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 307 + + + + First Activity + First Activity + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 78 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 101 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 158 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 50 + + + + Activities Count + Activities Count + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 87 + + + + Historical Data + Historical Data + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 96 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + + + + Sectors Count + Sectors Count + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 105 + + + + Countries Count + Countries Count + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 114 + + + + Gather Recent Data + Gather Recent Data + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 144 + + + + Gather All Data + Gather All Data + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 147 + + + + Gather Profile Data + Gather Profile Data + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 150 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 38 + + + + Oops! Could not parse historical data. + Oops! Could not parse historical data. + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 205 + + + + Refresh + Refresh + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 22 + + + + Gather Historical Data + Gather Historical Data + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 30 + + + + Import + Import + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 79 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 150 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 186 + + + + Sector + Sector + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 143 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 198 + + + + Country + Country + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 152 + + + apps/client/src/app/components/admin-users/admin-users.html + 63 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 210 + + + + Sectors + Sectors + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 158 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 216 + + + apps/client/src/app/pages/public/public-page.html + 45 + + + + Countries + Countries + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 168 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 228 + + + + Benchmark + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 219 + + + + Symbol Mapping + Symbol Mapping + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 225 + + + + Scraper Configuration + Scraper Configuration + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 236 + + + + Note + Note + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 247 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 73 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 276 + + + + Add Asset Profile + Add Asset Profile + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 7 + + + + Search + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Name, symbol or ISIN + Name, symbol or ISIN + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 25 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 102 + + + + Please add a currency: + Please add a currency: + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 119 + + + + Do you really want to delete this coupon? + Do you really want to delete this coupon? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 133 + + + + Do you really want to delete this currency? + Do you really want to delete this currency? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 146 + + + + Do you really want to delete this system message? + Do you really want to delete this system message? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 159 + + + + Do you really want to flush the cache? + Do you really want to flush the cache? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 169 + + + + Please set your system message: + Please set your system message: + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 200 + + + + Version + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + User Count + User Count + + apps/client/src/app/components/admin-overview/admin-overview.html + 13 + + + + Activity Count + Activity Count + + apps/client/src/app/components/admin-overview/admin-overview.html + 23 + + + + per User + per User + + apps/client/src/app/components/admin-overview/admin-overview.html + 32 + + + + Exchange Rates + Exchange Rates + + apps/client/src/app/components/admin-overview/admin-overview.html + 37 + + + + Add Currency + Add Currency + + apps/client/src/app/components/admin-overview/admin-overview.html + 113 + + + + User Signup + User Signup + + apps/client/src/app/components/admin-overview/admin-overview.html + 119 + + + + Read-only Mode + Read-only Mode + + apps/client/src/app/components/admin-overview/admin-overview.html + 130 + + + + System Message + System Message + + apps/client/src/app/components/admin-overview/admin-overview.html + 141 + + + + Set Message + Set Message + + apps/client/src/app/components/admin-overview/admin-overview.html + 164 + + + + Coupons + Coupons + + apps/client/src/app/components/admin-overview/admin-overview.html + 172 + + + + Add + Add + + apps/client/src/app/components/admin-overview/admin-overview.html + 233 + + + + Housekeeping + Housekeeping + + apps/client/src/app/components/admin-overview/admin-overview.html + 240 + + + + Flush Cache + Flush Cache + + apps/client/src/app/components/admin-overview/admin-overview.html + 244 + + + + Add Platform + Add Platform + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 11 + + + + Url + Url + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 50 + + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 13 + + + + Accounts + Accounts + + apps/client/src/app/components/admin-platform/admin-platform.component.html + 64 + + + apps/client/src/app/components/admin-users/admin-users.html + 99 + + + apps/client/src/app/components/header/header.component.html + 53 + + + apps/client/src/app/components/header/header.component.html + 224 + + + apps/client/src/app/pages/accounts/accounts-page.html + 4 + + + + Do you really want to delete this platform? + Do you really want to delete this platform? + + apps/client/src/app/components/admin-platform/admin-platform.component.ts + 78 + + + + Update platform + Update platform + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 2 + + + + Add platform + Add platform + + apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html + 3 + + + + Platforms + Platforms + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 4 + + + + Tags + Tags + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 10 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 270 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 320 + + + + Add Tag + Add Tag + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 11 + + + + Do you really want to delete this tag? + Do you really want to delete this tag? + + apps/client/src/app/components/admin-tag/admin-tag.component.ts + 78 + + + + Update tag + Update tag + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 2 + + + + Add tag + Add tag + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 3 + + + + Do you really want to delete this user? + Do you really want to delete this user? + + apps/client/src/app/components/admin-users/admin-users.component.ts + 112 + + + + User + User + + apps/client/src/app/components/admin-users/admin-users.html + 29 + + + + Registration + Registration + + apps/client/src/app/components/admin-users/admin-users.html + 82 + + + + Engagement per Day + Engagement per Day + + apps/client/src/app/components/admin-users/admin-users.html + 144 + + + + Last Request + Last Request + + apps/client/src/app/components/admin-users/admin-users.html + 169 + + + + Impersonate User + Impersonate User + + apps/client/src/app/components/admin-users/admin-users.html + 208 + + + + Delete User + Delete User + + apps/client/src/app/components/admin-users/admin-users.html + 218 + + + + Performance + Performance + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 6 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 59 + + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 119 + + + + Compare with... + Compare with... + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 19 + + + + Manage Benchmarks + Manage Benchmarks + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html + 36 + + + + Portfolio + Portfolio + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts + 109 + + + apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts + 47 + + + + Benchmark + Benchmark + + apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts + 118 + + + + Current Market Mood + Current Market Mood + + apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html + 12 + + + + Overview + Overview + + apps/client/src/app/components/header/header.component.html + 27 + + + apps/client/src/app/components/header/header.component.html + 206 + + + + Portfolio + Portfolio + + apps/client/src/app/components/header/header.component.html + 40 + + + apps/client/src/app/components/header/header.component.html + 216 + + + + Admin Control + Admin Control + + apps/client/src/app/components/header/header.component.html + 66 + + + apps/client/src/app/components/header/header.component.html + 240 + + + + Me + Me + + apps/client/src/app/components/header/header.component.html + 173 + + + + User + User + + apps/client/src/app/components/header/header.component.html + 192 + + + + My Ghostfolio + My Ghostfolio + + apps/client/src/app/components/header/header.component.html + 231 + + + + About Ghostfolio + About Ghostfolio + + apps/client/src/app/components/header/header.component.html + 271 + + + apps/client/src/app/pages/about/overview/about-overview-page.html + 5 + + + + Sign in + Sign in + + apps/client/src/app/components/header/header.component.html + 361 + + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 71 + + + + Get started + Get started + + apps/client/src/app/components/header/header.component.html + 373 + + + + Sign in + Sign in + + apps/client/src/app/components/header/header.component.ts + 169 + + + apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts + 6 + + + + Oops! Incorrect Security Token. + Oops! Incorrect Security Token. + + apps/client/src/app/components/header/header.component.ts + 183 + + + + Manage Activities + Manage Activities + + apps/client/src/app/components/home-holdings/home-holdings.html + 30 + + + apps/client/src/app/pages/portfolio/holdings/holdings-page.html + 31 + + + + Fear + Fear + + apps/client/src/app/components/home-market/home-market.component.ts + 24 + + + libs/ui/src/lib/i18n.ts + 65 + + + + Greed + Greed + + apps/client/src/app/components/home-market/home-market.component.ts + 25 + + + libs/ui/src/lib/i18n.ts + 66 + + + + Last Days + Last Days + + apps/client/src/app/components/home-market/home-market.html + 6 + + + + Welcome to Ghostfolio + Welcome to Ghostfolio + + apps/client/src/app/components/home-overview/home-overview.html + 9 + + + + Ready to take control of your personal finances? + Ready to take control of your personal finances? + + apps/client/src/app/components/home-overview/home-overview.html + 10 + + + + Setup your accounts + Setup your accounts + + apps/client/src/app/components/home-overview/home-overview.html + 17 + + + + Get a comprehensive financial overview by adding your bank and brokerage accounts. + Get a comprehensive financial overview by adding your bank and brokerage accounts. + + apps/client/src/app/components/home-overview/home-overview.html + 19 + + + + Capture your activities + Capture your activities + + apps/client/src/app/components/home-overview/home-overview.html + 26 + + + + Record your investment activities to keep your portfolio up to date. + Record your investment activities to keep your portfolio up to date. + + apps/client/src/app/components/home-overview/home-overview.html + 28 + + + + Monitor and analyze your portfolio + Monitor and analyze your portfolio + + apps/client/src/app/components/home-overview/home-overview.html + 35 + + + + Track your progress in real-time with comprehensive analysis and insights. + Track your progress in real-time with comprehensive analysis and insights. + + apps/client/src/app/components/home-overview/home-overview.html + 37 + + + + Setup accounts + Setup accounts + + apps/client/src/app/components/home-overview/home-overview.html + 50 + + + + Add activity + Add activity + + apps/client/src/app/components/home-overview/home-overview.html + 58 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 8 + + + + This feature requires a subscription. + This feature requires a subscription. + + apps/client/src/app/components/home-summary/home-summary.component.ts + 112 + + + apps/client/src/app/core/http-response.interceptor.ts + 67 + + + + Upgrade Plan + Upgrade Plan + + apps/client/src/app/components/home-summary/home-summary.component.ts + 114 + + + apps/client/src/app/core/http-response.interceptor.ts + 69 + + + + Summary + Summary + + apps/client/src/app/components/home-summary/home-summary.html + 2 + + + + Total Amount + Total Amount + + apps/client/src/app/components/investment-chart/investment-chart.component.ts + 182 + + + + Savings Rate + Savings Rate + + apps/client/src/app/components/investment-chart/investment-chart.component.ts + 248 + + + + Security Token + Security Token + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 11 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 10 + + + + or + or + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 31 + + + apps/client/src/app/pages/landing/landing-page.html + 435 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 98 + + + apps/client/src/app/pages/register/register-page.html + 29 + + + apps/client/src/app/pages/webauthn/webauthn-page.html + 28 + + + + Sign in with Internet Identity + Sign in with Internet Identity + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 42 + + + + Sign in with Google + Sign in with Google + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 52 + + + + Stay signed in + Stay signed in + + apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html + 61 + + + + Time in Market + Time in Market + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 3 + + + + + + + + + + + + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 12 + + + + {VAR_PLURAL, plural, =1 {transaction} other {transactions}} + {VAR_PLURAL, plural, =1 {transaction} other {transactions}} + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 13 + + + + Buy + Buy + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 21 + + + + Sell + Sell + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 33 + + + + Investment + Investment + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 48 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 126 + + + + Absolute Gross Performance + Absolute Gross Performance + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 60 + + + + Gross Performance + Gross Performance + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 72 + + + + Fees + Fees + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 87 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 148 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 150 + + + + Absolute Net Performance + Absolute Net Performance + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 103 + + + + Net Performance + Net Performance + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 115 + + + + Total Assets + Total Assets + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 131 + + + + Valuables + Valuables + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 144 + + + + Emergency Fund + Emergency Fund + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 156 + + + apps/client/src/app/pages/features/features-page.html + 89 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 111 + + + + Cash + Cash + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 177 + + + + Assets + Assets + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 190 + + + + Buying Power + Buying Power + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 203 + + + + Excluded from Analysis + Excluded from Analysis + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 215 + + + + Liabilities + Liabilities + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 230 + + + apps/client/src/app/pages/features/features-page.html + 102 + + + + Net Worth + Net Worth + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 250 + + + + Annualized Performance + Annualized Performance + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 262 + + + + Interest + Interest + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 280 + + + + Dividend + Dividend + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 292 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 137 + + + apps/client/src/app/pages/features/features-page.html + 63 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 166 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 222 + + + + Please enter the amount of your emergency fund: + Please enter the amount of your emergency fund: + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts + 52 + + + + Change + Change + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 48 + + + + Average Unit Price + Average Unit Price + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 70 + + + + Minimum Price + Minimum Price + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 93 + + + + Maximum Price + Maximum Price + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 105 + + + + Quantity + Quantity + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 115 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 153 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 230 + + + + Report Data Glitch + Report Data Glitch + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 287 + + + + Are you an ambitious investor who needs the full picture? + Are you an ambitious investor who needs the full picture? + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 15 + + + + Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: + Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 18 + + + + Portfolio Summary + Portfolio Summary + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 25 + + + apps/client/src/app/pages/pricing/pricing-page.html + 67 + + + apps/client/src/app/pages/pricing/pricing-page.html + 256 + + + + Portfolio Allocations + Portfolio Allocations + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 29 + + + apps/client/src/app/pages/features/features-page.html + 161 + + + apps/client/src/app/pages/pricing/pricing-page.html + 74 + + + apps/client/src/app/pages/pricing/pricing-page.html + 263 + + + + Performance Benchmarks + Performance Benchmarks + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 33 + + + apps/client/src/app/pages/pricing/pricing-page.html + 81 + + + apps/client/src/app/pages/pricing/pricing-page.html + 270 + + + + FIRE Calculator + FIRE Calculator + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 37 + + + apps/client/src/app/pages/pricing/pricing-page.html + 88 + + + apps/client/src/app/pages/pricing/pricing-page.html + 277 + + + + Professional Data Provider + Professional Data Provider + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 41 + + + apps/client/src/app/pages/pricing/pricing-page.html + 298 + + + + and more Features... + and more Features... + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 45 + + + apps/client/src/app/pages/pricing/pricing-page.html + 110 + + + apps/client/src/app/pages/pricing/pricing-page.html + 306 + + + + Get the tools to effectively manage your finances and refine your personal investment strategy. + Get the tools to effectively manage your finances and refine your personal investment strategy. + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 48 + + + + Skip + Skip + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 55 + + + + Upgrade Plan + Upgrade Plan + + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html + 62 + + + apps/client/src/app/pages/pricing/pricing-page.html + 343 + + + + Today + Today + + apps/client/src/app/components/toggle/toggle.component.ts + 21 + + + + YTD + YTD + + apps/client/src/app/components/toggle/toggle.component.ts + 22 + + + + 1Y + 1Y + + apps/client/src/app/components/toggle/toggle.component.ts + 23 + + + + 5Y + 5Y + + apps/client/src/app/components/toggle/toggle.component.ts + 24 + + + + Max + Max + + apps/client/src/app/components/toggle/toggle.component.ts + 25 + + + + Grant access + Grant access + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 + + + + Public + Public + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Granted Access + Granted Access + + apps/client/src/app/components/user-account-access/user-account-access.html + 5 + + + + Please enter your coupon code: + Please enter your coupon code: + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 + + + + Could not redeem coupon code + Could not redeem coupon code + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 + + + + Coupon code has been redeemed + Coupon code has been redeemed + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 + + + + Reload + Reload + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 + + + + Upgrade + Upgrade + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 + + + + Renew + Renew + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 21 + + + + per year + per year + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 33 + + + apps/client/src/app/pages/pricing/pricing-page.html + 332 + + + + Try Premium + Try Premium + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 42 + + + + Redeem Coupon + Redeem Coupon + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 55 + + + + Auto + Auto + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 31 + + + + Do you really want to remove this sign in method? + Do you really want to remove this sign in method? + + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 182 + + + + Settings + Settings + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + Presenter View + Presenter View + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 + + + + Protection for sensitive information like absolute performances and quantity values + Protection for sensitive information like absolute performances and quantity values + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8 + + + + Base Currency + Base Currency + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 27 + + + + Language + Language + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 48 + + + + Locale + Locale + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 95 + + + + Date and number format + Date and number format + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 97 + + + + Appearance + Appearance + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 118 + + + + Auto + Auto + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 130 + + + + Light + Light + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 131 + + + + Dark + Dark + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 132 + + + + Zen Mode + Zen Mode + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 141 + + + apps/client/src/app/pages/features/features-page.html + 192 + + + + Distraction-free experience for turbulent times + Distraction-free experience for turbulent times + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 142 + + + + Biometric Authentication + Biometric Authentication + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 158 + + + + Sign in with fingerprint + Sign in with fingerprint + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 159 + + + + Experimental Features + Experimental Features + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 176 + + + + Sneak peek at upcoming functionality + Sneak peek at upcoming functionality + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 177 + + + + User ID + User ID + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 192 + + + + Export Data + Export Data + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 199 + + + + This feature is currently unavailable. + This feature is currently unavailable. + + apps/client/src/app/core/http-response.interceptor.ts + 59 + + + + Please try again later. + Please try again later. + + apps/client/src/app/core/http-response.interceptor.ts + 61 + + + apps/client/src/app/core/http-response.interceptor.ts + 88 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 131 + + + + Oops! Something went wrong. + Oops! Something went wrong. + + apps/client/src/app/core/http-response.interceptor.ts + 86 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 129 + + + + Okay + Okay + + apps/client/src/app/core/http-response.interceptor.ts + 89 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 132 + + + + About + About + + apps/client/src/app/pages/about/about-page-routing.module.ts + 52 + + + apps/client/src/app/pages/about/about-page.component.ts + 43 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts + 12 + + + + Changelog + Changelog + + apps/client/src/app/pages/about/about-page.component.ts + 48 + + + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts + 12 + + + + License + License + + apps/client/src/app/pages/about/about-page.component.ts + 53 + + + apps/client/src/app/pages/about/license/license-page-routing.module.ts + 12 + + + + Privacy Policy + Privacy Policy + + apps/client/src/app/pages/about/about-page.component.ts + 61 + + + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts + 12 + + + + Our + Our + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 6 + + + + Discover other exciting Open Source Software projects + Discover other exciting Open Source Software projects + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 9 + + + + Visit + Visit + + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 28 + + + + Accounts + Accounts + + apps/client/src/app/pages/accounts/accounts-page-routing.module.ts + 12 + + + + Oops, cash balance transfer has failed. + Oops, cash balance transfer has failed. + + apps/client/src/app/pages/accounts/accounts-page.component.ts + 305 + + + + Update account + Update account + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 7 + + + + Add account + Add account + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 8 + + + + Account ID + Account ID + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 90 + + + + From + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + To + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 29 + + + + Transfer + Transfer + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 66 + + + + Admin Control + Admin Control + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 19 + + + + Jobs + Jobs + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 21 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 41 + + + + Market Data + Market Data + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 36 + + + + Settings + Settings + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 30 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 31 + + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + + + + Users + Users + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 35 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 46 + + + + Overview + Overview + + apps/client/src/app/pages/admin/admin-page.component.ts + 26 + + + apps/client/src/app/pages/home/home-page.component.ts + 33 + + + apps/client/src/app/pages/zen/zen-page-routing.module.ts + 18 + + + apps/client/src/app/pages/zen/zen-page.component.ts + 33 + + + + Blog + Blog + + apps/client/src/app/pages/blog/blog-page-routing.module.ts + 12 + + + + Discover the latest Ghostfolio updates and insights on personal finance + Discover the latest Ghostfolio updates and insights on personal finance + + apps/client/src/app/pages/blog/blog-page.html + 7 + + + + As you are already logged in, you cannot access the demo account. + As you are already logged in, you cannot access the demo account. + + apps/client/src/app/pages/demo/demo-page.component.ts + 31 + + + + Frequently Asked Questions (FAQ) + Frequently Asked Questions (FAQ) + + apps/client/src/app/pages/faq/faq-page-routing.module.ts + 12 + + + + Frequently Asked Questions (FAQ) + Frequently Asked Questions (FAQ) + + apps/client/src/app/pages/faq/faq-page.html + 4 + + + + Features + Features + + apps/client/src/app/pages/features/features-page-routing.module.ts + 12 + + + + Check out the numerous features of Ghostfolio to manage your wealth + Check out the numerous features of Ghostfolio to manage your wealth + + apps/client/src/app/pages/features/features-page.html + 6 + + + + Stocks + Stocks + + apps/client/src/app/pages/features/features-page.html + 15 + + + + ETFs + ETFs + + apps/client/src/app/pages/features/features-page.html + 25 + + + + Bonds + Bonds + + apps/client/src/app/pages/features/features-page.html + 38 + + + + Cryptocurrencies + Cryptocurrencies + + apps/client/src/app/pages/features/features-page.html + 51 + + + + Wealth Items + Wealth Items + + apps/client/src/app/pages/features/features-page.html + 76 + + + + Import and Export + Import and Export + + apps/client/src/app/pages/features/features-page.html + 115 + + + + Multi-Accounts + Multi-Accounts + + apps/client/src/app/pages/features/features-page.html + 127 + + + + Portfolio Calculations + Portfolio Calculations + + apps/client/src/app/pages/features/features-page.html + 141 + + + + Dark Mode + Dark Mode + + apps/client/src/app/pages/features/features-page.html + 179 + + + + Market Mood + Market Mood + + apps/client/src/app/pages/features/features-page.html + 209 + + + + Static Analysis + Static Analysis + + apps/client/src/app/pages/features/features-page.html + 227 + + + + Multi-Language + Multi-Language + + apps/client/src/app/pages/features/features-page.html + 245 + + + + Open Source Software + Open Source Software + + apps/client/src/app/pages/features/features-page.html + 279 + + + + Get Started + Get Started + + apps/client/src/app/pages/features/features-page.html + 299 + + + apps/client/src/app/pages/public/public-page.html + 152 + + + + Holdings + Holdings + + apps/client/src/app/pages/home/home-page-routing.module.ts + 22 + + + apps/client/src/app/pages/home/home-page.component.ts + 38 + + + apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts + 12 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 38 + + + apps/client/src/app/pages/zen/zen-page.component.ts + 38 + + + + Summary + Summary + + apps/client/src/app/pages/home/home-page-routing.module.ts + 27 + + + apps/client/src/app/pages/home/home-page.component.ts + 43 + + + + Markets + Markets + + apps/client/src/app/pages/home/home-page-routing.module.ts + 32 + + + apps/client/src/app/pages/home/home-page.component.ts + 48 + + + apps/client/src/app/pages/markets/markets-page-routing.module.ts + 12 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + + apps/client/src/app/pages/i18n/i18n-page.html + 4 + + + + app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 + app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 + + apps/client/src/app/pages/i18n/i18n-page.html + 8 + + + + Open Source Wealth Management Software + Open Source Wealth Management Software + + apps/client/src/app/pages/i18n/i18n-page.html + 12 + + + + New + New + + apps/client/src/app/pages/landing/landing-page.html + 7 + + + + Manage your wealth like a boss + Manage your wealth like a boss + + apps/client/src/app/pages/landing/landing-page.html + 11 + + + + Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions. + Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions. + + apps/client/src/app/pages/landing/landing-page.html + 15 + + + + Get Started + Get Started + + apps/client/src/app/pages/landing/landing-page.html + 47 + + + apps/client/src/app/pages/landing/landing-page.html + 431 + + + + or + or + + apps/client/src/app/pages/landing/landing-page.html + 52 + + + + Live Demo + Live Demo + + apps/client/src/app/pages/landing/landing-page.html + 55 + + + apps/client/src/app/pages/landing/landing-page.html + 436 + + + + Monthly Active Users + Monthly Active Users + + apps/client/src/app/pages/landing/landing-page.html + 75 + + + + Stars on GitHub + Stars on GitHub + + apps/client/src/app/pages/landing/landing-page.html + 93 + + + apps/client/src/app/pages/open/open-page.html + 103 + + + + Pulls on Docker Hub + Pulls on Docker Hub + + apps/client/src/app/pages/landing/landing-page.html + 111 + + + apps/client/src/app/pages/open/open-page.html + 117 + + + + As seen in + As seen in + + apps/client/src/app/pages/landing/landing-page.html + 119 + + + + Protect your assets. Refine your personal investment strategy. + Protect your assets. Refine your personal investment strategy. + + apps/client/src/app/pages/landing/landing-page.html + 221 + + + + Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. + Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. + + apps/client/src/app/pages/landing/landing-page.html + 225 + + + + 360° View + 360° View + + apps/client/src/app/pages/landing/landing-page.html + 236 + + + + Get the full picture of your personal finances across multiple platforms. + Get the full picture of your personal finances across multiple platforms. + + apps/client/src/app/pages/landing/landing-page.html + 238 + + + + Web3 Ready + Web3 Ready + + apps/client/src/app/pages/landing/landing-page.html + 247 + + + + Use Ghostfolio anonymously and own your financial data. + Use Ghostfolio anonymously and own your financial data. + + apps/client/src/app/pages/landing/landing-page.html + 249 + + + + Open Source + Open Source + + apps/client/src/app/pages/landing/landing-page.html + 257 + + + + Benefit from continuous improvements through a strong community. + Benefit from continuous improvements through a strong community. + + apps/client/src/app/pages/landing/landing-page.html + 259 + + + + Why Ghostfolio? + Why Ghostfolio? + + apps/client/src/app/pages/landing/landing-page.html + 268 + + + + Ghostfolio is for you if you are... + Ghostfolio is for you if you are... + + apps/client/src/app/pages/landing/landing-page.html + 269 + + + + trading stocks, ETFs or cryptocurrencies on multiple platforms + trading stocks, ETFs or cryptocurrencies on multiple platforms + + apps/client/src/app/pages/landing/landing-page.html + 276 + + + + pursuing a buy & hold strategy + pursuing a buy & hold strategy + + apps/client/src/app/pages/landing/landing-page.html + 282 + + + + interested in getting insights of your portfolio composition + interested in getting insights of your portfolio composition + + apps/client/src/app/pages/landing/landing-page.html + 287 + + + + valuing privacy and data ownership + valuing privacy and data ownership + + apps/client/src/app/pages/landing/landing-page.html + 292 + + + + into minimalism + into minimalism + + apps/client/src/app/pages/landing/landing-page.html + 295 + + + + caring about diversifying your financial resources + caring about diversifying your financial resources + + apps/client/src/app/pages/landing/landing-page.html + 299 + + + + interested in financial independence + interested in financial independence + + apps/client/src/app/pages/landing/landing-page.html + 303 + + + + saying no to spreadsheets in + saying no to spreadsheets in + + apps/client/src/app/pages/landing/landing-page.html + 307 + + + + still reading this list + still reading this list + + apps/client/src/app/pages/landing/landing-page.html + 310 + + + + Learn more about Ghostfolio + Learn more about Ghostfolio + + apps/client/src/app/pages/landing/landing-page.html + 315 + + + + What our users are saying + What our users are saying + + apps/client/src/app/pages/landing/landing-page.html + 323 + + + + Members from around the globe are using Ghostfolio Premium + Members from around the globe are using Ghostfolio Premium + + apps/client/src/app/pages/landing/landing-page.html + 358 + + + + How does Ghostfolio work? + How does Ghostfolio work? + + apps/client/src/app/pages/landing/landing-page.html + 373 + + + + Get started in only 3 steps + Get started in only 3 steps + + apps/client/src/app/pages/landing/landing-page.html + 376 + + + + Sign up anonymously* + Sign up anonymously* + + apps/client/src/app/pages/landing/landing-page.html + 382 + + + + * no e-mail address nor credit card required + * no e-mail address nor credit card required + + apps/client/src/app/pages/landing/landing-page.html + 384 + + + + Add any of your historical transactions + Add any of your historical transactions + + apps/client/src/app/pages/landing/landing-page.html + 395 + + + + Get valuable insights of your portfolio composition + Get valuable insights of your portfolio composition + + apps/client/src/app/pages/landing/landing-page.html + 407 + + + + Are you ready? + Are you ready? + + apps/client/src/app/pages/landing/landing-page.html + 419 + + + + Join now or check out the example account + Join now or check out the example account + + apps/client/src/app/pages/landing/landing-page.html + 420 + + + + At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. + At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. + + apps/client/src/app/pages/open/open-page.html + 6 + + + + (Last 24 hours) + (Last 24 hours) + + apps/client/src/app/pages/open/open-page.html + 37 + + + + Active Users + Active Users + + apps/client/src/app/pages/open/open-page.html + 40 + + + apps/client/src/app/pages/open/open-page.html + 62 + + + + (Last 30 days) + (Last 30 days) + + apps/client/src/app/pages/open/open-page.html + 48 + + + apps/client/src/app/pages/open/open-page.html + 59 + + + + New Users + New Users + + apps/client/src/app/pages/open/open-page.html + 51 + + + + Users in Slack community + Users in Slack community + + apps/client/src/app/pages/open/open-page.html + 75 + + + + Contributors on GitHub + Contributors on GitHub + + apps/client/src/app/pages/open/open-page.html + 89 + + + + (Last 90 days) + (Last 90 days) + + apps/client/src/app/pages/open/open-page.html + 127 + + + + Uptime + Uptime + + apps/client/src/app/pages/open/open-page.html + 132 + + + + Activities + Activities + + apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts + 12 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 43 + + + + Do you really want to delete all your activities? + Do you really want to delete all your activities? + + apps/client/src/app/pages/portfolio/activities/activities-page.component.ts + 140 + + + + Update activity + Update activity + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 7 + + + + Stocks, ETFs, bonds, cryptocurrencies, commodities + Stocks, ETFs, bonds, cryptocurrencies, commodities + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 21 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 51 + + + + One-time fee, annual account fees + One-time fee, annual account fees + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 27 + + + + Distribution of corporate earnings + Distribution of corporate earnings + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 33 + + + + Revenue for lending out money + Revenue for lending out money + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 39 + + + + Mortgages, personal loans, credit cards + Mortgages, personal loans, credit cards + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 45 + + + + Luxury items, real estate, private companies + Luxury items, real estate, private companies + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 57 + + + + Account + Account + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 387 + + + + Update Cash Balance + Update Cash Balance + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 94 + + + + Unit Price + Unit Price + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 173 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 228 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 259 + + + + Oops! Could not get the historical exchange rate from + 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 + 198 + + + + Fee + Fee + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 242 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 267 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 288 + + + + Oops! Could not get the historical exchange rate from + 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 + 258 + + + + Import Activities + Import Activities + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 40 + + + + Import Dividends + Import Dividends + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 79 + + + + Importing data... + Importing data... + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 113 + + + + Import has been completed + Import has been completed + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 121 + + + + Validating data... + Validating data... + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 224 + + + + Select Holding + Select Holding + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 20 + + + + Select File + Select File + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 23 + + + + Holding + Holding + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 33 + + + + Load Dividends + Load Dividends + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 65 + + + + Choose or drop a file here + Choose or drop a file here + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 85 + + + + The following file formats are supported: + The following file formats are supported: + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 91 + + + + Select Dividends + Select Dividends + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 114 + + + + Select Activities + Select Activities + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 117 + + + + Back + Back + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 141 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 178 + + + + Allocations + Allocations + + apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts + 12 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 48 + + + + Filter by account or tag... + Filter by account or tag... + + apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts + 146 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 126 + + + apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts + 86 + + + + Allocations + Allocations + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 4 + + + + Proportion of Net Worth + Proportion of Net Worth + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 18 + + + + By Platform + By Platform + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 42 + + + + By Currency + By Currency + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 61 + + + + By Asset Class + By Asset Class + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 84 + + + + By Holding + By Holding + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 107 + + + + By Sector + By Sector + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 130 + + + + By Continent + By Continent + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 154 + + + + By Market + By Market + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 177 + + + + Regions + Regions + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 201 + + + apps/client/src/app/pages/public/public-page.html + 76 + + + + Developed Markets + Developed Markets + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 224 + + + apps/client/src/app/pages/public/public-page.html + 93 + + + + Emerging Markets + Emerging Markets + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 233 + + + apps/client/src/app/pages/public/public-page.html + 102 + + + + Other Markets + Other Markets + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 242 + + + apps/client/src/app/pages/public/public-page.html + 111 + + + + No data available + No data available + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 254 + + + apps/client/src/app/pages/public/public-page.html + 123 + + + + By Account + By Account + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 266 + + + + By ETF Provider + By ETF Provider + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 286 + + + + By Country + By Country + + apps/client/src/app/pages/portfolio/allocations/allocations-page.html + 309 + + + + Analysis + Analysis + + apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts + 12 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 33 + + + + Dividend + Dividend + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 43 + + + libs/ui/src/lib/i18n.ts + 31 + + + + Deposit + Deposit + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 48 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 331 + + + + Monthly + Monthly + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 54 + + + + Yearly + Yearly + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 55 + + + + Analysis + Analysis + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 2 + + + + Top + Top + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 40 + + + + Bottom + Bottom + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 86 + + + + Portfolio Evolution + Portfolio Evolution + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 136 + + + + Investment Timeline + Investment Timeline + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 166 + + + + Current Streak + Current Streak + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 187 + + + + Longest Streak + Longest Streak + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 196 + + + + Dividend Timeline + Dividend Timeline + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 223 + + + + FIRE + FIRE + + apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts + 12 + + + + FIRE + FIRE + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 4 + + + + Calculator + Calculator + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 7 + + + + 4% Rule + 4% Rule + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 34 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 57 + + + + Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. + Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 100 + + + + Currency Cluster Risks + Currency Cluster Risks + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 124 + + + + Account Cluster Risks + Account Cluster Risks + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 137 + + + + Holdings + Holdings + + apps/client/src/app/pages/portfolio/holdings/holdings-page.html + 4 + + + apps/client/src/app/pages/public/public-page.html + 14 + + + libs/ui/src/lib/assistant/assistant.html + 46 + + + + Pricing + Pricing + + apps/client/src/app/pages/pricing/pricing-page-routing.module.ts + 12 + + + + Pricing Plans + Pricing Plans + + apps/client/src/app/pages/pricing/pricing-page.html + 4 + + + + Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover the costs of the hosting infrastructure and to fund ongoing development. + Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover the costs of the hosting infrastructure and to fund ongoing development. + + apps/client/src/app/pages/pricing/pricing-page.html + 6 + + + + If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. + If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. + + apps/client/src/app/pages/pricing/pricing-page.html + 24 + + + + For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure. + For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure. + + apps/client/src/app/pages/pricing/pricing-page.html + 36 + + + + Unlimited Transactions + Unlimited Transactions + + apps/client/src/app/pages/pricing/pricing-page.html + 46 + + + apps/client/src/app/pages/pricing/pricing-page.html + 159 + + + apps/client/src/app/pages/pricing/pricing-page.html + 235 + + + + Unlimited Accounts + Unlimited Accounts + + apps/client/src/app/pages/pricing/pricing-page.html + 53 + + + apps/client/src/app/pages/pricing/pricing-page.html + 166 + + + apps/client/src/app/pages/pricing/pricing-page.html + 242 + + + + Portfolio Performance + Portfolio Performance + + apps/client/src/app/pages/pricing/pricing-page.html + 60 + + + apps/client/src/app/pages/pricing/pricing-page.html + 173 + + + apps/client/src/app/pages/pricing/pricing-page.html + 249 + + + + Data Import and Export + Data Import and Export + + apps/client/src/app/pages/pricing/pricing-page.html + 95 + + + apps/client/src/app/pages/pricing/pricing-page.html + 180 + + + apps/client/src/app/pages/pricing/pricing-page.html + 284 + + + + Community Support + Community Support + + apps/client/src/app/pages/pricing/pricing-page.html + 118 + + + + Self-hosted, update manually. + Self-hosted, update manually. + + apps/client/src/app/pages/pricing/pricing-page.html + 122 + + + + Free + Free + + apps/client/src/app/pages/pricing/pricing-page.html + 123 + + + apps/client/src/app/pages/pricing/pricing-page.html + 192 + + + + For new investors who are just getting started with trading. + For new investors who are just getting started with trading. + + apps/client/src/app/pages/pricing/pricing-page.html + 150 + + + + Fully managed Ghostfolio cloud offering. + Fully managed Ghostfolio cloud offering. + + apps/client/src/app/pages/pricing/pricing-page.html + 191 + + + apps/client/src/app/pages/pricing/pricing-page.html + 318 + + + + For ambitious investors who need the full picture of their financial assets. + For ambitious investors who need the full picture of their financial assets. + + apps/client/src/app/pages/pricing/pricing-page.html + 225 + + + + Email and Chat Support + Email and Chat Support + + apps/client/src/app/pages/pricing/pricing-page.html + 314 + + + + Renew Plan + Renew Plan + + apps/client/src/app/pages/pricing/pricing-page.html + 348 + + + + One-time payment, no auto-renewal. + One-time payment, no auto-renewal. + + apps/client/src/app/pages/pricing/pricing-page.html + 352 + + + + Get Started + Get Started + + apps/client/src/app/pages/pricing/pricing-page.html + 363 + + + + It’s free. + It’s free. + + apps/client/src/app/pages/pricing/pricing-page.html + 366 + + + + Hello, has shared a Portfolio with you! + Hello, has shared a Portfolio with you! + + apps/client/src/app/pages/public/public-page.html + 4 + + + + Currencies + Currencies + + apps/client/src/app/pages/public/public-page.html + 30 + + + + Continents + Continents + + apps/client/src/app/pages/public/public-page.html + 60 + + + + Ghostfolio empowers you to keep track of your wealth. + Ghostfolio empowers you to keep track of your wealth. + + apps/client/src/app/pages/public/public-page.html + 147 + + + + Registration + Registration + + apps/client/src/app/pages/register/register-page-routing.module.ts + 12 + + + + Continue with Internet Identity + Continue with Internet Identity + + apps/client/src/app/pages/register/register-page.html + 41 + + + + Continue with Google + Continue with Google + + apps/client/src/app/pages/register/register-page.html + 51 + + + + Copy to clipboard + Copy to clipboard + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 26 + + + + I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. + I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 31 + + + + Agree and continue + Agree and continue + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 44 + + + + Personal Finance Tools + Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 13 + + + + open-source-alternative-to + open-source-alternative-to + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 22 + + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts + 13 + + + + Open Source Alternative to + Open Source Alternative to + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts + 25 + + + + Discover Open Source Alternatives for Personal Finance Tools + Discover Open Source Alternatives for Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 4 + + + + This overview page features a curated collection of personal finance tools compared to the open source alternative Ghostfolio. If you value transparency, data privacy, and community collaboration, Ghostfolio provides an excellent opportunity to take control of your financial management. + This overview page features a curated collection of personal finance tools compared to the open source alternative Ghostfolio. If you value transparency, data privacy, and community collaboration, Ghostfolio provides an excellent opportunity to take control of your financial management. + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 8 + + + + Explore the links below to compare a variety of personal finance tools with Ghostfolio. + Explore the links below to compare a variety of personal finance tools with Ghostfolio. + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 16 + + + + Open Source Alternative to + Open Source Alternative to + + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html + 35 + + + + The Open Source Alternative to + The Open Source Alternative to + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + + Ghostfolio vs comparison table + Ghostfolio vs comparison table + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + + Founded + Founded + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + + Origin + Origin + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + + Region + Region + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + + Available in + Available in + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + + ✅ Yes + ✅ Yes + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + + ❌ No + ❌ No + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + + ❌ No + ❌ No + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + + Use anonymously + Use anonymously + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + + Free Plan + Free Plan + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + + Starting from / year + Starting from / year + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 184 + + + + Starting from / year + Starting from / year + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 189 + + + + Notes + Notes + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 195 + + + + Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. + Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 203 + + + + Ready to take your investments to the next level? + Ready to take your investments to the next level? + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 216 + + + + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220 + + + + Get Started + Get Started + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 225 + + + + Personal Finance Tools + Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 292 + + + + Switzerland + Switzerland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 64 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 86 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 465 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 498 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 499 + + + + Global + Global + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 66 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 408 + + + + United States + United States + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 135 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 168 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 188 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 240 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 262 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 273 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 298 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 300 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 310 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 375 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 385 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 395 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 476 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 509 + + + + France + France + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 105 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 428 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 444 + + + + Poland + Poland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 115 + + + + Germany + Germany + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 124 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 158 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 220 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 230 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 251 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 285 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 331 + + + + Belgium + Belgium + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 147 + + + + South Africa + South Africa + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 197 + + + + Austria + Austria + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 208 + + + + Italy + Italy + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 342 + + + + Netherlands + Netherlands + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 352 + + + + Thailand + Thailand + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 364 + + + + New Zealand + New Zealand + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 406 + + + + Czech Republic + Czech Republic + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 417 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 454 + + + + Finland + Finland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 436 + + + + Canada + Canada + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 488 + + + + Resources + Resources + + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 12 + + + + Guides + Guides + + apps/client/src/app/pages/resources/resources-page.html + 5 + + + + Glossary + Glossary + + apps/client/src/app/pages/resources/resources-page.html + 75 + + + + Membership + Membership + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Access + Access + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + My Ghostfolio + My Ghostfolio + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 32 + + + + Oops, authentication has failed. + Oops, authentication has failed. + + apps/client/src/app/pages/webauthn/webauthn-page.html + 18 + + + + Try again + Try again + + apps/client/src/app/pages/webauthn/webauthn-page.html + 26 + + + + Go back to Home Page + Go back to Home Page + + apps/client/src/app/pages/webauthn/webauthn-page.html + 30 + + + + Import Activities + Import Activities + + libs/ui/src/lib/activities-table/activities-table.component.html + 16 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 453 + + + + Import Dividends + Import Dividends + + libs/ui/src/lib/activities-table/activities-table.component.html + 35 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 464 + + + + Export Activities + Export Activities + + libs/ui/src/lib/activities-table/activities-table.component.html + 47 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 476 + + + + Export Drafts as ICS + Export Drafts as ICS + + libs/ui/src/lib/activities-table/activities-table.component.html + 59 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 488 + + + + Delete all Activities + Delete all Activities + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + + Draft + Draft + + libs/ui/src/lib/activities-table/activities-table.component.html + 189 + + + + Clone + Clone + + libs/ui/src/lib/activities-table/activities-table.component.html + 513 + + + + Export Draft as ICS + Export Draft as ICS + + libs/ui/src/lib/activities-table/activities-table.component.html + 523 + + + + Do you really want to delete this activity? + Do you really want to delete this activity? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 227 + + + + Filter by account, currency, symbol or type... + Filter by account, currency, symbol or type... + + libs/ui/src/lib/activities-table/activities-table.component.ts + 427 + + + + Find holding... + Find holding... + + libs/ui/src/lib/assistant/assistant.component.ts + 89 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profiles + Asset Profiles + + libs/ui/src/lib/assistant/assistant.html + 67 + + + + Index + Index + + libs/ui/src/lib/benchmark/benchmark.component.html + 3 + + + + Last All Time High + Last All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + Change from All Time High + Change from All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 31 + + + + from ATH + from ATH + + libs/ui/src/lib/benchmark/benchmark.component.html + 33 + + + + Market data provided by + Market data provided by + + libs/ui/src/lib/data-provider-credits/data-provider-credits.component.html + 2 + + + + Savings Rate per Month + Savings Rate per Month + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 10 + + + + Annual Interest Rate + Annual Interest Rate + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 21 + + + + Retirement Date + Retirement Date + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 32 + + + + Projected Total Amount + Projected Total Amount + + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 60 + + + + Interest + Interest + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 341 + + + libs/ui/src/lib/i18n.ts + 33 + + + + Savings + Savings + + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 351 + + + + Allocation + Allocation + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 98 + + + + Show all + Show all + + libs/ui/src/lib/holdings-table/holdings-table.component.html + 172 + + + + Account + Account + + libs/ui/src/lib/i18n.ts + 4 + + + + Asia-Pacific + Asia-Pacific + + libs/ui/src/lib/i18n.ts + 5 + + + + Asset Class + Asset Class + + libs/ui/src/lib/i18n.ts + 6 + + + + Asset Sub Class + Asset Sub Class + + libs/ui/src/lib/i18n.ts + 7 + + + + Core + Core + + libs/ui/src/lib/i18n.ts + 8 + + + + Switch to Ghostfolio Premium or Ghostfolio Open Source easily + Switch to Ghostfolio Premium or Ghostfolio Open Source easily + + libs/ui/src/lib/i18n.ts + 9 + + + + Switch to Ghostfolio Premium easily + Switch to Ghostfolio Premium easily + + libs/ui/src/lib/i18n.ts + 10 + + + + Switch to Ghostfolio Open Source or Ghostfolio Basic easily + Switch to Ghostfolio Open Source or Ghostfolio Basic easily + + libs/ui/src/lib/i18n.ts + 11 + + + + Emergency Fund + Emergency Fund + + libs/ui/src/lib/i18n.ts + 12 + + + + Grant + Grant + + libs/ui/src/lib/i18n.ts + 13 + + + + Higher Risk + Higher Risk + + libs/ui/src/lib/i18n.ts + 14 + + + + This activity already exists. + This activity already exists. + + libs/ui/src/lib/i18n.ts + 15 + + + + Japan + Japan + + libs/ui/src/lib/i18n.ts + 16 + + + + Lower Risk + Lower Risk + + libs/ui/src/lib/i18n.ts + 17 + + + + Month + Month + + libs/ui/src/lib/i18n.ts + 18 + + + + Months + Months + + libs/ui/src/lib/i18n.ts + 19 + + + + Other + Other + + libs/ui/src/lib/i18n.ts + 20 + + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 384 + + + + Preset + Preset + + libs/ui/src/lib/i18n.ts + 21 + + + + Retirement Provision + Retirement Provision + + libs/ui/src/lib/i18n.ts + 22 + + + + Satellite + Satellite + + libs/ui/src/lib/i18n.ts + 23 + + + + Symbol + Symbol + + libs/ui/src/lib/i18n.ts + 24 + + + + Tag + Tag + + libs/ui/src/lib/i18n.ts + 25 + + + + Year + Year + + libs/ui/src/lib/i18n.ts + 26 + + + + Years + Years + + libs/ui/src/lib/i18n.ts + 27 + + + + Buy + Buy + + libs/ui/src/lib/i18n.ts + 30 + + + + Fee + Fee + + libs/ui/src/lib/i18n.ts + 32 + + + + Valuable + Valuable + + libs/ui/src/lib/i18n.ts + 34 + + + + Liability + Liability + + libs/ui/src/lib/i18n.ts + 35 + + + + Sell + Sell + + libs/ui/src/lib/i18n.ts + 36 + + + + Cash + Cash + + libs/ui/src/lib/i18n.ts + 39 + + + + Commodity + Commodity + + libs/ui/src/lib/i18n.ts + 40 + + + + Equity + Equity + + libs/ui/src/lib/i18n.ts + 41 + + + + Fixed Income + Fixed Income + + libs/ui/src/lib/i18n.ts + 42 + + + + Real Estate + Real Estate + + libs/ui/src/lib/i18n.ts + 43 + + + + Bond + Bond + + libs/ui/src/lib/i18n.ts + 46 + + + + Cryptocurrency + Cryptocurrency + + libs/ui/src/lib/i18n.ts + 47 + + + + ETF + ETF + + libs/ui/src/lib/i18n.ts + 48 + + + + Mutual Fund + Mutual Fund + + libs/ui/src/lib/i18n.ts + 49 + + + + Precious Metal + Precious Metal + + libs/ui/src/lib/i18n.ts + 50 + + + + Private Equity + Private Equity + + libs/ui/src/lib/i18n.ts + 51 + + + + Stock + Stock + + libs/ui/src/lib/i18n.ts + 52 + + + + Africa + Africa + + libs/ui/src/lib/i18n.ts + 55 + + + + Asia + Asia + + libs/ui/src/lib/i18n.ts + 56 + + + + Europe + Europe + + libs/ui/src/lib/i18n.ts + 57 + + + + North America + North America + + libs/ui/src/lib/i18n.ts + 58 + + + + Oceania + Oceania + + libs/ui/src/lib/i18n.ts + 59 + + + + South America + South America + + libs/ui/src/lib/i18n.ts + 60 + + + + Extreme Fear + Extreme Fear + + libs/ui/src/lib/i18n.ts + 63 + + + + Extreme Greed + Extreme Greed + + libs/ui/src/lib/i18n.ts + 64 + + + + Neutral + Neutral + + libs/ui/src/lib/i18n.ts + 67 + + + + Membership + Membership + + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + + Valid until + Valid until + + libs/ui/src/lib/membership-card/membership-card.component.html + 22 + + + + Time to add your first activity. + Time to add your first activity. + + libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html + 12 + + + + No data available + No data available + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 386 + + + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 399 + + + + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 8f4fbb6ac..ad7b745a7 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -6,7 +6,7 @@ O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo. apps/client/src/app/app.component.html - 174 + 179 @@ -2033,7 +2033,7 @@ Deseja realmente remover este método de início de sessão? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 181 + 182 @@ -2133,7 +2133,7 @@ Localidade apps/client/src/app/components/user-account-settings/user-account-settings.html - 91 + 95 @@ -2141,7 +2141,7 @@ Formato de números e datas apps/client/src/app/components/user-account-settings/user-account-settings.html - 93 + 97 @@ -2149,7 +2149,7 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 137 + 141 apps/client/src/app/pages/features/features-page.html @@ -2161,7 +2161,7 @@ Aparência apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 118 @@ -2169,7 +2169,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 126 + 130 @@ -2177,7 +2177,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 131 @@ -2185,7 +2185,7 @@ Escuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 128 + 132 @@ -2193,7 +2193,7 @@ Iniciar sessão com impressão digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 155 + 159 @@ -2201,7 +2201,7 @@ Funcionalidades Experimentais apps/client/src/app/components/user-account-settings/user-account-settings.html - 172 + 176 @@ -2209,7 +2209,7 @@ ID do Utilizador apps/client/src/app/components/user-account-settings/user-account-settings.html - 188 + 192 @@ -2909,7 +2909,7 @@ Começar apps/client/src/app/pages/features/features-page.html - 298 + 299 apps/client/src/app/pages/public/public-page.html @@ -3423,9 +3423,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 82 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -3605,7 +3609,7 @@ Experiência sem distrações para tempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html - 138 + 142 @@ -3613,7 +3617,7 @@ Acesso antecipado a funcionalidades futuras apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 @@ -4445,7 +4449,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -9113,7 +9117,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 154 + 158 @@ -9197,7 +9201,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 199 @@ -12834,4 +12838,4 @@ - + \ No newline at end of file diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 42fe3593a..46a3d3300 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -1300,9 +1300,13 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 82 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + apps/client/src/app/pages/features/features-page.html - 259 + 260 @@ -1310,7 +1314,7 @@ Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez. apps/client/src/app/app.component.html - 174 + 179 @@ -3713,7 +3717,7 @@ Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 137 + 141 apps/client/src/app/pages/features/features-page.html @@ -3749,7 +3753,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 @@ -3757,7 +3761,7 @@ Get Started apps/client/src/app/pages/features/features-page.html - 298 + 299 apps/client/src/app/pages/public/public-page.html @@ -11413,7 +11417,7 @@ Do you really want to remove this sign in method? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 181 + 182 @@ -11513,7 +11517,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 91 + 95 @@ -11521,7 +11525,7 @@ Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 93 + 97 @@ -11529,7 +11533,7 @@ Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 118 @@ -11537,7 +11541,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 126 + 130 @@ -11545,7 +11549,7 @@ Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 131 @@ -11553,7 +11557,7 @@ Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 128 + 132 @@ -11561,7 +11565,7 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 138 + 142 @@ -11569,7 +11573,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 154 + 158 @@ -11577,7 +11581,7 @@ Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 155 + 159 @@ -11585,7 +11589,7 @@ Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 172 + 176 @@ -11593,7 +11597,7 @@ Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 @@ -11601,7 +11605,7 @@ User ID apps/client/src/app/components/user-account-settings/user-account-settings.html - 188 + 192 @@ -11609,7 +11613,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 199 @@ -12834,4 +12838,4 @@ - + \ No newline at end of file diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 4df1111f0..711d55ff7 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -1280,16 +1280,20 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html 82 + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 86 + apps/client/src/app/pages/features/features-page.html - 259 + 260 The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 174 + 179 @@ -3477,7 +3481,7 @@ Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 137 + 141 apps/client/src/app/pages/features/features-page.html @@ -3509,14 +3513,14 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 278 + 279 Get Started apps/client/src/app/pages/features/features-page.html - 298 + 299 apps/client/src/app/pages/public/public-page.html @@ -11021,7 +11025,7 @@ Do you really want to remove this sign in method? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 181 + 182 @@ -11098,91 +11102,91 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 91 + 95 Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 93 + 97 Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 114 + 118 Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 126 + 130 Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 127 + 131 Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 128 + 132 Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 138 + 142 Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 154 + 158 Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 155 + 159 Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 172 + 176 Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 173 + 177 User ID apps/client/src/app/components/user-account-settings/user-account-settings.html - 188 + 192 Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 195 + 199 @@ -12250,4 +12254,4 @@ - + \ No newline at end of file diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index 0313434bf..b8369d60a 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -101,6 +101,7 @@ export const SUPPORTED_LANGUAGE_CODES = [ 'fr', 'it', 'nl', + 'pl', 'pt', 'tr' ]; diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 5b124c732..f9bf53005 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -10,7 +10,7 @@ import { parseISO, subDays } from 'date-fns'; -import { de, es, fr, it, nl, pt, tr } from 'date-fns/locale'; +import { de, es, fr, it, nl, pl, pt, tr } from 'date-fns/locale'; import { ghostfolioScraperApiSymbolPrefix, locale } from './config'; import { Benchmark, UniqueAsset } from './interfaces'; @@ -106,6 +106,8 @@ export function getDateFnsLocale(aLanguageCode: string) { return it; } else if (aLanguageCode === 'nl') { return nl; + } else if (aLanguageCode === 'pl') { + return pl; } else if (aLanguageCode === 'pt') { return pt; } else if (aLanguageCode === 'tr') { From 913ca71aa56820c134f4875eb23a5d71199ed24e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 13 Nov 2023 20:40:25 +0100 Subject: [PATCH 03/19] Feature/upgrade prettier to version 3.1.0 (#2649) * Upgrade prettier to version 3.1.0 * Update changelog --- CHANGELOG.md | 1 + package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3db4addc3..97e1c74ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the language localization for German (`de`) - Upgraded `ng-extract-i18n-merge` from version `2.7.0` to `2.8.3` +- Upgraded `prettier` from version `3.0.3` to `3.1.0` ## 2.22.0 - 2023-11-11 diff --git a/package.json b/package.json index a7d7cd90b..c229c1da9 100644 --- a/package.json +++ b/package.json @@ -177,7 +177,7 @@ "codelyzer": "6.0.1", "cypress": "6.2.1", "eslint": "8.33.0", - "eslint-config-prettier": "8.6.0", + "eslint-config-prettier": "9.0.0", "eslint-plugin-cypress": "2.14.0", "eslint-plugin-import": "2.27.5", "eslint-plugin-storybook": "0.6.12", @@ -188,7 +188,7 @@ "jest-environment-jsdom": "29.4.3", "jest-preset-angular": "13.1.1", "nx": "17.0.2", - "prettier": "3.0.3", + "prettier": "3.1.0", "prettier-plugin-organize-attributes": "1.0.0", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/yarn.lock b/yarn.lock index a70ef8e84..314013037 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10214,10 +10214,10 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" - integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== +eslint-config-prettier@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== eslint-import-resolver-node@^0.3.7: version "0.3.9" @@ -15901,10 +15901,10 @@ prettier-plugin-organize-attributes@1.0.0: resolved "https://registry.yarnpkg.com/prettier-plugin-organize-attributes/-/prettier-plugin-organize-attributes-1.0.0.tgz#037870ee3111b3c1d6371f677b64888de353cc63" integrity sha512-+NmameaLxbCcylEXsKPmawtzla5EE6ECqvGkpfQz4KM847fXDifB1gFnPQEpoADAq6IXg+cMI8Z0ISJEXa6fhg== -prettier@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== +prettier@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== prettier@^2.8.0: version "2.8.8" From d155ab6f28935b2f4b0f36f8f49339ad382f752b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 14 Nov 2023 19:15:57 +0100 Subject: [PATCH 04/19] Feature/improve data source validation in activities import (#2645) * Improve data source validation * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/import/import.service.ts | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97e1c74ce..559748b1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the data source validation in the activities import - Improved the language localization for German (`de`) - Upgraded `ng-extract-i18n-merge` from version `2.7.0` to `2.8.3` - Upgraded `prettier` from version `3.0.3` to `3.1.0` diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 96cceff54..eb556421d 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -8,6 +8,7 @@ import { import { OrderService } from '@ghostfolio/api/app/order/order.service'; import { PlatformService } from '@ghostfolio/api/app/platform/platform.service'; import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service'; +import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { DataGatheringService } from '@ghostfolio/api/services/data-gathering/data-gathering.service'; import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; @@ -33,6 +34,7 @@ import { v4 as uuidv4 } from 'uuid'; export class ImportService { public constructor( private readonly accountService: AccountService, + private readonly configurationService: ConfigurationService, private readonly dataGatheringService: DataGatheringService, private readonly dataProviderService: DataProviderService, private readonly exchangeRateDataService: ExchangeRateDataService, @@ -570,6 +572,12 @@ export class ImportService { index, { currency, dataSource, symbol } ] of uniqueActivitiesDto.entries()) { + if (!this.configurationService.get('DATA_SOURCES').includes(dataSource)) { + throw new Error( + `activities.${index}.dataSource ("${dataSource}") is not valid` + ); + } + if (dataSource !== 'MANUAL') { const assetProfile = ( await this.dataProviderService.getAssetProfiles([ From aa72287d54e6587ed08887ff687d0ae750d44e4f Mon Sep 17 00:00:00 2001 From: Aldrin <53973174+Dhoni77@users.noreply.github.com> Date: Thu, 16 Nov 2023 00:55:16 +0530 Subject: [PATCH 05/19] Extend benchmarks in the markets overview by 50-Day and 200-Day trends (#2575) * Extend benchmarks in the markets overview by 50-Day and 200-Day trends * Update changelog --------- Co-authored-by: Thomas <4159106+dtslvr@users.noreply.github.com> --- CHANGELOG.md | 5 +- .../src/app/benchmark/benchmark.service.ts | 58 ++++++++++++++++--- .../market-data/market-data.service.ts | 4 +- .../components/home-market/home-market.html | 1 + .../position/position.component.html | 1 + libs/common/src/lib/helper.ts | 57 +++++++++++++++++- .../src/lib/interfaces/benchmark.interface.ts | 4 ++ .../src/lib/types/benchmark-trend.type.ts | 1 + libs/common/src/lib/types/index.ts | 2 + .../lib/benchmark/benchmark.component.html | 53 ++++++++++++++++- .../src/lib/benchmark/benchmark.component.ts | 15 +++-- libs/ui/src/lib/benchmark/benchmark.module.ts | 2 + .../trend-indicator.component.html | 10 ++-- .../trend-indicator.component.ts | 1 + 14 files changed, 190 insertions(+), 24 deletions(-) create mode 100644 libs/common/src/lib/types/benchmark-trend.type.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 559748b1a..9dd09672b 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 ### Added +- Extended the benchmarks in the markets overview by 50-Day and 200-Day trends (experimental) - Set up the language localization for Polski (`pl`) ### Changed @@ -197,7 +198,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added support to transfer a part of the cash balance from one to another account -- Extended the markets overview by benchmarks (date of last all time high) +- Extended the benchmarks in the markets overview by the date of the last all time high - Added support to import historical market data in the admin control panel ### Changed @@ -2437,7 +2438,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added the _Ghostfolio_ trailer to the landing page -- Extended the markets overview by benchmarks (current change to the all time high) +- Extended the benchmarks in the markets overview by the current change to the all time high ## 1.151.0 - 24.05.2022 diff --git a/apps/api/src/app/benchmark/benchmark.service.ts b/apps/api/src/app/benchmark/benchmark.service.ts index 2547e57cc..1f143fa2e 100644 --- a/apps/api/src/app/benchmark/benchmark.service.ts +++ b/apps/api/src/app/benchmark/benchmark.service.ts @@ -9,17 +9,21 @@ import { MAX_CHART_ITEMS, PROPERTY_BENCHMARKS } from '@ghostfolio/common/config'; -import { DATE_FORMAT } from '@ghostfolio/common/helper'; +import { + DATE_FORMAT, + calculateBenchmarkTrend +} from '@ghostfolio/common/helper'; import { BenchmarkMarketDataDetails, BenchmarkProperty, BenchmarkResponse, UniqueAsset } from '@ghostfolio/common/interfaces'; +import { BenchmarkTrend } from '@ghostfolio/common/types'; import { Injectable } from '@nestjs/common'; import { SymbolProfile } from '@prisma/client'; import Big from 'big.js'; -import { format } from 'date-fns'; +import { format, subDays } from 'date-fns'; import { uniqBy } from 'lodash'; import ms from 'ms'; @@ -45,6 +49,30 @@ export class BenchmarkService { return 0; } + public async getBenchmarkTrends({ dataSource, symbol }: UniqueAsset) { + const historicalData = await this.marketDataService.marketDataItems({ + orderBy: { + date: 'desc' + }, + where: { + dataSource, + symbol, + date: { gte: subDays(new Date(), 400) } + } + }); + + const fiftyDayAverage = calculateBenchmarkTrend({ + historicalData, + days: 50 + }); + const twoHundredDayAverage = calculateBenchmarkTrend({ + historicalData, + days: 200 + }); + + return { trend50d: fiftyDayAverage, trend200d: twoHundredDayAverage }; + } + public async getBenchmarks({ useCache = true } = {}): Promise< BenchmarkResponse['benchmarks'] > { @@ -64,7 +92,12 @@ export class BenchmarkService { const benchmarkAssetProfiles = await this.getBenchmarkAssetProfiles(); - const promises: Promise<{ date: Date; marketPrice: number }>[] = []; + const promisesAllTimeHighs: Promise<{ date: Date; marketPrice: number }>[] = + []; + const promisesBenchmarkTrends: Promise<{ + trend50d: BenchmarkTrend; + trend200d: BenchmarkTrend; + }>[] = []; const quotes = await this.dataProviderService.getQuotes({ items: benchmarkAssetProfiles.map(({ dataSource, symbol }) => { @@ -73,10 +106,18 @@ export class BenchmarkService { }); for (const { dataSource, symbol } of benchmarkAssetProfiles) { - promises.push(this.marketDataService.getMax({ dataSource, symbol })); + promisesAllTimeHighs.push( + this.marketDataService.getMax({ dataSource, symbol }) + ); + promisesBenchmarkTrends.push( + this.getBenchmarkTrends({ dataSource, symbol }) + ); } - const allTimeHighs = await Promise.all(promises); + const [allTimeHighs, benchmarkTrends] = await Promise.all([ + Promise.all(promisesAllTimeHighs), + Promise.all(promisesBenchmarkTrends) + ]); let storeInCache = true; benchmarks = allTimeHighs.map((allTimeHigh, index) => { @@ -93,6 +134,7 @@ export class BenchmarkService { } else { storeInCache = false; } + return { marketCondition: this.getMarketCondition( performancePercentFromAllTimeHigh @@ -100,10 +142,12 @@ export class BenchmarkService { name: benchmarkAssetProfiles[index].name, performances: { allTimeHigh: { - date: allTimeHigh.date, + date: allTimeHigh?.date, performancePercent: performancePercentFromAllTimeHigh } - } + }, + trend50d: benchmarkTrends[index].trend50d, + trend200d: benchmarkTrends[index].trend200d }; }); diff --git a/apps/api/src/services/market-data/market-data.service.ts b/apps/api/src/services/market-data/market-data.service.ts index 52c833784..01f8bb9aa 100644 --- a/apps/api/src/services/market-data/market-data.service.ts +++ b/apps/api/src/services/market-data/market-data.service.ts @@ -90,15 +90,17 @@ export class MarketDataService { } public async marketDataItems(params: { + select?: Prisma.MarketDataSelectScalar; skip?: number; take?: number; cursor?: Prisma.MarketDataWhereUniqueInput; where?: Prisma.MarketDataWhereInput; orderBy?: Prisma.MarketDataOrderByWithRelationInput; }): Promise { - const { skip, take, cursor, where, orderBy } = params; + const { select, skip, take, cursor, where, orderBy } = params; return this.prismaService.marketData.findMany({ + select, cursor, orderBy, skip, 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 7ce07b6e9..46c8f1d59 100644 --- a/apps/client/src/app/components/home-market/home-market.html +++ b/apps/client/src/app/components/home-market/home-market.html @@ -31,6 +31,7 @@ = 2 * days; + + if (!hasEnoughData) { + return 'UNKNOWN'; + } + + const recentPeriodAverage = calculateMovingAverage({ + days, + prices: historicalData.slice(0, days).map(({ marketPrice }) => { + return new Big(marketPrice); + }) + }); + + const pastPeriodAverage = calculateMovingAverage({ + days, + prices: historicalData.slice(days, 2 * days).map(({ marketPrice }) => { + return new Big(marketPrice); + }) + }); + + if (recentPeriodAverage > pastPeriodAverage) { + return 'UP'; + } + + if (recentPeriodAverage < pastPeriodAverage) { + return 'DOWN'; + } + + return 'NEUTRAL'; +} + +export function calculateMovingAverage({ + days, + prices +}: { + days: number; + prices: Big[]; +}) { + return prices + .reduce((previous, current) => { + return previous.add(current); + }, new Big(0)) + .div(days) + .toNumber(); +} + export function capitalize(aString: string) { return aString.charAt(0).toUpperCase() + aString.slice(1).toLowerCase(); } diff --git a/libs/common/src/lib/interfaces/benchmark.interface.ts b/libs/common/src/lib/interfaces/benchmark.interface.ts index d1a63e1f4..2124173fd 100644 --- a/libs/common/src/lib/interfaces/benchmark.interface.ts +++ b/libs/common/src/lib/interfaces/benchmark.interface.ts @@ -1,3 +1,5 @@ +import { BenchmarkTrend } from '@ghostfolio/common/types/'; + import { EnhancedSymbolProfile } from './enhanced-symbol-profile.interface'; export interface Benchmark { @@ -9,4 +11,6 @@ export interface Benchmark { performancePercent: number; }; }; + trend50d: BenchmarkTrend; + trend200d: BenchmarkTrend; } diff --git a/libs/common/src/lib/types/benchmark-trend.type.ts b/libs/common/src/lib/types/benchmark-trend.type.ts new file mode 100644 index 000000000..b437d388a --- /dev/null +++ b/libs/common/src/lib/types/benchmark-trend.type.ts @@ -0,0 +1 @@ +export type BenchmarkTrend = 'DOWN' | 'NEUTRAL' | 'UNKNOWN' | 'UP'; diff --git a/libs/common/src/lib/types/index.ts b/libs/common/src/lib/types/index.ts index 2af65d404..e99bd50b6 100644 --- a/libs/common/src/lib/types/index.ts +++ b/libs/common/src/lib/types/index.ts @@ -1,6 +1,7 @@ import type { AccessWithGranteeUser } from './access-with-grantee-user.type'; import type { AccountWithPlatform } from './account-with-platform.type'; import type { AccountWithValue } from './account-with-value.type'; +import type { BenchmarkTrend } from './benchmark-trend.type'; import type { ColorScheme } from './color-scheme.type'; import type { DateRange } from './date-range.type'; import type { Granularity } from './granularity.type'; @@ -20,6 +21,7 @@ export type { AccessWithGranteeUser, AccountWithPlatform, AccountWithValue, + BenchmarkTrend, ColorScheme, DateRange, Granularity, diff --git a/libs/ui/src/lib/benchmark/benchmark.component.html b/libs/ui/src/lib/benchmark/benchmark.component.html index 33cf72389..39e1db7c1 100644 --- a/libs/ui/src/lib/benchmark/benchmark.component.html +++ b/libs/ui/src/lib/benchmark/benchmark.component.html @@ -6,6 +6,54 @@ + + + 50-Day Trend + + +
    + +
    + +
    + + + + 200-Day Trend + + +
    + +
    + +
    + + /> @@ -35,7 +83,6 @@ + /> diff --git a/libs/ui/src/lib/benchmark/benchmark.component.ts b/libs/ui/src/lib/benchmark/benchmark.component.ts index b9f1dd25b..215cc15c6 100644 --- a/libs/ui/src/lib/benchmark/benchmark.component.ts +++ b/libs/ui/src/lib/benchmark/benchmark.component.ts @@ -4,9 +4,8 @@ import { Input, OnChanges } from '@angular/core'; -import { locale } from '@ghostfolio/common/config'; import { resolveMarketCondition } from '@ghostfolio/common/helper'; -import { Benchmark } from '@ghostfolio/common/interfaces'; +import { Benchmark, User } from '@ghostfolio/common/interfaces'; @Component({ selector: 'gf-benchmark', @@ -17,6 +16,7 @@ import { Benchmark } from '@ghostfolio/common/interfaces'; export class BenchmarkComponent implements OnChanges { @Input() benchmarks: Benchmark[]; @Input() locale: string; + @Input() user: User; public displayedColumns = ['name', 'date', 'change', 'marketCondition']; public resolveMarketCondition = resolveMarketCondition; @@ -24,8 +24,15 @@ export class BenchmarkComponent implements OnChanges { public constructor() {} public ngOnChanges() { - if (!this.locale) { - this.locale = locale; + if (this.user?.settings?.isExperimentalFeatures) { + this.displayedColumns = [ + 'name', + 'trend50d', + 'trend200d', + 'date', + 'change', + 'marketCondition' + ]; } } } diff --git a/libs/ui/src/lib/benchmark/benchmark.module.ts b/libs/ui/src/lib/benchmark/benchmark.module.ts index 1768aa39f..5b3e00209 100644 --- a/libs/ui/src/lib/benchmark/benchmark.module.ts +++ b/libs/ui/src/lib/benchmark/benchmark.module.ts @@ -3,6 +3,7 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatTableModule } from '@angular/material/table'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; +import { GfTrendIndicatorModule } from '../trend-indicator'; import { GfValueModule } from '../value'; import { BenchmarkComponent } from './benchmark.component'; @@ -11,6 +12,7 @@ import { BenchmarkComponent } from './benchmark.component'; exports: [BenchmarkComponent], imports: [ CommonModule, + GfTrendIndicatorModule, GfValueModule, MatTableModule, NgxSkeletonLoaderModule diff --git a/libs/ui/src/lib/trend-indicator/trend-indicator.component.html b/libs/ui/src/lib/trend-indicator/trend-indicator.component.html index 27251fc24..d6180cba7 100644 --- a/libs/ui/src/lib/trend-indicator/trend-indicator.component.html +++ b/libs/ui/src/lib/trend-indicator/trend-indicator.component.html @@ -13,7 +13,7 @@ *ngIf="marketState === 'closed' && range === '1d'; else delayed" class="text-muted" name="pause-circle-outline" - size="large" + [size]="size" > @@ -21,7 +21,7 @@ *ngIf="marketState === 'delayed' && range === '1d'; else trend" class="text-muted" name="time-outline" - size="large" + [size]="size" > @@ -31,21 +31,21 @@ *ngIf="value <= -0.0005" class="text-danger" name="arrow-down-circle-outline" - size="large" [ngClass]="{ 'rotate-45-down': value > -0.01 }" + [size]="size" > diff --git a/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts b/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts index 4da6d6c8e..e9152f8a0 100644 --- a/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts +++ b/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts @@ -11,6 +11,7 @@ export class TrendIndicatorComponent { @Input() isLoading = false; @Input() marketState: MarketState = 'open'; @Input() range: DateRange = 'max'; + @Input() size: 'large' | 'medium' | 'small' = 'small'; @Input() value = 0; public constructor() {} From ae763cbb87a8f803e63faeee9265404fc46bbb9d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 15 Nov 2023 21:11:10 +0100 Subject: [PATCH 06/19] Improve style of sub title (#2652) --- apps/client/src/app/pages/blog/blog-page.html | 2 +- apps/client/src/app/pages/features/features-page.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html index 68c1cc4dc..e34bf9dd2 100644 --- a/apps/client/src/app/pages/blog/blog-page.html +++ b/apps/client/src/app/pages/blog/blog-page.html @@ -1,7 +1,7 @@
    -

    +

    Blog Discover the latest Ghostfolio updates and insights on personal diff --git a/apps/client/src/app/pages/features/features-page.html b/apps/client/src/app/pages/features/features-page.html index 9621d61fa..5ea587c9b 100644 --- a/apps/client/src/app/pages/features/features-page.html +++ b/apps/client/src/app/pages/features/features-page.html @@ -1,7 +1,7 @@
    -

    +

    Features Check out the numerous features of Ghostfolio to manage your wealth From 1586cd3a5963167d000a0a724c3319bad0fb5808 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 15 Nov 2023 21:20:51 +0100 Subject: [PATCH 07/19] Feature/change twitter to x (#2654) * Change Twitter to X * Update changelog --- CHANGELOG.md | 2 ++ .../src/app/benchmark/benchmark.service.ts | 29 ++++++++++++----- .../twitter-bot/twitter-bot.service.ts | 31 +++++++------------ apps/client/src/app/app.component.html | 7 +++-- .../about/overview/about-overview-page.html | 8 ++--- apps/client/src/app/pages/faq/faq-page.html | 4 +-- .../benchmark-property.interface.ts | 1 + 7 files changed, 47 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9dd09672b..576737e0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the data source validation in the activities import +- Changed _Twitter_ to _𝕏_ +- Improved selection in the twitter bot service - Improved the language localization for German (`de`) - Upgraded `ng-extract-i18n-merge` from version `2.7.0` to `2.8.3` - Upgraded `prettier` from version `3.0.3` to `3.1.0` diff --git a/apps/api/src/app/benchmark/benchmark.service.ts b/apps/api/src/app/benchmark/benchmark.service.ts index 1f143fa2e..93f4ecc9b 100644 --- a/apps/api/src/app/benchmark/benchmark.service.ts +++ b/apps/api/src/app/benchmark/benchmark.service.ts @@ -73,9 +73,10 @@ export class BenchmarkService { return { trend50d: fiftyDayAverage, trend200d: twoHundredDayAverage }; } - public async getBenchmarks({ useCache = true } = {}): Promise< - BenchmarkResponse['benchmarks'] - > { + public async getBenchmarks({ + enableSharing = false, + useCache = true + } = {}): Promise { let benchmarks: BenchmarkResponse['benchmarks']; if (useCache) { @@ -90,7 +91,9 @@ export class BenchmarkService { } catch {} } - const benchmarkAssetProfiles = await this.getBenchmarkAssetProfiles(); + const benchmarkAssetProfiles = await this.getBenchmarkAssetProfiles({ + enableSharing + }); const promisesAllTimeHighs: Promise<{ date: Date; marketPrice: number }>[] = []; @@ -162,14 +165,24 @@ export class BenchmarkService { return benchmarks; } - public async getBenchmarkAssetProfiles(): Promise[]> { + public async getBenchmarkAssetProfiles({ + enableSharing = false + } = {}): Promise[]> { const symbolProfileIds: string[] = ( ((await this.propertyService.getByKey( PROPERTY_BENCHMARKS )) as BenchmarkProperty[]) ?? [] - ).map(({ symbolProfileId }) => { - return symbolProfileId; - }); + ) + .filter((benchmark) => { + if (enableSharing) { + return benchmark.enableSharing; + } + + return true; + }) + .map(({ symbolProfileId }) => { + return symbolProfileId; + }); const assetProfiles = await this.symbolProfileService.getSymbolProfilesByIds(symbolProfileIds); diff --git a/apps/api/src/services/twitter-bot/twitter-bot.service.ts b/apps/api/src/services/twitter-bot/twitter-bot.service.ts index d3e7fb91c..02a11b74f 100644 --- a/apps/api/src/services/twitter-bot/twitter-bot.service.ts +++ b/apps/api/src/services/twitter-bot/twitter-bot.service.ts @@ -57,7 +57,7 @@ export class TwitterBotService { symbolItem.marketPrice }/100)`; - const benchmarkListing = await this.getBenchmarkListing(3); + const benchmarkListing = await this.getBenchmarkListing(); if (benchmarkListing?.length > 1) { status += '\n\n'; @@ -78,29 +78,22 @@ export class TwitterBotService { } } - private async getBenchmarkListing(aMax: number) { + private async getBenchmarkListing() { const benchmarks = await this.benchmarkService.getBenchmarks({ + enableSharing: true, useCache: false }); - const benchmarkListing: string[] = []; - - for (const [index, benchmark] of benchmarks.entries()) { - if (index > aMax - 1) { - break; - } - - benchmarkListing.push( - `${benchmark.name} ${( - benchmark.performances.allTimeHigh.performancePercent * 100 + return benchmarks + .map(({ marketCondition, name, performances }) => { + return `${name} ${( + performances.allTimeHigh.performancePercent * 100 ).toFixed(1)}%${ - benchmark.marketCondition !== 'NEUTRAL_MARKET' - ? ' ' + resolveMarketCondition(benchmark.marketCondition).emoji + marketCondition !== 'NEUTRAL_MARKET' + ? ' ' + resolveMarketCondition(marketCondition).emoji : '' - }` - ); - } - - return benchmarkListing.join('\n'); + }`; + }) + .join('\n'); } } diff --git a/apps/client/src/app/app.component.html b/apps/client/src/app/app.component.html index 31281fe48..415770760 100644 --- a/apps/client/src/app/app.component.html +++ b/apps/client/src/app/app.component.html @@ -127,8 +127,11 @@ class="align-items-baseline d-flex" href="https://twitter.com/ghostfolio_" target="_blank" - title="Follow Ghostfolio on Twitter" - >TwitterX (formerly Twitter)
  •  
  • diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.html b/apps/client/src/app/pages/about/overview/about-overview-page.html index 4dc9fbf78..02cbf7de5 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.html +++ b/apps/client/src/app/pages/about/overview/about-overview-page.html @@ -55,7 +55,7 @@ community, tweet to @ghostfolio_, send an e-mail to @@ -70,14 +70,14 @@ >GitHub.

    -

    +

    - + 𝕏 @ghostfolio_, @@ -262,7 +262,7 @@ >community, tweet to @ghostfolio_, send an e-mail to diff --git a/libs/common/src/lib/interfaces/benchmark-property.interface.ts b/libs/common/src/lib/interfaces/benchmark-property.interface.ts index bccf4ed78..a6c4958ed 100644 --- a/libs/common/src/lib/interfaces/benchmark-property.interface.ts +++ b/libs/common/src/lib/interfaces/benchmark-property.interface.ts @@ -1,3 +1,4 @@ export interface BenchmarkProperty { + enableSharing?: boolean; symbolProfileId: string; } From 0b35a3c7a757b8cb1beb418cd55887c94c68efc4 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 15 Nov 2023 21:22:20 +0100 Subject: [PATCH 08/19] Release 2.23.0 (#2655) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 576737e0b..5f84d525e 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.23.0 - 2023-11-15 ### Added diff --git a/package.json b/package.json index c229c1da9..63c722911 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.22.0", + "version": "2.23.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 4bf97c104b738c1024f9f4f9d2cdb4175327b3cf Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 15 Nov 2023 21:45:38 +0100 Subject: [PATCH 09/19] Update changelog (#2656) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f84d525e..e582465aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the data source validation in the activities import - Changed _Twitter_ to _𝕏_ -- Improved selection in the twitter bot service +- Improved the selection in the twitter bot service - Improved the language localization for German (`de`) - Upgraded `ng-extract-i18n-merge` from version `2.7.0` to `2.8.3` - Upgraded `prettier` from version `3.0.3` to `3.1.0` From f0f304c0129126d66c2acd76a111d8256c0becbe Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 16 Nov 2023 20:22:18 +0100 Subject: [PATCH 10/19] Change tweet to post (#2658) --- .../src/app/pages/about/overview/about-overview-page.html | 2 +- apps/client/src/app/pages/faq/faq-page.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.html b/apps/client/src/app/pages/about/overview/about-overview-page.html index 02cbf7de5..a7053d0bc 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.html +++ b/apps/client/src/app/pages/about/overview/about-overview-page.html @@ -52,7 +52,7 @@ title="Join the Ghostfolio Slack community" >Slack - community, tweet to + community, post to Slack community, tweet to + >community, post to Date: Thu, 16 Nov 2023 20:22:56 +0100 Subject: [PATCH 11/19] Bugfix/improve get range query in market data service (#2659) * Attempt to fix "too many bind variables in prepared statement, expected maximum of 32767" * Update changelog --- CHANGELOG.md | 6 +++++ .../market-data/market-data.service.ts | 24 +++++++++---------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e582465aa..c70d22f37 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 + +### Fixed + +- Fixed the "too many bind variables in prepared statement" issue of the data range functionality (`getRange()`) in the market data service + ## 2.23.0 - 2023-11-15 ### Added diff --git a/apps/api/src/services/market-data/market-data.service.ts b/apps/api/src/services/market-data/market-data.service.ts index 01f8bb9aa..05172dfe1 100644 --- a/apps/api/src/services/market-data/market-data.service.ts +++ b/apps/api/src/services/market-data/market-data.service.ts @@ -64,7 +64,7 @@ export class MarketDataService { dateQuery: DateQuery; uniqueAssets: UniqueAsset[]; }): Promise { - return await this.prismaService.marketData.findMany({ + return this.prismaService.marketData.findMany({ orderBy: [ { date: 'asc' @@ -74,17 +74,17 @@ export class MarketDataService { } ], where: { - OR: uniqueAssets.map(({ dataSource, symbol }) => { - return { - AND: [ - { - dataSource, - symbol, - date: dateQuery - } - ] - }; - }) + dataSource: { + in: uniqueAssets.map(({ dataSource }) => { + return dataSource; + }) + }, + date: dateQuery, + symbol: { + in: uniqueAssets.map(({ symbol }) => { + return symbol; + }) + } } }); } From 215098e41861319c1fd31e1d01707beb3d544944 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 16 Nov 2023 20:28:09 +0100 Subject: [PATCH 12/19] Feature/improve language localization for german 20231116 (#2660) * Update locales * Update changelog --- CHANGELOG.md | 4 ++++ apps/client/src/locales/messages.de.xlf | 26 ++++++++++++++++++++----- apps/client/src/locales/messages.es.xlf | 26 ++++++++++++++++++++----- apps/client/src/locales/messages.fr.xlf | 26 ++++++++++++++++++++----- apps/client/src/locales/messages.it.xlf | 26 ++++++++++++++++++++----- apps/client/src/locales/messages.nl.xlf | 26 ++++++++++++++++++++----- apps/client/src/locales/messages.pl.xlf | 26 ++++++++++++++++++++----- apps/client/src/locales/messages.pt.xlf | 26 ++++++++++++++++++++----- apps/client/src/locales/messages.tr.xlf | 26 ++++++++++++++++++++----- apps/client/src/locales/messages.xlf | 24 ++++++++++++++++++----- 10 files changed, 191 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c70d22f37..7aa3837be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Changed + +- Improved the language localization for German (`de`) + ### Fixed - Fixed the "too many bind variables in prepared statement" issue of the data range functionality (`getRange()`) in the market data service diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index bf20c7019..a881a67c6 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -22,7 +22,7 @@ Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst. apps/client/src/app/app.component.html - 179 + 182 @@ -2664,7 +2664,7 @@ Änderung vom Allzeithoch libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 @@ -2672,7 +2672,7 @@ vom AZH libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -12568,7 +12568,7 @@ Letztes Allzeithoch libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12839,6 +12839,22 @@ 159 + + 50-Day Trend + 50 Tage Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + 200 Tage Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index d369af6d0..9d6a13d80 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -23,7 +23,7 @@ El riesgo de pérdida en trading puede ser importante. No es aconsejable invertir dinero que puedas necesitar a corto plazo. apps/client/src/app/app.component.html - 179 + 182 @@ -2662,7 +2662,7 @@ Variación respecto al máximo histórico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 @@ -2670,7 +2670,7 @@ desde el máximo histórico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -12566,7 +12566,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12837,6 +12837,22 @@ 159 + + 50-Day Trend + 50-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + 200-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 3c37ad77a..aec4344c7 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -6,7 +6,7 @@ Le risque de perte en investissant peut être important. Il est déconseillé d'investir de l'argent dont vous pourriez avoir besoin à court terme. apps/client/src/app/app.component.html - 179 + 182 @@ -3221,7 +3221,7 @@ Différence avec le Record Historique libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 @@ -3229,7 +3229,7 @@ par rapport au record historique libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -12565,7 +12565,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12836,6 +12836,22 @@ 159 + + 50-Day Trend + 50-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + 200-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 611cf0168..1acdb0eb4 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -23,7 +23,7 @@ Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine. apps/client/src/app/app.component.html - 179 + 182 @@ -2662,7 +2662,7 @@ Variazione rispetto al massimo storico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 @@ -2670,7 +2670,7 @@ dal massimo storico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -12566,7 +12566,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12837,6 +12837,22 @@ 159 + + 50-Day Trend + 50-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + 200-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index bd47098ee..ed1d8e26c 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -22,7 +22,7 @@ Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft. apps/client/src/app/app.component.html - 179 + 182 @@ -2661,7 +2661,7 @@ Verandering van All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 @@ -2669,7 +2669,7 @@ van ATH libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -12565,7 +12565,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12836,6 +12836,22 @@ 159 + + 50-Day Trend + 50-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + 200-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index c2feb29d0..2771e5e3c 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -1338,7 +1338,7 @@ The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 179 + 182 @@ -12304,7 +12304,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12312,7 +12312,7 @@ Change from All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 @@ -12320,7 +12320,7 @@ from ATH libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -12839,6 +12839,22 @@ 399 + + 50-Day Trend + 50-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + 200-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index ad7b745a7..6a3bc549f 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -6,7 +6,7 @@ O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo. apps/client/src/app/app.component.html - 179 + 182 @@ -3097,7 +3097,7 @@ Diferença desde o Máximo Histórico libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 @@ -3105,7 +3105,7 @@ a partir do ATH (All Time High) libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -12565,7 +12565,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12836,6 +12836,22 @@ 159 + + 50-Day Trend + 50-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + 200-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 46a3d3300..94931bf4b 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -1314,7 +1314,7 @@ Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez. apps/client/src/app/app.component.html - 179 + 182 @@ -11757,7 +11757,7 @@ Change from All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 @@ -11765,7 +11765,7 @@ from ATH libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -12565,7 +12565,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12836,6 +12836,22 @@ 159 + + 50-Day Trend + 50-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + 200-Day Trend + 200-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + - \ No newline at end of file + diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 711d55ff7..059676f0e 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -1293,7 +1293,7 @@ The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 179 + 182 @@ -11314,14 +11314,14 @@ Change from All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 31 + 79 from ATH libs/ui/src/lib/benchmark/benchmark.component.html - 33 + 81 @@ -11966,7 +11966,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 15 + 63 @@ -12252,6 +12252,20 @@ 159 + + 200-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 39 + + + + 50-Day Trend + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + - \ No newline at end of file + From 6f11627006db5c4f3f6edf7fcd7069ab3eb25e41 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 16 Nov 2023 20:29:49 +0100 Subject: [PATCH 13/19] Release 2.24.0 (#2661) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7aa3837be..bc86355c7 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.24.0 - 2023-11-16 ### Changed diff --git a/package.json b/package.json index 63c722911..28d465e96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.23.0", + "version": "2.24.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 8c25294da761dade42c257e942276bc3d61d7e0d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 17 Nov 2023 20:08:23 +0100 Subject: [PATCH 14/19] Feature/upgrade http status codes to version 2.3.0 (#2644) * Upgrade http-status-codes to version 2.3.0 * Update changelog --- CHANGELOG.md | 6 ++++++ package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc86355c7..73f1a6477 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 + +- Upgraded `http-status-codes` from version `2.2.0` to `2.3.0` + ## 2.24.0 - 2023-11-16 ### Changed diff --git a/package.json b/package.json index 28d465e96..46e0357fa 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "google-spreadsheet": "3.2.0", "got": "11.8.6", "helmet": "7.0.0", - "http-status-codes": "2.2.0", + "http-status-codes": "2.3.0", "ionicons": "7.1.0", "lodash": "4.17.21", "marked": "4.2.12", diff --git a/yarn.lock b/yarn.lock index 314013037..f097fb686 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11961,10 +11961,10 @@ http-signature@~1.3.6: jsprim "^2.0.2" sshpk "^1.14.1" -http-status-codes@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.2.0.tgz#bb2efe63d941dfc2be18e15f703da525169622be" - integrity sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng== +http-status-codes@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.3.0.tgz#987fefb28c69f92a43aecc77feec2866349a8bfc" + integrity sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA== http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" From 272a34195b6079eebcc436938f4a8786a6f236cc Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 17 Nov 2023 20:09:19 +0100 Subject: [PATCH 15/19] Refactor folder (#2665) --- .../hacktoberfest-2023-debriefing-page.component.ts | 0 .../hacktoberfest-2023-debriefing-page.html | 0 apps/client/src/app/pages/blog/blog-page-routing.module.ts | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) rename apps/client/src/app/pages/blog/2023/11/{hacktoberfest-2023 => hacktoberfest-2023-debriefing}/hacktoberfest-2023-debriefing-page.component.ts (100%) rename apps/client/src/app/pages/blog/2023/11/{hacktoberfest-2023 => hacktoberfest-2023-debriefing}/hacktoberfest-2023-debriefing-page.html (100%) diff --git a/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023/hacktoberfest-2023-debriefing-page.component.ts b/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts similarity index 100% rename from apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023/hacktoberfest-2023-debriefing-page.component.ts rename to apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts diff --git a/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023/hacktoberfest-2023-debriefing-page.html b/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.html similarity index 100% rename from apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023/hacktoberfest-2023-debriefing-page.html rename to apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.html diff --git a/apps/client/src/app/pages/blog/blog-page-routing.module.ts b/apps/client/src/app/pages/blog/blog-page-routing.module.ts index cfdf29874..46b4b5fa2 100644 --- a/apps/client/src/app/pages/blog/blog-page-routing.module.ts +++ b/apps/client/src/app/pages/blog/blog-page-routing.module.ts @@ -169,7 +169,7 @@ const routes: Routes = [ path: '2023/11/hacktoberfest-2023-debriefing', loadComponent: () => import( - './2023/11/hacktoberfest-2023/hacktoberfest-2023-debriefing-page.component' + './2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component' ).then((c) => c.Hacktoberfest2023DebriefingPageComponent), title: 'Hacktoberfest 2023 Debriefing' } From e2234c4966ffb02c86709b17c57e99e53d08f68c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 17 Nov 2023 20:20:49 +0100 Subject: [PATCH 16/19] Feature/add black friday 2023 blog post (#2664) * Add blog post: Black Friday 2023 * Update changelog --- CHANGELOG.md | 4 + apps/api/src/assets/sitemap.xml | 4 + .../middlewares/html-template.middleware.ts | 4 + .../black-friday-2023-page.component.ts | 16 ++ .../black-friday-2023-page.html | 152 ++++++++++++++++++ .../pages/blog/blog-page-routing.module.ts | 9 ++ apps/client/src/app/pages/blog/blog-page.html | 28 ++++ .../assets/images/blog/black-friday-2023.jpg | Bin 0 -> 192676 bytes 8 files changed, 217 insertions(+) create mode 100644 apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.component.ts create mode 100644 apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.html create mode 100644 apps/client/src/assets/images/blog/black-friday-2023.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index 73f1a6477..4f5fae02f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added a blog post: _Black Friday 2023_ + ### Changed - Upgraded `http-status-codes` from version `2.2.0` to `2.3.0` diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml index 4fbc9efac..af168fc58 100644 --- a/apps/api/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -326,6 +326,10 @@ https://ghostfol.io/en/blog/2023/09/hacktoberfest-2023 ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/en/blog/2023/11/black-friday-2023 + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/en/blog/2023/11/hacktoberfest-2023-debriefing ${currentDate}T00:00:00+00:00 diff --git a/apps/api/src/middlewares/html-template.middleware.ts b/apps/api/src/middlewares/html-template.middleware.ts index 3d61ae940..a42eee9e1 100644 --- a/apps/api/src/middlewares/html-template.middleware.ts +++ b/apps/api/src/middlewares/html-template.middleware.ts @@ -76,6 +76,10 @@ const locales = { featureGraphicPath: 'assets/images/blog/hacktoberfest-2023.png', title: `Hacktoberfest 2023 - ${title}` }, + '/en/blog/2023/11/black-friday-2023': { + featureGraphicPath: 'assets/images/blog/black-friday-2023.png', + title: `Black Friday 2023 - ${title}` + }, '/en/blog/2023/11/hacktoberfest-2023-debriefing': { featureGraphicPath: 'assets/images/blog/hacktoberfest-2023.png', title: `Hacktoberfest 2023 Debriefing - ${title}` diff --git a/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.component.ts b/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.component.ts new file mode 100644 index 000000000..4c9cbaa85 --- /dev/null +++ b/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.component.ts @@ -0,0 +1,16 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; + +@Component({ + host: { class: 'page' }, + imports: [GfPremiumIndicatorModule, MatButtonModule, RouterModule], + selector: 'gf-black-friday-2023-page', + standalone: true, + templateUrl: './black-friday-2023-page.html' +}) +export class BlackFriday2023PageComponent { + public routerLinkFeatures = ['/' + $localize`features`]; + public routerLinkPricing = ['/' + $localize`pricing`]; +} diff --git a/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.html b/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.html new file mode 100644 index 000000000..31753cb52 --- /dev/null +++ b/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.html @@ -0,0 +1,152 @@ +

    +
    +
    +
    +
    +

    Black Friday 2023

    +
    2023-11-18
    + Black Friday 2023 Teaser +
    +
    +

    + Get 33% off on our + Ghostfolio Premium + + annual plan for ambitious investors who need the full picture of + their financial assets. +

    +
    +
    +

    + Ghostfolio + is a modern web application to manage your personal finance. The + software presents the current assets (stocks, ETFs, + cryptocurrencies, commodities etc.) in real time to make solid, + data-driven investment decisions. Check out the numerous + features to manage your + wealth. +

    +
    +
    +

    + Snap the limited Black Friday 2023 deal before it’s gone. For + detailed information on plans and pricing, please visit our + pricing page. +

    +

    + Get the Deal +

    +
    +
    +
      +
    • + 2023 +
    • +
    • + Black Friday +
    • +
    • + Cloud +
    • +
    • + Cryptocurrency +
    • +
    • + Deal +
    • +
    • + ETF +
    • +
    • + Finance +
    • +
    • + Fintech +
    • +
    • + Ghostfolio +
    • +
    • + Ghostfolio Premium +
    • +
    • + Hosting +
    • +
    • + Investment +
    • +
    • + Open Source +
    • +
    • + OSS +
    • +
    • + Personal Finance +
    • +
    • + Portfolio +
    • +
    • + Portfolio Tracker +
    • +
    • + Pricing +
    • +
    • + SaaS +
    • +
    • + Software +
    • +
    • + Stock +
    • +
    • + Subscription +
    • +
    • + Wealth +
    • +
    • + Wealth Management +
    • +
    • + Web3 +
    • +
    • + Web 3.0 +
    • +
    +
    + +
    +
    +
    +
    diff --git a/apps/client/src/app/pages/blog/blog-page-routing.module.ts b/apps/client/src/app/pages/blog/blog-page-routing.module.ts index 46b4b5fa2..9f725960d 100644 --- a/apps/client/src/app/pages/blog/blog-page-routing.module.ts +++ b/apps/client/src/app/pages/blog/blog-page-routing.module.ts @@ -172,6 +172,15 @@ const routes: Routes = [ './2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component' ).then((c) => c.Hacktoberfest2023DebriefingPageComponent), title: 'Hacktoberfest 2023 Debriefing' + }, + { + canActivate: [AuthGuard], + path: '2023/11/black-friday-2023', + loadComponent: () => + import( + './2023/11/black-friday-2023/black-friday-2023-page.component' + ).then((c) => c.BlackFriday2023PageComponent), + title: 'Black Friday 2023' } ]; diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html index e34bf9dd2..2bf207209 100644 --- a/apps/client/src/app/pages/blog/blog-page.html +++ b/apps/client/src/app/pages/blog/blog-page.html @@ -8,6 +8,34 @@ finance

    + + + + +
    diff --git a/apps/client/src/assets/images/blog/black-friday-2023.jpg b/apps/client/src/assets/images/blog/black-friday-2023.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45fe741496f4de1d16c16fefa2a71e4ee8feeb0a GIT binary patch literal 192676 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%0DQP0Nnf-7b^gpxC`CpE%7mp#v? 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

    I*>zkpmW!T6BJmj8sqN# zbq9N_TjUlsh-^map~J<2qnu&-I8<>%ExdTwQ6AXKvHCFBCZFcSoxa4+;as&O1xuvF ziy^hChsShB`%@?bItydQ&9}g8CGeyI!Vw-AyC|BM(DA℞@{D-eOU~SU`QZ8HKXQ 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

    0Byl5VVr!A)%KE8Qz>GYrV^Tunb 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 literal 0 HcmV?d00001 From 232d30234c95c224b0703384853ec8ff72b4941c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 18 Nov 2023 09:59:27 +0100 Subject: [PATCH 17/19] Update OSS Friends (#2663) --- apps/client/src/assets/oss-friends.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/client/src/assets/oss-friends.json b/apps/client/src/assets/oss-friends.json index 43d8141ac..a95f8e709 100644 --- a/apps/client/src/assets/oss-friends.json +++ b/apps/client/src/assets/oss-friends.json @@ -1,5 +1,5 @@ { - "createdAt": "2023-10-21T00:00:00.000Z", + "createdAt": "2023-11-17T00:00:00.000Z", "data": [ { "name": "BoxyHQ", @@ -96,6 +96,11 @@ "description": "Makes frontend development cycle 10x faster with API Client, Mock Server, Intercept & Modify HTTP Requests and Session Replays.", "href": "https://requestly.io" }, + { + "name": "Revert", + "description": "The open-source unified API to build B2B integrations remarkably fast", + "href": "https://revert.dev" + }, { "name": "Rivet", "description": "Open-source solution to deploy, scale, and operate your multiplayer game.", @@ -136,6 +141,11 @@ "description": "Typebot gives you powerful blocks to create unique chat experiences. Embed them anywhere on your apps and start collecting results like magic.", "href": "https://typebot.io" }, + { + "name": "Unkey", + "description": "An API authentication and authorization platform for scaling user facing APIs. Create, verify, and manage low latency API keys in seconds.", + "href": "https://unkey.dev" + }, { "name": "Webiny", "description": "Open-source enterprise-grade serverless CMS. Own your data. Scale effortlessly. Customize everything.", From 8898d02442703dbe02fdb4f5d8d42d91e0f3e2c0 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 18 Nov 2023 11:05:05 +0100 Subject: [PATCH 18/19] Bugfix/fix cannot read properties of undefined reading items in get position (#2667) * Fix "Cannot read properties of undefined (reading 'items')" * Update changelog --- CHANGELOG.md | 4 ++++ apps/api/src/app/portfolio/portfolio.service.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f5fae02f..2ca0f9fbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Upgraded `http-status-codes` from version `2.2.0` to `2.3.0` +### Fixed + +- Handled reading items from missing transaction point while getting the position (`getPosition()`) in portfolio service + ## 2.24.0 - 2023-11-16 ### Changed diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 525273253..2a701aab5 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -879,7 +879,7 @@ export class PortfolioService { let currentAveragePrice = 0; let currentQuantity = 0; - const currentSymbol = transactionPoints[j].items.find( + const currentSymbol = transactionPoints[j]?.items.find( ({ symbol }) => { return symbol === aSymbol; } From fb294fc6e2ee906288005943a6558e7f1e60a848 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 18 Nov 2023 11:15:03 +0100 Subject: [PATCH 19/19] Improve wording (#2668) --- .../black-friday-2022-page.html | 12 ++++--- .../black-friday-2023-page.html | 32 +++++++++++-------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html index 8da5f55b5..093d62f05 100644 --- a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html +++ b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html @@ -15,11 +15,13 @@

    Get 75% off on our - Ghostfolio Premium - + Ghostfolio Premium + annual plan for ambitious investors who need the full picture of their financial assets.

    diff --git a/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.html b/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.html index 31753cb52..f5b1f44b7 100644 --- a/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.html +++ b/apps/client/src/app/pages/blog/2023/11/black-friday-2023/black-friday-2023-page.html @@ -14,14 +14,18 @@

    + Ambitious investors on a life-changing mission, this is your chance! Get 33% off on our - Ghostfolio Premium - - annual plan for ambitious investors who need the full picture of - their financial assets. + Ghostfolio Premium + + annual plan with our exclusive Black Friday deal. Elevate your + financial strategy with the power of Ghostfolio designed to give you + the full picture of your assets.

    @@ -31,12 +35,14 @@ title="Open Source Wealth Management Software" >Ghostfolio - is a modern web application to manage your personal finance. The - software presents the current assets (stocks, ETFs, - cryptocurrencies, commodities etc.) in real time to make solid, - data-driven investment decisions. Check out the numerous - features to manage your - wealth. + is a modern web application to manage personal finances. This Open + Source Software (OSS) dynamically aggregates your diverse assets + including stocks, ETFs, cryptocurrencies, commodities, and more, + presenting a comprehensive overview of your portfolio in real-time. + Empower yourself to make informed, data-driven investment decisions + with the robust analytics at your fingertips. Explore the numerous + features to enhance your + wealth management experience.