diff --git a/CHANGELOG.md b/CHANGELOG.md index 9be705fe4..2c3f4dd80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,13 +9,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Added the endpoint `GET api/v1/account/:id/balances` which provides historical cash balances +- Added support to search for an asset profile by `isin`, `name` and `symbol` as an administrator (experimental) - Added support for creating asset profiles with `MANUAL` data source -## Unreleased +### Changed + +- Extended the `copy-assets` `Nx` target to copy the locales to the server’s assets +- Upgraded `@simplewebauthn/browser` and `@simplewebauthn/server` from version `5.2.1` to `8.3` + +### Fixed + +- Displayed the transfer cash balance button based on a permission +- Fixed the biometric authentication + +## 2.11.0 - 2023-10-14 + +### Added + +- Added support to transfer a part of the cash balance from one to another account +- Extended the markets overview by benchmarks (date of last all time high) +- Added support to import historical market data in the admin control panel + +### Changed + +- Harmonized the style of the create button on the page for granting and revoking public access to share the portfolio +- Improved the language localization for German (`de`) +- Upgraded `prisma` from version `5.3.1` to `5.4.2` + +### Fixed + +- Fixed `FEE` and `INTEREST` types in the activities import of `csv` files +- Fixed the displayed currency of the cash balance in the create or update account dialog + +## 2.10.0 - 2023-10-09 + +### Added + +- Supported enter key press to submit the form of the create or update access dialog + +### Changed + +- Improved the display of the results in the search for a holding +- Changed the queue jobs view in the admin control panel to an `@angular/material` data table +- Improved the symbol conversion in the _EOD Historical Data_ service + +## 2.9.0 - 2023-10-08 ### Added +- Added support to search for a holding by `isin`, `name` and `symbol` (experimental) - Added support for notes in the activities import +- Added support to search in the platform selector of the create or update account dialog +- Added support for a search query in the portfolio position endpoint - Added the application version to the endpoint `GET api/v1/admin` - Introduced a carousel component for the testimonial section on the landing page @@ -98,13 +144,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Improved the preselected currency based on the account's currency in the create or edit activity dialog +- Improved the preselected currency based on the account’s currency in the create or edit activity dialog - Unlocked the experimental features setting for all users - Upgraded `prisma` from version `5.2.0` to `5.3.1` ### Fixed -- Fixed a memory leak related to the server's timezone (behind UTC) in the data gathering +- Fixed a memory leak related to the server’s timezone (behind UTC) in the data gathering ## 2.3.0 - 2023-09-17 @@ -255,7 +301,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Optimized the activities import by allowing a different currency than the asset's official one +- Optimized the activities import by allowing a different currency than the asset’s official one - Added a timeout to the _EOD Historical Data_ requests - Migrated the requests from `bent` to `got` in the _EOD Historical Data_ service @@ -762,7 +808,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Persisted today's market data continuously +- Persisted today’s market data continuously ### Fixed @@ -996,7 +1042,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Filtered activities with type `ITEM` from search results -- Considered the user's language in the _Stripe_ checkout +- Considered the user’s language in the _Stripe_ checkout - Upgraded the _Stripe_ dependencies - Upgraded `twitter-api-v2` from version `1.10.3` to `1.14.2` @@ -2670,7 +2716,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Moved the countries and sectors charts in the position detail dialog -- Distinguished today's data point of historical data in the admin control panel +- Distinguished today’s data point of historical data in the admin control panel - Restructured the server modules ### Fixed diff --git a/apps/api/src/app/access/create-access.dto.ts b/apps/api/src/app/access/create-access.dto.ts index 055cb6610..b9cf8892d 100644 --- a/apps/api/src/app/access/create-access.dto.ts +++ b/apps/api/src/app/access/create-access.dto.ts @@ -8,4 +8,8 @@ export class CreateAccessDto { @IsOptional() @IsString() granteeUserId?: string; + + @IsOptional() + @IsString() + type?: 'PUBLIC'; } diff --git a/apps/api/src/app/account/account.controller.ts b/apps/api/src/app/account/account.controller.ts index bf15d998f..4666e5084 100644 --- a/apps/api/src/app/account/account.controller.ts +++ b/apps/api/src/app/account/account.controller.ts @@ -1,8 +1,12 @@ import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service'; import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response.interceptor'; +import { AccountBalanceService } from '@ghostfolio/api/services/account-balance/account-balance.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation/impersonation.service'; import { HEADER_KEY_IMPERSONATION } from '@ghostfolio/common/config'; -import { Accounts } from '@ghostfolio/common/interfaces'; +import { + AccountBalancesResponse, + Accounts +} from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import type { AccountWithValue, @@ -29,11 +33,13 @@ import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { AccountService } from './account.service'; import { CreateAccountDto } from './create-account.dto'; +import { TransferBalanceDto } from './transfer-balance.dto'; import { UpdateAccountDto } from './update-account.dto'; @Controller('account') export class AccountController { public constructor( + private readonly accountBalanceService: AccountBalanceService, private readonly accountService: AccountService, private readonly impersonationService: ImpersonationService, private readonly portfolioService: PortfolioService, @@ -115,6 +121,18 @@ export class AccountController { return accountsWithAggregations.accounts[0]; } + @Get(':id/balances') + @UseGuards(AuthGuard('jwt')) + @UseInterceptors(RedactValuesInResponseInterceptor) + public async getAccountBalancesById( + @Param('id') id: string + ): Promise { + return this.accountBalanceService.getAccountBalances({ + accountId: id, + userId: this.request.user.id + }); + } + @Post() @UseGuards(AuthGuard('jwt')) public async createAccount( @@ -154,6 +172,58 @@ export class AccountController { } } + @Post('transfer-balance') + @UseGuards(AuthGuard('jwt')) + public async transferAccountBalance( + @Body() { accountIdFrom, accountIdTo, balance }: TransferBalanceDto + ) { + if ( + !hasPermission(this.request.user.permissions, permissions.updateAccount) + ) { + throw new HttpException( + getReasonPhrase(StatusCodes.FORBIDDEN), + StatusCodes.FORBIDDEN + ); + } + + const accountsOfUser = await this.accountService.getAccounts( + this.request.user.id + ); + + const currentAccountIds = accountsOfUser.map(({ id }) => { + return id; + }); + + if ( + ![accountIdFrom, accountIdTo].every((accountId) => { + return currentAccountIds.includes(accountId); + }) + ) { + throw new HttpException( + getReasonPhrase(StatusCodes.NOT_FOUND), + StatusCodes.NOT_FOUND + ); + } + + const { currency } = accountsOfUser.find(({ id }) => { + return id === accountIdFrom; + }); + + await this.accountService.updateAccountBalance({ + currency, + accountId: accountIdFrom, + amount: -balance, + userId: this.request.user.id + }); + + await this.accountService.updateAccountBalance({ + currency, + accountId: accountIdTo, + amount: balance, + userId: this.request.user.id + }); + } + @Put(':id') @UseGuards(AuthGuard('jwt')) public async update(@Param('id') id: string, @Body() data: UpdateAccountDto) { diff --git a/apps/api/src/app/account/account.service.ts b/apps/api/src/app/account/account.service.ts index dc049108c..bc6abcc7a 100644 --- a/apps/api/src/app/account/account.service.ts +++ b/apps/api/src/app/account/account.service.ts @@ -109,7 +109,7 @@ export class AccountService { }); } - public async getAccounts(aUserId: string) { + public async getAccounts(aUserId: string): Promise { const accounts = await this.accounts({ include: { Order: true, Platform: true }, orderBy: { name: 'asc' }, @@ -218,13 +218,13 @@ export class AccountService { accountId, amount, currency, - date, + date = new Date(), userId }: { accountId: string; amount: number; currency: string; - date: Date; + date?: Date; userId: string; }) { const { balance, currency: currencyOfAccount } = await this.account({ diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index 3a5786f05..a19b17d4a 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -1,9 +1,9 @@ import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor'; +import { ApiService } from '@ghostfolio/api/services/api/api.service'; import { DataGatheringService } from '@ghostfolio/api/services/data-gathering/data-gathering.service'; import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service'; import { PropertyDto } from '@ghostfolio/api/services/property/property.dto'; import { - DEFAULT_PAGE_SIZE, GATHER_ASSET_PROFILE_PROCESS, GATHER_ASSET_PROFILE_PROCESS_OPTIONS } from '@ghostfolio/common/config'; @@ -12,8 +12,7 @@ import { AdminData, AdminMarketData, AdminMarketDataDetails, - EnhancedSymbolProfile, - Filter + EnhancedSymbolProfile } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import type { @@ -43,12 +42,14 @@ import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { AdminService } from './admin.service'; import { UpdateAssetProfileDto } from './update-asset-profile.dto'; +import { UpdateBulkMarketDataDto } from './update-bulk-market-data.dto'; import { UpdateMarketDataDto } from './update-market-data.dto'; @Controller('admin') export class AdminController { public constructor( private readonly adminService: AdminService, + private readonly apiService: ApiService, private readonly dataGatheringService: DataGatheringService, private readonly marketDataService: MarketDataService, @Inject(REQUEST) private readonly request: RequestWithUser @@ -254,6 +255,7 @@ export class AdminController { public async getMarketData( @Query('assetSubClasses') filterByAssetSubClasses?: string, @Query('presetId') presetId?: MarketDataPreset, + @Query('query') filterBySearchQuery?: string, @Query('skip') skip?: number, @Query('sortColumn') sortColumn?: string, @Query('sortDirection') sortDirection?: Prisma.SortOrder, @@ -271,16 +273,10 @@ export class AdminController { ); } - const assetSubClasses = filterByAssetSubClasses?.split(',') ?? []; - - const filters: Filter[] = [ - ...assetSubClasses.map((assetSubClass) => { - return { - id: assetSubClass, - type: 'ASSET_SUB_CLASS' - }; - }) - ]; + const filters = this.apiService.buildFiltersFromQueryParams({ + filterByAssetSubClasses, + filterBySearchQuery + }); return this.adminService.getMarketData({ filters, @@ -313,6 +309,43 @@ export class AdminController { return this.adminService.getMarketDataBySymbol({ dataSource, symbol }); } + @Post('market-data/:dataSource/:symbol') + @UseGuards(AuthGuard('jwt')) + public async updateMarketData( + @Body() data: UpdateBulkMarketDataDto, + @Param('dataSource') dataSource: DataSource, + @Param('symbol') symbol: string + ) { + if ( + !hasPermission( + this.request.user.permissions, + permissions.accessAdminControl + ) + ) { + throw new HttpException( + getReasonPhrase(StatusCodes.FORBIDDEN), + StatusCodes.FORBIDDEN + ); + } + + const dataBulkUpdate: Prisma.MarketDataUpdateInput[] = data.marketData.map( + ({ date, marketPrice }) => ({ + dataSource, + date, + marketPrice, + symbol, + state: 'CLOSE' + }) + ); + + return this.marketDataService.updateMany({ + data: dataBulkUpdate + }); + } + + /** + * @deprecated + */ @Put('market-data/:dataSource/:symbol/:dateString') @UseGuards(AuthGuard('jwt')) public async update( diff --git a/apps/api/src/app/admin/admin.module.ts b/apps/api/src/app/admin/admin.module.ts index 500af69db..079af87fa 100644 --- a/apps/api/src/app/admin/admin.module.ts +++ b/apps/api/src/app/admin/admin.module.ts @@ -1,4 +1,5 @@ import { SubscriptionModule } from '@ghostfolio/api/app/subscription/subscription.module'; +import { ApiModule } from '@ghostfolio/api/services/api/api.module'; import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module'; import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering/data-gathering.module'; import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module'; @@ -15,6 +16,7 @@ import { QueueModule } from './queue/queue.module'; @Module({ imports: [ + ApiModule, ConfigurationModule, DataGatheringModule, DataProviderModule, diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 80d7c8add..b667c770c 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -139,10 +139,14 @@ export class AdminService { filters = [{ id: 'ETF', type: 'ASSET_SUB_CLASS' }]; } + const searchQuery = filters.find(({ type }) => { + return type === 'SEARCH_QUERY'; + })?.id; + const { ASSET_SUB_CLASS: filtersByAssetSubClass } = groupBy( filters, - (filter) => { - return filter.type; + ({ type }) => { + return type; } ); @@ -155,6 +159,14 @@ export class AdminService { where.assetSubClass = AssetSubClass[filtersByAssetSubClass[0].id]; } + if (searchQuery) { + where.OR = [ + { isin: { mode: 'insensitive', startsWith: searchQuery } }, + { name: { mode: 'insensitive', startsWith: searchQuery } }, + { symbol: { mode: 'insensitive', startsWith: searchQuery } } + ]; + } + if (sortColumn) { orderBy = [{ [sortColumn]: sortDirection }]; @@ -181,7 +193,9 @@ export class AdminService { assetSubClass: true, comment: true, countries: true, + currency: true, dataSource: true, + name: true, Order: { orderBy: [{ date: 'asc' }], select: { date: true }, @@ -202,7 +216,9 @@ export class AdminService { assetSubClass, comment, countries, + currency, dataSource, + name, Order, sectors, symbol @@ -221,8 +237,10 @@ export class AdminService { assetClass, assetSubClass, comment, + currency, countriesCount, dataSource, + name, symbol, marketDataItemCount, sectorsCount, @@ -349,6 +367,8 @@ export class AdminService { symbol, assetClass: 'CASH', countriesCount: 0, + currency: symbol.replace(DEFAULT_CURRENCY, ''), + name: symbol, sectorsCount: 0 }; }); diff --git a/apps/api/src/app/admin/update-bulk-market-data.dto.ts b/apps/api/src/app/admin/update-bulk-market-data.dto.ts new file mode 100644 index 000000000..5177263a6 --- /dev/null +++ b/apps/api/src/app/admin/update-bulk-market-data.dto.ts @@ -0,0 +1,11 @@ +import { Type } from 'class-transformer'; +import { ArrayNotEmpty, IsArray, isNotEmptyObject } from 'class-validator'; + +import { UpdateMarketDataDto } from './update-market-data.dto'; + +export class UpdateBulkMarketDataDto { + @ArrayNotEmpty() + @IsArray() + @Type(() => UpdateMarketDataDto) + marketData: UpdateMarketDataDto[]; +} diff --git a/apps/api/src/app/admin/update-market-data.dto.ts b/apps/api/src/app/admin/update-market-data.dto.ts index 79779a318..c0463de31 100644 --- a/apps/api/src/app/admin/update-market-data.dto.ts +++ b/apps/api/src/app/admin/update-market-data.dto.ts @@ -1,6 +1,10 @@ -import { IsNumber } from 'class-validator'; +import { IsDate, IsNumber, IsOptional } from 'class-validator'; export class UpdateMarketDataDto { + @IsDate() + @IsOptional() + date?: Date; + @IsNumber() marketPrice: number; } diff --git a/apps/api/src/app/auth/web-auth.service.ts b/apps/api/src/app/auth/web-auth.service.ts index 471b77709..8d5c91a74 100644 --- a/apps/api/src/app/auth/web-auth.service.ts +++ b/apps/api/src/app/auth/web-auth.service.ts @@ -64,7 +64,7 @@ export class WebAuthService { } }; - const options = generateRegistrationOptions(opts); + const options = await generateRegistrationOptions(opts); await this.userService.updateUser({ data: { @@ -88,10 +88,16 @@ export class WebAuthService { let verification: VerifiedRegistrationResponse; try { const opts: VerifyRegistrationResponseOpts = { - credential, expectedChallenge, expectedOrigin: this.expectedOrigin, - expectedRPID: this.rpID + expectedRPID: this.rpID, + response: { + clientExtensionResults: credential.clientExtensionResults, + id: credential.id, + rawId: credential.rawId, + response: credential.response, + type: 'public-key' + } }; verification = await verifyRegistrationResponse(opts); } catch (error) { @@ -117,8 +123,8 @@ export class WebAuthService { */ existingDevice = await this.deviceService.createAuthDevice({ counter, - credentialPublicKey, - credentialId: credentialID, + credentialId: Buffer.from(credentialID), + credentialPublicKey: Buffer.from(credentialPublicKey), User: { connect: { id: user.id } } }); } @@ -152,7 +158,7 @@ export class WebAuthService { userVerification: 'preferred' }; - const options = generateAuthenticationOptions(opts); + const options = await generateAuthenticationOptions(opts); await this.userService.updateUser({ data: { @@ -181,7 +187,6 @@ export class WebAuthService { let verification: VerifiedAuthenticationResponse; try { const opts: VerifyAuthenticationResponseOpts = { - credential, authenticator: { credentialID: device.credentialId, credentialPublicKey: device.credentialPublicKey, @@ -189,9 +194,16 @@ export class WebAuthService { }, expectedChallenge: `${user.authChallenge}`, expectedOrigin: this.expectedOrigin, - expectedRPID: this.rpID + expectedRPID: this.rpID, + response: { + clientExtensionResults: credential.clientExtensionResults, + id: credential.id, + rawId: credential.rawId, + response: credential.response, + type: 'public-key' + } }; - verification = verifyAuthenticationResponse(opts); + verification = await verifyAuthenticationResponse(opts); } catch (error) { Logger.error(error, 'WebAuthService'); throw new InternalServerErrorException({ error: error.message }); diff --git a/apps/api/src/app/benchmark/benchmark.service.ts b/apps/api/src/app/benchmark/benchmark.service.ts index 7fe1911a4..2547e57cc 100644 --- a/apps/api/src/app/benchmark/benchmark.service.ts +++ b/apps/api/src/app/benchmark/benchmark.service.ts @@ -64,7 +64,7 @@ export class BenchmarkService { const benchmarkAssetProfiles = await this.getBenchmarkAssetProfiles(); - const promises: Promise[] = []; + const promises: Promise<{ date: Date; marketPrice: number }>[] = []; const quotes = await this.dataProviderService.getQuotes({ items: benchmarkAssetProfiles.map(({ dataSource, symbol }) => { @@ -85,15 +85,14 @@ export class BenchmarkService { let performancePercentFromAllTimeHigh = 0; - if (allTimeHigh && marketPrice) { + if (allTimeHigh?.marketPrice && marketPrice) { performancePercentFromAllTimeHigh = this.calculateChangeInPercentage( - allTimeHigh, + allTimeHigh.marketPrice, marketPrice ); } else { storeInCache = false; } - return { marketCondition: this.getMarketCondition( performancePercentFromAllTimeHigh @@ -101,6 +100,7 @@ export class BenchmarkService { name: benchmarkAssetProfiles[index].name, performances: { allTimeHigh: { + date: allTimeHigh.date, performancePercent: performancePercentFromAllTimeHigh } } diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index f2c45a72b..4fc4aec4e 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -55,12 +55,8 @@ export class InfoService { public async get(): Promise { const info: Partial = {}; let isReadOnlyMode: boolean; - const platforms = ( - await this.platformService.getPlatforms({ - orderBy: { name: 'asc' } - }) - ).map(({ id, name }) => { - return { id, name }; + const platforms = await this.platformService.getPlatforms({ + orderBy: { name: 'asc' } }); let systemMessage: string; diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index ff3161280..6e42b1304 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -391,12 +391,14 @@ export class PortfolioController { @Headers(HEADER_KEY_IMPERSONATION.toLowerCase()) impersonationId: string, @Query('accounts') filterByAccounts?: string, @Query('assetClasses') filterByAssetClasses?: string, + @Query('query') filterBySearchQuery?: string, @Query('range') dateRange: DateRange = 'max', @Query('tags') filterByTags?: string ): Promise { const filters = this.apiService.buildFiltersFromQueryParams({ filterByAccounts, filterByAssetClasses, + filterBySearchQuery, filterByTags }); diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index b9d6cef1b..fcd2cb13c 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1014,6 +1014,9 @@ export class PortfolioService { filters?: Filter[]; impersonationId: string; }): Promise<{ hasErrors: boolean; positions: Position[] }> { + const searchQuery = filters.find(({ type }) => { + return type === 'SEARCH_QUERY'; + })?.id; const userId = await this.getUserId(impersonationId, this.request.user.id); const { portfolioOrders, transactionPoints } = @@ -1042,9 +1045,9 @@ export class PortfolioService { const currentPositions = await portfolioCalculator.getCurrentPositions(startDate); - const positions = currentPositions.positions.filter( - (item) => !item.quantity.eq(0) - ); + let positions = currentPositions.positions.filter(({ quantity }) => { + return !quantity.eq(0); + }); const dataGatheringItems = positions.map(({ dataSource, symbol }) => { return { @@ -1067,12 +1070,25 @@ export class PortfolioService { symbolProfileMap[symbolProfile.symbol] = symbolProfile; } + if (searchQuery) { + positions = positions.filter(({ symbol }) => { + const enhancedSymbolProfile = symbolProfileMap[symbol]; + + return ( + enhancedSymbolProfile.isin?.toLowerCase().startsWith(searchQuery) || + enhancedSymbolProfile.name?.toLowerCase().startsWith(searchQuery) || + enhancedSymbolProfile.symbol?.toLowerCase().startsWith(searchQuery) + ); + }); + } + return { hasErrors: currentPositions.hasErrors, positions: positions.map((position) => { return { ...position, assetClass: symbolProfileMap[position.symbol].assetClass, + assetSubClass: symbolProfileMap[position.symbol].assetSubClass, averagePrice: new Big(position.averagePrice).toNumber(), grossPerformance: position.grossPerformance?.toNumber() ?? null, grossPerformancePercentage: diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index a2710bfd5..a176c43f3 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -163,6 +163,13 @@ export class UserService { let currentPermissions = getPermissions(user.role); + if (!(user.Settings.settings as UserSettings).isExperimentalFeatures) { + currentPermissions = without( + currentPermissions, + permissions.accessAssistant + ); + } + if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { user.subscription = this.subscriptionService.getSubscription(Subscription); diff --git a/apps/api/src/services/account-balance/account-balance.service.ts b/apps/api/src/services/account-balance/account-balance.service.ts index 9cd2d31ac..9995bbc3e 100644 --- a/apps/api/src/services/account-balance/account-balance.service.ts +++ b/apps/api/src/services/account-balance/account-balance.service.ts @@ -1,4 +1,5 @@ import { PrismaService } from '@ghostfolio/api/services/prisma/prisma.service'; +import { AccountBalancesResponse } from '@ghostfolio/common/interfaces'; import { Injectable } from '@nestjs/common'; import { AccountBalance, Prisma } from '@prisma/client'; @@ -13,4 +14,29 @@ export class AccountBalanceService { data }); } + + public async getAccountBalances({ + accountId, + userId + }: { + accountId: string; + userId: string; + }): Promise { + const balances = await this.prismaService.accountBalance.findMany({ + orderBy: { + date: 'asc' + }, + select: { + date: true, + id: true, + value: true + }, + where: { + accountId, + userId + } + }); + + return { balances }; + } } diff --git a/apps/api/src/services/api/api.service.ts b/apps/api/src/services/api/api.service.ts index 2a6b1fb06..8ef0df7b3 100644 --- a/apps/api/src/services/api/api.service.ts +++ b/apps/api/src/services/api/api.service.ts @@ -8,14 +8,20 @@ export class ApiService { public buildFiltersFromQueryParams({ filterByAccounts, filterByAssetClasses, + filterByAssetSubClasses, + filterBySearchQuery, filterByTags }: { filterByAccounts?: string; filterByAssetClasses?: string; + filterByAssetSubClasses?: string; + filterBySearchQuery?: string; filterByTags?: string; }): Filter[] { const accountIds = filterByAccounts?.split(',') ?? []; const assetClasses = filterByAssetClasses?.split(',') ?? []; + const assetSubClasses = filterByAssetSubClasses?.split(',') ?? []; + const searchQuery = filterBySearchQuery?.toLowerCase(); const tagIds = filterByTags?.split(',') ?? []; return [ @@ -31,6 +37,16 @@ export class ApiService { type: 'ASSET_CLASS' }; }), + ...assetSubClasses.map((assetClass) => { + return { + id: assetClass, + type: 'ASSET_SUB_CLASS' + }; + }), + { + id: searchQuery, + type: 'SEARCH_QUERY' + }, ...tagIds.map((tagId) => { return { id: tagId, diff --git a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts index 307f6127a..ac2f35c04 100644 --- a/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts +++ b/apps/api/src/services/data-provider/eod-historical-data/eod-historical-data.service.ts @@ -283,7 +283,6 @@ export class EodHistoricalDataService implements DataProviderInterface { if (symbol.endsWith('.FOREX')) { symbol = symbol.replace('GBX', 'GBp'); symbol = symbol.replace('.FOREX', ''); - symbol = `${DEFAULT_CURRENCY}${symbol}`; } return symbol; @@ -292,7 +291,7 @@ export class EodHistoricalDataService implements DataProviderInterface { /** * Converts a symbol to a EOD symbol * - * Currency: USDCHF -> CHF.FOREX + * Currency: USDCHF -> USDCHF.FOREX */ private convertToEodSymbol(aSymbol: string) { if ( @@ -304,9 +303,10 @@ export class EodHistoricalDataService implements DataProviderInterface { aSymbol.substring(0, aSymbol.length - DEFAULT_CURRENCY.length) ) ) { - return `${aSymbol - .replace('GBp', 'GBX') - .replace(DEFAULT_CURRENCY, '')}.FOREX`; + let symbol = aSymbol; + symbol = symbol.replace('GBp', 'GBX'); + + return `${symbol}.FOREX`; } } diff --git a/apps/api/src/services/market-data/market-data.service.ts b/apps/api/src/services/market-data/market-data.service.ts index 414c247aa..5760096bf 100644 --- a/apps/api/src/services/market-data/market-data.service.ts +++ b/apps/api/src/services/market-data/market-data.service.ts @@ -39,18 +39,22 @@ export class MarketDataService { }); } - public async getMax({ dataSource, symbol }: UniqueAsset): Promise { - const aggregations = await this.prismaService.marketData.aggregate({ - _max: { + public async getMax({ dataSource, symbol }: UniqueAsset) { + return this.prismaService.marketData.findFirst({ + select: { + date: true, marketPrice: true }, + orderBy: [ + { + marketPrice: 'desc' + } + ], where: { dataSource, symbol } }); - - return aggregations._max.marketPrice; } public async getRange({ diff --git a/apps/client/project.json b/apps/client/project.json index 2e36f7144..0d2e589dc 100644 --- a/apps/client/project.json +++ b/apps/client/project.json @@ -124,6 +124,9 @@ { "command": "shx cp apps/client/src/assets/site.webmanifest dist/apps/client" }, + { + "command": "shx cp -r apps/client/src/locales dist/apps/api/assets" + }, { "command": "shx cp node_modules/ionicons/dist/index.js dist/apps/client" }, diff --git a/apps/client/src/app/app.component.html b/apps/client/src/app/app.component.html index 76ccd3ed4..a52261969 100644 --- a/apps/client/src/app/app.component.html +++ b/apps/client/src/app/app.component.html @@ -32,6 +32,7 @@ - - Add Access - - - diff --git a/apps/client/src/app/components/access-table/access-table.component.ts b/apps/client/src/app/components/access-table/access-table.component.ts index 298a02069..c0db8fb2f 100644 --- a/apps/client/src/app/components/access-table/access-table.component.ts +++ b/apps/client/src/app/components/access-table/access-table.component.ts @@ -19,7 +19,6 @@ import { Access } from '@ghostfolio/common/interfaces'; }) export class AccessTableComponent implements OnChanges, OnInit { @Input() accesses: Access[]; - @Input() hasPermissionToCreateAccess = false; @Input() showActions: boolean; @Output() accessDeleted = new EventEmitter(); diff --git a/apps/client/src/app/components/accounts-table/accounts-table.component.html b/apps/client/src/app/components/accounts-table/accounts-table.component.html index 664694735..bfe5a667a 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.component.html +++ b/apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -1,4 +1,4 @@ -
+
Alias
- - - - - - - - - - - + + + - - diff --git a/libs/ui/src/lib/benchmark/benchmark.component.ts b/libs/ui/src/lib/benchmark/benchmark.component.ts index a5c117c24..b9f1dd25b 100644 --- a/libs/ui/src/lib/benchmark/benchmark.component.ts +++ b/libs/ui/src/lib/benchmark/benchmark.component.ts @@ -18,7 +18,7 @@ export class BenchmarkComponent implements OnChanges { @Input() benchmarks: Benchmark[]; @Input() locale: string; - public displayedColumns = ['name', 'change', 'marketCondition']; + public displayedColumns = ['name', 'date', 'change', 'marketCondition']; public resolveMarketCondition = resolveMarketCondition; public constructor() {} diff --git a/package.json b/package.json index 2e2f81186..5bc51418d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.8.0", + "version": "2.11.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", @@ -81,9 +81,9 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "5.3.1", - "@simplewebauthn/browser": "5.2.1", - "@simplewebauthn/server": "5.2.1", + "@prisma/client": "5.4.2", + "@simplewebauthn/browser": "8.3.1", + "@simplewebauthn/server": "8.3.2", "@stripe/stripe-js": "1.47.0", "alphavantage": "2.2.0", "big.js": "6.2.1", @@ -122,7 +122,7 @@ "passport": "0.6.0", "passport-google-oauth20": "2.0.0", "passport-jwt": "4.0.0", - "prisma": "5.3.1", + "prisma": "5.4.2", "reflect-metadata": "0.1.13", "rxjs": "7.5.6", "stripe": "11.12.0", @@ -157,7 +157,7 @@ "@nx/web": "16.7.4", "@nx/workspace": "16.7.4", "@schematics/angular": "16.2.0", - "@simplewebauthn/typescript-types": "5.2.1", + "@simplewebauthn/typescript-types": "8.0.0", "@storybook/addon-essentials": "7.3.2", "@storybook/angular": "7.3.2", "@storybook/core-server": "7.3.2", diff --git a/test/import/ok.csv b/test/import/ok.csv index 9f1f1c768..8be69ee90 100644 --- a/test/import/ok.csv +++ b/test/import/ok.csv @@ -1,5 +1,6 @@ -Date,Code,Currency,Price,Quantity,Action,Fee,Note -16-09-2021,MSFT,USD,298.580,5,buy,19.00,My first order 🤓 -17/11/2021,MSFT,USD,0.62,5,dividend,0.00 -01.01.2022,Penthouse Apartment,USD,500000.0,1,item,0.00 -20500606,MSFT,USD,0.00,0,buy,0.00 +Date,Code,DataSource,Currency,Price,Quantity,Action,Fee,Note +01-09-2021,Account Opening Fee,MANUAL,USD,0,0,fee,49, +16-09-2021,MSFT,YAHOO,USD,298.580,5,buy,19.00,My first order 🤓 +17/11/2021,MSFT,YAHOO,USD,0.62,5,dividend,0.00 +01.01.2022,Penthouse Apartment,MANUAL,USD,500000.0,1,item,0.00 +20500606,MSFT,YAHOO,USD,0.00,0,buy,0.00 diff --git a/yarn.lock b/yarn.lock index 69f995b5d..3c798bb15 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1819,6 +1819,36 @@ resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz#6110f918d273fe2af8ea1c4398a88774bb9fc12f" integrity sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg== +"@cbor-extract/cbor-extract-darwin-arm64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.1.1.tgz#5721f6dd3feae0b96d23122853ce977e0671b7a6" + integrity sha512-blVBy5MXz6m36Vx0DfLd7PChOQKEs8lK2bD1WJn/vVgG4FXZiZmZb2GECHFvVPA5T7OnODd9xZiL3nMCv6QUhA== + +"@cbor-extract/cbor-extract-darwin-x64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.1.1.tgz#c25e7d0133950d87d101d7b3afafea8d50d83f5f" + integrity sha512-h6KFOzqk8jXTvkOftyRIWGrd7sKQzQv2jVdTL9nKSf3D2drCvQB/LHUxAOpPXo3pv2clDtKs3xnHalpEh3rDsw== + +"@cbor-extract/cbor-extract-linux-arm64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.1.1.tgz#48f78e7d8f0fcc84ed074b6bfa6d15dd83187c63" + integrity sha512-SxAaRcYf8S0QHaMc7gvRSiTSr7nUYMqbUdErBEu+HYA4Q6UNydx1VwFE68hGcp1qvxcy9yT5U7gA+a5XikfwSQ== + +"@cbor-extract/cbor-extract-linux-arm@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.1.1.tgz#7507d346389cb682e44fab8fae9534edd52e2e41" + integrity sha512-ds0uikdcIGUjPyraV4oJqyVE5gl/qYBpa/Wnh6l6xLE2lj/hwnjT2XcZCChdXwW/YFZ1LUHs6waoYN8PmK0nKQ== + +"@cbor-extract/cbor-extract-linux-x64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.1.1.tgz#b7c1d2be61c58ec18d58afbad52411ded63cd4cd" + integrity sha512-GVK+8fNIE9lJQHAlhOROYiI0Yd4bAZ4u++C2ZjlkS3YmO6hi+FUxe6Dqm+OKWTcMpL/l71N6CQAmaRcb4zyJuA== + +"@cbor-extract/cbor-extract-win32-x64@2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.1.1.tgz#21b11a1a3f18c3e7d62fd5f87438b7ed2c64c1f7" + integrity sha512-2Niq1C41dCRIDeD8LddiH+mxGlO7HJ612Ll3D/E73ZWBmycued+8ghTr/Ho3CMOWPUEr08XtyBMVXAjqF+TcKw== + "@codewithdan/observable-store@2.2.15": version "2.2.15" resolved "https://registry.yarnpkg.com/@codewithdan/observable-store/-/observable-store-2.2.15.tgz#6d27e0988e182853def59a714b712f4389e558d2" @@ -2540,6 +2570,11 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.1.tgz#1a5b1959a528e374e8037c4396c3e825d6cf4a83" integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw== +"@hexagon/base64@^1.1.27": + version "1.1.28" + resolved "https://registry.yarnpkg.com/@hexagon/base64/-/base64-1.1.28.tgz#7d306a97f1423829be5b27c9d388fe50e3099d48" + integrity sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw== + "@humanwhocodes/config-array@^0.11.8": version "0.11.10" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" @@ -4252,7 +4287,7 @@ node-addon-api "^3.2.1" node-gyp-build "^4.3.0" -"@peculiar/asn1-android@^2.1.7": +"@peculiar/asn1-android@^2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@peculiar/asn1-android/-/asn1-android-2.3.6.tgz#20363c23bc5b9a91f7ffd80d7c3842dccff8c20b" integrity sha512-zkYh4DsiRhiNfg6tWaUuRc+huwlb9XJbmeZLrjTz9v76UK1Ehq3EnfJFED6P3sdznW/nqWe46LoM9JrqxcD58g== @@ -4261,7 +4296,27 @@ asn1js "^3.0.5" tslib "^2.4.0" -"@peculiar/asn1-schema@^2.1.7", "@peculiar/asn1-schema@^2.3.6": +"@peculiar/asn1-ecc@^2.3.6": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-ecc/-/asn1-ecc-2.3.6.tgz#f155f33f5c61df463d9b33b911d25578a19694b7" + integrity sha512-Hu1xzMJQWv8/GvzOiinaE6XiD1/kEhq2C/V89UEoWeZ2fLUcGNIvMxOr/pMyL0OmpRWj/mhCTXOZp4PP+a0aTg== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/asn1-x509" "^2.3.6" + asn1js "^3.0.5" + tslib "^2.4.0" + +"@peculiar/asn1-rsa@^2.3.6": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-rsa/-/asn1-rsa-2.3.6.tgz#e2af2c52a914c60f33853a86a48905ec555b29c2" + integrity sha512-DswjJyAXZnvESuImGNTvbNKvh1XApBVqU+r3UmrFFTAI23gv62byl0f5OFKWTNhCf66WQrd3sklpsCZc/4+jwA== + dependencies: + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/asn1-x509" "^2.3.6" + asn1js "^3.0.5" + tslib "^2.4.0" + +"@peculiar/asn1-schema@^2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== @@ -4270,7 +4325,7 @@ pvtsutils "^1.3.2" tslib "^2.4.0" -"@peculiar/asn1-x509@^2.1.7": +"@peculiar/asn1-x509@^2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.3.6.tgz#e50154a460cdf43da8a41b23ee807a53e0036af0" integrity sha512-dRwX31R1lcbIdzbztiMvLNTDoGptxdV7HocNx87LfKU0fEWh7fTWJjx4oV+glETSy6heF/hJHB2J4RGB3vVSYg== @@ -4293,22 +4348,22 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@prisma/client@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.3.1.tgz#fc7fc2d91e814cc4fe18a4bc5e78bf851c26985e" - integrity sha512-ArOKjHwdFZIe1cGU56oIfy7wRuTn0FfZjGuU/AjgEBOQh+4rDkB6nF+AGHP8KaVpkBIiHGPQh3IpwQ3xDMdO0Q== +"@prisma/client@5.4.2": + version "5.4.2" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.4.2.tgz#786f9c1d8f06d955933004ac638d14da4bf14025" + integrity sha512-2xsPaz4EaMKj1WS9iW6MlPhmbqtBsXAOeVttSePp8vTFTtvzh2hZbDgswwBdSCgPzmmwF+tLB259QzggvCmJqA== dependencies: - "@prisma/engines-version" "5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59" + "@prisma/engines-version" "5.4.1-2.ac9d7041ed77bcc8a8dbd2ab6616b39013829574" -"@prisma/engines-version@5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59": - version "5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.3.1-2.61e140623197a131c2a6189271ffee05a7aa9a59.tgz#7eb6f5c6b7628b8b39df55c903f411528a6f761c" - integrity sha512-y5qbUi3ql2Xg7XraqcXEdMHh0MocBfnBzDn5GbV1xk23S3Mq8MGs+VjacTNiBh3dtEdUERCrUUG7Z3QaJ+h79w== +"@prisma/engines-version@5.4.1-2.ac9d7041ed77bcc8a8dbd2ab6616b39013829574": + version "5.4.1-2.ac9d7041ed77bcc8a8dbd2ab6616b39013829574" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.4.1-2.ac9d7041ed77bcc8a8dbd2ab6616b39013829574.tgz#ff14f2926890edee47e8f1d08df7b4f392ee34bf" + integrity sha512-wvupDL4AA1vf4TQNANg7kR7y98ITqPsk6aacfBxZKtrJKRIsWjURHkZCGcQliHdqCiW/hGreO6d6ZuSv9MhdAA== -"@prisma/engines@5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.3.1.tgz#53cc72a5ed176dc27d22305fe5569c64cc78b381" - integrity sha512-6QkILNyfeeN67BNEPEtkgh3Xo2tm6D7V+UhrkBbRHqKw9CTaz/vvTP/ROwYSP/3JT2MtIutZm/EnhxUiuOPVDA== +"@prisma/engines@5.4.2": + version "5.4.2" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.4.2.tgz#ba2b7faeb227c76e423e88f962afe6a031319f3f" + integrity sha512-fqeucJ3LH0e1eyFdT0zRx+oETLancu5+n4lhiYECyEz6H2RDskPJHJYHkVc0LhkU4Uv7fuEnppKU3nVKNzMh8g== "@radix-ui/number@1.0.1": version "1.0.1" @@ -4638,38 +4693,32 @@ "@sigstore/protobuf-specs" "^0.1.0" tuf-js "^1.1.7" -"@simplewebauthn/browser@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@simplewebauthn/browser/-/browser-5.2.1.tgz#569252a9f235a99aae90c4d1cc6c441f42637b8e" - integrity sha512-TxL3OPHJf57hmnfQoF3zRIQWEdsJLxrA9NcGdRK0sB/h3jd13kpGQonBtMnj4YBQnWTtRDZ804wlpI9IEMaJ9g== - -"@simplewebauthn/server@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@simplewebauthn/server/-/server-5.2.1.tgz#49038d2951ad2ac065bdf8342fdb13f78ee4df1c" - integrity sha512-+CQ8oJf9Io8y4ReYLagX5JG9ShntIkdeCPkMoyHLBSRPlNY0N/Yv3Iun4YPQ8d4LJUU9f8S1eD5bibIEMjWDRg== - dependencies: - "@peculiar/asn1-android" "^2.1.7" - "@peculiar/asn1-schema" "^2.1.7" - "@peculiar/asn1-x509" "^2.1.7" - "@simplewebauthn/typescript-types" "^5.2.1" - base64url "^3.0.1" - cbor "^5.1.0" - debug "^4.3.2" - elliptic "^6.5.3" - jsrsasign "^10.4.0" - jwk-to-pem "^2.0.4" - node-fetch "^2.6.0" - node-rsa "^1.1.1" +"@simplewebauthn/browser@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@simplewebauthn/browser/-/browser-8.3.1.tgz#f5c1aed6313d61944a9e13f16ae4495750bddf93" + integrity sha512-bMW7oOkxX4ydRAkkPtJ1do2k9yOoIGc/hZYebcuEOVdJoC6wwVpu97mYY7Mz8B9hLlcaR5WFgBsLl5tSJVzm8A== + dependencies: + "@simplewebauthn/typescript-types" "^8.0.0" -"@simplewebauthn/typescript-types@5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@simplewebauthn/typescript-types/-/typescript-types-5.2.1.tgz#a8229ce4f71be7edafe3bfdce062b332ef494f0d" - integrity sha512-t/NzbjaD0zu4ivUmiof2cPA8X5LHhFX+DflBBl71/dzEhl15qepDI2rxWdjB+Hc0FfOT1fBQnb1uP19fPcDUiA== +"@simplewebauthn/server@8.3.2": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@simplewebauthn/server/-/server-8.3.2.tgz#dfdbe7af4c1258e786c4a0b1c83c54743ba7568c" + integrity sha512-ceo8t5gdO5W/JOePQWPDH+rAd8tO6QNalLU56rc9ItdzaTjk+qcYwQg/BKXDDg6117P3HKrRBkZwBrMJl4dOdA== + dependencies: + "@hexagon/base64" "^1.1.27" + "@peculiar/asn1-android" "^2.3.6" + "@peculiar/asn1-ecc" "^2.3.6" + "@peculiar/asn1-rsa" "^2.3.6" + "@peculiar/asn1-schema" "^2.3.6" + "@peculiar/asn1-x509" "^2.3.6" + "@simplewebauthn/typescript-types" "^8.0.0" + cbor-x "^1.5.2" + cross-fetch "^4.0.0" -"@simplewebauthn/typescript-types@^5.2.1": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@simplewebauthn/typescript-types/-/typescript-types-5.4.0.tgz#533b28e7cabcc092396ecd07bbb953b71e7696b6" - integrity sha512-LeJq6Jx+o7D6iIlCy8CH5jCjwVcUvAReEo66VcF3nysfc/yKW5yCAPLSRmPITF4CRZTfnVPxUBUcveUQL6aBMA== +"@simplewebauthn/typescript-types@8.0.0", "@simplewebauthn/typescript-types@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@simplewebauthn/typescript-types/-/typescript-types-8.0.0.tgz#1698a7228aba880c5c1deba1f13a4f9fd8851cb3" + integrity sha512-d7Izb2H+LZJteXMkS8DmpAarD6mZdpIOu/av/yH4/u/3Pd6DKFLyBM3j8BMmUvUqpzvJvHARNrRfQYto58mtTQ== "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -7122,17 +7171,7 @@ arrify@^2.0.0: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asn1.js@^5.3.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@^0.2.4, asn1@~0.2.3: +asn1@~0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== @@ -7461,7 +7500,7 @@ base64-js@^1.2.0, base64-js@^1.3.0, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64url@3.x.x, base64url@^3.0.1: +base64url@3.x.x: version "3.0.1" resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== @@ -7527,7 +7566,7 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bignumber.js@^9.0.0, bignumber.js@^9.0.1: +bignumber.js@^9.0.0: version "9.1.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== @@ -7556,11 +7595,6 @@ bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - body-parser@1.20.1: version "1.20.1" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" @@ -7689,11 +7723,6 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - browser-assert@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/browser-assert/-/browser-assert-1.2.1.tgz#9aaa5a2a8c74685c2ae05bfe46efd606f068c200" @@ -7953,13 +7982,26 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -cbor@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" - integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== +cbor-extract@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cbor-extract/-/cbor-extract-2.1.1.tgz#f154b31529fdb6b7c70fb3ca448f44eda96a1b42" + integrity sha512-1UX977+L+zOJHsp0mWFG13GLwO6ucKgSmSW6JTl8B9GUvACvHeIVpFqhU92299Z6PfD09aTXDell5p+lp1rUFA== dependencies: - bignumber.js "^9.0.1" - nofilter "^1.0.4" + node-gyp-build-optional-packages "5.0.3" + optionalDependencies: + "@cbor-extract/cbor-extract-darwin-arm64" "2.1.1" + "@cbor-extract/cbor-extract-darwin-x64" "2.1.1" + "@cbor-extract/cbor-extract-linux-arm" "2.1.1" + "@cbor-extract/cbor-extract-linux-arm64" "2.1.1" + "@cbor-extract/cbor-extract-linux-x64" "2.1.1" + "@cbor-extract/cbor-extract-win32-x64" "2.1.1" + +cbor-x@^1.5.2: + version "1.5.4" + resolved "https://registry.yarnpkg.com/cbor-x/-/cbor-x-1.5.4.tgz#8f0754fa8589cbd7339b613b2b5717d133508e98" + integrity sha512-PVKILDn+Rf6MRhhcyzGXi5eizn1i0i3F8Fe6UMMxXBnWkalq9+C5+VTmlIjAYM4iF2IYF2N+zToqAfYOp+3rfw== + optionalDependencies: + cbor-extract "^2.1.1" chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" @@ -8691,6 +8733,13 @@ cross-fetch@^3.0.5: dependencies: node-fetch "^2.6.12" +cross-fetch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== + dependencies: + node-fetch "^2.6.12" + cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -9741,19 +9790,6 @@ elkjs@^0.8.2: resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e" integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ== -elliptic@^6.5.3, elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - emittery@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" @@ -11673,14 +11709,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - hdr-histogram-js@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz#0b860534655722b6e3f3e7dca7b78867cf43dcb5" @@ -11710,15 +11738,6 @@ helmet@7.0.0: resolved "https://registry.yarnpkg.com/helmet/-/helmet-7.0.0.tgz#ac3011ba82fa2467f58075afa58a49427ba6212d" integrity sha512-MsIgYmdBh460ZZ8cJC81q4XJknjG567wzEmv46WOBblDb6TUd3z8/GhgmsM9pn8g2B80tAJ4m5/d3Bi1KrSUBQ== -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -13490,11 +13509,6 @@ jsprim@^2.0.2: json-schema "0.4.0" verror "1.10.0" -jsrsasign@^10.4.0: - version "10.8.6" - resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-10.8.6.tgz#ebf7f3c812c6517af84f0d8a10115e0dbfabe145" - integrity sha512-bQmbVtsfbgaKBTWCKiDCPlUPbdlRIK/FzSwT3BzIgZl/cU6TqXu6pZJsCI/dJVrZ9Gir5GC4woqw9shH/v7MBw== - jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -13513,15 +13527,6 @@ jwa@^2.0.0: ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jwk-to-pem@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/jwk-to-pem/-/jwk-to-pem-2.0.5.tgz#151310bcfbcf731adc5ad9f379cbc8b395742906" - integrity sha512-L90jwellhO8jRKYwbssU9ifaMVqajzj3fpRjDKcsDzrslU9syRbFqfkXtT4B89HYAap+xsxNcxgBSB09ig+a7A== - dependencies: - asn1.js "^5.3.0" - elliptic "^6.5.4" - safe-buffer "^5.0.1" - jws@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" @@ -14226,16 +14231,11 @@ mini-css-extract-plugin@~2.4.7: dependencies: schema-utils "^4.0.0" -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: +minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - minimatch@3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" @@ -14600,7 +14600,7 @@ node-fetch-native@^1.0.2: resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.2.0.tgz#13ec6df98f33168958dbfb6945f10aedf42e7ea8" integrity sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ== -node-fetch@^2.0.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: +node-fetch@^2.0.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.6.12" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== @@ -14612,6 +14612,11 @@ node-forge@^1, node-forge@^1.3.1: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== +node-gyp-build-optional-packages@5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz#92a89d400352c44ad3975010368072b41ad66c17" + integrity sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA== + node-gyp-build-optional-packages@5.0.7: version "5.0.7" resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3" @@ -14654,18 +14659,6 @@ node-releases@^2.0.12: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== -node-rsa@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/node-rsa/-/node-rsa-1.1.1.tgz#efd9ad382097782f506153398496f79e4464434d" - integrity sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw== - dependencies: - asn1 "^0.2.4" - -nofilter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" - integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== - non-layered-tidy-tree-layout@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" @@ -15918,12 +15911,12 @@ pretty-hrtime@^1.0.3: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== -prisma@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.3.1.tgz#a0932c1c1a5ed4ff449d064b193d9c7e94e8bf77" - integrity sha512-Wp2msQIlMPHe+5k5Od6xnsI/WNG7UJGgFUJgqv/ygc7kOECZapcSz/iU4NIEzISs3H1W9sFLjAPbg/gOqqtB7A== +prisma@5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.4.2.tgz#7eac9276439ec7073ec697c6c0dfa259d96e955e" + integrity sha512-GDMZwZy7mysB2oXU+angQqJ90iaPFdD0rHaZNkn+dio5NRkGLmMqmXs31//tg/qXT3iB0cTQwnGGQNuirhSTZg== dependencies: - "@prisma/engines" "5.3.1" + "@prisma/engines" "5.4.2" prismjs@^1.28.0: version "1.29.0"
#TypeSymbolData SourceAttemptsCreatedFinishedStatus + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + +
+ # + + {{ element.id }} + + Type + + + Asset Profile + + + Historical Market Data + + + Symbol + + {{ element.data?.symbol }} + + Data Source + + {{ element.data?.dataSource }} + + Attempts + + {{ element.attemptsMade }} + + Created + + {{ element.timestamp | date: defaultDateTimeFormat }} + + Finished + + {{ element.finishedOn | date: defaultDateTimeFormat }} + + Status + + + + + + + + + + + + + + + + + - - - - -
{{ job.id }} - - - - Asset Profile - - - Historical Market Data - - - {{ job.data?.symbol }}{{ job.data?.dataSource }} - {{ job.attemptsMade }} - - {{ job.timestamp | date: defaultDateTimeFormat }} - - {{ job.finishedOn | date: defaultDateTimeFormat }} - - - - - - - - - - - - - - -
diff --git a/apps/client/src/app/components/admin-jobs/admin-jobs.module.ts b/apps/client/src/app/components/admin-jobs/admin-jobs.module.ts index 93e668097..fe717b904 100644 --- a/apps/client/src/app/components/admin-jobs/admin-jobs.module.ts +++ b/apps/client/src/app/components/admin-jobs/admin-jobs.module.ts @@ -4,6 +4,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; import { MatSelectModule } from '@angular/material/select'; +import { MatTableModule } from '@angular/material/table'; import { AdminJobsComponent } from './admin-jobs.component'; @@ -15,6 +16,7 @@ import { AdminJobsComponent } from './admin-jobs.component'; MatButtonModule, MatMenuModule, MatSelectModule, + MatTableModule, ReactiveFormsModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA] diff --git a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts b/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts index cff078e37..0b3123b5c 100644 --- a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts +++ b/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts @@ -177,7 +177,7 @@ export class AdminMarketDataDetailComponent implements OnChanges, OnInit { dialogRef .afterClosed() .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ withRefresh }) => { + .subscribe(({ withRefresh } = { withRefresh: false }) => { this.marketDataChanged.next(withRefresh); }); } diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts index 7896db655..0ffa77bf0 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts @@ -342,7 +342,7 @@ export class AdminMarketDataComponent dialogRef .afterClosed() .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ dataSource, symbol }) => { + .subscribe(({ dataSource, symbol } = {}) => { if (dataSource && symbol) { this.adminService .addAssetProfile({ dataSource, symbol }) diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.scss b/apps/client/src/app/components/admin-market-data/admin-market-data.scss index 50901445b..b5b58f67e 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.scss +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.scss @@ -2,11 +2,4 @@ :host { display: block; - - .fab-container { - bottom: 2rem; - position: fixed; - right: 2rem; - z-index: 999; - } } diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index 792025e9b..ccb6f3ccd 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -11,12 +11,15 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { DataService } from '@ghostfolio/client/services/data.service'; +import { DATE_FORMAT } from '@ghostfolio/common/helper'; import { AdminMarketDataDetails, UniqueAsset } from '@ghostfolio/common/interfaces'; import { translate } from '@ghostfolio/ui/i18n'; import { MarketData, SymbolProfile } from '@prisma/client'; +import { format, parseISO } from 'date-fns'; +import { parse as csvToJson } from 'papaparse'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -42,12 +45,17 @@ export class AssetProfileDialog implements OnDestroy, OnInit { public countries: { [code: string]: { name: string; value: number }; }; + public historicalDataAsCsvString: string; public isBenchmark = false; public marketDataDetails: MarketData[] = []; public sectors: { [name: string]: { name: string; value: number }; }; + private static readonly HISTORICAL_DATA_TEMPLATE = `date;marketPrice\n${format( + new Date(), + DATE_FORMAT + )};123.45`; private unsubscribeSubject = new Subject(); public constructor( @@ -66,6 +74,9 @@ export class AssetProfileDialog implements OnDestroy, OnInit { } public initialize() { + this.historicalDataAsCsvString = + AssetProfileDialog.HISTORICAL_DATA_TEMPLATE; + this.adminService .fetchAdminMarketDataBySymbol({ dataSource: this.data.dataSource, @@ -134,6 +145,29 @@ export class AssetProfileDialog implements OnDestroy, OnInit { .subscribe(() => {}); } + public onImportHistoricalData() { + const marketData = csvToJson(this.historicalDataAsCsvString, { + dynamicTyping: true, + header: true, + skipEmptyLines: true + }).data; + + this.adminService + .postMarketData({ + dataSource: this.data.dataSource, + marketData: { + marketData: marketData.map(({ date, marketPrice }) => { + return { marketPrice, date: parseISO(date) }; + }) + }, + symbol: this.data.symbol + }) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + this.initialize(); + }); + } + public onMarketDataChanged(withRefresh: boolean = false) { if (withRefresh) { this.initialize(); diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html index 6682d004d..66d00e720 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -51,6 +51,36 @@ [symbol]="data.symbol" (marketDataChanged)="onMarketDataChanged($event)" > + +
+ + + Historical Data (CSV) + + + +
+ +
+ +
+
About +
  • + + + + +
  • + diff --git a/apps/client/src/app/components/user-account-access/user-account-access.html b/apps/client/src/app/components/user-account-access/user-account-access.html index c3aa485cd..392337a83 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.html +++ b/apps/client/src/app/components/user-account-access/user-account-access.html @@ -10,8 +10,18 @@ +
    + + + +
  • diff --git a/apps/client/src/app/components/user-account-access/user-account-access.module.ts b/apps/client/src/app/components/user-account-access/user-account-access.module.ts index 76495db63..0388dd244 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.module.ts +++ b/apps/client/src/app/components/user-account-access/user-account-access.module.ts @@ -7,6 +7,7 @@ import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { GfCreateOrUpdateAccessDialogModule } from './create-or-update-access-dialog/create-or-update-access-dialog.module'; import { UserAccountAccessComponent } from './user-account-access.component'; +import { MatButtonModule } from '@angular/material/button'; @NgModule({ declarations: [UserAccountAccessComponent], @@ -16,6 +17,7 @@ import { UserAccountAccessComponent } from './user-account-access.component'; GfCreateOrUpdateAccessDialogModule, GfPortfolioAccessTableModule, GfPremiumIndicatorModule, + MatButtonModule, MatDialogModule, RouterModule ] diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts index a52812ed3..6fb8d5c15 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -3,10 +3,9 @@ import { ChangeDetectorRef, Component, OnDestroy, - OnInit, - ViewChild + OnInit } from '@angular/core'; -import { MatCheckbox, MatCheckboxChange } from '@angular/material/checkbox'; +import { MatCheckboxChange } from '@angular/material/checkbox'; import { DataService } from '@ghostfolio/client/services/data.service'; import { STAY_SIGNED_IN, @@ -29,14 +28,12 @@ import { catchError, takeUntil } from 'rxjs/operators'; templateUrl: './user-account-settings.html' }) export class UserAccountSettingsComponent implements OnDestroy, OnInit { - @ViewChild('toggleSignInWithFingerprintEnabledElement') - signInWithFingerprintElement: MatCheckbox; - public appearancePlaceholder = $localize`Auto`; public baseCurrency: string; public currencies: string[] = []; public hasPermissionToUpdateViewMode: boolean; public hasPermissionToUpdateUserSettings: boolean; + public isWebAuthnEnabled: boolean; public language = document.documentElement.lang; public locales = [ 'de', @@ -250,9 +247,8 @@ export class UserAccountSettingsComponent implements OnDestroy, OnInit { } private update() { - if (this.signInWithFingerprintElement) { - this.signInWithFingerprintElement.checked = - this.webAuthnService.isEnabled() ?? false; - } + this.isWebAuthnEnabled = this.webAuthnService.isEnabled() ?? false; + + this.changeDetectorRef.markForCheck(); } } diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.html b/apps/client/src/app/components/user-account-settings/user-account-settings.html index 12f3da458..66829d55e 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.html +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -154,8 +154,8 @@
    diff --git a/apps/client/src/app/pages/accounts/accounts-page.component.ts b/apps/client/src/app/pages/accounts/accounts-page.component.ts index 18d5d1e2a..61db47577 100644 --- a/apps/client/src/app/pages/accounts/accounts-page.component.ts +++ b/apps/client/src/app/pages/accounts/accounts-page.component.ts @@ -30,7 +30,7 @@ export class AccountsPageComponent implements OnDestroy, OnInit { public deviceType: string; public hasImpersonationId: boolean; public hasPermissionToCreateAccount: boolean; - public hasPermissionToDeleteAccount: boolean; + public hasPermissionToUpdateAccount: boolean; public routeQueryParams: Subscription; public totalBalanceInBaseCurrency = 0; public totalValueInBaseCurrency = 0; @@ -95,9 +95,9 @@ export class AccountsPageComponent implements OnDestroy, OnInit { this.user.permissions, permissions.createAccount ); - this.hasPermissionToDeleteAccount = hasPermission( + this.hasPermissionToUpdateAccount = hasPermission( this.user.permissions, - permissions.deleteAccount + permissions.updateAccount ); this.changeDetectorRef.markForCheck(); @@ -295,9 +295,16 @@ export class AccountsPageComponent implements OnDestroy, OnInit { const { accountIdFrom, accountIdTo, balance }: TransferBalanceDto = data?.account; - console.log( - `Transfer cash balance of ${balance} from account ${accountIdFrom} to account ${accountIdTo}` - ); + this.dataService + .transferAccountBalance({ + accountIdFrom, + accountIdTo, + balance + }) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + this.fetchAccounts(); + }); } this.router.navigate(['.'], { relativeTo: this.route }); diff --git a/apps/client/src/app/pages/accounts/accounts-page.html b/apps/client/src/app/pages/accounts/accounts-page.html index a7d5901bb..c67323b1a 100644 --- a/apps/client/src/app/pages/accounts/accounts-page.html +++ b/apps/client/src/app/pages/accounts/accounts-page.html @@ -8,7 +8,7 @@ [baseCurrency]="user?.settings?.baseCurrency" [deviceType]="deviceType" [locale]="user?.settings?.locale" - [showActions]="!hasImpersonationId && hasPermissionToDeleteAccount && !user.settings.isRestrictedView" + [showActions]="!hasImpersonationId && hasPermissionToUpdateAccount && !user.settings.isRestrictedView" [totalBalanceInBaseCurrency]="totalBalanceInBaseCurrency" [totalValueInBaseCurrency]="totalValueInBaseCurrency" [transactionCount]="transactionCount" diff --git a/apps/client/src/app/pages/accounts/accounts-page.scss b/apps/client/src/app/pages/accounts/accounts-page.scss index 307bf0f32..32e9fe146 100644 --- a/apps/client/src/app/pages/accounts/accounts-page.scss +++ b/apps/client/src/app/pages/accounts/accounts-page.scss @@ -4,11 +4,4 @@ .accounts { overflow-x: auto; } - - .fab-container { - position: fixed; - right: 2rem; - bottom: 2rem; - z-index: 999; - } } diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts index 3babc14bc..e2c63f191 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts @@ -4,12 +4,20 @@ import { Inject, OnDestroy } from '@angular/core'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { + AbstractControl, + FormBuilder, + FormGroup, + ValidatorFn, + Validators +} from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; import { DataService } from '@ghostfolio/client/services/data.service'; -import { Subject } from 'rxjs'; +import { Platform } from '@prisma/client'; +import { Observable, Subject } from 'rxjs'; +import { map, startWith } from 'rxjs/operators'; import { CreateOrUpdateAccountDialogParams } from './interfaces/interfaces'; @@ -23,7 +31,8 @@ import { CreateOrUpdateAccountDialogParams } from './interfaces/interfaces'; export class CreateOrUpdateAccountDialog implements OnDestroy { public accountForm: FormGroup; public currencies: string[] = []; - public platforms: { id: string; name: string }[]; + public filteredPlatforms: Observable; + public platforms: Platform[]; private unsubscribeSubject = new Subject(); @@ -34,7 +43,7 @@ export class CreateOrUpdateAccountDialog implements OnDestroy { private formBuilder: FormBuilder ) {} - ngOnInit() { + public ngOnInit() { const { currencies, platforms } = this.dataService.fetchInfo(); this.currencies = currencies; @@ -47,8 +56,41 @@ export class CreateOrUpdateAccountDialog implements OnDestroy { currency: [this.data.account.currency, Validators.required], isExcluded: [this.data.account.isExcluded], name: [this.data.account.name, Validators.required], - platformId: [this.data.account.platformId] + platformId: [ + this.platforms.find(({ id }) => { + return id === this.data.account.platformId; + }), + this.autocompleteObjectValidator() + ] }); + + this.filteredPlatforms = this.accountForm + .get('platformId') + .valueChanges.pipe( + startWith(''), + map((value) => { + const name = typeof value === 'string' ? value : value?.name; + return name ? this.filter(name as string) : this.platforms.slice(); + }) + ); + } + + public autoCompleteCheck() { + const inputValue = this.accountForm.controls['platformId'].value; + + if (typeof inputValue === 'string') { + const matchingEntry = this.platforms.find(({ name }) => { + return name === inputValue; + }); + + if (matchingEntry) { + this.accountForm.controls['platformId'].setValue(matchingEntry); + } + } + } + + public displayFn(platform: Platform) { + return platform?.name ?? ''; } public onCancel() { @@ -63,7 +105,7 @@ export class CreateOrUpdateAccountDialog implements OnDestroy { id: this.accountForm.controls['accountId'].value, isExcluded: this.accountForm.controls['isExcluded'].value, name: this.accountForm.controls['name'].value, - platformId: this.accountForm.controls['platformId'].value + platformId: this.accountForm.controls['platformId'].value?.id ?? null }; if (this.data.account.id) { @@ -79,4 +121,22 @@ export class CreateOrUpdateAccountDialog implements OnDestroy { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); } + + private autocompleteObjectValidator(): ValidatorFn { + return (control: AbstractControl) => { + if (control.value && typeof control.value === 'string') { + return { invalidAutocompleteObject: { value: control.value } }; + } + + return null; + }; + } + + private filter(value: string): Platform[] { + const filterValue = value.toLowerCase(); + + return this.platforms.filter(({ name }) => { + return name.toLowerCase().startsWith(filterValue); + }); + } } diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html index 2d068dde1..d44693436 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -36,18 +36,37 @@ type="number" (keydown.enter)="$event.stopPropagation()" /> - {{ data.account.currency }} + {{ accountForm.controls['currency'].value }}
    Platform - - - {{ platform.name }} + + - + + + {{ platformEntry.name }} + + +
    diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts index 528835f9a..0f8b8ecb8 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts @@ -7,6 +7,8 @@ import { MatDialogModule } from '@angular/material/dialog'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatSelectModule } from '@angular/material/select'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; import { CreateOrUpdateAccountDialog } from './create-or-update-account-dialog.component'; @@ -15,6 +17,8 @@ import { CreateOrUpdateAccountDialog } from './create-or-update-account-dialog.c imports: [ CommonModule, FormsModule, + GfSymbolIconModule, + MatAutocompleteModule, MatButtonModule, MatCheckboxModule, MatDialogModule, diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.scss b/apps/client/src/app/pages/portfolio/activities/activities-page.scss index c10640da3..5d4e87f30 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.scss +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.scss @@ -1,10 +1,3 @@ :host { display: block; - - .fab-container { - position: fixed; - right: 2rem; - bottom: 2rem; - z-index: 999; - } } diff --git a/apps/client/src/app/services/admin.service.ts b/apps/client/src/app/services/admin.service.ts index e62641db7..79923a3aa 100644 --- a/apps/client/src/app/services/admin.service.ts +++ b/apps/client/src/app/services/admin.service.ts @@ -1,6 +1,7 @@ import { HttpClient, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; +import { UpdateBulkMarketDataDto } from '@ghostfolio/api/app/admin/update-bulk-market-data.dto'; import { UpdateMarketDataDto } from '@ghostfolio/api/app/admin/update-market-data.dto'; import { CreatePlatformDto } from '@ghostfolio/api/app/platform/create-platform.dto'; import { UpdatePlatformDto } from '@ghostfolio/api/app/platform/update-platform.dto'; @@ -214,6 +215,20 @@ export class AdminService { ); } + public postMarketData({ + dataSource, + marketData, + symbol + }: { + dataSource: DataSource; + marketData: UpdateBulkMarketDataDto; + symbol: string; + }) { + const url = `/api/v1/admin/market-data/${dataSource}/${symbol}`; + + return this.http.post(url, marketData); + } + public postPlatform(aPlatform: CreatePlatformDto) { return this.http.post(`/api/v1/platform`, aPlatform); } diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index 62845eda1..f5cafb57a 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -2,6 +2,7 @@ import { HttpClient, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { CreateAccessDto } from '@ghostfolio/api/app/access/create-access.dto'; import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; +import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { Activities } from '@ghostfolio/api/app/order/interfaces/activities.interface'; @@ -57,6 +58,7 @@ export class DataService { ASSET_CLASS: filtersByAssetClass, ASSET_SUB_CLASS: filtersByAssetSubClass, PRESET_ID: filtersByPresetId, + SEARCH_QUERY: filtersBySearchQuery, TAG: filtersByTag } = groupBy(filters, (filter) => { return filter.type; @@ -99,6 +101,10 @@ export class DataService { params = params.append('presetId', filtersByPresetId[0].id); } + if (filtersBySearchQuery) { + params = params.append('query', filtersBySearchQuery[0].id); + } + if (filtersByTag) { params = params.append( 'tags', @@ -500,6 +506,18 @@ export class DataService { }); } + public transferAccountBalance({ + accountIdFrom, + accountIdTo, + balance + }: TransferBalanceDto) { + return this.http.post('/api/v1/account/transfer-balance', { + accountIdFrom, + accountIdTo, + balance + }); + } + public updateInfo() { this.http.get('/api/v1/info').subscribe((info) => { const utmSource = <'ios' | 'trusted-web-activity'>( diff --git a/apps/client/src/app/services/import-activities.service.ts b/apps/client/src/app/services/import-activities.service.ts index 0a58e3cdd..760871922 100644 --- a/apps/client/src/app/services/import-activities.service.ts +++ b/apps/client/src/app/services/import-activities.service.ts @@ -337,6 +337,10 @@ export class ImportActivitiesService { return Type.BUY; case 'dividend': return Type.DIVIDEND; + case 'fee': + return Type.FEE; + case 'interest': + return Type.INTEREST; case 'item': return Type.ITEM; case 'liability': diff --git a/apps/client/src/app/services/web-authn.service.ts b/apps/client/src/app/services/web-authn.service.ts index eb033884c..5075d036d 100644 --- a/apps/client/src/app/services/web-authn.service.ts +++ b/apps/client/src/app/services/web-authn.service.ts @@ -88,7 +88,9 @@ export class WebAuthnService { { deviceId } ) .pipe( - switchMap(startAuthentication), + switchMap((requestOptionsJSON) => + startAuthentication(requestOptionsJSON, true) + ), switchMap((assertionResponse) => { return this.http.post<{ authToken: string }>( `/api/v1/auth/webauthn/verify-assertion`, diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 4ca6c031e..e4e1223ea 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -22,7 +22,7 @@ Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst. apps/client/src/app/app.component.html - 174,175 + 175,176 @@ -42,15 +42,15 @@ apps/client/src/app/components/admin-jobs/admin-jobs.html - 20 + 28 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 12 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 17 + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 libs/ui/src/lib/activities-table/activities-table.component.html @@ -94,11 +94,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 93 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 88 + 81 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -122,7 +122,7 @@ Name apps/client/src/app/components/accounts-table/accounts-table.component.html - 22 + 33 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -142,7 +142,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 12 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -162,7 +162,7 @@ Gesamt apps/client/src/app/components/accounts-table/accounts-table.component.html - 38 + 49 libs/ui/src/lib/activities-table/activities-table.component.html @@ -174,11 +174,15 @@ Wert apps/client/src/app/components/accounts-table/accounts-table.component.html - 145 + 156 apps/client/src/app/components/accounts-table/accounts-table.component.html - 180 + 191 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 31 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -226,7 +230,7 @@ Bearbeiten apps/client/src/app/components/accounts-table/accounts-table.component.html - 246 + 257 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -246,7 +250,7 @@ Löschen apps/client/src/app/components/accounts-table/accounts-table.component.html - 254 + 265 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -270,7 +274,7 @@ Möchtest du dieses Konto wirklich löschen? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 82 + 83 @@ -278,7 +282,7 @@ Jobs löschen apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 140 @@ -286,7 +290,7 @@ Symbol apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 50 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -294,7 +298,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 57 @@ -302,7 +306,7 @@ Datenquelle apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 59 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -318,7 +322,7 @@ Versuche apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 68 @@ -326,7 +330,7 @@ Erstellt apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 77 @@ -334,7 +338,7 @@ Abgeschlossen apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 86 @@ -342,7 +346,7 @@ Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 95 @@ -350,7 +354,7 @@ Anlageprofil apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 37 @@ -358,7 +362,7 @@ Historische Marktdaten apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 42 @@ -366,7 +370,7 @@ Daten anzeigen apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 155 @@ -374,7 +378,7 @@ Stacktrace anzeigen apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 162 @@ -382,7 +386,7 @@ Job löschen apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 165 @@ -430,7 +434,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 195 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -444,9 +448,17 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 13 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 79 + 95 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 43 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -456,10 +468,6 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 37 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 25 - Save @@ -470,7 +478,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 202 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -484,18 +492,18 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 20 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 86 + 102 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 364 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 32 - First Activity @@ -506,7 +514,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 72 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -518,7 +526,7 @@ Anzahl Aktivitäten apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -534,7 +542,7 @@ Bitte Währung hinzufügen: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -542,7 +550,7 @@ Möchtest du diesen Gutscheincode wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -550,7 +558,7 @@ Möchtest du diese Währung wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -558,7 +566,7 @@ Möchtest du den Cache wirklich leeren? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -566,7 +574,7 @@ Bitte gebe deine Systemmeldung ein: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -574,7 +582,7 @@ Anzahl Benutzer apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -582,7 +590,7 @@ pro Benutzer apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -618,7 +626,7 @@ Wechselkurse apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -626,7 +634,7 @@ Währung hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -634,7 +642,7 @@ Systemmeldung apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -642,7 +650,7 @@ Systemmeldung setzen apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -650,7 +658,7 @@ Lese-Modus apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -658,7 +666,7 @@ Gutscheincodes apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -666,7 +674,7 @@ Hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -674,7 +682,7 @@ Verwaltung apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -682,7 +690,7 @@ Cache leeren apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -702,7 +710,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 189 @@ -746,7 +754,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 203 @@ -758,7 +766,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 213 @@ -778,7 +786,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 221 apps/client/src/app/pages/accounts/accounts-page.html @@ -794,7 +802,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 237 @@ -802,7 +810,7 @@ Ressourcen apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -810,7 +818,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 248 apps/client/src/app/pages/resources/resources-page.html @@ -822,7 +830,7 @@ Preise apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -830,11 +838,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 260 apps/client/src/app/components/header/header.component.html - 304 + 329 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -950,7 +966,7 @@ Über apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -958,7 +974,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 316 @@ -966,7 +982,7 @@ Ich apps/client/src/app/components/header/header.component.html - 145 + 170 @@ -974,7 +990,7 @@ Mein Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 228 @@ -982,7 +998,7 @@ Über Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 268 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -994,11 +1010,11 @@ Features apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 303 apps/client/src/app/pages/features/features-page.html @@ -1010,11 +1026,11 @@ Märkte apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 345 apps/client/src/app/components/home-market/home-market.html @@ -1042,7 +1058,7 @@ Einloggen apps/client/src/app/components/header/header.component.ts - 131 + 169 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -1054,7 +1070,7 @@ Ups! Falsches Sicherheits-Token. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1106,7 +1122,7 @@ apps/client/src/app/pages/landing/landing-page.html - 430 + 435 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1150,7 +1166,7 @@ Einloggen apps/client/src/app/components/header/header.component.html - 333 + 358 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1276,7 +1292,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1340,7 +1356,7 @@ Sektoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1356,7 +1372,7 @@ Länder apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 135 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1516,7 +1532,7 @@ Datenschutzbestimmungen apps/client/src/app/app.component.html - 89 + 90 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1528,7 +1544,7 @@ Blog apps/client/src/app/app.component.html - 67 + 68 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1608,7 +1624,7 @@ Changelog apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1620,7 +1636,7 @@ Lizenz apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1644,47 +1660,47 @@ Mein Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 12 + 32 Please enter your coupon code: Bitte gebe deinen Gutscheincode ein: - apps/client/src/app/pages/user-account/user-account-page.component.ts - 263 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 Could not redeem coupon code Gutscheincode konnte nicht eingelöst werden - apps/client/src/app/pages/user-account/user-account-page.component.ts - 273 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 Coupon code has been redeemed Gutscheincode wurde eingelöst - apps/client/src/app/pages/user-account/user-account-page.component.ts - 285 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 Reload Neu laden - apps/client/src/app/pages/user-account/user-account-page.component.ts - 286 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 Do you really want to remove this sign in method? Möchtest du diese Anmeldemethode wirklich löschen? - apps/client/src/app/pages/user-account/user-account-page.component.ts - 332 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 184 @@ -1694,10 +1710,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 75 - - apps/client/src/app/pages/user-account/user-account-page.html - 4 - libs/ui/src/lib/activities-table/activities-table.component.html 379 @@ -1707,128 +1719,128 @@ Membership Mitgliedschaft - apps/client/src/app/pages/user-account/user-account-page.html - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 2 Upgrade Upgrade - apps/client/src/app/pages/user-account/user-account-page.html - 39 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 26 per year pro Jahr - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 41 - apps/client/src/app/pages/user-account/user-account-page.html - 56 + apps/client/src/app/pages/pricing/pricing-page.html + 332 Try Premium Premium ausprobieren - apps/client/src/app/pages/user-account/user-account-page.html - 64 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 49 Redeem Coupon Gutschein einlösen - apps/client/src/app/pages/user-account/user-account-page.html - 77 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 62 Presenter View Präsentationsansicht - apps/client/src/app/pages/user-account/user-account-page.html - 84 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 Base Currency Basiswährung - apps/client/src/app/pages/user-account/user-account-page.html - 103 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 26 Locale Lokalität - apps/client/src/app/pages/user-account/user-account-page.html - 173 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 90 Date and number format Datums- und Zahlenformat - apps/client/src/app/pages/user-account/user-account-page.html - 175 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 Zen Mode Zen Modus - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 136 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 - - Sign in with fingerprint + + Sign in with fingerprint Einloggen mit Fingerabdruck - apps/client/src/app/pages/user-account/user-account-page.html - 244,246 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 User ID Benutzer ID - apps/client/src/app/pages/user-account/user-account-page.html - 277 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 184 Granted Access Zugangsberechtigung - apps/client/src/app/pages/user-account/user-account-page.html - 295 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 Grant access Zugang gewähren - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 2 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 Public Öffentlich - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 19 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 @@ -1844,7 +1856,7 @@ Konto aktualisieren apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -1852,7 +1864,7 @@ Konto hinzufügen apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -1868,15 +1880,15 @@ Währung apps/client/src/app/components/accounts-table/accounts-table.component.html - 48 + 59 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 69 + 62 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 13 + 22 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1896,11 +1908,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 110 + 121 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 23 + 32 @@ -1912,11 +1924,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 65 + 76 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 36 + 44 @@ -1924,7 +1936,7 @@ Konto ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 89 @@ -1976,7 +1988,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -1996,7 +2008,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2176,7 +2188,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 49 + 38 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -2202,6 +2214,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Update activity @@ -2296,11 +2312,11 @@ Kommentar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 182 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 72 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2316,7 +2332,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 86 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2587,8 +2603,8 @@ Language Sprache - apps/client/src/app/pages/user-account/user-account-page.html - 127 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 47 @@ -2596,7 +2612,7 @@ Registrieren apps/client/src/app/components/header/header.component.html - 345 + 370 @@ -2684,7 +2700,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 95 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2700,7 +2716,7 @@ Sektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 110 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2712,7 +2728,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 119 apps/client/src/app/components/admin-users/admin-users.html @@ -2891,8 +2907,8 @@ 15 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 6 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 @@ -2907,8 +2923,8 @@ Experimental Features Experimentelle Funktionen - apps/client/src/app/pages/user-account/user-account-page.html - 262 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 @@ -2947,40 +2963,40 @@ Auto Automatisch - apps/client/src/app/pages/user-account/user-account-page.component.ts - 47 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 35 Appearance Aussehen - apps/client/src/app/pages/user-account/user-account-page.html - 201 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 113 Auto Automatisch - apps/client/src/app/pages/user-account/user-account-page.html - 216 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 125 Light Hell - apps/client/src/app/pages/user-account/user-account-page.html - 217 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 126 Dark Dunkel - apps/client/src/app/pages/user-account/user-account-page.html - 218 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 @@ -3240,35 +3256,35 @@ Community apps/client/src/app/app.component.html - 104 + 105 - apps/client/src/app/pages/features/features-page.html - 259 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 61 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 65 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 69 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 73 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 81 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3292,7 +3308,7 @@ Symbol Zuordnung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 160 @@ -3328,7 +3344,7 @@ Benutzer Registrierung apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3396,7 +3412,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3435,8 +3451,8 @@ Valid until Gültig bis - apps/client/src/app/pages/user-account/user-account-page.html - 24 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 17 @@ -3487,28 +3503,28 @@ 23 - + Protection for sensitive information like absolute performances and quantity values Ausblenden von sensiblen Informationen wie absoluter Performance und Stückzahl - apps/client/src/app/pages/user-account/user-account-page.html - 85,88 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8,11 - + Distraction-free experience for turbulent times Unbeschwertes Erlebnis für turbulente Zeiten - apps/client/src/app/pages/user-account/user-account-page.html - 228,230 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 137,139 - + Sneak peek at upcoming functionality Vorschau auf kommende Funktionalität - apps/client/src/app/pages/user-account/user-account-page.html - 263,265 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170,172 @@ -3744,7 +3760,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3887,8 +3903,8 @@ Renew Erneuern - apps/client/src/app/pages/user-account/user-account-page.html - 44 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 29 @@ -3980,7 +3996,7 @@ Möchtest du diese Plattform wirklich löschen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4042,6 +4058,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts 31 + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + Equity @@ -4059,14 +4083,6 @@ 15 - - Set as Benchmark - Als Benchmark setzen - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 45 - - Manage Benchmarks Benchmarks verwalten @@ -4136,7 +4152,7 @@ Private Finanzen apps/client/src/app/app.component.html - 54 + 55 @@ -4144,7 +4160,7 @@ Häufig gestellte Fragen (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4356,7 +4372,7 @@ Scraper Konfiguration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 171 @@ -4494,6 +4510,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 63 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + Origin @@ -4606,6 +4630,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 68 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + Region @@ -4718,6 +4750,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 73 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + Available in @@ -4830,6 +4870,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 78,80 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + ✅ Yes @@ -4942,6 +4990,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 100 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 @@ -5158,6 +5222,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 @@ -5374,6 +5454,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 @@ -5590,6 +5686,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 172 @@ -5810,6 +5922,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 102 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -6026,6 +6154,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 @@ -6242,6 +6386,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -6458,6 +6618,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + ❌ No @@ -6570,6 +6738,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 109,110 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + Self-Hosting @@ -6682,6 +6858,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 114,116 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + Use anonymously @@ -6794,6 +6978,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 141,143 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + Free Plan @@ -6906,6 +7098,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 160,162 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + Notes @@ -7018,6 +7218,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -7130,6 +7338,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 215,218 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + Personal Finance Tools @@ -7242,6 +7458,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 287 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + Guides @@ -7447,8 +7671,8 @@ Biometric Authentication Biometrische Authentifizierung - apps/client/src/app/pages/user-account/user-account-page.html - 243 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 @@ -7531,8 +7755,8 @@ Export Data Daten exportieren - apps/client/src/app/pages/user-account/user-account-page.html - 284 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 191 @@ -7624,7 +7848,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7816,7 +8040,7 @@ Nutzer aus aller Welt verwenden Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7824,7 +8048,7 @@ Wie funktioniert Ghostfolio ? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7832,7 +8056,7 @@ Registriere dich anonym* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7840,7 +8064,7 @@ * Keine E-Mail-Adresse oder Kreditkarte erforderlich apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7848,7 +8072,7 @@ Füge historische Transaktionen hinzu apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7856,7 +8080,7 @@ Erhalte nützliche Erkenntnisse über die Zusammensetzung deines Portfolios apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7864,7 +8088,7 @@ Bist du bereit? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7872,7 +8096,7 @@ Melde dich jetzt an oder probiere die Live Demo aus apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7884,7 +8108,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7900,7 +8124,7 @@ Beginne mit nur 3 Schritten apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7932,11 +8156,11 @@ apps/client/src/app/components/header/header.component.ts - 47 + 72 apps/client/src/app/components/header/header.component.ts - 52 + 77 apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -7994,6 +8218,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 26 @@ -8062,6 +8290,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 26 @@ -8104,11 +8336,11 @@ apps/client/src/app/components/header/header.component.ts - 46 + 71 apps/client/src/app/components/header/header.component.ts - 51 + 76 apps/client/src/app/pages/about/about-page.component.ts @@ -8178,6 +8410,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 25 @@ -8246,6 +8482,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 25 @@ -8308,11 +8548,11 @@ apps/client/src/app/components/header/header.component.ts - 48 + 73 apps/client/src/app/components/header/header.component.ts - 53 + 78 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -8340,11 +8580,11 @@ apps/client/src/app/components/header/header.component.ts - 49 + 74 apps/client/src/app/components/header/header.component.ts - 54 + 79 apps/client/src/app/components/home-summary/home-summary.component.ts @@ -8354,6 +8594,10 @@ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts 14 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + apps/client/src/app/core/http-response.interceptor.ts 80 @@ -8400,7 +8644,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8436,11 +8680,11 @@ apps/client/src/app/components/header/header.component.ts - 50 + 75 apps/client/src/app/components/header/header.component.ts - 56 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -8458,6 +8702,10 @@ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts 14 + + apps/client/src/app/pages/features/features-page.component.ts + 18 + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 @@ -8486,6 +8734,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 28 @@ -8554,6 +8806,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 28 @@ -8718,6 +8974,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -8830,6 +9094,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13,25 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -8942,6 +9214,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26,36 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + Let’s dive deeper into the detailed comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -9054,6 +9334,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37,43 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + Starting from / year @@ -9166,6 +9454,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 180,182 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + Starting from / year @@ -9278,6 +9574,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185,186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + open-source-alternative-to @@ -9402,6 +9706,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 199,208 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + Ready to take your investments to the next level? @@ -9514,6 +9826,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 211,214 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + Get Started @@ -9626,29 +9946,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 220,222 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + Switzerland Schweiz apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 49 + 51 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 61 + 63 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 333 + 351 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 344 + 362 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 345 + 363 @@ -9656,15 +9984,15 @@ Weltweit apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 51 + 53 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 182 + 193 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 283 + 294 @@ -9672,39 +10000,43 @@ Vereinigte Staaten von Amerika apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 80 + 82 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 114 + 116 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 168 + 126 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 193 + 179 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 195 + 204 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 259 + 206 apps/client/src/app/pages/resources/personal-finance-tools/products.ts 270 + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 281 + Belgium Belgien apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 92 + 94 @@ -9712,31 +10044,31 @@ Deutschland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 71 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 103 + 105 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 148 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 158 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 157 + 168 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 180 + 191 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 215 + 226 @@ -9744,7 +10076,7 @@ Österreich apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9752,7 +10084,7 @@ Italien apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9760,7 +10092,7 @@ Niederlande apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9768,7 +10100,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9776,7 +10108,7 @@ Neuseeland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9784,11 +10116,11 @@ Tschechische Republik apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 303 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 322 + 340 @@ -9912,7 +10244,7 @@ Möchtest du diesen Tag wirklich löschen? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9936,11 +10268,11 @@ Frankreich apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 314 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 312 + 330 @@ -9956,7 +10288,7 @@ Währungsklumpenrisiken apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9964,7 +10296,115 @@ Kontoklumpenrisiken apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 137 + + + + Transfer Cash Balance + Cash-Bestand Transfer + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 8 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Benchmark + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 154 + + + + Version + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + Settings + Einstellungen + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + From + Von + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + Nach + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 21 + + + + Transfer + Transferieren + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 50 + + + + Finland + Finnland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 322 + + + + Membership + Mitgliedschaft + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Access + Zugang + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + Find holding... + Finde Position... + + libs/ui/src/lib/assistant/assistant.component.ts + 87 + + + + No entries... + Keine Einträge vorhanden... + + libs/ui/src/lib/assistant/assistant.html + 62 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index bbb2d41a5..f9c69808f 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -23,7 +23,7 @@ El riesgo de pérdida en trading puede ser importante. No es aconsejable invertir dinero que puedas necesitar a corto plazo. apps/client/src/app/app.component.html - 174,175 + 175,176 @@ -43,15 +43,15 @@ apps/client/src/app/components/admin-jobs/admin-jobs.html - 20 + 28 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 12 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 17 + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 libs/ui/src/lib/activities-table/activities-table.component.html @@ -95,11 +95,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 93 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 88 + 81 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -123,7 +123,7 @@ Nombre apps/client/src/app/components/accounts-table/accounts-table.component.html - 22 + 33 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -143,7 +143,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 12 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -163,7 +163,7 @@ Total apps/client/src/app/components/accounts-table/accounts-table.component.html - 38 + 49 libs/ui/src/lib/activities-table/activities-table.component.html @@ -175,11 +175,15 @@ Valor apps/client/src/app/components/accounts-table/accounts-table.component.html - 145 + 156 apps/client/src/app/components/accounts-table/accounts-table.component.html - 180 + 191 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 31 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -227,7 +231,7 @@ Edita apps/client/src/app/components/accounts-table/accounts-table.component.html - 246 + 257 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -247,7 +251,7 @@ Elimina apps/client/src/app/components/accounts-table/accounts-table.component.html - 254 + 265 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -271,7 +275,7 @@ ¿Estás seguro de eliminar esta cuenta? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 82 + 83 @@ -279,7 +283,7 @@ Elimina los trabajos apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 140 @@ -287,7 +291,7 @@ Símbolo apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 50 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -295,7 +299,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 57 @@ -303,7 +307,7 @@ Fuente de datos apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 59 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -319,7 +323,7 @@ Intentos apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 68 @@ -327,7 +331,7 @@ Creado apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 77 @@ -335,7 +339,7 @@ Finalizado apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 86 @@ -343,7 +347,7 @@ Estado apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 95 @@ -351,7 +355,7 @@ Perfil del activo apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 37 @@ -359,7 +363,7 @@ Datos históricos del mercado apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 42 @@ -367,7 +371,7 @@ Visualiza los datos apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 155 @@ -375,7 +379,7 @@ Visualiza Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 162 @@ -383,7 +387,7 @@ Elimina el trabajo apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 165 @@ -431,7 +435,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 195 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -445,9 +449,17 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 13 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 79 + 95 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 43 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -457,10 +469,6 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 37 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 25 - Save @@ -471,7 +479,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 202 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -485,18 +493,18 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 20 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 86 + 102 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 364 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 32 - First Activity @@ -507,7 +515,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 72 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -519,7 +527,7 @@ Recuento de actividad apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -535,7 +543,7 @@ Por favor, añade una divisa: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -543,7 +551,7 @@ ¿Estás seguro de eliminar este cupón? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -551,7 +559,7 @@ ¿Estás seguro de eliminar esta divisa? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -559,7 +567,7 @@ ¿Estás seguro de limpiar la caché? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -567,7 +575,7 @@ Por favor, establece tu mensaje del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -575,7 +583,7 @@ Número de usuarios apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -583,7 +591,7 @@ por usario apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -619,7 +627,7 @@ Tipos de cambio apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -627,7 +635,7 @@ Añadir divisa apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -635,7 +643,7 @@ Mensaje del sistema apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -643,7 +651,7 @@ Establecer mensaje apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -651,7 +659,7 @@ Modo de solo lectura apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -659,7 +667,7 @@ Cupones apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -667,7 +675,7 @@ Añadir apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -675,7 +683,7 @@ Tareas domésticas apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -683,7 +691,7 @@ Limpiar caché apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -703,7 +711,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 189 @@ -747,7 +755,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 203 @@ -759,7 +767,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 213 @@ -779,7 +787,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 221 apps/client/src/app/pages/accounts/accounts-page.html @@ -795,7 +803,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 237 @@ -803,7 +811,7 @@ Recursos apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -811,7 +819,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 248 apps/client/src/app/pages/resources/resources-page.html @@ -823,7 +831,7 @@ Precios apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -831,11 +839,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 260 apps/client/src/app/components/header/header.component.html - 304 + 329 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -951,7 +967,7 @@ Sobre apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -959,7 +975,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 316 @@ -967,7 +983,7 @@ apps/client/src/app/components/header/header.component.html - 145 + 170 @@ -975,7 +991,7 @@ Mi Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 228 @@ -983,7 +999,7 @@ Sobre Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 268 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -995,11 +1011,11 @@ Funcionalidades apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 303 apps/client/src/app/pages/features/features-page.html @@ -1011,11 +1027,11 @@ Mercados apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 345 apps/client/src/app/components/home-market/home-market.html @@ -1043,7 +1059,7 @@ Iniciar sesión apps/client/src/app/components/header/header.component.ts - 131 + 169 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -1055,7 +1071,7 @@ Vaya! Token de seguridad incorrecto. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1107,7 +1123,7 @@ apps/client/src/app/pages/landing/landing-page.html - 430 + 435 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1151,7 +1167,7 @@ Iniciar sesión apps/client/src/app/components/header/header.component.html - 333 + 358 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1274,7 +1290,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1338,7 +1354,7 @@ Sectores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1354,7 +1370,7 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 135 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1514,7 +1530,7 @@ Política de privacidad apps/client/src/app/app.component.html - 89 + 90 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1526,7 +1542,7 @@ Blog apps/client/src/app/app.component.html - 67 + 68 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1606,7 +1622,7 @@ Registro de cambios apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1618,7 +1634,7 @@ Licencia de uso apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1642,47 +1658,47 @@ Mi Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 12 + 32 Please enter your coupon code: Por favor, ingresa tu código de cupón: - apps/client/src/app/pages/user-account/user-account-page.component.ts - 263 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 Could not redeem coupon code No se puede canjear este código de cupón - apps/client/src/app/pages/user-account/user-account-page.component.ts - 273 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 Coupon code has been redeemed El codigo de cupón ha sido canjeado - apps/client/src/app/pages/user-account/user-account-page.component.ts - 285 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 Reload Refrescar - apps/client/src/app/pages/user-account/user-account-page.component.ts - 286 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 Do you really want to remove this sign in method? ¿Estás seguro de eliminar este método de acceso? - apps/client/src/app/pages/user-account/user-account-page.component.ts - 332 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 184 @@ -1692,10 +1708,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 75 - - apps/client/src/app/pages/user-account/user-account-page.html - 4 - libs/ui/src/lib/activities-table/activities-table.component.html 379 @@ -1705,128 +1717,128 @@ Membership Suscripción - apps/client/src/app/pages/user-account/user-account-page.html - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 2 Upgrade Mejorar - apps/client/src/app/pages/user-account/user-account-page.html - 39 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 26 per year por año - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 41 - apps/client/src/app/pages/user-account/user-account-page.html - 56 + apps/client/src/app/pages/pricing/pricing-page.html + 332 Try Premium Prueba Premium - apps/client/src/app/pages/user-account/user-account-page.html - 64 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 49 Redeem Coupon Canjea el cupón - apps/client/src/app/pages/user-account/user-account-page.html - 77 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 62 Presenter View Vista del presentador - apps/client/src/app/pages/user-account/user-account-page.html - 84 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 Base Currency Divisa base - apps/client/src/app/pages/user-account/user-account-page.html - 103 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 26 Locale Ubicación - apps/client/src/app/pages/user-account/user-account-page.html - 173 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 90 Date and number format Formato de fecha y número - apps/client/src/app/pages/user-account/user-account-page.html - 175 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 Zen Mode Modo Zen - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 136 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 - - Sign in with fingerprint - Accede con huella digital + + Sign in with fingerprint + Accede con huella digital - apps/client/src/app/pages/user-account/user-account-page.html - 244,246 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 User ID ID usuario - apps/client/src/app/pages/user-account/user-account-page.html - 277 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 184 Granted Access Acceso concedido - apps/client/src/app/pages/user-account/user-account-page.html - 295 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 Grant access Conceder acceso - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 2 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 Public Público - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 19 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 @@ -1842,7 +1854,7 @@ Editar cuenta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -1850,7 +1862,7 @@ Añadir cuenta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -1866,15 +1878,15 @@ Divisa base apps/client/src/app/components/accounts-table/accounts-table.component.html - 48 + 59 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 69 + 62 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 13 + 22 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1894,11 +1906,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 110 + 121 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 23 + 32 @@ -1910,11 +1922,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 65 + 76 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 36 + 44 @@ -1922,7 +1934,7 @@ ID cuenta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 89 @@ -1974,7 +1986,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -1994,7 +2006,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2174,7 +2186,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 49 + 38 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -2200,6 +2212,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Update activity @@ -2294,11 +2310,11 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 182 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 72 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2314,7 +2330,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 86 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2585,8 +2601,8 @@ Language Idioma - apps/client/src/app/pages/user-account/user-account-page.html - 127 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 47 @@ -2594,7 +2610,7 @@ Comenzar apps/client/src/app/components/header/header.component.html - 345 + 370 @@ -2662,7 +2678,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 95 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2718,7 +2734,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 110 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2730,7 +2746,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 119 apps/client/src/app/components/admin-users/admin-users.html @@ -2897,16 +2913,16 @@ 15 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 6 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 Experimental Features Funcionalidades experimentales - apps/client/src/app/pages/user-account/user-account-page.html - 262 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 @@ -2945,40 +2961,40 @@ Auto Automático - apps/client/src/app/pages/user-account/user-account-page.component.ts - 47 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 35 Appearance Apariencia - apps/client/src/app/pages/user-account/user-account-page.html - 201 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 113 Auto Automático - apps/client/src/app/pages/user-account/user-account-page.html - 216 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 125 Light Claro - apps/client/src/app/pages/user-account/user-account-page.html - 217 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 126 Dark Oscuro - apps/client/src/app/pages/user-account/user-account-page.html - 218 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 @@ -3238,35 +3254,35 @@ Comunidad apps/client/src/app/app.component.html - 104 + 105 - apps/client/src/app/pages/features/features-page.html - 259 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 61 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 65 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 69 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 73 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 81 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3290,7 +3306,7 @@ Mapeo de símbolos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 160 @@ -3326,7 +3342,7 @@ User Signup apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3394,7 +3410,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3433,8 +3449,8 @@ Valid until Valid until - apps/client/src/app/pages/user-account/user-account-page.html - 24 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 17 @@ -3485,28 +3501,28 @@ 23 - + Protection for sensitive information like absolute performances and quantity values Protection for sensitive information like absolute performances and quantity values - apps/client/src/app/pages/user-account/user-account-page.html - 85,88 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8,11 - + Distraction-free experience for turbulent times Distraction-free experience for turbulent times - apps/client/src/app/pages/user-account/user-account-page.html - 228,230 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 137,139 - + Sneak peek at upcoming functionality Sneak peek at upcoming functionality - apps/client/src/app/pages/user-account/user-account-page.html - 263,265 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170,172 @@ -3742,7 +3758,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3885,8 +3901,8 @@ Renew Renew - apps/client/src/app/pages/user-account/user-account-page.html - 44 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 29 @@ -3978,7 +3994,7 @@ Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4040,6 +4056,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts 31 + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + Equity @@ -4057,14 +4081,6 @@ 15 - - Set as Benchmark - Set as Benchmark - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 45 - - Manage Benchmarks Manage Benchmarks @@ -4134,7 +4150,7 @@ Personal Finance apps/client/src/app/app.component.html - 54 + 55 @@ -4142,7 +4158,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4354,7 +4370,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 171 @@ -4492,6 +4508,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 63 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + Origin @@ -4604,6 +4628,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 68 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + Region @@ -4716,6 +4748,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 73 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + Available in @@ -4828,6 +4868,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 78,80 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + ✅ Yes @@ -4940,6 +4988,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 100 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 @@ -5048,6 +5108,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 @@ -5156,6 +5224,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 @@ -5264,6 +5340,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 @@ -5372,6 +5456,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 @@ -5480,6 +5572,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 @@ -5588,6 +5688,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 172 @@ -5808,6 +5920,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 102 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -5916,6 +6040,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -6024,6 +6156,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 @@ -6132,6 +6272,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 @@ -6240,6 +6388,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -6348,6 +6504,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 @@ -6568,6 +6736,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 109,110 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + Self-Hosting @@ -6680,6 +6856,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 114,116 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + Use anonymously @@ -6792,6 +6976,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 141,143 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + Free Plan @@ -6904,6 +7096,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 160,162 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + Notes @@ -7016,6 +7216,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -7128,10 +7336,26 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 215,218 - - - Personal Finance Tools - Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + + Personal Finance Tools + Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 287 @@ -7445,8 +7669,8 @@ Biometric Authentication Biometric Authentication - apps/client/src/app/pages/user-account/user-account-page.html - 243 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 @@ -7529,8 +7753,8 @@ Export Data Export Data - apps/client/src/app/pages/user-account/user-account-page.html - 284 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 191 @@ -7622,7 +7846,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7814,7 +8038,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7822,7 +8046,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7830,7 +8054,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7838,7 +8062,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7846,7 +8070,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7854,7 +8078,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7862,7 +8086,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7870,7 +8094,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7882,7 +8106,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7898,7 +8122,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7930,11 +8154,11 @@ apps/client/src/app/components/header/header.component.ts - 47 + 72 apps/client/src/app/components/header/header.component.ts - 52 + 77 apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -7992,6 +8216,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 26 @@ -8060,6 +8288,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 26 @@ -8102,11 +8334,11 @@ apps/client/src/app/components/header/header.component.ts - 46 + 71 apps/client/src/app/components/header/header.component.ts - 51 + 76 apps/client/src/app/pages/about/about-page.component.ts @@ -8176,6 +8408,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 25 @@ -8244,6 +8480,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 25 @@ -8306,11 +8546,11 @@ apps/client/src/app/components/header/header.component.ts - 48 + 73 apps/client/src/app/components/header/header.component.ts - 53 + 78 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -8338,11 +8578,11 @@ apps/client/src/app/components/header/header.component.ts - 49 + 74 apps/client/src/app/components/header/header.component.ts - 54 + 79 apps/client/src/app/components/home-summary/home-summary.component.ts @@ -8352,6 +8592,10 @@ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts 14 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + apps/client/src/app/core/http-response.interceptor.ts 80 @@ -8398,7 +8642,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8434,11 +8678,11 @@ apps/client/src/app/components/header/header.component.ts - 50 + 75 apps/client/src/app/components/header/header.component.ts - 56 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -8456,6 +8700,10 @@ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts 14 + + apps/client/src/app/pages/features/features-page.component.ts + 18 + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 @@ -8484,6 +8732,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 28 @@ -8552,6 +8804,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 28 @@ -8716,6 +8972,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -8828,6 +9092,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13,25 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -8940,6 +9212,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26,36 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + Let’s dive deeper into the detailed comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -9052,6 +9332,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37,43 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + Starting from / year @@ -9164,6 +9452,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 180,182 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + Starting from / year @@ -9276,6 +9572,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185,186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + open-source-alternative-to @@ -9400,6 +9704,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 199,208 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + Ready to take your investments to the next level? @@ -9512,6 +9824,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 211,214 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + Get Started @@ -9624,29 +9944,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 220,222 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + Switzerland Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 49 + 51 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 61 + 63 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 333 + 351 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 344 + 362 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 345 + 363 @@ -9654,15 +9982,15 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 51 + 53 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 182 + 193 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 283 + 294 @@ -9670,39 +9998,43 @@ United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 80 + 82 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 114 + 116 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 168 + 126 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 193 + 179 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 195 + 204 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 259 + 206 apps/client/src/app/pages/resources/personal-finance-tools/products.ts 270 + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 281 + Belgium Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 92 + 94 @@ -9710,31 +10042,31 @@ Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 71 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 103 + 105 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 148 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 158 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 157 + 168 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 180 + 191 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 215 + 226 @@ -9742,7 +10074,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9750,7 +10082,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9758,7 +10090,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9766,7 +10098,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9774,7 +10106,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9782,11 +10114,11 @@ Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 303 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 322 + 340 @@ -9910,7 +10242,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9934,11 +10266,11 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 314 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 312 + 330 @@ -9954,7 +10286,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9962,7 +10294,115 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 137 + + + + Transfer Cash Balance + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 8 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Benchmark + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 154 + + + + Version + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + Settings + Settings + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + From + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + To + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 21 + + + + Transfer + Transfer + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 50 + + + + Finland + Finland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 322 + + + + Membership + Membership + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Access + Access + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + Find holding... + Find holding... + + libs/ui/src/lib/assistant/assistant.component.ts + 87 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 62 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index bdba67fad..68994b48e 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -6,7 +6,7 @@ Le risque de perte en investissant peut être important. Il est déconseillé d'investir de l'argent dont vous pourriez avoir besoin à court terme. apps/client/src/app/app.component.html - 174,175 + 175,176 @@ -17,8 +17,8 @@ 15 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 6 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 @@ -38,15 +38,15 @@ apps/client/src/app/components/admin-jobs/admin-jobs.html - 20 + 28 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 12 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 17 + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 libs/ui/src/lib/activities-table/activities-table.component.html @@ -86,11 +86,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 65 + 76 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 36 + 44 @@ -106,11 +106,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 93 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 88 + 81 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -134,7 +134,7 @@ Nom apps/client/src/app/components/accounts-table/accounts-table.component.html - 22 + 33 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -154,7 +154,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 12 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -174,7 +174,7 @@ Total apps/client/src/app/components/accounts-table/accounts-table.component.html - 38 + 49 libs/ui/src/lib/activities-table/activities-table.component.html @@ -186,15 +186,15 @@ Devise apps/client/src/app/components/accounts-table/accounts-table.component.html - 48 + 59 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 69 + 62 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 13 + 22 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -214,11 +214,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 110 + 121 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 23 + 32 @@ -226,11 +226,15 @@ Valeur apps/client/src/app/components/accounts-table/accounts-table.component.html - 145 + 156 apps/client/src/app/components/accounts-table/accounts-table.component.html - 180 + 191 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 31 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -278,7 +282,7 @@ Modifier apps/client/src/app/components/accounts-table/accounts-table.component.html - 246 + 257 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -298,7 +302,7 @@ Supprimer apps/client/src/app/components/accounts-table/accounts-table.component.html - 254 + 265 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -322,7 +326,7 @@ Voulez-vous vraiment supprimer ce compte ? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 82 + 83 @@ -330,7 +334,7 @@ Symbole apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 50 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -338,7 +342,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 57 @@ -346,7 +350,7 @@ Source Données apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 59 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -362,7 +366,7 @@ Tentatives apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 68 @@ -370,7 +374,7 @@ Créé apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 77 @@ -378,7 +382,7 @@ Terminé apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 86 @@ -386,7 +390,7 @@ Statut apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 95 @@ -394,7 +398,7 @@ Supprimer Tâches apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 140 @@ -402,7 +406,7 @@ Profil d'Actifs apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 37 @@ -410,7 +414,7 @@ Données de Marché Historiques apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 42 @@ -418,7 +422,7 @@ Voir Données apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 155 @@ -426,7 +430,7 @@ Voir la Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 162 @@ -434,7 +438,7 @@ Supprimer Tâche apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 165 @@ -482,7 +486,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 195 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -496,9 +500,17 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 13 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 79 + 95 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 43 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -508,10 +520,6 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 37 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 25 - Save @@ -522,7 +530,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 202 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -536,18 +544,18 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 20 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 86 + 102 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 364 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 32 - Filter by... @@ -566,7 +574,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 86 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -586,7 +594,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 95 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -606,7 +614,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 72 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -686,7 +694,7 @@ Secteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 110 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -698,7 +706,7 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 119 apps/client/src/app/components/admin-users/admin-users.html @@ -714,7 +722,7 @@ Secteurs apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -730,7 +738,7 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 135 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -742,7 +750,7 @@ Équivalence de Symboles apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 160 @@ -750,11 +758,11 @@ Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 182 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 72 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -766,7 +774,7 @@ Veuillez ajouter une devise : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -774,7 +782,7 @@ Voulez-vous vraiment supprimer ce code promotionnel ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -782,7 +790,7 @@ Voulez-vous vraiment supprimer cette devise ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -790,7 +798,7 @@ Voulez-vous vraiment vider le cache ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -798,7 +806,7 @@ Veuillez définir votre message système : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -806,7 +814,7 @@ Nombre d'Utilisateurs apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -814,7 +822,7 @@ Nombre d'Activités apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -822,7 +830,7 @@ par Utilisateur apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -830,7 +838,7 @@ Taux de Conversion apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -838,7 +846,7 @@ Ajouter Devise apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -862,7 +870,7 @@ Inscription de Nouveaux Utilisateurs apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -870,7 +878,7 @@ Mode Lecture Seule apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -878,7 +886,7 @@ Message Système apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -886,7 +894,7 @@ Définir Message apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -894,7 +902,7 @@ Codes promotionnels apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -902,7 +910,7 @@ Ajouter apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -910,7 +918,7 @@ Maintenance apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -918,7 +926,7 @@ Vider le Cache apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -938,7 +946,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 189 @@ -966,7 +974,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 221 apps/client/src/app/pages/accounts/accounts-page.html @@ -1050,7 +1058,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 203 @@ -1062,7 +1070,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 213 @@ -1074,7 +1082,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 237 @@ -1082,7 +1090,7 @@ Ressources apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -1090,7 +1098,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 248 apps/client/src/app/pages/resources/resources-page.html @@ -1102,7 +1110,7 @@ Prix apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -1110,11 +1118,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 260 apps/client/src/app/components/header/header.component.html - 304 + 329 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1230,7 +1246,7 @@ À propos apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -1238,7 +1254,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 316 @@ -1246,7 +1262,7 @@ Moi apps/client/src/app/components/header/header.component.html - 145 + 170 @@ -1254,7 +1270,7 @@ Mon Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 228 @@ -1262,7 +1278,7 @@ À propos de Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 268 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1274,11 +1290,11 @@ Fonctionnalités apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 303 apps/client/src/app/pages/features/features-page.html @@ -1290,11 +1306,11 @@ Marchés apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 345 apps/client/src/app/components/home-market/home-market.html @@ -1310,7 +1326,7 @@ Se connecter apps/client/src/app/components/header/header.component.html - 333 + 358 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1322,7 +1338,7 @@ Démarrer apps/client/src/app/components/header/header.component.html - 345 + 370 @@ -1330,7 +1346,7 @@ Se connecter apps/client/src/app/components/header/header.component.ts - 131 + 169 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -1342,7 +1358,7 @@ Oups! Jeton de Sécurité Incorrect. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1450,7 +1466,7 @@ apps/client/src/app/pages/landing/landing-page.html - 430 + 435 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1605,7 +1621,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1853,7 +1869,7 @@ Historique des modifications apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1865,7 +1881,7 @@ License apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1889,7 +1905,7 @@ Politique de Vie Privée apps/client/src/app/app.component.html - 89 + 90 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1901,55 +1917,55 @@ Mon Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 12 + 32 Auto Auto - apps/client/src/app/pages/user-account/user-account-page.component.ts - 47 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 35 Please enter your coupon code: Veuillez entrer votre code promotionnel : - apps/client/src/app/pages/user-account/user-account-page.component.ts - 263 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 Could not redeem coupon code Le code promotionnel n'a pas pu être appliqué - apps/client/src/app/pages/user-account/user-account-page.component.ts - 273 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 Coupon code has been redeemed Le code promotionnel a été appliqué - apps/client/src/app/pages/user-account/user-account-page.component.ts - 285 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 Reload Rafraîchir - apps/client/src/app/pages/user-account/user-account-page.component.ts - 286 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 Do you really want to remove this sign in method? Voulez-vous vraiment supprimer cette méthode de connexion ? - apps/client/src/app/pages/user-account/user-account-page.component.ts - 332 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 184 @@ -1959,10 +1975,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 75 - - apps/client/src/app/pages/user-account/user-account-page.html - 4 - libs/ui/src/lib/activities-table/activities-table.component.html 379 @@ -1972,68 +1984,68 @@ Membership Adhésion - apps/client/src/app/pages/user-account/user-account-page.html - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 2 Upgrade Mettre à niveau - apps/client/src/app/pages/user-account/user-account-page.html - 39 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 26 per year par an - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 41 - apps/client/src/app/pages/user-account/user-account-page.html - 56 + apps/client/src/app/pages/pricing/pricing-page.html + 332 Try Premium Essayer Premium - apps/client/src/app/pages/user-account/user-account-page.html - 64 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 49 Redeem Coupon Utiliser un Code Promotionnel - apps/client/src/app/pages/user-account/user-account-page.html - 77 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 62 Presenter View Vue de Présentation - apps/client/src/app/pages/user-account/user-account-page.html - 84 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 Base Currency Devise de Base - apps/client/src/app/pages/user-account/user-account-page.html - 103 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 26 Language Langue - apps/client/src/app/pages/user-account/user-account-page.html - 127 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 47 @@ -2041,143 +2053,143 @@ Communauté apps/client/src/app/app.component.html - 104 + 105 - apps/client/src/app/pages/features/features-page.html - 259 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 61 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 65 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 69 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 73 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 81 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 Locale Paramètres régionaux - apps/client/src/app/pages/user-account/user-account-page.html - 173 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 90 Date and number format Format de date et d'heure - apps/client/src/app/pages/user-account/user-account-page.html - 175 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 Appearance Apparence - apps/client/src/app/pages/user-account/user-account-page.html - 201 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 113 Auto Auto - apps/client/src/app/pages/user-account/user-account-page.html - 216 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 125 Light Clair - apps/client/src/app/pages/user-account/user-account-page.html - 217 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 126 Dark Sombre - apps/client/src/app/pages/user-account/user-account-page.html - 218 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 Zen Mode Mode Zen - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 136 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 - - Sign in with fingerprint - Se connecter avec empreinte + + Sign in with fingerprint + Se connecter avec empreinte - apps/client/src/app/pages/user-account/user-account-page.html - 244,246 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 Experimental Features Fonctionnalités expérimentales - apps/client/src/app/pages/user-account/user-account-page.html - 262 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 User ID ID d'utilisateur - apps/client/src/app/pages/user-account/user-account-page.html - 277 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 184 Granted Access Accès donné - apps/client/src/app/pages/user-account/user-account-page.html - 295 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 Grant access Donner accès - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 2 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 Public Public - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 19 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 @@ -2193,7 +2205,7 @@ Mettre à jour compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -2201,7 +2213,7 @@ Ajouter compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -2217,7 +2229,7 @@ ID du compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 89 @@ -2277,7 +2289,7 @@ Blog apps/client/src/app/app.component.html - 67 + 68 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -2385,7 +2397,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 49 + 38 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -2409,7 +2421,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -2421,7 +2433,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2855,6 +2867,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Pricing @@ -3013,7 +3029,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3432,8 +3448,8 @@ Valid until Valide jusqu'au - apps/client/src/app/pages/user-account/user-account-page.html - 24 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 17 @@ -3484,28 +3500,28 @@ 23 - + Protection for sensitive information like absolute performances and quantity values - Protection pour les informations sensibles telles que la performance absolue et les montants + Protection pour les informations sensibles telles que la performance absolue et les montants - apps/client/src/app/pages/user-account/user-account-page.html - 85,88 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8,11 - + Distraction-free experience for turbulent times - Expérience sans distraction pour les périodes tumultueuses + Expérience sans distraction pour les périodes tumultueuses - apps/client/src/app/pages/user-account/user-account-page.html - 228,230 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 137,139 - + Sneak peek at upcoming functionality - Avant-première de fonctionnalités futures + Avant-première de fonctionnalités futures - apps/client/src/app/pages/user-account/user-account-page.html - 263,265 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170,172 @@ -3741,7 +3757,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3884,8 +3900,8 @@ Renew Renouveler - apps/client/src/app/pages/user-account/user-account-page.html - 44 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 29 @@ -3977,7 +3993,7 @@ Voulez-vous vraiment supprimer cette plateforme ? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4039,6 +4055,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts 31 + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + Equity @@ -4056,14 +4080,6 @@ 15 - - Set as Benchmark - Mettre comme Référence - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 45 - - Manage Benchmarks Gérer les Références @@ -4133,7 +4149,7 @@ Finance Personnelle apps/client/src/app/app.component.html - 54 + 55 @@ -4141,7 +4157,7 @@ Questions Fréquentes (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4353,7 +4369,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 171 @@ -4491,6 +4507,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 63 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + Origin @@ -4603,6 +4627,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 68 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + Region @@ -4715,6 +4747,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 73 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + Available in @@ -4827,6 +4867,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 78,80 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + ✅ Yes @@ -4939,6 +4987,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 100 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 @@ -5155,6 +5219,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 @@ -5371,6 +5451,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 @@ -5587,6 +5683,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 172 @@ -5807,6 +5919,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 102 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -6023,6 +6151,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 @@ -6239,6 +6383,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -6455,6 +6615,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + ❌ No @@ -6567,6 +6735,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 109,110 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + Self-Hosting @@ -6679,6 +6855,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 114,116 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + Use anonymously @@ -6791,6 +6975,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 141,143 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + Free Plan @@ -6903,6 +7095,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 160,162 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + Notes @@ -7015,6 +7215,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -7127,10 +7335,26 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 215,218 - - - Personal Finance Tools - Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + + Personal Finance Tools + Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 287 @@ -7444,8 +7668,8 @@ Biometric Authentication Biometric Authentication - apps/client/src/app/pages/user-account/user-account-page.html - 243 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 @@ -7528,8 +7752,8 @@ Export Data Export Data - apps/client/src/app/pages/user-account/user-account-page.html - 284 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 191 @@ -7621,7 +7845,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7813,7 +8037,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7821,7 +8045,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7829,7 +8053,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7837,7 +8061,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7845,7 +8069,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7853,7 +8077,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7861,7 +8085,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7869,7 +8093,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7881,7 +8105,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7897,7 +8121,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7929,11 +8153,11 @@ apps/client/src/app/components/header/header.component.ts - 47 + 72 apps/client/src/app/components/header/header.component.ts - 52 + 77 apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -7991,6 +8215,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 26 @@ -8059,6 +8287,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 26 @@ -8101,11 +8333,11 @@ apps/client/src/app/components/header/header.component.ts - 46 + 71 apps/client/src/app/components/header/header.component.ts - 51 + 76 apps/client/src/app/pages/about/about-page.component.ts @@ -8175,6 +8407,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 25 @@ -8243,6 +8479,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 25 @@ -8305,11 +8545,11 @@ apps/client/src/app/components/header/header.component.ts - 48 + 73 apps/client/src/app/components/header/header.component.ts - 53 + 78 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -8337,11 +8577,11 @@ apps/client/src/app/components/header/header.component.ts - 49 + 74 apps/client/src/app/components/header/header.component.ts - 54 + 79 apps/client/src/app/components/home-summary/home-summary.component.ts @@ -8351,6 +8591,10 @@ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts 14 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + apps/client/src/app/core/http-response.interceptor.ts 80 @@ -8397,7 +8641,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8433,11 +8677,11 @@ apps/client/src/app/components/header/header.component.ts - 50 + 75 apps/client/src/app/components/header/header.component.ts - 56 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -8455,6 +8699,10 @@ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts 14 + + apps/client/src/app/pages/features/features-page.component.ts + 18 + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 @@ -8483,6 +8731,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 28 @@ -8551,6 +8803,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 28 @@ -8715,6 +8971,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -8827,6 +9091,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13,25 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -8939,6 +9211,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26,36 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + Let’s dive deeper into the detailed comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -9051,6 +9331,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37,43 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + Starting from / year @@ -9163,6 +9451,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 180,182 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + Starting from / year @@ -9275,6 +9571,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185,186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + open-source-alternative-to @@ -9399,6 +9703,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 199,208 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + Ready to take your investments to the next level? @@ -9511,6 +9823,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 211,214 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + Get Started @@ -9623,29 +9943,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 220,222 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + Switzerland Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 49 + 51 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 61 + 63 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 333 + 351 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 344 + 362 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 345 + 363 @@ -9653,15 +9981,15 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 51 + 53 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 182 + 193 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 283 + 294 @@ -9669,39 +9997,43 @@ United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 80 + 82 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 114 + 116 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 168 + 126 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 193 + 179 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 195 + 204 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 259 + 206 apps/client/src/app/pages/resources/personal-finance-tools/products.ts 270 + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 281 + Belgium Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 92 + 94 @@ -9709,31 +10041,31 @@ Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 71 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 103 + 105 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 148 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 158 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 157 + 168 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 180 + 191 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 215 + 226 @@ -9741,7 +10073,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9749,7 +10081,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9757,7 +10089,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9765,7 +10097,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9773,7 +10105,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9781,11 +10113,11 @@ Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 303 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 322 + 340 @@ -9909,7 +10241,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9933,11 +10265,11 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 314 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 312 + 330 @@ -9953,7 +10285,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9961,7 +10293,115 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 137 + + + + Transfer Cash Balance + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 8 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Benchmark + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 154 + + + + Version + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + Settings + Settings + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + From + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + To + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 21 + + + + Transfer + Transfer + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 50 + + + + Finland + Finland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 322 + + + + Membership + Membership + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Access + Access + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + Find holding... + Find holding... + + libs/ui/src/lib/assistant/assistant.component.ts + 87 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 62 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index ae8834f0c..248d3f9ec 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -23,7 +23,7 @@ Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine. apps/client/src/app/app.component.html - 174,175 + 175,176 @@ -43,15 +43,15 @@ apps/client/src/app/components/admin-jobs/admin-jobs.html - 20 + 28 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 12 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 17 + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 libs/ui/src/lib/activities-table/activities-table.component.html @@ -95,11 +95,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 93 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 88 + 81 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -123,7 +123,7 @@ Nome apps/client/src/app/components/accounts-table/accounts-table.component.html - 22 + 33 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -143,7 +143,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 12 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -163,7 +163,7 @@ Totale apps/client/src/app/components/accounts-table/accounts-table.component.html - 38 + 49 libs/ui/src/lib/activities-table/activities-table.component.html @@ -175,11 +175,15 @@ Valore apps/client/src/app/components/accounts-table/accounts-table.component.html - 145 + 156 apps/client/src/app/components/accounts-table/accounts-table.component.html - 180 + 191 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 31 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -227,7 +231,7 @@ Modifica apps/client/src/app/components/accounts-table/accounts-table.component.html - 246 + 257 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -247,7 +251,7 @@ Elimina apps/client/src/app/components/accounts-table/accounts-table.component.html - 254 + 265 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -271,7 +275,7 @@ Vuoi davvero eliminare questo account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 82 + 83 @@ -279,7 +283,7 @@ Elimina i lavori apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 140 @@ -287,7 +291,7 @@ Simbolo apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 50 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -295,7 +299,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 57 @@ -303,7 +307,7 @@ Sorgente dei dati apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 59 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -319,7 +323,7 @@ Tentativi apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 68 @@ -327,7 +331,7 @@ Creato apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 77 @@ -335,7 +339,7 @@ Finito apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 86 @@ -343,7 +347,7 @@ Stato apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 95 @@ -351,7 +355,7 @@ Profilo dell'asset apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 37 @@ -359,7 +363,7 @@ Dati storici del mercato apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 42 @@ -367,7 +371,7 @@ Visualizza i dati apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 155 @@ -375,7 +379,7 @@ Visualizza Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 162 @@ -383,7 +387,7 @@ Elimina il lavoro apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 165 @@ -431,7 +435,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 195 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -445,9 +449,17 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 13 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 79 + 95 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 43 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -457,10 +469,6 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 37 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 25 - Save @@ -471,7 +479,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 202 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -485,18 +493,18 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 20 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 86 + 102 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 364 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 32 - First Activity @@ -507,7 +515,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 72 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -519,7 +527,7 @@ Conteggio attività apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -535,7 +543,7 @@ Aggiungi una valuta: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -543,7 +551,7 @@ Vuoi davvero eliminare questo buono? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -551,7 +559,7 @@ Vuoi davvero eliminare questa valuta? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -559,7 +567,7 @@ Vuoi davvero svuotare la cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -567,7 +575,7 @@ Imposta il messaggio di sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -575,7 +583,7 @@ Numero di utenti apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -583,7 +591,7 @@ per utente apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -619,7 +627,7 @@ Tassi di cambio apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -627,7 +635,7 @@ Aggiungi valuta apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -635,7 +643,7 @@ Messaggio di sistema apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -643,7 +651,7 @@ Imposta messaggio apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -651,7 +659,7 @@ Modalità di sola lettura apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -659,7 +667,7 @@ Buoni sconto apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -667,7 +675,7 @@ Aggiungi apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -675,7 +683,7 @@ Bilancio domestico apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -683,7 +691,7 @@ Svuota la cache apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -703,7 +711,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 189 @@ -747,7 +755,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 203 @@ -759,7 +767,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 213 @@ -779,7 +787,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 221 apps/client/src/app/pages/accounts/accounts-page.html @@ -795,7 +803,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 237 @@ -803,7 +811,7 @@ Risorse apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -811,7 +819,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 248 apps/client/src/app/pages/resources/resources-page.html @@ -823,7 +831,7 @@ Prezzi apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -831,11 +839,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 260 apps/client/src/app/components/header/header.component.html - 304 + 329 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -951,7 +967,7 @@ Informazioni su apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -959,7 +975,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 316 @@ -967,7 +983,7 @@ Io apps/client/src/app/components/header/header.component.html - 145 + 170 @@ -975,7 +991,7 @@ Il mio Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 228 @@ -983,7 +999,7 @@ Informazioni su Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 268 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -995,11 +1011,11 @@ Funzionalità apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 303 apps/client/src/app/pages/features/features-page.html @@ -1011,11 +1027,11 @@ Mercati apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 345 apps/client/src/app/components/home-market/home-market.html @@ -1043,7 +1059,7 @@ Accedi apps/client/src/app/components/header/header.component.ts - 131 + 169 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -1055,7 +1071,7 @@ Ops! Token di sicurezza errato. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1107,7 +1123,7 @@ apps/client/src/app/pages/landing/landing-page.html - 430 + 435 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1151,7 +1167,7 @@ Accedi apps/client/src/app/components/header/header.component.html - 333 + 358 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1274,7 +1290,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1338,7 +1354,7 @@ Settori apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1354,7 +1370,7 @@ Paesi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 135 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1514,7 +1530,7 @@ Informativa sulla privacy apps/client/src/app/app.component.html - 89 + 90 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1526,7 +1542,7 @@ Blog apps/client/src/app/app.component.html - 67 + 68 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1606,7 +1622,7 @@ Registro delle modifiche apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1618,7 +1634,7 @@ Licenza d'uso apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1642,47 +1658,47 @@ Il mio Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 12 + 32 Please enter your coupon code: Inserisci il tuo codice del buono: - apps/client/src/app/pages/user-account/user-account-page.component.ts - 263 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 Could not redeem coupon code Impossibile riscattare il codice del buono - apps/client/src/app/pages/user-account/user-account-page.component.ts - 273 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 Coupon code has been redeemed Il codice del buono è stato riscattato - apps/client/src/app/pages/user-account/user-account-page.component.ts - 285 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 Reload Ricarica - apps/client/src/app/pages/user-account/user-account-page.component.ts - 286 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 Do you really want to remove this sign in method? Vuoi davvero rimuovere questo metodo di accesso? - apps/client/src/app/pages/user-account/user-account-page.component.ts - 332 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 184 @@ -1692,10 +1708,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 75 - - apps/client/src/app/pages/user-account/user-account-page.html - 4 - libs/ui/src/lib/activities-table/activities-table.component.html 379 @@ -1705,128 +1717,128 @@ Membership Iscrizione - apps/client/src/app/pages/user-account/user-account-page.html - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 2 Upgrade Aggiornamento - apps/client/src/app/pages/user-account/user-account-page.html - 39 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 26 per year per anno - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 41 - apps/client/src/app/pages/user-account/user-account-page.html - 56 + apps/client/src/app/pages/pricing/pricing-page.html + 332 Try Premium Prova Premium - apps/client/src/app/pages/user-account/user-account-page.html - 64 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 49 Redeem Coupon Riscatta il buono - apps/client/src/app/pages/user-account/user-account-page.html - 77 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 62 Presenter View Vista presentatore - apps/client/src/app/pages/user-account/user-account-page.html - 84 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 Base Currency Valuta base - apps/client/src/app/pages/user-account/user-account-page.html - 103 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 26 Locale Locale - apps/client/src/app/pages/user-account/user-account-page.html - 173 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 90 Date and number format Formato data e numero - apps/client/src/app/pages/user-account/user-account-page.html - 175 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 Zen Mode Modalità Zen - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 136 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 - - Sign in with fingerprint - Accesso con impronta digitale + + Sign in with fingerprint + Accesso con impronta digitale - apps/client/src/app/pages/user-account/user-account-page.html - 244,246 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 User ID ID utente - apps/client/src/app/pages/user-account/user-account-page.html - 277 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 184 Granted Access Accesso concesso - apps/client/src/app/pages/user-account/user-account-page.html - 295 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 Grant access Concedi l'accesso - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 2 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 Public Pubblico - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 19 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 @@ -1842,7 +1854,7 @@ Aggiorna account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -1850,7 +1862,7 @@ Aggiungi un account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -1866,15 +1878,15 @@ Valuta apps/client/src/app/components/accounts-table/accounts-table.component.html - 48 + 59 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 69 + 62 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 13 + 22 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1894,11 +1906,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 110 + 121 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 23 + 32 @@ -1910,11 +1922,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 65 + 76 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 36 + 44 @@ -1922,7 +1934,7 @@ ID account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 89 @@ -1974,7 +1986,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -1994,7 +2006,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2174,7 +2186,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 49 + 38 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -2200,6 +2212,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Update activity @@ -2294,11 +2310,11 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 182 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 72 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2314,7 +2330,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 86 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2585,8 +2601,8 @@ Language Lingua - apps/client/src/app/pages/user-account/user-account-page.html - 127 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 47 @@ -2594,7 +2610,7 @@ Inizia apps/client/src/app/components/header/header.component.html - 345 + 370 @@ -2662,7 +2678,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 95 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2718,7 +2734,7 @@ Settore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 110 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2730,7 +2746,7 @@ Paese apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 119 apps/client/src/app/components/admin-users/admin-users.html @@ -2897,16 +2913,16 @@ 15 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 6 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 Experimental Features Funzionalità sperimentali - apps/client/src/app/pages/user-account/user-account-page.html - 262 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 @@ -2945,40 +2961,40 @@ Auto Auto - apps/client/src/app/pages/user-account/user-account-page.component.ts - 47 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 35 Appearance Aspetto - apps/client/src/app/pages/user-account/user-account-page.html - 201 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 113 Auto Auto - apps/client/src/app/pages/user-account/user-account-page.html - 216 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 125 Light Chiaro - apps/client/src/app/pages/user-account/user-account-page.html - 217 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 126 Dark Scuro - apps/client/src/app/pages/user-account/user-account-page.html - 218 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 @@ -3238,35 +3254,35 @@ Comunità apps/client/src/app/app.component.html - 104 + 105 - apps/client/src/app/pages/features/features-page.html - 259 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 61 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 65 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 69 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 73 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 81 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3290,7 +3306,7 @@ Mappatura dei simboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 160 @@ -3326,7 +3342,7 @@ Registrazione utente apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3394,7 +3410,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3433,8 +3449,8 @@ Valid until Valido fino a - apps/client/src/app/pages/user-account/user-account-page.html - 24 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 17 @@ -3485,28 +3501,28 @@ 23 - + Protection for sensitive information like absolute performances and quantity values - Protezione delle informazioni sensibili come le prestazioni assolute e i valori quantitativi + Protezione delle informazioni sensibili come le prestazioni assolute e i valori quantitativi - apps/client/src/app/pages/user-account/user-account-page.html - 85,88 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8,11 - + Distraction-free experience for turbulent times - Esperienza priva di distrazioni per i periodi più turbolenti + Esperienza priva di distrazioni per i periodi più turbolenti - apps/client/src/app/pages/user-account/user-account-page.html - 228,230 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 137,139 - + Sneak peek at upcoming functionality - Un'anteprima delle funzionalità in arrivo + Un'anteprima delle funzionalità in arrivo - apps/client/src/app/pages/user-account/user-account-page.html - 263,265 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170,172 @@ -3742,7 +3758,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3885,8 +3901,8 @@ Renew Rinnova - apps/client/src/app/pages/user-account/user-account-page.html - 44 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 29 @@ -3978,7 +3994,7 @@ Vuoi davvero eliminare questa piattaforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4040,6 +4056,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts 31 + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + Equity @@ -4057,14 +4081,6 @@ 15 - - Set as Benchmark - Imposta come benchmark - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 45 - - Manage Benchmarks Gestisci i benchmark @@ -4134,7 +4150,7 @@ Finanza personale apps/client/src/app/app.component.html - 54 + 55 @@ -4142,7 +4158,7 @@ Domande più frequenti (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4354,7 +4370,7 @@ Configurazione dello scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 171 @@ -4492,6 +4508,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 63 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + Origin @@ -4604,6 +4628,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 68 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + Region @@ -4716,6 +4748,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 73 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + Available in @@ -4828,6 +4868,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 78,80 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + ✅ Yes @@ -4940,6 +4988,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 100 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 @@ -5156,6 +5220,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 @@ -5372,6 +5452,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 @@ -5588,6 +5684,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 172 @@ -5808,6 +5920,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 102 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -6024,6 +6152,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 @@ -6240,6 +6384,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -6456,6 +6616,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + ❌ No @@ -6568,6 +6736,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 109,110 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + Self-Hosting @@ -6680,6 +6856,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 114,116 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + Use anonymously @@ -6792,6 +6976,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 141,143 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + Free Plan @@ -6904,6 +7096,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 160,162 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + Notes @@ -7016,6 +7216,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -7128,10 +7336,26 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 215,218 - - - Personal Finance Tools - Strumenti di finanza personale + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + + Personal Finance Tools + Strumenti di finanza personale + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 287 @@ -7445,8 +7669,8 @@ Biometric Authentication Autenticazione biometrica - apps/client/src/app/pages/user-account/user-account-page.html - 243 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 @@ -7529,8 +7753,8 @@ Export Data Esporta dati - apps/client/src/app/pages/user-account/user-account-page.html - 284 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 191 @@ -7622,7 +7846,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7814,7 +8038,7 @@ Membri da tutto il mondo utilizzano Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7822,7 +8046,7 @@ Come funziona Ghostfolio? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7830,7 +8054,7 @@ Iscriviti in modo anonimo* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7838,7 +8062,7 @@ * non è richiesto alcun indirizzo email né la carta di credito apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7846,7 +8070,7 @@ Aggiungi le tue transazioni storiche apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7854,7 +8078,7 @@ Ottieni informazioni preziose sulla composizione del tuo portafoglio apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7862,7 +8086,7 @@ Seipronto? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7870,7 +8094,7 @@ Iscriviti adesso o consulta l'account di esempio apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7882,7 +8106,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7898,7 +8122,7 @@ Inizia in soli 3 passi apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7930,11 +8154,11 @@ apps/client/src/app/components/header/header.component.ts - 47 + 72 apps/client/src/app/components/header/header.component.ts - 52 + 77 apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -7992,6 +8216,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 26 @@ -8060,6 +8288,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 26 @@ -8102,11 +8334,11 @@ apps/client/src/app/components/header/header.component.ts - 46 + 71 apps/client/src/app/components/header/header.component.ts - 51 + 76 apps/client/src/app/pages/about/about-page.component.ts @@ -8176,6 +8408,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 25 @@ -8244,6 +8480,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 25 @@ -8306,11 +8546,11 @@ apps/client/src/app/components/header/header.component.ts - 48 + 73 apps/client/src/app/components/header/header.component.ts - 53 + 78 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -8338,11 +8578,11 @@ apps/client/src/app/components/header/header.component.ts - 49 + 74 apps/client/src/app/components/header/header.component.ts - 54 + 79 apps/client/src/app/components/home-summary/home-summary.component.ts @@ -8352,6 +8592,10 @@ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts 14 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + apps/client/src/app/core/http-response.interceptor.ts 80 @@ -8398,7 +8642,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8434,11 +8678,11 @@ apps/client/src/app/components/header/header.component.ts - 50 + 75 apps/client/src/app/components/header/header.component.ts - 56 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -8456,6 +8700,10 @@ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts 14 + + apps/client/src/app/pages/features/features-page.component.ts + 18 + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 @@ -8484,6 +8732,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 28 @@ -8552,6 +8804,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 28 @@ -8716,6 +8972,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -8828,6 +9092,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13,25 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -8940,6 +9212,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26,36 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + Let’s dive deeper into the detailed comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -9052,6 +9332,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37,43 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + Starting from / year @@ -9164,6 +9452,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 180,182 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + Starting from / year @@ -9276,6 +9572,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185,186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + open-source-alternative-to @@ -9400,6 +9704,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 199,208 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + Ready to take your investments to the next level? @@ -9512,6 +9824,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 211,214 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + Get Started @@ -9624,29 +9944,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 220,222 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + Switzerland Svizzera apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 49 + 51 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 61 + 63 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 333 + 351 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 344 + 362 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 345 + 363 @@ -9654,15 +9982,15 @@ Globale apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 51 + 53 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 182 + 193 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 283 + 294 @@ -9670,39 +9998,43 @@ Stati Uniti apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 80 + 82 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 114 + 116 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 168 + 126 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 193 + 179 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 195 + 204 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 259 + 206 apps/client/src/app/pages/resources/personal-finance-tools/products.ts 270 + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 281 + Belgium Belgio apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 92 + 94 @@ -9710,31 +10042,31 @@ Germania apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 71 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 103 + 105 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 148 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 158 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 157 + 168 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 180 + 191 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 215 + 226 @@ -9742,7 +10074,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9750,7 +10082,7 @@ Italia apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9758,7 +10090,7 @@ Paesi Bassi apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9766,7 +10098,7 @@ Thailandia apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9774,7 +10106,7 @@ Nuova Zelanda apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9782,11 +10114,11 @@ Repubblica Ceca apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 303 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 322 + 340 @@ -9910,7 +10242,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9934,11 +10266,11 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 314 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 312 + 330 @@ -9954,7 +10286,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9962,7 +10294,115 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 137 + + + + Transfer Cash Balance + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 8 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Benchmark + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 154 + + + + Version + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + Settings + Settings + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + From + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + To + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 21 + + + + Transfer + Transfer + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 50 + + + + Finland + Finland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 322 + + + + Membership + Membership + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Access + Access + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + Find holding... + Find holding... + + libs/ui/src/lib/assistant/assistant.component.ts + 87 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 62 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index f69216f63..649f07f15 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -22,7 +22,7 @@ Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft. apps/client/src/app/app.component.html - 174,175 + 175,176 @@ -42,15 +42,15 @@ apps/client/src/app/components/admin-jobs/admin-jobs.html - 20 + 28 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 12 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 17 + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 libs/ui/src/lib/activities-table/activities-table.component.html @@ -94,11 +94,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 93 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 88 + 81 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -122,7 +122,7 @@ Naam apps/client/src/app/components/accounts-table/accounts-table.component.html - 22 + 33 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -142,7 +142,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 12 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -162,7 +162,7 @@ Totaal apps/client/src/app/components/accounts-table/accounts-table.component.html - 38 + 49 libs/ui/src/lib/activities-table/activities-table.component.html @@ -174,11 +174,15 @@ Waarde apps/client/src/app/components/accounts-table/accounts-table.component.html - 145 + 156 apps/client/src/app/components/accounts-table/accounts-table.component.html - 180 + 191 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 31 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -226,7 +230,7 @@ Bewerken apps/client/src/app/components/accounts-table/accounts-table.component.html - 246 + 257 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -246,7 +250,7 @@ Verwijderen apps/client/src/app/components/accounts-table/accounts-table.component.html - 254 + 265 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -270,7 +274,7 @@ Wil je deze rekening echt verwijderen? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 82 + 83 @@ -278,7 +282,7 @@ Taken verwijderen apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 140 @@ -286,7 +290,7 @@ Symbool apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 50 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -294,7 +298,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 57 @@ -302,7 +306,7 @@ Gegevensbron apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 59 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -318,7 +322,7 @@ Pogingen apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 68 @@ -326,7 +330,7 @@ Aangemaakt apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 77 @@ -334,7 +338,7 @@ Voltooid apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 86 @@ -342,7 +346,7 @@ Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 95 @@ -350,7 +354,7 @@ Asset Profiel apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 37 @@ -358,7 +362,7 @@ Historische marktgegevens apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 42 @@ -366,7 +370,7 @@ Bekijk gegevens apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 155 @@ -374,7 +378,7 @@ Bekijk Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 162 @@ -382,7 +386,7 @@ Taak verwijderen apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 165 @@ -430,7 +434,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 195 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -444,9 +448,17 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 13 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 79 + 95 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 43 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -456,10 +468,6 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 37 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 25 - Save @@ -470,7 +478,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 202 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -484,18 +492,18 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 20 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 86 + 102 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 364 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 32 - First Activity @@ -506,7 +514,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 72 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -518,7 +526,7 @@ Aantal activiteiten apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -534,7 +542,7 @@ Voeg een valuta toe: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -542,7 +550,7 @@ Wil je deze coupon echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -550,7 +558,7 @@ Wil je deze valuta echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -558,7 +566,7 @@ Wil je echt de cache legen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -566,7 +574,7 @@ Stel je systeemboodschap in: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -574,7 +582,7 @@ Aantal gebruikers apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -582,7 +590,7 @@ per gebruiker apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -618,7 +626,7 @@ Wisselkoersen apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -626,7 +634,7 @@ Valuta toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -634,7 +642,7 @@ Systeembericht apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -642,7 +650,7 @@ Bericht instellen apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -650,7 +658,7 @@ Alleen lezen apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -658,7 +666,7 @@ Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -666,7 +674,7 @@ Toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -674,7 +682,7 @@ Huishouding apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -682,7 +690,7 @@ Cache legen apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -702,7 +710,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 189 @@ -746,7 +754,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 203 @@ -758,7 +766,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 213 @@ -778,7 +786,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 221 apps/client/src/app/pages/accounts/accounts-page.html @@ -794,7 +802,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 237 @@ -802,7 +810,7 @@ Middelen apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -810,7 +818,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 248 apps/client/src/app/pages/resources/resources-page.html @@ -822,7 +830,7 @@ Prijzen apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -830,11 +838,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 260 apps/client/src/app/components/header/header.component.html - 304 + 329 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -950,7 +966,7 @@ Over apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -958,7 +974,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 316 @@ -966,7 +982,7 @@ Ik apps/client/src/app/components/header/header.component.html - 145 + 170 @@ -974,7 +990,7 @@ Mijn Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 228 @@ -982,7 +998,7 @@ Over Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 268 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -994,11 +1010,11 @@ Functionaliteiten apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 303 apps/client/src/app/pages/features/features-page.html @@ -1010,11 +1026,11 @@ Markten apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 345 apps/client/src/app/components/home-market/home-market.html @@ -1042,7 +1058,7 @@ Aanmelden apps/client/src/app/components/header/header.component.ts - 131 + 169 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -1054,7 +1070,7 @@ Oeps! Onjuiste beveiligingstoken. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1106,7 +1122,7 @@ apps/client/src/app/pages/landing/landing-page.html - 430 + 435 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1150,7 +1166,7 @@ Aanmelden apps/client/src/app/components/header/header.component.html - 333 + 358 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1273,7 +1289,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1337,7 +1353,7 @@ Sectoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1353,7 +1369,7 @@ Landen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 135 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1513,7 +1529,7 @@ Privacybeleid apps/client/src/app/app.component.html - 89 + 90 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1525,7 +1541,7 @@ Blog apps/client/src/app/app.component.html - 67 + 68 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1605,7 +1621,7 @@ Changelog apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1617,7 +1633,7 @@ Licentie apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1641,47 +1657,47 @@ Mijn Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 12 + 32 Please enter your coupon code: Voer je couponcode in: - apps/client/src/app/pages/user-account/user-account-page.component.ts - 263 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 Could not redeem coupon code Kon je kortingscode niet inwisselen - apps/client/src/app/pages/user-account/user-account-page.component.ts - 273 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 Coupon code has been redeemed Je couponcode is ingewisseld - apps/client/src/app/pages/user-account/user-account-page.component.ts - 285 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 Reload Herladen - apps/client/src/app/pages/user-account/user-account-page.component.ts - 286 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 Do you really want to remove this sign in method? Wil je deze aanmeldingsmethode echt verwijderen? - apps/client/src/app/pages/user-account/user-account-page.component.ts - 332 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 184 @@ -1691,10 +1707,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 75 - - apps/client/src/app/pages/user-account/user-account-page.html - 4 - libs/ui/src/lib/activities-table/activities-table.component.html 379 @@ -1704,128 +1716,128 @@ Membership Lidmaatschap - apps/client/src/app/pages/user-account/user-account-page.html - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 2 Upgrade Uitbreiden - apps/client/src/app/pages/user-account/user-account-page.html - 39 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 26 per year per jaar - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 41 - apps/client/src/app/pages/user-account/user-account-page.html - 56 + apps/client/src/app/pages/pricing/pricing-page.html + 332 Try Premium Probeer Premium - apps/client/src/app/pages/user-account/user-account-page.html - 64 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 49 Redeem Coupon Coupon inwisselen - apps/client/src/app/pages/user-account/user-account-page.html - 77 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 62 Presenter View Presentatie weergave - apps/client/src/app/pages/user-account/user-account-page.html - 84 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 Base Currency Basisvaluta - apps/client/src/app/pages/user-account/user-account-page.html - 103 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 26 Locale Locatie - apps/client/src/app/pages/user-account/user-account-page.html - 173 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 90 Date and number format Datum- en getalnotatie - apps/client/src/app/pages/user-account/user-account-page.html - 175 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 Zen Mode Zen-modus - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 136 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 - - Sign in with fingerprint - Aanmelden met vingerafdruk + + Sign in with fingerprint + Aanmelden met vingerafdruk - apps/client/src/app/pages/user-account/user-account-page.html - 244,246 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 User ID Gebruikers-ID - apps/client/src/app/pages/user-account/user-account-page.html - 277 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 184 Granted Access Verleende toegang - apps/client/src/app/pages/user-account/user-account-page.html - 295 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 Grant access Toegang verlenen - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 2 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 Public Openbaar - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 19 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 @@ -1841,7 +1853,7 @@ Rekening bijwerken apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -1849,7 +1861,7 @@ Rekening toevoegen apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -1865,15 +1877,15 @@ Valuta apps/client/src/app/components/accounts-table/accounts-table.component.html - 48 + 59 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 69 + 62 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 13 + 22 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1893,11 +1905,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 110 + 121 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 23 + 32 @@ -1909,11 +1921,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 65 + 76 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 36 + 44 @@ -1921,7 +1933,7 @@ Rekening-ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 89 @@ -1973,7 +1985,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -1993,7 +2005,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2173,7 +2185,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 49 + 38 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -2199,6 +2211,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Update activity @@ -2293,11 +2309,11 @@ Opmerking apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 182 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 72 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2313,7 +2329,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 86 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2584,8 +2600,8 @@ Language Taal - apps/client/src/app/pages/user-account/user-account-page.html - 127 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 47 @@ -2593,7 +2609,7 @@ Aan de slag apps/client/src/app/components/header/header.component.html - 345 + 370 @@ -2661,7 +2677,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 95 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2717,7 +2733,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 110 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2729,7 +2745,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 119 apps/client/src/app/components/admin-users/admin-users.html @@ -2896,16 +2912,16 @@ 15 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 6 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 Experimental Features Experimentele functies - apps/client/src/app/pages/user-account/user-account-page.html - 262 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 @@ -2944,40 +2960,40 @@ Auto Automatisch - apps/client/src/app/pages/user-account/user-account-page.component.ts - 47 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 35 Appearance Weergave - apps/client/src/app/pages/user-account/user-account-page.html - 201 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 113 Auto Automatisch - apps/client/src/app/pages/user-account/user-account-page.html - 216 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 125 Light Licht - apps/client/src/app/pages/user-account/user-account-page.html - 217 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 126 Dark Donker - apps/client/src/app/pages/user-account/user-account-page.html - 218 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 @@ -3237,35 +3253,35 @@ Gemeenschap apps/client/src/app/app.component.html - 104 + 105 - apps/client/src/app/pages/features/features-page.html - 259 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 61 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 65 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 69 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 73 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 81 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3289,7 +3305,7 @@ Symbool toewijzen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 160 @@ -3325,7 +3341,7 @@ Account aanmaken apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3393,7 +3409,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3432,8 +3448,8 @@ Valid until Geldig tot - apps/client/src/app/pages/user-account/user-account-page.html - 24 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 17 @@ -3484,28 +3500,28 @@ 23 - + Protection for sensitive information like absolute performances and quantity values - Bescherming voor gevoelige informatie zoals absoluut rendement en hoeveelheden + Bescherming voor gevoelige informatie zoals absoluut rendement en hoeveelheden - apps/client/src/app/pages/user-account/user-account-page.html - 85,88 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8,11 - + Distraction-free experience for turbulent times - Afleidingsvrije ervaring voor roerige tijden + Afleidingsvrije ervaring voor roerige tijden - apps/client/src/app/pages/user-account/user-account-page.html - 228,230 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 137,139 - + Sneak peek at upcoming functionality - Voorproefje van nieuwe functionaliteit + Voorproefje van nieuwe functionaliteit - apps/client/src/app/pages/user-account/user-account-page.html - 263,265 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170,172 @@ -3741,7 +3757,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3884,8 +3900,8 @@ Renew Vernieuw - apps/client/src/app/pages/user-account/user-account-page.html - 44 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 29 @@ -3977,7 +3993,7 @@ Wil je dit platform echt verwijderen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4039,6 +4055,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts 31 + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + Equity @@ -4056,14 +4080,6 @@ 15 - - Set as Benchmark - Instellen als benchmark - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 45 - - Manage Benchmarks Beheer Benchmarks @@ -4133,7 +4149,7 @@ Persoonlijke financiën apps/client/src/app/app.component.html - 54 + 55 @@ -4141,7 +4157,7 @@ Veelgestelde Vragen apps/client/src/app/app.component.html - 75 + 76 @@ -4353,7 +4369,7 @@ Scraper instellingen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 171 @@ -4491,6 +4507,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 63 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + Origin @@ -4603,6 +4627,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 68 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + Region @@ -4715,6 +4747,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 73 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + Available in @@ -4827,6 +4867,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 78,80 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + ✅ Yes @@ -4939,6 +4987,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 100 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 @@ -5155,6 +5219,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 @@ -5371,6 +5451,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 @@ -5587,6 +5683,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 172 @@ -5807,6 +5919,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 102 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -6023,6 +6151,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 @@ -6239,6 +6383,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -6455,6 +6615,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + ❌ No @@ -6567,6 +6735,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 109,110 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + Self-Hosting @@ -6679,6 +6855,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 114,116 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + Use anonymously @@ -6791,6 +6975,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 141,143 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + Free Plan @@ -6903,6 +7095,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 160,162 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + Notes @@ -7015,6 +7215,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -7127,10 +7335,26 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 215,218 - - - Personal Finance Tools - Tools voor persoonlijke financiën + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + + Personal Finance Tools + Tools voor persoonlijke financiën + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 287 @@ -7444,8 +7668,8 @@ Biometric Authentication Biometrische authenticatie - apps/client/src/app/pages/user-account/user-account-page.html - 243 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 @@ -7528,8 +7752,8 @@ Export Data Exporteer Data - apps/client/src/app/pages/user-account/user-account-page.html - 284 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 191 @@ -7621,7 +7845,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7813,7 +8037,7 @@ Leden van over de hele wereld gebruikenGhostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7821,7 +8045,7 @@ Hoe Ghostfolio werkt? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7829,7 +8053,7 @@ Anoniem aanmelden* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7837,7 +8061,7 @@ * geen e-mailadres of creditcard nodig apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7845,7 +8069,7 @@ Voeg al je historische transacties toe apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7853,7 +8077,7 @@ Krijg waardevolle inzichten in de samenstelling van je portefeuille apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7861,7 +8085,7 @@ Ben je er klaar voor? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7869,7 +8093,7 @@ Nu lid worden of bekijk het voorbeeld account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7881,7 +8105,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7897,7 +8121,7 @@ Aan de slag in slechts 3 stappen apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7929,11 +8153,11 @@ apps/client/src/app/components/header/header.component.ts - 47 + 72 apps/client/src/app/components/header/header.component.ts - 52 + 77 apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -7991,6 +8215,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 26 @@ -8059,6 +8287,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 26 @@ -8101,11 +8333,11 @@ apps/client/src/app/components/header/header.component.ts - 46 + 71 apps/client/src/app/components/header/header.component.ts - 51 + 76 apps/client/src/app/pages/about/about-page.component.ts @@ -8175,6 +8407,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 25 @@ -8243,6 +8479,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 25 @@ -8305,11 +8545,11 @@ apps/client/src/app/components/header/header.component.ts - 48 + 73 apps/client/src/app/components/header/header.component.ts - 53 + 78 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -8337,11 +8577,11 @@ apps/client/src/app/components/header/header.component.ts - 49 + 74 apps/client/src/app/components/header/header.component.ts - 54 + 79 apps/client/src/app/components/home-summary/home-summary.component.ts @@ -8351,6 +8591,10 @@ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts 14 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + apps/client/src/app/core/http-response.interceptor.ts 80 @@ -8397,7 +8641,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8433,11 +8677,11 @@ apps/client/src/app/components/header/header.component.ts - 50 + 75 apps/client/src/app/components/header/header.component.ts - 56 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -8455,6 +8699,10 @@ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts 14 + + apps/client/src/app/pages/features/features-page.component.ts + 18 + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 @@ -8483,6 +8731,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 28 @@ -8551,6 +8803,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 28 @@ -8715,6 +8971,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -8827,6 +9091,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13,25 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -8939,6 +9211,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26,36 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + Let’s dive deeper into the detailed comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -9051,6 +9331,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37,43 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + Starting from / year @@ -9163,6 +9451,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 180,182 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + Starting from / year @@ -9275,6 +9571,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185,186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + open-source-alternative-to @@ -9399,6 +9703,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 199,208 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + Ready to take your investments to the next level? @@ -9511,6 +9823,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 211,214 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + Get Started @@ -9623,29 +9943,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 220,222 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + Switzerland Zwitserland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 49 + 51 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 61 + 63 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 333 + 351 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 344 + 362 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 345 + 363 @@ -9653,15 +9981,15 @@ Wereldwijd apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 51 + 53 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 182 + 193 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 283 + 294 @@ -9669,39 +9997,43 @@ Verenigde Staten apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 80 + 82 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 114 + 116 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 168 + 126 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 193 + 179 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 195 + 204 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 259 + 206 apps/client/src/app/pages/resources/personal-finance-tools/products.ts 270 + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 281 + Belgium België apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 92 + 94 @@ -9709,31 +10041,31 @@ Duitsland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 71 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 103 + 105 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 148 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 158 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 157 + 168 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 180 + 191 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 215 + 226 @@ -9741,7 +10073,7 @@ Oostenrijk apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9749,7 +10081,7 @@ Italië apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9757,7 +10089,7 @@ Nederland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9765,7 +10097,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9773,7 +10105,7 @@ Nieuw-Zeeland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9781,11 +10113,11 @@ Tsjechië apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 303 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 322 + 340 @@ -9909,7 +10241,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9933,11 +10265,11 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 314 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 312 + 330 @@ -9953,7 +10285,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9961,7 +10293,115 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 137 + + + + Transfer Cash Balance + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 8 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Benchmark + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 154 + + + + Version + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + Settings + Settings + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + From + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + To + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 21 + + + + Transfer + Transfer + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 50 + + + + Finland + Finland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 322 + + + + Membership + Membership + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Access + Access + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + Find holding... + Find holding... + + libs/ui/src/lib/assistant/assistant.component.ts + 87 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 62 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 19a8df179..f5050eab8 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -6,7 +6,7 @@ O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo. apps/client/src/app/app.component.html - 174,175 + 175,176 @@ -17,8 +17,8 @@ 15 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 6 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 @@ -38,15 +38,15 @@ apps/client/src/app/components/admin-jobs/admin-jobs.html - 20 + 28 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 12 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 17 + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 libs/ui/src/lib/activities-table/activities-table.component.html @@ -86,11 +86,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 65 + 76 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 36 + 44 @@ -106,11 +106,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 93 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 88 + 81 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -134,7 +134,7 @@ Nome apps/client/src/app/components/accounts-table/accounts-table.component.html - 22 + 33 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -154,7 +154,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 12 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -174,7 +174,7 @@ Total apps/client/src/app/components/accounts-table/accounts-table.component.html - 38 + 49 libs/ui/src/lib/activities-table/activities-table.component.html @@ -186,15 +186,15 @@ Moeda apps/client/src/app/components/accounts-table/accounts-table.component.html - 48 + 59 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 69 + 62 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 13 + 22 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -214,11 +214,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 110 + 121 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 23 + 32 @@ -226,11 +226,15 @@ Valor apps/client/src/app/components/accounts-table/accounts-table.component.html - 145 + 156 apps/client/src/app/components/accounts-table/accounts-table.component.html - 180 + 191 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 31 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -278,7 +282,7 @@ Editar apps/client/src/app/components/accounts-table/accounts-table.component.html - 246 + 257 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -298,7 +302,7 @@ Eliminar apps/client/src/app/components/accounts-table/accounts-table.component.html - 254 + 265 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -322,7 +326,7 @@ Pretende realmente eliminar esta conta? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 82 + 83 @@ -330,7 +334,7 @@ Símbolo apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 50 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -338,7 +342,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 57 @@ -346,7 +350,7 @@ Fonte de dados apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 59 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -362,7 +366,7 @@ Tentativas apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 68 @@ -370,7 +374,7 @@ Criado apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 77 @@ -378,7 +382,7 @@ Terminado apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 86 @@ -386,7 +390,7 @@ Estado apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 95 @@ -394,7 +398,7 @@ Eliminar Tarefas apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 140 @@ -402,7 +406,7 @@ Perfil de Ativos apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 37 @@ -410,7 +414,7 @@ Histórico de Dados de Mercado apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 42 @@ -418,7 +422,7 @@ Visualizar dados apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 155 @@ -426,7 +430,7 @@ Ver Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 162 @@ -434,7 +438,7 @@ Apagar Tarefa apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 165 @@ -482,7 +486,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 195 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -496,9 +500,17 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 13 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 79 + 95 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 43 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -508,10 +520,6 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 37 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 25 - Save @@ -522,7 +530,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 202 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -536,18 +544,18 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 20 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 86 + 102 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 364 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 32 - Filter by... @@ -566,7 +574,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 86 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -586,7 +594,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 95 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -606,7 +614,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 72 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -618,7 +626,7 @@ Número de Atividades apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -678,7 +686,7 @@ Por favor, adicione uma moeda: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -686,7 +694,7 @@ Deseja realmente eliminar este cupão? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -694,7 +702,7 @@ Deseja realmente excluir esta moeda? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -702,7 +710,7 @@ Deseja realmente limpar a cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -710,7 +718,7 @@ Por favor, defina a sua mensagem do sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -718,7 +726,7 @@ Número de Utilizadores apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -726,7 +734,7 @@ por Utilizador apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -734,7 +742,7 @@ Taxas de Câmbio apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -742,7 +750,7 @@ Adicionar Moeda apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -750,7 +758,7 @@ Mensagem de Sistema apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -758,7 +766,7 @@ Definir Mensagem apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -766,7 +774,7 @@ Modo Somente Leitura apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -774,7 +782,7 @@ Cupões apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -782,7 +790,7 @@ Adicionar apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -790,7 +798,7 @@ Manutenção apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -798,7 +806,7 @@ Limpar Cache apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -818,7 +826,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 189 @@ -846,7 +854,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 221 apps/client/src/app/pages/accounts/accounts-page.html @@ -930,7 +938,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 203 @@ -942,7 +950,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 213 @@ -954,7 +962,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 237 @@ -962,7 +970,7 @@ Recursos apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -970,7 +978,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 248 apps/client/src/app/pages/resources/resources-page.html @@ -982,7 +990,7 @@ Preços apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -990,11 +998,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 260 apps/client/src/app/components/header/header.component.html - 304 + 329 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1110,7 +1126,7 @@ Sobre apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -1118,7 +1134,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 316 @@ -1126,7 +1142,7 @@ Eu apps/client/src/app/components/header/header.component.html - 145 + 170 @@ -1134,7 +1150,7 @@ O meu Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 228 @@ -1142,7 +1158,7 @@ Sobre o Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 268 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1154,11 +1170,11 @@ Funcionalidades apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 303 apps/client/src/app/pages/features/features-page.html @@ -1170,11 +1186,11 @@ Mercados apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 345 apps/client/src/app/components/home-market/home-market.html @@ -1190,7 +1206,7 @@ Iniciar sessão apps/client/src/app/components/header/header.component.html - 333 + 358 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1202,7 +1218,7 @@ Começar apps/client/src/app/components/header/header.component.html - 345 + 370 @@ -1210,7 +1226,7 @@ Iniciar sessão apps/client/src/app/components/header/header.component.ts - 131 + 169 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -1222,7 +1238,7 @@ Oops! Token de Segurança Incorreto. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1346,7 +1362,7 @@ apps/client/src/app/pages/landing/landing-page.html - 430 + 435 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1501,7 +1517,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1637,7 +1653,7 @@ Setor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 110 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1649,7 +1665,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 119 apps/client/src/app/components/admin-users/admin-users.html @@ -1665,7 +1681,7 @@ Setores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1681,7 +1697,7 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 135 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1837,7 +1853,7 @@ Changelog apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1849,7 +1865,7 @@ Licença apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1873,7 +1889,7 @@ Política de Privacidade apps/client/src/app/app.component.html - 89 + 90 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1885,55 +1901,55 @@ O meu Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 12 + 32 Auto Auto - apps/client/src/app/pages/user-account/user-account-page.component.ts - 47 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 35 Please enter your coupon code: Por favor, insira o seu código de cupão: - apps/client/src/app/pages/user-account/user-account-page.component.ts - 263 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 Could not redeem coupon code Não foi possível resgatar o código de cupão - apps/client/src/app/pages/user-account/user-account-page.component.ts - 273 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 Coupon code has been redeemed Código de cupão foi resgatado - apps/client/src/app/pages/user-account/user-account-page.component.ts - 285 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 Reload Atualizar - apps/client/src/app/pages/user-account/user-account-page.component.ts - 286 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 Do you really want to remove this sign in method? Deseja realmente remover este método de início de sessão? - apps/client/src/app/pages/user-account/user-account-page.component.ts - 332 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 184 @@ -1943,10 +1959,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 75 - - apps/client/src/app/pages/user-account/user-account-page.html - 4 - libs/ui/src/lib/activities-table/activities-table.component.html 379 @@ -1956,68 +1968,68 @@ Membership Filiação - apps/client/src/app/pages/user-account/user-account-page.html - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 2 Upgrade Atualizar - apps/client/src/app/pages/user-account/user-account-page.html - 39 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 26 per year por ano - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 41 - apps/client/src/app/pages/user-account/user-account-page.html - 56 + apps/client/src/app/pages/pricing/pricing-page.html + 332 Try Premium Experimentar Premium - apps/client/src/app/pages/user-account/user-account-page.html - 64 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 49 Redeem Coupon Resgatar Cupão - apps/client/src/app/pages/user-account/user-account-page.html - 77 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 62 Presenter View Vista do Apresentador - apps/client/src/app/pages/user-account/user-account-page.html - 84 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 Base Currency Moeda Base - apps/client/src/app/pages/user-account/user-account-page.html - 103 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 26 Language Língua - apps/client/src/app/pages/user-account/user-account-page.html - 127 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 47 @@ -2036,108 +2048,108 @@ Locale Localidade - apps/client/src/app/pages/user-account/user-account-page.html - 173 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 90 Date and number format Formato de números e datas - apps/client/src/app/pages/user-account/user-account-page.html - 175 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 Zen Mode Modo Zen - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 136 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 Appearance Aparência - apps/client/src/app/pages/user-account/user-account-page.html - 201 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 113 Auto Auto - apps/client/src/app/pages/user-account/user-account-page.html - 216 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 125 Light Claro - apps/client/src/app/pages/user-account/user-account-page.html - 217 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 126 Dark Escuro - apps/client/src/app/pages/user-account/user-account-page.html - 218 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 - - Sign in with fingerprint - Iniciar sessão com impressão digital + + Sign in with fingerprint + Iniciar sessão com impressão digital - apps/client/src/app/pages/user-account/user-account-page.html - 244,246 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 Experimental Features Funcionalidades Experimentais - apps/client/src/app/pages/user-account/user-account-page.html - 262 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 User ID ID do Utilizador - apps/client/src/app/pages/user-account/user-account-page.html - 277 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 184 Granted Access Acesso Concedido - apps/client/src/app/pages/user-account/user-account-page.html - 295 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 Grant access Conceder Acesso - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 2 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 Public Público - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 19 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 @@ -2153,7 +2165,7 @@ Atualizar conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -2161,7 +2173,7 @@ Adicionar conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -2177,7 +2189,7 @@ ID da Conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 89 @@ -2201,7 +2213,7 @@ Blog apps/client/src/app/app.component.html - 67 + 68 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -2309,7 +2321,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -2329,7 +2341,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2437,11 +2449,11 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 182 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 72 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2733,7 +2745,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 49 + 38 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -2759,6 +2771,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Pricing @@ -3277,7 +3293,7 @@ Mapeamento de Símbolo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 160 @@ -3285,7 +3301,7 @@ Registo do Utilizador apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3293,35 +3309,35 @@ Comunidade apps/client/src/app/app.component.html - 104 + 105 - apps/client/src/app/pages/features/features-page.html - 259 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 61 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 65 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 69 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 73 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 81 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3345,7 +3361,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3432,8 +3448,8 @@ Valid until Válido até - apps/client/src/app/pages/user-account/user-account-page.html - 24 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 17 @@ -3484,28 +3500,28 @@ 23 - + Protection for sensitive information like absolute performances and quantity values - Proteção para informações sensíveis, como desempenhos absolutos e valores quantitativos + Proteção para informações sensíveis, como desempenhos absolutos e valores quantitativos - apps/client/src/app/pages/user-account/user-account-page.html - 85,88 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8,11 - + Distraction-free experience for turbulent times - Experiência sem distrações para tempos turbulentos + Experiência sem distrações para tempos turbulentos - apps/client/src/app/pages/user-account/user-account-page.html - 228,230 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 137,139 - + Sneak peek at upcoming functionality - Acesso antecipado a funcionalidades futuras + Acesso antecipado a funcionalidades futuras - apps/client/src/app/pages/user-account/user-account-page.html - 263,265 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170,172 @@ -3741,7 +3757,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3884,8 +3900,8 @@ Renew Renovar - apps/client/src/app/pages/user-account/user-account-page.html - 44 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 29 @@ -3977,7 +3993,7 @@ Deseja mesmo eliminar esta plataforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4039,6 +4055,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts 31 + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + Equity @@ -4056,14 +4080,6 @@ 15 - - Set as Benchmark - Definir como Referência - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 45 - - Manage Benchmarks Gerir Referências @@ -4133,7 +4149,7 @@ Finanças pessoais apps/client/src/app/app.component.html - 54 + 55 @@ -4141,7 +4157,7 @@ Perguntas Frequentes (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4353,7 +4369,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 171 @@ -4491,6 +4507,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 63 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + Origin @@ -4603,6 +4627,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 68 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + Region @@ -4715,6 +4747,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 73 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + Available in @@ -4827,6 +4867,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 78,80 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + ✅ Yes @@ -4939,6 +4987,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 100 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 @@ -5155,6 +5219,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 @@ -5371,6 +5451,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 @@ -5587,6 +5683,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 172 @@ -5807,6 +5919,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 102 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -6023,6 +6151,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 @@ -6239,6 +6383,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -6455,6 +6615,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + ❌ No @@ -6567,6 +6735,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 109,110 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + Self-Hosting @@ -6679,6 +6855,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 114,116 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + Use anonymously @@ -6791,6 +6975,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 141,143 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + Free Plan @@ -6903,6 +7095,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 160,162 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + Notes @@ -7015,6 +7215,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -7127,10 +7335,26 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 215,218 - - - Personal Finance Tools - Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + + Personal Finance Tools + Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 287 @@ -7444,8 +7668,8 @@ Biometric Authentication Biometric Authentication - apps/client/src/app/pages/user-account/user-account-page.html - 243 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 @@ -7528,8 +7752,8 @@ Export Data Export Data - apps/client/src/app/pages/user-account/user-account-page.html - 284 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 191 @@ -7621,7 +7845,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7813,7 +8037,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7821,7 +8045,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7829,7 +8053,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7837,7 +8061,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7845,7 +8069,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7853,7 +8077,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7861,7 +8085,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7869,7 +8093,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7881,7 +8105,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7897,7 +8121,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7929,11 +8153,11 @@ apps/client/src/app/components/header/header.component.ts - 47 + 72 apps/client/src/app/components/header/header.component.ts - 52 + 77 apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -7991,6 +8215,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 26 @@ -8059,6 +8287,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 26 @@ -8101,11 +8333,11 @@ apps/client/src/app/components/header/header.component.ts - 46 + 71 apps/client/src/app/components/header/header.component.ts - 51 + 76 apps/client/src/app/pages/about/about-page.component.ts @@ -8175,6 +8407,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 25 @@ -8243,6 +8479,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 25 @@ -8305,11 +8545,11 @@ apps/client/src/app/components/header/header.component.ts - 48 + 73 apps/client/src/app/components/header/header.component.ts - 53 + 78 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -8337,11 +8577,11 @@ apps/client/src/app/components/header/header.component.ts - 49 + 74 apps/client/src/app/components/header/header.component.ts - 54 + 79 apps/client/src/app/components/home-summary/home-summary.component.ts @@ -8351,6 +8591,10 @@ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts 14 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + apps/client/src/app/core/http-response.interceptor.ts 80 @@ -8397,7 +8641,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8433,11 +8677,11 @@ apps/client/src/app/components/header/header.component.ts - 50 + 75 apps/client/src/app/components/header/header.component.ts - 56 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -8455,6 +8699,10 @@ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts 14 + + apps/client/src/app/pages/features/features-page.component.ts + 18 + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 @@ -8483,6 +8731,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 28 @@ -8551,6 +8803,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 28 @@ -8715,6 +8971,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -8827,6 +9091,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13,25 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -8939,6 +9211,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26,36 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + Let’s dive deeper into the detailed comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -9051,6 +9331,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37,43 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + Starting from / year @@ -9163,6 +9451,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 180,182 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + Starting from / year @@ -9275,6 +9571,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185,186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + open-source-alternative-to @@ -9399,6 +9703,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 199,208 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + Ready to take your investments to the next level? @@ -9511,6 +9823,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 211,214 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + Get Started @@ -9623,29 +9943,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 220,222 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + Switzerland Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 49 + 51 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 61 + 63 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 333 + 351 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 344 + 362 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 345 + 363 @@ -9653,15 +9981,15 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 51 + 53 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 182 + 193 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 283 + 294 @@ -9669,39 +9997,43 @@ United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 80 + 82 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 114 + 116 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 168 + 126 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 193 + 179 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 195 + 204 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 259 + 206 apps/client/src/app/pages/resources/personal-finance-tools/products.ts 270 + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 281 + Belgium Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 92 + 94 @@ -9709,31 +10041,31 @@ Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 71 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 103 + 105 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 148 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 158 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 157 + 168 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 180 + 191 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 215 + 226 @@ -9741,7 +10073,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9749,7 +10081,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9757,7 +10089,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9765,7 +10097,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9773,7 +10105,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9781,11 +10113,11 @@ Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 303 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 322 + 340 @@ -9909,7 +10241,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9933,11 +10265,11 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 314 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 312 + 330 @@ -9953,7 +10285,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9961,7 +10293,115 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 137 + + + + Transfer Cash Balance + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 8 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Benchmark + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 154 + + + + Version + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + Settings + Settings + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + From + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + To + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 21 + + + + Transfer + Transfer + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 50 + + + + Finland + Finland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 322 + + + + Membership + Membership + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Access + Access + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + Find holding... + Find holding... + + libs/ui/src/lib/assistant/assistant.component.ts + 87 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 62 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 61cdc0972..6c9b733c5 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -26,11 +26,11 @@ apps/client/src/app/components/header/header.component.ts - 46 + 71 apps/client/src/app/components/header/header.component.ts - 51 + 76 apps/client/src/app/pages/about/about-page.component.ts @@ -100,6 +100,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 25 @@ -168,6 +172,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 25 @@ -214,11 +222,11 @@ apps/client/src/app/components/header/header.component.ts - 47 + 72 apps/client/src/app/components/header/header.component.ts - 52 + 77 apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -276,6 +284,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 26 @@ -344,6 +356,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 26 @@ -390,11 +406,11 @@ apps/client/src/app/components/header/header.component.ts - 48 + 73 apps/client/src/app/components/header/header.component.ts - 53 + 78 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -422,11 +438,11 @@ apps/client/src/app/components/header/header.component.ts - 49 + 74 apps/client/src/app/components/header/header.component.ts - 54 + 79 apps/client/src/app/components/home-summary/home-summary.component.ts @@ -436,6 +452,10 @@ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts 14 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + apps/client/src/app/core/http-response.interceptor.ts 80 @@ -498,7 +518,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -534,11 +554,11 @@ apps/client/src/app/components/header/header.component.ts - 50 + 75 apps/client/src/app/components/header/header.component.ts - 56 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -556,6 +576,10 @@ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts 14 + + apps/client/src/app/pages/features/features-page.component.ts + 18 + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 @@ -584,6 +608,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 28 @@ -652,6 +680,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 28 @@ -678,7 +710,7 @@ Kişisel Finans apps/client/src/app/app.component.html - 54 + 55 @@ -686,11 +718,11 @@ Piyasalar apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 345 apps/client/src/app/components/home-market/home-market.html @@ -706,7 +738,7 @@ Piyasalar apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -714,7 +746,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 248 apps/client/src/app/pages/resources/resources-page.html @@ -726,7 +758,7 @@ Hakkında apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -734,7 +766,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 316 @@ -742,7 +774,7 @@ Blog apps/client/src/app/app.component.html - 67 + 68 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -822,7 +854,7 @@ Değişiklik Günlüğü apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -834,11 +866,11 @@ Özellikler apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 303 apps/client/src/app/pages/features/features-page.html @@ -850,7 +882,7 @@ Sıkça Sorulan Sorular (SSS) apps/client/src/app/app.component.html - 75 + 76 @@ -858,7 +890,7 @@ Lisans apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -870,7 +902,7 @@ Fiyatlandırma apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -878,11 +910,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 260 apps/client/src/app/components/header/header.component.html - 304 + 329 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -998,7 +1038,7 @@ Gizlilik Politikası apps/client/src/app/app.component.html - 89 + 90 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1010,35 +1050,35 @@ Topluluk apps/client/src/app/app.component.html - 104 + 105 - apps/client/src/app/pages/features/features-page.html - 259 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 61 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 65 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 69 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 73 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 81 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -1046,7 +1086,7 @@ Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez. apps/client/src/app/app.component.html - 174,175 + 175,176 @@ -1057,8 +1097,8 @@ 15 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 6 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 @@ -1078,15 +1118,15 @@ apps/client/src/app/components/admin-jobs/admin-jobs.html - 20 + 28 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 12 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 17 + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1126,11 +1166,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 110 + 121 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 23 + 32 @@ -1150,11 +1190,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 65 + 76 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 36 + 44 @@ -1170,11 +1210,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 93 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 88 + 81 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -1198,7 +1238,7 @@ Ad apps/client/src/app/components/accounts-table/accounts-table.component.html - 22 + 33 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1218,7 +1258,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 12 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1238,7 +1278,7 @@ Toplam apps/client/src/app/components/accounts-table/accounts-table.component.html - 38 + 49 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1250,15 +1290,15 @@ Para Birimi apps/client/src/app/components/accounts-table/accounts-table.component.html - 48 + 59 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 69 + 62 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 13 + 22 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1274,11 +1314,15 @@ Değer apps/client/src/app/components/accounts-table/accounts-table.component.html - 145 + 156 apps/client/src/app/components/accounts-table/accounts-table.component.html - 180 + 191 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 31 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1326,7 +1370,7 @@ Düzenle apps/client/src/app/components/accounts-table/accounts-table.component.html - 246 + 257 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1346,7 +1390,7 @@ Sil apps/client/src/app/components/accounts-table/accounts-table.component.html - 254 + 265 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1370,7 +1414,7 @@ Bu hesabı silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 82 + 83 @@ -1378,7 +1422,7 @@ Sembol apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 50 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1386,7 +1430,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 57 @@ -1394,7 +1438,7 @@ Veri Kaynağı apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 59 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1410,7 +1454,7 @@ Deneme apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 68 @@ -1418,7 +1462,7 @@ Oluşturuldu apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 77 @@ -1426,7 +1470,7 @@ Tamamlandı apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 86 @@ -1434,7 +1478,7 @@ Durum apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 95 @@ -1442,7 +1486,7 @@ İşleri Sil apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 140 @@ -1450,7 +1494,7 @@ Varlık Profili apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 37 @@ -1458,7 +1502,7 @@ Tarihsel Piyasa Verisi apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 42 @@ -1466,7 +1510,7 @@ Veri Gör apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 155 @@ -1474,7 +1518,7 @@ Hata İzini Görüntüle apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 162 @@ -1482,7 +1526,7 @@ İşleri Sil apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 165 @@ -1530,7 +1574,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 195 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1544,9 +1588,17 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 13 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 79 + 95 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 43 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1556,10 +1608,6 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 37 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 25 - Save @@ -1570,7 +1618,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 202 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1584,18 +1632,18 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 20 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 86 + 102 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 364 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 32 - Currencies @@ -1638,7 +1686,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 86 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1658,7 +1706,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 95 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1678,7 +1726,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 72 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1761,20 +1809,12 @@ 30 - - Set as Benchmark - Karşılaştırma Ölçütü Olarak Ayarla - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 45 - - Sector Sektör apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 110 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1786,7 +1826,7 @@ Ülke apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 119 apps/client/src/app/components/admin-users/admin-users.html @@ -1802,7 +1842,7 @@ Sektörler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1818,7 +1858,7 @@ Ülkeler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 135 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1830,7 +1870,7 @@ Sembol Eşleştirme apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 160 @@ -1838,7 +1878,7 @@ Veri Toplayıcı Yapılandırması apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 171 @@ -1846,11 +1886,11 @@ Not apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 182 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 72 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1882,7 +1922,7 @@ Lütfen bir para birimi giriniz: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -1890,7 +1930,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -1898,7 +1938,7 @@ Bu para birimini silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -1906,7 +1946,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -1914,7 +1954,7 @@ Lütfen sistem mesajınızı belirleyin: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -1922,7 +1962,7 @@ Kullanıcı Sayısı apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -1930,7 +1970,7 @@ İşlem Sayısı apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -1938,7 +1978,7 @@ Kullanıcı başına apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -1946,7 +1986,7 @@ Döviz Kurları apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -1954,7 +1994,7 @@ Para Birimi Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -1978,7 +2018,7 @@ Kullanıcı Kaydı apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -1986,7 +2026,7 @@ Salt okunur mod apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -1994,7 +2034,7 @@ Sistem Mesajı apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -2002,7 +2042,7 @@ Mesaj Belirle apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -2010,7 +2050,7 @@ Kupon apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -2018,7 +2058,7 @@ Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -2026,7 +2066,7 @@ Genel Ayarlar apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -2034,7 +2074,7 @@ Önbelleği temizle apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -2074,7 +2114,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 221 apps/client/src/app/pages/accounts/accounts-page.html @@ -2086,7 +2126,7 @@ Bu platformu silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -2130,7 +2170,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 189 @@ -2242,7 +2282,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 203 @@ -2254,7 +2294,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 213 @@ -2266,7 +2306,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 237 @@ -2274,7 +2314,7 @@ Ben apps/client/src/app/components/header/header.component.html - 145 + 170 @@ -2282,7 +2322,7 @@ Ghostfolio'm apps/client/src/app/components/header/header.component.html - 203 + 228 @@ -2290,7 +2330,7 @@ Ghostfolio Hakkında apps/client/src/app/components/header/header.component.html - 243 + 268 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2302,7 +2342,7 @@ Giriş apps/client/src/app/components/header/header.component.html - 333 + 358 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2314,7 +2354,7 @@ Haydi Başlayalım apps/client/src/app/components/header/header.component.html - 345 + 370 @@ -2322,7 +2362,7 @@ Giriş apps/client/src/app/components/header/header.component.ts - 131 + 169 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -2334,7 +2374,7 @@ Hay Allah! Güvenlik anahtarı yanlış. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -2526,7 +2566,7 @@ apps/client/src/app/pages/landing/landing-page.html - 430 + 435 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -2681,7 +2721,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -2837,7 +2877,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3181,7 +3221,7 @@ Update account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -3189,7 +3229,7 @@ Add account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -3197,7 +3237,7 @@ Account ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 89 @@ -3243,6 +3283,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts 31 + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + Users @@ -3265,7 +3313,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3408,12 +3456,12 @@ Zen Mode Zen Mode - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 136 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 @@ -3469,7 +3517,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 49 + 38 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -3493,7 +3541,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3505,7 +3553,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3537,7 +3585,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -3557,7 +3605,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -3773,7 +3821,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -3781,7 +3829,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -3789,7 +3837,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -3797,7 +3845,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -3805,7 +3853,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -3813,7 +3861,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -3821,7 +3869,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -3829,7 +3877,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -3837,7 +3885,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -3955,10 +4003,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 75 - - apps/client/src/app/pages/user-account/user-account-page.html - 4 - libs/ui/src/lib/activities-table/activities-table.component.html 379 @@ -4487,6 +4531,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Pricing @@ -4955,6 +5003,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -5067,6 +5123,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13,25 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -5179,6 +5243,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26,36 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + Let’s dive deeper into the detailed comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -5291,6 +5363,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37,43 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + Founded @@ -5403,6 +5483,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 63 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + Origin @@ -5515,6 +5603,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 68 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + Region @@ -5627,6 +5723,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 73 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + Available in @@ -5739,6 +5843,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 78,80 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + ✅ Yes @@ -5851,6 +5963,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 100 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 @@ -6067,6 +6195,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 @@ -6283,6 +6427,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 @@ -6499,6 +6659,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 172 @@ -6719,6 +6895,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 102 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -6935,6 +7127,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 @@ -7151,6 +7359,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -7367,6 +7591,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + ❌ No @@ -7479,6 +7711,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 109,110 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + Self-Hosting @@ -7591,6 +7831,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 114,116 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + Use anonymously @@ -7703,6 +7951,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 141,143 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + Free Plan @@ -7815,6 +8071,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 160,162 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + Starting from / year @@ -7927,6 +8191,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 180,182 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + Starting from / year @@ -8039,6 +8311,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185,186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + Notes @@ -8151,6 +8431,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + Please note that the information provided is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. @@ -8263,6 +8551,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 199,208 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + Ready to take your investments to the next level? @@ -8375,6 +8671,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 211,214 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -8487,6 +8791,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 215,218 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + Get Started @@ -8599,6 +8911,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 220,222 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + Personal Finance Tools @@ -8711,29 +9031,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 287 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + Switzerland Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 49 + 51 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 61 + 63 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 333 + 351 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 344 + 362 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 345 + 363 @@ -8741,15 +9069,15 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 51 + 53 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 182 + 193 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 283 + 294 @@ -8757,39 +9085,43 @@ United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 80 + 82 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 114 + 116 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 168 + 126 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 193 + 179 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 195 + 204 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 259 + 206 apps/client/src/app/pages/resources/personal-finance-tools/products.ts 270 + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 281 + Belgium Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 92 + 94 @@ -8797,31 +9129,31 @@ Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 71 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 103 + 105 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 148 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 158 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 157 + 168 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 180 + 191 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 215 + 226 @@ -8829,7 +9161,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -8837,7 +9169,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -8845,7 +9177,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -8853,7 +9185,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -8861,7 +9193,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -8869,11 +9201,11 @@ Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 303 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 322 + 340 @@ -8904,16 +9236,16 @@ Grant access Grant access - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 2 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 Public Public - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 19 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 @@ -8921,259 +9253,259 @@ My Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 12 + 32 Auto Auto - apps/client/src/app/pages/user-account/user-account-page.component.ts - 47 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 35 Please enter your coupon code: Please enter your coupon code: - apps/client/src/app/pages/user-account/user-account-page.component.ts - 263 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 Could not redeem coupon code Could not redeem coupon code - apps/client/src/app/pages/user-account/user-account-page.component.ts - 273 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 Coupon code has been redeemed Coupon code has been redeemed - apps/client/src/app/pages/user-account/user-account-page.component.ts - 285 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 Reload Reload - apps/client/src/app/pages/user-account/user-account-page.component.ts - 286 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 Do you really want to remove this sign in method? Do you really want to remove this sign in method? - apps/client/src/app/pages/user-account/user-account-page.component.ts - 332 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 184 Membership Membership - apps/client/src/app/pages/user-account/user-account-page.html - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 2 Valid until Valid until - apps/client/src/app/pages/user-account/user-account-page.html - 24 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 17 Upgrade Upgrade - apps/client/src/app/pages/user-account/user-account-page.html - 39 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 26 Renew Renew - apps/client/src/app/pages/user-account/user-account-page.html - 44 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 29 per year per year - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 41 - apps/client/src/app/pages/user-account/user-account-page.html - 56 + apps/client/src/app/pages/pricing/pricing-page.html + 332 Try Premium Try Premium - apps/client/src/app/pages/user-account/user-account-page.html - 64 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 49 Redeem Coupon Redeem Coupon - apps/client/src/app/pages/user-account/user-account-page.html - 77 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 62 Presenter View Presenter View - apps/client/src/app/pages/user-account/user-account-page.html - 84 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 - + Protection for sensitive information like absolute performances and quantity values Protection for sensitive information like absolute performances and quantity values - apps/client/src/app/pages/user-account/user-account-page.html - 85,88 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8,11 Base Currency Base Currency - apps/client/src/app/pages/user-account/user-account-page.html - 103 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 26 Language Language - apps/client/src/app/pages/user-account/user-account-page.html - 127 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 47 Locale Locale - apps/client/src/app/pages/user-account/user-account-page.html - 173 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 90 Date and number format Date and number format - apps/client/src/app/pages/user-account/user-account-page.html - 175 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 Appearance Appearance - apps/client/src/app/pages/user-account/user-account-page.html - 201 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 113 Auto Auto - apps/client/src/app/pages/user-account/user-account-page.html - 216 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 125 Light Light - apps/client/src/app/pages/user-account/user-account-page.html - 217 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 126 Dark Dark - apps/client/src/app/pages/user-account/user-account-page.html - 218 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 - + Distraction-free experience for turbulent times Distraction-free experience for turbulent times - apps/client/src/app/pages/user-account/user-account-page.html - 228,230 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 137,139 Biometric Authentication Biometric Authentication - apps/client/src/app/pages/user-account/user-account-page.html - 243 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 - - Sign in with fingerprint - Sign in with fingerprint + + Sign in with fingerprint + Sign in with fingerprint - apps/client/src/app/pages/user-account/user-account-page.html - 244,246 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 Experimental Features Experimental Features - apps/client/src/app/pages/user-account/user-account-page.html - 262 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 - + Sneak peek at upcoming functionality Sneak peek at upcoming functionality - apps/client/src/app/pages/user-account/user-account-page.html - 263,265 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170,172 User ID User ID - apps/client/src/app/pages/user-account/user-account-page.html - 277 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 184 Export Data Export Data - apps/client/src/app/pages/user-account/user-account-page.html - 284 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 191 Granted Access Granted Access - apps/client/src/app/pages/user-account/user-account-page.html - 295 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 @@ -9909,7 +10241,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9933,11 +10265,11 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 314 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 312 + 330 @@ -9953,7 +10285,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9961,7 +10293,115 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 137 + + + + Transfer Cash Balance + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 8 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Benchmark + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 154 + + + + Version + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + Settings + Settings + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + From + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + To + To + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 21 + + + + Transfer + Transfer + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 50 + + + + Finland + Finland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 322 + + + + Membership + Membership + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Access + Access + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + Find holding... + Find holding... + + libs/ui/src/lib/assistant/assistant.component.ts + 87 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 62 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 956a2ad85..512ad60e2 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -26,11 +26,11 @@ apps/client/src/app/components/header/header.component.ts - 46 + 71 apps/client/src/app/components/header/header.component.ts - 51 + 76 apps/client/src/app/pages/about/about-page.component.ts @@ -100,6 +100,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 25 @@ -168,6 +172,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 25 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 25 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 25 @@ -212,11 +220,11 @@ apps/client/src/app/components/header/header.component.ts - 47 + 72 apps/client/src/app/components/header/header.component.ts - 52 + 77 apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -274,6 +282,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 26 @@ -342,6 +354,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 26 @@ -386,11 +402,11 @@ apps/client/src/app/components/header/header.component.ts - 48 + 73 apps/client/src/app/components/header/header.component.ts - 53 + 78 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -417,11 +433,11 @@ apps/client/src/app/components/header/header.component.ts - 49 + 74 apps/client/src/app/components/header/header.component.ts - 54 + 79 apps/client/src/app/components/home-summary/home-summary.component.ts @@ -431,6 +447,10 @@ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts 14 + + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 37 + apps/client/src/app/core/http-response.interceptor.ts 80 @@ -491,7 +511,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -526,11 +546,11 @@ apps/client/src/app/components/header/header.component.ts - 50 + 75 apps/client/src/app/components/header/header.component.ts - 56 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -548,6 +568,10 @@ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts 14 + + apps/client/src/app/pages/features/features-page.component.ts + 18 + apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 @@ -576,6 +600,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts 28 @@ -644,6 +672,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts 28 + + apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts + 28 + apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts 28 @@ -669,18 +701,18 @@ Personal Finance apps/client/src/app/app.component.html - 54 + 55 Markets apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 345 apps/client/src/app/components/home-market/home-market.html @@ -695,7 +727,7 @@ Resources apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -703,7 +735,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 248 apps/client/src/app/pages/resources/resources-page.html @@ -714,7 +746,7 @@ About apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -722,14 +754,14 @@ apps/client/src/app/components/header/header.component.html - 291 + 316 Blog apps/client/src/app/app.component.html - 67 + 68 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -808,7 +840,7 @@ Changelog apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -819,11 +851,11 @@ Features apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 303 apps/client/src/app/pages/features/features-page.html @@ -834,14 +866,14 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 75 + 76 License apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -852,7 +884,7 @@ Pricing apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -860,11 +892,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 260 apps/client/src/app/components/header/header.component.html - 304 + 329 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 179 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -979,7 +1019,7 @@ Privacy Policy apps/client/src/app/app.component.html - 89 + 90 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -990,42 +1030,42 @@ Community apps/client/src/app/app.component.html - 104 + 105 - apps/client/src/app/pages/features/features-page.html - 259 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 61 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 65 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 69 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 73 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 77 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 81 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 174,175 + 175,176 @@ -1035,8 +1075,8 @@ 15 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 6 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 11 @@ -1054,15 +1094,15 @@ apps/client/src/app/components/admin-jobs/admin-jobs.html - 20 + 28 - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 12 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 22 - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 17 + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 12 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1098,11 +1138,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 110 + 121 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 23 + 32 @@ -1120,11 +1160,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 65 + 76 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 36 + 44 @@ -1139,11 +1179,11 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html - 93 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 88 + 81 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -1166,7 +1206,7 @@ Name apps/client/src/app/components/accounts-table/accounts-table.component.html - 22 + 33 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1186,7 +1226,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 12 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1205,7 +1245,7 @@ Total apps/client/src/app/components/accounts-table/accounts-table.component.html - 38 + 49 libs/ui/src/lib/activities-table/activities-table.component.html @@ -1216,15 +1256,15 @@ Currency apps/client/src/app/components/accounts-table/accounts-table.component.html - 48 + 59 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 69 + 62 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 13 + 22 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1239,11 +1279,15 @@ Value apps/client/src/app/components/accounts-table/accounts-table.component.html - 145 + 156 apps/client/src/app/components/accounts-table/accounts-table.component.html - 180 + 191 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 31 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1290,7 +1334,7 @@ Edit apps/client/src/app/components/accounts-table/accounts-table.component.html - 246 + 257 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1309,7 +1353,7 @@ Delete apps/client/src/app/components/accounts-table/accounts-table.component.html - 254 + 265 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1332,14 +1376,14 @@ Do you really want to delete this account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 82 + 83 Symbol apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 50 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1347,14 +1391,14 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 57 Data Source apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 59 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1369,70 +1413,70 @@ Attempts apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 68 Created apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 77 Finished apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 86 Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 95 Delete Jobs apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 140 Asset Profile apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + 37 Historical Market Data apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 42 View Data apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 155 View Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 162 Delete Job apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 165 @@ -1476,7 +1520,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 195 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1490,9 +1534,17 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 13 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 30 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 79 + 95 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 43 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1502,10 +1554,6 @@ apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html 37 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 25 - Save @@ -1515,7 +1563,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 202 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1529,18 +1577,18 @@ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html 20 + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 86 + 102 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 364 - - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 32 - Currencies @@ -1578,7 +1626,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 86 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1597,7 +1645,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 95 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1616,7 +1664,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 72 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1690,18 +1738,11 @@ 30 - - Set as Benchmark - - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 45 - - Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 110 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1712,7 +1753,7 @@ Country apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 119 apps/client/src/app/components/admin-users/admin-users.html @@ -1727,7 +1768,7 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1742,7 +1783,7 @@ Countries apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 135 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1753,25 +1794,25 @@ Symbol Mapping apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 160 Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 171 Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 182 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 72 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1800,70 +1841,70 @@ Please add a currency: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 Do you really want to delete this coupon? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 Do you really want to delete this currency? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 Do you really want to flush the cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 Please set your system message: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 User Count apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 Activity Count apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 per User apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 Exchange Rates apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 Add Currency apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -1885,56 +1926,56 @@ User Signup apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 Read-only Mode apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 System Message apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 Set Message apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 Add apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 Housekeeping apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 Flush Cache apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -1971,7 +2012,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 221 apps/client/src/app/pages/accounts/accounts-page.html @@ -1982,7 +2023,7 @@ Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -2021,7 +2062,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 189 @@ -2121,7 +2162,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 203 @@ -2132,7 +2173,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 213 @@ -2143,28 +2184,28 @@ apps/client/src/app/components/header/header.component.html - 212 + 237 Me apps/client/src/app/components/header/header.component.html - 145 + 170 My Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 228 About Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 268 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2175,7 +2216,7 @@ Sign in apps/client/src/app/components/header/header.component.html - 333 + 358 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2186,14 +2227,14 @@ Get started apps/client/src/app/components/header/header.component.html - 345 + 370 Sign in apps/client/src/app/components/header/header.component.ts - 131 + 169 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -2204,7 +2245,7 @@ Oops! Incorrect Security Token. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -2375,7 +2416,7 @@ apps/client/src/app/pages/landing/landing-page.html - 430 + 435 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -2514,7 +2555,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -2655,7 +2696,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -2967,21 +3008,21 @@ Update account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 Add account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 Account ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 89 @@ -3023,6 +3064,14 @@ apps/client/src/app/pages/admin/admin-page.component.ts 31 + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 17 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 34 + Users @@ -3043,7 +3092,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3169,12 +3218,12 @@ Zen Mode - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 136 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 @@ -3224,7 +3273,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 49 + 38 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -3247,7 +3296,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3258,7 +3307,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3294,7 +3343,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -3312,7 +3361,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -3502,63 +3551,63 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -3688,10 +3737,6 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 75 - - apps/client/src/app/pages/user-account/user-account-page.html - 4 - libs/ui/src/lib/activities-table/activities-table.component.html 379 @@ -4164,6 +4209,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Pricing @@ -4320,12 +4369,12 @@ per year - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 41 - apps/client/src/app/pages/user-account/user-account-page.html - 56 + apps/client/src/app/pages/pricing/pricing-page.html + 332 @@ -4604,6 +4653,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -4715,6 +4772,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13,25 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13,25 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -4826,6 +4891,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26,36 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26,36 + Let’s dive deeper into the detailed comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -4937,6 +5010,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37,43 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37,43 + Founded @@ -5048,6 +5129,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 63 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 63 + Origin @@ -5159,6 +5248,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 68 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 68 + Region @@ -5270,6 +5367,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 73 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 73 + Available in @@ -5381,6 +5486,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 78,80 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 78,80 + ✅ Yes @@ -5492,6 +5605,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 100 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 100 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 107 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 107 @@ -5708,6 +5837,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 121 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 121 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 132 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 132 @@ -5924,6 +6069,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 146 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 146 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 153 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 153 @@ -6140,6 +6301,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 165 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 165 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 172 @@ -6359,6 +6536,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 102 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 102 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -6575,6 +6768,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 148 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 148 @@ -6791,6 +7000,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 155 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -7007,6 +7232,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + ❌ No @@ -7118,6 +7351,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 109,110 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 109,110 + Self-Hosting @@ -7229,6 +7470,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 114,116 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 114,116 + Use anonymously @@ -7340,6 +7589,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 141,143 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 141,143 + Free Plan @@ -7451,6 +7708,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 160,162 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 160,162 + Starting from / year @@ -7562,6 +7827,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 180,182 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 180,182 + Starting from / year @@ -7673,6 +7946,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185,186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185,186 + Notes @@ -7784,6 +8065,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + Please note that the information provided is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. @@ -7895,6 +8184,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 199,208 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 199,208 + Ready to take your investments to the next level? @@ -8006,6 +8303,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 211,214 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 211,214 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -8117,6 +8422,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 215,218 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 215,218 + Get Started @@ -8228,6 +8541,14 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 220,222 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 220,222 + Personal Finance Tools @@ -8339,158 +8660,170 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 287 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 287 + Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 49 + 51 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 61 + 63 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 333 + 351 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 344 + 362 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 345 + 363 Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 51 + 53 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 182 + 193 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 283 + 294 United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 80 + 82 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 114 + 116 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 168 + 126 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 193 + 179 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 195 + 204 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 259 + 206 apps/client/src/app/pages/resources/personal-finance-tools/products.ts 270 + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 281 + Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 92 + 94 Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 71 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 103 + 105 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 148 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 158 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 157 + 168 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 180 + 191 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 215 + 226 Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 303 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 322 + 340 @@ -8517,232 +8850,232 @@ Grant access - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 2 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 Public - apps/client/src/app/pages/user-account/create-or-update-access-dialog/create-or-update-access-dialog.html - 19 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 My Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 12 + 32 Auto - apps/client/src/app/pages/user-account/user-account-page.component.ts - 47 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 35 Please enter your coupon code: - apps/client/src/app/pages/user-account/user-account-page.component.ts - 263 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 110 Could not redeem coupon code - apps/client/src/app/pages/user-account/user-account-page.component.ts - 273 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 120 Coupon code has been redeemed - apps/client/src/app/pages/user-account/user-account-page.component.ts - 285 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 132 Reload - apps/client/src/app/pages/user-account/user-account-page.component.ts - 286 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 Do you really want to remove this sign in method? - apps/client/src/app/pages/user-account/user-account-page.component.ts - 332 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 184 Membership - apps/client/src/app/pages/user-account/user-account-page.html - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 2 Valid until - apps/client/src/app/pages/user-account/user-account-page.html - 24 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 17 Upgrade - apps/client/src/app/pages/user-account/user-account-page.html - 39 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 26 Renew - apps/client/src/app/pages/user-account/user-account-page.html - 44 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 29 Try Premium - apps/client/src/app/pages/user-account/user-account-page.html - 64 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 49 Redeem Coupon - apps/client/src/app/pages/user-account/user-account-page.html - 77 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 62 Presenter View - apps/client/src/app/pages/user-account/user-account-page.html - 84 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 - + Protection for sensitive information like absolute performances and quantity values - apps/client/src/app/pages/user-account/user-account-page.html - 85,88 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8,11 Base Currency - apps/client/src/app/pages/user-account/user-account-page.html - 103 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 26 Language - apps/client/src/app/pages/user-account/user-account-page.html - 127 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 47 Locale - apps/client/src/app/pages/user-account/user-account-page.html - 173 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 90 Date and number format - apps/client/src/app/pages/user-account/user-account-page.html - 175 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 92 Appearance - apps/client/src/app/pages/user-account/user-account-page.html - 201 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 113 Auto - apps/client/src/app/pages/user-account/user-account-page.html - 216 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 125 Light - apps/client/src/app/pages/user-account/user-account-page.html - 217 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 126 Dark - apps/client/src/app/pages/user-account/user-account-page.html - 218 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 127 - + Distraction-free experience for turbulent times - apps/client/src/app/pages/user-account/user-account-page.html - 228,230 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 137,139 Biometric Authentication - apps/client/src/app/pages/user-account/user-account-page.html - 243 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 152 - - Sign in with fingerprint + + Sign in with fingerprint - apps/client/src/app/pages/user-account/user-account-page.html - 244,246 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 Experimental Features - apps/client/src/app/pages/user-account/user-account-page.html - 262 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 169 - + Sneak peek at upcoming functionality - apps/client/src/app/pages/user-account/user-account-page.html - 263,265 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170,172 User ID - apps/client/src/app/pages/user-account/user-account-page.html - 277 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 184 Export Data - apps/client/src/app/pages/user-account/user-account-page.html - 284 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 191 Granted Access - apps/client/src/app/pages/user-account/user-account-page.html - 295 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 @@ -9358,18 +9691,18 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 314 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 312 + 330 @@ -9397,14 +9730,110 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 137 + + + + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 154 + + + + Settings + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + + Membership + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 22 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 39 + + + + Find holding... + + libs/ui/src/lib/assistant/assistant.component.ts + 87 + + + + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 8 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Access + + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 27 + + + apps/client/src/app/pages/user-account/user-account-page.component.ts + 45 + + + + To + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 21 + + + + Transfer + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 50 + + + + Finland + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 322 + + + + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 + + + + No entries... + + libs/ui/src/lib/assistant/assistant.html + 62 + + + + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 diff --git a/apps/client/src/styles.scss b/apps/client/src/styles.scss index c5f8ffd0b..36099a249 100644 --- a/apps/client/src/styles.scss +++ b/apps/client/src/styles.scss @@ -214,6 +214,16 @@ body { } } + .mat-mdc-menu-panel { + &.assistant { + max-width: unset !important; + + .mat-mdc-menu-content { + padding: 0; + } + } + } + &.is-dark-theme { background: var(--dark-background); color: rgba(var(--light-primary-text)); @@ -481,6 +491,13 @@ ngx-skeleton-loader { flex-direction: column; overflow-y: auto; + .fab-container { + bottom: 2rem; + position: fixed; + right: 2rem; + z-index: 999; + } + &:not(.has-tabs) { @media (min-width: 576px) { padding: 2rem 0; @@ -492,6 +509,12 @@ ngx-skeleton-loader { padding-bottom: env(safe-area-inset-bottom); padding-bottom: constant(safe-area-inset-bottom); + .fab-container { + @media (max-width: 575.98px) { + bottom: 5rem; + } + } + .mat-mdc-tab-nav-bar { --mat-tab-header-active-focus-indicator-color: transparent; --mat-tab-header-active-hover-indicator-color: transparent; diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 38e38f30d..7c6e5e28a 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -7,7 +7,7 @@ services: env_file: - ../.env ports: - - 5432:5432 + - ${POSTGRES_PORT:-5432}:5432 volumes: - postgres:/var/lib/postgresql/data redis: @@ -15,7 +15,7 @@ services: container_name: redis restart: unless-stopped ports: - - 6379:6379 + - ${REDIS_PORT:-6379}:6379 volumes: postgres: diff --git a/libs/common/src/lib/interfaces/admin-market-data.interface.ts b/libs/common/src/lib/interfaces/admin-market-data.interface.ts index d53562a23..08838d4bc 100644 --- a/libs/common/src/lib/interfaces/admin-market-data.interface.ts +++ b/libs/common/src/lib/interfaces/admin-market-data.interface.ts @@ -9,9 +9,11 @@ export interface AdminMarketDataItem { assetClass?: AssetClass; assetSubClass?: AssetSubClass; countriesCount: number; + currency: string; dataSource: DataSource; date?: Date; marketDataItemCount: number; + name: string; sectorsCount: number; symbol: string; } diff --git a/libs/common/src/lib/interfaces/benchmark.interface.ts b/libs/common/src/lib/interfaces/benchmark.interface.ts index 906e30759..d1a63e1f4 100644 --- a/libs/common/src/lib/interfaces/benchmark.interface.ts +++ b/libs/common/src/lib/interfaces/benchmark.interface.ts @@ -5,6 +5,7 @@ export interface Benchmark { name: EnhancedSymbolProfile['name']; performances: { allTimeHigh: { + date: Date; performancePercent: number; }; }; diff --git a/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts b/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts index 5b72d9ce7..3bf914eaa 100644 --- a/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts +++ b/libs/common/src/lib/interfaces/enhanced-symbol-profile.interface.ts @@ -15,6 +15,7 @@ export interface EnhancedSymbolProfile { dataSource: DataSource; dateOfFirstActivity?: Date; id: string; + isin: string | null; name: string | null; scraperConfiguration?: ScraperConfiguration | null; sectors: Sector[]; diff --git a/libs/common/src/lib/interfaces/filter.interface.ts b/libs/common/src/lib/interfaces/filter.interface.ts index a6bc17c4f..356b3add7 100644 --- a/libs/common/src/lib/interfaces/filter.interface.ts +++ b/libs/common/src/lib/interfaces/filter.interface.ts @@ -6,6 +6,7 @@ export interface Filter { | 'ASSET_CLASS' | 'ASSET_SUB_CLASS' | 'PRESET_ID' + | 'SEARCH_QUERY' | 'SYMBOL' | 'TAG'; } diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index e33b6b55f..47df3d2f9 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -33,6 +33,7 @@ import type { PortfolioReport } from './portfolio-report.interface'; import type { PortfolioSummary } from './portfolio-summary.interface'; import type { Position } from './position.interface'; import type { Product } from './product'; +import type { AccountBalancesResponse } from './responses/account-balances-response.interface'; import type { BenchmarkResponse } from './responses/benchmark-response.interface'; import type { ResponseError } from './responses/errors.interface'; import type { ImportResponse } from './responses/import-response.interface'; @@ -49,6 +50,7 @@ import type { User } from './user.interface'; export { Access, + AccountBalancesResponse, Accounts, AdminData, AdminJobs, diff --git a/libs/common/src/lib/interfaces/info-item.interface.ts b/libs/common/src/lib/interfaces/info-item.interface.ts index 5ba295050..55ab7d06f 100644 --- a/libs/common/src/lib/interfaces/info-item.interface.ts +++ b/libs/common/src/lib/interfaces/info-item.interface.ts @@ -1,5 +1,5 @@ import { SubscriptionOffer } from '@ghostfolio/common/types'; -import { SymbolProfile, Tag } from '@prisma/client'; +import { Platform, SymbolProfile, Tag } from '@prisma/client'; import { Statistics } from './statistics.interface'; import { Subscription } from './subscription.interface'; @@ -13,7 +13,7 @@ export interface InfoItem { fearAndGreedDataSource?: string; globalPermissions: string[]; isReadOnlyMode?: boolean; - platforms: { id: string; name: string }[]; + platforms: Platform[]; statistics: Statistics; stripePublicKey?: string; subscriptions: { [offer in SubscriptionOffer]: Subscription }; diff --git a/libs/common/src/lib/interfaces/position.interface.ts b/libs/common/src/lib/interfaces/position.interface.ts index 6d94e3443..1df07e0ce 100644 --- a/libs/common/src/lib/interfaces/position.interface.ts +++ b/libs/common/src/lib/interfaces/position.interface.ts @@ -1,9 +1,9 @@ -import { AssetClass, DataSource } from '@prisma/client'; - -import { MarketState } from '../types'; +import { MarketState } from '@ghostfolio/common/types'; +import { AssetClass, AssetSubClass, DataSource } from '@prisma/client'; export interface Position { assetClass: AssetClass; + assetSubClass: AssetSubClass; averagePrice: number; currency: string; dataSource: DataSource; diff --git a/libs/common/src/lib/interfaces/responses/account-balances-response.interface.ts b/libs/common/src/lib/interfaces/responses/account-balances-response.interface.ts new file mode 100644 index 000000000..9b4ec2f6d --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/account-balances-response.interface.ts @@ -0,0 +1,5 @@ +import { AccountBalance } from '@prisma/client'; + +export interface AccountBalancesResponse { + balances: Pick[]; +} diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index 0c2e8578e..a5500bee6 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -3,6 +3,7 @@ import { Role } from '@prisma/client'; export const permissions = { accessAdminControl: 'accessAdminControl', + accessAssistant: 'accessAssistant', createAccess: 'createAccess', createAccount: 'createAccount', createOrder: 'createOrder', @@ -41,6 +42,7 @@ export function getPermissions(aRole: Role): string[] { case 'ADMIN': return [ permissions.accessAdminControl, + permissions.accessAssistant, permissions.createAccess, permissions.createAccount, permissions.createOrder, @@ -63,10 +65,11 @@ export function getPermissions(aRole: Role): string[] { ]; case 'DEMO': - return [permissions.createUserAccount]; + return [permissions.accessAssistant, permissions.createUserAccount]; case 'USER': return [ + permissions.accessAssistant, permissions.createAccess, permissions.createAccount, permissions.createOrder, diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts new file mode 100644 index 000000000..d00977c18 --- /dev/null +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts @@ -0,0 +1,78 @@ +import { FocusableOption } from '@angular/cdk/a11y'; +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + ElementRef, + EventEmitter, + HostBinding, + Input, + OnChanges, + Output, + ViewChild +} from '@angular/core'; +import { Params } from '@angular/router'; +import { ISearchResultItem } from '@ghostfolio/ui/assistant/interfaces/interfaces'; + +@Component({ + changeDetection: ChangeDetectionStrategy.OnPush, + selector: 'gf-assistant-list-item', + templateUrl: './assistant-list-item.html', + styleUrls: ['./assistant-list-item.scss'] +}) +export class AssistantListItemComponent implements FocusableOption, OnChanges { + @HostBinding('attr.tabindex') tabindex = -1; + @HostBinding('class.has-focus') get getHasFocus() { + return this.hasFocus; + } + + @Input() item: ISearchResultItem; + @Input() mode: 'assetProfile' | 'holding'; + + @Output() clicked = new EventEmitter(); + + @ViewChild('link') public linkElement: ElementRef; + + public hasFocus = false; + public queryParams: Params; + public routerLink: string[]; + + public constructor(private changeDetectorRef: ChangeDetectorRef) {} + + public ngOnChanges() { + const dataSource = this.item?.dataSource; + const symbol = this.item?.symbol; + + if (this.mode === 'assetProfile') { + this.queryParams = { + dataSource, + symbol, + assetProfileDialog: true + }; + this.routerLink = ['/admin', 'market-data']; + } else if (this.mode === 'holding') { + this.queryParams = { + dataSource, + symbol, + positionDetailDialog: true + }; + this.routerLink = ['/portfolio', 'holdings']; + } + } + + public focus() { + this.hasFocus = true; + + this.changeDetectorRef.markForCheck(); + } + + public onClick() { + this.clicked.emit(); + } + + public removeFocus() { + this.hasFocus = false; + + this.changeDetectorRef.markForCheck(); + } +} diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html new file mode 100644 index 000000000..d75db3c8a --- /dev/null +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html @@ -0,0 +1,16 @@ +{{ item?.name }} +
    + {{ item?.symbol | gfSymbol }} · {{ item?.currency }} + · {{ item?.assetSubClassString }}
    diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts new file mode 100644 index 000000000..0c2e89726 --- /dev/null +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts @@ -0,0 +1,13 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; + +import { AssistantListItemComponent } from './assistant-list-item.component'; + +@NgModule({ + declarations: [AssistantListItemComponent], + exports: [AssistantListItemComponent], + imports: [CommonModule, GfSymbolModule, RouterModule] +}) +export class GfAssistantListItemModule {} diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.scss b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.scss new file mode 100644 index 000000000..c1679e56b --- /dev/null +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.scss @@ -0,0 +1,19 @@ +:host { + display: block; + + &.has-focus { + background-color: rgba(var(--palette-primary-500), 1); + + a { + color: rgba(var(--light-primary-text)); + } + } +} + +:host-context(.is-dark-theme) { + &.has-focus { + a { + color: rgba(var(--dark-primary-text)); + } + } +} diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts new file mode 100644 index 000000000..2cfd9eff2 --- /dev/null +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -0,0 +1,284 @@ +import { FocusKeyManager } from '@angular/cdk/a11y'; +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + ElementRef, + EventEmitter, + HostListener, + Input, + OnDestroy, + OnInit, + Output, + QueryList, + ViewChild, + ViewChildren +} from '@angular/core'; +import { FormControl } from '@angular/forms'; +import { MatMenuTrigger } from '@angular/material/menu'; +import { AdminService } from '@ghostfolio/client/services/admin.service'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { translate } from '@ghostfolio/ui/i18n'; +import { EMPTY, Observable, Subject, lastValueFrom } from 'rxjs'; +import { + catchError, + debounceTime, + distinctUntilChanged, + map, + mergeMap, + takeUntil +} from 'rxjs/operators'; + +import { AssistantListItemComponent } from './assistant-list-item/assistant-list-item.component'; +import { ISearchResultItem, ISearchResults } from './interfaces/interfaces'; + +@Component({ + changeDetection: ChangeDetectionStrategy.OnPush, + selector: 'gf-assistant', + styleUrls: ['./assistant.scss'], + templateUrl: './assistant.html' +}) +export class AssistantComponent implements OnDestroy, OnInit { + @HostListener('document:keydown', ['$event']) onKeydown( + event: KeyboardEvent + ) { + if (!this.isOpen) { + return; + } + + if (event.key === 'ArrowDown' || event.key === 'ArrowUp') { + for (const item of this.assistantListItems) { + item.removeFocus(); + } + + this.keyManager.onKeydown(event); + + const currentAssistantListItem = this.getCurrentAssistantListItem(); + + if (currentAssistantListItem?.linkElement) { + currentAssistantListItem.linkElement.nativeElement?.scrollIntoView({ + behavior: 'smooth', + block: 'center' + }); + } + } else if (event.key === 'Enter') { + const currentAssistantListItem = this.getCurrentAssistantListItem(); + + if (currentAssistantListItem?.linkElement) { + currentAssistantListItem.linkElement.nativeElement?.click(); + event.stopPropagation(); + } + } + } + + @Input() deviceType: string; + @Input() hasPermissionToAccessAdminControl: boolean; + + @Output() closed = new EventEmitter(); + + @ViewChild('menuTrigger') menuTriggerElement: MatMenuTrigger; + @ViewChild('search', { static: true }) searchElement: ElementRef; + + @ViewChildren(AssistantListItemComponent) + assistantListItems: QueryList; + + public static readonly SEARCH_RESULTS_DEFAULT_LIMIT = 5; + + public isLoading = false; + public isOpen = false; + public placeholder = $localize`Find holding...`; + public searchFormControl = new FormControl(''); + public searchResults: ISearchResults = { + assetProfiles: [], + holdings: [] + }; + + private keyManager: FocusKeyManager; + private unsubscribeSubject = new Subject(); + + public constructor( + private adminService: AdminService, + private changeDetectorRef: ChangeDetectorRef, + private dataService: DataService + ) {} + + public ngOnInit() { + this.searchFormControl.valueChanges + .pipe( + map((searchTerm) => { + this.isLoading = true; + this.searchResults = { + assetProfiles: [], + holdings: [] + }; + + this.changeDetectorRef.markForCheck(); + + return searchTerm; + }), + debounceTime(300), + distinctUntilChanged(), + mergeMap(async (searchTerm) => { + const result = { + assetProfiles: [], + holdings: [] + }; + + try { + if (searchTerm) { + return await this.getSearchResults(searchTerm); + } + } catch {} + + return result; + }), + takeUntil(this.unsubscribeSubject) + ) + .subscribe((searchResults) => { + this.searchResults = searchResults; + this.isLoading = false; + + this.changeDetectorRef.markForCheck(); + }); + } + + public async initialize() { + this.isLoading = true; + this.keyManager = new FocusKeyManager(this.assistantListItems).withWrap(); + this.searchResults = { + assetProfiles: [], + holdings: [] + }; + + for (const item of this.assistantListItems) { + item.removeFocus(); + } + + this.searchFormControl.setValue(''); + setTimeout(() => { + this.searchElement?.nativeElement?.focus(); + }); + + this.isLoading = false; + this.setIsOpen(true); + + this.changeDetectorRef.markForCheck(); + } + + public onCloseAssistant() { + this.setIsOpen(false); + + this.closed.emit(); + } + + public setIsOpen(aIsOpen: boolean) { + this.isOpen = aIsOpen; + } + + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } + + private getCurrentAssistantListItem() { + return this.assistantListItems.find(({ getHasFocus }) => { + return getHasFocus; + }); + } + + private async getSearchResults(aSearchTerm: string) { + let assetProfiles: ISearchResultItem[] = []; + let holdings: ISearchResultItem[] = []; + + if (this.hasPermissionToAccessAdminControl) { + try { + assetProfiles = await lastValueFrom( + this.searchAssetProfiles(aSearchTerm) + ); + assetProfiles = assetProfiles.slice( + 0, + AssistantComponent.SEARCH_RESULTS_DEFAULT_LIMIT + ); + } catch {} + } + + try { + holdings = await lastValueFrom(this.searchHoldings(aSearchTerm)); + holdings = holdings.slice( + 0, + AssistantComponent.SEARCH_RESULTS_DEFAULT_LIMIT + ); + } catch {} + + return { + assetProfiles, + holdings + }; + } + + private searchAssetProfiles( + aSearchTerm: string + ): Observable { + return this.adminService + .fetchAdminMarketData({ + filters: [ + { + id: aSearchTerm, + type: 'SEARCH_QUERY' + } + ], + take: AssistantComponent.SEARCH_RESULTS_DEFAULT_LIMIT + }) + .pipe( + catchError(() => { + return EMPTY; + }), + map(({ marketData }) => { + return marketData.map( + ({ assetSubClass, currency, dataSource, name, symbol }) => { + return { + currency, + dataSource, + name, + symbol, + assetSubClassString: translate(assetSubClass) + }; + } + ); + }), + takeUntil(this.unsubscribeSubject) + ); + } + + private searchHoldings(aSearchTerm: string): Observable { + return this.dataService + .fetchPositions({ + filters: [ + { + id: aSearchTerm, + type: 'SEARCH_QUERY' + } + ], + range: '1d' + }) + .pipe( + catchError(() => { + return EMPTY; + }), + map(({ positions }) => { + return positions.map( + ({ assetSubClass, currency, dataSource, name, symbol }) => { + return { + currency, + dataSource, + name, + symbol, + assetSubClassString: translate(assetSubClass) + }; + } + ); + }), + takeUntil(this.unsubscribeSubject) + ); + } +} diff --git a/libs/ui/src/lib/assistant/assistant.html b/libs/ui/src/lib/assistant/assistant.html new file mode 100644 index 000000000..0644c945e --- /dev/null +++ b/libs/ui/src/lib/assistant/assistant.html @@ -0,0 +1,88 @@ +
    +
    + + +
    + / +
    + + +
    +
    +
    +
    Holdings
    + + + +
    No entries...
    +
    +
    +
    +
    Asset Profiles
    + + + +
    No entries...
    +
    +
    +
    +
    diff --git a/libs/ui/src/lib/assistant/assistant.module.ts b/libs/ui/src/lib/assistant/assistant.module.ts new file mode 100644 index 000000000..e4f48e8f3 --- /dev/null +++ b/libs/ui/src/lib/assistant/assistant.module.ts @@ -0,0 +1,25 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; +import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; + +import { GfAssistantListItemModule } from './assistant-list-item/assistant-list-item.module'; +import { AssistantComponent } from './assistant.component'; + +@NgModule({ + declarations: [AssistantComponent], + exports: [AssistantComponent], + imports: [ + CommonModule, + FormsModule, + GfAssistantListItemModule, + MatButtonModule, + NgxSkeletonLoaderModule, + ReactiveFormsModule, + RouterModule + ], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class GfAssistantModule {} diff --git a/libs/ui/src/lib/assistant/assistant.scss b/libs/ui/src/lib/assistant/assistant.scss new file mode 100644 index 000000000..3339009d4 --- /dev/null +++ b/libs/ui/src/lib/assistant/assistant.scss @@ -0,0 +1,37 @@ +:host { + display: block; + + .result-container { + max-height: 15rem; + } + + .search-container { + border-bottom: 1px solid rgba(var(--dark-dividers)); + height: 2.5rem; + + input { + background: transparent; + outline: 0; + } + + .hot-key-hint { + border: 1px solid rgba(var(--dark-dividers)); + border-radius: 0.25rem; + cursor: default; + } + } +} + +:host-context(.is-dark-theme) { + .search-container { + border-color: rgba(var(--light-dividers)); + + input { + color: rgba(var(--light-primary-text)); + } + + .hot-key-hint { + border-color: rgba(var(--light-dividers)); + } + } +} diff --git a/libs/ui/src/lib/assistant/index.ts b/libs/ui/src/lib/assistant/index.ts new file mode 100644 index 000000000..f58d1b2f3 --- /dev/null +++ b/libs/ui/src/lib/assistant/index.ts @@ -0,0 +1 @@ +export * from './assistant.module'; diff --git a/libs/ui/src/lib/assistant/interfaces/interfaces.ts b/libs/ui/src/lib/assistant/interfaces/interfaces.ts new file mode 100644 index 000000000..99f70dbe1 --- /dev/null +++ b/libs/ui/src/lib/assistant/interfaces/interfaces.ts @@ -0,0 +1,12 @@ +import { UniqueAsset } from '@ghostfolio/common/interfaces'; + +export interface ISearchResultItem extends UniqueAsset { + assetSubClassString: string; + currency: string; + name: string; +} + +export interface ISearchResults { + assetProfiles: ISearchResultItem[]; + holdings: ISearchResultItem[]; +} diff --git a/libs/ui/src/lib/benchmark/benchmark.component.html b/libs/ui/src/lib/benchmark/benchmark.component.html index e395553ec..33cf72389 100644 --- a/libs/ui/src/lib/benchmark/benchmark.component.html +++ b/libs/ui/src/lib/benchmark/benchmark.component.html @@ -6,14 +6,33 @@ + +
    + Last All Time High + +
    + +
    +
    + Change from All Time High from ATH + 0 }" - [value]=" - element?.performances?.allTimeHigh?.performancePercent ?? undefined - " + [value]="element?.performances?.allTimeHigh?.performancePercent" >