From 5ccd1dece560f962042a975a7c99f24446222a8c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 31 Jul 2026 22:26:24 +0200 Subject: [PATCH 01/20] Task/update locales (#7488) Co-authored-by: github-actions[bot] --- apps/client/src/locales/messages.ca.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.de.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.es.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.fr.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.it.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.ja.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.ko.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.nl.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.pl.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.pt.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.tr.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.uk.xlf | 296 +++++++++++++----------- apps/client/src/locales/messages.xlf | 292 ++++++++++++----------- apps/client/src/locales/messages.zh.xlf | 296 +++++++++++++----------- 14 files changed, 2265 insertions(+), 1875 deletions(-) diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index a7bb8abddc..b760aa9a3a 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -383,7 +383,7 @@ Balanç de Caixa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -399,7 +399,7 @@ Plataforma apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -415,7 +415,7 @@ Balanç de Caixa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -439,7 +439,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -475,7 +475,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -515,11 +515,11 @@ Divisa apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -539,7 +539,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -575,11 +575,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -619,7 +619,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -659,7 +659,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -703,11 +703,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -727,7 +727,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -743,7 +743,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -867,7 +867,7 @@ Find an account... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -883,7 +883,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -907,7 +907,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -983,11 +983,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -999,7 +999,7 @@ Data Gathering Frequency apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -1139,11 +1139,11 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -1151,7 +1151,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -1159,7 +1159,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1171,15 +1171,15 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1191,15 +1191,15 @@ Països apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1207,7 +1207,7 @@ Mapatge de Símbols apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -1247,7 +1247,7 @@ Configuració del Proveïdor de Dades apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -1255,7 +1255,7 @@ Prova apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -1263,11 +1263,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1291,7 +1291,7 @@ Notes apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1307,7 +1307,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1347,7 +1347,7 @@ Nom, símbol o ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1447,7 +1447,7 @@ Recollida de Dades apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1459,7 +1459,7 @@ Find a holding... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -1743,7 +1743,7 @@ Punt de Referència apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1755,7 +1755,7 @@ Sentiment del Mercat libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1835,7 +1835,7 @@ Preu Mínim apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -1843,7 +1843,7 @@ Preu Màxim apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -1851,7 +1851,7 @@ Quantitat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1859,7 +1859,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1871,7 +1871,7 @@ Rendiment del Dividend apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -1879,7 +1879,7 @@ Comissions apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -1891,11 +1891,11 @@ Activitat apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -1903,7 +1903,7 @@ Informar d’un Problema amb les Dades apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -2135,7 +2135,7 @@ o apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -2467,7 +2467,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -2479,7 +2479,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -2491,7 +2491,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -2511,7 +2511,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -2531,7 +2531,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -2695,7 +2695,7 @@ Jump to a page... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -2719,7 +2719,7 @@ Include in apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -2791,7 +2791,7 @@ Localització apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -3135,7 +3135,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3251,7 +3251,7 @@ Dades de mercat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -3291,11 +3291,11 @@ Visió general apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -3307,7 +3307,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -3708,7 +3708,7 @@ Explotacions apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -3760,7 +3760,7 @@ Mercats apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -3963,6 +3963,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Per què Ghostfolio? @@ -4212,7 +4220,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -4288,15 +4296,15 @@ Activitats apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -4312,11 +4320,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -4412,7 +4420,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -4424,11 +4432,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -4440,11 +4448,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -4796,11 +4804,11 @@ Dividend apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4864,7 +4872,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -5689,11 +5697,11 @@ Activitats d’exportació libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -5701,11 +5709,11 @@ Exporta esborranys com a ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -5713,7 +5721,7 @@ Suprimeix les activitats libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -5721,7 +5729,7 @@ Esborrany libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -5729,7 +5737,7 @@ Clonar libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -5737,15 +5745,7 @@ Exporta l’esborrany com a ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 - - - - Do you really want to delete these activities? - De veritat vols suprimir aquestes activitats? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 + 516 @@ -5753,7 +5753,11 @@ Realment vols suprimir aquesta activitat? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -5761,7 +5765,7 @@ Setmana fins avui libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -5773,7 +5777,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -5781,7 +5785,7 @@ Mes fins a la data libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -5793,7 +5797,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -5809,7 +5813,7 @@ Any fins a la data libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -5829,7 +5833,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -5841,7 +5845,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6005,7 +6009,7 @@ Interès apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6073,7 +6077,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -6101,15 +6105,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -6133,15 +6137,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -6333,7 +6337,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -6341,13 +6345,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Etiqueta @@ -6417,7 +6429,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -6477,7 +6489,7 @@ Patrimoni apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -6637,7 +6649,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6921,7 +6933,7 @@ View Holding libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6977,11 +6989,11 @@ Cancel apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7033,7 +7045,7 @@ Close apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7125,7 +7137,7 @@ Change with currency effect Change apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7141,7 +7153,7 @@ Performance with currency effect Performance apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7287,6 +7299,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7607,7 +7623,7 @@ Save apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7739,7 +7755,7 @@ Default Market Price apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7747,7 +7763,7 @@ Mode apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7763,7 +7779,7 @@ Selector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7771,7 +7787,7 @@ HTTP Request Headers apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8016,7 +8032,7 @@ Apply apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8107,6 +8123,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Log out @@ -8576,7 +8604,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8604,7 +8632,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 0378b10680..2765b0b4c8 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -66,11 +66,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -114,7 +114,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -150,7 +150,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -210,11 +210,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -254,7 +254,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -294,7 +294,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -338,7 +338,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -422,7 +422,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -462,7 +462,7 @@ Finde ein Konto... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -478,7 +478,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -502,7 +502,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -518,11 +518,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -726,7 +726,7 @@ Aktuelle Marktstimmung libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -870,7 +870,7 @@ oder apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1014,15 +1014,15 @@ Sektoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1034,15 +1034,15 @@ Länder apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1066,7 +1066,7 @@ Datenfehler melden apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -1114,7 +1114,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -1126,7 +1126,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -1138,7 +1138,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -1158,7 +1158,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -1178,7 +1178,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -1358,7 +1358,7 @@ Lokalität apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -1470,7 +1470,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1518,11 +1518,11 @@ Währung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1542,7 +1542,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -1550,7 +1550,7 @@ Cash-Bestand apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1566,7 +1566,7 @@ Plattform apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1798,11 +1798,11 @@ Übersicht apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -1814,7 +1814,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -1838,7 +1838,7 @@ Märkte apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -2022,7 +2022,7 @@ Positionen apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -2094,7 +2094,7 @@ Name, Symbol oder ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2122,7 +2122,7 @@ Anzahl apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2130,7 +2130,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2146,7 +2146,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -2154,7 +2154,7 @@ Kommentar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2170,7 +2170,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -2178,15 +2178,15 @@ Aktivitäten apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -2202,11 +2202,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2414,7 +2414,7 @@ Geplant libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -2426,11 +2426,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -2438,11 +2438,11 @@ Aktivitäten exportieren libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -2450,11 +2450,11 @@ Geplante Aktivitäten als ICS exportieren libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -2462,7 +2462,7 @@ Kopieren libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -2470,7 +2470,7 @@ Geplante Aktivität als ICS exportieren libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -2478,7 +2478,11 @@ Möchtest du diese Aktivität wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -2578,7 +2582,7 @@ Minimum Preis apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -2586,7 +2590,7 @@ Maximum Preis apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -2602,11 +2606,11 @@ Sektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -2614,7 +2618,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -2622,7 +2626,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2714,7 +2718,7 @@ Verzinsung apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2854,7 +2858,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -2974,7 +2978,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -2994,15 +2998,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3030,7 +3034,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -3038,13 +3042,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Tag @@ -3082,7 +3094,7 @@ Beteiligungskapital apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -3302,7 +3314,7 @@ Investiertes Kapital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3362,7 +3374,7 @@ Häufigkeit der Datensynchronisierung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -3386,7 +3398,7 @@ Symbol Zuordnung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -3410,11 +3422,11 @@ Dividenden apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3446,15 +3458,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3502,7 +3514,7 @@ Marktdaten apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -3578,11 +3590,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -3954,7 +3966,7 @@ Gebühren apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4125,14 +4137,6 @@ 254 - - Do you really want to delete these activities? - Möchtest du diese Aktivitäten wirklich löschen? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - By ETF Provider Nach ETF-Anbieter @@ -4178,11 +4182,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4590,7 +4594,7 @@ Scraper Konfiguration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -5281,6 +5285,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Warum Ghostfolio? @@ -5780,7 +5792,7 @@ In umwandeln apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -5852,7 +5864,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -6144,7 +6156,7 @@ Cash-Bestände apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -6188,7 +6200,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6284,7 +6296,7 @@ Position abschliessen apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6324,7 +6336,7 @@ Seit Wochenbeginn libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6336,7 +6348,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6344,7 +6356,7 @@ Seit Monatsbeginn libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6356,7 +6368,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6372,7 +6384,7 @@ Seit Jahresbeginn libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6428,7 +6440,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6440,7 +6452,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6456,7 +6468,7 @@ Finanzmarktdaten synchronisieren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6468,7 +6480,7 @@ Finde eine Position... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6561,11 +6573,11 @@ Aktivität apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6573,7 +6585,7 @@ Dividendenrendite apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6629,7 +6641,7 @@ Aktivitäten löschen libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6653,7 +6665,7 @@ Springe zu einer Seite... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6709,7 +6721,7 @@ Berücksichtigen in apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6945,7 +6957,7 @@ Position ansehen libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -7001,11 +7013,11 @@ Abbrechen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7057,7 +7069,7 @@ Schliessen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7149,7 +7161,7 @@ Änderung mit Währungseffekt Änderung apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7165,7 +7177,7 @@ Performance mit Währungseffekt Performance apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7311,6 +7323,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7631,7 +7647,7 @@ Speichern apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7763,7 +7779,7 @@ Standardmarktpreis apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7771,7 +7787,7 @@ Modus apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7787,7 +7803,7 @@ Selektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7795,7 +7811,7 @@ HTTP Request-Headers apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8040,7 +8056,7 @@ Übernehmen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8107,6 +8123,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Ausloggen @@ -8576,7 +8604,7 @@ Anlageprofil verwalten apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8604,7 +8632,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 87c434b2c4..81e2e99680 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -67,11 +67,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -115,7 +115,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -151,7 +151,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -211,11 +211,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -255,7 +255,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -295,7 +295,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -339,7 +339,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -423,7 +423,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -463,7 +463,7 @@ Buscar una cuenta... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -479,7 +479,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -503,7 +503,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -519,11 +519,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -711,7 +711,7 @@ Sentimiento del mercado libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -855,7 +855,7 @@ o apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -999,15 +999,15 @@ Sectores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1019,15 +1019,15 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1051,7 +1051,7 @@ Reportar anomalía en los datos apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -1099,7 +1099,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -1111,7 +1111,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -1123,7 +1123,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -1143,7 +1143,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -1163,7 +1163,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -1343,7 +1343,7 @@ Configuración regional apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -1455,7 +1455,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1503,11 +1503,11 @@ Divisa apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1527,7 +1527,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -1535,7 +1535,7 @@ Saldo en efectivo apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1551,7 +1551,7 @@ Plataforma apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1783,11 +1783,11 @@ Visión general apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -1799,7 +1799,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -1823,7 +1823,7 @@ Mercados apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -2007,7 +2007,7 @@ Posiciones apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -2079,7 +2079,7 @@ Nombre, símbolo o ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2107,7 +2107,7 @@ Cantidad apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2115,7 +2115,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2131,7 +2131,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -2139,7 +2139,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2155,7 +2155,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -2163,15 +2163,15 @@ Operaciones apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -2187,11 +2187,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2399,7 +2399,7 @@ Borrador libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -2411,11 +2411,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -2423,11 +2423,11 @@ Exportar operaciones libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -2435,11 +2435,11 @@ Exportar borrador como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -2447,7 +2447,7 @@ Clonar libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -2455,7 +2455,7 @@ Exportar borrador como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -2463,7 +2463,11 @@ ¿Seguro que quieres eliminar esta operación? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -2595,7 +2599,7 @@ Precio máximo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -2635,11 +2639,11 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -2647,7 +2651,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -2655,7 +2659,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2667,7 +2671,7 @@ Precio mínimo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -2691,7 +2695,7 @@ Interés apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2819,7 +2823,7 @@ Índice de referencia apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -2959,7 +2963,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -2979,15 +2983,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3015,7 +3019,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -3023,13 +3027,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Etiqueta @@ -3067,7 +3079,7 @@ Renta variable apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -3287,7 +3299,7 @@ Capital invertido apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3347,7 +3359,7 @@ Frecuencia de recopilación de datos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -3371,7 +3383,7 @@ Mapeo de símbolos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -3387,11 +3399,11 @@ Dividendo apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3431,15 +3443,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3487,7 +3499,7 @@ Datos del mercado apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -3563,11 +3575,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -3939,7 +3951,7 @@ Comisiones apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4102,14 +4114,6 @@ 254 - - Do you really want to delete these activities? - ¿Seguro que quieres eliminar estas operaciones? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - By ETF Provider Por proveedor de ETF @@ -4155,11 +4159,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4567,7 +4571,7 @@ Configuración del scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -5258,6 +5262,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? ¿Por qué Ghostfolio? @@ -5757,7 +5769,7 @@ Convertir a apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -5829,7 +5841,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -6121,7 +6133,7 @@ Saldos de efectivo apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -6165,7 +6177,7 @@ Prueba apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6261,7 +6273,7 @@ Cerrar posición apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6301,7 +6313,7 @@ Semana hasta la fecha libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6313,7 +6325,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6321,7 +6333,7 @@ Mes hasta la fecha libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6333,7 +6345,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6349,7 +6361,7 @@ Año hasta la fecha libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6405,7 +6417,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6417,7 +6429,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6433,7 +6445,7 @@ Recopilación de datos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6445,7 +6457,7 @@ Buscar una posición... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6538,11 +6550,11 @@ Operación apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6550,7 +6562,7 @@ Rendimiento por dividendo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6606,7 +6618,7 @@ Eliminar operaciones libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6630,7 +6642,7 @@ Saltar a una página... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6686,7 +6698,7 @@ Incluir en apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6922,7 +6934,7 @@ Ver posición libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6978,11 +6990,11 @@ Cancelar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7034,7 +7046,7 @@ Cerrar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7126,7 +7138,7 @@ Cambio con el efecto de la divisa Cambio apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7142,7 +7154,7 @@ Rendimiento con el efecto de la divisa Rendimiento apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7288,6 +7300,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7608,7 +7624,7 @@ Guardar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7740,7 +7756,7 @@ Precio de mercado por defecto apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7748,7 +7764,7 @@ Modo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7764,7 +7780,7 @@ Selector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7772,7 +7788,7 @@ Encabezados de solicitud HTTP apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8017,7 +8033,7 @@ Aplicar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8108,6 +8124,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Cerrar sesión @@ -8577,7 +8605,7 @@ Gestionar perfil de activo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8605,7 +8633,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index f091a56dff..8d4f182bf5 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -58,11 +58,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -102,7 +102,7 @@ Plateforme apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -122,7 +122,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -158,7 +158,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -198,11 +198,11 @@ Devise apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -222,7 +222,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -230,7 +230,7 @@ Balance Cash apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -274,11 +274,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -318,7 +318,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -358,7 +358,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -394,7 +394,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -486,7 +486,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -526,7 +526,7 @@ Rechercher un compte... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -542,7 +542,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -566,7 +566,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -590,11 +590,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -606,7 +606,7 @@ Fréquence de collecte des données apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -694,11 +694,11 @@ Secteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -706,7 +706,7 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -714,7 +714,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -726,15 +726,15 @@ Secteurs apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -746,15 +746,15 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -762,7 +762,7 @@ Équivalence de Symboles apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -770,7 +770,7 @@ Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -786,7 +786,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1014,7 +1014,7 @@ Référence apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1026,7 +1026,7 @@ Sentiment actuel du marché libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1174,7 +1174,7 @@ ou apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1326,7 +1326,7 @@ Prix Minimum apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -1334,7 +1334,7 @@ Prix Maximum apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -1342,7 +1342,7 @@ Quantité apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1350,7 +1350,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1362,7 +1362,7 @@ Signaler une Erreur de Données apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -1374,7 +1374,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -1386,7 +1386,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -1398,7 +1398,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -1418,7 +1418,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -1438,7 +1438,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -1674,7 +1674,7 @@ Paramètres régionaux apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -1838,7 +1838,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1894,7 +1894,7 @@ Données du marché apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -2118,7 +2118,7 @@ Positions apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -2170,7 +2170,7 @@ Marchés apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -2210,15 +2210,15 @@ Activités apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -2234,11 +2234,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2302,7 +2302,7 @@ Nom, symbole, ou ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2334,7 +2334,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -2602,11 +2602,11 @@ Dividende apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2914,11 +2914,11 @@ Aperçu apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -2930,7 +2930,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -2954,7 +2954,7 @@ Brouillon libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -2966,11 +2966,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -2978,11 +2978,11 @@ Exporter Activités libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -2990,11 +2990,11 @@ Exporter Brouillons sous ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -3002,7 +3002,7 @@ Dupliquer libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -3010,7 +3010,7 @@ Exporter Brouillon sous ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -3018,7 +3018,11 @@ Voulez-vous vraiment supprimer cette activité ? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -3074,7 +3078,7 @@ Intérêt apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3142,7 +3146,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -3162,15 +3166,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3194,15 +3198,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3266,7 +3270,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -3274,13 +3278,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Étiquette @@ -3318,7 +3330,7 @@ Capital apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -3470,7 +3482,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3562,11 +3574,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -3938,7 +3950,7 @@ Frais apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4101,14 +4113,6 @@ 254 - - Do you really want to delete these activities? - Voulez-vous vraiment supprimer toutes vos activités ? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - By ETF Provider Par Émetteur d’ETF @@ -4154,11 +4158,11 @@ Lien apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4566,7 +4570,7 @@ Configuration du Scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -5257,6 +5261,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Pourquoi Ghostfolio? @@ -5756,7 +5768,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -5828,7 +5840,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -6120,7 +6132,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -6164,7 +6176,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6260,7 +6272,7 @@ Clôturer la Position apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6300,7 +6312,7 @@ Week to date libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6312,7 +6324,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6320,7 +6332,7 @@ Month to date libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6332,7 +6344,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6348,7 +6360,7 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6404,7 +6416,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6416,7 +6428,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6432,7 +6444,7 @@ Collecter les données apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6444,7 +6456,7 @@ Rechercher une position... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6537,11 +6549,11 @@ Activitées apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6549,7 +6561,7 @@ Rendement en Dividende apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6605,7 +6617,7 @@ Supprimer les Activitées libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6629,7 +6641,7 @@ Aller à une page... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6685,7 +6697,7 @@ Inclure dans apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6921,7 +6933,7 @@ Voir la Position libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6977,11 +6989,11 @@ Annuler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7033,7 +7045,7 @@ Fermer apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7125,7 +7137,7 @@ Variation avec taux de change appliqué Variation apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7141,7 +7153,7 @@ Performance avec taux de change appliqué Performance apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7287,6 +7299,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7607,7 +7623,7 @@ Sauvegarder apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7739,7 +7755,7 @@ Prix du marché par défaut apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7747,7 +7763,7 @@ Mode apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7763,7 +7779,7 @@ Selecteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7771,7 +7787,7 @@ En-têtes de requête HTTP apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8016,7 +8032,7 @@ Appliquer apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8107,6 +8123,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Se déconnecter @@ -8576,7 +8604,7 @@ Gérer le profil d’actif apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8604,7 +8632,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index fa0680d82c..92dc8372a3 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -67,11 +67,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -115,7 +115,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -151,7 +151,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -211,11 +211,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -255,7 +255,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -295,7 +295,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -339,7 +339,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -423,7 +423,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -463,7 +463,7 @@ Find an account... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -479,7 +479,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -503,7 +503,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -519,11 +519,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -711,7 +711,7 @@ Stato d’animo attuale del mercato libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -855,7 +855,7 @@ oppure apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -999,15 +999,15 @@ Settori apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1019,15 +1019,15 @@ Paesi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1051,7 +1051,7 @@ Segnala un’anomalia dei dati apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -1099,7 +1099,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -1111,7 +1111,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -1123,7 +1123,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -1143,7 +1143,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -1163,7 +1163,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -1343,7 +1343,7 @@ Locale apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -1455,7 +1455,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1503,11 +1503,11 @@ Valuta apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1527,7 +1527,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -1535,7 +1535,7 @@ Saldo di cassa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1551,7 +1551,7 @@ Piattaforma apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1783,11 +1783,11 @@ Panoramica apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -1799,7 +1799,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -1823,7 +1823,7 @@ Mercati apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -2007,7 +2007,7 @@ Partecipazioni apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -2079,7 +2079,7 @@ Nome, simbolo o ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2107,7 +2107,7 @@ Quantità apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2115,7 +2115,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2131,7 +2131,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -2139,7 +2139,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2155,7 +2155,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -2163,15 +2163,15 @@ Attività apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -2187,11 +2187,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2399,7 +2399,7 @@ Bozza libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -2411,11 +2411,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -2423,11 +2423,11 @@ Esporta le attività libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -2435,11 +2435,11 @@ Esporta le bozze come ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -2447,7 +2447,7 @@ Clona libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -2455,7 +2455,7 @@ Esporta la bozza come ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -2463,7 +2463,11 @@ Vuoi davvero eliminare questa attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -2595,7 +2599,7 @@ Prezzo massimo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -2635,11 +2639,11 @@ Settore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -2647,7 +2651,7 @@ Paese apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -2655,7 +2659,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2667,7 +2671,7 @@ Prezzo minimo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -2691,7 +2695,7 @@ Interesse apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2819,7 +2823,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -2959,7 +2963,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -2979,15 +2983,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3015,7 +3019,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -3023,13 +3027,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Etichetta @@ -3067,7 +3079,7 @@ Azione ordinaria apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -3287,7 +3299,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3347,7 +3359,7 @@ Data Gathering Frequency apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -3371,7 +3383,7 @@ Mappatura dei simboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -3387,11 +3399,11 @@ Dividendi apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3431,15 +3443,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3487,7 +3499,7 @@ Dati del mercato apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -3563,11 +3575,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -3939,7 +3951,7 @@ Commissioni apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4102,14 +4114,6 @@ 254 - - Do you really want to delete these activities? - Vuoi davvero eliminare tutte le tue attività? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - By ETF Provider Per fornitore di ETF @@ -4155,11 +4159,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4567,7 +4571,7 @@ Configurazione dello scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -5258,6 +5262,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Perché Ghostfolio? @@ -5757,7 +5769,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -5829,7 +5841,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -6121,7 +6133,7 @@ Saldi di cassa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -6165,7 +6177,7 @@ Prova apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6261,7 +6273,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6301,7 +6313,7 @@ Da inizio settimana libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6313,7 +6325,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6321,7 +6333,7 @@ Da inizio mese libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6333,7 +6345,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6349,7 +6361,7 @@ Da inizio anno libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6405,7 +6417,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6417,7 +6429,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6433,7 +6445,7 @@ Raccolta Dati apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6445,7 +6457,7 @@ Find a holding... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6538,11 +6550,11 @@ Attività apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6550,7 +6562,7 @@ Rendimento da Dividendi apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6606,7 +6618,7 @@ Elimina le attività libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6630,7 +6642,7 @@ Jump to a page... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6686,7 +6698,7 @@ Include in apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6922,7 +6934,7 @@ View Holding libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6978,11 +6990,11 @@ Annulla apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7034,7 +7046,7 @@ Chiudi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7126,7 +7138,7 @@ Cambio con effetto valuta Cambia apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7142,7 +7154,7 @@ Prestazioni con effetto valuta Prestazioni apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7288,6 +7300,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7608,7 +7624,7 @@ Salva apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7740,7 +7756,7 @@ Prezzo di mercato predefinito apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7748,7 +7764,7 @@ Modalità apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7764,7 +7780,7 @@ Selettore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7772,7 +7788,7 @@ Intestazioni della richiesta HTTP apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8017,7 +8033,7 @@ Applica apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8108,6 +8124,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Esci @@ -8577,7 +8605,7 @@ Gestisci profilo risorsa apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8605,7 +8633,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.ja.xlf b/apps/client/src/locales/messages.ja.xlf index 3507d24d21..14781a5835 100644 --- a/apps/client/src/locales/messages.ja.xlf +++ b/apps/client/src/locales/messages.ja.xlf @@ -268,11 +268,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -312,7 +312,7 @@ 現金残高 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -328,7 +328,7 @@ プラットフォーム apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -344,7 +344,7 @@ 現金残高 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -368,7 +368,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -404,7 +404,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -444,11 +444,11 @@ 通貨 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -468,7 +468,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -504,11 +504,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -548,7 +548,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -588,7 +588,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -628,7 +628,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -644,7 +644,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -752,7 +752,7 @@ アカウントを検索... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -768,7 +768,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -792,7 +792,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -872,11 +872,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -888,7 +888,7 @@ データ収集頻度 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -1032,11 +1032,11 @@ セクター apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -1044,7 +1044,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -1052,7 +1052,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1064,15 +1064,15 @@ セクター apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1084,15 +1084,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1100,7 +1100,7 @@ シンボルマッピング apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -1140,7 +1140,7 @@ スクレイパーの設定 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -1148,7 +1148,7 @@ メモ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1164,7 +1164,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1204,7 +1204,7 @@ 名称、シンボル、またはISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1364,11 +1364,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1608,7 +1608,7 @@ ベンチマーク apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1620,7 +1620,7 @@ 現在の市場心理 libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1868,7 +1868,7 @@ または apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1948,7 +1948,7 @@ 手数料 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2044,7 +2044,7 @@ 最低価格 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -2052,7 +2052,7 @@ 最高価格 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -2060,7 +2060,7 @@ 数量 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2068,7 +2068,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2080,7 +2080,7 @@ データグリッチの報告 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -2260,7 +2260,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -2272,7 +2272,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -2284,7 +2284,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -2304,7 +2304,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -2324,7 +2324,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -2504,7 +2504,7 @@ ロケール apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -2824,7 +2824,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2928,7 +2928,7 @@ マーケットデータ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -2968,11 +2968,11 @@ 概要 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -2984,7 +2984,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -3368,7 +3368,7 @@ 保有資産 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -3420,7 +3420,7 @@ マーケット apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -3615,6 +3615,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? なぜGhostfolioなのか? @@ -3864,7 +3872,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -3940,15 +3948,15 @@ アクティビティ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -3964,11 +3972,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3987,14 +3995,6 @@ 126 - - Do you really want to delete these activities? - 本当にこれらのアクティビティを削除したいですか? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - Update activity アクティビティを更新 @@ -4072,7 +4072,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -4084,11 +4084,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -4100,11 +4100,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -4440,11 +4440,11 @@ 配当金 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5289,11 +5289,11 @@ アクティビティをエクスポート libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -5301,11 +5301,11 @@ ドラフトをICSとしてエクスポート libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -5313,7 +5313,7 @@ ドラフト libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -5321,7 +5321,7 @@ クローン libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -5329,7 +5329,7 @@ ドラフトをICSとしてエクスポート libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -5337,7 +5337,11 @@ 本当にこのアクティビティを削除したいですか? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -5469,7 +5473,7 @@ 利息 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5537,7 +5541,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -5565,15 +5569,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5597,15 +5601,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5781,7 +5785,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -5789,13 +5793,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag タグ @@ -5865,7 +5877,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -5925,7 +5937,7 @@ 株式 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -6077,7 +6089,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6197,7 +6209,7 @@ テスト apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6273,7 +6285,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6325,7 +6337,7 @@ 年初来 libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6333,7 +6345,7 @@ 週初来 libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6341,7 +6353,7 @@ 月初来 libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6353,7 +6365,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6373,7 +6385,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6429,7 +6441,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6441,7 +6453,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6482,7 +6494,7 @@ データ収集 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6494,7 +6506,7 @@ 保有資産を検索... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6562,11 +6574,11 @@ アクティビティ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6574,7 +6586,7 @@ 配当利回り apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6630,7 +6642,7 @@ アクティビティを削除する libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6662,7 +6674,7 @@ ページにジャンプ... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6710,7 +6722,7 @@ Include in apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6882,7 +6894,7 @@ View Holding libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6970,11 +6982,11 @@ キャンセル apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7050,7 +7062,7 @@ Close apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7174,7 +7186,7 @@ Performance with currency effect Performance apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7198,7 +7210,7 @@ Change with currency effect Change apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7312,6 +7324,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7632,7 +7648,7 @@ 保存 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7748,7 +7764,7 @@ Mode apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7764,7 +7780,7 @@ Default Market Price apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7772,7 +7788,7 @@ Selector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7796,7 +7812,7 @@ HTTP Request Headers apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8041,7 +8057,7 @@ Apply apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8108,6 +8124,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Log out @@ -8577,7 +8605,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8605,7 +8633,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.ko.xlf b/apps/client/src/locales/messages.ko.xlf index 5efe7b3659..5ee8c49b70 100644 --- a/apps/client/src/locales/messages.ko.xlf +++ b/apps/client/src/locales/messages.ko.xlf @@ -268,11 +268,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -312,7 +312,7 @@ 현금 잔액 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -328,7 +328,7 @@ 플랫폼 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -344,7 +344,7 @@ 현금 잔액 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -368,7 +368,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -404,7 +404,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -444,11 +444,11 @@ 통화 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -468,7 +468,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -504,11 +504,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -548,7 +548,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -588,7 +588,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -628,7 +628,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -644,7 +644,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -752,7 +752,7 @@ 계좌 검색... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -768,7 +768,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -792,7 +792,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -872,11 +872,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -888,7 +888,7 @@ 데이터 수집 빈도 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -1032,11 +1032,11 @@ 섹터 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -1044,7 +1044,7 @@ 국가 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -1052,7 +1052,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1064,15 +1064,15 @@ 섹터 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1084,15 +1084,15 @@ 국가 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1100,7 +1100,7 @@ 심볼 매핑 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -1140,7 +1140,7 @@ 스크래퍼 설정 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -1148,7 +1148,7 @@ 메모 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1164,7 +1164,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1204,7 +1204,7 @@ 이름, 심볼 또는 ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1364,11 +1364,11 @@ 링크 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1608,7 +1608,7 @@ 기준 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1620,7 +1620,7 @@ 현재 시장 분위기 libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1868,7 +1868,7 @@ 또는 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1948,7 +1948,7 @@ 수수료 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2044,7 +2044,7 @@ 최저가 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -2052,7 +2052,7 @@ 최고가 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -2060,7 +2060,7 @@ 수량 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2068,7 +2068,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2080,7 +2080,7 @@ 데이터 결함 보고 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -2260,7 +2260,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -2272,7 +2272,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -2284,7 +2284,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -2304,7 +2304,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -2324,7 +2324,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -2504,7 +2504,7 @@ 장소 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -2824,7 +2824,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2928,7 +2928,7 @@ 시장 데이터 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -2968,11 +2968,11 @@ 개요 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -2984,7 +2984,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -3368,7 +3368,7 @@ 보유 종목 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -3420,7 +3420,7 @@ 시장 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -3615,6 +3615,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Ghostfolio인가요? @@ -3856,7 +3864,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -3932,15 +3940,15 @@ 거래 내역 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -3956,11 +3964,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3979,14 +3987,6 @@ 126 - - Do you really want to delete these activities? - 정말로 이 거래들을 삭제하시겠습니까? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - Update activity 거래 수정 @@ -4064,7 +4064,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -4076,11 +4076,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -4092,11 +4092,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -4432,11 +4432,11 @@ 배당금 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5281,11 +5281,11 @@ 거래 내역 내보내기 libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -5293,11 +5293,11 @@ 초안을 달력 파일로 내보내기 libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -5305,7 +5305,7 @@ 초안 libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -5313,7 +5313,7 @@ 클론 libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -5321,7 +5321,7 @@ 초안을 달력 파일로 내보내기 libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -5329,7 +5329,11 @@ 정말로 이 거래를 삭제하시겠습니까? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -5461,7 +5465,7 @@ 관심 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5529,7 +5533,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -5557,15 +5561,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5589,15 +5593,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5781,7 +5785,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -5789,13 +5793,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag 꼬리표 @@ -5865,7 +5877,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -5925,7 +5937,7 @@ 주식 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -6077,7 +6089,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6197,7 +6209,7 @@ 시험 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6273,7 +6285,7 @@ 보유 포지션 종료 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6325,7 +6337,7 @@ 연초 현재 libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6333,7 +6345,7 @@ 이번주 현재까지 libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6341,7 +6353,7 @@ 월간 누계 libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6353,7 +6365,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6373,7 +6385,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6429,7 +6441,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6441,7 +6453,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6482,7 +6494,7 @@ 데이터 수집 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6494,7 +6506,7 @@ 보유 종목 검색... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6562,11 +6574,11 @@ 거래 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6574,7 +6586,7 @@ 배당수익률 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6630,7 +6642,7 @@ 거래 삭제 libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6662,7 +6674,7 @@ 페이지 이동... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6710,7 +6722,7 @@ 포함 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6882,7 +6894,7 @@ 보유 종목 보기 libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6970,11 +6982,11 @@ 취소 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7050,7 +7062,7 @@ 닫다 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7174,7 +7186,7 @@ 환율 효과 반영 수익률 수익률 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7198,7 +7210,7 @@ 환율 효과 반영 변동 변동 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7312,6 +7324,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7632,7 +7648,7 @@ 구하다 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7748,7 +7764,7 @@ 방법 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7764,7 +7780,7 @@ 기본 시장 가격 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7772,7 +7788,7 @@ 선택자 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7796,7 +7812,7 @@ HTTP 요청 헤더 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8041,7 +8057,7 @@ 적용하다 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8108,6 +8124,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out 로그아웃 @@ -8577,7 +8605,7 @@ 자산 프로필 관리 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8605,7 +8633,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 585a06f79a..fccb994a9c 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -66,11 +66,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -114,7 +114,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -150,7 +150,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -210,11 +210,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -254,7 +254,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -294,7 +294,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -338,7 +338,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -422,7 +422,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -462,7 +462,7 @@ Zoek een account... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -478,7 +478,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -502,7 +502,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -518,11 +518,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -710,7 +710,7 @@ Huidig marktsentiment libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -854,7 +854,7 @@ of apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -998,15 +998,15 @@ Sectoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1018,15 +1018,15 @@ Landen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1050,7 +1050,7 @@ Gegevensstoring melden apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -1098,7 +1098,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -1110,7 +1110,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -1122,7 +1122,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -1142,7 +1142,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -1162,7 +1162,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -1342,7 +1342,7 @@ Locatie apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -1454,7 +1454,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1502,11 +1502,11 @@ Valuta apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1526,7 +1526,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -1534,7 +1534,7 @@ Saldo apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1550,7 +1550,7 @@ Platform apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1782,11 +1782,11 @@ Overzicht apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -1798,7 +1798,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -1822,7 +1822,7 @@ Markten apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -2006,7 +2006,7 @@ Posities apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -2078,7 +2078,7 @@ Naam, symbool of ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2106,7 +2106,7 @@ Hoeveelheid apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2114,7 +2114,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2130,7 +2130,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -2138,7 +2138,7 @@ Opmerking apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2154,7 +2154,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -2162,15 +2162,15 @@ Activiteiten apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -2186,11 +2186,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2398,7 +2398,7 @@ Concept libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -2410,11 +2410,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -2422,11 +2422,11 @@ Activiteiten exporteren libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -2434,11 +2434,11 @@ Concept exporteren als ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -2446,7 +2446,7 @@ Kloon libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -2454,7 +2454,7 @@ Concept exporteren als ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -2462,7 +2462,11 @@ Wil je deze activiteit echt verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -2594,7 +2598,7 @@ Maximale prijs apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -2634,11 +2638,11 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -2646,7 +2650,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -2654,7 +2658,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2666,7 +2670,7 @@ Minimale prijs apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -2690,7 +2694,7 @@ Rente apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2818,7 +2822,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -2958,7 +2962,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -2978,15 +2982,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3014,7 +3018,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -3022,13 +3026,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Label @@ -3066,7 +3078,7 @@ Equity apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -3286,7 +3298,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3346,7 +3358,7 @@ Frequentie van gegevensverzameling apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -3370,7 +3382,7 @@ Symbool toewijzen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -3386,11 +3398,11 @@ Dividend apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3430,15 +3442,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3486,7 +3498,7 @@ Marktgegevens apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -3562,11 +3574,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -3938,7 +3950,7 @@ Kosten apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4101,14 +4113,6 @@ 254 - - Do you really want to delete these activities? - Weet je zeker dat je alle activiteiten wilt verwijderen? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - By ETF Provider Per ETF-aanbieder @@ -4154,11 +4158,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4566,7 +4570,7 @@ Scraper instellingen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -5257,6 +5261,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Waarom Ghostfolio? @@ -5756,7 +5768,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -5828,7 +5840,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -6120,7 +6132,7 @@ Contant Saldo apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -6164,7 +6176,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6260,7 +6272,7 @@ Sluit Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6300,7 +6312,7 @@ Week tot nu toe libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6312,7 +6324,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6320,7 +6332,7 @@ Maand tot nu toe libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6332,7 +6344,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6348,7 +6360,7 @@ Jaar tot nu toe libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6404,7 +6416,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6416,7 +6428,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6432,7 +6444,7 @@ Data Verzamelen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6444,7 +6456,7 @@ Zoek een positie... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6537,11 +6549,11 @@ Activiteit apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6549,7 +6561,7 @@ Dividendrendement apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6605,7 +6617,7 @@ Verwijder Activiteiten libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6629,7 +6641,7 @@ Ga naar een pagina... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6685,7 +6697,7 @@ Opnemen in apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6921,7 +6933,7 @@ Bekijk Holding libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6977,11 +6989,11 @@ Annuleren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7033,7 +7045,7 @@ Sluiten apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7125,7 +7137,7 @@ Verandering met valuta-effect Verandering apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7141,7 +7153,7 @@ Prestaties met valuta-effect Prestaties apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7287,6 +7299,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7607,7 +7623,7 @@ Opslaan apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7739,7 +7755,7 @@ Standaard Marktprijs apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7747,7 +7763,7 @@ Modus apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7763,7 +7779,7 @@ Kiezer apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7771,7 +7787,7 @@ HTTP Verzoek Headers apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8016,7 +8032,7 @@ Toepassen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8107,6 +8123,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Uitloggen @@ -8576,7 +8604,7 @@ Beheer activaprofiel apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8604,7 +8632,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index d07646ecde..502faf9f6e 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -267,11 +267,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -311,7 +311,7 @@ Saldo Gotówkowe apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -327,7 +327,7 @@ Platforma apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -359,7 +359,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -395,7 +395,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -435,11 +435,11 @@ Waluta apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -459,7 +459,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -495,11 +495,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -539,7 +539,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -579,7 +579,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -619,7 +619,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -635,7 +635,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -743,7 +743,7 @@ Find an account... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -759,7 +759,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -783,7 +783,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -863,11 +863,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -879,7 +879,7 @@ Data Gathering Frequency apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -999,11 +999,11 @@ Sektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -1011,7 +1011,7 @@ Kraj apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -1019,7 +1019,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1031,15 +1031,15 @@ Sektory apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1051,15 +1051,15 @@ Kraje apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1067,7 +1067,7 @@ Mapowanie Symboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -1107,7 +1107,7 @@ Konfiguracja Scrapera apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -1115,7 +1115,7 @@ Notatka apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1131,7 +1131,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1171,7 +1171,7 @@ Nazwa, symbol lub ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1331,11 +1331,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1575,7 +1575,7 @@ Poziom Odniesienia (Benchmark) apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1587,7 +1587,7 @@ Obecny Nastrój Rynkowy libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1835,7 +1835,7 @@ lub apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1915,7 +1915,7 @@ Opłaty apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2011,7 +2011,7 @@ Cena Minimalna apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -2019,7 +2019,7 @@ Cena Maksymalna apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -2027,7 +2027,7 @@ Ilość apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2035,7 +2035,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2047,7 +2047,7 @@ Zgłoś Błąd Danych apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -2227,7 +2227,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -2239,7 +2239,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -2251,7 +2251,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -2271,7 +2271,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -2291,7 +2291,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -2471,7 +2471,7 @@ Ustawienia Regionalne apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -2791,7 +2791,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2895,7 +2895,7 @@ Dane Rynkowe apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -2935,11 +2935,11 @@ Przegląd apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -2951,7 +2951,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -3335,7 +3335,7 @@ Inwestycje apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -3387,7 +3387,7 @@ Rynki apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -3582,6 +3582,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Dlaczego Ghostfolio? @@ -3823,7 +3831,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -3899,15 +3907,15 @@ Aktywności apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -3923,11 +3931,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3946,14 +3954,6 @@ 126 - - Do you really want to delete these activities? - Czy na pewno chcesz usunąć te aktywności? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - Update activity Aktualizuj aktywność @@ -4031,7 +4031,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -4043,11 +4043,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -4059,11 +4059,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -4399,11 +4399,11 @@ Dywidenda apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5228,11 +5228,11 @@ Eksportuj Działalności libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -5240,11 +5240,11 @@ Eksportuj Wersje Robocze jako ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -5252,7 +5252,7 @@ Przygotuj Wstępną Wersję libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -5260,7 +5260,7 @@ Sklonuj libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -5268,7 +5268,7 @@ Eksportuj Wersję Roboczą jako ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -5276,7 +5276,11 @@ Czy na pewno chcesz usunąć tę działalność? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -5384,7 +5388,7 @@ Odsetki apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5452,7 +5456,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -5480,15 +5484,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5512,15 +5516,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5704,7 +5708,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -5712,13 +5716,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Tag @@ -5788,7 +5800,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -5848,7 +5860,7 @@ Kapitał apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -6000,7 +6012,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6120,7 +6132,7 @@ Salda Gotówkowe apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -6164,7 +6176,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6260,7 +6272,7 @@ Zamknij pozycję apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6300,7 +6312,7 @@ Dotychczasowy tydzień libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6312,7 +6324,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6320,7 +6332,7 @@ Od początku miesiąca libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6332,7 +6344,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6348,7 +6360,7 @@ Od początku roku libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6404,7 +6416,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6416,7 +6428,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6432,7 +6444,7 @@ Gromadzenie Danych apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6444,7 +6456,7 @@ Find a holding... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6537,11 +6549,11 @@ Aktywność apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6549,7 +6561,7 @@ Dochód z Dywidendy apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6605,7 +6617,7 @@ Usuń aktywności libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6629,7 +6641,7 @@ Jump to a page... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6685,7 +6697,7 @@ Uwzględnij w apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6921,7 +6933,7 @@ Podgląd inwestycji libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6977,11 +6989,11 @@ Anuluj apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7033,7 +7045,7 @@ Zamknij apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7125,7 +7137,7 @@ Zmiana z efektem walutowym Zmiana apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7141,7 +7153,7 @@ Wydajność z efektem walutowym Wydajność apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7287,6 +7299,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7607,7 +7623,7 @@ Zapisz apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7739,7 +7755,7 @@ Domyślna cena rynkowa apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7747,7 +7763,7 @@ Tryb apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7763,7 +7779,7 @@ Selektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7771,7 +7787,7 @@ Nagłówki żądań HTTP apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8016,7 +8032,7 @@ Zatwierdź apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8107,6 +8123,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Wyloguj się @@ -8576,7 +8604,7 @@ Zarządzaj profilem aktywów apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8604,7 +8632,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 8aa2ecf932..a89f05adb4 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -58,11 +58,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -102,7 +102,7 @@ Plataforma apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -122,7 +122,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -158,7 +158,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -198,11 +198,11 @@ Moeda apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -222,7 +222,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -230,7 +230,7 @@ Saldo disponível em dinheiro apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -274,11 +274,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -318,7 +318,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -358,7 +358,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -394,7 +394,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -486,7 +486,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -526,7 +526,7 @@ Find an account... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -542,7 +542,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -566,7 +566,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -590,11 +590,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -858,7 +858,7 @@ Referência apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -870,7 +870,7 @@ Tom do Mercado Atual libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1026,7 +1026,7 @@ ou apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1178,7 +1178,7 @@ Preço Mínimo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -1186,7 +1186,7 @@ Preço Máximo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -1194,7 +1194,7 @@ Quantidade apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1202,7 +1202,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1222,11 +1222,11 @@ Setor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -1234,7 +1234,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -1242,7 +1242,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1254,15 +1254,15 @@ Setores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1274,15 +1274,15 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1306,7 +1306,7 @@ Dados do Relatório com Problema apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -1354,7 +1354,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -1366,7 +1366,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -1378,7 +1378,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -1398,7 +1398,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -1418,7 +1418,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -1666,7 +1666,7 @@ Localidade apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -1830,7 +1830,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2086,11 +2086,11 @@ Visão geral apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -2102,7 +2102,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -2126,7 +2126,7 @@ Mercados apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -2166,15 +2166,15 @@ Atividades apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -2190,11 +2190,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2258,7 +2258,7 @@ Nome, símbolo or ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2290,7 +2290,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -2298,7 +2298,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2314,7 +2314,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -2606,7 +2606,7 @@ Posições apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -2846,7 +2846,7 @@ Rascunho libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -2858,11 +2858,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -2870,11 +2870,11 @@ Exportar Atividades libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -2882,11 +2882,11 @@ Exportar Rascunhos como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -2894,7 +2894,7 @@ Clonar libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -2902,7 +2902,7 @@ Exportar Rascunho como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -2910,7 +2910,11 @@ Deseja realmente eliminar esta atividade? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -2966,7 +2970,7 @@ Juros apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2998,7 +3002,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -3018,15 +3022,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3094,7 +3098,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -3102,13 +3106,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Marcador @@ -3146,7 +3158,7 @@ Ações apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -3298,7 +3310,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3358,7 +3370,7 @@ Data Gathering Frequency apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -3382,7 +3394,7 @@ Mapeamento de Símbolo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -3398,7 +3410,7 @@ Dados de Mercado apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -3462,11 +3474,11 @@ Dividendos apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3506,15 +3518,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3562,11 +3574,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -3938,7 +3950,7 @@ Taxas apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4101,14 +4113,6 @@ 254 - - Do you really want to delete these activities? - Deseja mesmo eliminar estas atividades? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - By ETF Provider Por Prestador de ETF @@ -4154,11 +4158,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4566,7 +4570,7 @@ Configuração do raspador apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -5257,6 +5261,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Por que Ghostfolio? @@ -5756,7 +5768,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -5828,7 +5840,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -6120,7 +6132,7 @@ Saldos de caixa apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -6164,7 +6176,7 @@ Teste apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6260,7 +6272,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6300,7 +6312,7 @@ Semana até agora libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6312,7 +6324,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6320,7 +6332,7 @@ Do mês até a data libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6332,7 +6344,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6348,7 +6360,7 @@ No acumulado do ano libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6404,7 +6416,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6416,7 +6428,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6432,7 +6444,7 @@ Coleta de dados apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6444,7 +6456,7 @@ Find a holding... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6537,11 +6549,11 @@ Atividade apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6549,7 +6561,7 @@ Rendimento de dividendos apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6605,7 +6617,7 @@ Excluir atividades libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6629,7 +6641,7 @@ Jump to a page... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6685,7 +6697,7 @@ Include in apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6921,7 +6933,7 @@ View Holding libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6977,11 +6989,11 @@ Cancelar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7033,7 +7045,7 @@ Fechar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7125,7 +7137,7 @@ Change with currency effect Change apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7141,7 +7153,7 @@ Performance with currency effect Performance apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7287,6 +7299,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7607,7 +7623,7 @@ Guardar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7739,7 +7755,7 @@ Preço de mercado padrão apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7747,7 +7763,7 @@ Mode apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7763,7 +7779,7 @@ Selector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7771,7 +7787,7 @@ HTTP Request Headers apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8016,7 +8032,7 @@ Apply apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8107,6 +8123,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Log out @@ -8576,7 +8604,7 @@ Gerenciar perfil de ativos apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8604,7 +8632,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 8630fea58b..dce74dcfab 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -239,11 +239,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -283,7 +283,7 @@ Nakit Bakiye apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -299,7 +299,7 @@ Platform apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -319,7 +319,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -355,7 +355,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -395,11 +395,11 @@ Para Birimi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -419,7 +419,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -455,11 +455,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -499,7 +499,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -539,7 +539,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -575,7 +575,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -667,7 +667,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -707,7 +707,7 @@ Find an account... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -723,7 +723,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -747,7 +747,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -815,11 +815,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -831,7 +831,7 @@ Data Gathering Frequency apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -919,11 +919,11 @@ Sektör apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -931,7 +931,7 @@ Ülke apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -939,7 +939,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -951,15 +951,15 @@ Sektörler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -971,15 +971,15 @@ Ülkeler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -987,7 +987,7 @@ Sembol Eşleştirme apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -1027,7 +1027,7 @@ Veri Toplayıcı Yapılandırması apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -1035,7 +1035,7 @@ Not apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1051,7 +1051,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1067,7 +1067,7 @@ Ad, sembol ya da ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1227,11 +1227,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1423,7 +1423,7 @@ Karşılaştırma Ölçütü apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1435,7 +1435,7 @@ Piyasa Psikolojisi libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1683,7 +1683,7 @@ veya apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1847,7 +1847,7 @@ Asgari Fiyat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -1855,7 +1855,7 @@ Azami Fiyat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -1863,7 +1863,7 @@ Miktar apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1871,7 +1871,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1883,7 +1883,7 @@ Komisyon apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -1895,7 +1895,7 @@ Rapor Veri Sorunu apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -2075,7 +2075,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -2087,7 +2087,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -2099,7 +2099,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -2119,7 +2119,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -2139,7 +2139,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -2319,7 +2319,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2391,7 +2391,7 @@ Piyasa Verileri apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -2431,11 +2431,11 @@ Özet apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -2447,7 +2447,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -2843,7 +2843,7 @@ Varlıklar apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -2895,7 +2895,7 @@ Piyasalar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -3066,6 +3066,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Neden Ghostfolio? @@ -3323,15 +3331,15 @@ İşlemler apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -3347,11 +3355,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3370,14 +3378,6 @@ 126 - - Do you really want to delete these activities? - Tüm işlemlerinizi silmeyi gerçekten istiyor musunuz? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - Update activity İşlemi Güncelle @@ -3431,7 +3431,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -3443,11 +3443,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -3459,11 +3459,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -3807,11 +3807,11 @@ Temettü apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4768,7 +4768,7 @@ Yerel Ayarlar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -4936,11 +4936,11 @@ İşlemleri Dışa Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -4948,11 +4948,11 @@ Taslakları ICS Olarak Dışa Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -4960,7 +4960,7 @@ Taslak libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -4968,7 +4968,7 @@ Klonla libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -4976,7 +4976,7 @@ Taslakları ICS Olarak Dışa Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -4984,7 +4984,11 @@ TBu işlemi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -5072,7 +5076,7 @@ Faiz apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5140,7 +5144,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -5168,15 +5172,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5200,15 +5204,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5392,7 +5396,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -5400,13 +5404,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Etiket @@ -5520,7 +5532,7 @@ Menkul Kıymet apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -5672,7 +5684,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5764,7 +5776,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -5836,7 +5848,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -6120,7 +6132,7 @@ Nakit Bakiyeleri apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -6164,7 +6176,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6260,7 +6272,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6300,7 +6312,7 @@ Hafta içi libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6312,7 +6324,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6320,7 +6332,7 @@ Ay içi libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6332,7 +6344,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6348,7 +6360,7 @@ Yıl içi libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6404,7 +6416,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6416,7 +6428,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6432,7 +6444,7 @@ Veri Toplama apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6444,7 +6456,7 @@ Find a holding... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6537,11 +6549,11 @@ Etkinlik apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6549,7 +6561,7 @@ Temettü Getiri apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6605,7 +6617,7 @@ Etkinlikleri Sil libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6629,7 +6641,7 @@ Jump to a page... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6685,7 +6697,7 @@ Include in apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6921,7 +6933,7 @@ View Holding libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6977,11 +6989,11 @@ İptal Et apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7033,7 +7045,7 @@ Kapat apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7125,7 +7137,7 @@ Kur farkı etkisiyle değişim Değişim apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7141,7 +7153,7 @@ Kur farkı etkisiyle performans Performans apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7287,6 +7299,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7607,7 +7623,7 @@ Kaydet apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7739,7 +7755,7 @@ Varsayılan Piyasa Fiyatı apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7747,7 +7763,7 @@ Mod apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7763,7 +7779,7 @@ Seçici apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7771,7 +7787,7 @@ HTTP İstek Başlıkları apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8016,7 +8032,7 @@ Uygula apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8107,6 +8123,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Oturumu kapat @@ -8576,7 +8604,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8604,7 +8632,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index fa110490aa..be6b41b0fa 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -407,7 +407,7 @@ Баланс готівки apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -423,7 +423,7 @@ Платформа apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -439,7 +439,7 @@ Баланс готівки apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -463,7 +463,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -499,7 +499,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -539,11 +539,11 @@ Валюта apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -563,7 +563,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -599,11 +599,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -643,7 +643,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -683,7 +683,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -727,11 +727,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -751,7 +751,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -775,7 +775,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -963,7 +963,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -979,11 +979,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -995,7 +995,7 @@ Частота збору даних apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -1119,11 +1119,11 @@ Сектор apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -1131,7 +1131,7 @@ Країна apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -1139,7 +1139,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1151,15 +1151,15 @@ Сектори apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1171,15 +1171,15 @@ Країни apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1187,7 +1187,7 @@ Зіставлення символів apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -1227,7 +1227,7 @@ Конфігурація скребка apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -1235,7 +1235,7 @@ Тест apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -1243,11 +1243,11 @@ URL apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1271,7 +1271,7 @@ Примітка apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1287,7 +1287,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1335,7 +1335,7 @@ Назва, символ або ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1435,7 +1435,7 @@ Збір даних apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1447,7 +1447,7 @@ Знайти актив... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -1655,7 +1655,7 @@ або apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1859,7 +1859,7 @@ Порівняльний показник apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1871,7 +1871,7 @@ Поточний ринковий настрій libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1951,7 +1951,7 @@ Зміна з урахуванням валютного ефекту Зміна apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -1967,7 +1967,7 @@ Прибутковість з урахуванням валютного ефекту валюти Прибутковість apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -1975,7 +1975,7 @@ Мінімальна ціна apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -1983,7 +1983,7 @@ Максимальна ціна apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -1991,7 +1991,7 @@ Кількість apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1999,7 +1999,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2011,7 +2011,7 @@ Дохідність дивіденду apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -2019,7 +2019,7 @@ Комісії apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2031,11 +2031,11 @@ Активність apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -2043,7 +2043,7 @@ Повідомити про збій даних apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -2415,7 +2415,7 @@ Зберегти apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2695,7 +2695,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -2707,7 +2707,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -2719,7 +2719,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -2739,7 +2739,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -2759,7 +2759,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -2995,7 +2995,7 @@ Перейти до сторінки... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -3019,7 +3019,7 @@ Включити до apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -3091,7 +3091,7 @@ Локалізація apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -3423,7 +3423,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3539,7 +3539,7 @@ Ринкові дані apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -3579,11 +3579,11 @@ Огляд apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -3595,7 +3595,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -4004,7 +4004,7 @@ Активи apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -4056,7 +4056,7 @@ Ринки apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -4259,6 +4259,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? Чому Ghostfolio? @@ -4508,7 +4516,7 @@ Конвертувати в apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -4584,15 +4592,15 @@ Активності apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -4608,11 +4616,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -4704,7 +4712,7 @@ Знайти рахунок... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -4720,7 +4728,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -4736,7 +4744,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -4748,11 +4756,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -4764,11 +4772,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -5136,11 +5144,11 @@ Дивіденди apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5204,7 +5212,7 @@ Закрити позицію apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6221,6 +6229,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -6479,11 +6491,11 @@ Експорт активності libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -6491,11 +6503,11 @@ Експортувати чернетки як ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -6503,7 +6515,7 @@ Видалити активності libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6511,7 +6523,7 @@ Чернетка libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -6519,7 +6531,7 @@ Клонувати libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -6527,15 +6539,7 @@ Експортувати чернетку як ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 - - - - Do you really want to delete these activities? - Ви дійсно хочете видалити ці дії? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 + 516 @@ -6543,7 +6547,11 @@ Ви дійсно хочете видалити цю активність? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -6551,7 +6559,7 @@ Тиждень до дати libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6563,7 +6571,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6571,7 +6579,7 @@ Місяць до дати libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6583,7 +6591,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6599,7 +6607,7 @@ Рік до дати libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6619,7 +6627,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6631,7 +6639,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6795,7 +6803,7 @@ Відсотки apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6887,7 +6895,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -6915,15 +6923,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -6947,15 +6955,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -6979,11 +6987,11 @@ Скасувати apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7043,7 +7051,7 @@ Закрити apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7263,7 +7271,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7271,13 +7279,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag Тег @@ -7363,7 +7379,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -7423,7 +7439,7 @@ Капітал apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -7583,7 +7599,7 @@ Інвестований капітал apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -7607,7 +7623,7 @@ Переглянути позицію libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -7739,7 +7755,7 @@ Стандартна ринкова ціна apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7747,7 +7763,7 @@ Режим apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7763,7 +7779,7 @@ Селектор apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7771,7 +7787,7 @@ Заголовки HTTP-запиту apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8016,7 +8032,7 @@ Застосувати apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8107,6 +8123,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out Вийти @@ -8576,7 +8604,7 @@ Керувати профілем активу apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8604,7 +8632,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 528c478cad..c0297b1fa9 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -251,11 +251,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -290,7 +290,7 @@ Cash Balance apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -305,7 +305,7 @@ Platform apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -320,7 +320,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -342,7 +342,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -378,7 +378,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -415,11 +415,11 @@ Currency apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -439,7 +439,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -474,11 +474,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -517,7 +517,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -556,7 +556,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -592,7 +592,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -607,7 +607,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -703,7 +703,7 @@ Find an account... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -718,7 +718,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -740,7 +740,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -812,11 +812,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -827,7 +827,7 @@ Data Gathering Frequency apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -955,18 +955,18 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 Country apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -974,7 +974,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -985,15 +985,15 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1004,22 +1004,22 @@ Countries apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 Symbol Mapping apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -1054,14 +1054,14 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1077,7 +1077,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1112,7 +1112,7 @@ Name, symbol or ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1254,11 +1254,11 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1474,7 +1474,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1485,7 +1485,7 @@ Current Market Mood libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1709,7 +1709,7 @@ or apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1783,7 +1783,7 @@ Fees apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -1869,21 +1869,21 @@ Minimum Price apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 Maximum Price apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 Quantity apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1891,7 +1891,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1902,7 +1902,7 @@ Report Data Glitch apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -2070,7 +2070,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -2081,7 +2081,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -2092,7 +2092,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -2110,7 +2110,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -2128,7 +2128,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -2287,7 +2287,7 @@ Locale apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -2579,7 +2579,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2673,7 +2673,7 @@ Market Data apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -2710,11 +2710,11 @@ Overview apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -2726,7 +2726,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -3084,7 +3084,7 @@ Holdings apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -3133,7 +3133,7 @@ Markets apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -3309,6 +3309,13 @@ 84 + + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? @@ -3527,7 +3534,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -3594,15 +3601,15 @@ Activities apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -3618,11 +3625,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3641,13 +3648,6 @@ 126 - - Do you really want to delete these activities? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - Update activity @@ -3716,7 +3716,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -3727,11 +3727,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -3742,11 +3742,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -4045,11 +4045,11 @@ Dividend apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4812,50 +4812,54 @@ Export Activities libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 Export Drafts as ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 Draft libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 Clone libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 Export Draft as ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 Do you really want to delete this activity? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -4971,7 +4975,7 @@ Interest apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5035,7 +5039,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -5061,15 +5065,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5092,15 +5096,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5259,7 +5263,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -5267,13 +5271,20 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag @@ -5336,7 +5347,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -5390,7 +5401,7 @@ Equity apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -5524,7 +5535,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5633,7 +5644,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -5701,7 +5712,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -5747,21 +5758,21 @@ Year to date libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 Week to date libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 Month to date libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -5772,7 +5783,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -5790,7 +5801,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -5841,7 +5852,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -5852,7 +5863,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -5889,7 +5900,7 @@ Data Gathering apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -5900,7 +5911,7 @@ Find a holding... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -5960,18 +5971,18 @@ Activity apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 Dividend Yield apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6020,7 +6031,7 @@ Delete Activities libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6048,7 +6059,7 @@ Jump to a page... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6090,7 +6101,7 @@ Include in apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6247,7 +6258,7 @@ View Holding libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6325,11 +6336,11 @@ Cancel apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -6401,7 +6412,7 @@ Close apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -6515,7 +6526,7 @@ Performance with currency effect Performance apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -6536,7 +6547,7 @@ Change with currency effect Change apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -6638,6 +6649,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -6924,7 +6939,7 @@ Save apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7031,7 +7046,7 @@ Mode apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7045,14 +7060,14 @@ Default Market Price apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 Selector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7073,7 +7088,7 @@ HTTP Request Headers apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -7292,7 +7307,7 @@ Apply apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -7352,6 +7367,17 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out @@ -7768,7 +7794,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -7793,7 +7819,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 9cb1e72baf..a70be75d61 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -268,11 +268,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 5 + 7 libs/ui/src/lib/activities-table/activities-table.component.html - 183 + 197 @@ -312,7 +312,7 @@ 现金余额 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 54 + 55 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -328,7 +328,7 @@ 平台 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 112 + 113 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -344,7 +344,7 @@ 现金余额 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 169 + 170 @@ -368,7 +368,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 332 + 333 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -404,7 +404,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 161 + 175 libs/ui/src/lib/benchmark/benchmark.component.html @@ -444,11 +444,11 @@ 货币 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 216 + 217 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 339 + 340 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -468,7 +468,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 303 + 317 @@ -504,11 +504,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 284 + 298 libs/ui/src/lib/activities-table/activities-table.component.html - 320 + 334 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -548,7 +548,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 483 + 497 @@ -588,7 +588,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 527 libs/ui/src/lib/benchmark/benchmark.component.html @@ -628,7 +628,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 486 + 487 @@ -644,7 +644,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 197 + 198 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -752,7 +752,7 @@ Find an account... libs/ui/src/lib/assistant/assistant.component.ts - 447 + 448 @@ -768,7 +768,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 192 + 206 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -792,7 +792,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 113 + 114 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html @@ -872,11 +872,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 235 + 236 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 221 + 222 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -888,7 +888,7 @@ Data Gathering Frequency apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 467 + 468 @@ -1008,11 +1008,11 @@ 行业 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 280 + 281 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 270 + 271 @@ -1020,7 +1020,7 @@ 国家 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 295 + 296 apps/client/src/app/components/admin-users/admin-users.html @@ -1028,7 +1028,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 284 + 285 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1040,15 +1040,15 @@ 行业 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 301 + 302 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 420 + 421 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 290 + 291 apps/client/src/app/pages/public/public-page.html @@ -1060,15 +1060,15 @@ 国家 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 311 + 312 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 431 + 432 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 302 + 303 @@ -1076,7 +1076,7 @@ 代码映射 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 409 + 410 @@ -1116,7 +1116,7 @@ 刮削配置 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 509 + 510 @@ -1124,7 +1124,7 @@ 笔记 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 455 + 456 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1140,7 +1140,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 370 + 384 @@ -1180,7 +1180,7 @@ 名称、代码或 ISIN apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 133 + 134 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1340,11 +1340,11 @@ 网址 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 442 + 443 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 588 + 589 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1584,7 +1584,7 @@ 基准 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 401 + 402 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -1596,7 +1596,7 @@ 当前市场情绪 libs/ui/src/lib/fear-and-greed-index/fear-and-greed-index.component.html - 22 + 23 @@ -1844,7 +1844,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 168 apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -1924,7 +1924,7 @@ 费用 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 210 + 211 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2020,7 +2020,7 @@ 最低价格 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 131 + 132 @@ -2028,7 +2028,7 @@ 最高价格 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 149 + 150 @@ -2036,7 +2036,7 @@ 数量 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 159 + 160 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2044,7 +2044,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 213 + 227 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -2056,7 +2056,7 @@ 报告数据故障 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 463 + 464 @@ -2236,7 +2236,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 365 + 366 @@ -2248,7 +2248,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -2260,7 +2260,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -2280,7 +2280,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -2300,7 +2300,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 415 + 416 @@ -2480,7 +2480,7 @@ 语言环境 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 547 + 548 apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -2800,7 +2800,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 395 + 396 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2904,7 +2904,7 @@ 市场数据 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 417 + 418 libs/common/src/lib/routes/routes.ts @@ -2944,11 +2944,11 @@ 概述 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 41 + 42 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 114 + 115 apps/client/src/app/components/header/header.component.html @@ -2960,7 +2960,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 47 + 48 apps/client/src/app/pages/admin/admin-page.component.ts @@ -3344,7 +3344,7 @@ 持仓 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 126 + 127 apps/client/src/app/components/home-holdings/home-holdings.html @@ -3396,7 +3396,7 @@ 市场 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 403 + 404 apps/client/src/app/components/footer/footer.component.html @@ -3591,6 +3591,14 @@ 84 + + Do you really want to delete these activities? + Do you really want to delete these activities? + + libs/ui/src/lib/activities-table/activities-table.component.ts + 334 + + Why Ghostfolio? 为什么使用Ghostfolio @@ -3840,7 +3848,7 @@ Convert to apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 174 + 175 @@ -3916,15 +3924,15 @@ 活动 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 102 + 103 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 137 + 138 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 244 + 245 apps/client/src/app/components/admin-overview/admin-overview.html @@ -3940,11 +3948,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 233 + 234 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 361 + 362 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3963,14 +3971,6 @@ 126 - - Do you really want to delete these activities? - 您确定要删除这些活动吗? - - libs/ui/src/lib/activities-table/activities-table.component.ts - 317 - - Update activity 更新活动 @@ -4048,7 +4048,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 237 + 251 @@ -4060,11 +4060,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 28 + 30 libs/ui/src/lib/activities-table/activities-table.component.html - 406 + 420 @@ -4076,11 +4076,11 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 52 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 420 + 434 @@ -4416,11 +4416,11 @@ 股息 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 90 + 91 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 188 + 189 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5265,11 +5265,11 @@ 导出活动记录 libs/ui/src/lib/activities-table/activities-table.component.html - 64 + 72 libs/ui/src/lib/activities-table/activities-table.component.html - 434 + 448 @@ -5277,11 +5277,11 @@ 将汇票导出为 ICS libs/ui/src/lib/activities-table/activities-table.component.html - 77 + 86 libs/ui/src/lib/activities-table/activities-table.component.html - 447 + 461 @@ -5289,7 +5289,7 @@ 草稿 libs/ui/src/lib/activities-table/activities-table.component.html - 167 + 181 @@ -5297,7 +5297,7 @@ 克隆 libs/ui/src/lib/activities-table/activities-table.component.html - 492 + 506 @@ -5305,7 +5305,7 @@ 将汇票导出为 ICS libs/ui/src/lib/activities-table/activities-table.component.html - 502 + 516 @@ -5313,7 +5313,11 @@ 您确实要删除此活动吗? libs/ui/src/lib/activities-table/activities-table.component.ts - 327 + 333 + + + libs/ui/src/lib/activities-table/activities-table.component.ts + 344 @@ -5445,7 +5449,7 @@ 利息 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 78 + 79 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5513,7 +5517,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 335 + 349 libs/ui/src/lib/i18n.ts @@ -5541,15 +5545,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 253 + 254 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 349 + 350 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 244 + 245 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5573,15 +5577,15 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 262 + 263 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 365 + 366 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 253 + 254 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5757,7 +5761,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 186 + 187 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -5765,13 +5769,21 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 322 + 323 libs/ui/src/lib/i18n.ts 35 + + Export + Export + + libs/ui/src/lib/activities-table/activities-table.component.html + 68 + + Tag 标签 @@ -5841,7 +5853,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 261 + 275 libs/ui/src/lib/i18n.ts @@ -5901,7 +5913,7 @@ 股权 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 66 + 67 libs/ui/src/lib/i18n.ts @@ -6053,7 +6065,7 @@ Invested Capital apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 173 + 174 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6173,7 +6185,7 @@ 测试 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 606 + 607 @@ -6249,7 +6261,7 @@ 关闭持仓 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 450 + 451 @@ -6301,7 +6313,7 @@ 今年迄今为止 libs/ui/src/lib/assistant/assistant.component.ts - 377 + 378 @@ -6309,7 +6321,7 @@ 本周至今 libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6317,7 +6329,7 @@ 本月至今 libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6329,7 +6341,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 373 + 374 @@ -6349,7 +6361,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 369 + 370 @@ -6405,7 +6417,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 387 + 388 @@ -6417,7 +6429,7 @@ libs/ui/src/lib/assistant/assistant.component.ts - 409 + 410 @@ -6458,7 +6470,7 @@ 数据收集 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 629 + 630 apps/client/src/app/components/admin-overview/admin-overview.html @@ -6470,7 +6482,7 @@ Find a holding... libs/ui/src/lib/assistant/assistant.component.ts - 448 + 449 @@ -6538,11 +6550,11 @@ 活动 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 100 + 101 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 231 + 232 @@ -6550,7 +6562,7 @@ 股息收益率 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 198 + 199 @@ -6606,7 +6618,7 @@ 删除活动 libs/ui/src/lib/activities-table/activities-table.component.html - 92 + 105 @@ -6630,7 +6642,7 @@ Jump to a page... libs/ui/src/lib/assistant/assistant.component.ts - 449 + 450 @@ -6686,7 +6698,7 @@ 包含在 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 399 + 400 @@ -6922,7 +6934,7 @@ 查看持仓 libs/ui/src/lib/activities-table/activities-table.component.html - 473 + 487 @@ -6978,11 +6990,11 @@ 取消 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 162 + 163 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 634 + 635 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7034,7 +7046,7 @@ 关闭 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 636 + 637 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7126,7 +7138,7 @@ 含货币影响的涨跌 涨跌 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 63 + 64 @@ -7142,7 +7154,7 @@ 含货币影响的表现 表现 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 83 + 84 @@ -7288,6 +7300,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 270 + + libs/ui/src/lib/activities-table/activities-table.component.html + 101 + cannot be self-hosted @@ -7608,7 +7624,7 @@ 保存 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 645 + 646 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -7740,7 +7756,7 @@ 默认市场价格 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 519 + 520 @@ -7748,7 +7764,7 @@ 模式 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 556 + 557 @@ -7764,7 +7780,7 @@ 选择器 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 572 + 573 @@ -7772,7 +7788,7 @@ HTTP 请求标头 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 532 + 533 @@ -8017,7 +8033,7 @@ 应用 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 154 + 155 @@ -8108,6 +8124,18 @@ 142 + + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + + libs/ui/src/lib/activities-table/activities-table.component.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 102 + + Log out 登出 @@ -8577,7 +8605,7 @@ 管理资产概况 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 478 + 479 @@ -8605,7 +8633,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 101 + 102 From 0e42a62e9207e458b3db84d2606b26f18f41823b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 09:32:10 +0200 Subject: [PATCH 02/20] Task/improve color of checkboxes in type filter of activities table component (#7493) Improve color of checkboxes --- apps/client/src/styles/theme.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/client/src/styles/theme.scss b/apps/client/src/styles/theme.scss index 75ecc210df..3f81250116 100644 --- a/apps/client/src/styles/theme.scss +++ b/apps/client/src/styles/theme.scss @@ -364,6 +364,12 @@ $gf-typography: ( ) ); + @include mat.pseudo-checkbox-overrides( + ( + full-selected-icon-color: var(--gf-theme-primary-500) + ) + ); + @include mat.slide-toggle-overrides( ( selected-focus-handle-color: var(--gf-theme-primary-500), From c383eade6f193c8c9d13e1fbab04b168f5d75567 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 09:32:45 +0200 Subject: [PATCH 03/20] Task/improve language localization for DE (20260801) (#7497) * Update translations * Update changelog --- CHANGELOG.md | 6 ++++++ apps/client/src/locales/messages.de.xlf | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fe881b943..952ea923bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Improved the language localization for German (`de`) + ## 3.38.0 - 2026-07-31 ### Added diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 2765b0b4c8..b2800165a4 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -3051,7 +3051,7 @@ Export - Export + exportieren libs/ui/src/lib/activities-table/activities-table.component.html 68 @@ -5287,7 +5287,7 @@ Do you really want to delete these activities? - Do you really want to delete these activities? + Möchtest du diese Aktivitäten wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts 334 @@ -8125,7 +8125,7 @@ {VAR_PLURAL, plural, =1 {Activity} other {Activities}} - {VAR_PLURAL, plural, =1 {Activity} other {Activities}} + {VAR_PLURAL, plural, =1 {Aktivität} other {Aktivitäten}} libs/ui/src/lib/activities-table/activities-table.component.html 69 From caa9bef697fd04abdf4e9b0cbac277ed17d5fb69 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 09:45:18 +0200 Subject: [PATCH 04/20] Task/upgrade prisma to version 7.9.1 (#7498) * Update prisma to version 7.9.1 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 592 +++++++++++++++++++++++++++++++++++----------- package.json | 8 +- 3 files changed, 465 insertions(+), 136 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 952ea923bd..0512ad5bfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the language localization for German (`de`) +- Upgraded `prisma` from version `7.8.0` to `7.9.1` ## 3.38.0 - 2026-07-31 diff --git a/package-lock.json b/package-lock.json index 04a7da5a38..1e49fb135d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,8 +43,8 @@ "@nestjs/serve-static": "5.0.5", "@nestjs/throttler": "6.5.0", "@openrouter/ai-sdk-provider": "3.0.0", - "@prisma/adapter-pg": "7.8.0", - "@prisma/client": "7.8.0", + "@prisma/adapter-pg": "7.9.1", + "@prisma/client": "7.9.1", "@simplewebauthn/browser": "13.3.0", "@simplewebauthn/server": "13.3.1", "ai": "7.0.37", @@ -127,7 +127,7 @@ "@nx/storybook": "23.0.2", "@nx/web": "23.0.2", "@nx/workspace": "23.0.2", - "@prisma/config": "7.8.0", + "@prisma/config": "7.9.1", "@schematics/angular": "21.2.6", "@storybook/addon-docs": "10.1.10", "@storybook/addon-themes": "10.1.10", @@ -157,7 +157,7 @@ "nx": "23.0.2", "prettier": "3.9.6", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "7.8.0", + "prisma": "7.9.1", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "8.4.0", @@ -3908,33 +3908,33 @@ } }, "node_modules/@electric-sql/pglite": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.4.1.tgz", - "integrity": "sha512-mZ9NzzUSYPOCnxHH1oAHPRzoMFJHY472raDKwXl/+6oPbpdJ7g8LsCN4FSaIIfkiCKHhb3iF/Zqo3NYxaIhU7Q==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.4.3.tgz", + "integrity": "sha512-ichuWTgtd4mOM1G4SpyGJa5trT03lWbMypDV0fUXUCXg5hiHqVAz/bZyV68NqmkLB7WcYmj1RMJVSp8HV/v/ZQ==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@electric-sql/pglite-socket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@electric-sql/pglite-socket/-/pglite-socket-0.1.1.tgz", - "integrity": "sha512-p2hoXw3Z3LQHwTeikdZNsFBOvXGqKY2hk51BBw+8NKND8eoH+8LFOtW9Z8CQKmTJ2qqGYu82ipqiyFZOTTXNfw==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@electric-sql/pglite-socket/-/pglite-socket-0.1.3.tgz", + "integrity": "sha512-LAciWM0M1dCL8hlsxu2venbVZcdxema0BtDfpWYVqr+Y468UADw0pFWidhKw1M8sfJ8rdLT71tjMmnirf/IZRQ==", "devOptional": true, "license": "Apache-2.0", "bin": { "pglite-server": "dist/scripts/server.js" }, "peerDependencies": { - "@electric-sql/pglite": "0.4.1" + "@electric-sql/pglite": "0.4.3" } }, "node_modules/@electric-sql/pglite-tools": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@electric-sql/pglite-tools/-/pglite-tools-0.3.1.tgz", - "integrity": "sha512-C+T3oivmy9bpQvSxVqXA1UDY8cB9Eb9vZHL9zxWwEUfDixbXv4G3r2LjoTdR33LD8aomR3O9ZXEO3XEwr/cUCA==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@electric-sql/pglite-tools/-/pglite-tools-0.3.3.tgz", + "integrity": "sha512-AlzLJTRJ8+UFgK8CmxIpyIpJ0+YaFw02IiOSdYrqxwPXdSyeIShz8aa9Tq+tYFXdPwcaMp/Fc80mQZ1dkOQ/wg==", "devOptional": true, "license": "Apache-2.0", "peerDependencies": { - "@electric-sql/pglite": "0.4.1" + "@electric-sql/pglite": "0.4.3" } }, "node_modules/@emnapi/core": { @@ -10041,24 +10041,24 @@ } }, "node_modules/@prisma/adapter-pg": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/adapter-pg/-/adapter-pg-7.8.0.tgz", - "integrity": "sha512-ygb3UkerK3v8MDpXVgCISdRNDozpxh6+JVJgiIGbSr5KBgz10LLf5ejUskPGoXlsIjxsOu6nuy1JVQr2EKGSlg==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/adapter-pg/-/adapter-pg-7.9.1.tgz", + "integrity": "sha512-Ho2RK1KanQxLNSC0sR5bpiiVep10sWPLXCcxK+KXfI/Q69TMRbiafSvLPv3V9snimX72rMCqGlyJ4sBO4lKTAw==", "license": "Apache-2.0", "dependencies": { - "@prisma/driver-adapter-utils": "7.8.0", + "@prisma/driver-adapter-utils": "7.9.1", "@types/pg": "^8.16.0", "pg": "^8.16.3", "postgres-array": "3.0.4" } }, "node_modules/@prisma/client": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-7.8.0.tgz", - "integrity": "sha512-HFp3Dawv/3sU3JtlPha90IB+48lS7zHiH4LKZPjmcE8YH5P9DOXGPvo8dqOtO7MqLDd1p2hOWMcFlRT1DMblHw==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-7.9.1.tgz", + "integrity": "sha512-+xgrh2EhJVF79wC0yX5G4PI1Rdcm7Qn/nekNQ+t/O153wtNggruHal+fXHSa0QE+Tp/Cw5wvxeCEhZZ59xGm8Q==", "license": "Apache-2.0", "dependencies": { - "@prisma/client-runtime-utils": "7.8.0" + "@prisma/client-runtime-utils": "7.9.1" }, "engines": { "node": "^20.19 || ^22.12 || >=24.0" @@ -10077,15 +10077,15 @@ } }, "node_modules/@prisma/client-runtime-utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/client-runtime-utils/-/client-runtime-utils-7.8.0.tgz", - "integrity": "sha512-5NQZztQ0oY/ADFkmd9gPuweH5A1/CCY8YQPorLLO0Mu6a87mY5gsnDkzmFmIHs9NFaLnZojzgddFVN4RpKYrdw==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/client-runtime-utils/-/client-runtime-utils-7.9.1.tgz", + "integrity": "sha512-mVIBGYdO5CFmK0HvjxrtfIyQQcPdb88pSCeVQriVQPVZyDovIWblpHfOgcS8QO187j3QF0ePArH8qPhp0AU2vg==", "license": "Apache-2.0" }, "node_modules/@prisma/config": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/config/-/config-7.8.0.tgz", - "integrity": "sha512-HFESzd9rx2ZQxlK+TL7tu1HPvCqrHiL6LCxYykI2c34mvaUuIVVl3lYuicJD/MNnzgPnyeBEMlK4WTomJCV5jw==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/config/-/config-7.9.1.tgz", + "integrity": "sha512-4znKhxTmXmuPye9Z6pbIyYb5VZlkZ05qG1L6Dr4g+7oTwc6V50Bs9XirFBDdjWt+H/AabMn9aUnxBcvj8z05aA==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -10096,97 +10096,95 @@ } }, "node_modules/@prisma/debug": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-7.8.0.tgz", - "integrity": "sha512-p+QZReysDUqXC+mk17q9a+Y/qzh4c2KYliDK30buYUyfrGeTGSyfmc0AIrJRhZJrLHhRiJa9Au/J72h3C+szvA==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-7.9.1.tgz", + "integrity": "sha512-/cpVZ4itxtcgB8GHBvZtcmuEjq+lWsLrRJxFMbwZrT1RIdtuKmUm7PPGo/wzfbYpBrk+9WmmBE8CHJw2rybKDQ==", "license": "Apache-2.0" }, "node_modules/@prisma/dev": { - "version": "0.24.3", - "resolved": "https://registry.npmjs.org/@prisma/dev/-/dev-0.24.3.tgz", - "integrity": "sha512-ffHlQuKXZiaDt9Go0OnCTdJZrHxK0k7omJKNV86/VjpsXu5EIHZLK0T7JSWgvNlJwh56kW9JFu9v0qJciFzepg==", + "version": "0.24.17", + "resolved": "https://registry.npmjs.org/@prisma/dev/-/dev-0.24.17.tgz", + "integrity": "sha512-UvdZzmpFwknnfreh6Jije84ekkYGPYEJhXG1tFzCsCfQyzJifrOo38eZc0qajzvaC6OLUOrN9ML5XfCnEZL9DA==", "devOptional": true, "license": "ISC", "dependencies": { - "@electric-sql/pglite": "0.4.1", - "@electric-sql/pglite-socket": "0.1.1", - "@electric-sql/pglite-tools": "0.3.1", - "@hono/node-server": "1.19.11", + "@electric-sql/pglite": "0.4.3", + "@electric-sql/pglite-socket": "0.1.3", + "@electric-sql/pglite-tools": "0.3.3", "@prisma/get-platform": "7.2.0", "@prisma/query-plan-executor": "7.2.0", - "@prisma/streams-local": "0.1.2", + "@prisma/streams-local": "0.1.11", + "find-my-way": "9.7.0", "foreground-child": "3.3.1", "get-port-please": "3.2.0", - "hono": "^4.12.8", - "http-status-codes": "2.3.0", "pathe": "2.0.3", "proper-lockfile": "4.1.2", "remeda": "2.33.4", "std-env": "3.10.0", - "valibot": "1.2.0", + "valibot": "1.4.2", "zeptomatch": "2.1.0" } }, "node_modules/@prisma/driver-adapter-utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/driver-adapter-utils/-/driver-adapter-utils-7.8.0.tgz", - "integrity": "sha512-/Q13o0ZT0rjc1Xk0Q9KhZYwuq2EW/vSbWUBKfgEKkaCuB/Sg6bqnjmTZqC5cD4d6y1vfFAEwBRzfzoSMIVJ55A==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/driver-adapter-utils/-/driver-adapter-utils-7.9.1.tgz", + "integrity": "sha512-vmHehG7nn/heW32DXXpp13DxxAxVVe6n250oEt3dOL2E/4bt3olktKZN0mzSuxMMronyMSkbeW2uCOn3F4g8RQ==", "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "7.8.0" + "@prisma/debug": "7.9.1" } }, "node_modules/@prisma/engines": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-7.8.0.tgz", - "integrity": "sha512-jx3rCnNNrt5uzbkKlegtQ2GZHxSlihMCzutgT/BP6UIDF1r9tDI39hV/0T/cHZgzJ3ELbuQPXlVZy+Y1n0pcgw==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-7.9.1.tgz", + "integrity": "sha512-UprXSMNXx2NF5ow4pqaQtE8OuBz6K78B0wc0tn2L28G5r933iWp1DR9Do2qWrsNvvFIP3x6mpEWnQtckMO0Uhg==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "7.8.0", - "@prisma/engines-version": "7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a", - "@prisma/fetch-engine": "7.8.0", - "@prisma/get-platform": "7.8.0" + "@prisma/debug": "7.9.1", + "@prisma/engines-version": "7.9.0-1.e922089b7d7502aff4249d5da3420f6fa55fc6ad", + "@prisma/fetch-engine": "7.9.1", + "@prisma/get-platform": "7.9.1" } }, "node_modules/@prisma/engines-version": { - "version": "7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a.tgz", - "integrity": "sha512-fJPQxCkLgA5EayWaW8eArgCvjJ+N+Kz3VyeNKMEeYiQC4alNkxRKFVAGxv/ZUzuJISKqdw+zGeDbS6mn6RCPOA==", + "version": "7.9.0-1.e922089b7d7502aff4249d5da3420f6fa55fc6ad", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-7.9.0-1.e922089b7d7502aff4249d5da3420f6fa55fc6ad.tgz", + "integrity": "sha512-2BsPPFksz3CQUXG6af3rVCtJKg6+JJGJTtfgu2fU8DdXhOfkBjulCq8mwybCd6ge0/jhZq2kOtLAbmUDMyI1nA==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/engines/node_modules/@prisma/get-platform": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-7.8.0.tgz", - "integrity": "sha512-WlxgRGnolL8VH2EmkH1R/DkKNr/mVdS3G2h42IZFFZ3eUrH9OT6t73kIOSlkkrv50wG123Iq8d96ufv5LlZktw==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-7.9.1.tgz", + "integrity": "sha512-PK8R60YZRQvYxBrGG9i7l2/rFyzy+2MuI1dKtmtrCqPH8YpiJx/MfiC7LRzX5786rZDEv7BngcjfIJW4/9ADuw==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "7.8.0" + "@prisma/debug": "7.9.1" } }, "node_modules/@prisma/fetch-engine": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-7.8.0.tgz", - "integrity": "sha512-gwB0Euiz/DDRyxFRpLXYlK3RfaZUj1c5dAYMuhZYfApg7arknJlcb9bIsOHDppJmbqYaVA+yBIiFMDBfprsNPQ==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-7.9.1.tgz", + "integrity": "sha512-9DwxrNTeT25Orbu9CWh0CZvVlyY1lmscpbaeLZcOnuR7zcuFrt91YSmmOfIm7zJ08YOZ6mVzURKwLoMwEBcK8w==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "7.8.0", - "@prisma/engines-version": "7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a", - "@prisma/get-platform": "7.8.0" + "@prisma/debug": "7.9.1", + "@prisma/engines-version": "7.9.0-1.e922089b7d7502aff4249d5da3420f6fa55fc6ad", + "@prisma/get-platform": "7.9.1" } }, "node_modules/@prisma/fetch-engine/node_modules/@prisma/get-platform": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-7.8.0.tgz", - "integrity": "sha512-WlxgRGnolL8VH2EmkH1R/DkKNr/mVdS3G2h42IZFFZ3eUrH9OT6t73kIOSlkkrv50wG123Iq8d96ufv5LlZktw==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-7.9.1.tgz", + "integrity": "sha512-PK8R60YZRQvYxBrGG9i7l2/rFyzy+2MuI1dKtmtrCqPH8YpiJx/MfiC7LRzX5786rZDEv7BngcjfIJW4/9ADuw==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "7.8.0" + "@prisma/debug": "7.9.1" } }, "node_modules/@prisma/get-platform": { @@ -10214,9 +10212,9 @@ "license": "Apache-2.0" }, "node_modules/@prisma/streams-local": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@prisma/streams-local/-/streams-local-0.1.2.tgz", - "integrity": "sha512-l49yTxKKF2odFxaAXTmwmkBKL3+bVQ1tFOooGifu4xkdb9NMNLxHj27XAhTylWZod8I+ISGM5erU1xcl/oBCtg==", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@prisma/streams-local/-/streams-local-0.1.11.tgz", + "integrity": "sha512-0TcebL559MByKqTJ+SsrFIEg228iw8UCVRFckzgfRSiJqczhs+MuAgWOF9lnOIV/IVqvu+KMnFTH0eDeTQMpUg==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -10226,7 +10224,7 @@ "proper-lockfile": "^4.1.2" }, "engines": { - "bun": ">=1.3.6", + "bun": ">=1.2.0", "node": ">=22.0.0" } }, @@ -10244,14 +10242,23 @@ } }, "node_modules/@prisma/studio-core": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@prisma/studio-core/-/studio-core-0.27.3.tgz", - "integrity": "sha512-AADjNFPdsrglxHQVTmHFqv6DuKQZ5WY4p5/gVFY017twvNrSwpLJ9lqUbYYxEu2W7nbvVxTZA8deJ8LseNALsw==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@prisma/studio-core/-/studio-core-0.33.0.tgz", + "integrity": "sha512-V2fX/nKEymNTrHXwfP26PGjoLStO35Ogu+ex7CFJbLrMYEcZxxZpiSNOs7px23Hk5mzLWvM5RsqG6Ka+rha+wg==", "devOptional": true, "license": "Apache-2.0", "dependencies": { "@radix-ui/react-toggle": "1.1.10", - "chart.js": "4.5.1" + "@visx/curve": "4.0.1-alpha.0", + "@visx/event": "4.0.1-alpha.0", + "@visx/grid": "4.0.1-alpha.0", + "@visx/group": "4.0.1-alpha.0", + "@visx/responsive": "4.0.1-alpha.0", + "@visx/scale": "4.0.1-alpha.0", + "@visx/shape": "4.0.1-alpha.0", + "d3-array": "3.2.4", + "d3-shape": "3.2.0", + "elkjs": "0.11.1" }, "engines": { "node": "^20.19 || ^22.12 || >=24.0", @@ -12501,9 +12508,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "devOptional": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@types/geojson": "*" } @@ -12531,9 +12537,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT", - "optional": true, - "peer": true + "devOptional": true, + "license": "MIT" }, "node_modules/@types/d3-polygon": { "version": "3.0.2", @@ -12756,9 +12761,8 @@ "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "license": "MIT", - "optional": true, - "peer": true + "devOptional": true, + "license": "MIT" }, "node_modules/@types/google-spreadsheet": { "version": "3.1.5", @@ -12902,7 +12906,7 @@ "version": "4.17.24", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz", "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@types/luxon": { @@ -13056,7 +13060,6 @@ "integrity": "sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -14168,6 +14171,265 @@ "node": ">= 20" } }, + "node_modules/@visx/curve": { + "version": "4.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/curve/-/curve-4.0.1-alpha.0.tgz", + "integrity": "sha512-jRu61Uz274pV1zyioXmboyrLutYbnKsgjj4njSGCnhdXj5GkZvZbg+ThDb6oOzoAnJOBRLz4rzPlWvNJOzuVMg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@visx/vendor": "4.0.0-alpha.0" + } + }, + "node_modules/@visx/event": { + "version": "4.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/event/-/event-4.0.1-alpha.0.tgz", + "integrity": "sha512-EQqCMSv/s8NbFjo+hz3FKsvvYfP+2QslsFJ/24/O5l/W+7UC6J6aAvO0ujVwrTwdYbuQ+vhxKi1xdPdKR/qj1g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/react": "*", + "@visx/point": "4.0.1-alpha.0" + } + }, + "node_modules/@visx/grid": { + "version": "4.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/grid/-/grid-4.0.1-alpha.0.tgz", + "integrity": "sha512-rycutGmTHO+znNdPumheWMglm7YfpffvRwUkVy5zy4WoORIuKTMkDxwnOzHG2xMxU3EE/YCd37xFV5AxA30yeg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/react": "*", + "@visx/curve": "4.0.1-alpha.0", + "@visx/group": "4.0.1-alpha.0", + "@visx/point": "4.0.1-alpha.0", + "@visx/scale": "4.0.1-alpha.0", + "@visx/shape": "4.0.1-alpha.0", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": "^16.14.0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0" + } + }, + "node_modules/@visx/group": { + "version": "4.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/group/-/group-4.0.1-alpha.0.tgz", + "integrity": "sha512-V19l7iQ7jccBv8kao/EByuI6o4xtxzzLV9nqVI1hRvmdzTVsuLpqlwzYCZUXJaTVvUWf8s4D2SQFjGkj/Nw+0w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/react": "*", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": "^16.14.0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0" + } + }, + "node_modules/@visx/point": { + "version": "4.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/point/-/point-4.0.1-alpha.0.tgz", + "integrity": "sha512-ijTfr/Nx09f03vIj9nyTr3z4Xth4Y75427UaogJh6dnIRLMEFHQOwNu791sbfiNj0a+ZXuaE32h0vKrFe4/8Qg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@visx/responsive": { + "version": "4.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/responsive/-/responsive-4.0.1-alpha.0.tgz", + "integrity": "sha512-o+1zGywQZY0+yOx3Iw87wc4bbPJRr/HnIukTwfOz4UVyj9pB1OQNVHB7OORO1+LBHJceWpB31co/ZV9KHncKrA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/lodash": "^4.17.13", + "@types/react": "*", + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": "^16.14.0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0" + } + }, + "node_modules/@visx/scale": { + "version": "4.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/scale/-/scale-4.0.1-alpha.0.tgz", + "integrity": "sha512-nzjeE87vFSAXGWFiiNfBpNLAf0Q8Qmf6syvKLjqNi4kGZkdhbUll3E/59YsgWXmjM8+llPLWzGsP+JPvo5eq1A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@visx/vendor": "4.0.0-alpha.0" + } + }, + "node_modules/@visx/shape": { + "version": "4.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/shape/-/shape-4.0.1-alpha.0.tgz", + "integrity": "sha512-62QeiVNmPlterQGwhkEDcbq7M0MqY0lBsK5QKXtM9ZoPZWkuGV3aykA3+Xu20B2FAvyJq4LqJzBc7Sxr+EAdbA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/lodash": "^4.17.13", + "@types/react": "*", + "@visx/curve": "4.0.1-alpha.0", + "@visx/group": "4.0.1-alpha.0", + "@visx/scale": "4.0.1-alpha.0", + "@visx/vendor": "4.0.0-alpha.0", + "classnames": "^2.3.1", + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": "^16.14.0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0" + } + }, + "node_modules/@visx/vendor": { + "version": "4.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@visx/vendor/-/vendor-4.0.0-alpha.0.tgz", + "integrity": "sha512-6I+MuqXBcv9jnlcVowHoHKSdk9gXTWkHLKyqBwRWg7LY6A3Ei8SHfubpqGV5rBUSppxMq2RszPJUS6w+H0YgmQ==", + "devOptional": true, + "license": "MIT and ISC", + "dependencies": { + "@types/d3-array": "3.0.3", + "@types/d3-color": "3.1.0", + "@types/d3-delaunay": "6.0.1", + "@types/d3-format": "3.0.1", + "@types/d3-geo": "3.1.0", + "@types/d3-interpolate": "3.0.1", + "@types/d3-path": "3.1.1", + "@types/d3-scale": "4.0.2", + "@types/d3-shape": "3.1.7", + "@types/d3-time": "3.0.0", + "@types/d3-time-format": "2.1.0", + "d3-array": "3.2.1", + "d3-color": "3.1.0", + "d3-delaunay": "6.0.2", + "d3-format": "3.1.0", + "d3-geo": "3.1.0", + "d3-interpolate": "3.0.1", + "d3-path": "3.1.0", + "d3-scale": "4.0.2", + "d3-shape": "3.2.0", + "d3-time": "3.1.0", + "d3-time-format": "4.1.0", + "internmap": "2.0.3" + } + }, + "node_modules/@visx/vendor/node_modules/@types/d3-array": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.3.tgz", + "integrity": "sha512-Reoy+pKnvsksN0lQUlcH6dOGjRZ/3WRwXR//m+/8lt1BXeI4xyaUZoqULNjyXXRuh0Mj4LNpkCvhUpQlY3X5xQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@visx/vendor/node_modules/@types/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@visx/vendor/node_modules/@types/d3-delaunay": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.1.tgz", + "integrity": "sha512-tLxQ2sfT0p6sxdG75c6f/ekqxjyYR0+LwPrsO1mbC9YDBzPJhs2HbJJRrn8Ez1DBoHRo2yx7YEATI+8V1nGMnQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@visx/vendor/node_modules/@types/d3-format": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.1.tgz", + "integrity": "sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@visx/vendor/node_modules/@types/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@visx/vendor/node_modules/@types/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-Yk4htunhPAwN0XGlIwArRomOjdoBFXC3+kCxK2Ubg7I9shQlVSJy/pG/Ht5ASN+gdMIalpk8TJ5xV74jFsetLA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@visx/vendor/node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@visx/vendor/node_modules/@types/d3-time": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@visx/vendor/node_modules/@types/d3-time-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.1.0.tgz", + "integrity": "sha512-/myT3I7EwlukNOX2xVdMzb8FRgNzRMpsZddwst9Ld/VFe6LyJyRp0s32l/V9XoUzk+Gqu56F/oGk6507+8BxrA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@visx/vendor/node_modules/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@visx/vendor/node_modules/d3-delaunay": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@visx/vendor/node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@visx/vendor/node_modules/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@vitejs/plugin-basic-ssl": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-2.1.4.tgz", @@ -15462,9 +15724,9 @@ } }, "node_modules/better-result": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/better-result/-/better-result-2.8.2.tgz", - "integrity": "sha512-YOf0VSj5nUPI27doTtXF+BBnsiRq3qY7avHqfIWnppxTLGyvkLq1QV2RTxkwoZwJ60ywLfZ0raFF4J/G886i7A==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/better-result/-/better-result-2.10.0.tgz", + "integrity": "sha512-oQhh0y1qo2/ZKdAAEvHZAqKKiHOFU5k/bW96fE2ScgQOVkJRiHwB+nOS1SgFsYqRlxMDWvefXi9Q3px7QvgNDw==", "devOptional": true, "license": "MIT" }, @@ -16392,6 +16654,13 @@ "validator": "^13.15.22" } }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "devOptional": true, + "license": "MIT" + }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -18049,8 +18318,7 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "devOptional": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/cytoscape": { "version": "3.33.2", @@ -18157,9 +18425,8 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "internmap": "1 - 2" }, @@ -18214,9 +18481,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": ">=12" } @@ -18372,9 +18638,8 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": ">=12" } @@ -18408,9 +18673,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "d3-color": "1 - 3" }, @@ -18422,9 +18686,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": ">=12" } @@ -18516,9 +18779,8 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "d3-array": "2.10.0 - 3", "d3-format": "1 - 3", @@ -18560,9 +18822,8 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "d3-path": "^3.1.0" }, @@ -18574,9 +18835,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "d3-array": "2 - 3" }, @@ -18588,9 +18848,8 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "d3-time": "1 - 3" }, @@ -18943,9 +19202,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.1.0.tgz", "integrity": "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "dependencies": { "robust-predicates": "^3.0.2" } @@ -19286,6 +19544,13 @@ "integrity": "sha512-mgjZAz7Jyx1SRCwEpy9wefDS7GvNPazLthHg8eQMJ76wBdGQQDW33TCrUTvQ4wzpmOrv2zrFoD3oNufMdyMpog==", "license": "ISC" }, + "node_modules/elkjs": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.11.1.tgz", + "integrity": "sha512-zxxR9k+rx5ktMwT/FwyLdPCrq7xN6e4VGGHH8hA01vVYKjTFik7nHOxBnAYtrgYUB1RpAiLvA1/U2YraWxyKKg==", + "devOptional": true, + "license": "EPL-2.0" + }, "node_modules/emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", @@ -20460,6 +20725,13 @@ ], "license": "MIT" }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "devOptional": true, + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -20510,6 +20782,16 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, "node_modules/fast-redact": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", @@ -20898,6 +21180,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-my-way": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-9.7.0.tgz", + "integrity": "sha512-f2JHn75x2JlwUwLenZypgczR7YWMb/uO9BvUXtus+JMgkbIkLADd38cI4EiV+OQqrGo1Zlq6V8wnqMJ8e62wUQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-querystring": "^1.0.0", + "safe-regex2": "^5.0.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -21768,9 +22065,9 @@ "license": "ISC" }, "node_modules/grammex": { - "version": "3.1.12", - "resolved": "https://registry.npmjs.org/grammex/-/grammex-3.1.12.tgz", - "integrity": "sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==", + "version": "3.1.13", + "resolved": "https://registry.npmjs.org/grammex/-/grammex-3.1.13.tgz", + "integrity": "sha512-LnPnhOBLEJEVKS8WFDVaA397L9Kq55Q9oSITJiVLHVdhAclfUkWzQv74KhvZHKL2Q09Pb1XdsrOsZ4LfTFFTEg==", "devOptional": true, "license": "MIT" }, @@ -22645,9 +22942,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "devOptional": true, "license": "ISC", - "optional": true, - "peer": true, "engines": { "node": ">=12" } @@ -29188,17 +29484,17 @@ } }, "node_modules/prisma": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-7.8.0.tgz", - "integrity": "sha512-yfN4yrw7HV9kEJhoy1+jgah0jafEIQsf7uWouSsM8MvJtlubsk+kM7AIBWZ8+GJl74Yj3c+nbYqBkMOxtsZ3Lw==", + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-7.9.1.tgz", + "integrity": "sha512-aPqePoZIqwlAchbgbFDO/wHqGB+7H1nj9gaM+OsL9h77S5S3TnLd9BgD3LnoeDikULo7cl2HSUrEyQ55Z7DYbg==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/config": "7.8.0", - "@prisma/dev": "0.24.3", - "@prisma/engines": "7.8.0", - "@prisma/studio-core": "0.27.3", + "@prisma/config": "7.9.1", + "@prisma/dev": "0.24.17", + "@prisma/engines": "7.9.1", + "@prisma/studio-core": "0.33.0", "mysql2": "3.15.3", "postgres": "3.4.7" }, @@ -30152,6 +30448,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ret": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.5.0.tgz", + "integrity": "sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -30183,9 +30489,8 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==", - "license": "Unlicense", - "optional": true, - "peer": true + "devOptional": true, + "license": "Unlicense" }, "node_modules/rolldown": { "version": "1.0.0-rc.4", @@ -30532,6 +30837,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-regex2": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-5.1.1.tgz", + "integrity": "sha512-mOSBvHGDZMuIEZMdOz/aCEYDCv0E7nfcNsIhUF+/P+xC7Hyf3FkvymqgPbg9D1EdSGu+uKbJgy09K/RKKc7kJA==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT", + "dependencies": { + "ret": "~0.5.0" + }, + "bin": { + "safe-regex2": "bin/safe-regex2.js" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -34374,9 +34702,9 @@ "license": "MIT" }, "node_modules/valibot": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.2.0.tgz", - "integrity": "sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.4.2.tgz", + "integrity": "sha512-gjdCvJ6d3RyHAneqxMYMW9QMCwYMb3jpOO0IyHZV1bnRHFBHrX3VkIILt5XYR0WhwHiH7Mty8ovuPZ/O3gamrg==", "devOptional": true, "license": "MIT", "peerDependencies": { diff --git a/package.json b/package.json index c2bc56d4a7..194ee3ce3e 100644 --- a/package.json +++ b/package.json @@ -87,8 +87,8 @@ "@nestjs/serve-static": "5.0.5", "@nestjs/throttler": "6.5.0", "@openrouter/ai-sdk-provider": "3.0.0", - "@prisma/adapter-pg": "7.8.0", - "@prisma/client": "7.8.0", + "@prisma/adapter-pg": "7.9.1", + "@prisma/client": "7.9.1", "@simplewebauthn/browser": "13.3.0", "@simplewebauthn/server": "13.3.1", "ai": "7.0.37", @@ -171,7 +171,7 @@ "@nx/storybook": "23.0.2", "@nx/web": "23.0.2", "@nx/workspace": "23.0.2", - "@prisma/config": "7.8.0", + "@prisma/config": "7.9.1", "@schematics/angular": "21.2.6", "@storybook/addon-docs": "10.1.10", "@storybook/addon-themes": "10.1.10", @@ -201,7 +201,7 @@ "nx": "23.0.2", "prettier": "3.9.6", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "7.8.0", + "prisma": "7.9.1", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "8.4.0", From 179be2f564c3a25691f6b1a8597e9ee0f820d7f5 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 10:21:28 +0200 Subject: [PATCH 05/20] Task/add portfolio summary tests (#7458) Add portfolio summary tests --- .../app/portfolio/portfolio.service.spec.ts | 86 ++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/apps/api/src/app/portfolio/portfolio.service.spec.ts b/apps/api/src/app/portfolio/portfolio.service.spec.ts index d85258f7ef..699e79e0d8 100644 --- a/apps/api/src/app/portfolio/portfolio.service.spec.ts +++ b/apps/api/src/app/portfolio/portfolio.service.spec.ts @@ -1,6 +1,7 @@ import { AccountService } from '@ghostfolio/api/app/account/account.service'; import { CashDetails } from '@ghostfolio/api/app/account/interfaces/cash-details.interface'; import { ActivitiesService } from '@ghostfolio/api/app/activities/activities.service'; +import { PortfolioCalculator } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator'; import { userDummyData } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils'; import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory'; import { UserService } from '@ghostfolio/api/app/user/user.service'; @@ -11,7 +12,10 @@ import { ImpersonationService } from '@ghostfolio/api/services/impersonation/imp import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/symbol-profile.service'; import { UNKNOWN_KEY } from '@ghostfolio/common/config'; import { parseDate } from '@ghostfolio/common/helper'; -import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; +import { + AssetProfileIdentifier, + PortfolioSummary +} from '@ghostfolio/common/interfaces'; import { Account, DataSource } from '@prisma/client'; import { Big } from 'big.js'; @@ -338,6 +342,86 @@ describe('PortfolioService', () => { }); }); + describe('getSummary', () => { + const getSummary = (args: object) => { + return ( + portfolioService as unknown as { + getSummary: (aArgs: object) => Promise; + } + ).getSummary(args); + }; + + function createPortfolioCalculator() { + return { + getDividendInBaseCurrency: jest.fn().mockResolvedValue(new Big(0)), + getFeesInBaseCurrency: jest.fn().mockResolvedValue(new Big(0)), + getInterestInBaseCurrency: jest.fn().mockResolvedValue(new Big(0)), + getLiabilitiesInBaseCurrency: jest.fn().mockResolvedValue(new Big(0)), + getSnapshot: jest.fn().mockResolvedValue({ + currentValueInBaseCurrency: new Big(3000), + totalCashInBaseCurrency: new Big(1000), + totalInvestment: new Big(2000), + totalInvestmentWithCurrencyEffect: new Big(2000) + }), + getStartDate: jest.fn().mockReturnValue(parseDate('2024-01-01')) + } as unknown as PortfolioCalculator; + } + + beforeEach(() => { + jest + .spyOn(activitiesService, 'getActivities') + .mockResolvedValue({ activities: [], count: 0 }); + + jest + .spyOn(impersonationService, 'validateImpersonationId') + .mockResolvedValue(null); + + jest.spyOn(portfolioService, 'getPerformance').mockResolvedValue({ + performance: { + currentValueInBaseCurrency: 3000, + netPerformance: 500, + netPerformancePercentage: 0.2, + netPerformancePercentageWithCurrencyEffect: 0.2, + netPerformanceWithCurrencyEffect: 500 + } + } as Awaited>); + + jest.spyOn(userService, 'user').mockResolvedValue({ + id: userDummyData.id, + settings: { + settings: { + baseCurrency: 'CHF' + } + } + } as unknown as Awaited>); + }); + + it('should derive the cash and net worth from the account balance when there are no excluded accounts, no emergency fund and no liabilities', async () => { + jest.spyOn(accountService, 'getCashDetails').mockResolvedValue({ + accounts: [], + balanceInBaseCurrency: 1000 + }); + + const portfolioCalculator = createPortfolioCalculator(); + + const summary = await getSummary({ + portfolioCalculator, + balanceInBaseCurrency: 1000, + emergencyFundHoldingsValueInBaseCurrency: 0, + filteredValueInBaseCurrency: new Big(3000), + impersonationId: undefined, + userCurrency: 'CHF', + userId: userDummyData.id + }); + + expect(summary.cash).toBe(1000); + expect(summary.emergencyFund.total).toBe(0); + expect(summary.excludedAccountsAndActivities).toBe(0); + expect(summary.totalAssetsInBaseCurrency).toBe(3000); + expect(summary.totalValueInBaseCurrency).toBe(3000); + }); + }); + describe('getValueOfAccountsAndPlatforms', () => { const getValueOfAccountsAndPlatforms = (args: object) => { return ( From 5f47a2f2a77d7ca0793ca68917b6ed0390cec9c2 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 10:26:28 +0200 Subject: [PATCH 06/20] Task/improve export functionality (#7499) * Improve export functionality * Update changelog --- CHANGELOG.md | 5 ++++ apps/api/src/app/export/export.service.ts | 9 +++++++- .../user-account-settings.component.ts | 4 ---- .../activities/activities-page.component.ts | 6 +---- libs/ui/src/lib/services/data.service.ts | 23 +++++++++++++++---- 5 files changed, 33 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0512ad5bfe..c242cac5af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Harmonized the data format of the export functionality - Improved the language localization for German (`de`) - Upgraded `prisma` from version `7.8.0` to `7.9.1` +### Fixed + +- Fixed the export functionality to only include the accounts of the exported activities if a filter is applied + ## 3.38.0 - 2026-07-31 ### Added diff --git a/apps/api/src/app/export/export.service.ts b/apps/api/src/app/export/export.service.ts index 6e920553b7..ec9b89a819 100644 --- a/apps/api/src/app/export/export.service.ts +++ b/apps/api/src/app/export/export.service.ts @@ -73,6 +73,13 @@ export class ExportService { }; } + const isFilteredExport = + activityIds?.length > 0 || + activityTypes?.length > 0 || + filters?.length > 0 || + !!endDate || + !!startDate; + const accounts = ( await this.accountService.accounts({ where, @@ -87,7 +94,7 @@ export class ExportService { }) ) .filter(({ id }) => { - return activityIds?.length > 0 + return isFilteredExport ? activities.some(({ accountId }) => { return accountId === id; }) 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 a556a68d60..0a049a7aed 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 @@ -266,10 +266,6 @@ export class GfUserAccountSettingsComponent implements OnInit { .fetchExport() .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe((data) => { - for (const activity of data.activities) { - delete (activity as Omit & { id?: string }).id; - } - downloadAsFile({ content: data, fileName: `ghostfolio-export-${format( diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index 87da2fb844..0ff4168ac5 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -177,10 +177,6 @@ export class GfActivitiesPageComponent implements OnInit { .fetchExport(fetchExportParams) .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe((data) => { - for (const activity of data.activities) { - delete (activity as Omit & { id?: string }).id; - } - downloadAsFile({ content: data, fileName: `ghostfolio-export-${format( @@ -194,7 +190,7 @@ export class GfActivitiesPageComponent implements OnInit { protected onExportDrafts(activityIds?: string[]) { this.dataService - .fetchExport({ activityIds }) + .fetchExport({ activityIds, withActivityIds: true }) .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe((data) => { downloadAsFile({ diff --git a/libs/ui/src/lib/services/data.service.ts b/libs/ui/src/lib/services/data.service.ts index 870719702a..bc1512550b 100644 --- a/libs/ui/src/lib/services/data.service.ts +++ b/libs/ui/src/lib/services/data.service.ts @@ -476,12 +476,14 @@ export class DataService { activityIds, activityTypes, filters, - range + range, + withActivityIds = false }: { activityIds?: string[]; activityTypes?: string[]; filters?: Filter[]; range?: DateRange; + withActivityIds?: boolean; } = {}) { let params = this.buildFiltersAsQueryParams({ filters }); @@ -497,9 +499,22 @@ export class DataService { params = params.append('range', range); } - return this.http.get('/api/v1/export', { - params - }); + return this.http + .get('/api/v1/export', { + params + }) + .pipe( + map((exportResponse) => { + if (!withActivityIds) { + for (const activity of exportResponse.activities) { + delete (activity as Omit & { id?: string }) + .id; + } + } + + return exportResponse; + }) + ); } public fetchHoldingDetail({ From 5092316609b2577ffa2d6bfaaeeeb9eacddf65fa Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 10:40:18 +0200 Subject: [PATCH 07/20] Bugfix/scroll behavior of page content behind open dialog (#7500) * Fix scroll behavior of page content behind open dialog * Update changelog --- CHANGELOG.md | 1 + apps/client/src/index.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c242cac5af..8c47efb2e9 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 ### Fixed +- Fixed the scroll behavior of the page content behind an open dialog - Fixed the export functionality to only include the accounts of the exported activities if a filter is applied ## 3.38.0 - 2026-07-31 diff --git a/apps/client/src/index.html b/apps/client/src/index.html index 61953bca8d..105e7bcae9 100644 --- a/apps/client/src/index.html +++ b/apps/client/src/index.html @@ -1,5 +1,5 @@ - + Ghostfolio From 5e9ac0169e912d1480ca9a5f6db06b3f52fee8fb Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 10:41:01 +0200 Subject: [PATCH 08/20] Task/remove deprecated firstOrderDate from portfolio performance endpoint response (#7483) * Remove deprecated firstOrderDate * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/portfolio/portfolio.service.ts | 2 -- .../responses/portfolio-performance-response.interface.ts | 6 ------ 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c47efb2e9..b80a682c42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Harmonized the data format of the export functionality +- Removed the deprecated `firstOrderDate` attribute from the `GET api/v2/portfolio/performance` endpoint response - Improved the language localization for German (`de`) - Upgraded `prisma` from version `7.8.0` to `7.9.1` diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index d1aff38111..0a69cf32df 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1035,7 +1035,6 @@ export class PortfolioService { return { chart: [], dateOfFirstActivity: undefined, - firstOrderDate: undefined, hasErrors: false, performance: { currentNetWorth: 0, @@ -1093,7 +1092,6 @@ export class PortfolioService { errors, hasErrors, dateOfFirstActivity: parseDate(historicalData[0]?.date), - firstOrderDate: parseDate(historicalData[0]?.date), performance: { netPerformance, netPerformanceWithCurrencyEffect, diff --git a/libs/common/src/lib/interfaces/responses/portfolio-performance-response.interface.ts b/libs/common/src/lib/interfaces/responses/portfolio-performance-response.interface.ts index 104302de3d..8177bd533c 100644 --- a/libs/common/src/lib/interfaces/responses/portfolio-performance-response.interface.ts +++ b/libs/common/src/lib/interfaces/responses/portfolio-performance-response.interface.ts @@ -5,11 +5,5 @@ import { ResponseError } from './errors.interface'; export interface PortfolioPerformanceResponse extends ResponseError { chart?: HistoricalDataItem[]; dateOfFirstActivity: Date; - - /** - * @deprecated Use `dateOfFirstActivity` instead - */ - firstOrderDate: Date; - performance: PortfolioPerformance; } From 263e064fd6b1c55cc547a071023f4dced6185037 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 14:27:47 +0200 Subject: [PATCH 09/20] Task/remove deprecated attribute isExcluded from account (#7253) * Remove deprecated attribute isExcluded from account * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/export/export.service.ts | 2 -- apps/api/src/app/import/import.service.ts | 21 +++++++++++++++++-- .../roai/portfolio-calculator-cash.spec.ts | 3 --- .../app/portfolio/portfolio.service.spec.ts | 3 --- apps/api/src/helper/account.helper.ts | 1 - .../pages/accounts/accounts-page.component.ts | 3 --- ...eate-or-update-account-dialog.component.ts | 4 ---- .../create-or-update-account-dialog.html | 5 ----- .../dtos/create-account-with-balances.dto.ts | 10 ++++++++- .../common/src/lib/dtos/create-account.dto.ts | 8 ------- .../common/src/lib/dtos/update-account.dto.ts | 8 ------- libs/common/src/lib/helper.ts | 6 +----- .../accounts-table.component.stories.ts | 3 --- .../activities-table.component.stories.ts | 5 ----- .../migration.sql | 21 +++++++++++++++++++ prisma/schema.prisma | 3 --- 17 files changed, 51 insertions(+), 56 deletions(-) create mode 100644 prisma/migrations/20260801103609_removed_is_excluded_from_account/migration.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index b80a682c42..72a0cc95f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Harmonized the data format of the export functionality - Removed the deprecated `firstOrderDate` attribute from the `GET api/v2/portfolio/performance` endpoint response +- Removed the deprecated `isExcluded` attribute of the account in favor of the _Exclude from Analysis_ tag including a data migration - Improved the language localization for German (`de`) - Upgraded `prisma` from version `7.8.0` to `7.9.1` diff --git a/apps/api/src/app/export/export.service.ts b/apps/api/src/app/export/export.service.ts index ec9b89a819..02ccb46b34 100644 --- a/apps/api/src/app/export/export.service.ts +++ b/apps/api/src/app/export/export.service.ts @@ -107,7 +107,6 @@ export class ExportService { comment, currency, id, - isExcluded, name, platform, platformId, @@ -125,7 +124,6 @@ export class ExportService { comment, currency, id, - isExcluded, name, platformId, tags: tags.map(({ id: tagId }) => { diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index b706baa8d5..b8579b795d 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -9,7 +9,10 @@ import { MarketDataService } from '@ghostfolio/api/services/market-data/market-d import { DataGatheringService } from '@ghostfolio/api/services/queues/data-gathering/data-gathering.service'; import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/symbol-profile.service'; import { TagService } from '@ghostfolio/api/services/tag/tag.service'; -import { DATA_GATHERING_QUEUE_PRIORITY_HIGH } from '@ghostfolio/common/config'; +import { + DATA_GATHERING_QUEUE_PRIORITY_HIGH, + TAG_ID_EXCLUDE_FROM_ANALYSIS +} from '@ghostfolio/common/config'; import { CreateAssetProfileDto, CreateOrderDto } from '@ghostfolio/common/dtos'; import { getAssetProfileIdentifier, @@ -272,7 +275,11 @@ export class ImportService { // If there is no account or if the account belongs to a different user then create a new account if (!accountWithSameId || accountWithSameId.userId !== user.id) { - const account = omit(accountWithBalances, ['balances', 'tags']); + const account = omit(accountWithBalances, [ + 'balances', + 'isExcluded', + 'tags' + ]); let oldAccountId: string; const platformId = account.platformId; @@ -292,6 +299,16 @@ export class ImportService { return existingTagIds.has(tagId); }); + // Map the legacy isExcluded attribute of old export files to + // the "Exclude from Analysis" tag + if ( + accountWithBalances.isExcluded && + existingTagIds.has(TAG_ID_EXCLUDE_FROM_ANALYSIS) && + !tagIds.includes(TAG_ID_EXCLUDE_FROM_ANALYSIS) + ) { + tagIds.push(TAG_ID_EXCLUDE_FROM_ANALYSIS); + } + let accountObject: Prisma.AccountCreateInput = { ...account, balances: { diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts index 1fc705b467..aaa2f63cfa 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-cash.spec.ts @@ -186,7 +186,6 @@ describe('PortfolioCalculator', () => { createdAt: parseDate('2023-12-31'), currency: 'USD', id: accountId, - isExcluded: false, name: 'USD', platformId: null, updatedAt: parseDate('2023-12-31'), @@ -362,7 +361,6 @@ describe('PortfolioCalculator', () => { createdAt: parseDate('2023-12-31'), currency: 'CHF', id: accountId, - isExcluded: false, name: 'CHF', platformId: null, updatedAt: parseDate('2023-12-31'), @@ -494,7 +492,6 @@ describe('PortfolioCalculator', () => { createdAt: parseDate('2023-12-31'), currency: 'CHF', id: accountId, - isExcluded: false, name: 'CHF', platformId: null, updatedAt: parseDate('2023-12-31'), diff --git a/apps/api/src/app/portfolio/portfolio.service.spec.ts b/apps/api/src/app/portfolio/portfolio.service.spec.ts index 699e79e0d8..97635553fb 100644 --- a/apps/api/src/app/portfolio/portfolio.service.spec.ts +++ b/apps/api/src/app/portfolio/portfolio.service.spec.ts @@ -192,7 +192,6 @@ describe('PortfolioService', () => { createdAt: parseDate('2024-01-01'), currency: 'USD', id: randomUUID(), - isExcluded: false, name: 'USD', platformId: null, updatedAt: parseDate('2024-01-01'), @@ -226,7 +225,6 @@ describe('PortfolioService', () => { createdAt: parseDate('2024-01-01'), currency: 'USD', id: accountId, - isExcluded: false, name: 'USD', platformId: null, updatedAt: parseDate('2024-01-01'), @@ -438,7 +436,6 @@ describe('PortfolioService', () => { balance: 100, currency: 'USD', id: randomUUID(), - isExcluded: false, name: 'Account 1', platform: { name: 'Platform 1' }, platformId: randomUUID() diff --git a/apps/api/src/helper/account.helper.ts b/apps/api/src/helper/account.helper.ts index 8e7520d0a9..da0762ba56 100644 --- a/apps/api/src/helper/account.helper.ts +++ b/apps/api/src/helper/account.helper.ts @@ -4,7 +4,6 @@ import { Prisma } from '@prisma/client'; import { endOfToday, isAfter } from 'date-fns'; export const WHERE_ACCOUNT_NOT_EXCLUDED: Prisma.AccountWhereInput = { - isExcluded: false, tags: { none: { tagId: TAG_ID_EXCLUDE_FROM_ANALYSIS diff --git a/apps/client/src/app/pages/accounts/accounts-page.component.ts b/apps/client/src/app/pages/accounts/accounts-page.component.ts index 1cf0e44a78..291a7f3f92 100644 --- a/apps/client/src/app/pages/accounts/accounts-page.component.ts +++ b/apps/client/src/app/pages/accounts/accounts-page.component.ts @@ -191,7 +191,6 @@ export class GfAccountsPageComponent implements OnInit { comment, currency, id, - isExcluded, name, platformId, tags @@ -206,7 +205,6 @@ export class GfAccountsPageComponent implements OnInit { comment, currency, id, - isExcluded, name, platformId, tags @@ -288,7 +286,6 @@ export class GfAccountsPageComponent implements OnInit { comment: null, currency: this.user?.settings?.baseCurrency ?? null, id: null, - isExcluded: false, name: null, platformId: null, tags: [] diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts index de0172eace..8b0536ebfa 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts @@ -27,7 +27,6 @@ import { } from '@angular/forms'; import { MatAutocompleteModule } from '@angular/material/autocomplete'; import { MatButtonModule } from '@angular/material/button'; -import { MatCheckboxModule } from '@angular/material/checkbox'; import { MAT_DIALOG_DATA, MatDialogModule, @@ -51,7 +50,6 @@ import { CreateOrUpdateAccountDialogParams } from './interfaces/interfaces'; GfTagsSelectorComponent, MatAutocompleteModule, MatButtonModule, - MatCheckboxModule, MatDialogModule, MatFormFieldModule, MatInputModule, @@ -106,7 +104,6 @@ export class GfCreateOrUpdateAccountDialogComponent { balance: [this.data.account.balance, Validators.required], comment: [this.data.account.comment], currency: [this.data.account.currency, Validators.required], - isExcluded: [this.data.account.isExcluded], name: [this.data.account.name, Validators.required], platformId: [null, this.autocompleteObjectValidator()], tags: [ @@ -204,7 +201,6 @@ export class GfCreateOrUpdateAccountDialogComponent { comment: this.accountForm.get('comment')?.value ?? null, currency: this.accountForm.get('currency')?.value, id: this.accountForm.get('accountId')?.value, - isExcluded: this.accountForm.get('isExcluded')?.value, name: this.accountForm.get('name')?.value, platformId: this.accountForm.get('platformId')?.value?.id ?? null, tags: this.accountForm diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html index d5743313d7..4e4c62b6f3 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -92,11 +92,6 @@ [tagsAvailable]="tagsAvailable" /> -
- Exclude from Analysis -
@if (data.account.id) {
diff --git a/libs/common/src/lib/dtos/create-account-with-balances.dto.ts b/libs/common/src/lib/dtos/create-account-with-balances.dto.ts index 2d1d3ed2a4..8fc6f78e40 100644 --- a/libs/common/src/lib/dtos/create-account-with-balances.dto.ts +++ b/libs/common/src/lib/dtos/create-account-with-balances.dto.ts @@ -1,6 +1,6 @@ import { AccountBalance } from '@ghostfolio/common/interfaces'; -import { IsArray, IsOptional } from 'class-validator'; +import { IsArray, IsBoolean, IsOptional } from 'class-validator'; import { CreateAccountDto } from './create-account.dto'; @@ -8,4 +8,12 @@ export class CreateAccountWithBalancesDto extends CreateAccountDto { @IsArray() @IsOptional() balances?: AccountBalance[]; + + /** + * @deprecated Accepted for backward compatibility with old export files + * and mapped to the "Exclude from Analysis" tag (`TAG_ID_EXCLUDE_FROM_ANALYSIS`) + */ + @IsBoolean() + @IsOptional() + isExcluded?: boolean; } diff --git a/libs/common/src/lib/dtos/create-account.dto.ts b/libs/common/src/lib/dtos/create-account.dto.ts index b04193020d..e4a0c64fe8 100644 --- a/libs/common/src/lib/dtos/create-account.dto.ts +++ b/libs/common/src/lib/dtos/create-account.dto.ts @@ -4,7 +4,6 @@ import { Transform, TransformFnParams } from 'class-transformer'; import { ArrayUnique, IsArray, - IsBoolean, IsNumber, IsOptional, IsString, @@ -30,13 +29,6 @@ export class CreateAccountDto { @IsString() id?: string; - /** - * @deprecated Use the "Exclude from Analysis" tag (`TAG_ID_EXCLUDE_FROM_ANALYSIS`) instead - */ - @IsBoolean() - @IsOptional() - isExcluded?: boolean; - @IsString() name: string; diff --git a/libs/common/src/lib/dtos/update-account.dto.ts b/libs/common/src/lib/dtos/update-account.dto.ts index 7a33da2dfc..a6a3e6ac67 100644 --- a/libs/common/src/lib/dtos/update-account.dto.ts +++ b/libs/common/src/lib/dtos/update-account.dto.ts @@ -4,7 +4,6 @@ import { Transform, TransformFnParams } from 'class-transformer'; import { ArrayUnique, IsArray, - IsBoolean, IsNumber, IsOptional, IsString, @@ -29,13 +28,6 @@ export class UpdateAccountDto { @IsString() id: string; - /** - * @deprecated Use the "Exclude from Analysis" tag (`TAG_ID_EXCLUDE_FROM_ANALYSIS`) instead - */ - @IsBoolean() - @IsOptional() - isExcluded?: boolean; - @IsString() name: string; diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 98f097b44b..db1d3c2a20 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -456,12 +456,8 @@ export function interpolate(template: string, context: any) { }); } -export function isAccountExcluded(account: { - isExcluded: boolean; - tags?: { id: string }[]; -}) { +export function isAccountExcluded(account: { tags?: { id: string }[] }) { return ( - account.isExcluded || account.tags?.some(({ id }) => { return id === TAG_ID_EXCLUDE_FROM_ANALYSIS; }) === true diff --git a/libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts b/libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts index 62a01164f9..a38ca826c4 100644 --- a/libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts +++ b/libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts @@ -24,7 +24,6 @@ const accounts = [ createdAt: new Date('2025-06-01T06:52:49.063Z'), currency: 'USD', id: '460d7401-ca43-4ed4-b08e-349f1822e9db', - isExcluded: false, name: 'Coinbase Account', platform: { id: '8dc24b88-bb92-4152-af25-fe6a31643e26', @@ -46,7 +45,6 @@ const accounts = [ createdAt: new Date('2025-06-01T06:48:53.055Z'), currency: 'USD', id: '6d773e31-0583-4c85-a247-e69870b4f1ee', - isExcluded: false, name: 'Private Banking Account', platform: { id: '43e8fcd1-5b79-4100-b678-d2229bd1660d', @@ -68,7 +66,6 @@ const accounts = [ createdAt: new Date('2025-05-31T13:00:13.940Z'), currency: 'USD', id: '776bd1e9-b2f6-4f7e-933d-18756c2f0625', - isExcluded: false, name: 'Trading Account', platform: { id: '9da3a8a7-4795-43e3-a6db-ccb914189737', diff --git a/libs/ui/src/lib/activities-table/activities-table.component.stories.ts b/libs/ui/src/lib/activities-table/activities-table.component.stories.ts index 057747cf14..0136545cfc 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.stories.ts +++ b/libs/ui/src/lib/activities-table/activities-table.component.stories.ts @@ -44,7 +44,6 @@ const activities: Activity[] = [ createdAt: new Date('2025-05-31T13:00:13.940Z'), currency: 'USD', id: '776bd1e9-b2f6-4f7e-933d-18756c2f0625', - isExcluded: false, name: 'Trading Account', platformId: '9da3a8a7-4795-43e3-a6db-ccb914189737', updatedAt: new Date('2025-06-01T06:53:10.569Z'), @@ -111,7 +110,6 @@ const activities: Activity[] = [ createdAt: new Date('2025-05-31T13:00:13.940Z'), currency: 'USD', id: '776bd1e9-b2f6-4f7e-933d-18756c2f0625', - isExcluded: false, name: 'Trading Account', platformId: '9da3a8a7-4795-43e3-a6db-ccb914189737', updatedAt: new Date('2025-06-01T06:53:10.569Z'), @@ -178,7 +176,6 @@ const activities: Activity[] = [ createdAt: new Date('2025-05-31T13:00:13.940Z'), currency: 'USD', id: '776bd1e9-b2f6-4f7e-933d-18756c2f0625', - isExcluded: false, name: 'Trading Account', platformId: '9da3a8a7-4795-43e3-a6db-ccb914189737', updatedAt: new Date('2025-06-01T06:53:10.569Z'), @@ -245,7 +242,6 @@ const activities: Activity[] = [ createdAt: new Date('2025-05-31T13:00:13.940Z'), currency: 'USD', id: '776bd1e9-b2f6-4f7e-933d-18756c2f0625', - isExcluded: false, name: 'Trading Account', platformId: '9da3a8a7-4795-43e3-a6db-ccb914189737', updatedAt: new Date('2025-06-01T06:53:10.569Z'), @@ -312,7 +308,6 @@ const activities: Activity[] = [ createdAt: new Date('2025-05-31T13:00:13.940Z'), currency: 'USD', id: '776bd1e9-b2f6-4f7e-933d-18756c2f0625', - isExcluded: false, name: 'Trading Account', platformId: '9da3a8a7-4795-43e3-a6db-ccb914189737', updatedAt: new Date('2025-06-01T06:53:10.569Z'), diff --git a/prisma/migrations/20260801103609_removed_is_excluded_from_account/migration.sql b/prisma/migrations/20260801103609_removed_is_excluded_from_account/migration.sql new file mode 100644 index 0000000000..5fb01f5d2b --- /dev/null +++ b/prisma/migrations/20260801103609_removed_is_excluded_from_account/migration.sql @@ -0,0 +1,21 @@ +-- Create the "EXCLUDE_FROM_ANALYSIS" tag if it does not exist yet +INSERT INTO "Tag" ("id", "name") +VALUES ('f2e868af-8333-459f-b161-cbc6544c24bd', 'EXCLUDE_FROM_ANALYSIS') +ON CONFLICT DO NOTHING; + +-- Migrate accounts with "isExcluded" to the "EXCLUDE_FROM_ANALYSIS" tag +INSERT INTO "TagsOnAccounts" ("accountId", "tagId", "updatedAt", "userId") +SELECT + "id", + 'f2e868af-8333-459f-b161-cbc6544c24bd', + CURRENT_TIMESTAMP, + "userId" +FROM "Account" +WHERE "isExcluded" = true +ON CONFLICT DO NOTHING; + +-- DropIndex +DROP INDEX "Account_isExcluded_idx"; + +-- AlterTable +ALTER TABLE "Account" DROP COLUMN "isExcluded"; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 733399506d..faf7a9259c 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -33,8 +33,6 @@ model Account { createdAt DateTime @default(now()) currency String? id String @default(uuid()) - /// @deprecated Use the "Exclude from Analysis" tag (`TAG_ID_EXCLUDE_FROM_ANALYSIS`) instead - isExcluded Boolean @default(false) name String? platform Platform? @relation(fields: [platformId], references: [id]) platformId String? @@ -46,7 +44,6 @@ model Account { @@id([id, userId]) @@index([currency]) @@index([id]) - @@index([isExcluded]) @@index([name]) @@index([userId]) } From a64f7144fe0f17b82360e3aec92febb4eb27e47f Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 14:31:58 +0200 Subject: [PATCH 10/20] Release 3.39.0 (#7503) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72a0cc95f7..b31046e8cd 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 +## 3.39.0 - 2026-08-01 ### Changed diff --git a/package-lock.json b/package-lock.json index 1e49fb135d..9009b4f295 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "3.38.0", + "version": "3.39.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "3.38.0", + "version": "3.39.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 194ee3ce3e..ded794ce48 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "3.38.0", + "version": "3.39.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 1822a09c6a97982a2eb045b3a00e117332f9991a Mon Sep 17 00:00:00 2001 From: Kenrick Tandrian <60643640+KenTandrian@users.noreply.github.com> Date: Sun, 2 Aug 2026 02:40:26 +0700 Subject: [PATCH 11/20] Task/improve language localization for ZH (20260731) (#7490) * Update translations * Update changelog --- CHANGELOG.md | 6 + apps/client/src/locales/messages.zh.xlf | 152 ++++++++++++------------ 2 files changed, 82 insertions(+), 76 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b31046e8cd..cf5ab1a700 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Improved the language localization for Chinese (`zh`) + ## 3.39.0 - 2026-08-01 ### Changed diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index a70be75d61..7963e7767f 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -433,7 +433,7 @@ Copy - Copy + 复制 libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html 20 @@ -605,7 +605,7 @@ Paid - Paid + 付费 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts 129 @@ -657,7 +657,7 @@ Unknown - Unknown + 未知 libs/ui/src/lib/i18n.ts 88 @@ -701,7 +701,7 @@ and is driven by the efforts of its contributors - 并且得益于其 贡献者 + 并且得益于其 贡献者 apps/client/src/app/pages/about/overview/about-overview-page.html 50 @@ -749,7 +749,7 @@ Find an account... - Find an account... + 查找账户... libs/ui/src/lib/assistant/assistant.component.ts 448 @@ -777,7 +777,7 @@ Watch the Ghostfol.io Trailer on YouTube - Watch the Ghostfol.io Trailer on YouTube + 在 YouTube 上观看 Ghostfol.io 预告片 apps/client/src/app/pages/landing/landing-page.html 19 @@ -813,7 +813,7 @@ Category - Category + 类别 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 77 @@ -837,7 +837,7 @@ An error occurred while converting the data source to . - An error occurred while converting the data source to . + 将数据源转换为 时发生错误。 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 482 @@ -885,7 +885,7 @@ Data Gathering Frequency - Data Gathering Frequency + 数据采集频率 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 468 @@ -921,7 +921,7 @@ Apply current market price - Apply current market price + 应用当前市场价格 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 238 @@ -929,7 +929,7 @@ Subscription History - Subscription History + 订阅历史 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 141 @@ -965,7 +965,7 @@ Healthcare - Healthcare + 医疗保健 libs/ui/src/lib/i18n.ts 97 @@ -1081,7 +1081,7 @@ Update Activity - Update Activity + 更新活动 libs/common/src/lib/routes/routes.ts 141 @@ -1089,7 +1089,7 @@ Technology - Technology + 科技 libs/ui/src/lib/i18n.ts 101 @@ -1105,7 +1105,7 @@ Total - Total + 总计 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 160 @@ -1161,7 +1161,7 @@ Industrials - Industrials + 工业 libs/ui/src/lib/i18n.ts 98 @@ -1197,7 +1197,7 @@ Consumer Cyclical - Consumer Cyclical + 非必需消费品 libs/ui/src/lib/i18n.ts 93 @@ -1705,7 +1705,7 @@ The source code is fully available as open source software (OSS) under the AGPL-3.0 license - 源代码完全可用,作为开源软件 (OSS),遵循AGPL-3.0许可证 + 源代码完全可用,作为开源软件 (OSS),遵循AGPL-3.0许可证 apps/client/src/app/pages/about/overview/about-overview-page.html 16 @@ -1889,7 +1889,7 @@ Energy - Energy + 能源 libs/ui/src/lib/i18n.ts 95 @@ -2265,7 +2265,7 @@ Ghostfolio in Numbers: Monthly Active Users (MAU) - Ghostfolio in Numbers: Monthly Active Users (MAU) + Ghostfolio 数据:月活跃用户数 (MAU) apps/client/src/app/pages/landing/landing-page.html 63 @@ -2305,7 +2305,7 @@ The value has been copied to the clipboard - The value has been copied to the clipboard + 该值已复制到剪贴板 libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts 46 @@ -2357,7 +2357,7 @@ Consumer Defensive - Consumer Defensive + 必需消费品 libs/ui/src/lib/i18n.ts 94 @@ -2429,7 +2429,7 @@ Utilities - Utilities + 公用事业 libs/ui/src/lib/i18n.ts 102 @@ -2461,7 +2461,7 @@ Coupon - Coupon + 优惠券 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts 134 @@ -2497,7 +2497,7 @@ Close Account - Close Account + 关闭账户 apps/client/src/app/components/user-account-settings/user-account-settings.html 337 @@ -2517,7 +2517,7 @@ Contributors to Ghostfolio - Contributors to Ghostfolio + Ghostfolio 贡献者 apps/client/src/app/pages/about/overview/about-overview-page.html 54 @@ -2561,7 +2561,7 @@ Investments - Investments + 投资 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 197 @@ -2853,7 +2853,7 @@ Financial Planning - Financial Planning + 财务规划 libs/ui/src/lib/i18n.ts 109 @@ -3121,7 +3121,7 @@ popular - popular + 热门 apps/client/src/app/components/admin-settings/admin-settings.component.html 79 @@ -3157,7 +3157,7 @@ Invalid API key - Invalid API key + 无效的 API 密钥 apps/client/src/app/components/admin-settings/admin-settings.component.html 112 @@ -3201,7 +3201,7 @@ For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. - For security reasons, please delete all activities and accounts first before your Ghostfolio account can be closed. + 出于安全原因,在关闭您的 Ghostfolio 账户之前,请先删除所有活动和账户。 apps/client/src/app/components/user-account-settings/user-account-settings.html 348 @@ -3329,7 +3329,7 @@ Creation - Creation + 创建时间 apps/client/src/app/components/admin-overview/admin-overview.html 185 @@ -3373,7 +3373,7 @@ just now - just now + 刚刚 apps/client/src/app/components/admin-users/admin-users.component.ts 221 @@ -3561,7 +3561,7 @@ Basic Materials - Basic Materials + 基础材料 libs/ui/src/lib/i18n.ts 91 @@ -3705,7 +3705,7 @@ Oops! Could not delete the asset profiles. - Oops! Could not delete the asset profiles. + 哎呀!无法删除资产概况。 apps/client/src/app/components/admin-market-data/admin-market-data.service.ts 52 @@ -3777,7 +3777,7 @@ Add Activity - Add Activity + 添加活动 libs/common/src/lib/routes/routes.ts 134 @@ -3801,7 +3801,7 @@ 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. - 在 Ghostfolio,透明度是我们价值观的核心。我们将源代码发布为开源软件(OSS)下AGPL-3.0许可证我们公开分享平台运营状态的汇总关键指标。 + 在 Ghostfolio,透明度是我们价值观的核心。我们将源代码发布为开源软件(OSS)下AGPL-3.0许可证我们公开分享平台运营状态的汇总关键指标。 apps/client/src/app/pages/open/open-page.html 7 @@ -3845,7 +3845,7 @@ Convert to - Convert to + 转换为 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 175 @@ -3897,7 +3897,7 @@ Available on - Available on + 适用于 apps/client/src/app/pages/resources/personal-finance-tools/product-page.html 130 @@ -4197,7 +4197,7 @@ Price - Price + 价格 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 176 @@ -4205,7 +4205,7 @@ Do you really want to convert this asset profile to ()? - Do you really want to convert this asset profile to ()? + 您确定要把此资产概况转换为 () 吗? apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 723 @@ -4305,7 +4305,7 @@ Trial - Trial + 试用 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts 133 @@ -4605,7 +4605,7 @@ Hourly - Hourly + 每小时 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 216 @@ -4717,7 +4717,7 @@ Expiration - Expiration + 到期时间 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html 209 @@ -4970,7 +4970,7 @@ Coupon has been created - Coupon has been created + 优惠券 已创建 apps/client/src/app/components/admin-overview/admin-overview.component.ts 224 @@ -5022,7 +5022,7 @@ Upgrade to Ghostfolio Premium - Upgrade to Ghostfolio Premium + 升级至 Ghostfolio Premium libs/ui/src/lib/premium-indicator/premium-indicator.component.html 4 @@ -5110,7 +5110,7 @@ Stock Tracking - Stock Tracking + 股票追踪 libs/ui/src/lib/i18n.ts 112 @@ -5134,7 +5134,7 @@ Web - Web + 网页 libs/ui/src/lib/i18n.ts 121 @@ -5334,7 +5334,7 @@ Portfolio Filters - Portfolio Filters + 组合筛选器 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html 63 @@ -5390,7 +5390,7 @@ {VAR_PLURAL, plural, =1 {Profile} other {Profiles}} - {VAR_PLURAL, plural, =1 {Profile} other {Profiles}} + {VAR_PLURAL, plural, =1 {个资产概况} other {个资产概况}} apps/client/src/app/components/admin-market-data/admin-market-data.html 275 @@ -5710,7 +5710,7 @@ Ghostfolio in Numbers: Pulls on Docker Hub - Ghostfolio in Numbers: Pulls on Docker Hub + Ghostfolio 数据:Docker Hub 下载量 apps/client/src/app/pages/landing/landing-page.html 101 @@ -6022,7 +6022,7 @@ Communication Services - Communication Services + 通信服务 libs/ui/src/lib/i18n.ts 92 @@ -6062,7 +6062,7 @@ Invested Capital - Invested Capital + 投入资本 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 174 @@ -6346,7 +6346,7 @@ Expires () - Expires () + 到期时间 () apps/client/src/app/components/admin-users/admin-users.html 34 @@ -6386,7 +6386,7 @@ Fetch market price - Fetch market price + 获取市场价格 libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 40 @@ -6479,7 +6479,7 @@ Find a holding... - Find a holding... + 查找持仓... libs/ui/src/lib/assistant/assistant.component.ts 449 @@ -6507,7 +6507,7 @@ Daily - Daily + 每天 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 212 @@ -6639,7 +6639,7 @@ Jump to a page... - Jump to a page... + 跳转到页面... libs/ui/src/lib/assistant/assistant.component.ts 450 @@ -6687,7 +6687,7 @@ Clone Activity - Clone Activity + 克隆活动 libs/common/src/lib/routes/routes.ts 129 @@ -6835,7 +6835,7 @@ Oops! Could not delete the asset profile. - Oops! Could not delete the asset profile. + 哎呀!无法删除资产概况。 apps/client/src/app/components/admin-market-data/admin-market-data.service.ts 51 @@ -6939,7 +6939,7 @@ Do you really want to delete these asset profiles? - Do you really want to delete these asset profiles? + 您确定要删除这 个资产概况吗? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts 67 @@ -7119,7 +7119,7 @@ Tax Reporting - Tax Reporting + 税务报告 libs/ui/src/lib/i18n.ts 113 @@ -7135,7 +7135,7 @@ Change with currency effect Change - 含货币影响的涨跌 涨跌 + 含货币影响的涨跌 涨跌 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 64 @@ -7151,7 +7151,7 @@ Performance with currency effect Performance - 含货币影响的表现 表现 + 含货币影响的表现 表现 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 84 @@ -7199,7 +7199,7 @@ has been copied to the clipboard - 已复制到剪贴板 + 已复制到剪贴板 apps/client/src/app/components/admin-overview/admin-overview.component.ts 223 @@ -7219,7 +7219,7 @@ Compare Ghostfolio to - - Compare Ghostfolio to - + 对比 Ghostfolio 与 - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html 32 @@ -7267,7 +7267,7 @@ Financial Services - Financial Services + 金融服务 libs/ui/src/lib/i18n.ts 96 @@ -7295,7 +7295,7 @@ Delete - Delete + 删除 apps/client/src/app/components/admin-market-data/admin-market-data.html 270 @@ -7355,7 +7355,7 @@ Dividend Tracking - Dividend Tracking + 股息追踪 libs/ui/src/lib/i18n.ts 106 @@ -7415,7 +7415,7 @@ Investment Research - Investment Research + 投资研究 libs/ui/src/lib/i18n.ts 110 @@ -7697,7 +7697,7 @@ Net Worth Tracking - Net Worth Tracking + 净资产追踪 libs/ui/src/lib/i18n.ts 111 @@ -7769,7 +7769,7 @@ Do you really want to convert the data source to ? - Do you really want to convert the data source to ? + 您确定要把数据源转换为 吗? apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 485 @@ -7837,7 +7837,7 @@ Ghostfolio in Numbers: Stars on GitHub - Ghostfolio in Numbers: Stars on GitHub + Ghostfolio 数据:GitHub Stars 数量 apps/client/src/app/pages/landing/landing-page.html 82 @@ -8167,7 +8167,7 @@ ETF Tracking - ETF Tracking + ETF 追踪 libs/ui/src/lib/i18n.ts 107 @@ -8333,7 +8333,7 @@ Post to Ghostfolio on X (formerly Twitter) - Post to Ghostfolio on X (formerly Twitter) + 在 X (前身为 Twitter) 上发布给 Ghostfolio apps/client/src/app/pages/about/overview/about-overview-page.html 85 @@ -8570,7 +8570,7 @@ If you encounter a bug, would like to suggest an improvement or a new feature, please join the Ghostfolio Slack community, post to @ghostfolio_ - 如果您遇到错误,想要建议改进或新功能,请加入 Ghostfolio Slack 社区,发布到 @ghostfolio_ + 如果您遇到错误,想要建议改进或新功能,请加入 Ghostfolio Slack 社区,发布到 @ghostfolio_ apps/client/src/app/pages/about/overview/about-overview-page.html 71 From c3e70091aee0f08389e4ab5a23425839a9a79379 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 23:01:38 +0200 Subject: [PATCH 12/20] Bugfix/validation error caused by empty strings in asset profile details dialog (#7509) * Resolve validation error caused by empty strings * Update changelog --- CHANGELOG.md | 4 ++ .../asset-profile-dialog.component.ts | 16 +++-- .../src/lib/dtos/update-asset-profile.dto.ts | 4 +- libs/common/src/lib/helper.spec.ts | 58 +++++++++++++++++++ libs/common/src/lib/helper.ts | 20 +++++++ 5 files changed, 94 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf5ab1a700..054a24bdf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the language localization for Chinese (`zh`) +### Fixed + +- Resolved a validation error caused by empty strings in the asset profile details dialog of the admin control panel + ## 3.39.0 - 2026-08-01 ### Changed diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index c5562740fd..330688da18 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -11,6 +11,8 @@ import { DATE_FORMAT, getCountryName, getCurrencyFromSymbol, + getStringOrNull, + getStringOrUndefined, isCurrency } from '@ghostfolio/common/helper'; import { @@ -568,9 +570,10 @@ export class GfAssetProfileDialogComponent implements OnInit { this.assetProfileForm.controls.scraperConfiguration.controls.headers .value ?? '{}' ) as Record, - locale: + locale: getStringOrUndefined( this.assetProfileForm.controls.scraperConfiguration.controls.locale - ?.value ?? undefined, + ?.value + ), mode: this.assetProfileForm.controls.scraperConfiguration.controls.mode ?.value ?? undefined, @@ -619,7 +622,7 @@ export class GfAssetProfileDialogComponent implements OnInit { assetClass: this.assetProfileForm.controls.assetClass.value ?? undefined, assetSubClass: this.assetProfileForm.controls.assetSubClass.value ?? undefined, - comment: this.assetProfileForm.controls.comment.value ?? undefined, + comment: getStringOrNull(this.assetProfileForm.controls.comment.value), currency: this.assetProfileForm.controls.currency.value ?? undefined, dataGatheringFrequency: this.assetProfileForm.controls.dataGatheringFrequency.value ?? @@ -628,7 +631,7 @@ export class GfAssetProfileDialogComponent implements OnInit { ? this.assetProfileForm.controls.isActive.value : undefined, name: this.assetProfileForm.controls.name.value ?? undefined, - url: this.assetProfileForm.controls.url.value ?? undefined + url: getStringOrNull(this.assetProfileForm.controls.url.value) }; try { @@ -737,9 +740,10 @@ export class GfAssetProfileDialogComponent implements OnInit { this.assetProfileForm.controls.scraperConfiguration.controls.headers .value ?? '{}' ) as Record, - locale: + locale: getStringOrUndefined( this.assetProfileForm.controls.scraperConfiguration.controls.locale - ?.value ?? undefined, + ?.value + ), mode: this.assetProfileForm.controls.scraperConfiguration.controls .mode?.value, selector: diff --git a/libs/common/src/lib/dtos/update-asset-profile.dto.ts b/libs/common/src/lib/dtos/update-asset-profile.dto.ts index a6e2230e8e..a8eaad608a 100644 --- a/libs/common/src/lib/dtos/update-asset-profile.dto.ts +++ b/libs/common/src/lib/dtos/update-asset-profile.dto.ts @@ -35,7 +35,7 @@ export class UpdateAssetProfileDto { @IsOptional() @IsString() - comment?: string; + comment?: string | null; @IsArray() @IsOptional() @@ -96,5 +96,5 @@ export class UpdateAssetProfileDto { protocols: ['http', 'https'], require_protocol: true }) - url?: string; + url?: string | null; } diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index d33f104522..7589347240 100644 --- a/libs/common/src/lib/helper.spec.ts +++ b/libs/common/src/lib/helper.spec.ts @@ -1,6 +1,8 @@ import { extractNumberFromString, getNumberFormatGroup, + getStringOrNull, + getStringOrUndefined, isCurrency, isCurrencySymbol } from '@ghostfolio/common/helper'; @@ -139,6 +141,62 @@ describe('Helper', () => { }); }); + describe('Get string or null', () => { + it('String', () => { + expect(getStringOrNull('https://ghostfol.io')).toEqual( + 'https://ghostfol.io' + ); + }); + + it('String (with spaces)', () => { + expect(getStringOrNull(' https://ghostfol.io ')).toEqual( + 'https://ghostfol.io' + ); + }); + + it('Empty string', () => { + expect(getStringOrNull('')).toEqual(null); + }); + + it('Blank string', () => { + expect(getStringOrNull(' ')).toEqual(null); + }); + + it('Null', () => { + expect(getStringOrNull(null)).toEqual(null); + }); + + it('Undefined', () => { + expect(getStringOrNull(undefined)).toEqual(null); + }); + }); + + describe('Get string or undefined', () => { + it('String', () => { + expect(getStringOrUndefined('de-DE')).toEqual('de-DE'); + }); + + it('String (with spaces)', () => { + expect(getStringOrUndefined(' de-DE ')).toEqual('de-DE'); + }); + + it('Empty string', () => { + expect(getStringOrUndefined('')).toEqual(undefined); + }); + + it('Blank string', () => { + expect(getStringOrUndefined(' ')).toEqual(undefined); + }); + + it('Null', () => { + expect(getStringOrUndefined(null)).toEqual(undefined); + }); + + it('Undefined', () => { + expect(getStringOrUndefined(undefined)).toEqual(undefined); + }); + }); + describe('Is currency', () => { it('ISO 4217 currency code', () => { expect(isCurrency('USD')).toEqual(true); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index db1d3c2a20..7e482838c0 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -397,6 +397,26 @@ export function getStartOfUtcDate(aDate: Date) { return date; } +export function getStringOrNull(aString: string | null | undefined) { + const trimmedString = aString?.trim(); + + if (trimmedString) { + return trimmedString; + } + + return null; +} + +export function getStringOrUndefined(aString: string | null | undefined) { + const trimmedString = aString?.trim(); + + if (trimmedString) { + return trimmedString; + } + + return undefined; +} + export function getSum(aArray: Big[]) { if (aArray?.length > 0) { return aArray.reduce((a, b) => a.plus(b), new Big(0)); From fa309b57435df39f0b1ad5a25c2b13c3145e2642 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 1 Aug 2026 23:16:24 +0200 Subject: [PATCH 13/20] Bugfix/handling of Exclude from Analysis tag in activities table (#7511) * Fix handling of Exclude from Analysis tag * Update changelog --- CHANGELOG.md | 1 + libs/common/src/lib/helper.spec.ts | 27 +++++++++++++++++++ libs/common/src/lib/helper.ts | 4 +-- .../activities-table.component.ts | 2 +- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 054a24bdf3..1118f2a692 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 ### Fixed +- Fixed the handling of the _Exclude from Analysis_ tag in the activities table - Resolved a validation error caused by empty strings in the asset profile details dialog of the admin control panel ## 3.39.0 - 2026-08-01 diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index 7589347240..c4947394f6 100644 --- a/libs/common/src/lib/helper.spec.ts +++ b/libs/common/src/lib/helper.spec.ts @@ -1,8 +1,13 @@ +import { + TAG_ID_EMERGENCY_FUND, + TAG_ID_EXCLUDE_FROM_ANALYSIS +} from '@ghostfolio/common/config'; import { extractNumberFromString, getNumberFormatGroup, getStringOrNull, getStringOrUndefined, + isAccountExcluded, isCurrency, isCurrencySymbol } from '@ghostfolio/common/helper'; @@ -197,6 +202,28 @@ describe('Helper', () => { }); }); + describe('Is account excluded', () => { + it('Account with Exclude from Analysis tag', () => { + expect( + isAccountExcluded({ tags: [{ id: TAG_ID_EXCLUDE_FROM_ANALYSIS }] }) + ).toEqual(true); + }); + + it('Account with another tag', () => { + expect( + isAccountExcluded({ tags: [{ id: TAG_ID_EMERGENCY_FUND }] }) + ).toEqual(false); + }); + + it('Account without tags', () => { + expect(isAccountExcluded({ tags: [] })).toEqual(false); + }); + + it('Undefined account', () => { + expect(isAccountExcluded(undefined)).toEqual(false); + }); + }); + describe('Is currency', () => { it('ISO 4217 currency code', () => { expect(isCurrency('USD')).toEqual(true); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 7e482838c0..58927337ee 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -476,9 +476,9 @@ export function interpolate(template: string, context: any) { }); } -export function isAccountExcluded(account: { tags?: { id: string }[] }) { +export function isAccountExcluded(account?: { tags?: { id: string }[] }) { return ( - account.tags?.some(({ id }) => { + account?.tags?.some(({ id }) => { return id === TAG_ID_EXCLUDE_FROM_ANALYSIS; }) === true ); diff --git a/libs/ui/src/lib/activities-table/activities-table.component.ts b/libs/ui/src/lib/activities-table/activities-table.component.ts index 6fac6d1625..7252b00740 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.ts +++ b/libs/ui/src/lib/activities-table/activities-table.component.ts @@ -298,7 +298,7 @@ export class GfActivitiesTableComponent implements AfterViewInit, OnInit { public isExcludedFromAnalysis(activity: Activity) { return ( - (activity.account && isAccountExcluded(activity.account)) ?? + isAccountExcluded(activity.account) || activity.tags?.some(({ id }) => { return id === TAG_ID_EXCLUDE_FROM_ANALYSIS; }) === true From 6fbf055206aa857f3699b7fd1a86e9899c8d2900 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 2 Aug 2026 09:38:33 +0200 Subject: [PATCH 14/20] Task/upgrade nestjs to version 11.1.28 (#7506) * Update nestjs to version 11.1.28 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 40 ++++++++++++++++++++-------------------- package.json | 8 ++++---- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1118f2a692..5a856ca09b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Improved the language localization for Chinese (`zh`) +- Upgraded `nestjs` from version `11.1.27` to `11.1.28` ### Fixed diff --git a/package-lock.json b/package-lock.json index 9009b4f295..51ad39a41d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,13 +32,13 @@ "@nest-lab/throttler-storage-redis": "1.2.0", "@nestjs/bull": "11.0.4", "@nestjs/cache-manager": "3.1.3", - "@nestjs/common": "11.1.27", + "@nestjs/common": "11.1.28", "@nestjs/config": "4.0.4", - "@nestjs/core": "11.1.27", + "@nestjs/core": "11.1.28", "@nestjs/event-emitter": "3.1.0", "@nestjs/jwt": "11.0.2", "@nestjs/passport": "11.0.5", - "@nestjs/platform-express": "11.1.27", + "@nestjs/platform-express": "11.1.28", "@nestjs/schedule": "6.1.3", "@nestjs/serve-static": "5.0.5", "@nestjs/throttler": "6.5.0", @@ -116,7 +116,7 @@ "@eslint/eslintrc": "3.3.1", "@eslint/js": "9.35.0", "@nestjs/schematics": "11.1.0", - "@nestjs/testing": "11.1.27", + "@nestjs/testing": "11.1.28", "@nx/angular": "23.0.2", "@nx/eslint-plugin": "23.0.2", "@nx/jest": "23.0.2", @@ -7034,9 +7034,9 @@ } }, "node_modules/@nestjs/common": { - "version": "11.1.27", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.27.tgz", - "integrity": "sha512-kEGSzqM2lWr4whh4Ubflw+oPZSEzxvRMu9WL+LveZploJWTjec5bBlCiRVlVzTPg2kIwBiLwWSvCCW7Wnin1gg==", + "version": "11.1.28", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.28.tgz", + "integrity": "sha512-bRImsxibie+AM7xjdwcrm/gr5YeacI65kSBNzTufa1Ib5iwziaY/lqMtRh9THq6pbV4e1HP9aI2ZxGUumnmaoQ==", "license": "MIT", "dependencies": { "file-type": "21.3.4", @@ -7119,9 +7119,9 @@ } }, "node_modules/@nestjs/core": { - "version": "11.1.27", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.27.tgz", - "integrity": "sha512-K6DX7hcqmZdeXkv7tsPakKBRCgqL19a4mtbX4FluY0hWtFdtPKp6lbe+lb8gWPfvLdbOWr/CPScn7BSjBX+Ecg==", + "version": "11.1.28", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.28.tgz", + "integrity": "sha512-06m63xIRj8+l8uOeh/8LnYupGubkyu4f+bPKIadaSui6vK9KpXgoz7HveT1yOVLcEt0M0oCOEW5EuEXZkEmBBQ==", "license": "MIT", "dependencies": { "fast-safe-stringify": "2.1.1", @@ -7194,14 +7194,14 @@ } }, "node_modules/@nestjs/platform-express": { - "version": "11.1.27", - "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-11.1.27.tgz", - "integrity": "sha512-0ZFhz6H6EdGh4xQVbUNwjoAwBuz73P7FvUAl67h9CTdMqQlJDaQYJApBv8pKfVZ1fGjMCbl0m9DcC6pXaZPWSQ==", + "version": "11.1.28", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-11.1.28.tgz", + "integrity": "sha512-hU+9Sz4m+onHrR5AmelI59QKmY/Re546bPnygnpqqeQdHDiJpBgjWbL4t6Jr73CBpS60cpyng7WzjgphNB9iwA==", "license": "MIT", "dependencies": { "cors": "2.8.6", "express": "5.2.1", - "multer": "2.1.1", + "multer": "2.2.0", "path-to-regexp": "8.4.2", "tslib": "2.8.1" }, @@ -7477,9 +7477,9 @@ } }, "node_modules/@nestjs/testing": { - "version": "11.1.27", - "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-11.1.27.tgz", - "integrity": "sha512-I35po13UHZZeGenLWJ3QYwh77RsLau5RcFKWBZ4waVHeARpwjtC7v7n7lGh98swLQdGmZgTnbvKaZ0B5dsUIKA==", + "version": "11.1.28", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-11.1.28.tgz", + "integrity": "sha512-B+VgRxeLaH7jkOMgAyUP3N3rpFlisQ7JRxixRbgHvG6a0VgKbbkNSofKExexCgKmQQak80undb3+2kE1lUBmRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -26514,9 +26514,9 @@ } }, "node_modules/multer": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-2.1.1.tgz", - "integrity": "sha512-mo+QTzKlx8R7E5ylSXxWzGoXoZbOsRMpyitcht8By2KHvMbf3tjwosZ/Mu/XYU6UuJ3VZnODIrak5ZrPiPyB6A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/multer/-/multer-2.2.0.tgz", + "integrity": "sha512-6rdyFg2kLrMh9Jee7/BMPuV9lEAd7lLW2YUpF9/YxR7njyoUwwQ0ZPh3TaIY50Sw6vlyD2HW3wGOkTS4P79xrQ==", "license": "MIT", "dependencies": { "append-field": "^1.0.0", diff --git a/package.json b/package.json index ded794ce48..7a4d918991 100644 --- a/package.json +++ b/package.json @@ -76,13 +76,13 @@ "@nest-lab/throttler-storage-redis": "1.2.0", "@nestjs/bull": "11.0.4", "@nestjs/cache-manager": "3.1.3", - "@nestjs/common": "11.1.27", + "@nestjs/common": "11.1.28", "@nestjs/config": "4.0.4", - "@nestjs/core": "11.1.27", + "@nestjs/core": "11.1.28", "@nestjs/event-emitter": "3.1.0", "@nestjs/jwt": "11.0.2", "@nestjs/passport": "11.0.5", - "@nestjs/platform-express": "11.1.27", + "@nestjs/platform-express": "11.1.28", "@nestjs/schedule": "6.1.3", "@nestjs/serve-static": "5.0.5", "@nestjs/throttler": "6.5.0", @@ -160,7 +160,7 @@ "@eslint/eslintrc": "3.3.1", "@eslint/js": "9.35.0", "@nestjs/schematics": "11.1.0", - "@nestjs/testing": "11.1.27", + "@nestjs/testing": "11.1.28", "@nx/angular": "23.0.2", "@nx/eslint-plugin": "23.0.2", "@nx/jest": "23.0.2", From b37654c7c6686662d80b517d851401cf2f6c6fa6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 2 Aug 2026 09:44:05 +0200 Subject: [PATCH 15/20] Bugfix/persistence of empty comment in create or update account dialog (#7512) * Fix persistence of empty comment * Update changelog --- CHANGELOG.md | 1 + .../create-or-update-account-dialog.component.ts | 3 ++- .../create-or-update-activity-dialog.component.ts | 7 +++++-- libs/common/src/lib/dtos/create-account.dto.ts | 2 +- libs/common/src/lib/dtos/create-order.dto.ts | 2 +- libs/common/src/lib/dtos/update-account.dto.ts | 2 +- libs/common/src/lib/dtos/update-order.dto.ts | 2 +- 7 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a856ca09b..115d25a92e 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 ### Fixed - Fixed the handling of the _Exclude from Analysis_ tag in the activities table +- Fixed the persistence of an empty comment in the create or update account dialog - Resolved a validation error caused by empty strings in the asset profile details dialog of the admin control panel ## 3.39.0 - 2026-08-01 diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts index 8b0536ebfa..2157ea5d34 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts @@ -1,6 +1,7 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TAG_ID_EXCLUDE_FROM_ANALYSIS } from '@ghostfolio/common/config'; import { CreateAccountDto, UpdateAccountDto } from '@ghostfolio/common/dtos'; +import { getStringOrNull } from '@ghostfolio/common/helper'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { validateObjectForForm } from '@ghostfolio/common/utils'; import { GfCurrencySelectorComponent } from '@ghostfolio/ui/currency-selector'; @@ -198,7 +199,7 @@ export class GfCreateOrUpdateAccountDialogComponent { protected async onSubmit() { const account: CreateAccountDto | UpdateAccountDto = { balance: this.accountForm.get('balance')?.value, - comment: this.accountForm.get('comment')?.value ?? null, + comment: getStringOrNull(this.accountForm.get('comment')?.value), currency: this.accountForm.get('currency')?.value, id: this.accountForm.get('accountId')?.value, name: this.accountForm.get('name')?.value, diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index 632db1cd41..3b80d28251 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -1,7 +1,10 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { ASSET_CLASS_MAPPING, DEFAULT_LOCALE } from '@ghostfolio/common/config'; import { CreateOrderDto, UpdateOrderDto } from '@ghostfolio/common/dtos'; -import { getDateFormatString } from '@ghostfolio/common/helper'; +import { + getDateFormatString, + getStringOrNull +} from '@ghostfolio/common/helper'; import { AssetClassSelectorOption, LookupItem @@ -471,7 +474,7 @@ export class GfCreateOrUpdateActivityDialogComponent { accountId: this.activityForm.get('accountId')?.value, assetClass: this.activityForm.get('assetClass')?.value, assetSubClass: this.activityForm.get('assetSubClass')?.value, - comment: this.activityForm.get('comment')?.value ?? null, + comment: getStringOrNull(this.activityForm.get('comment')?.value), currency: this.activityForm.get('currency')?.value, customCurrency: this.activityForm.get('currencyOfUnitPrice')?.value, dataSource: ['FEE', 'INTEREST', 'LIABILITY', 'VALUABLE'].includes( diff --git a/libs/common/src/lib/dtos/create-account.dto.ts b/libs/common/src/lib/dtos/create-account.dto.ts index e4a0c64fe8..cae8293ee8 100644 --- a/libs/common/src/lib/dtos/create-account.dto.ts +++ b/libs/common/src/lib/dtos/create-account.dto.ts @@ -20,7 +20,7 @@ export class CreateAccountDto { @Transform(({ value }: TransformFnParams) => isString(value) ? value.trim() : value ) - comment?: string; + comment?: string | null; @IsCurrencyCode() currency: string; diff --git a/libs/common/src/lib/dtos/create-order.dto.ts b/libs/common/src/lib/dtos/create-order.dto.ts index 36365b7be0..c70b66b025 100644 --- a/libs/common/src/lib/dtos/create-order.dto.ts +++ b/libs/common/src/lib/dtos/create-order.dto.ts @@ -35,7 +35,7 @@ export class CreateOrderDto { @Transform(({ value }: TransformFnParams) => isString(value) ? value.trim() : value ) - comment?: string; + comment?: string | null; @IsCurrencyCode() currency: string; diff --git a/libs/common/src/lib/dtos/update-account.dto.ts b/libs/common/src/lib/dtos/update-account.dto.ts index a6a3e6ac67..d8bfc7b8d9 100644 --- a/libs/common/src/lib/dtos/update-account.dto.ts +++ b/libs/common/src/lib/dtos/update-account.dto.ts @@ -20,7 +20,7 @@ export class UpdateAccountDto { @Transform(({ value }: TransformFnParams) => isString(value) ? value.trim() : value ) - comment?: string; + comment?: string | null; @IsCurrencyCode() currency: string; diff --git a/libs/common/src/lib/dtos/update-order.dto.ts b/libs/common/src/lib/dtos/update-order.dto.ts index 991479bc8b..d8fdbe66b6 100644 --- a/libs/common/src/lib/dtos/update-order.dto.ts +++ b/libs/common/src/lib/dtos/update-order.dto.ts @@ -34,7 +34,7 @@ export class UpdateOrderDto { @Transform(({ value }: TransformFnParams) => isString(value) ? value.trim() : value ) - comment?: string; + comment?: string | null; @IsCurrencyCode() currency: string; From cb775af7f1631ac95436db65f8730baceb296e48 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 2 Aug 2026 09:51:39 +0200 Subject: [PATCH 16/20] Task/improve style of read-only tags in tags selector component (#7504) * Improve style of read-only tags * Add Storybook story * Update changelog --- CHANGELOG.md | 1 + .../src/lib/tags-selector/tags-selector.component.html | 10 +++++----- .../tags-selector/tags-selector.component.stories.ts | 8 ++++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 115d25a92e..9fe7f1a8bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Improved the style of the read-only tags in the tags selector component - Improved the language localization for Chinese (`zh`) - Upgraded `nestjs` from version `11.1.27` to `11.1.28` diff --git a/libs/ui/src/lib/tags-selector/tags-selector.component.html b/libs/ui/src/lib/tags-selector/tags-selector.component.html index bd56e93185..9bede09a73 100644 --- a/libs/ui/src/lib/tags-selector/tags-selector.component.html +++ b/libs/ui/src/lib/tags-selector/tags-selector.component.html @@ -1,20 +1,20 @@
@if (readonly) { -
Tags
+
Tags
@if ( tagsSelected().length > 0 || (tagsReadOnly && tagsReadOnly.length > 0) ) { - + @if (tagsReadOnly) { @for (tag of tagsReadOnly; track tag.id) { - {{ tag.name }} + {{ tag.name }} } } @for (tag of tagsSelected(); track tag.id) { - {{ tag.name }} + {{ tag.name }} } - + } @else {
} diff --git a/libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts b/libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts index 48aeaffe31..e8bdd1873c 100644 --- a/libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts +++ b/libs/ui/src/lib/tags-selector/tags-selector.component.stories.ts @@ -87,6 +87,14 @@ export const Readonly: Story = { } }; +export const ReadonlyWithoutValue: Story = { + args: { + readonly: true, + tags: [], + tagsAvailable: OPTIONS + } +}; + export const WithoutValue: Story = { args: { tags: [], From bd8ef423fae22709c70c901bab2c4ca42ba74f7b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 2 Aug 2026 09:57:21 +0200 Subject: [PATCH 17/20] Release 3.40.0 (#7514) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fe7f1a8bc..c32132bc9e 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 +## 3.40.0 - 2026-08-02 ### Changed diff --git a/package-lock.json b/package-lock.json index 51ad39a41d..b39eac00dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "3.39.0", + "version": "3.40.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "3.39.0", + "version": "3.40.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 7a4d918991..dc1e120205 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "3.39.0", + "version": "3.40.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From ddf446f9156243a140b3bed6ab8a70215c81193e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 2 Aug 2026 17:00:13 +0200 Subject: [PATCH 18/20] Feature/stock splits setup (#7251) * Stock splits setup * Update changelog --- CHANGELOG.md | 4 + apps/api/src/app/asset/asset.controller.ts | 3 +- .../asset-profiles.controller.ts | 96 ++++++++++++- .../asset-profiles/asset-profiles.module.ts | 2 + .../asset-profiles/asset-profiles.service.ts | 45 ++++++- apps/api/src/app/user/user.service.ts | 2 + .../asset-profile-split.module.ts | 12 ++ .../asset-profile-split.service.ts | 87 ++++++++++++ .../asset-profile-dialog.component.ts | 85 +++++++++++- .../asset-profile-dialog.html | 127 ++++++++++++++++++ .../dtos/create-asset-profile-split.dto.ts | 39 ++++++ libs/common/src/lib/dtos/index.ts | 2 + libs/common/src/lib/helper.spec.ts | 48 ++++++- libs/common/src/lib/helper.ts | 22 +++ .../admin-market-data-details.interface.ts | 3 +- .../asset-profile-response.interface.ts | 3 +- libs/common/src/lib/permissions.ts | 12 ++ .../validator-constraints/is-split-ratio.ts | 18 +++ libs/ui/src/lib/services/admin.service.ts | 24 +++- libs/ui/src/lib/services/data.service.ts | 4 + .../migration.sql | 21 +++ prisma/schema.prisma | 28 ++++ 22 files changed, 674 insertions(+), 13 deletions(-) create mode 100644 apps/api/src/services/asset-profile-split/asset-profile-split.module.ts create mode 100644 apps/api/src/services/asset-profile-split/asset-profile-split.service.ts create mode 100644 libs/common/src/lib/dtos/create-asset-profile-split.dto.ts create mode 100644 libs/common/src/lib/validator-constraints/is-split-ratio.ts create mode 100644 prisma/migrations/20260802000000_added_asset_profile_split/migration.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index c32132bc9e..53c443900b 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 ## 3.40.0 - 2026-08-02 +### Added + +- Added the database model and endpoints to manage the stock splits of an asset profile (experimental) + ### Changed - Improved the style of the read-only tags in the tags selector component diff --git a/apps/api/src/app/asset/asset.controller.ts b/apps/api/src/app/asset/asset.controller.ts index de04b5c813..49afb43d71 100644 --- a/apps/api/src/app/asset/asset.controller.ts +++ b/apps/api/src/app/asset/asset.controller.ts @@ -20,7 +20,7 @@ export class AssetController { @Param('dataSource') dataSource: DataSource, @Param('symbol') symbol: string ): Promise { - const { assetProfile, marketData } = + const { assetProfile, marketData, splits } = await this.assetProfilesService.getAssetProfile({ dataSource, symbol @@ -28,6 +28,7 @@ export class AssetController { return { marketData, + splits, assetProfile: pick(assetProfile, ['dataSource', 'name', 'symbol']) }; } diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts index 6be23c2695..6521665e1b 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.controller.ts @@ -4,7 +4,10 @@ import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interce import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.interceptor'; import { ApiService } from '@ghostfolio/api/services/api/api.service'; import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile/symbol-profile.service'; -import { UpdateAssetProfileDataDto } from '@ghostfolio/common/dtos'; +import { + CreateAssetProfileSplitDto, + UpdateAssetProfileDataDto +} from '@ghostfolio/common/dtos'; import { getCurrencyFromSymbol, isCurrency } from '@ghostfolio/common/helper'; import { AssetProfileResponse } from '@ghostfolio/common/interfaces'; import { @@ -18,19 +21,22 @@ import { MarketDataPreset, RequestWithUser } from '@ghostfolio/common/types'; import { Body, Controller, + Delete, Get, HttpException, Inject, Param, ParseIntPipe, Patch, + Post, Query, UseGuards, UseInterceptors } from '@nestjs/common'; import { REQUEST } from '@nestjs/core'; import { AuthGuard } from '@nestjs/passport'; -import { DataSource, Prisma } from '@prisma/client'; +import { AssetProfileSplit, DataSource, Prisma } from '@prisma/client'; +import { parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { AssetProfilesService } from './asset-profiles.service'; @@ -119,6 +125,49 @@ export class AssetProfilesController { }); } + @Post(':dataSource/:symbol/splits') + @UseGuards(AuthGuard('jwt')) + @UseInterceptors(TransformDataSourceInRequestInterceptor) + public async createSplit( + @Body() data: CreateAssetProfileSplitDto, + @Param('dataSource') dataSource: DataSource, + @Param('symbol') symbol: string + ): Promise { + const { id: symbolProfileId } = await this.validateAccessToSplits({ + dataSource, + symbol, + permission: permissions.createAssetProfileSplit, + permissionOfOwnAssetProfile: + permissions.createAssetProfileSplitOfOwnAssetProfile + }); + + return this.assetProfilesService.createSplit({ + symbolProfileId, + date: parseISO(data.date), + denominator: data.denominator, + numerator: data.numerator + }); + } + + @Delete(':dataSource/:symbol/splits/:id') + @UseGuards(AuthGuard('jwt')) + @UseInterceptors(TransformDataSourceInRequestInterceptor) + public async deleteSplit( + @Param('dataSource') dataSource: DataSource, + @Param('id') id: string, + @Param('symbol') symbol: string + ): Promise { + const { id: symbolProfileId } = await this.validateAccessToSplits({ + dataSource, + symbol, + permission: permissions.deleteAssetProfileSplit, + permissionOfOwnAssetProfile: + permissions.deleteAssetProfileSplitOfOwnAssetProfile + }); + + return this.assetProfilesService.deleteSplit({ id, symbolProfileId }); + } + @HasPermission(permissions.accessAdminControl) @Patch(':dataSource/:symbol') @UseGuards(AuthGuard('jwt'), HasPermissionGuard) @@ -139,4 +188,47 @@ export class AssetProfilesController { assetProfileData ); } + + private async validateAccessToSplits({ + dataSource, + permission, + permissionOfOwnAssetProfile, + symbol + }: { + dataSource: DataSource; + permission: string; + permissionOfOwnAssetProfile: string; + symbol: string; + }) { + const [assetProfile] = await this.symbolProfileService.getSymbolProfiles([ + { dataSource, symbol } + ]); + + if (!assetProfile) { + throw new HttpException( + getReasonPhrase(StatusCodes.NOT_FOUND), + StatusCodes.NOT_FOUND + ); + } + + const canAccessAllAssetProfiles = hasPermission( + this.request.user.permissions, + permission + ); + + const canAccessOwnAssetProfile = + assetProfile.userId === this.request.user.id && + hasPermission(this.request.user.permissions, permissionOfOwnAssetProfile); + + if (!canAccessAllAssetProfiles && !canAccessOwnAssetProfile) { + throw new HttpException( + assetProfile.userId + ? getReasonPhrase(StatusCodes.NOT_FOUND) + : getReasonPhrase(StatusCodes.FORBIDDEN), + assetProfile.userId ? StatusCodes.NOT_FOUND : StatusCodes.FORBIDDEN + ); + } + + return assetProfile; + } } diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.module.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.module.ts index f96d92eb3e..e3906be9ff 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.module.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.module.ts @@ -2,6 +2,7 @@ import { ActivitiesModule } from '@ghostfolio/api/app/activities/activities.modu import { TransformDataSourceInRequestModule } from '@ghostfolio/api/interceptors/transform-data-source-in-request/transform-data-source-in-request.module'; import { TransformDataSourceInResponseModule } from '@ghostfolio/api/interceptors/transform-data-source-in-response/transform-data-source-in-response.module'; import { ApiModule } from '@ghostfolio/api/services/api/api.module'; +import { AssetProfileSplitModule } from '@ghostfolio/api/services/asset-profile-split/asset-profile-split.module'; import { BenchmarkModule } from '@ghostfolio/api/services/benchmark/benchmark.module'; import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.module'; @@ -20,6 +21,7 @@ import { AssetProfilesService } from './asset-profiles.service'; imports: [ ActivitiesModule, ApiModule, + AssetProfileSplitModule, BenchmarkModule, DataProviderModule, ExchangeRateDataModule, diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts index bc6aeff1e6..7d75fc40bb 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts @@ -1,4 +1,5 @@ import { ActivitiesService } from '@ghostfolio/api/app/activities/activities.service'; +import { AssetProfileSplitService } from '@ghostfolio/api/services/asset-profile-split/asset-profile-split.service'; import { BenchmarkService } from '@ghostfolio/api/services/benchmark/benchmark.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'; @@ -30,6 +31,7 @@ import { groupBy } from 'lodash'; export class AssetProfilesService { public constructor( private readonly activitiesService: ActivitiesService, + private readonly assetProfileSplitService: AssetProfileSplitService, private readonly benchmarkService: BenchmarkService, private readonly dataProviderService: DataProviderService, private readonly exchangeRateDataService: ExchangeRateDataService, @@ -38,6 +40,42 @@ export class AssetProfilesService { private readonly symbolProfileService: SymbolProfileService ) {} + public async createSplit({ + date, + denominator, + numerator, + symbolProfileId + }: { + date: Date; + denominator: number; + numerator: number; + symbolProfileId: string; + }) { + return this.assetProfileSplitService.upsert({ + date, + denominator, + numerator, + symbolProfileId + }); + } + + public async deleteSplit({ + id, + symbolProfileId + }: { + id: string; + symbolProfileId: string; + }) { + const isDeleted = await this.assetProfileSplitService.deleteById({ + id, + symbolProfileId + }); + + if (!isDeleted) { + throw new NotFoundException(); + } + } + public async getAssetProfile({ dataSource, symbol @@ -54,7 +92,7 @@ export class AssetProfilesService { await this.activitiesService.getStatisticsByCurrency(currency)); } - const [[assetProfile], marketData] = await Promise.all([ + const [[assetProfile], marketData, splits] = await Promise.all([ this.symbolProfileService.getSymbolProfiles([ { dataSource, @@ -69,7 +107,8 @@ export class AssetProfilesService { dataSource, symbol } - }) + }), + this.assetProfileSplitService.getSplits({ dataSource, symbol }) ]); if (assetProfile) { @@ -80,6 +119,7 @@ export class AssetProfilesService { return { marketData, + splits, assetProfile: assetProfile ?? { activitiesCount, currency, @@ -92,6 +132,7 @@ export class AssetProfilesService { } }; } + public async getAssetProfiles({ filters = [], presetId, diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index b706e47023..5d60c571df 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -549,9 +549,11 @@ export class UserService { currentPermissions, permissions.accessHoldingsChart, permissions.createAccess, + permissions.createAssetProfileSplitOfOwnAssetProfile, permissions.createMarketDataOfOwnAssetProfile, permissions.createOwnTag, permissions.createWatchlistItem, + permissions.deleteAssetProfileSplitOfOwnAssetProfile, permissions.readAiPrompt, permissions.readMarketDataOfOwnAssetProfile, permissions.updateMarketDataOfOwnAssetProfile diff --git a/apps/api/src/services/asset-profile-split/asset-profile-split.module.ts b/apps/api/src/services/asset-profile-split/asset-profile-split.module.ts new file mode 100644 index 0000000000..1219a2f989 --- /dev/null +++ b/apps/api/src/services/asset-profile-split/asset-profile-split.module.ts @@ -0,0 +1,12 @@ +import { PrismaModule } from '@ghostfolio/api/services/prisma/prisma.module'; + +import { Module } from '@nestjs/common'; + +import { AssetProfileSplitService } from './asset-profile-split.service'; + +@Module({ + exports: [AssetProfileSplitService], + imports: [PrismaModule], + providers: [AssetProfileSplitService] +}) +export class AssetProfileSplitModule {} diff --git a/apps/api/src/services/asset-profile-split/asset-profile-split.service.ts b/apps/api/src/services/asset-profile-split/asset-profile-split.service.ts new file mode 100644 index 0000000000..ec842caaf5 --- /dev/null +++ b/apps/api/src/services/asset-profile-split/asset-profile-split.service.ts @@ -0,0 +1,87 @@ +import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; +import { resetHours } from '@ghostfolio/common/helper'; +import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; + +import { Injectable } from '@nestjs/common'; +import { AssetProfileSplit } from '@prisma/client'; + +@Injectable() +export class AssetProfileSplitService { + public constructor(private readonly prismaService: PrismaService) {} + + /** + * Deletes the split with the given id of an asset profile and returns + * whether it existed + */ + public async deleteById({ + id, + symbolProfileId + }: { + id: string; + symbolProfileId: string; + }) { + const { count } = await this.prismaService.assetProfileSplit.deleteMany({ + where: { + id, + symbolProfileId + } + }); + + return count > 0; + } + + /** + * Returns the splits of the given asset profile in ascending order by date + */ + public async getSplits({ + dataSource, + symbol + }: AssetProfileIdentifier): Promise { + return this.prismaService.assetProfileSplit.findMany({ + orderBy: [ + { + date: 'asc' + } + ], + where: { + symbolProfile: { + dataSource, + symbol + } + } + }); + } + + public async upsert({ + date, + denominator, + numerator, + symbolProfileId + }: { + date: Date; + denominator: number; + numerator: number; + symbolProfileId: string; + }): Promise { + const dateOfSplit = resetHours(date); + + return this.prismaService.assetProfileSplit.upsert({ + create: { + denominator, + numerator, + symbolProfileId, + date: dateOfSplit + }, + update: { + denominator, + numerator + }, + where: { + symbolProfileId_date: { + symbolProfileId, + date: dateOfSplit + } + } + }); + } +} diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index 330688da18..f0e8eaf171 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -11,9 +11,11 @@ import { DATE_FORMAT, getCountryName, getCurrencyFromSymbol, + getDateFormatString, getStringOrNull, getStringOrUndefined, - isCurrency + isCurrency, + isSplitRatio } from '@ghostfolio/common/helper'; import { AdminMarketDataDetails, @@ -37,6 +39,7 @@ import { GfSymbolAutocompleteComponent } from '@ghostfolio/ui/symbol-autocomplet import { GfValueComponent } from '@ghostfolio/ui/value'; import { TextFieldModule } from '@angular/cdk/text-field'; +import { CommonModule } from '@angular/common'; import { HttpErrorResponse } from '@angular/common/http'; import { ChangeDetectionStrategy, @@ -63,6 +66,7 @@ import { MatCheckboxChange, MatCheckboxModule } from '@angular/material/checkbox'; +import { MatDatepickerModule } from '@angular/material/datepicker'; import { MAT_DIALOG_DATA, MatDialogModule, @@ -76,6 +80,7 @@ import { MatTabsModule } from '@angular/material/tabs'; import { IonIcon } from '@ionic/angular/standalone'; import { AssetClass, + AssetProfileSplit, AssetSubClass, DataGatheringFrequency, DataSource, @@ -88,11 +93,14 @@ import { format } from 'date-fns'; import { StatusCodes } from 'http-status-codes'; import { addIcons } from 'ionicons'; import { + calendarClearOutline, codeSlashOutline, createOutline, ellipsisVertical, + gitCompareOutline, readerOutline, - serverOutline + serverOutline, + trashOutline } from 'ionicons/icons'; import { isBoolean } from 'lodash'; import ms from 'ms'; @@ -105,6 +113,7 @@ import { AssetProfileDialogParams } from './interfaces/interfaces'; changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'd-flex flex-column h-100' }, imports: [ + CommonModule, FormsModule, GfCurrencySelectorComponent, GfEntityLogoComponent, @@ -116,6 +125,7 @@ import { AssetProfileDialogParams } from './interfaces/interfaces'; IonIcon, MatButtonModule, MatCheckboxModule, + MatDatepickerModule, MatDialogModule, MatInputModule, MatMenuModule, @@ -196,6 +206,26 @@ export class GfAssetProfileDialogComponent implements OnInit { } ); + protected readonly assetProfileSplitForm = this.formBuilder.group( + { + date: new FormControl(null, Validators.required), + denominator: new FormControl(null, Validators.required), + numerator: new FormControl(null, Validators.required) + }, + { + validators: (control: AbstractControl): ValidationErrors | null => { + const { denominator, numerator } = control.value as { + denominator: number; + numerator: number; + }; + + return isSplitRatio({ denominator, numerator }) + ? null + : { invalidSplitRatio: true }; + } + } + ); + protected readonly canDeleteAssetProfile = canDeleteAssetProfile; protected canEditAssetProfile = true; @@ -247,6 +277,7 @@ export class GfAssetProfileDialogComponent implements OnInit { value: 'max' } ]; + protected defaultDateFormat: string; protected readonly getCountryName = getCountryName; protected historicalDataItems: LineChartItem[]; protected isBenchmark = false; @@ -270,6 +301,8 @@ export class GfAssetProfileDialogComponent implements OnInit { [name: string]: { name: string; value: number }; }; + protected splits: AssetProfileSplit[] = []; + protected readonly translate = translate; protected user: User; @@ -293,11 +326,14 @@ export class GfAssetProfileDialogComponent implements OnInit { private userService: UserService ) { addIcons({ + calendarClearOutline, codeSlashOutline, createOutline, ellipsisVertical, + gitCompareOutline, readerOutline, - serverOutline + serverOutline, + trashOutline }); } @@ -310,6 +346,7 @@ export class GfAssetProfileDialogComponent implements OnInit { this.benchmarks = benchmarks; this.currencies = currencies; + this.defaultDateFormat = getDateFormatString(this.data.locale); this.initialize(); } @@ -364,8 +401,9 @@ export class GfAssetProfileDialogComponent implements OnInit { symbol: this.data.symbol }) .pipe(takeUntilDestroyed(this.destroyRef)) - .subscribe(({ assetProfile, marketData }) => { + .subscribe(({ assetProfile, marketData, splits }) => { this.assetProfile = assetProfile; + this.splits = splits ?? []; this.assetClassLabel = translate(this.assetProfile?.assetClass ?? ''); this.assetSubClassLabel = translate( @@ -521,6 +559,45 @@ export class GfAssetProfileDialogComponent implements OnInit { .subscribe(); } + protected onAddSplit() { + const { date, denominator, numerator } = + this.assetProfileSplitForm.getRawValue(); + + if (!date || !denominator || !numerator) { + return; + } + + this.adminService + .postAssetProfileSplit({ + dataSource: this.data.dataSource, + split: { + denominator, + numerator, + date: format(date, DATE_FORMAT) + }, + symbol: this.data.symbol + }) + .pipe(takeUntilDestroyed(this.destroyRef)) + .subscribe(() => { + this.assetProfileSplitForm.reset(); + + this.initialize(); + }); + } + + protected onDeleteSplit(aId: string) { + this.adminService + .deleteAssetProfileSplit({ + dataSource: this.data.dataSource, + id: aId, + symbol: this.data.symbol + }) + .pipe(takeUntilDestroyed(this.destroyRef)) + .subscribe(() => { + this.initialize(); + }); + } + protected onMarketDataChanged(withRefresh: boolean = false) { if (withRefresh) { this.initialize(); diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html index f0b914b1cc..f5df34ab47 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -503,6 +503,133 @@
+ + @if (false && user?.settings?.isExperimentalFeatures) { + + + +
Splits
+
+
+
+
+

+ Splits are stored for this asset profile, but are not applied + to the portfolio calculation yet. +

+ @if (splits.length > 0) { + + + + + + + + + + @for (split of splits; track split.id) { + + + + + + } + +
Date + Split Ratio +
+ {{ split.date | date: defaultDateFormat }} + + {{ split.numerator }}:{{ split.denominator }} + + +
+ } +
+ + Date + + + + + + + + Shares After + + Numerator, + e.g. 4 for a 4:1 split or 1 for a 1:10 reverse + split + + + Shares Before + + Denominator, + e.g. 1 for a 4:1 split or 10 for a 1:10 reverse + split + +
+ +
+
+
+
+
+
+ } @if (assetProfile?.dataSource === 'MANUAL') { diff --git a/libs/common/src/lib/dtos/create-asset-profile-split.dto.ts b/libs/common/src/lib/dtos/create-asset-profile-split.dto.ts new file mode 100644 index 0000000000..a68f00883c --- /dev/null +++ b/libs/common/src/lib/dtos/create-asset-profile-split.dto.ts @@ -0,0 +1,39 @@ +import { IsAfter1970Constraint } from '@ghostfolio/common/validator-constraints/is-after-1970'; +import { IsSplitRatioConstraint } from '@ghostfolio/common/validator-constraints/is-split-ratio'; + +import { IsInt, IsISO8601, Validate } from 'class-validator'; + +export class CreateAssetProfileSplitDto { + /** + * The date the split becomes effective. Activities before this date are + * adjusted by the ratio. + */ + @IsISO8601() + @Validate(IsAfter1970Constraint) + date: string; + + /** + * The number of shares held before the split, for example 1 for a 4:1 split + * or 10 for a 1:10 reverse split. + */ + @IsInt() + denominator: number; + + /** + * The number of shares held after the split, for example 4 for a 4:1 split + * or 1 for a 1:10 reverse split. + * + * The resulting split factor is numerator / denominator. Both parts are kept + * so that the ratio stays exact, for example 1/3 for a 1:3 reverse split. + * + * Activities are adjusted by this ratio: the quantity is multiplied by it and + * the unit price divided by it, so that the total value of an activity stays + * the same. + * + * Market data is already split-adjusted by the data providers and must not be + * adjusted again. + */ + @IsInt() + @Validate(IsSplitRatioConstraint) + numerator: number; +} diff --git a/libs/common/src/lib/dtos/index.ts b/libs/common/src/lib/dtos/index.ts index 7851153565..7cf385cd7b 100644 --- a/libs/common/src/lib/dtos/index.ts +++ b/libs/common/src/lib/dtos/index.ts @@ -4,6 +4,7 @@ import { CreateAccessDto } from './create-access.dto'; import { CreateAccountBalanceDto } from './create-account-balance.dto'; import { CreateAccountWithBalancesDto } from './create-account-with-balances.dto'; import { CreateAccountDto } from './create-account.dto'; +import { CreateAssetProfileSplitDto } from './create-asset-profile-split.dto'; import { CreateAssetProfileWithMarketDataDto } from './create-asset-profile-with-market-data.dto'; import { CreateAssetProfileDto } from './create-asset-profile.dto'; import { CreateOrderDto } from './create-order.dto'; @@ -36,6 +37,7 @@ export { CreateAccountDto, CreateAccountWithBalancesDto, CreateAssetProfileDto, + CreateAssetProfileSplitDto, CreateAssetProfileWithMarketDataDto, CreateOrderDto, CreatePlatformDto, diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index c4947394f6..42441a619d 100644 --- a/libs/common/src/lib/helper.spec.ts +++ b/libs/common/src/lib/helper.spec.ts @@ -9,7 +9,8 @@ import { getStringOrUndefined, isAccountExcluded, isCurrency, - isCurrencySymbol + isCurrencySymbol, + isSplitRatio } from '@ghostfolio/common/helper'; describe('Helper', () => { @@ -280,4 +281,49 @@ describe('Helper', () => { expect(isCurrencySymbol('')).toEqual(false); }); }); + + describe('Is split ratio', () => { + it('Forward split', () => { + expect(isSplitRatio({ denominator: 1, numerator: 2 })).toEqual(true); + expect(isSplitRatio({ denominator: 1, numerator: 4 })).toEqual(true); + expect(isSplitRatio({ denominator: 2, numerator: 3 })).toEqual(true); + }); + + it('Reverse split', () => { + expect(isSplitRatio({ denominator: 10, numerator: 1 })).toEqual(true); + expect(isSplitRatio({ denominator: 3, numerator: 1 })).toEqual(true); + }); + + it('Ratio without effect', () => { + expect(isSplitRatio({ denominator: 1, numerator: 1 })).toEqual(false); + expect(isSplitRatio({ denominator: 3, numerator: 3 })).toEqual(false); + }); + + it('Zero or negative ratio', () => { + expect(isSplitRatio({ denominator: 1, numerator: 0 })).toEqual(false); + expect(isSplitRatio({ denominator: 0, numerator: 1 })).toEqual(false); + expect(isSplitRatio({ denominator: 1, numerator: -2 })).toEqual(false); + expect(isSplitRatio({ denominator: -2, numerator: 1 })).toEqual(false); + }); + + it('Non-integer ratio', () => { + expect(isSplitRatio({ denominator: 1, numerator: 1.5 })).toEqual(false); + expect(isSplitRatio({ denominator: 2.5, numerator: 1 })).toEqual(false); + expect(isSplitRatio({ denominator: 1, numerator: Number.NaN })).toEqual( + false + ); + expect( + isSplitRatio({ denominator: 1, numerator: Number.POSITIVE_INFINITY }) + ).toEqual(false); + }); + + it('Missing ratio', () => { + expect( + isSplitRatio({ denominator: undefined, numerator: undefined }) + ).toEqual(false); + expect(isSplitRatio({ denominator: null, numerator: null })).toEqual( + false + ); + }); + }); }); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 58927337ee..22f969d029 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -526,6 +526,28 @@ export function isRootCurrency(aCurrency: string) { }); } +/** + * Validates the ratio of a stock split, expressed as the number of shares held + * after the split (numerator) per number of shares held before (denominator), + * for example 4 and 1 for a 4:1 split or 1 and 10 for a 1:10 reverse split. An + * equal numerator and denominator would be a no-op. + */ +export function isSplitRatio({ + denominator, + numerator +}: { + denominator: number; + numerator: number; +}) { + return ( + Number.isSafeInteger(numerator) && + Number.isSafeInteger(denominator) && + numerator > 0 && + denominator > 0 && + numerator !== denominator + ); +} + export function isValidSearchQuery(aQuery: string) { return aQuery?.trim().length >= SEARCH_QUERY_MINIMUM_LENGTH; } diff --git a/libs/common/src/lib/interfaces/admin-market-data-details.interface.ts b/libs/common/src/lib/interfaces/admin-market-data-details.interface.ts index dc44d03823..8cfe70f9c5 100644 --- a/libs/common/src/lib/interfaces/admin-market-data-details.interface.ts +++ b/libs/common/src/lib/interfaces/admin-market-data-details.interface.ts @@ -1,8 +1,9 @@ -import { MarketData } from '@prisma/client'; +import { AssetProfileSplit, MarketData } from '@prisma/client'; import { EnhancedAssetProfile } from './enhanced-asset-profile.interface'; export interface AdminMarketDataDetails { assetProfile: Partial; marketData: MarketData[]; + splits: AssetProfileSplit[]; } diff --git a/libs/common/src/lib/interfaces/responses/asset-profile-response.interface.ts b/libs/common/src/lib/interfaces/responses/asset-profile-response.interface.ts index d76188c730..26082c2c42 100644 --- a/libs/common/src/lib/interfaces/responses/asset-profile-response.interface.ts +++ b/libs/common/src/lib/interfaces/responses/asset-profile-response.interface.ts @@ -1,8 +1,9 @@ -import { MarketData } from '@prisma/client'; +import { AssetProfileSplit, MarketData } from '@prisma/client'; import { EnhancedAssetProfile } from '../enhanced-asset-profile.interface'; export interface AssetProfileResponse { assetProfile: Partial; marketData: MarketData[]; + splits: AssetProfileSplit[]; } diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index 428de1788c..811ded68c5 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -12,6 +12,9 @@ export const permissions = { createAccountBalance: 'createAccountBalance', createActivity: 'createActivity', createApiKey: 'createApiKey', + createAssetProfileSplit: 'createAssetProfileSplit', + createAssetProfileSplitOfOwnAssetProfile: + 'createAssetProfileSplitOfOwnAssetProfile', createMarketData: 'createMarketData', createMarketDataOfOwnAssetProfile: 'createMarketDataOfOwnAssetProfile', createOwnTag: 'createOwnTag', @@ -23,6 +26,9 @@ export const permissions = { deleteAccount: 'deleteAccount', deleteAccountBalance: 'deleteAccountBalance', deleteActivity: 'deleteActivity', + deleteAssetProfileSplit: 'deleteAssetProfileSplit', + deleteAssetProfileSplitOfOwnAssetProfile: + 'deleteAssetProfileSplitOfOwnAssetProfile', deleteAuthDevice: 'deleteAuthDevice', deleteOwnUser: 'deleteOwnUser', deletePlatform: 'deletePlatform', @@ -80,6 +86,8 @@ export function getPermissions(aRole: Role): string[] { permissions.createWatchlistItem, permissions.deleteAccountBalance, permissions.deleteWatchlistItem, + permissions.createAssetProfileSplit, + permissions.createAssetProfileSplitOfOwnAssetProfile, permissions.createMarketData, permissions.createMarketDataOfOwnAssetProfile, permissions.createOwnTag, @@ -88,6 +96,8 @@ export function getPermissions(aRole: Role): string[] { permissions.deleteAccess, permissions.deleteAccount, permissions.deleteActivity, + permissions.deleteAssetProfileSplit, + permissions.deleteAssetProfileSplitOfOwnAssetProfile, permissions.deleteAuthDevice, permissions.deletePlatform, permissions.deleteTag, @@ -128,6 +138,7 @@ export function getPermissions(aRole: Role): string[] { permissions.createAccount, permissions.createAccountBalance, permissions.createActivity, + permissions.createAssetProfileSplitOfOwnAssetProfile, permissions.createMarketDataOfOwnAssetProfile, permissions.createOwnTag, permissions.createWatchlistItem, @@ -135,6 +146,7 @@ export function getPermissions(aRole: Role): string[] { permissions.deleteAccount, permissions.deleteAccountBalance, permissions.deleteActivity, + permissions.deleteAssetProfileSplitOfOwnAssetProfile, permissions.deleteAuthDevice, permissions.deleteWatchlistItem, permissions.readAiPrompt, diff --git a/libs/common/src/lib/validator-constraints/is-split-ratio.ts b/libs/common/src/lib/validator-constraints/is-split-ratio.ts new file mode 100644 index 0000000000..d3cd454e85 --- /dev/null +++ b/libs/common/src/lib/validator-constraints/is-split-ratio.ts @@ -0,0 +1,18 @@ +import { isSplitRatio } from '@ghostfolio/common/helper'; + +import { + ValidationArguments, + ValidatorConstraint, + ValidatorConstraintInterface +} from 'class-validator'; + +@ValidatorConstraint({ name: 'isSplitRatio' }) +export class IsSplitRatioConstraint implements ValidatorConstraintInterface { + public defaultMessage() { + return 'numerator and denominator must be different positive integers'; + } + + public validate(_: unknown, { object }: ValidationArguments) { + return isSplitRatio(object as { denominator: number; numerator: number }); + } +} diff --git a/libs/ui/src/lib/services/admin.service.ts b/libs/ui/src/lib/services/admin.service.ts index 6a06ef76b7..8510f1729f 100644 --- a/libs/ui/src/lib/services/admin.service.ts +++ b/libs/ui/src/lib/services/admin.service.ts @@ -4,6 +4,7 @@ import { HEADER_KEY_TOKEN } from '@ghostfolio/common/config'; import { + CreateAssetProfileSplitDto, CreatePlatformDto, UpdateAssetProfileDto, UpdatePlatformDto @@ -23,7 +24,7 @@ import { GF_ENVIRONMENT } from '@ghostfolio/ui/environment'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Injectable, inject } from '@angular/core'; -import { MarketData, Platform } from '@prisma/client'; +import { AssetProfileSplit, MarketData, Platform } from '@prisma/client'; import { JobStatus } from 'bull'; import { isNumber } from 'lodash'; @@ -61,6 +62,16 @@ export class AdminService { return this.http.delete(`/api/v1/platform/${aId}`); } + public deleteAssetProfileSplit({ + dataSource, + id, + symbol + }: AssetProfileIdentifier & { id: string }) { + return this.http.delete( + `/api/v1/asset-profiles/${dataSource}/${encodeURIComponent(symbol)}/splits/${id}` + ); + } + public deleteProfileData({ dataSource, symbol }: AssetProfileIdentifier) { return this.http.delete( `/api/v1/admin/profile-data/${dataSource}/${encodeURIComponent(symbol)}` @@ -217,6 +228,17 @@ export class AdminService { ); } + public postAssetProfileSplit({ + dataSource, + split, + symbol + }: AssetProfileIdentifier & { split: CreateAssetProfileSplitDto }) { + return this.http.post( + `/api/v1/asset-profiles/${dataSource}/${encodeURIComponent(symbol)}/splits`, + split + ); + } + public postPlatform(aPlatform: CreatePlatformDto) { return this.http.post(`/api/v1/platform`, aPlatform); } diff --git a/libs/ui/src/lib/services/data.service.ts b/libs/ui/src/lib/services/data.service.ts index bc1512550b..7ccd9d1d9e 100644 --- a/libs/ui/src/lib/services/data.service.ts +++ b/libs/ui/src/lib/services/data.service.ts @@ -589,6 +589,10 @@ export class DataService { item.date = parseISO(item.date); } + for (const item of data.splits ?? []) { + item.date = parseISO(item.date); + } + return data; }) ); diff --git a/prisma/migrations/20260802000000_added_asset_profile_split/migration.sql b/prisma/migrations/20260802000000_added_asset_profile_split/migration.sql new file mode 100644 index 0000000000..9003916b4f --- /dev/null +++ b/prisma/migrations/20260802000000_added_asset_profile_split/migration.sql @@ -0,0 +1,21 @@ +-- CreateTable +CREATE TABLE "AssetProfileSplit" ( + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "date" TIMESTAMP(3) NOT NULL, + "denominator" INTEGER NOT NULL, + "id" TEXT NOT NULL, + "numerator" INTEGER NOT NULL, + "symbolProfileId" TEXT NOT NULL, + "updatedAt" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "AssetProfileSplit_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE INDEX "AssetProfileSplit_date_idx" ON "AssetProfileSplit"("date"); + +-- CreateIndex +CREATE UNIQUE INDEX "AssetProfileSplit_symbolProfileId_date_key" ON "AssetProfileSplit"("symbolProfileId", "date"); + +-- AddForeignKey +ALTER TABLE "AssetProfileSplit" ADD CONSTRAINT "AssetProfileSplit_symbolProfileId_fkey" FOREIGN KEY ("symbolProfileId") REFERENCES "SymbolProfile"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index faf7a9259c..77faccd492 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -116,6 +116,33 @@ model AssetProfileResolution { @@unique([dataSourceOrigin, symbolOrigin]) } +/// A stock split of an asset profile. The numerator is the number of shares +/// held after the split, the denominator the number of shares held before, for +/// example 4 and 1 for a 4:1 split or 1 and 10 for a 1:10 reverse split. +/// +/// The ratio is stored as two integers instead of the resulting factor, so that +/// it stays exact, for example 1/3 for a 1:3 reverse split. +/// +/// Activities before the date are adjusted by the ratio: the quantity is +/// multiplied by it and the unit price divided by it, so that the total value +/// of an activity stays the same. +/// +/// Market data is already split-adjusted by the data providers and must not be +/// adjusted again. +model AssetProfileSplit { + createdAt DateTime @default(now()) + date DateTime + denominator Int + id String @id @default(uuid()) + numerator Int + symbolProfile SymbolProfile @relation(fields: [symbolProfileId], onDelete: Cascade, references: [id]) + symbolProfileId String + updatedAt DateTime @updatedAt + + @@unique([symbolProfileId, date]) + @@index([date]) +} + model AuthDevice { createdAt DateTime @default(now()) credentialId Bytes @@ -200,6 +227,7 @@ model SymbolProfile { activities Order[] assetClass AssetClass? assetProfileOverrides AssetProfileOverrides? + assetProfileSplits AssetProfileSplit[] assetSubClass AssetSubClass? comment String? countries Json? From 70eaf0999a5829e7595e712e38ddde19c31c247b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 2 Aug 2026 17:17:01 +0200 Subject: [PATCH 19/20] Bugfix/changelog entry of stock splits (#7516) Update changelog --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53c443900b..38e3855f26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,14 @@ 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). -## 3.40.0 - 2026-08-02 +## Unreleased ### Added - Added the database model and endpoints to manage the stock splits of an asset profile (experimental) +## 3.40.0 - 2026-08-02 + ### Changed - Improved the style of the read-only tags in the tags selector component From d08239f31f8795b2424ce6299bf9451c6225b66b Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 2 Aug 2026 20:00:52 +0200 Subject: [PATCH 20/20] Task/destructure query parameters in controllers (#7495) Destructure query parameters in controllers --- .../app/activities/activities.controller.ts | 66 ++++++++++++------- .../ghostfolio/ghostfolio.controller.ts | 20 +++--- apps/api/src/app/export/export.controller.ts | 32 ++++++--- 3 files changed, 76 insertions(+), 42 deletions(-) diff --git a/apps/api/src/app/activities/activities.controller.ts b/apps/api/src/app/activities/activities.controller.ts index daade2a59a..a1b559c84d 100644 --- a/apps/api/src/app/activities/activities.controller.ts +++ b/apps/api/src/app/activities/activities.controller.ts @@ -62,7 +62,16 @@ export class ActivitiesController { @UseInterceptors(TransformDataSourceInRequestInterceptor) public async deleteActivities( @Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string, - @Query() query: ActivitiesFilterDto + @Query() + { + accounts, + activityTypes, + assetClasses, + dataSource, + range, + symbol, + tags + }: ActivitiesFilterDto ): Promise { if (impersonationId) { throw new HttpException( @@ -74,25 +83,25 @@ export class ActivitiesController { let endDate: Date; let startDate: Date; - if (query.range) { + if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ - dateRange: query.range + dateRange: range })); } const filters = this.apiService.buildFiltersFromQueryParams({ - filterByAccounts: query.accounts, - filterByAssetClasses: query.assetClasses, - filterByDataSource: query.dataSource, - filterBySymbol: query.symbol, - filterByTags: query.tags + filterByAccounts: accounts, + filterByAssetClasses: assetClasses, + filterByDataSource: dataSource, + filterBySymbol: symbol, + filterByTags: tags }); return this.activitiesService.deleteActivities({ endDate, filters, startDate, - types: query.activityTypes, + types: activityTypes, userId: this.request.user.id }); } @@ -125,23 +134,36 @@ export class ActivitiesController { @UseInterceptors(TransformDataSourceInResponseInterceptor) public async getAllActivities( @Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string, - @Query() query: GetActivitiesDto + @Query() + { + accounts, + activityTypes, + assetClasses, + dataSource, + range, + skip, + sortColumn, + sortDirection, + symbol, + tags, + take + }: GetActivitiesDto ): Promise { let endDate: Date; let startDate: Date; - if (query.range) { + if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ - dateRange: query.range + dateRange: range })); } const filters = this.apiService.buildFiltersFromQueryParams({ - filterByAccounts: query.accounts, - filterByAssetClasses: query.assetClasses, - filterByDataSource: query.dataSource, - filterBySymbol: query.symbol, - filterByTags: query.tags + filterByAccounts: accounts, + filterByAssetClasses: assetClasses, + filterByDataSource: dataSource, + filterBySymbol: symbol, + filterByTags: tags }); const impersonationUserId = @@ -152,14 +174,14 @@ export class ActivitiesController { const { activities, count } = await this.activitiesService.getActivities({ endDate, filters, + skip, + sortColumn, + sortDirection, startDate, + take, userCurrency, includeDrafts: true, - skip: query.skip, - sortColumn: query.sortColumn, - sortDirection: query.sortDirection, - take: query.take, - types: query.activityTypes, + types: activityTypes, userId: impersonationUserId || this.request.user.id, withExcludedAccountsAndActivities: true }); diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts index 6e5f48d635..0cdca81100 100644 --- a/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/ghostfolio.controller.ts @@ -90,7 +90,7 @@ export class GhostfolioController { @Version('2') public async getDividends( @Param('symbol') symbol: string, - @Query() query: GetDividendsDto + @Query() { from, granularity, to }: GetDividendsDto ): Promise { const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); @@ -105,10 +105,10 @@ export class GhostfolioController { try { const dividends = await this.ghostfolioService.getDividends({ + granularity, symbol, - from: parseDate(query.from), - granularity: query.granularity, - to: parseDate(query.to) + from: parseDate(from), + to: parseDate(to) }); await this.ghostfolioService.incrementDailyRequests({ @@ -130,7 +130,7 @@ export class GhostfolioController { @Version('2') public async getHistorical( @Param('symbol') symbol: string, - @Query() query: GetHistoricalDto + @Query() { from, granularity, to }: GetHistoricalDto ): Promise { const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); @@ -145,10 +145,10 @@ export class GhostfolioController { try { const historicalData = await this.ghostfolioService.getHistorical({ + granularity, symbol, - from: parseDate(query.from), - granularity: query.granularity, - to: parseDate(query.to) + from: parseDate(from), + to: parseDate(to) }); await this.ghostfolioService.incrementDailyRequests({ @@ -247,7 +247,7 @@ export class GhostfolioController { @UseGuards(AuthGuard('api-key'), HasPermissionGuard) @Version('2') public async getQuotes( - @Query() query: GetQuotesDto + @Query() { symbols }: GetQuotesDto ): Promise { const maxDailyRequests = await this.ghostfolioService.getMaxDailyRequests(); @@ -262,7 +262,7 @@ export class GhostfolioController { try { const quotes = await this.ghostfolioService.getQuotes({ - symbols: query.symbols + symbols }); await this.ghostfolioService.incrementDailyRequests({ diff --git a/apps/api/src/app/export/export.controller.ts b/apps/api/src/app/export/export.controller.ts index f503088d42..27218d03df 100644 --- a/apps/api/src/app/export/export.controller.ts +++ b/apps/api/src/app/export/export.controller.ts @@ -32,30 +32,42 @@ export class ExportController { @UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseInterceptors(TransformDataSourceInRequestInterceptor) @UseInterceptors(TransformDataSourceInResponseInterceptor) - public async export(@Query() query: GetExportDto): Promise { + public async export( + @Query() + { + accounts, + activityIds, + activityTypes, + assetClasses, + dataSource, + range, + symbol, + tags + }: GetExportDto + ): Promise { let endDate: Date; let startDate: Date; - if (query.range) { + if (range) { ({ endDate, startDate } = getIntervalFromDateRange({ - dateRange: query.range + dateRange: range })); } const filters = this.apiService.buildFiltersFromQueryParams({ - filterByAccounts: query.accounts, - filterByAssetClasses: query.assetClasses, - filterByDataSource: query.dataSource, - filterBySymbol: query.symbol, - filterByTags: query.tags + filterByAccounts: accounts, + filterByAssetClasses: assetClasses, + filterByDataSource: dataSource, + filterBySymbol: symbol, + filterByTags: tags }); return this.exportService.export({ + activityIds, + activityTypes, endDate, filters, startDate, - activityIds: query.activityIds, - activityTypes: query.activityTypes, userId: this.request.user.id, userSettings: this.request.user.settings.settings });