diff --git a/CHANGELOG.md b/CHANGELOG.md
index b81b3e0bc1..a03fdc09a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,11 +10,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Improved the get quotes functionality of the _Manual_ service
+- Upgraded `chartjs-chart-treemap` from version `4.2.0` to `4.2.2`
### Fixed
- Fixed an issue where holdings without a quote have been valued at the unit price of the latest activity instead of the latest market price
+## 3.74.0 - 2026-09-27
+
+### Added
+
+- Added the dividend performance to the analysis page (experimental)
+
+### Changed
+
+- Simplified the portfolio summary by hiding the currency on mobile
+- Improved the performance of the logo endpoints by enabling the browser cache
+- Improved the language localization for Catalan (`ca`)
+- Improved the language localization for German (`de`)
+
+### Fixed
+
+- Fixed the wrapping of the name column in the accounts table component on mobile
+- Fixed the sorting of the watchlist for asset profiles without a name
+
## 3.73.0 - 2026-09-26
### Changed
diff --git a/README.md b/README.md
index c98c163c40..b9352e3bd3 100644
--- a/README.md
+++ b/README.md
@@ -173,7 +173,7 @@ docker compose -f docker/docker-compose.build.yml up -d
### Home Server Systems (Community)
-Ghostfolio is available for various home server systems, including [CasaOS](https://github.com/bigbeartechworld/big-bear-casaos), [Home Assistant](https://github.com/lildude/ha-addon-ghostfolio), [Runtipi](https://www.runtipi.io/docs/apps-available), [TrueCharts](https://truecharts.org/charts/stable/ghostfolio), [Umbrel](https://apps.umbrel.com/app/ghostfolio), and [Unraid](https://unraid.net/community/apps?q=ghostfolio).
+Ghostfolio is available for various home server systems, including [CasaOS](https://github.com/bigbeartechworld/big-bear-casaos), [Easypanel](https://easypanel.io/templates/ghostfolio), [Home Assistant](https://github.com/lildude/ha-addon-ghostfolio), [Runtipi](https://www.runtipi.io/docs/apps-available), [TrueCharts](https://truecharts.org/charts/stable/ghostfolio), [Umbrel](https://apps.umbrel.com/app/ghostfolio), and [Unraid](https://unraid.net/community/apps?q=ghostfolio).
## Development
diff --git a/apps/api/src/app/endpoints/watchlist/watchlist.service.ts b/apps/api/src/app/endpoints/watchlist/watchlist.service.ts
index ccdd04e27c..c69a31df82 100644
--- a/apps/api/src/app/endpoints/watchlist/watchlist.service.ts
+++ b/apps/api/src/app/endpoints/watchlist/watchlist.service.ts
@@ -151,7 +151,7 @@ export class WatchlistService {
);
return watchlist.sort((a, b) => {
- return a.name.localeCompare(b.name);
+ return (a.name ?? '').localeCompare(b.name ?? '');
});
}
diff --git a/apps/api/src/app/logo/logo.controller.ts b/apps/api/src/app/logo/logo.controller.ts
index 47bd1fc750..30c85e585e 100644
--- a/apps/api/src/app/logo/logo.controller.ts
+++ b/apps/api/src/app/logo/logo.controller.ts
@@ -11,12 +11,15 @@ import {
} from '@nestjs/common';
import { DataSource } from '@prisma/client';
import { Response } from 'express';
+import ms from 'ms';
import { GetLogoDto } from './get-logo.dto';
import { LogoService } from './logo.service';
@Controller('logo')
export class LogoController {
+ private static readonly CACHE_MAX_AGE_IN_SECONDS = ms('7 days') / 1000;
+
public constructor(private readonly logoService: LogoService) {}
@Get(':dataSource/:symbol')
@@ -34,6 +37,12 @@ export class LogoController {
});
response.contentType(type);
+
+ response.setHeader(
+ 'Cache-Control',
+ `public, max-age=${LogoController.CACHE_MAX_AGE_IN_SECONDS}`
+ );
+
response.send(buffer);
} catch {
response.status(HttpStatus.NOT_FOUND).send();
@@ -49,6 +58,12 @@ export class LogoController {
const { buffer, type } = await this.logoService.getLogoByUrl(url);
response.contentType(type);
+
+ response.setHeader(
+ 'Cache-Control',
+ `public, max-age=${LogoController.CACHE_MAX_AGE_IN_SECONDS}`
+ );
+
response.send(buffer);
} catch {
response.status(HttpStatus.NOT_FOUND).send();
diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
index d9efa9f86c..d868b65b3f 100644
--- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
+++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
@@ -223,15 +223,19 @@ export abstract class PortfolioCalculator {
): PortfolioSnapshot;
protected abstract calculatePerformancePercentages({
- accumulatedValuesByDate
+ accumulatedValuesByDate,
+ holdings
}: {
accumulatedValuesByDate: { [date: string]: AccumulatedValues };
+ holdings: PortfolioSnapshotHolding[];
}): { [date: string]: PerformancePercentages };
protected abstract calculatePerformancePercentagesForDateRange({
- historicalDataItems
+ historicalDataItems,
+ holdings
}: {
historicalDataItems: HistoricalDataItem[];
+ holdings: PortfolioSnapshotHolding[];
}): { [date: string]: PerformancePercentages };
@LogPerformance
@@ -544,6 +548,13 @@ export abstract class PortfolioCalculator {
}
}
+ const totalDividendValueWithCurrencyEffectByDate =
+ this.getTotalDividendValueWithCurrencyEffectByDate({
+ chartDates,
+ exchangeRatesByCurrency,
+ holdings: positions
+ });
+
const assetProfileIdentifiers = Object.keys(valuesByAssetProfileIdentifier);
for (const dateString of chartDates) {
@@ -620,6 +631,8 @@ export abstract class PortfolioCalculator {
accumulatedValuesByDate[dateString]
?.totalCurrentValueWithCurrencyEffect ?? new Big(0)
).add(currentValueWithCurrencyEffect),
+ totalDividendValueWithCurrencyEffect:
+ totalDividendValueWithCurrencyEffectByDate[dateString],
totalInvestmentValue: (
accumulatedValuesByDate[dateString]?.totalInvestmentValue ??
new Big(0)
@@ -644,8 +657,18 @@ export abstract class PortfolioCalculator {
}
}
+ const positionsIncludedInHoldings = positions
+ .filter(({ includeInHoldings }) => {
+ return includeInHoldings;
+ })
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ .map(({ includeInHoldings, includeInPerformance, ...rest }) => {
+ return rest;
+ });
+
const performancePercentagesByDate = this.calculatePerformancePercentages({
- accumulatedValuesByDate
+ accumulatedValuesByDate,
+ holdings: positionsIncludedInHoldings
});
const historicalData: HistoricalDataItem[] = Object.entries(
@@ -656,6 +679,7 @@ export abstract class PortfolioCalculator {
totalCashValueWithCurrencyEffect,
totalCurrentValue,
totalCurrentValueWithCurrencyEffect,
+ totalDividendValueWithCurrencyEffect,
totalInvestmentValue,
totalInvestmentValueWithCurrencyEffect,
totalNetPerformanceValue,
@@ -666,6 +690,7 @@ export abstract class PortfolioCalculator {
return {
...performancePercentagesByDate[date],
date,
+ dividendInBaseCurrency: totalDividendValueWithCurrencyEffect.toNumber(),
investmentValueWithCurrencyEffect:
investmentValueWithCurrencyEffect.toNumber(),
netPerformance: totalNetPerformanceValue.toNumber(),
@@ -683,15 +708,6 @@ export abstract class PortfolioCalculator {
const overall = this.calculateOverallPerformance(positions);
- const positionsIncludedInHoldings = positions
- .filter(({ includeInHoldings }) => {
- return includeInHoldings;
- })
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- .map(({ includeInHoldings, includeInPerformance, ...rest }) => {
- return rest;
- });
-
return {
...overall,
errors,
@@ -1343,6 +1359,7 @@ export abstract class PortfolioCalculator {
const historicalDataItemsOfDateRange: HistoricalDataItem[] = [];
+ let dividendInBaseCurrencyAtStartDate: number;
let netPerformanceAtStartDate: number;
let netPerformanceWithCurrencyEffectAtStartDate: number;
@@ -1353,6 +1370,11 @@ export abstract class PortfolioCalculator {
// Take the values at the start date from the first day of the date
// range
if (historicalDataItemsOfDateRange.length === 0) {
+ // TODO: Remove the fallback to 0 with the next release, when each
+ // cached portfolio snapshot contains the dividend
+ dividendInBaseCurrencyAtStartDate =
+ historicalDataItem.dividendInBaseCurrency ?? 0;
+
netPerformanceAtStartDate = historicalDataItem.netPerformance;
netPerformanceWithCurrencyEffectAtStartDate =
@@ -1361,6 +1383,11 @@ export abstract class PortfolioCalculator {
historicalDataItemsOfDateRange.push({
...historicalDataItem,
+ // TODO: Remove the fallback to 0 with the next release, when each
+ // cached portfolio snapshot contains the dividend
+ dividendInBaseCurrency:
+ (historicalDataItem.dividendInBaseCurrency ?? 0) -
+ dividendInBaseCurrencyAtStartDate,
netPerformance:
historicalDataItem.netPerformance - netPerformanceAtStartDate,
netPerformanceWithCurrencyEffect:
@@ -1372,7 +1399,8 @@ export abstract class PortfolioCalculator {
const performancePercentagesByDate =
this.calculatePerformancePercentagesForDateRange({
- historicalDataItems: historicalDataItemsOfDateRange
+ historicalDataItems: historicalDataItemsOfDateRange,
+ holdings: this.snapshot.positions
});
const chart = historicalDataItemsOfDateRange.map((historicalDataItem) => {
@@ -1734,6 +1762,77 @@ export abstract class PortfolioCalculator {
return chartDateMap;
}
+ private getTotalDividendValueWithCurrencyEffectByDate({
+ chartDates,
+ exchangeRatesByCurrency,
+ holdings
+ }: {
+ chartDates: string[];
+ exchangeRatesByCurrency: {
+ [currencyPair: string]: { [dateString: string]: number };
+ };
+ holdings: PortfolioCalculatorHolding[];
+ }): { [date: string]: Big } {
+ // Take the dividend from the same holdings as the portfolio summary, so
+ // that the response shows one dividend only
+ const assetProfileIdentifiersIncludedInHoldings = new Set(
+ holdings
+ .filter(({ includeInHoldings }) => {
+ return includeInHoldings;
+ })
+ .map(({ dataSource, symbol }) => {
+ return getAssetProfileIdentifier({ dataSource, symbol });
+ })
+ );
+
+ const dividendActivities = this.activities.filter(
+ ({ assetProfile, type }) => {
+ return (
+ type === 'DIVIDEND' &&
+ assetProfileIdentifiersIncludedInHoldings.has(
+ getAssetProfileIdentifier(assetProfile)
+ )
+ );
+ }
+ );
+
+ const totalDividendValueWithCurrencyEffectByDate: { [date: string]: Big } =
+ {};
+
+ let index = 0;
+ let totalDividendValueWithCurrencyEffect = new Big(0);
+
+ // The activities and the chart dates are sorted by date, so one pass over
+ // both gives the dividends received up to each chart date
+ for (const chartDate of chartDates) {
+ while (
+ index < dividendActivities.length &&
+ dividendActivities[index].date <= chartDate
+ ) {
+ const { assetProfile, date, quantity, unitPrice } =
+ dividendActivities[index];
+
+ totalDividendValueWithCurrencyEffect =
+ totalDividendValueWithCurrencyEffect.plus(
+ quantity
+ .mul(unitPrice)
+ .mul(
+ exchangeRatesByCurrency[
+ `${assetProfile.currency}${this.currency}`
+ ]?.[date] ?? 1
+ )
+ );
+
+ index++;
+ }
+
+ totalDividendValueWithCurrencyEffectByDate[chartDate] =
+ totalDividendValueWithCurrencyEffect;
+ }
+
+ return totalDividendValueWithCurrencyEffectByDate;
+ }
+
@LogPerformance
private async initialize(attempt = 1) {
const startTimeTotal = performance.now();
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts
index aadf2e23a0..ed8841b167 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts
@@ -142,6 +142,8 @@ describe('PortfolioCalculator', () => {
expect(portfolioSnapshot.historicalData[0]).toEqual({
date: '2021-12-11',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: 0,
netPerformanceInPercentage: 0,
@@ -160,6 +162,8 @@ describe('PortfolioCalculator', () => {
*/
expect(portfolioSnapshot.historicalData[1]).toEqual({
date: '2021-12-12',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 44558.42,
netPerformance: 5535.42, // 1 * (50098.3 - 44558.42) - 4.46 = 5535.42
netPerformanceInPercentage: 0.12422837255001412, // 5535.42 ÷ 44558.42 = 0.12422837255001412
@@ -179,6 +183,8 @@ describe('PortfolioCalculator', () => {
]
).toEqual({
date: '2022-01-14',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: -1463.18,
netPerformanceInPercentage: -0.032837340282712,
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts
index fe86d9d457..e0cfeb8227 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts
@@ -142,6 +142,8 @@ describe('PortfolioCalculator', () => {
expect(portfolioSnapshot.historicalData[0]).toEqual({
date: '2021-12-11',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: 0,
netPerformanceInPercentage: 0,
@@ -160,6 +162,8 @@ describe('PortfolioCalculator', () => {
*/
expect(portfolioSnapshot.historicalData[1]).toEqual({
date: '2021-12-12',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 44558.42,
netPerformance: 5535.42, // 1 * (50098.3 - 44558.42) - 4.46 = 5535.42
netPerformanceInPercentage: 0.12422837255001412, // 5535.42 ÷ 44558.42 = 0.12422837255001412
@@ -179,6 +183,8 @@ describe('PortfolioCalculator', () => {
]
).toEqual({
date: '2022-01-14',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: -1463.18,
netPerformanceInPercentage: -0.032837340282712,
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 23c806483c..b98aa9e5f2 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
@@ -321,6 +321,8 @@ describe('PortfolioCalculator', () => {
*/
expect(portfolioSnapshot.historicalData.at(-1)).toEqual({
date: '2025-01-01',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: 0,
netPerformanceInPercentage: 0,
@@ -459,6 +461,8 @@ describe('PortfolioCalculator', () => {
*/
expect(portfolioSnapshot.historicalData.at(-1)).toEqual({
date: '2025-01-01',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: 0,
netPerformanceInPercentage: 0,
@@ -601,6 +605,8 @@ describe('PortfolioCalculator', () => {
*/
expect(portfolioSnapshot.historicalData.at(-1)).toEqual({
date: '2025-01-01',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: 0,
netPerformanceInPercentage: 0,
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-fee-and-dividend.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-fee-and-dividend.spec.ts
new file mode 100644
index 0000000000..ab9c24b4fb
--- /dev/null
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-fee-and-dividend.spec.ts
@@ -0,0 +1,362 @@
+import {
+ activityDummyData,
+ assetProfileDummyData,
+ getPerformanceByDateRange,
+ userDummyData
+} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
+import { PortfolioCalculatorFactory } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator.factory';
+import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service';
+import { CurrentRateServiceMock } from '@ghostfolio/api/app/portfolio/current-rate.service.mock';
+import { RedisCacheService } from '@ghostfolio/api/app/redis-cache/redis-cache.service';
+import { RedisCacheServiceMock } from '@ghostfolio/api/app/redis-cache/redis-cache.service.mock';
+import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service';
+import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
+import { PortfolioSnapshotService } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service';
+import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock';
+import { parseDate } from '@ghostfolio/common/helper';
+import { Activity } from '@ghostfolio/common/interfaces';
+import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
+
+import { Big } from 'big.js';
+
+jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => {
+ return {
+ CurrentRateService: jest.fn().mockImplementation(() => {
+ return CurrentRateServiceMock;
+ })
+ };
+});
+
+jest.mock(
+ '@ghostfolio/api/services/queues/portfolio-snapshot/portfolio-snapshot.service',
+ () => {
+ return {
+ PortfolioSnapshotService: jest.fn().mockImplementation(() => {
+ return PortfolioSnapshotServiceMock;
+ })
+ };
+ }
+);
+
+jest.mock('@ghostfolio/api/app/redis-cache/redis-cache.service', () => {
+ return {
+ RedisCacheService: jest.fn().mockImplementation(() => {
+ return RedisCacheServiceMock;
+ })
+ };
+});
+
+describe('PortfolioCalculator', () => {
+ let configurationService: ConfigurationService;
+ let currentRateService: CurrentRateService;
+ let exchangeRateDataService: ExchangeRateDataService;
+ let portfolioCalculatorFactory: PortfolioCalculatorFactory;
+ let portfolioSnapshotService: PortfolioSnapshotService;
+ let redisCacheService: RedisCacheService;
+
+ beforeEach(() => {
+ PortfolioSnapshotServiceMock.reset();
+ RedisCacheServiceMock.reset();
+
+ configurationService = new ConfigurationService();
+
+ currentRateService = new CurrentRateService(null, null, null);
+
+ exchangeRateDataService = new ExchangeRateDataService(
+ null,
+ null,
+ null,
+ null
+ );
+
+ portfolioSnapshotService = new PortfolioSnapshotService(null, null);
+
+ redisCacheService = new RedisCacheService(null, null);
+
+ portfolioCalculatorFactory = new PortfolioCalculatorFactory(
+ configurationService,
+ currentRateService,
+ exchangeRateDataService,
+ portfolioSnapshotService,
+ redisCacheService
+ );
+ });
+
+ describe('get current positions', () => {
+ it('with GOOGL fee and dividend', async () => {
+ jest.useFakeTimers().setSystemTime(parseDate('2023-07-10').getTime());
+
+ const activities: Activity[] = [
+ {
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Microsoft Inc.',
+ symbol: 'MSFT'
+ },
+ date: new Date('2021-09-16'),
+ feeInAssetProfileCurrency: 19,
+ feeInBaseCurrency: 19,
+ quantity: 1,
+ type: 'BUY',
+ unitPriceInAssetProfileCurrency: 298.58
+ },
+ {
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Microsoft Inc.',
+ symbol: 'MSFT'
+ },
+ date: new Date('2021-11-16'),
+ feeInAssetProfileCurrency: 0,
+ feeInBaseCurrency: 0,
+ quantity: 1,
+ type: 'DIVIDEND',
+ unitPriceInAssetProfileCurrency: 0.62
+ },
+ {
+ // The first activity of this asset profile is a fee, which is not an
+ // investment activity. Thus the holding is not included in the
+ // holdings of the portfolio summary, and its dividend must not be
+ // included in the chart
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Alphabet Inc.',
+ symbol: 'GOOGL'
+ },
+ date: new Date('2023-01-03'),
+ feeInAssetProfileCurrency: 1,
+ feeInBaseCurrency: 1,
+ quantity: 0,
+ type: 'FEE',
+ unitPriceInAssetProfileCurrency: 0
+ },
+ {
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Alphabet Inc.',
+ symbol: 'GOOGL'
+ },
+ date: new Date('2023-07-10'),
+ feeInAssetProfileCurrency: 0,
+ feeInBaseCurrency: 0,
+ quantity: 1,
+ type: 'DIVIDEND',
+ unitPriceInAssetProfileCurrency: 5
+ }
+ ];
+
+ const portfolioCalculator = portfolioCalculatorFactory.createCalculator({
+ activities,
+ calculationType: PerformanceCalculationType.ROAI,
+ currency: 'USD',
+ usePortfolioSnapshotCache: false,
+ userId: userDummyData.id
+ });
+
+ const portfolioSnapshot = await portfolioCalculator.computeSnapshot();
+
+ const dividendInBaseCurrency =
+ await portfolioCalculator.getDividendInBaseCurrency();
+
+ expect(
+ portfolioSnapshot.positions.map(({ symbol }) => {
+ return symbol;
+ })
+ ).toEqual(['MSFT']);
+
+ // The chart and the portfolio summary must show the same dividend
+ expect(dividendInBaseCurrency).toEqual(new Big('0.62'));
+
+ expect(
+ portfolioSnapshot.historicalData.at(-1).dividendInBaseCurrency
+ ).toEqual(0.62);
+ });
+
+ it('with GOOGL dividend without investment', async () => {
+ jest.useFakeTimers().setSystemTime(parseDate('2023-07-10').getTime());
+
+ const activities: Activity[] = [
+ {
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Microsoft Inc.',
+ symbol: 'MSFT'
+ },
+ date: new Date('2021-09-16'),
+ feeInAssetProfileCurrency: 19,
+ feeInBaseCurrency: 19,
+ quantity: 1,
+ type: 'BUY',
+ unitPriceInAssetProfileCurrency: 298.58
+ },
+ {
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Microsoft Inc.',
+ symbol: 'MSFT'
+ },
+ date: new Date('2021-11-16'),
+ feeInAssetProfileCurrency: 0,
+ feeInBaseCurrency: 0,
+ quantity: 1,
+ type: 'DIVIDEND',
+ unitPriceInAssetProfileCurrency: 0.62
+ },
+ {
+ // The holding has a dividend, but no average investment. Thus the
+ // dividend percentage stays 0, like the dividend yield
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Alphabet Inc.',
+ symbol: 'GOOGL'
+ },
+ date: new Date('2023-07-10'),
+ feeInAssetProfileCurrency: 0,
+ feeInBaseCurrency: 0,
+ quantity: 1,
+ type: 'DIVIDEND',
+ unitPriceInAssetProfileCurrency: 5
+ }
+ ];
+
+ const portfolioCalculator = portfolioCalculatorFactory.createCalculator({
+ activities,
+ calculationType: PerformanceCalculationType.ROAI,
+ currency: 'USD',
+ usePortfolioSnapshotCache: false,
+ userId: userDummyData.id
+ });
+
+ const portfolioSnapshot = await portfolioCalculator.computeSnapshot();
+
+ const performanceByDateRange = await getPerformanceByDateRange({
+ portfolioCalculator,
+ dateRanges: ['max']
+ });
+
+ expect(portfolioSnapshot).toMatchObject({
+ dividendYieldPercentWithCurrencyEffect: new Big(0)
+ });
+
+ expect(portfolioSnapshot.historicalData.at(-1)).toMatchObject({
+ dividendInBaseCurrency: 5.62,
+ dividendInPercentageWithCurrencyEffect: 0
+ });
+
+ expect(performanceByDateRange).toMatchObject({
+ max: {
+ dividendInBaseCurrency: 5.62,
+ dividendInPercentageWithCurrencyEffect: 0
+ }
+ });
+ });
+
+ it('with MSFT dividend before and in the date range', async () => {
+ jest.useFakeTimers().setSystemTime(parseDate('2023-07-10').getTime());
+
+ const activities: Activity[] = [
+ {
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Microsoft Inc.',
+ symbol: 'MSFT'
+ },
+ date: new Date('2021-09-16'),
+ feeInAssetProfileCurrency: 19,
+ feeInBaseCurrency: 19,
+ quantity: 1,
+ type: 'BUY',
+ unitPriceInAssetProfileCurrency: 298.58
+ },
+ {
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Microsoft Inc.',
+ symbol: 'MSFT'
+ },
+ date: new Date('2021-11-16'),
+ feeInAssetProfileCurrency: 0,
+ feeInBaseCurrency: 0,
+ quantity: 1,
+ type: 'DIVIDEND',
+ unitPriceInAssetProfileCurrency: 0.62
+ },
+ {
+ ...activityDummyData,
+ assetProfile: {
+ ...assetProfileDummyData,
+ currency: 'USD',
+ dataSource: 'YAHOO',
+ name: 'Microsoft Inc.',
+ symbol: 'MSFT'
+ },
+ date: new Date('2023-07-10'),
+ feeInAssetProfileCurrency: 0,
+ feeInBaseCurrency: 0,
+ quantity: 1,
+ type: 'DIVIDEND',
+ unitPriceInAssetProfileCurrency: 0.68
+ }
+ ];
+
+ const portfolioCalculator = portfolioCalculatorFactory.createCalculator({
+ activities,
+ calculationType: PerformanceCalculationType.ROAI,
+ currency: 'USD',
+ usePortfolioSnapshotCache: false,
+ userId: userDummyData.id
+ });
+
+ await portfolioCalculator.computeSnapshot();
+
+ const performanceByDateRange = await getPerformanceByDateRange({
+ portfolioCalculator,
+ dateRanges: ['1d', 'max', 'ytd']
+ });
+
+ // The dividend before the date range is subtracted, so that the date
+ // range shows the dividend in the date range only
+ expect(performanceByDateRange).toMatchObject({
+ '1d': {
+ dividendInBaseCurrency: 0.68,
+ dividendInPercentageWithCurrencyEffect: 0.002016487752802325
+ },
+ max: {
+ dividendInBaseCurrency: 1.3,
+ dividendInPercentageWithCurrencyEffect: 0.004353941992095899
+ },
+ ytd: {
+ dividendInBaseCurrency: 0.68,
+ dividendInPercentageWithCurrencyEffect: 0.002002886512915673
+ }
+ });
+ });
+ });
+});
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts
index 18dc5ab246..2c6ff79b6d 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-msft-buy-with-dividend.spec.ts
@@ -198,6 +198,8 @@ describe('PortfolioCalculator', () => {
expect(performanceByDateRange).toMatchObject({
'1d': {
date: '2023-07-10',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
netPerformance: -5.390000000000001,
netPerformanceInPercentage: -0.015983630864124312,
netPerformanceInPercentageWithCurrencyEffect: -0.015983630864124312,
@@ -207,6 +209,8 @@ describe('PortfolioCalculator', () => {
},
max: {
date: '2023-07-10',
+ dividendInBaseCurrency: 0.62,
+ dividendInPercentageWithCurrencyEffect: 0.002076495411614967,
netPerformance: 14.25,
netPerformanceInPercentage: 0.04772590260566659,
netPerformanceInPercentageWithCurrencyEffect: 0.04772590260566659,
@@ -216,6 +220,8 @@ describe('PortfolioCalculator', () => {
},
ytd: {
date: '2023-07-10',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
netPerformance: -7.68,
netPerformanceInPercentage: -0.022620835910577012,
netPerformanceInPercentageWithCurrencyEffect: -0.022620835910577012,
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts
index feb9a3c20e..46e1b14aa4 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts
@@ -139,6 +139,8 @@ describe('PortfolioCalculator', () => {
expect(portfolioSnapshot.historicalData[0]).toEqual({
date: '2022-03-06',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: 0,
netPerformanceInPercentage: 0,
@@ -158,6 +160,8 @@ describe('PortfolioCalculator', () => {
*/
expect(portfolioSnapshot.historicalData[1]).toEqual({
date: '2022-03-07',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 151.6,
netPerformance: 0, // 2 * (75.8 - 75.8) = 0
netPerformanceInPercentage: 0, // 0 ÷ 151.6 = 0
@@ -177,6 +181,8 @@ describe('PortfolioCalculator', () => {
]
).toEqual({
date: '2022-04-11',
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
investmentValueWithCurrencyEffect: 0,
netPerformance: 19.86,
netPerformanceInPercentage: 0.13100263852242744,
diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts
index 39a1b4188b..2b7b4e6dce 100644
--- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts
+++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts
@@ -17,7 +17,10 @@ import {
AssetProfileIdentifier,
HistoricalDataItem
} from '@ghostfolio/common/interfaces';
-import { PortfolioSnapshot } from '@ghostfolio/common/models';
+import {
+ PortfolioSnapshot,
+ PortfolioSnapshotHolding
+} from '@ghostfolio/common/models';
import { DateRange } from '@ghostfolio/common/types';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
@@ -165,10 +168,15 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
}
protected calculatePerformancePercentages({
- accumulatedValuesByDate
+ accumulatedValuesByDate,
+ holdings
}: {
accumulatedValuesByDate: { [date: string]: AccumulatedValues };
+ holdings: PortfolioSnapshotHolding[];
}): { [date: string]: PerformancePercentages } {
+ const hasDividendWithoutAverageInvestment =
+ this.hasDividendWithoutAverageInvestment(holdings);
+
const performancePercentagesByDate: {
[date: string]: PerformancePercentages;
} = {};
@@ -178,11 +186,19 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
{
totalAverageInvestmentValue,
totalAverageInvestmentValueWithCurrencyEffect,
+ totalDividendValueWithCurrencyEffect,
totalNetPerformanceValue,
totalNetPerformanceValueWithCurrencyEffect
}
] of Object.entries(accumulatedValuesByDate)) {
performancePercentagesByDate[date] = {
+ dividendInPercentageWithCurrencyEffect:
+ hasDividendWithoutAverageInvestment ||
+ totalAverageInvestmentValueWithCurrencyEffect.eq(0)
+ ? 0
+ : totalDividendValueWithCurrencyEffect
+ .div(totalAverageInvestmentValueWithCurrencyEffect)
+ .toNumber(),
netPerformanceInPercentage: totalAverageInvestmentValue.eq(0)
? 0
: totalNetPerformanceValue
@@ -201,10 +217,15 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
}
protected calculatePerformancePercentagesForDateRange({
- historicalDataItems
+ historicalDataItems,
+ holdings
}: {
historicalDataItems: HistoricalDataItem[];
+ holdings: PortfolioSnapshotHolding[];
}): { [date: string]: PerformancePercentages } {
+ const hasDividendWithoutAverageInvestment =
+ this.hasDividendWithoutAverageInvestment(holdings);
+
const averageInvestmentValues: number[] = [];
const averageInvestmentValuesWithCurrencyEffect: number[] = [];
let grossPerformanceAtStartDate: number;
@@ -254,6 +275,12 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
: 0;
performancePercentagesByDate[historicalDataItem.date] = {
+ dividendInPercentageWithCurrencyEffect:
+ !hasDividendWithoutAverageInvestment &&
+ averageInvestmentValueWithCurrencyEffect > 0
+ ? historicalDataItem.dividendInBaseCurrency /
+ averageInvestmentValueWithCurrencyEffect
+ : 0,
netPerformanceInPercentage:
averageInvestmentValue > 0
? historicalDataItem.netPerformance / averageInvestmentValue
@@ -741,4 +768,21 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
protected getPerformanceCalculationType() {
return PerformanceCalculationType.ROAI;
}
+
+ private hasDividendWithoutAverageInvestment(
+ holdings: PortfolioSnapshotHolding[]
+ ) {
+ // A holding with a dividend only (without a buy activity), and a holding
+ // without a market price, gives a dividend but no average investment.
+ // Such a holding makes the dividend percentage too high. Therefore the
+ // dividend percentage stays 0 in this case, like the dividend yield.
+ return holdings.some(
+ ({ averageInvestmentWithCurrencyEffect, dividendInBaseCurrency }) => {
+ return (
+ !dividendInBaseCurrency.eq(0) &&
+ averageInvestmentWithCurrencyEffect.eq(0)
+ );
+ }
+ );
+ }
}
diff --git a/apps/api/src/app/portfolio/interfaces/accumulated-values.interface.ts b/apps/api/src/app/portfolio/interfaces/accumulated-values.interface.ts
index 919dccc227..3810cbdeca 100644
--- a/apps/api/src/app/portfolio/interfaces/accumulated-values.interface.ts
+++ b/apps/api/src/app/portfolio/interfaces/accumulated-values.interface.ts
@@ -7,6 +7,7 @@ export interface AccumulatedValues {
totalCashValueWithCurrencyEffect: Big;
totalCurrentValue: Big;
totalCurrentValueWithCurrencyEffect: Big;
+ totalDividendValueWithCurrencyEffect: Big;
totalInvestmentValue: Big;
totalInvestmentValueWithCurrencyEffect: Big;
totalNetPerformanceValue: Big;
diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts
index a65186100a..45b7477e8b 100644
--- a/apps/api/src/app/portfolio/portfolio.controller.ts
+++ b/apps/api/src/app/portfolio/portfolio.controller.ts
@@ -565,6 +565,7 @@ export class PortfolioController {
[
'currentNetWorth',
'currentValueInBaseCurrency',
+ 'dividendInBaseCurrency',
'grossPerformance',
'grossPerformanceWithCurrencyEffect',
'netPerformance',
@@ -580,12 +581,16 @@ export class PortfolioController {
) {
performanceInformation.chart = performanceInformation.chart.map(
(item) => {
- return nullifyValuesInObject(item, ['totalInvestment', 'value']);
+ return nullifyValuesInObject(item, [
+ 'dividendInBaseCurrency',
+ 'totalInvestment',
+ 'value'
+ ]);
}
);
performanceInformation.performance = nullifyValuesInObject(
performanceInformation.performance,
- ['netPerformance']
+ ['dividendInBaseCurrency', 'netPerformance']
);
}
diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts
index c368d72c46..21e615bc21 100644
--- a/apps/api/src/app/portfolio/portfolio.service.ts
+++ b/apps/api/src/app/portfolio/portfolio.service.ts
@@ -1225,6 +1225,8 @@ export class PortfolioService {
performance: {
currentNetWorth: 0,
currentValueInBaseCurrency: 0,
+ dividendInBaseCurrency: 0,
+ dividendPercentageWithCurrencyEffect: 0,
netPerformance: 0,
netPerformancePercentage: 0,
netPerformancePercentageWithCurrencyEffect: 0,
@@ -1256,6 +1258,8 @@ export class PortfolioService {
});
const {
+ dividendInBaseCurrency,
+ dividendInPercentageWithCurrencyEffect,
netPerformance,
netPerformanceInPercentage,
netPerformanceInPercentageWithCurrencyEffect,
@@ -1265,6 +1269,8 @@ export class PortfolioService {
totalInvestmentValueWithCurrencyEffect,
valueWithCurrencyEffect
} = chart?.at(-1) ?? {
+ dividendInBaseCurrency: 0,
+ dividendInPercentageWithCurrencyEffect: 0,
netPerformance: 0,
netPerformanceInPercentage: 0,
netPerformanceInPercentageWithCurrencyEffect: 0,
@@ -1280,12 +1286,15 @@ export class PortfolioService {
hasErrors,
dateOfFirstActivity: parseDate(historicalData[0]?.date),
performance: {
+ dividendInBaseCurrency,
netPerformance,
netPerformanceWithCurrencyEffect,
totalInvestment,
totalInvestmentValueWithCurrencyEffect,
currentNetWorth: netWorth,
currentValueInBaseCurrency: valueWithCurrencyEffect,
+ dividendPercentageWithCurrencyEffect:
+ dividendInPercentageWithCurrencyEffect,
netPerformancePercentage: netPerformanceInPercentage,
netPerformancePercentageWithCurrencyEffect:
netPerformanceInPercentageWithCurrencyEffect
diff --git a/apps/api/src/app/portfolio/types/performance-percentages.type.ts b/apps/api/src/app/portfolio/types/performance-percentages.type.ts
index 99521e516e..590e25895a 100644
--- a/apps/api/src/app/portfolio/types/performance-percentages.type.ts
+++ b/apps/api/src/app/portfolio/types/performance-percentages.type.ts
@@ -3,6 +3,7 @@ import { HistoricalDataItem } from '@ghostfolio/common/interfaces';
export type PerformancePercentages = Required<
Pick<
HistoricalDataItem,
+ | 'dividendInPercentageWithCurrencyEffect'
| 'netPerformanceInPercentage'
| 'netPerformanceInPercentageWithCurrencyEffect'
>
diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
index ea408c17d8..8846c14a7c 100644
--- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
@@ -48,7 +48,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.totalBuy"
/>
@@ -62,7 +62,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.totalSell"
/>
@@ -79,7 +79,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.totalInvestmentValueWithCurrencyEffect"
/>
@@ -93,7 +93,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.grossPerformanceWithCurrencyEffect"
/>
@@ -110,7 +110,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.fees"
/>
@@ -127,7 +127,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.netPerformanceWithCurrencyEffect"
/>
@@ -171,7 +171,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.totalAssetsInBaseCurrency"
/>
@@ -217,7 +217,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="holdingsInBaseCurrency"
/>
@@ -233,7 +233,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="investmentsInBaseCurrency"
/>
@@ -248,7 +248,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.emergencyFund?.assets"
/>
@@ -295,7 +295,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.totalCashInBaseCurrency"
/>
@@ -311,7 +311,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.cash"
/>
@@ -326,7 +326,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.emergencyFund?.cash"
/>
@@ -356,7 +356,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.excludedAccountsAndActivities"
/>
@@ -379,7 +379,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.liabilitiesInBaseCurrency"
/>
@@ -396,7 +396,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.totalValueInBaseCurrency"
/>
@@ -469,7 +469,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.emergencyFund?.total"
/>
@@ -483,7 +483,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.interestInBaseCurrency"
/>
@@ -497,7 +497,7 @@
[isLoading]="isLoading"
[locale]="locale"
[precision]="precision"
- [unit]="baseCurrency"
+ [unit]="displayedCurrency"
[value]="summary?.dividendInBaseCurrency"
/>
diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
index ea68713189..dec65ddad9 100644
--- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
+++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
@@ -79,6 +79,10 @@ export class GfPortfolioSummaryComponent implements OnChanges {
: 0;
}
+ protected get displayedCurrency() {
+ return this.deviceType === 'mobile' ? undefined : this.baseCurrency;
+ }
+
protected get emergencyFundPercentage() {
return this.summary?.totalValueInBaseCurrency
? (this.summary.emergencyFund?.total || 0) /
diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html
index 59478d3cfa..7d5776d0ca 100644
--- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html
+++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html
@@ -30,7 +30,7 @@
systems, including
CasaOS,
+ >, Easypanel,
Home Assistant, Runtipi,
diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
index abf2de00ee..94a0328755 100644
--- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
@@ -279,6 +279,46 @@
/>
+ @if (user?.settings?.isExperimentalFeatures) {
+
+
+
+ Absolute Dividend Performance
+ @if (user?.subscription?.type === 'Basic') {
+
+ }
+
+
+
+
+
+
+
+ Dividend Performance
+
+
+
+
+
+ }
diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf
index 610cca4ca3..409ba1247c 100644
--- a/apps/client/src/locales/messages.ca.xlf
+++ b/apps/client/src/locales/messages.ca.xlf
@@ -324,7 +324,7 @@
Date must be in the future.
- Date must be in the future.
+ La data ha de ser futura.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
70
@@ -332,7 +332,7 @@
Fetch market price
- Fetch market price
+ Recupera el preu de mercat
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
40
@@ -372,7 +372,7 @@
Any person who has the link can view the data.
- Any person who has the link can view the data.
+ Qualsevol persona que tingui l’enllaç pot veure les dades.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
42
@@ -399,7 +399,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -415,7 +415,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -495,7 +495,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -511,7 +511,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -547,7 +547,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -579,11 +579,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -595,7 +595,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -627,7 +627,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -675,7 +675,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -696,7 +696,7 @@
Paid
- Paid
+ De pagament
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
136
@@ -804,7 +804,7 @@
View and manage
- View and manage
+ Veure i gestionar
libs/ui/src/lib/access-level-icon/access-level-icon.component.html
9
@@ -1039,7 +1039,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1052,7 +1052,7 @@
Data Gathering Frequency
- Data Gathering Frequency
+ Freqüència de recollida de dades
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
477
@@ -1088,7 +1088,7 @@
Apply current market price
- Apply current market price
+ Aplica el preu de mercat actual
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
221
@@ -1096,7 +1096,7 @@
Subscription History
- Subscription History
+ Historial de subscripcions
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
156
@@ -1144,7 +1144,7 @@
Healthcare
- Healthcare
+ Salut
libs/ui/src/lib/i18n.ts
98
@@ -1276,7 +1276,7 @@
Technology
- Technology
+ Tecnologia
libs/ui/src/lib/i18n.ts
102
@@ -1298,6 +1298,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Configuració del Proveïdor de Dades
@@ -1344,7 +1352,7 @@
Asset profile has been saved
- Asset profile has been saved
+ El perfil de l’actiu s’ha desat
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
754
@@ -1367,7 +1375,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1512,7 +1520,7 @@
Update Account
- Update Account
+ Actualitza el compte
libs/common/src/lib/routes/routes.ts
120
@@ -1660,7 +1668,7 @@
Cache has been flushed.
- Cache has been flushed.
+ La memòria cau s’ha buidat.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
281
@@ -1955,7 +1963,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1963,7 +1971,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2212,7 +2220,7 @@
Code
- Code
+ Codi
apps/client/src/app/components/admin-overview/admin-overview.html
165
@@ -2312,7 +2320,7 @@
Energy
- Energy
+ Energia
libs/ui/src/lib/i18n.ts
96
@@ -2447,7 +2455,7 @@
Definiu l’import del vostre fons d’emergència.
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -2676,7 +2684,7 @@
The value has been copied to the clipboard
- The value has been copied to the clipboard
+ El valor s’ha copiat al porta-retalls
libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts
46
@@ -2752,7 +2760,7 @@
Add Account
- Add Account
+ Afegeix un compte
libs/common/src/lib/routes/routes.ts
101
@@ -2848,7 +2856,7 @@
Clone Activity
- Clone Activity
+ Clona l’activitat
libs/common/src/lib/routes/routes.ts
190
@@ -3347,7 +3355,7 @@
Financial Planning
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -3849,7 +3857,7 @@
Creation
- Creation
+ Creació
apps/client/src/app/components/admin-overview/admin-overview.html
191
@@ -4664,7 +4672,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -4847,6 +4855,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Choose or drop a file here
Trieu o deixeu anar un fitxer aquí
@@ -5248,7 +5264,7 @@
A dalt
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -5256,7 +5272,7 @@
A baix
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -5264,7 +5280,7 @@
Evolució de la cartera
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -5272,7 +5288,7 @@
Cronologia de la inversió
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -5280,7 +5296,7 @@
Ratxa actual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -5288,7 +5304,7 @@
Ratxa més llarga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -5296,7 +5312,7 @@
Cronologia de dividends
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -5921,7 +5937,7 @@
Stock Tracking
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -5945,7 +5961,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -6413,15 +6429,15 @@
Assignació
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -6441,7 +6457,7 @@
Mostra-ho tot
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -6758,14 +6774,14 @@
View Details
- View Details
+ Veure els detalls
apps/client/src/app/components/admin-users/admin-users.html
220
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -6880,6 +6896,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
Àfrica
@@ -7241,7 +7265,7 @@
Wealth Management
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7445,7 +7469,7 @@
Tax Reporting
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7749,7 +7773,7 @@
Investment Research
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7975,7 +7999,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8031,7 +8055,7 @@
Net Worth Tracking
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8159,7 +8183,7 @@
Change
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8195,11 +8219,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf
index 54369efe59..58da7dc525 100644
--- a/apps/client/src/locales/messages.de.xlf
+++ b/apps/client/src/locales/messages.de.xlf
@@ -166,7 +166,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -182,7 +182,7 @@
Gesamt
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -210,11 +210,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -226,7 +226,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -258,7 +258,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -306,7 +306,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -566,7 +566,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1098,7 +1098,7 @@
Bitte setze den Betrag deines Notfallfonds.
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -1166,15 +1166,15 @@
Allokation
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1194,7 +1194,7 @@
Alle anzeigen
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -1638,7 +1638,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1658,7 +1658,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -1674,7 +1674,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -1690,7 +1690,7 @@
Finanzplanung
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -2082,7 +2082,7 @@
Zeitstrahl der Investitionen
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -2090,7 +2090,7 @@
Gewinner
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -2098,7 +2098,7 @@
Verlierer
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -2242,7 +2242,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2250,7 +2250,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2282,7 +2282,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2338,7 +2338,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -3066,7 +3066,7 @@
Portfolio Wertentwicklung
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -3293,6 +3293,14 @@
79
+
+ Absolute Dividend Performance
+ Absolute Dividendenperformance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
Afrika
@@ -3454,7 +3462,7 @@
Zeitstrahl der Dividenden
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -3637,6 +3645,14 @@
71
+
+ Dividend Performance
+ Dividendenperformance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Yearly
Jährlich
@@ -4454,7 +4470,7 @@
Aktueller Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4462,7 +4478,7 @@
Längster Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4506,7 +4522,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -4697,6 +4713,14 @@
175
+
+ Financial Advisor
+ Finanzberatung
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Scraper Konfiguration
@@ -4902,7 +4926,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5864,7 +5888,7 @@
Aktien-Tracking
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -7265,7 +7289,7 @@
Vermögensverwaltung
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7469,7 +7493,7 @@
Steuerreporting
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7773,7 +7797,7 @@
Investment Research
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7999,7 +8023,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8055,7 +8079,7 @@
Vermögens-Tracking
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8183,7 +8207,7 @@
Änderung
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8219,11 +8243,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf
index 2d48ddf15d..858a5309bb 100644
--- a/apps/client/src/locales/messages.es.xlf
+++ b/apps/client/src/locales/messages.es.xlf
@@ -167,7 +167,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -183,7 +183,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -211,11 +211,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -227,7 +227,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -259,7 +259,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -307,7 +307,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -567,7 +567,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1083,7 +1083,7 @@
Por favor, ingresa la cantidad de tu fondo de emergencia.
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -1151,15 +1151,15 @@
Distribución
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1179,7 +1179,7 @@
Mostrar todos
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -1623,7 +1623,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1643,7 +1643,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -1659,7 +1659,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -1675,7 +1675,7 @@
Planificación financiera
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -2067,7 +2067,7 @@
Cronología de la inversión
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -2075,7 +2075,7 @@
Mejores
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -2083,7 +2083,7 @@
Peores
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -2227,7 +2227,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2235,7 +2235,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2267,7 +2267,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2323,7 +2323,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -3051,7 +3051,7 @@
Evolución de la cartera
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -3278,6 +3278,14 @@
79
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
África
@@ -3487,7 +3495,7 @@
Calendario de dividendos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -3622,6 +3630,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Yearly
Anual
@@ -4431,7 +4447,7 @@
Racha actual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4439,7 +4455,7 @@
Racha más larga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4483,7 +4499,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -4674,6 +4690,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Configuración del scraper
@@ -4879,7 +4903,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5841,7 +5865,7 @@
Seguimiento de acciones
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -7242,7 +7266,7 @@
Gestión de patrimonios
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7446,7 +7470,7 @@
Informes fiscales
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7750,7 +7774,7 @@
Investigación de inversiones
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7976,7 +8000,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8032,7 +8056,7 @@
Seguimiento del patrimonio neto
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8160,7 +8184,7 @@
Cambio
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8196,11 +8220,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf
index 6a329a5421..130ede7174 100644
--- a/apps/client/src/locales/messages.fr.xlf
+++ b/apps/client/src/locales/messages.fr.xlf
@@ -118,7 +118,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -174,7 +174,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -190,7 +190,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -226,7 +226,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -246,7 +246,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -274,11 +274,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -290,7 +290,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -322,7 +322,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -370,7 +370,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -638,7 +638,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -830,7 +830,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1418,7 +1418,7 @@
Veuillez entrer le montant de votre fonds d’urgence :
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -1450,7 +1450,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1458,7 +1458,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2006,7 +2006,7 @@
Planification Financière
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -2386,7 +2386,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -2794,7 +2794,7 @@
Haut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -2802,7 +2802,7 @@
Bas
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -2810,7 +2810,7 @@
Évolution du Portefeuille
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -2818,7 +2818,7 @@
Historique des Investissements
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -2826,7 +2826,7 @@
Historique des Dividendes
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -3254,15 +3254,15 @@
Part
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -3282,7 +3282,7 @@
Montrer tout
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -3485,6 +3485,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
Afrique
@@ -3621,6 +3629,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Yearly
Annuel
@@ -4430,7 +4446,7 @@
Série en cours
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4438,7 +4454,7 @@
Série la plus longue
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4482,7 +4498,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -4673,6 +4689,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Configuration du Scraper
@@ -4878,7 +4902,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5840,7 +5864,7 @@
Suivi des Actions
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -7241,7 +7265,7 @@
Gestion de Patrimoine
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7445,7 +7469,7 @@
Déclaration Fiscale
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7749,7 +7773,7 @@
Recherche d’Investissement
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7975,7 +7999,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8031,7 +8055,7 @@
Suivi du Patrimoine Net
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8159,7 +8183,7 @@
Variation
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8195,11 +8219,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf
index 13d58ae069..496900f288 100644
--- a/apps/client/src/locales/messages.it.xlf
+++ b/apps/client/src/locales/messages.it.xlf
@@ -167,7 +167,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -183,7 +183,7 @@
Totale
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -211,11 +211,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -227,7 +227,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -259,7 +259,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -307,7 +307,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -567,7 +567,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1083,7 +1083,7 @@
Inserisci l’importo del tuo fondo di emergenza:
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -1151,15 +1151,15 @@
Allocazione
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1179,7 +1179,7 @@
Mostra tutti
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -1623,7 +1623,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1643,7 +1643,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -1659,7 +1659,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -1675,7 +1675,7 @@
Financial Planning
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -2067,7 +2067,7 @@
Cronologia degli investimenti
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -2075,7 +2075,7 @@
In alto
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -2083,7 +2083,7 @@
In basso
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -2227,7 +2227,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2235,7 +2235,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2267,7 +2267,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2323,7 +2323,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -3051,7 +3051,7 @@
Evoluzione del portafoglio
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -3278,6 +3278,14 @@
79
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
Africa
@@ -3487,7 +3495,7 @@
Cronologia dei dividendi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -3622,6 +3630,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Yearly
Annuale
@@ -4431,7 +4447,7 @@
Serie attuale
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4439,7 +4455,7 @@
Serie più lunga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4483,7 +4499,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -4674,6 +4690,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Configurazione dello scraper
@@ -4879,7 +4903,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5841,7 +5865,7 @@
Stock Tracking
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -7242,7 +7266,7 @@
Gestione Patrimoniale
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7446,7 +7470,7 @@
Tax Reporting
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7750,7 +7774,7 @@
Investment Research
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7976,7 +8000,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8032,7 +8056,7 @@
Net Worth Tracking
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8160,7 +8184,7 @@
Cambia
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8196,11 +8220,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.ja.xlf b/apps/client/src/locales/messages.ja.xlf
index e64d0ce7b4..7cc567ca40 100644
--- a/apps/client/src/locales/messages.ja.xlf
+++ b/apps/client/src/locales/messages.ja.xlf
@@ -328,7 +328,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -344,7 +344,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -424,7 +424,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -440,7 +440,7 @@
合計
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -476,7 +476,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -508,11 +508,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -524,7 +524,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -556,7 +556,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -604,7 +604,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -928,7 +928,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1191,6 +1191,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
スクレイパーの設定
@@ -1216,7 +1224,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2164,7 +2172,7 @@
緊急用資金の金額を設定してください。
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -2196,7 +2204,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2204,7 +2212,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -3028,7 +3036,7 @@
Financial Planning
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -4308,7 +4316,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -4491,6 +4499,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Choose or drop a file here
ここでファイルを選択またはドロップ
@@ -4824,7 +4840,7 @@
トップ
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -4832,7 +4848,7 @@
ボトム
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -4840,7 +4856,7 @@
ポートフォリオ進化
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -4848,7 +4864,7 @@
投資タイムライン
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -4856,7 +4872,7 @@
現在のストリーク
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4864,7 +4880,7 @@
最長のストリーク
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4872,7 +4888,7 @@
配当金タイムライン
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -5485,7 +5501,7 @@
Stock Tracking
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -5509,7 +5525,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5869,15 +5885,15 @@
配分
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5897,7 +5913,7 @@
すべて表示
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -6205,7 +6221,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -6320,6 +6336,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
アフリカ
@@ -7194,7 +7218,7 @@
Wealth Management
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7526,7 +7550,7 @@
Tax Reporting
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7774,7 +7798,7 @@
Investment Research
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -8000,7 +8024,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8056,7 +8080,7 @@
Net Worth Tracking
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8184,7 +8208,7 @@
Change
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8220,11 +8244,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.ko.xlf b/apps/client/src/locales/messages.ko.xlf
index 99649ef133..49d9aff787 100644
--- a/apps/client/src/locales/messages.ko.xlf
+++ b/apps/client/src/locales/messages.ko.xlf
@@ -328,7 +328,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -344,7 +344,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -424,7 +424,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -440,7 +440,7 @@
합계
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -476,7 +476,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -508,11 +508,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -524,7 +524,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -556,7 +556,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -604,7 +604,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -928,7 +928,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1191,6 +1191,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
스크래퍼 설정
@@ -1216,7 +1224,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2164,7 +2172,7 @@
비상금 금액을 설정해 주세요.
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -2196,7 +2204,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2204,7 +2212,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -3028,7 +3036,7 @@
재무 설계
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -4300,7 +4308,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -4483,6 +4491,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Choose or drop a file here
여기에 파일을 선택하거나 드롭하세요.
@@ -4816,7 +4832,7 @@
상위
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -4824,7 +4840,7 @@
하위
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -4832,7 +4848,7 @@
포트폴리오 진화
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -4840,7 +4856,7 @@
투자 일정
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -4848,7 +4864,7 @@
현재 연속
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4856,7 +4872,7 @@
최장 연속
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4864,7 +4880,7 @@
배당 일정
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -5477,7 +5493,7 @@
주식 추적
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -5501,7 +5517,7 @@
웹
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5861,15 +5877,15 @@
자산 배분
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5889,7 +5905,7 @@
모두 표시
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -6205,7 +6221,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -6320,6 +6336,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
아프리카
@@ -7194,7 +7218,7 @@
자산관리
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7526,7 +7550,7 @@
세금 보고
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7774,7 +7798,7 @@
투자 리서치
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -8000,7 +8024,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8056,7 +8080,7 @@
순자산 추적
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8184,7 +8208,7 @@
변동
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8220,11 +8244,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf
index b9fb3ecbcb..431207b54d 100644
--- a/apps/client/src/locales/messages.nl.xlf
+++ b/apps/client/src/locales/messages.nl.xlf
@@ -166,7 +166,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -182,7 +182,7 @@
Totaal
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -210,11 +210,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -226,7 +226,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -258,7 +258,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -306,7 +306,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -566,7 +566,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1082,7 +1082,7 @@
Voer het bedrag van je noodfonds in:
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -1150,15 +1150,15 @@
Allocatie
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1178,7 +1178,7 @@
Toon alle
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -1622,7 +1622,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1642,7 +1642,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -1658,7 +1658,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -1674,7 +1674,7 @@
Financiële planning
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -2066,7 +2066,7 @@
Tijdlijn investeringen
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -2074,7 +2074,7 @@
Winnaars
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -2082,7 +2082,7 @@
Verliezers
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -2226,7 +2226,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2234,7 +2234,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2266,7 +2266,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2322,7 +2322,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -3050,7 +3050,7 @@
Waardeontwikkeling van portefeuille
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -3277,6 +3277,14 @@
79
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
Afrika
@@ -3486,7 +3494,7 @@
Tijdlijn dividend
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -3621,6 +3629,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Yearly
Jaarlijks
@@ -4430,7 +4446,7 @@
Huidige reeks
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4438,7 +4454,7 @@
Langste reeks
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4482,7 +4498,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -4673,6 +4689,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Scraper instellingen
@@ -4878,7 +4902,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5840,7 +5864,7 @@
Aandelen volgen
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -7241,7 +7265,7 @@
Vermogensbeheer
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7445,7 +7469,7 @@
Belastingrapportage
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7749,7 +7773,7 @@
Beleggingsonderzoek
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7975,7 +7999,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8031,7 +8055,7 @@
Netto waarde volgen
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8159,7 +8183,7 @@
Aanpassen
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8195,11 +8219,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf
index 9a2921ec5e..cb7519a70e 100644
--- a/apps/client/src/locales/messages.pl.xlf
+++ b/apps/client/src/locales/messages.pl.xlf
@@ -327,7 +327,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -343,7 +343,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -415,7 +415,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -431,7 +431,7 @@
Suma
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -467,7 +467,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -499,11 +499,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -515,7 +515,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -547,7 +547,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -595,7 +595,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -919,7 +919,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1158,6 +1158,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Konfiguracja Scrapera
@@ -1183,7 +1191,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2131,7 +2139,7 @@
Wprowadź wysokość funduszu rezerwowego:
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -2163,7 +2171,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2171,7 +2179,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2995,7 +3003,7 @@
Financial Planning
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -4267,7 +4275,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -4450,6 +4458,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Choose or drop a file here
Wybierz lub przeciągnij plik tutaj
@@ -4783,7 +4799,7 @@
Największe wzrosty
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -4791,7 +4807,7 @@
Największy spadek
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -4799,7 +4815,7 @@
Rozwój portfela
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -4807,7 +4823,7 @@
Oś czasu inwestycji
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -4815,7 +4831,7 @@
Obecna passa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4823,7 +4839,7 @@
Najdłuższa passa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4831,7 +4847,7 @@
Oś czasu dywidend
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -5432,7 +5448,7 @@
Stock Tracking
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -5456,7 +5472,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5784,15 +5800,15 @@
Podział
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5812,7 +5828,7 @@
Pokaż wszystko
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -6128,7 +6144,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -6243,6 +6259,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
Afryka
@@ -7241,7 +7265,7 @@
Zarządzanie Majątkiem
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7445,7 +7469,7 @@
Tax Reporting
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7749,7 +7773,7 @@
Investment Research
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7975,7 +7999,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8031,7 +8055,7 @@
Net Worth Tracking
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8159,7 +8183,7 @@
Zmiana
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8195,11 +8219,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf
index 3960bda31b..d89c725518 100644
--- a/apps/client/src/locales/messages.pt.xlf
+++ b/apps/client/src/locales/messages.pt.xlf
@@ -118,7 +118,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -174,7 +174,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -190,7 +190,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -226,7 +226,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -246,7 +246,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -274,11 +274,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -290,7 +290,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -322,7 +322,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -370,7 +370,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -638,7 +638,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1262,7 +1262,7 @@
Por favor, insira o valor do seu fundo de emergência:
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -1294,7 +1294,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1302,7 +1302,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -1410,15 +1410,15 @@
Alocação
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1438,7 +1438,7 @@
Mostrar tudo
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -1990,7 +1990,7 @@
Financial Planning
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -2322,7 +2322,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -2430,7 +2430,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2674,7 +2674,7 @@
Topo
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -2682,7 +2682,7 @@
Fundo
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -2690,7 +2690,7 @@
Evolução do Portefólio
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -2698,7 +2698,7 @@
Cronograma de Investimento
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -3289,6 +3289,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
África
@@ -3570,7 +3578,7 @@
Cronograma de Dividendos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -3621,6 +3629,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Yearly
Anualmente
@@ -4430,7 +4446,7 @@
Série Atual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4438,7 +4454,7 @@
Série mais Longa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4482,7 +4498,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -4673,6 +4689,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Configuração do raspador
@@ -4878,7 +4902,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5840,7 +5864,7 @@
Stock Tracking
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -7241,7 +7265,7 @@
Gestão de patrimônio
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7445,7 +7469,7 @@
Tax Reporting
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7749,7 +7773,7 @@
Investment Research
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7975,7 +7999,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8031,7 +8055,7 @@
Net Worth Tracking
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8159,7 +8183,7 @@
Mudar
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8195,11 +8219,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf
index d5308a8cf0..27af34b080 100644
--- a/apps/client/src/locales/messages.tr.xlf
+++ b/apps/client/src/locales/messages.tr.xlf
@@ -299,7 +299,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -315,7 +315,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -371,7 +371,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -387,7 +387,7 @@
Toplam
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -423,7 +423,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -455,11 +455,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -471,7 +471,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -503,7 +503,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -551,7 +551,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -863,7 +863,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1070,6 +1070,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Veri Toplayıcı Yapılandırması
@@ -1095,7 +1103,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1959,7 +1967,7 @@
Lütfen acil durum yedeği meblağını giriniz:
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -1991,7 +1999,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1999,7 +2007,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2491,7 +2499,7 @@
Financial Planning
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -3523,7 +3531,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -3682,6 +3690,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
The following file formats are supported:
Aşağıdaki dosya formatları desteklenmektedir:
@@ -4023,7 +4039,7 @@
Üst
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -4031,7 +4047,7 @@
Alt
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -4039,7 +4055,7 @@
Portföyün Gelişimi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -4047,7 +4063,7 @@
Yatırım Zaman Çizelgesi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -4055,7 +4071,7 @@
Güncel Seri
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4063,7 +4079,7 @@
En Uzun Seri
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4071,7 +4087,7 @@
Temettü Zaman Çizelgesi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -4684,7 +4700,7 @@
Stock Tracking
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -4708,7 +4724,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5320,15 +5336,15 @@
Dağılım
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5348,7 +5364,7 @@
Tümünü göster
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -5664,7 +5680,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -5763,6 +5779,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
Afrika
@@ -7241,7 +7265,7 @@
Zenginlik Yönetimi
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7445,7 +7469,7 @@
Tax Reporting
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7749,7 +7773,7 @@
Investment Research
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7975,7 +7999,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8031,7 +8055,7 @@
Net Worth Tracking
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8159,7 +8183,7 @@
Değişim
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8195,11 +8219,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf
index ea186767f2..6943517691 100644
--- a/apps/client/src/locales/messages.uk.xlf
+++ b/apps/client/src/locales/messages.uk.xlf
@@ -367,7 +367,7 @@
Податкова звітність
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -423,7 +423,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -439,7 +439,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -519,7 +519,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -535,7 +535,7 @@
Загалом
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -571,7 +571,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -603,11 +603,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -619,7 +619,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -651,7 +651,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -699,7 +699,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1027,7 +1027,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1278,6 +1278,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
Конфігурація скребка
@@ -1347,7 +1355,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1743,7 +1751,7 @@
Відстеження чистого капіталу
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -2103,7 +2111,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2111,7 +2119,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2567,7 +2575,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -2595,7 +2603,7 @@
Будь ласка, встановіть суму вашого резервного фонду.
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -2807,7 +2815,7 @@
Інвестиційні дослідження
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -3643,7 +3651,7 @@
Фінансове планування
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -4968,7 +4976,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -5187,6 +5195,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Choose or drop a file here
Виберіть або перетягніть файл сюди
@@ -5604,7 +5620,7 @@
Топ
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -5612,7 +5628,7 @@
Низ
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -5620,7 +5636,7 @@
Еволюція портфеля
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -5628,7 +5644,7 @@
Інвестиційний графік
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -5636,7 +5652,7 @@
Поточна серія
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -5644,7 +5660,7 @@
Найдовша серія
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -5652,7 +5668,7 @@
Графік дивідендів
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -6371,7 +6387,7 @@
Управління багатством
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -6755,7 +6771,7 @@
Відстеження акцій
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -6779,7 +6795,7 @@
Веб
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -7271,15 +7287,15 @@
Розподіл
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -7299,7 +7315,7 @@
Показати все
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -7739,7 +7755,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -7870,6 +7886,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
Африка
@@ -8159,7 +8183,7 @@
Змінити
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8195,11 +8219,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf
index 726b23d4b5..bf03ea0e6c 100644
--- a/apps/client/src/locales/messages.xlf
+++ b/apps/client/src/locales/messages.xlf
@@ -305,7 +305,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -320,7 +320,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -397,7 +397,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -412,7 +412,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -446,7 +446,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -477,11 +477,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -493,7 +493,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -524,7 +524,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -571,7 +571,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -865,7 +865,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1102,6 +1102,13 @@
175
+
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
@@ -1125,7 +1132,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -1978,7 +1985,7 @@
Please set the amount of your emergency fund.
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -2007,7 +2014,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2015,7 +2022,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -2765,7 +2772,7 @@
Financial Planning
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -3928,7 +3935,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -4092,6 +4099,13 @@
71
+
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Choose or drop a file here
@@ -4390,49 +4404,49 @@
Top
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
Bottom
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
Portfolio Evolution
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
Investment Timeline
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
Current Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
Longest Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
Dividend Timeline
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -4986,7 +5000,7 @@
Stock Tracking
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -5007,7 +5021,7 @@
Web
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5330,15 +5344,15 @@
Allocation
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5357,7 +5371,7 @@
Show all
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -5640,7 +5654,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -5743,6 +5757,13 @@
74
+
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
@@ -6525,7 +6546,7 @@
Wealth Management
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -6829,7 +6850,7 @@
Tax Reporting
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7051,7 +7072,7 @@
Investment Research
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7255,7 +7276,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -7307,7 +7328,7 @@
Net Worth Tracking
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -7419,7 +7440,7 @@
Change
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -7452,11 +7473,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf
index 853f9dcc1f..8c43c4a725 100644
--- a/apps/client/src/locales/messages.zh.xlf
+++ b/apps/client/src/locales/messages.zh.xlf
@@ -328,7 +328,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 161
+ 163
@@ -344,7 +344,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 92
+ 94
@@ -424,7 +424,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 34
+ 35
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -440,7 +440,7 @@
总计
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 61
+ 63
@@ -476,7 +476,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 71
+ 73
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -508,11 +508,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 196
+ 198
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 231
+ 233
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -524,7 +524,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 112
+ 113
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -556,7 +556,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 348
+ 350
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -604,7 +604,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 361
+ 363
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -928,7 +928,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 63
+ 64
@@ -1167,6 +1167,14 @@
175
+
+ Financial Advisor
+ Financial Advisor
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
Scraper Configuration
刮削配置
@@ -1192,7 +1200,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 305
+ 307
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2140,7 +2148,7 @@
请输入您的应急基金金额。
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 169
+ 173
@@ -2172,7 +2180,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 141
+ 143
libs/ui/src/lib/activities-table/activities-table.component.html
@@ -2180,7 +2188,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 87
+ 88
@@ -3004,7 +3012,7 @@
财务规划
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -4284,7 +4292,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 124
+ 126
@@ -4467,6 +4475,14 @@
71
+
+ Dividend Performance
+ Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 307
+
+
Choose or drop a file here
在此处选择或放置文件
@@ -4800,7 +4816,7 @@
顶部
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 292
+ 332
@@ -4808,7 +4824,7 @@
底部
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 343
+ 383
@@ -4816,7 +4832,7 @@
投资组合演变
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 438
@@ -4824,7 +4840,7 @@
投资时间表
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 465
@@ -4832,7 +4848,7 @@
当前连胜
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 446
+ 486
@@ -4840,7 +4856,7 @@
最长连续纪录
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 455
+ 495
@@ -4848,7 +4864,7 @@
股息时间表
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 482
+ 522
@@ -5461,7 +5477,7 @@
股票追踪
libs/ui/src/lib/i18n.ts
- 113
+ 114
@@ -5485,7 +5501,7 @@
网页
libs/ui/src/lib/i18n.ts
- 122
+ 123
@@ -5845,15 +5861,15 @@
分配
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 266
+ 268
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 137
+ 138
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 138
+ 139
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5873,7 +5889,7 @@
显示所有
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 242
+ 243
@@ -6181,7 +6197,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 337
+ 339
@@ -6296,6 +6312,14 @@
74
+
+ Absolute Dividend Performance
+ Absolute Dividend Performance
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 288
+
+
Africa
非洲
@@ -7242,7 +7266,7 @@
财富管理
libs/ui/src/lib/i18n.ts
- 115
+ 116
@@ -7446,7 +7470,7 @@
税务报告
libs/ui/src/lib/i18n.ts
- 114
+ 115
@@ -7750,7 +7774,7 @@
投资研究
libs/ui/src/lib/i18n.ts
- 111
+ 112
@@ -7976,7 +8000,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
- 167
+ 171
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -8032,7 +8056,7 @@
净资产追踪
libs/ui/src/lib/i18n.ts
- 112
+ 113
@@ -8160,7 +8184,7 @@
涨跌
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 159
+ 160
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
@@ -8196,11 +8220,11 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 184
+ 185
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 185
+ 186
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
diff --git a/libs/common/src/lib/interfaces/historical-data-item.interface.ts b/libs/common/src/lib/interfaces/historical-data-item.interface.ts
index adb5b7e655..a733837d52 100644
--- a/libs/common/src/lib/interfaces/historical-data-item.interface.ts
+++ b/libs/common/src/lib/interfaces/historical-data-item.interface.ts
@@ -1,6 +1,8 @@
export interface HistoricalDataItem {
averagePrice?: number;
date: string;
+ dividendInBaseCurrency?: number;
+ dividendInPercentageWithCurrencyEffect?: number;
grossPerformancePercent?: number;
investmentValueWithCurrencyEffect?: number;
marketPrice?: number;
diff --git a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts
index 0698004d53..da0bb04f40 100644
--- a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts
+++ b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts
@@ -2,6 +2,8 @@ export interface PortfolioPerformance {
annualizedPerformancePercent?: number;
currentNetWorth?: number;
currentValueInBaseCurrency: number;
+ dividendInBaseCurrency: number;
+ dividendPercentageWithCurrencyEffect?: number;
netPerformance: number;
netPerformancePercentage: number;
netPerformancePercentageWithCurrencyEffect: number;
diff --git a/libs/common/src/lib/interfaces/portfolio-summary.interface.ts b/libs/common/src/lib/interfaces/portfolio-summary.interface.ts
index 4e6402d162..d9bd435b1b 100644
--- a/libs/common/src/lib/interfaces/portfolio-summary.interface.ts
+++ b/libs/common/src/lib/interfaces/portfolio-summary.interface.ts
@@ -7,7 +7,6 @@ export interface PortfolioSummary extends PortfolioPerformance {
annualizedPerformancePercentWithCurrencyEffect: number;
cash: number;
dateOfFirstActivity?: Date;
- dividendInBaseCurrency: number;
dividendYieldPercent: number;
dividendYieldPercentWithCurrencyEffect: number;
emergencyFund: {
diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts
index f713871dc8..9f891d3818 100644
--- a/libs/common/src/lib/personal-finance-tools.ts
+++ b/libs/common/src/lib/personal-finance-tools.ts
@@ -2,6 +2,21 @@ import { Product } from '@ghostfolio/common/interfaces';
export const personalFinanceTools: Product[] = (
[
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'NET_WORTH_TRACKING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ key: '1fs-wealth',
+ name: '1fs Wealth',
+ origin: 'GB',
+ platforms: ['WEB'],
+ slogan: 'A single platform for all of your wealth.',
+ updatedAt: '2026-09-24',
+ url: 'https://www.1fs.co'
+ },
{
categories: [
'FAMILY_OFFICE',
@@ -44,7 +59,6 @@ export const personalFinanceTools: Product[] = (
url: 'https://addepar.com'
},
{
- alias: 'APX',
categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
hasSelfHostingAbility: true,
key: 'advent-portfolio-exchange',
@@ -77,6 +91,22 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-09',
url: 'https://akkuro.com'
},
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'NET_WORTH_TRACKING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ hasSelfHostingAbility: false,
+ key: 'aleta',
+ name: 'Aleta',
+ origin: 'US',
+ platforms: ['ANDROID', 'IOS', 'WEB'],
+ slogan: 'Family Office Software for Forward-Thinking Families',
+ updatedAt: '2026-09-24',
+ url: 'https://aleta.io'
+ },
{
categories: ['ETF_TRACKING', 'STOCK_TRACKING'],
founded: 2023,
@@ -174,6 +204,26 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://altruist.com'
},
+ {
+ categories: ['BUDGETING', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ hasFreePlan: true,
+ key: 'alwy',
+ languages: [
+ 'Dansk',
+ 'Deutsch',
+ 'English',
+ 'Nederlands',
+ 'Norsk',
+ 'Suomi',
+ 'Svenska'
+ ],
+ name: 'Alwy',
+ origin: 'SE',
+ platforms: ['IOS', 'WEB'],
+ slogan: 'Future-proof your business',
+ updatedAt: '2026-09-24',
+ url: 'https://alwy.se'
+ },
{
categories: ['INVESTMENT_RESEARCH', 'STOCK_TRACKING'],
founded: 2023,
@@ -215,6 +265,21 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://anlage.app'
},
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'TAX_REPORTING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ key: 'arch',
+ name: 'Arch',
+ origin: 'US',
+ platforms: ['WEB'],
+ slogan: 'Private Markets. Simplified.',
+ updatedAt: '2026-09-24',
+ url: 'https://arch.com'
+ },
{
categories: ['FAMILY_OFFICE', 'WEALTH_MANAGEMENT'],
founded: 2002,
@@ -240,6 +305,39 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-09-23',
url: 'https://asignal.io'
},
+ {
+ categories: ['FAMILY_OFFICE', 'NET_WORTH_TRACKING', 'WEALTH_MANAGEMENT'],
+ founded: 2021,
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'asora',
+ name: 'Asora',
+ origin: 'IE',
+ platforms: ['ANDROID', 'IOS', 'WEB'],
+ pricingPerYear: '$10800',
+ slogan: 'Software for the modern family office',
+ updatedAt: '2026-09-24',
+ url: 'https://www.asora.com'
+ },
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'NET_WORTH_TRACKING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ founded: 2011,
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'asset-vantage',
+ name: 'Asset Vantage',
+ platforms: ['ANDROID', 'IOS', 'WEB'],
+ pricingPerYear: '$30000',
+ slogan:
+ 'The Financial Operating System for Modern Family Offices and Their Advisors',
+ updatedAt: '2026-09-24',
+ url: 'https://www.assetvantage.com'
+ },
{
categories: ['FAMILY_OFFICE'],
founded: 2022,
@@ -253,6 +351,33 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.asseta.ai'
},
+ {
+ categories: ['FAMILY_OFFICE', 'WEALTH_MANAGEMENT'],
+ key: 'atalaya',
+ languages: ['English', 'Español'],
+ name: 'Atalaya',
+ origin: 'ES',
+ slogan: 'Software for Family Offices',
+ updatedAt: '2026-09-24',
+ url: 'https://www.atalaya.ai'
+ },
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'NET_WORTH_TRACKING',
+ 'TAX_REPORTING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ hasSelfHostingAbility: false,
+ key: 'atlasfive',
+ languages: ['English'],
+ name: 'AtlasFive®',
+ origin: 'US',
+ slogan: 'Experience Wealth Intelligence',
+ updatedAt: '2026-09-24',
+ url: 'https://eton-solutions.com'
+ },
{
categories: ['WEALTH_MANAGEMENT'],
founded: 2016,
@@ -263,6 +388,20 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.atominvest.co'
},
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'NET_WORTH_TRACKING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ key: 'auria',
+ name: 'Auria',
+ platforms: ['WEB'],
+ slogan: 'Simplify the complexities of wealth with a unified solution',
+ updatedAt: '2026-09-24',
+ url: 'https://auriaplatform.com'
+ },
{
categories: ['BUDGETING'],
founded: 2020,
@@ -506,6 +645,41 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-09',
url: 'https://www.buxfer.com'
},
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'NET_WORTH_TRACKING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ founded: 2017,
+ hasSelfHostingAbility: false,
+ key: 'canopy',
+ languages: [
+ 'Bahasa Indonesia',
+ 'Bahasa Melayu',
+ 'Deutsch',
+ 'English',
+ 'Español',
+ 'Français',
+ 'Italiano',
+ 'Português',
+ 'Tiếng Việt',
+ 'Русский',
+ 'العربية',
+ 'ภาษาไทย',
+ '日本語',
+ '简体中文',
+ '繁體中文',
+ '한국어'
+ ],
+ name: 'Canopy',
+ origin: 'SG',
+ platforms: ['ANDROID', 'IOS', 'WEB'],
+ slogan: 'All your wealth, finally understood.',
+ updatedAt: '2026-09-24',
+ url: 'https://www.canopy.cloud'
+ },
{
categories: ['NET_WORTH_TRACKING'],
hasFreePlan: true,
@@ -557,6 +731,19 @@ export const personalFinanceTools: Product[] = (
slogan: 'Toma el control total de tus finanzas.',
updatedAt: '2025-07-27'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ founded: 2016,
+ hasFreePlan: false,
+ key: 'clockwork',
+ name: 'Clockwork',
+ origin: 'US',
+ platforms: ['WEB'],
+ slogan:
+ 'Manage your alternative investments, and everything else, with Clockwork.',
+ updatedAt: '2026-09-24',
+ url: 'https://www.clockwork.app'
+ },
{
categories: ['WEALTH_MANAGEMENT'],
founded: 2011,
@@ -882,6 +1069,22 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-08-16',
url: 'https://www.donkycapital.com'
},
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'NET_WORTH_TRACKING',
+ 'TAX_REPORTING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ founded: 2006,
+ key: 'elysys',
+ name: 'Elysys',
+ origin: 'MC',
+ slogan:
+ 'Complete front-to-back investment accounting and portfolio management on Business Central',
+ updatedAt: '2026-09-24',
+ url: 'https://www.elysys.com'
+ },
{
categories: ['BUDGETING', 'FINANCIAL_ADVISOR', 'FINANCIAL_PLANNING'],
hasSelfHostingAbility: false,
@@ -1116,6 +1319,17 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-08-16',
url: 'https://extraetf.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ hasSelfHostingAbility: false,
+ key: 'fa-platform',
+ languages: ['English'],
+ name: 'FA Platform',
+ origin: 'FI',
+ slogan: 'Empowering Investment Management with Innovation',
+ updatedAt: '2026-09-24',
+ url: 'https://fasolutions.com'
+ },
{
categories: ['INVESTMENT_RESEARCH'],
key: 'factorstoday',
@@ -1442,6 +1656,20 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.fundmanagersoftware.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'TAX_REPORTING', 'WEALTH_MANAGEMENT'],
+ founded: 1999,
+ hasFreePlan: false,
+ hasSelfHostingAbility: true,
+ key: 'fundcount',
+ name: 'FundCount',
+ origin: 'BB',
+ platforms: ['LINUX', 'MACOS', 'WEB', 'WINDOWS'],
+ pricingPerYear: '$14450',
+ slogan: 'One source of truth for every entity, fund, and asset class.',
+ updatedAt: '2026-09-24',
+ url: 'https://fundcount.com'
+ },
{
categories: ['BUDGETING'],
hasFreePlan: true,
@@ -1626,6 +1854,16 @@ export const personalFinanceTools: Product[] = (
pricingPerYear: '$120',
updatedAt: '2025-08-27'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ key: 'infront',
+ name: 'Infront',
+ origin: 'NO',
+ platforms: ['WEB'],
+ slogan: 'Built for Complex Wealth. Made for Family Offices',
+ updatedAt: '2026-09-24',
+ url: 'https://www.infront.co/global/en/your-industry/wealth/family-offices.html'
+ },
{
categories: ['INVESTMENT_RESEARCH'],
hasFreePlan: true,
@@ -1760,6 +1998,18 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-09-23',
url: 'https://istfin.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ hasSelfHostingAbility: false,
+ key: 'j-ray',
+ languages: ['English'],
+ name: 'J-Ray',
+ origin: 'FI',
+ platforms: ['WEB'],
+ slogan: 'The Guiding Light for Complex Wealth',
+ updatedAt: '2026-09-24',
+ url: 'https://jaysolutions.com'
+ },
{
categories: ['ETF_TRACKING'],
founded: 2011,
@@ -1774,6 +2024,18 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.justetf.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ founded: 2004,
+ hasSelfHostingAbility: true,
+ key: 'keesense',
+ languages: ['English', 'Français'],
+ name: 'KeeSense',
+ origin: 'MC',
+ slogan: 'Augmented Wealth Management',
+ updatedAt: '2026-09-24',
+ url: 'https://www.keesystem.com'
+ },
{
categories: ['CRYPTOCURRENCY', 'TAX_REPORTING'],
founded: 2018,
@@ -2233,6 +2495,23 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://myfinancetools.io'
},
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'NET_WORTH_TRACKING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ hasSelfHostingAbility: false,
+ key: 'myfo',
+ languages: ['English'],
+ name: 'MYFO',
+ origin: 'CA',
+ platforms: ['WEB'],
+ slogan: 'The First Full Family Office Operating System',
+ updatedAt: '2026-09-24',
+ url: 'https://www.myfotech.com'
+ },
{
categories: ['CRYPTOCURRENCY', 'NET_WORTH_TRACKING', 'STOCK_TRACKING'],
hasFreePlan: true,
@@ -2499,6 +2778,19 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.getpennies.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ founded: 2020,
+ hasSelfHostingAbility: false,
+ key: 'performativ',
+ languages: ['Deutsch', 'English', 'Nederlands'],
+ name: 'Performativ',
+ origin: 'DK',
+ platforms: ['WEB'],
+ slogan: 'The Operating System Powering Tomorrow’s Wealth Management',
+ updatedAt: '2026-09-24',
+ url: 'https://www.performativ.com'
+ },
{
categories: ['FAMILY_OFFICE'],
hasFreePlan: true,
@@ -2552,6 +2844,22 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.plannix.co'
},
+ {
+ categories: [
+ 'CRYPTOCURRENCY',
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'WEALTH_MANAGEMENT'
+ ],
+ founded: 2012,
+ hasSelfHostingAbility: true,
+ key: 'pmplus',
+ name: 'PMplus®',
+ origin: 'CH',
+ platforms: ['WEB'],
+ updatedAt: '2026-09-24',
+ url: 'https://www.suissetechpartners.com'
+ },
{
categories: ['BUDGETING'],
founded: 2015,
@@ -2582,6 +2890,17 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.pocketsmith.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ founded: 2017,
+ key: 'point',
+ languages: ['English'],
+ name: 'Point',
+ origin: 'GB',
+ slogan: 'AI-Ready Investment Data',
+ updatedAt: '2026-09-24',
+ url: 'https://pointgroup.io'
+ },
{
categories: ['FINANCIAL_PLANNING', 'WEALTH_MANAGEMENT'],
hasFreePlan: false,
@@ -2775,6 +3094,16 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.portseido.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ key: 'private-wealth-systems',
+ name: 'Private Wealth Systems',
+ origin: 'US',
+ platforms: ['WEB'],
+ slogan: 'Portfolio Management & Reporting Software',
+ updatedAt: '2026-09-24',
+ url: 'https://privatewealthsystems.com'
+ },
{
categories: ['FINANCIAL_PLANNING'],
founded: 2021,
@@ -2815,6 +3144,23 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-09-23',
url: 'https://www.assetbook.com'
},
+ {
+ categories: [
+ 'FAMILY_OFFICE',
+ 'FINANCIAL_ADVISOR',
+ 'TAX_REPORTING',
+ 'WEALTH_MANAGEMENT'
+ ],
+ founded: 2012,
+ key: 'qplix',
+ languages: ['Deutsch', 'English'],
+ name: 'QPLIX',
+ origin: 'DE',
+ platforms: ['IOS', 'WEB'],
+ slogan: 'Your Software to Master Wealth Management.',
+ updatedAt: '2026-09-24',
+ url: 'https://www.qplix.com'
+ },
{
categories: ['NET_WORTH_TRACKING'],
hasSelfHostingAbility: false,
@@ -2963,6 +3309,20 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.segmio.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ founded: 2019,
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'sesame-one',
+ name: 'Sesame One',
+ origin: 'GB',
+ platforms: ['WEB'],
+ pricingPerYear: '£20000',
+ slogan: 'Spend more time building investment value, not spreadsheets',
+ updatedAt: '2026-09-24',
+ url: 'https://www.landytech.com'
+ },
{
categories: ['INVESTMENT_RESEARCH', 'STOCK_TRACKING'],
key: 'sharescope',
@@ -3360,6 +3720,30 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.sumio.app'
},
+ {
+ categories: ['FAMILY_OFFICE'],
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'sumit',
+ languages: ['English'],
+ name: 'SumIt',
+ platforms: ['WEB'],
+ slogan: 'Powerfully simple family office accounting.',
+ updatedAt: '2026-09-24',
+ url: 'https://getsumit.com'
+ },
+ {
+ categories: ['FAMILY_OFFICE', 'WEALTH_MANAGEMENT'],
+ hasSelfHostingAbility: true,
+ key: 'swimbird',
+ languages: ['English'],
+ name: 'Swimbird',
+ origin: 'SE',
+ platforms: ['ANDROID', 'IOS'],
+ slogan: 'Wealth Management Software',
+ updatedAt: '2026-09-24',
+ url: 'https://www.swimbird.com'
+ },
{
categories: ['INVESTMENT_RESEARCH'],
key: 'tc2000',
@@ -3408,6 +3792,22 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://tiller.com'
},
+ {
+ categories: [
+ 'FINANCIAL_ADVISOR',
+ 'INVESTMENT_RESEARCH',
+ 'WEALTH_MANAGEMENT'
+ ],
+ founded: 2010,
+ hasFreePlan: false,
+ key: 'tindeco',
+ languages: ['English'],
+ name: 'Tindeco',
+ origin: 'CH',
+ slogan: 'Scalable Investing Made Simple',
+ updatedAt: '2026-09-24',
+ url: 'https://tindecofs.com'
+ },
{
categories: ['CRYPTOCURRENCY', 'DIVIDEND_TRACKING', 'STOCK_TRACKING'],
hasFreePlan: true,
@@ -3858,6 +4258,17 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.wallstreetzen.com'
},
+ {
+ categories: ['FINANCIAL_ADVISOR', 'FINANCIAL_PLANNING'],
+ key: 'wealth-wizards',
+ languages: ['English'],
+ name: 'Wealth Wizards',
+ origin: 'GB',
+ regions: ['GB'],
+ slogan: 'Get new regime ready.',
+ updatedAt: '2026-09-24',
+ url: 'https://www.wealthwizards.com'
+ },
{
categories: ['FAMILY_OFFICE', 'TAX_REPORTING'],
founded: 2001,
@@ -3940,6 +4351,18 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-07-05',
url: 'https://www.wealthposition.com'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ hasSelfHostingAbility: true,
+ key: 'wealthspectrum',
+ languages: ['English'],
+ name: 'WealthSpectrum',
+ origin: 'IN',
+ platforms: ['WEB'],
+ slogan: 'Powering smart investment operations',
+ updatedAt: '2026-09-24',
+ url: 'https://www.wealthspectrum.com'
+ },
{
categories: ['STOCK_TRACKING'],
founded: 2018,
@@ -3970,6 +4393,18 @@ export const personalFinanceTools: Product[] = (
updatedAt: '2026-08-28',
url: 'https://www.wisesheets.io'
},
+ {
+ categories: ['FAMILY_OFFICE', 'FINANCIAL_ADVISOR', 'WEALTH_MANAGEMENT'],
+ founded: 2010,
+ hasSelfHostingAbility: true,
+ key: 'wize',
+ languages: ['English'],
+ name: 'WIZE',
+ origin: 'CH',
+ slogan: 'The all-in-one Wealth & Asset management IT platform',
+ updatedAt: '2026-09-24',
+ url: 'https://www.wize.net'
+ },
{
categories: [
'FINANCIAL_ADVISOR',
diff --git a/libs/ui/src/lib/accounts-table/accounts-table.component.html b/libs/ui/src/lib/accounts-table/accounts-table.component.html
index a01abff1a8..60be93ad8a 100644
--- a/libs/ui/src/lib/accounts-table/accounts-table.component.html
+++ b/libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -50,13 +50,15 @@
Name
-
- {{ element.name }}
+
+
+ {{ element.name }}
+
|
Total |
diff --git a/package-lock.json b/package-lock.json
index b3eae247c2..0bccf99a2b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "ghostfolio",
- "version": "3.73.0",
+ "version": "3.74.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ghostfolio",
- "version": "3.73.0",
+ "version": "3.74.0",
"hasInstallScript": true,
"license": "AGPL-3.0",
"dependencies": {
@@ -59,7 +59,7 @@
"bull": "4.16.5",
"chart.js": "4.5.1",
"chartjs-adapter-date-fns": "3.0.0",
- "chartjs-chart-treemap": "4.2.0",
+ "chartjs-chart-treemap": "4.2.2",
"chartjs-plugin-annotation": "3.1.0",
"chartjs-plugin-datalabels": "2.2.0",
"cheerio": "1.2.0",
@@ -18249,9 +18249,9 @@
}
},
"node_modules/chartjs-chart-treemap": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/chartjs-chart-treemap/-/chartjs-chart-treemap-4.2.0.tgz",
- "integrity": "sha512-2ghdKHbknLYEzqD2fRTbACOzEhuH/f7zI5t6dbQ3cAOS+ric4mLjll6Sxsaugy/HFU0KUftJEszYOvtay3wFSQ==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/chartjs-chart-treemap/-/chartjs-chart-treemap-4.2.2.tgz",
+ "integrity": "sha512-gmOVr5bokdhs0RsHqrnj1oQu9ybaRjdlXubzLhmRB9DsRnpY51WmyqxUd8JCCKbnFVru1yjdeOTXyqeMIFhxlg==",
"license": "MIT",
"peerDependencies": {
"chart.js": ">=3.0.0"
diff --git a/package.json b/package.json
index 5648ac6693..bb1c66a955 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ghostfolio",
- "version": "3.73.0",
+ "version": "3.74.0",
"homepage": "https://ghostfol.io",
"license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio",
@@ -103,7 +103,7 @@
"bull": "4.16.5",
"chart.js": "4.5.1",
"chartjs-adapter-date-fns": "3.0.0",
- "chartjs-chart-treemap": "4.2.0",
+ "chartjs-chart-treemap": "4.2.2",
"chartjs-plugin-annotation": "3.1.0",
"chartjs-plugin-datalabels": "2.2.0",
"cheerio": "1.2.0",