diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d1558a97..d85f138b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Upgraded `stripe` from version `21.0.1` to `22.2.3` + +## 3.20.0 - 2026-07-04 + +### Changed + - Refactored the rounding logic in the holding detail dialog - Refactored the rounding logic in the treemap chart component - Restricted the modification of activity tags in the impersonation mode @@ -17,12 +23,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the parsing of integer query parameters (`skip` and `take`) in the `GET api/v1/asset-profiles` endpoint - Improved the parsing of the integer query parameter (`includeHistoricalData`) in the `GET api/v1/market-data/markets` endpoint - Improved the parsing of the integer query parameter (`includeHistoricalData`) in the `GET api/v1/symbol/:dataSource/:symbol` endpoint +- Harmonized the filter parsing using `groupBy` across various services - Improved the language localization by translating various tooltips across the application +- Improved the language localization for German (`de`) - Improved the language localization for Ukrainian (`uk`) - Upgraded `yahoo-finance2` from version `3.14.3` to `3.15.4` ### Fixed +- Resolved an issue in the treemap chart component when the holdings list is empty +- Fixed the handling of cash positions in the portfolio calculations when filtering by holding or tag +- Fixed the handling of cash positions in the portfolio details when filtering - Fixed the market condition of the benchmarks in the twitter bot service when values round to zero ## 3.19.1 - 2026-07-03 diff --git a/apps/api/src/app/account-balance/account-balance.service.ts b/apps/api/src/app/account-balance/account-balance.service.ts index 321624003..4851a1293 100644 --- a/apps/api/src/app/account-balance/account-balance.service.ts +++ b/apps/api/src/app/account-balance/account-balance.service.ts @@ -15,6 +15,7 @@ import { EventEmitter2 } from '@nestjs/event-emitter'; import { AccountBalance, Prisma } from '@prisma/client'; import { Big } from 'big.js'; import { format, parseISO } from 'date-fns'; +import { groupBy } from 'lodash'; @Injectable() export class AccountBalanceService { @@ -144,12 +145,12 @@ export class AccountBalanceService { }): Promise { const where: Prisma.AccountBalanceWhereInput = { userId }; - const accountFilter = filters?.find(({ type }) => { - return type === 'ACCOUNT'; + const { ACCOUNT: [filterByAccount] = [] } = groupBy(filters, ({ type }) => { + return type; }); - if (accountFilter) { - where.accountId = accountFilter.id; + if (filterByAccount) { + where.accountId = filterByAccount.id; } if (withExcludedAccounts === false) { diff --git a/apps/api/src/app/account/account.service.ts b/apps/api/src/app/account/account.service.ts index e1b01a6ed..f030b73da 100644 --- a/apps/api/src/app/account/account.service.ts +++ b/apps/api/src/app/account/account.service.ts @@ -187,11 +187,11 @@ export class AccountService { where.isExcluded = false; } - const { ACCOUNT: filtersByAccount } = groupBy(filters, ({ type }) => { + const { ACCOUNT: filtersByAccount = [] } = groupBy(filters, ({ type }) => { return type; }); - if (filtersByAccount?.length > 0) { + if (filtersByAccount.length > 0) { where.id = { in: filtersByAccount.map(({ id }) => { return id; diff --git a/apps/api/src/app/activities/activities.service.ts b/apps/api/src/app/activities/activities.service.ts index 44ab67e45..816d2328d 100644 --- a/apps/api/src/app/activities/activities.service.ts +++ b/apps/api/src/app/activities/activities.service.ts @@ -63,6 +63,43 @@ export class ActivitiesService { private readonly symbolProfileService: SymbolProfileService ) {} + public areCashActivitiesExcludedByFilters(filters: Filter[] = []) { + const { + ASSET_CLASS: filtersByAssetClass = [], + DATA_SOURCE: [filterByDataSource] = [], + SYMBOL: [filterBySymbol] = [], + TAG: filtersByTag = [] + } = groupBy(filters, ({ type }) => { + return type; + }); + + const isFilteredByAssetClassOtherThanLiquidity = + filtersByAssetClass.length > 0 && + !filtersByAssetClass.some(({ id }) => { + return id === AssetClass.LIQUIDITY; + }); + + const isFilteredByAssetProfile = !!(filterByDataSource || filterBySymbol); + const isFilteredByTag = filtersByTag.length > 0; + + const isFilteredByUnsupportedType = filters.some(({ type }) => { + return ![ + 'ACCOUNT', + 'ASSET_CLASS', + 'DATA_SOURCE', + 'SYMBOL', + 'TAG' + ].includes(type); + }); + + return ( + isFilteredByAssetClassOtherThanLiquidity || + isFilteredByAssetProfile || + isFilteredByTag || + isFilteredByUnsupportedType + ); + } + public async assignTags({ dataSource, symbol, @@ -393,17 +430,7 @@ export class ActivitiesService { userCurrency: string; userId: string; }): Promise { - const filtersByAssetClass = filters.filter(({ type }) => { - return type === 'ASSET_CLASS'; - }); - - if ( - filtersByAssetClass.length > 0 && - !filtersByAssetClass.find(({ id }) => { - return id === AssetClass.LIQUIDITY; - }) - ) { - // If asset class filters are present and none of them is liquidity, return an empty response + if (this.areCashActivitiesExcludedByFilters(filters)) { return { activities: [], count: 0 @@ -556,26 +583,17 @@ export class ActivitiesService { } const { - ACCOUNT: filtersByAccount, - ASSET_CLASS: filtersByAssetClass, - TAG: filtersByTag + ACCOUNT: filtersByAccount = [], + ASSET_CLASS: filtersByAssetClass = [], + DATA_SOURCE: [filterByDataSource] = [], + SEARCH_QUERY: [filterBySearchQuery] = [], + SYMBOL: [filterBySymbol] = [], + TAG: filtersByTag = [] } = groupBy(filters, ({ type }) => { return type; }); - const filterByDataSource = filters?.find(({ type }) => { - return type === 'DATA_SOURCE'; - })?.id; - - const filterBySymbol = filters?.find(({ type }) => { - return type === 'SYMBOL'; - })?.id; - - const searchQuery = filters?.find(({ type }) => { - return type === 'SEARCH_QUERY'; - })?.id; - - if (filtersByAccount?.length > 0) { + if (filtersByAccount.length > 0) { where.accountId = { in: filtersByAccount.map(({ id }) => { return id; @@ -587,7 +605,7 @@ export class ActivitiesService { where.isDraft = false; } - if (filtersByAssetClass?.length > 0) { + if (filtersByAssetClass.length > 0) { where.SymbolProfile = { OR: [ { @@ -623,8 +641,8 @@ export class ActivitiesService { where.SymbolProfile, { AND: [ - { dataSource: filterByDataSource as DataSource }, - { symbol: filterBySymbol } + { dataSource: filterByDataSource.id as DataSource }, + { symbol: filterBySymbol.id } ] } ] @@ -632,19 +650,19 @@ export class ActivitiesService { } else { where.SymbolProfile = { AND: [ - { dataSource: filterByDataSource as DataSource }, - { symbol: filterBySymbol } + { dataSource: filterByDataSource.id as DataSource }, + { symbol: filterBySymbol.id } ] }; } } - if (searchQuery) { + if (filterBySearchQuery) { const searchQueryWhereInput: Prisma.SymbolProfileWhereInput[] = [ - { id: { mode: 'insensitive', startsWith: searchQuery } }, - { isin: { mode: 'insensitive', startsWith: searchQuery } }, - { name: { mode: 'insensitive', startsWith: searchQuery } }, - { symbol: { mode: 'insensitive', startsWith: searchQuery } } + { id: { mode: 'insensitive', startsWith: filterBySearchQuery.id } }, + { isin: { mode: 'insensitive', startsWith: filterBySearchQuery.id } }, + { name: { mode: 'insensitive', startsWith: filterBySearchQuery.id } }, + { symbol: { mode: 'insensitive', startsWith: filterBySearchQuery.id } } ]; if (where.SymbolProfile) { @@ -663,7 +681,7 @@ export class ActivitiesService { } } - if (filtersByTag?.length > 0) { + if (filtersByTag.length > 0) { where.tags = { some: { OR: filtersByTag.map(({ id }) => { @@ -819,7 +837,7 @@ export class ActivitiesService { withExcludedAccountsAndActivities: false // TODO }); - if (withCash) { + if (withCash && !this.areCashActivitiesExcludedByFilters(filters)) { const cashDetails = await this.accountService.getCashDetails({ filters, userId, 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 3b0828868..68b8d5627 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 @@ -133,13 +133,10 @@ export class AssetProfilesService { }; } - const searchQuery = filters.find(({ type }) => { - return type === 'SEARCH_QUERY'; - })?.id; - const { - ASSET_SUB_CLASS: filtersByAssetSubClass, - DATA_SOURCE: filtersByDataSource + ASSET_SUB_CLASS: [filterByAssetSubClass] = [], + DATA_SOURCE: [filterByDataSource] = [], + SEARCH_QUERY: [filterBySearchQuery] = [] } = groupBy(filters, ({ type }) => { return type; }); @@ -149,20 +146,20 @@ export class AssetProfilesService { by: ['dataSource', 'symbol'] }); - if (filtersByAssetSubClass) { - where.assetSubClass = AssetSubClass[filtersByAssetSubClass[0].id]; + if (filterByAssetSubClass) { + where.assetSubClass = AssetSubClass[filterByAssetSubClass.id]; } - if (filtersByDataSource) { - where.dataSource = DataSource[filtersByDataSource[0].id]; + if (filterByDataSource) { + where.dataSource = DataSource[filterByDataSource.id]; } - if (searchQuery) { + if (filterBySearchQuery) { where.OR = [ - { id: { mode: 'insensitive', startsWith: searchQuery } }, - { isin: { mode: 'insensitive', startsWith: searchQuery } }, - { name: { mode: 'insensitive', startsWith: searchQuery } }, - { symbol: { mode: 'insensitive', startsWith: searchQuery } } + { id: { mode: 'insensitive', startsWith: filterBySearchQuery.id } }, + { isin: { mode: 'insensitive', startsWith: filterBySearchQuery.id } }, + { name: { mode: 'insensitive', startsWith: filterBySearchQuery.id } }, + { symbol: { mode: 'insensitive', startsWith: filterBySearchQuery.id } } ]; } diff --git a/apps/api/src/app/export/export.service.ts b/apps/api/src/app/export/export.service.ts index 4da942cd7..b94b2aa74 100644 --- a/apps/api/src/app/export/export.service.ts +++ b/apps/api/src/app/export/export.service.ts @@ -35,7 +35,7 @@ export class ExportService { userId: string; userSettings: UserSettings; }): Promise { - const { ACCOUNT: filtersByAccount } = groupBy(filters, ({ type }) => { + const { ACCOUNT: filtersByAccount = [] } = groupBy(filters, ({ type }) => { return type; }); const platformsMap: { [platformId: string]: Platform } = {}; @@ -59,7 +59,7 @@ export class ExportService { const where: Prisma.AccountWhereInput = { userId }; - if (filtersByAccount?.length > 0) { + if (filtersByAccount.length > 0) { where.id = { in: filtersByAccount.map(({ id }) => { return id; diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index b440684da..b5ea9ba00 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -95,6 +95,7 @@ import { parseISO, set } from 'date-fns'; +import { groupBy } from 'lodash'; import { PortfolioCalculator } from './calculator/portfolio-calculator'; import { PortfolioCalculatorFactory } from './calculator/portfolio-calculator.factory'; @@ -138,20 +139,16 @@ export class PortfolioService { }): Promise { const where: Prisma.AccountWhereInput = { userId }; - const filterByAccount = filters?.find(({ type }) => { - return type === 'ACCOUNT'; - })?.id; - - const filterByDataSource = filters?.find(({ type }) => { - return type === 'DATA_SOURCE'; - })?.id; - - const filterBySymbol = filters?.find(({ type }) => { - return type === 'SYMBOL'; - })?.id; + const { + ACCOUNT: [filterByAccount] = [], + DATA_SOURCE: [filterByDataSource] = [], + SYMBOL: [filterBySymbol] = [] + } = groupBy(filters, ({ type }) => { + return type; + }); if (filterByAccount) { - where.id = filterByAccount; + where.id = filterByAccount.id; } if (filterByDataSource && filterBySymbol) { @@ -159,8 +156,8 @@ export class PortfolioService { some: { SymbolProfile: { AND: [ - { dataSource: filterByDataSource as DataSource }, - { symbol: filterBySymbol } + { dataSource: filterByDataSource.id as DataSource }, + { symbol: filterBySymbol.id } ] } } @@ -274,17 +271,20 @@ export class PortfolioService { let activitiesCount = 0; - const searchQuery = filters.find(({ type }) => { - return type === 'SEARCH_QUERY'; - })?.id; + const { SEARCH_QUERY: [filterBySearchQuery] = [] } = groupBy( + filters, + ({ type }) => { + return type; + } + ); - if (searchQuery) { + if (filterBySearchQuery) { const fuse = new Fuse(accounts, { keys: ['name', 'platform.name'], threshold: 0.3 }); - accounts = fuse.search(searchQuery).map(({ item }) => { + accounts = fuse.search(filterBySearchQuery.id).map(({ item }) => { return item; }); } @@ -376,17 +376,20 @@ export class PortfolioService { let holdings = Object.values(holdingsMap); - const searchQuery = filters.find(({ type }) => { - return type === 'SEARCH_QUERY'; - })?.id; + const { SEARCH_QUERY: [filterBySearchQuery] = [] } = groupBy( + filters, + ({ type }) => { + return type; + } + ); - if (searchQuery) { + if (filterBySearchQuery) { const fuse = new Fuse(holdings, { keys: ['isin', 'name', 'symbol'], threshold: 0.3 }); - holdings = fuse.search(searchQuery).map(({ item }) => { + holdings = fuse.search(filterBySearchQuery.id).map(({ item }) => { return item; }); } @@ -525,30 +528,18 @@ export class PortfolioService { const holdings: PortfolioDetails['holdings'] = {}; - const totalValueInBaseCurrency = currentValueInBaseCurrency.plus( - cashDetails.balanceInBaseCurrency - ); + const { + HOLDING_TYPE: [filterByHoldingType] = [], + TAG: [filterByTag] = [] + } = groupBy(filters, ({ type }) => { + return type; + }); + + const isFilteredByClosedHoldings = filterByHoldingType?.id === 'CLOSED'; + + let filteredValueInBaseCurrency = currentValueInBaseCurrency; - const isFilteredByAccount = - filters?.some(({ type }) => { - return type === 'ACCOUNT'; - }) ?? false; - - const isFilteredByClosedHoldings = - filters?.some(({ id, type }) => { - return id === 'CLOSED' && type === 'HOLDING_TYPE'; - }) ?? false; - - let filteredValueInBaseCurrency = isFilteredByAccount - ? totalValueInBaseCurrency - : currentValueInBaseCurrency; - - if ( - filters?.length === 0 || - (filters?.length === 1 && - filters[0].id === AssetClass.LIQUIDITY && - filters[0].type === 'ASSET_CLASS') - ) { + if (!this.activitiesService.areCashActivitiesExcludedByFilters(filters)) { filteredValueInBaseCurrency = filteredValueInBaseCurrency.plus( cashDetails.balanceInBaseCurrency ); @@ -700,11 +691,7 @@ export class PortfolioService { withExcludedAccounts }); - if ( - filters?.length === 1 && - filters[0].id === TAG_ID_EMERGENCY_FUND && - filters[0].type === 'TAG' - ) { + if (filters?.length === 1 && filterByTag?.id === TAG_ID_EMERGENCY_FUND) { const emergencyFundCashPositions = this.getCashPositions({ cashDetails, userCurrency, diff --git a/apps/api/src/app/subscription/subscription.service.ts b/apps/api/src/app/subscription/subscription.service.ts index a811d2243..ab19d669a 100644 --- a/apps/api/src/app/subscription/subscription.service.ts +++ b/apps/api/src/app/subscription/subscription.service.ts @@ -37,7 +37,7 @@ export class SubscriptionService { this.stripe = new Stripe( this.configurationService.get('STRIPE_SECRET_KEY'), { - apiVersion: '2026-03-25.dahlia' + apiVersion: '2026-05-27.dahlia' } ); } diff --git a/apps/client/src/app/pages/api/api-page.component.ts b/apps/client/src/app/pages/api/api-page.component.ts index b949cfb0f..0f39c67d6 100644 --- a/apps/client/src/app/pages/api/api-page.component.ts +++ b/apps/client/src/app/pages/api/api-page.component.ts @@ -20,7 +20,7 @@ import { HttpHeaders, HttpParams } from '@angular/common/http'; -import { Component, DestroyRef, OnInit } from '@angular/core'; +import { Component, DestroyRef, inject, OnInit } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { MatCardModule } from '@angular/material/card'; import { format, startOfYear } from 'date-fns'; @@ -38,28 +38,29 @@ import { FetchFailure, FetchResult } from './interfaces/interfaces'; templateUrl: './api-page.html' }) export class GfApiPageComponent implements OnInit { - public aiServiceHealth$: Observable>; - public assetProfile$: Observable< + protected aiServiceHealth$: Observable>; + protected assetProfile$: Observable< FetchResult >; - public dividends$: Observable>; - public historicalData$: Observable< + protected dividends$: Observable>; + protected historicalData$: Observable< FetchResult >; - public isinLookupItems$: Observable>; - public lookupItems$: Observable>; - public quotes$: Observable>; - public status$: Observable>; + protected isinLookupItems$: Observable>; + protected lookupItems$: Observable>; + protected quotes$: Observable>; + protected status$: Observable< + FetchResult + >; private apiKey: string; - public constructor( - private destroyRef: DestroyRef, - private http: HttpClient - ) {} + private readonly destroyRef = inject(DestroyRef); + private readonly http = inject(HttpClient); public ngOnInit() { - this.apiKey = prompt($localize`Please enter your Ghostfolio API key:`); + this.apiKey = + prompt($localize`Please enter your Ghostfolio API key:`) ?? ''; this.aiServiceHealth$ = this.fetchAiServiceHealth(); this.assetProfile$ = this.fetchAssetProfile({ symbol: 'AAPL' }); @@ -71,7 +72,7 @@ export class GfApiPageComponent implements OnInit { this.status$ = this.fetchStatus(); } - public isFetchFailure(value: unknown): value is FetchFailure { + protected isFetchFailure(value: unknown): value is FetchFailure { return isObject(value) && value !== null && 'fetchError' in value; } diff --git a/apps/client/src/app/pages/public/public-page.component.ts b/apps/client/src/app/pages/public/public-page.component.ts index 43d961c1d..91410d5f7 100644 --- a/apps/client/src/app/pages/public/public-page.component.ts +++ b/apps/client/src/app/pages/public/public-page.component.ts @@ -249,7 +249,7 @@ export class GfPublicPageComponent implements OnInit { } this.symbols[prettifySymbol(symbol)] = { - name: position.assetProfile.name, + name: position.assetProfile.name ?? prettifySymbol(symbol), symbol: prettifySymbol(symbol), value: isNumber(position.valueInBaseCurrency) ? position.valueInBaseCurrency diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 5fc213ec7..da3e1cbe2 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -951,7 +951,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1099,7 +1099,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -1115,7 +1115,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1135,7 +1135,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1155,7 +1155,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1791,7 +1791,7 @@ Preu Mínim apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -1799,7 +1799,7 @@ Preu Màxim apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -1807,7 +1807,7 @@ Quantitat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1827,7 +1827,7 @@ Rendiment del Dividend apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -1835,7 +1835,7 @@ Comissions apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -1847,7 +1847,7 @@ Activitat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -1855,7 +1855,7 @@ Informar d’un Problema amb les Dades apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -3087,7 +3087,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3195,7 +3195,7 @@ Dades de mercat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -4212,11 +4212,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -4692,7 +4692,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4720,7 +4720,7 @@ Inversió apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4768,7 +4768,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6017,7 +6017,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -6049,7 +6049,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -6241,7 +6241,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -7395,7 +7395,7 @@ Please enter your Ghostfolio API key: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7671,7 +7671,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7703,11 +7703,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8436,7 +8436,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 3e54ecb79..ea01c89ba 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -387,7 +387,7 @@ and is driven by the efforts of its contributors - und wird durch die Beiträge seiner Mitwirkenden vorangetrieben + und wird durch die Beiträge seiner Mitwirkenden vorangetrieben apps/client/src/app/pages/about/overview/about-overview-page.html 50 @@ -479,7 +479,7 @@ Watch the Ghostfol.io Trailer on YouTube - Watch the Ghostfol.io Trailer on YouTube + Schaue dir den Ghostfol.io Trailer auf YouTube an apps/client/src/app/pages/landing/landing-page.html 19 @@ -514,7 +514,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1022,7 +1022,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1042,7 +1042,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1066,7 +1066,7 @@ Datenfehler melden apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -1143,7 +1143,7 @@ Ghostfolio in Numbers: Monthly Active Users (MAU) - Ghostfolio in Numbers: Monthly Active Users (MAU) + Ghostfolio in Zahlen: Monatlich aktive Nutzer (MAU) apps/client/src/app/pages/landing/landing-page.html 63 @@ -1466,7 +1466,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2031,7 +2031,7 @@ Add activity - Aktivität hinzufügen + Aktivität hinzufügen apps/client/src/app/components/home-overview/home-overview.html 57 @@ -2086,7 +2086,7 @@ Anzahl apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2166,11 +2166,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2542,7 +2542,7 @@ Minimum Preis apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -2550,7 +2550,7 @@ Maximum Preis apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -2562,7 +2562,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -2578,7 +2578,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2719,7 +2719,7 @@ Apply current market price - Apply current market price + Aktuellen Marktpreis übernehmen apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 238 @@ -2871,7 +2871,7 @@ Contributors to Ghostfolio - Contributors to Ghostfolio + Mitwirkende von Ghostfolio apps/client/src/app/pages/about/overview/about-overview-page.html 54 @@ -2962,7 +2962,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2998,7 +2998,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -3342,7 +3342,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3382,7 +3382,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3430,7 +3430,7 @@ Marktdaten apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3866,7 +3866,7 @@ Gebühren apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4603,7 +4603,7 @@ Upgrade to Ghostfolio Premium - Upgrade to Ghostfolio Premium + Wechsle zu Ghostfolio Premium libs/ui/src/lib/premium-indicator/premium-indicator.component.html 4 @@ -4767,7 +4767,7 @@ Ghostfolio in Numbers: Pulls on Docker Hub - Ghostfolio in Numbers: Pulls on Docker Hub + Ghostfolio in Zahlen: Downloads auf Docker Hub apps/client/src/app/pages/landing/landing-page.html 101 @@ -4807,7 +4807,7 @@ The source code is fully available as open source software (OSS) under the AGPL-3.0 license - Der Quellcode ist vollständig als Open-Source-Software (OSS) unter der AGPL-3.0-Lizenz verfügbar + Der Quellcode ist vollständig als Open-Source-Software (OSS) unter der AGPL-3.0-Lizenz verfügbar apps/client/src/app/pages/about/overview/about-overview-page.html 16 @@ -4895,7 +4895,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. - Bei Ghostfolio gehört Transparenz zum zentralen Inhalt unserer Grundwerte. Wir publizieren den Quellcode als Open-Source-Software (OSS) unter der AGPL-3.0-Lizenz und veröffentlichen aggregierte Kennzahlen über den Betriebsstatus der Plattform. + Bei Ghostfolio gehört Transparenz zum zentralen Inhalt unserer Grundwerte. Wir publizieren den Quellcode als Open-Source-Software (OSS) unter der AGPL-3.0-Lizenz und veröffentlichen aggregierte Kennzahlen über den Betriebsstatus der Plattform. apps/client/src/app/pages/open/open-page.html 7 @@ -4939,7 +4939,7 @@ Contributors on GitHub - Contributors auf GitHub + Mitwirkende auf GitHub apps/client/src/app/pages/open/open-page.html 90 @@ -6148,7 +6148,7 @@ Investition apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6180,7 +6180,7 @@ Position abschliessen apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6285,7 +6285,7 @@ Fetch market price - Fetch market price + Marktpreis abrufen libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html 40 @@ -6457,7 +6457,7 @@ Aktivität apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6465,7 +6465,7 @@ Dividendenrendite apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7110,7 +7110,7 @@ Compare Ghostfolio to - - Compare Ghostfolio to - + Vergleiche Ghostfolio mit - apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html 32 @@ -7419,7 +7419,7 @@ Bitte gib den API-Schlüssel ein: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7695,12 +7695,12 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 Ghostfolio in Numbers: Stars on GitHub - Ghostfolio in Numbers: Stars on GitHub + Ghostfolio in Zahlen: Sterne auf GitHub apps/client/src/app/pages/landing/landing-page.html 82 @@ -7727,11 +7727,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8156,7 +8156,7 @@ Post to Ghostfolio on X (formerly Twitter) - Post to Ghostfolio on X (formerly Twitter) + An Ghostfolio schreiben auf X (ehemals Twitter) apps/client/src/app/pages/about/overview/about-overview-page.html 85 @@ -8401,7 +8401,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_ - Wenn du einen Fehler feststellst oder eine Verbesserung bzw. ein neues Feature vorschlagen möchtest, tritt der Ghostfolio Slack Community bei oder poste an @ghostfolio_ + Wenn du einen Fehler feststellst oder eine Verbesserung bzw. ein neues Feature vorschlagen möchtest, tritt der Ghostfolio Slack Community bei oder poste an @ghostfolio_ apps/client/src/app/pages/about/overview/about-overview-page.html 71 @@ -8436,7 +8436,7 @@ Anlageprofil verwalten apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index a7311c4df..bf7fec355 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -515,7 +515,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1007,7 +1007,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1027,7 +1027,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1051,7 +1051,7 @@ Reportar anomalía en los datos apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -1451,7 +1451,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2071,7 +2071,7 @@ Cantidad apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2151,11 +2151,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2559,7 +2559,7 @@ Precio máximo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -2595,7 +2595,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -2611,7 +2611,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2623,7 +2623,7 @@ Precio mínimo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -2947,7 +2947,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2983,7 +2983,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -3319,7 +3319,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3367,7 +3367,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3415,7 +3415,7 @@ Datos del mercado apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3851,7 +3851,7 @@ Comisiones apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6125,7 +6125,7 @@ Inversión apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6157,7 +6157,7 @@ Cerrar posición apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6434,7 +6434,7 @@ Operación apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6442,7 +6442,7 @@ Rendimiento por dividendo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7396,7 +7396,7 @@ Ingresa tu clave API de Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7672,7 +7672,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7704,11 +7704,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8437,7 +8437,7 @@ Gestionar perfil de activo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 92de7bab9..4baccda1b 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -578,7 +578,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -674,7 +674,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -690,7 +690,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -710,7 +710,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -730,7 +730,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1322,7 +1322,7 @@ Prix Minimum apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -1330,7 +1330,7 @@ Prix Maximum apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -1338,7 +1338,7 @@ Quantité apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1358,7 +1358,7 @@ Signaler une Erreur de Données apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -1818,7 +1818,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1866,7 +1866,7 @@ Données du marché apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -2186,11 +2186,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2550,7 +2550,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3114,7 +3114,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3146,7 +3146,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3210,7 +3210,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -3850,7 +3850,7 @@ Frais apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6124,7 +6124,7 @@ Investissement apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6156,7 +6156,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6433,7 +6433,7 @@ Activitées apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6441,7 +6441,7 @@ Rendement en Dividende apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7395,7 +7395,7 @@ Veuillez saisir votre clé API Ghostfolio : apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7671,7 +7671,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7703,11 +7703,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8436,7 +8436,7 @@ Gérer le profil d’actif apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 0ef40ab4f..2bde747e5 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -515,7 +515,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1007,7 +1007,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1027,7 +1027,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1051,7 +1051,7 @@ Segnala un’anomalia dei dati apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -1451,7 +1451,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2071,7 +2071,7 @@ Quantità apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2151,11 +2151,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2559,7 +2559,7 @@ Prezzo massimo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -2595,7 +2595,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -2611,7 +2611,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2623,7 +2623,7 @@ Prezzo minimo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -2947,7 +2947,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2983,7 +2983,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -3319,7 +3319,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3367,7 +3367,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3415,7 +3415,7 @@ Dati del mercato apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3851,7 +3851,7 @@ Commissioni apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6125,7 +6125,7 @@ Investimento apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6157,7 +6157,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6434,7 +6434,7 @@ Attività apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6442,7 +6442,7 @@ Rendimento da Dividendi apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7396,7 +7396,7 @@ Inserisci la tua API key di Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7672,7 +7672,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7704,11 +7704,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8437,7 +8437,7 @@ Gestisci profilo risorsa apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.ja.xlf b/apps/client/src/locales/messages.ja.xlf index 03c6ce0bd..1017b3418 100644 --- a/apps/client/src/locales/messages.ja.xlf +++ b/apps/client/src/locales/messages.ja.xlf @@ -844,7 +844,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -996,7 +996,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -1012,7 +1012,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1032,7 +1032,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1052,7 +1052,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1928,7 +1928,7 @@ 手数料 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2032,7 +2032,7 @@ 最低価格 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -2040,7 +2040,7 @@ 最高価格 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -2048,7 +2048,7 @@ 数量 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2068,7 +2068,7 @@ データグリッチの報告 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -2796,7 +2796,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2892,7 +2892,7 @@ マーケットデータ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3876,11 +3876,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -4348,7 +4348,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5481,7 +5481,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5513,7 +5513,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5689,7 +5689,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -6157,7 +6157,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6173,7 +6173,7 @@ 投資 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6458,7 +6458,7 @@ アクティビティ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6466,7 +6466,7 @@ 配当利回り apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7388,7 +7388,7 @@ Please enter your Ghostfolio API key: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7696,7 +7696,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7728,11 +7728,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8437,7 +8437,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.ko.xlf b/apps/client/src/locales/messages.ko.xlf index 169c73e39..7cacac433 100644 --- a/apps/client/src/locales/messages.ko.xlf +++ b/apps/client/src/locales/messages.ko.xlf @@ -844,7 +844,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -996,7 +996,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -1012,7 +1012,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1032,7 +1032,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1052,7 +1052,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1928,7 +1928,7 @@ 수수료 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2032,7 +2032,7 @@ 최저가 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -2040,7 +2040,7 @@ 최고가 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -2048,7 +2048,7 @@ 수량 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2068,7 +2068,7 @@ 데이터 결함 보고 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -2796,7 +2796,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2892,7 +2892,7 @@ 시장 데이터 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3868,11 +3868,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -4340,7 +4340,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5473,7 +5473,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5505,7 +5505,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5689,7 +5689,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -6157,7 +6157,7 @@ 보유 포지션 종료 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6173,7 +6173,7 @@ 투자 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6458,7 +6458,7 @@ 거래 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6466,7 +6466,7 @@ 배당수익률 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7388,7 +7388,7 @@ Ghostfolio API 키를 입력하세요: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7696,7 +7696,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7728,11 +7728,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8437,7 +8437,7 @@ 자산 프로필 관리 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 7c74e5806..80a268666 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -514,7 +514,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1006,7 +1006,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1026,7 +1026,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1050,7 +1050,7 @@ Gegevensstoring melden apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -1450,7 +1450,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2070,7 +2070,7 @@ Hoeveelheid apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2150,11 +2150,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2558,7 +2558,7 @@ Maximale prijs apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -2594,7 +2594,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -2610,7 +2610,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2622,7 +2622,7 @@ Minimale prijs apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -2946,7 +2946,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2982,7 +2982,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -3318,7 +3318,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3366,7 +3366,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3414,7 +3414,7 @@ Marktgegevens apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3850,7 +3850,7 @@ Kosten apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6124,7 +6124,7 @@ Investering apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6156,7 +6156,7 @@ Sluit Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6433,7 +6433,7 @@ Activiteit apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6441,7 +6441,7 @@ Dividendrendement apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7395,7 +7395,7 @@ Voer uw Ghostfolio API-sleutel in: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7671,7 +7671,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7703,11 +7703,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8436,7 +8436,7 @@ Beheer activaprofiel apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index bd6c3a73d..37f9954b8 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -835,7 +835,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -963,7 +963,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -979,7 +979,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -999,7 +999,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1019,7 +1019,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1895,7 +1895,7 @@ Opłaty apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -1999,7 +1999,7 @@ Cena Minimalna apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -2007,7 +2007,7 @@ Cena Maksymalna apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -2015,7 +2015,7 @@ Ilość apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2035,7 +2035,7 @@ Zgłoś Błąd Danych apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -2763,7 +2763,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2859,7 +2859,7 @@ Dane Rynkowe apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3835,11 +3835,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -4307,7 +4307,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5396,7 +5396,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5428,7 +5428,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5612,7 +5612,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -6124,7 +6124,7 @@ Inwestycje apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6156,7 +6156,7 @@ Zamknij pozycję apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6433,7 +6433,7 @@ Aktywność apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6441,7 +6441,7 @@ Dochód z Dywidendy apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7395,7 +7395,7 @@ Wprowadź swój klucz API konta Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7671,7 +7671,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7703,11 +7703,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8436,7 +8436,7 @@ Zarządzaj profilem aktywów apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 6776dcf27..a0e3546db 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -578,7 +578,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1190,7 +1190,7 @@ Preço Mínimo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -1198,7 +1198,7 @@ Preço Máximo apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -1206,7 +1206,7 @@ Quantidade apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1230,7 +1230,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -1246,7 +1246,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1266,7 +1266,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1286,7 +1286,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1310,7 +1310,7 @@ Dados do Relatório com Problema apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -1818,7 +1818,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2158,11 +2158,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2978,7 +2978,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3046,7 +3046,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -3326,7 +3326,7 @@ Dados de Mercado apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3386,7 +3386,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -3434,7 +3434,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3850,7 +3850,7 @@ Taxas apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6124,7 +6124,7 @@ Investimento apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6156,7 +6156,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6433,7 +6433,7 @@ Atividade apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6441,7 +6441,7 @@ Rendimento de dividendos apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7395,7 +7395,7 @@ Por favor, insira a sua chave da API do Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7671,7 +7671,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7703,11 +7703,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8436,7 +8436,7 @@ Gerenciar perfil de ativos apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index cdd1c2205..16f16d526 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -787,7 +787,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -883,7 +883,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -899,7 +899,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -919,7 +919,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -939,7 +939,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1835,7 +1835,7 @@ Asgari Fiyat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -1843,7 +1843,7 @@ Azami Fiyat apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -1851,7 +1851,7 @@ Miktar apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1871,7 +1871,7 @@ Komisyon apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -1883,7 +1883,7 @@ Rapor Veri Sorunu apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -2307,7 +2307,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2371,7 +2371,7 @@ Piyasa Verileri apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3283,11 +3283,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3739,7 +3739,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5072,7 +5072,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5104,7 +5104,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5288,7 +5288,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -6124,7 +6124,7 @@ Yatırım apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6156,7 +6156,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6433,7 +6433,7 @@ Etkinlik apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6441,7 +6441,7 @@ Temettü Getiri apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7395,7 +7395,7 @@ Ghostfolio API anahtarınızı girin: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7671,7 +7671,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7703,11 +7703,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8436,7 +8436,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 9f3471aa1..e1a191156 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -939,7 +939,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1071,7 +1071,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -1087,7 +1087,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1107,7 +1107,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1127,7 +1127,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1919,7 +1919,7 @@ Мінімальна ціна apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -1927,7 +1927,7 @@ Максимальна ціна apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -1935,7 +1935,7 @@ Кількість apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1955,7 +1955,7 @@ Дохідність дивіденду apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -1963,7 +1963,7 @@ Комісії apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -1975,7 +1975,7 @@ Активність apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -1983,7 +1983,7 @@ Повідомити про збій даних apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -3351,7 +3351,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3459,7 +3459,7 @@ Ринкові дані apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3535,7 +3535,7 @@ Будь ласка, введіть ваш ключ API Ghostfolio: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -4484,11 +4484,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -5008,7 +5008,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5036,7 +5036,7 @@ Інвестиції apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5084,7 +5084,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6815,7 +6815,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -6847,7 +6847,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -7151,7 +7151,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -7671,7 +7671,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7703,11 +7703,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8436,7 +8436,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index da5f4b9d4..c60175b7b 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -788,7 +788,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -924,7 +924,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -939,7 +939,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -958,7 +958,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -977,7 +977,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1768,7 +1768,7 @@ Fees apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -1861,21 +1861,21 @@ Minimum Price apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 Maximum Price apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 Quantity apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1894,7 +1894,7 @@ Report Data Glitch apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -2557,7 +2557,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2644,7 +2644,7 @@ Market Data apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3543,11 +3543,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -3967,7 +3967,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -4991,7 +4991,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5022,7 +5022,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5181,7 +5181,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -5600,7 +5600,7 @@ Close Holding apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -5614,7 +5614,7 @@ Investment apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5871,14 +5871,14 @@ Activity apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 Dividend Yield apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -6711,7 +6711,7 @@ Please enter your Ghostfolio API key: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -6987,7 +6987,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7017,11 +7017,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -7647,7 +7647,7 @@ Manage Asset Profile apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 2e1c78d00..0193b33e8 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -844,7 +844,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 217 + 221 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -972,7 +972,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 266 + 270 @@ -988,7 +988,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 280 + 284 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -1008,7 +1008,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 286 + 290 apps/client/src/app/pages/public/public-page.html @@ -1028,7 +1028,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 298 + 302 @@ -1904,7 +1904,7 @@ 费用 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 206 + 210 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2008,7 +2008,7 @@ 最低价格 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 129 + 131 @@ -2016,7 +2016,7 @@ 最高价格 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 145 + 149 @@ -2024,7 +2024,7 @@ 数量 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 155 + 159 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2044,7 +2044,7 @@ 报告数据故障 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 456 + 460 @@ -2772,7 +2772,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 382 + 386 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -2868,7 +2868,7 @@ 市场数据 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 404 + 408 libs/common/src/lib/routes/routes.ts @@ -3852,11 +3852,11 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 229 + 233 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 346 + 350 apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html @@ -4324,7 +4324,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 184 + 188 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -5457,7 +5457,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 240 + 244 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5489,7 +5489,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 249 + 253 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -5665,7 +5665,7 @@ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 318 + 322 libs/ui/src/lib/i18n.ts @@ -6133,7 +6133,7 @@ 关闭持仓 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 446 + 450 @@ -6149,7 +6149,7 @@ 投资 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 169 + 173 apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -6434,7 +6434,7 @@ 活动 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 227 + 231 @@ -6442,7 +6442,7 @@ 股息收益率 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 194 + 198 @@ -7396,7 +7396,7 @@ 请输入您的 Ghostfolio API 密钥: apps/client/src/app/pages/api/api-page.component.ts - 62 + 63 @@ -7672,7 +7672,7 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 @@ -7704,11 +7704,11 @@ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 380 + 389 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts - 393 + 402 @@ -8437,7 +8437,7 @@ 管理资产概况 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html - 471 + 475 diff --git a/libs/ui/src/lib/services/data.service.ts b/libs/ui/src/lib/services/data.service.ts index f49beab23..5492794d7 100644 --- a/libs/ui/src/lib/services/data.service.ts +++ b/libs/ui/src/lib/services/data.service.ts @@ -96,17 +96,17 @@ export class DataService { if (filters && filters.length > 0) { const { - ACCOUNT: filtersByAccount, - ASSET_CLASS: filtersByAssetClass, - ASSET_SUB_CLASS: filtersByAssetSubClass, + ACCOUNT: filtersByAccount = [], + ASSET_CLASS: filtersByAssetClass = [], + ASSET_SUB_CLASS: filtersByAssetSubClass = [], DATA_SOURCE: [filterByDataSource] = [], - HOLDING_TYPE: filtersByHoldingType, - PRESET_ID: filtersByPresetId, - SEARCH_QUERY: filtersBySearchQuery, + HOLDING_TYPE: [filterByHoldingType] = [], + PRESET_ID: [filterByPresetId] = [], + SEARCH_QUERY: [filterBySearchQuery] = [], SYMBOL: [filterBySymbol] = [], - TAG: filtersByTag - } = groupBy(filters, (filter) => { - return filter.type; + TAG: filtersByTag = [] + } = groupBy(filters, ({ type }) => { + return type; }); if (filterByDataSource) { @@ -117,7 +117,7 @@ export class DataService { params = params.append('symbol', filterBySymbol.id); } - if (filtersByAccount) { + if (filtersByAccount.length > 0) { params = params.append( 'accounts', filtersByAccount @@ -128,7 +128,7 @@ export class DataService { ); } - if (filtersByAssetClass) { + if (filtersByAssetClass.length > 0) { params = params.append( 'assetClasses', filtersByAssetClass @@ -139,7 +139,7 @@ export class DataService { ); } - if (filtersByAssetSubClass) { + if (filtersByAssetSubClass.length > 0) { params = params.append( 'assetSubClasses', filtersByAssetSubClass @@ -150,19 +150,19 @@ export class DataService { ); } - if (filtersByHoldingType) { - params = params.append('holdingType', filtersByHoldingType[0].id); + if (filterByHoldingType) { + params = params.append('holdingType', filterByHoldingType.id); } - if (filtersByPresetId) { - params = params.append('presetId', filtersByPresetId[0].id); + if (filterByPresetId) { + params = params.append('presetId', filterByPresetId.id); } - if (filtersBySearchQuery) { - params = params.append('query', filtersBySearchQuery[0].id); + if (filterBySearchQuery) { + params = params.append('query', filterBySearchQuery.id); } - if (filtersByTag) { + if (filtersByTag.length > 0) { params = params.append( 'tags', filtersByTag diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts index 2a04ba6ba..fd4e63f29 100644 --- a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts @@ -207,6 +207,10 @@ export class GfTreemapChartComponent datasets: [ { backgroundColor: (context: GfTreemapScriptableContext) => { + if (!context.raw) { + return undefined; + } + let annualizedNetPerformancePercent = getAnnualizedPerformancePercent({ daysInMarket: differenceInDays( @@ -239,6 +243,10 @@ export class GfTreemapChartComponent labels: { align: 'left', color: (context: GfTreemapScriptableContext) => { + if (!context.raw) { + return undefined; + } + let annualizedNetPerformancePercent = getAnnualizedPerformancePercent({ daysInMarket: differenceInDays( diff --git a/package-lock.json b/package-lock.json index f58c83c98..5743bf04d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "3.19.1", + "version": "3.20.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "3.19.1", + "version": "3.20.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { @@ -90,7 +90,7 @@ "passport-openidconnect": "0.1.2", "reflect-metadata": "0.2.2", "rxjs": "7.8.1", - "stripe": "21.0.1", + "stripe": "22.2.3", "svgmap": "2.21.0", "tablemark": "4.1.0", "twitter-api-v2": "1.29.0", @@ -32312,9 +32312,9 @@ } }, "node_modules/stripe": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/stripe/-/stripe-21.0.1.tgz", - "integrity": "sha512-ocv0j7dWttswDWV2XL/kb6+yiLpDXNXL3RQAOB5OB2kr49z0cEatdQc12+zP/j5nrXk6rAsT4N3y/NUvBbK7Pw==", + "version": "22.2.3", + "resolved": "https://registry.npmjs.org/stripe/-/stripe-22.2.3.tgz", + "integrity": "sha512-9lrggvLtjO4Ef5WXH4t50ckHJcJgTD72xFB+KJgZCSszAH9zMV1BqU6PwmWbRLdcdX7LK6PbErBapiGK7pIb+g==", "license": "MIT", "engines": { "node": ">=18" diff --git a/package.json b/package.json index af72fb652..c88758bfb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "3.19.1", + "version": "3.20.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", @@ -134,7 +134,7 @@ "passport-openidconnect": "0.1.2", "reflect-metadata": "0.2.2", "rxjs": "7.8.1", - "stripe": "21.0.1", + "stripe": "22.2.3", "svgmap": "2.21.0", "tablemark": "4.1.0", "twitter-api-v2": "1.29.0",