diff --git a/CHANGELOG.md b/CHANGELOG.md index 07b89aea6..64f8439a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,94 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 2.14.0 - 2023-10-21 + +### Added + +- Added the _OpenFIGI_ data enhancer for _Financial Instrument Global Identifier_ (FIGI) +- Added `figi`, `figiComposite` and `figiShareClass` to the asset profile model + +### Changed + +- Moved the fees on account level feature from experimental to general availability +- Moved the interest on account level feature from experimental to general availability +- Moved the search for a holding from experimental to general availability +- Improved the error message in the activities import for `csv` files +- Removed the application version from the client +- Allowed to edit today’s historical market data in the asset profile details dialog of the admin control panel + +### Fixed + +- Fixed the style of the active page in the header navigation +- Trimmed text in `i18n` service to query `messages.*.xlf` files on the server + +## 2.13.0 - 2023-10-20 + +### Added + +- Added a chart to the account detail dialog +- Added an `i18n` service to query `messages.*.xlf` files on the server + +### Changed + +- Changed the users table in the admin control panel to an `@angular/material` data table +- Improved the styling of the membership status + +### Fixed + +- Fixed an issue where holdings were requested twice from the server + +## 2.12.0 - 2023-10-17 + +### 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 + +### Changed + +- Changed the checkboxes to slide toggles in the user settings of the user account page +- 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 +- Fixed the query to get asset profiles that match both the `dataSource` and `symbol` values + +## 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 @@ -95,13 +183,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 @@ -252,7 +340,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 @@ -759,7 +847,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 @@ -993,7 +1081,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` @@ -2667,7 +2755,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/DEVELOPMENT.md b/DEVELOPMENT.md index a950e5672..ea581c8cf 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -1,5 +1,17 @@ # Ghostfolio Development Guide +## Experimental Features + +New functionality can be enabled using a feature flag switch from the user settings. + +### Backend + +Remove permission in `UserService` using `without()` + +### Frontend + +Use `*ngIf="user?.settings?.isExperimentalFeatures"` in HTML template + ## Git ### Rebase 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 67e106ff8..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( @@ -365,8 +398,11 @@ export class AdminController { StatusCodes.FORBIDDEN ); } - - return this.adminService.addAssetProfile({ dataSource, symbol }); + return this.adminService.addAssetProfile({ + dataSource, + symbol, + currency: this.request.user.Settings.settings.baseCurrency + }); } @Delete('profile-data/:dataSource/:symbol') 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 dd9e3f9ce..84ae5934c 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -41,10 +41,19 @@ export class AdminService { ) {} public async addAssetProfile({ + currency, dataSource, symbol - }: UniqueAsset): Promise { + }: UniqueAsset & { currency?: string }): Promise { try { + if (dataSource === 'MANUAL') { + return this.symbolProfileService.add({ + currency, + dataSource, + symbol + }); + } + const assetProfiles = await this.dataProviderService.getAssetProfiles([ { dataSource, symbol } ]); @@ -131,10 +140,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; } ); @@ -147,6 +160,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 }]; @@ -173,7 +194,9 @@ export class AdminService { assetSubClass: true, comment: true, countries: true, + currency: true, dataSource: true, + name: true, Order: { orderBy: [{ date: 'asc' }], select: { date: true }, @@ -194,7 +217,9 @@ export class AdminService { assetSubClass, comment, countries, + currency, dataSource, + name, Order, sectors, symbol @@ -213,8 +238,10 @@ export class AdminService { assetClass, assetSubClass, comment, + currency, countriesCount, dataSource, + name, symbol, marketDataItemCount, sectorsCount, @@ -341,6 +368,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/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 83d062b83..8fd35f8dd 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -280,6 +280,9 @@ export class ImportService { createdAt, currency, dataSource, + figi, + figiComposite, + figiShareClass, id, isin, name, @@ -350,6 +353,9 @@ export class ImportService { createdAt, currency, dataSource, + figi, + figiComposite, + figiShareClass, id, isin, name, @@ -509,6 +515,9 @@ export class ImportService { comment: null, countries: null, createdAt: undefined, + figi: null, + figiComposite: null, + figiShareClass: null, id: undefined, isin: null, name: null, diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 623085cd4..322473644 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1177,6 +1177,7 @@ export class PortfolioService { 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/subscription/subscription.controller.ts b/apps/api/src/app/subscription/subscription.controller.ts index e063a8636..299f32fe0 100644 --- a/apps/api/src/app/subscription/subscription.controller.ts +++ b/apps/api/src/app/subscription/subscription.controller.ts @@ -104,7 +104,7 @@ export class SubscriptionController { response.redirect( `${this.configurationService.get( 'ROOT_URL' - )}/${DEFAULT_LANGUAGE_CODE}/account` + )}/${DEFAULT_LANGUAGE_CODE}/account/membership` ); } diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index a176c43f3..91490528e 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -164,10 +164,10 @@ export class UserService { let currentPermissions = getPermissions(user.role); if (!(user.Settings.settings as UserSettings).isExperimentalFeatures) { - currentPermissions = without( - currentPermissions, - permissions.accessAssistant - ); + // currentPermissions = without( + // currentPermissions, + // permissions.xyz + // ); } if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) { diff --git a/apps/api/src/middlewares/html-template.middleware.ts b/apps/api/src/middlewares/html-template.middleware.ts index 9d44bdbe0..f0358eca6 100644 --- a/apps/api/src/middlewares/html-template.middleware.ts +++ b/apps/api/src/middlewares/html-template.middleware.ts @@ -2,6 +2,7 @@ import * as fs from 'fs'; import { join } from 'path'; import { environment } from '@ghostfolio/api/environments/environment'; +import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { DEFAULT_LANGUAGE_CODE, DEFAULT_ROOT_URL, @@ -11,20 +12,11 @@ import { DATE_FORMAT, interpolate } from '@ghostfolio/common/helper'; import { format } from 'date-fns'; import { NextFunction, Request, Response } from 'express'; -const descriptions = { - de: 'Mit dem Finanz-Dashboard Ghostfolio können Sie Ihr Vermögen in Form von Aktien, ETFs oder Kryptowährungen verteilt über mehrere Finanzinstitute überwachen.', - en: 'Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms.', - es: 'Ghostfolio es un dashboard de finanzas personales para hacer un seguimiento de tus activos como acciones, ETFs o criptodivisas a través de múltiples plataformas.', - fr: 'Ghostfolio est un dashboard de finances personnelles qui permet de suivre vos actifs comme les actions, les ETF ou les crypto-monnaies sur plusieurs plateformes.', - it: 'Ghostfolio è un dashboard di finanza personale per tenere traccia delle vostre attività come azioni, ETF o criptovalute su più piattaforme.', - nl: 'Ghostfolio is een persoonlijk financieel dashboard om uw activa zoals aandelen, ETF’s of cryptocurrencies over meerdere platforms bij te houden.', - pt: 'Ghostfolio é um dashboard de finanças pessoais para acompanhar os seus activos como acções, ETFs ou criptomoedas em múltiplas plataformas.', - tr: 'Ghostfolio, hisse senetleri, ETF’ler veya kripto para birimleri gibi varlıklarınızı birden fazla platformda takip etmenizi sağlayan bir kişisel finans panosudur.' -}; - const title = 'Ghostfolio – Open Source Wealth Management Software'; const titleShort = 'Ghostfolio'; +const i18nService = new I18nService(); + let indexHtmlMap: { [languageCode: string]: string } = {}; try { @@ -130,7 +122,10 @@ export const HtmlTemplateMiddleware = async ( languageCode, path, rootUrl, - description: descriptions[languageCode], + description: i18nService.getTranslation({ + languageCode, + id: 'metaDescription' + }), featureGraphicPath: locales[path]?.featureGraphicPath ?? 'assets/cover.png', title: locales[path]?.title ?? title 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 204aa030e..8ef0df7b3 100644 --- a/apps/api/src/services/api/api.service.ts +++ b/apps/api/src/services/api/api.service.ts @@ -8,16 +8,19 @@ 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(',') ?? []; @@ -34,6 +37,12 @@ export class ApiService { type: 'ASSET_CLASS' }; }), + ...assetSubClasses.map((assetClass) => { + return { + id: assetClass, + type: 'ASSET_SUB_CLASS' + }; + }), { id: searchQuery, type: 'SEARCH_QUERY' diff --git a/apps/api/src/services/configuration/configuration.service.ts b/apps/api/src/services/configuration/configuration.service.ts index 40a04f5a0..b355d5a20 100644 --- a/apps/api/src/services/configuration/configuration.service.ts +++ b/apps/api/src/services/configuration/configuration.service.ts @@ -38,6 +38,7 @@ export class ConfigurationService { JWT_SECRET_KEY: str({}), MAX_ACTIVITIES_TO_IMPORT: num({ default: Number.MAX_SAFE_INTEGER }), MAX_ITEM_IN_CACHE: num({ default: 9999 }), + OPEN_FIGI_API_KEY: str({ default: '' }), PORT: port({ default: 3333 }), RAPID_API_API_KEY: str({ default: '' }), REDIS_HOST: str({ default: 'localhost' }), diff --git a/apps/api/src/services/data-gathering/data-gathering.service.ts b/apps/api/src/services/data-gathering/data-gathering.service.ts index 34645b9ea..78531b745 100644 --- a/apps/api/src/services/data-gathering/data-gathering.service.ts +++ b/apps/api/src/services/data-gathering/data-gathering.service.ts @@ -164,6 +164,9 @@ export class DataGatheringService { countries, currency, dataSource, + figi, + figiComposite, + figiShareClass, isin, name, sectors, @@ -178,6 +181,9 @@ export class DataGatheringService { countries, currency, dataSource, + figi, + figiComposite, + figiShareClass, isin, name, sectors, @@ -189,6 +195,9 @@ export class DataGatheringService { assetSubClass, countries, currency, + figi, + figiComposite, + figiShareClass, isin, name, sectors, diff --git a/apps/api/src/services/data-provider/data-enhancer/data-enhancer.module.ts b/apps/api/src/services/data-provider/data-enhancer/data-enhancer.module.ts index 069309508..23d64ac86 100644 --- a/apps/api/src/services/data-provider/data-enhancer/data-enhancer.module.ts +++ b/apps/api/src/services/data-provider/data-enhancer/data-enhancer.module.ts @@ -1,5 +1,6 @@ import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module'; import { CryptocurrencyModule } from '@ghostfolio/api/services/cryptocurrency/cryptocurrency.module'; +import { OpenFigiDataEnhancerService } from '@ghostfolio/api/services/data-provider/data-enhancer/openfigi/openfigi.service'; import { TrackinsightDataEnhancerService } from '@ghostfolio/api/services/data-provider/data-enhancer/trackinsight/trackinsight.service'; import { YahooFinanceDataEnhancerService } from '@ghostfolio/api/services/data-provider/data-enhancer/yahoo-finance/yahoo-finance.service'; import { Module } from '@nestjs/common'; @@ -9,6 +10,7 @@ import { DataEnhancerService } from './data-enhancer.service'; @Module({ exports: [ DataEnhancerService, + OpenFigiDataEnhancerService, TrackinsightDataEnhancerService, YahooFinanceDataEnhancerService, 'DataEnhancers' @@ -16,15 +18,21 @@ import { DataEnhancerService } from './data-enhancer.service'; imports: [ConfigurationModule, CryptocurrencyModule], providers: [ DataEnhancerService, + OpenFigiDataEnhancerService, TrackinsightDataEnhancerService, YahooFinanceDataEnhancerService, { inject: [ + OpenFigiDataEnhancerService, TrackinsightDataEnhancerService, YahooFinanceDataEnhancerService ], provide: 'DataEnhancers', - useFactory: (trackinsight, yahooFinance) => [trackinsight, yahooFinance] + useFactory: (openfigi, trackinsight, yahooFinance) => [ + openfigi, + trackinsight, + yahooFinance + ] } ] }) diff --git a/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts b/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts new file mode 100644 index 000000000..363cbb167 --- /dev/null +++ b/apps/api/src/services/data-provider/data-enhancer/openfigi/openfigi.service.ts @@ -0,0 +1,85 @@ +import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; +import { DataEnhancerInterface } from '@ghostfolio/api/services/data-provider/interfaces/data-enhancer.interface'; +import { DEFAULT_REQUEST_TIMEOUT } from '@ghostfolio/common/config'; +import { parseSymbol } from '@ghostfolio/common/helper'; +import { Injectable } from '@nestjs/common'; +import { SymbolProfile } from '@prisma/client'; +import got, { Headers } from 'got'; + +@Injectable() +export class OpenFigiDataEnhancerService implements DataEnhancerInterface { + private static baseUrl = 'https://api.openfigi.com'; + + public constructor( + private readonly configurationService: ConfigurationService + ) {} + + public async enhance({ + response, + symbol + }: { + response: Partial; + symbol: string; + }): Promise> { + if ( + !( + response.assetClass === 'EQUITY' && + (response.assetSubClass === 'ETF' || response.assetSubClass === 'STOCK') + ) + ) { + return response; + } + + const headers: Headers = {}; + const { exchange, ticker } = parseSymbol({ + symbol, + dataSource: response.dataSource + }); + + if (this.configurationService.get('OPEN_FIGI_API_KEY')) { + headers['X-OPENFIGI-APIKEY'] = + this.configurationService.get('OPEN_FIGI_API_KEY'); + } + + let abortController = new AbortController(); + + setTimeout(() => { + abortController.abort(); + }, DEFAULT_REQUEST_TIMEOUT); + + const mappings = await got + .post(`${OpenFigiDataEnhancerService.baseUrl}/v3/mapping`, { + headers, + json: [{ exchCode: exchange, idType: 'TICKER', idValue: ticker }], + // @ts-ignore + signal: abortController.signal + }) + .json(); + + if (mappings?.length === 1 && mappings[0].data?.length === 1) { + const { compositeFIGI, figi, shareClassFIGI } = mappings[0].data[0]; + + if (figi) { + response.figi = figi; + } + + if (compositeFIGI) { + response.figiComposite = compositeFIGI; + } + + if (shareClassFIGI) { + response.figiShareClass = shareClassFIGI; + } + } + + return response; + } + + public getName() { + return 'OPENFIGI'; + } + + public getTestSymbol() { + return undefined; + } +} 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/i18n/i18n.service.ts b/apps/api/src/services/i18n/i18n.service.ts new file mode 100644 index 000000000..39dab2d06 --- /dev/null +++ b/apps/api/src/services/i18n/i18n.service.ts @@ -0,0 +1,67 @@ +import { readFileSync, readdirSync } from 'fs'; +import { join } from 'path'; + +import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config'; +import { Logger } from '@nestjs/common'; +import * as cheerio from 'cheerio'; + +export class I18nService { + private localesPath = join(__dirname, 'assets', 'locales'); + private translations: { [locale: string]: cheerio.CheerioAPI } = {}; + + public constructor() { + this.loadFiles(); + } + + public getTranslation({ + id, + languageCode + }: { + id: string; + languageCode: string; + }): string { + const $ = this.translations[languageCode]; + + if (!$) { + Logger.warn(`Translation not found for locale '${languageCode}'`); + } + + const translatedText = $( + `trans-unit[id="${id}"] > ${ + languageCode === DEFAULT_LANGUAGE_CODE ? 'source' : 'target' + }` + ).text(); + + if (!translatedText) { + Logger.warn( + `Translation not found for id '${id}' in locale '${languageCode}'` + ); + } + + return translatedText.trim(); + } + + private loadFiles() { + try { + const files = readdirSync(this.localesPath, 'utf-8'); + + for (const file of files) { + const xmlData = readFileSync(join(this.localesPath, file), 'utf8'); + this.translations[this.parseLanguageCode(file)] = + this.parseXml(xmlData); + } + } catch (error) { + Logger.error(error, 'I18nService'); + } + } + + private parseLanguageCode(aFileName: string) { + const match = aFileName.match(/\.([a-zA-Z]+)\.xlf$/); + + return match ? match[1] : DEFAULT_LANGUAGE_CODE; + } + + private parseXml(xmlData: string): cheerio.CheerioAPI { + return cheerio.load(xmlData, { xmlMode: true }); + } +} diff --git a/apps/api/src/services/interfaces/environment.interface.ts b/apps/api/src/services/interfaces/environment.interface.ts index b437668ab..9b10a3205 100644 --- a/apps/api/src/services/interfaces/environment.interface.ts +++ b/apps/api/src/services/interfaces/environment.interface.ts @@ -26,6 +26,7 @@ export interface Environment extends CleanedEnvAccessors { JWT_SECRET_KEY: string; MAX_ACTIVITIES_TO_IMPORT: number; MAX_ITEM_IN_CACHE: number; + OPEN_FIGI_API_KEY: string; PORT: number; RAPID_API_API_KEY: string; REDIS_HOST: string; 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/api/src/services/symbol-profile/symbol-profile.service.ts b/apps/api/src/services/symbol-profile/symbol-profile.service.ts index 99244c352..b861ccf8f 100644 --- a/apps/api/src/services/symbol-profile/symbol-profile.service.ts +++ b/apps/api/src/services/symbol-profile/symbol-profile.service.ts @@ -52,20 +52,12 @@ export class SymbolProfileService { SymbolProfileOverrides: true }, where: { - AND: [ - { - dataSource: { - in: aUniqueAssets.map(({ dataSource }) => { - return dataSource; - }) - }, - symbol: { - in: aUniqueAssets.map(({ symbol }) => { - return symbol; - }) - } - } - ] + OR: aUniqueAssets.map(({ dataSource, symbol }) => { + return { + dataSource, + symbol + }; + }) } }) .then((symbolProfiles) => this.getSymbols(symbolProfiles)); 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-routing.module.ts b/apps/client/src/app/app-routing.module.ts index f82bad864..26080e884 100644 --- a/apps/client/src/app/app-routing.module.ts +++ b/apps/client/src/app/app-routing.module.ts @@ -73,6 +73,11 @@ const routes: Routes = [ loadChildren: () => import('./pages/home/home-page.module').then((m) => m.HomePageModule) }, + { + path: 'i18n', + loadChildren: () => + import('./pages/i18n/i18n-page.module').then((m) => m.I18nPageModule) + }, { path: paths.markets, loadChildren: () => diff --git a/apps/client/src/app/app.component.html b/apps/client/src/app/app.component.html index a52261969..e792598a7 100644 --- a/apps/client/src/app/app.component.html +++ b/apps/client/src/app/app.component.html @@ -165,7 +165,6 @@
© 2021 - {{ currentYear }} Ghostfolio - {{ version }}
diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index d1d9529ce..2317279b1 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -17,7 +17,6 @@ import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; -import { environment } from '../environments/environment'; import { DataService } from './services/data.service'; import { TokenStorageService } from './services/token-storage.service'; import { UserService } from './services/user/user.service'; @@ -60,7 +59,6 @@ export class AppComponent implements OnDestroy, OnInit { public routerLinkResources = ['/' + $localize`resources`]; public showFooter = false; public user: User; - public version = environment.version; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/components/access-table/access-table.component.html b/apps/client/src/app/components/access-table/access-table.component.html index 498e73bf0..589c67e1f 100644 --- a/apps/client/src/app/components/access-table/access-table.component.html +++ b/apps/client/src/app/components/access-table/access-table.component.html @@ -1,15 +1,3 @@ - - 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/account-detail-dialog/account-detail-dialog.component.scss b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.scss index b63df0134..8831fb01d 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.scss +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.scss @@ -3,5 +3,9 @@ .mat-mdc-dialog-content { max-height: unset; + + .chart-container { + aspect-ratio: 16 / 9; + } } } diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts index 3a4746b6b..756df74cf 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts @@ -8,11 +8,11 @@ import { } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { DataService } from '@ghostfolio/client/services/data.service'; +import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { downloadAsFile } from '@ghostfolio/common/helper'; -import { User } from '@ghostfolio/common/interfaces'; +import { HistoricalDataItem, User } from '@ghostfolio/common/interfaces'; import { OrderWithAccount } from '@ghostfolio/common/types'; -import { translate } from '@ghostfolio/ui/i18n'; import Big from 'big.js'; import { format, parseISO } from 'date-fns'; import { isNumber } from 'lodash'; @@ -32,6 +32,9 @@ export class AccountDetailDialog implements OnDestroy, OnInit { public balance: number; public currency: string; public equity: number; + public hasImpersonationId: boolean; + public historicalDataItems: HistoricalDataItem[]; + public isLoadingChart: boolean; public name: string; public orders: OrderWithAccount[]; public platformName: string; @@ -46,6 +49,7 @@ export class AccountDetailDialog implements OnDestroy, OnInit { @Inject(MAT_DIALOG_DATA) public data: AccountDetailDialogParams, private dataService: DataService, public dialogRef: MatDialogRef, + private impersonationStorageService: ImpersonationStorageService, private userService: UserService ) { this.userService.stateChanged @@ -59,7 +63,9 @@ export class AccountDetailDialog implements OnDestroy, OnInit { }); } - public ngOnInit(): void { + public ngOnInit() { + this.isLoadingChart = true; + this.dataService .fetchAccount(this.data.accountId) .pipe(takeUntil(this.unsubscribeSubject)) @@ -101,9 +107,45 @@ export class AccountDetailDialog implements OnDestroy, OnInit { this.changeDetectorRef.markForCheck(); }); + + this.dataService + .fetchPortfolioPerformance({ + filters: [ + { + id: this.data.accountId, + type: 'ACCOUNT' + } + ], + range: 'max' + }) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(({ chart }) => { + this.historicalDataItems = chart.map( + ({ date, value, valueInPercentage }) => { + return { + date, + value: + this.hasImpersonationId || this.user.settings.isRestrictedView + ? valueInPercentage + : value + }; + } + ); + + this.isLoadingChart = false; + + this.changeDetectorRef.markForCheck(); + }); + + this.impersonationStorageService + .onChangeHasImpersonation() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((impersonationId) => { + this.hasImpersonationId = !!impersonationId; + }); } - public onClose(): void { + public onClose() { this.dialogRef.close(); } diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html index 46a5ee7b0..02d1c917e 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html @@ -20,6 +20,17 @@ +
+ +
+
+
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/libs/ui/src/lib/logo/logo.component.html b/libs/ui/src/lib/logo/logo.component.html index 313a16c79..ac0839cf6 100644 --- a/libs/ui/src/lib/logo/logo.component.html +++ b/libs/ui/src/lib/logo/logo.component.html @@ -1,4 +1,4 @@ + > {{ label ?? 'Ghostfolio' }} diff --git a/libs/ui/src/lib/logo/logo.component.scss b/libs/ui/src/lib/logo/logo.component.scss index 27fb1b311..c1ab3776a 100644 --- a/libs/ui/src/lib/logo/logo.component.scss +++ b/libs/ui/src/lib/logo/logo.component.scss @@ -4,18 +4,12 @@ } .logo { - background-color: rgba(var(--dark-primary-text)); + background-color: currentColor; margin-top: -2px; mask: url('/assets/ghost.svg') no-repeat center; } } -:host-context(.is-dark-theme) { - .logo { - background-color: rgba(var(--light-primary-text)); - } -} - :host-context(.large) { .label { font-size: 3rem; diff --git a/libs/ui/src/lib/membership-card/index.ts b/libs/ui/src/lib/membership-card/index.ts new file mode 100644 index 000000000..eccd8c4fd --- /dev/null +++ b/libs/ui/src/lib/membership-card/index.ts @@ -0,0 +1 @@ +export * from './membership-card.module'; diff --git a/libs/ui/src/lib/membership-card/membership-card.component.html b/libs/ui/src/lib/membership-card/membership-card.component.html new file mode 100644 index 000000000..d069274ca --- /dev/null +++ b/libs/ui/src/lib/membership-card/membership-card.component.html @@ -0,0 +1,29 @@ + diff --git a/libs/ui/src/lib/membership-card/membership-card.component.scss b/libs/ui/src/lib/membership-card/membership-card.component.scss new file mode 100644 index 000000000..a7cbce91a --- /dev/null +++ b/libs/ui/src/lib/membership-card/membership-card.component.scss @@ -0,0 +1,66 @@ +:host { + --borderRadius: 1rem; + --borderWidth: 2px; + + display: block; + max-width: 25rem; + padding-top: calc(1 * var(--borderWidth)); + width: 100%; + + .card-container { + border-radius: var(--borderRadius); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); + + &:after { + animation: animatedborder 7s ease alternate infinite; + background: linear-gradient(60deg, #5073b8, #1098ad, #07b39b, #6fba82); + background-size: 300% 300%; + border-radius: var(--borderRadius); + content: ''; + height: calc(100% + var(--borderWidth) * 2); + left: calc(-1 * var(--borderWidth)); + top: calc(-1 * var(--borderWidth)); + position: absolute; + width: calc(100% + var(--borderWidth) * 2); + z-index: -1; + + @keyframes animatedborder { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } + } + } + + .card-item { + aspect-ratio: 1.586; + background-color: #1d2124; + border-radius: calc(var(--borderRadius) - var(--borderWidth)); + color: rgba(var(--light-primary-text)); + + .heading { + font-size: 13px; + } + + .value { + font-size: 18px; + } + } + + &:not(.premium) { + &:after { + opacity: 0; + } + + .card-item { + background-color: #ffffff; + color: rgba(var(--dark-primary-text)); + } + } + } +} diff --git a/libs/ui/src/lib/membership-card/membership-card.component.ts b/libs/ui/src/lib/membership-card/membership-card.component.ts new file mode 100644 index 000000000..0ae760aba --- /dev/null +++ b/libs/ui/src/lib/membership-card/membership-card.component.ts @@ -0,0 +1,14 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + changeDetection: ChangeDetectionStrategy.OnPush, + selector: 'gf-membership-card', + styleUrls: ['./membership-card.component.scss'], + templateUrl: './membership-card.component.html' +}) +export class MembershipCardComponent { + @Input() public expiresAt: string; + @Input() public name: string; + + public routerLinkPricing = ['/' + $localize`pricing`]; +} diff --git a/libs/ui/src/lib/membership-card/membership-card.module.ts b/libs/ui/src/lib/membership-card/membership-card.module.ts new file mode 100644 index 000000000..4f51cc756 --- /dev/null +++ b/libs/ui/src/lib/membership-card/membership-card.module.ts @@ -0,0 +1,14 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { GfLogoModule } from '@ghostfolio/ui/logo'; + +import { MembershipCardComponent } from './membership-card.component'; + +@NgModule({ + declarations: [MembershipCardComponent], + exports: [MembershipCardComponent], + imports: [CommonModule, GfLogoModule, RouterModule], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class GfMembershipCardModule {} diff --git a/package.json b/package.json index 46c05f611..7a5eb4b55 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.9.0", + "version": "2.14.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/prisma/migrations/20231021094346_added_figi_figi_composite_and_figi_share_class_to_symbol_profile/migration.sql b/prisma/migrations/20231021094346_added_figi_figi_composite_and_figi_share_class_to_symbol_profile/migration.sql new file mode 100644 index 000000000..eb8abbe5a --- /dev/null +++ b/prisma/migrations/20231021094346_added_figi_figi_composite_and_figi_share_class_to_symbol_profile/migration.sql @@ -0,0 +1,5 @@ +-- AlterTable +ALTER TABLE "SymbolProfile" +ADD COLUMN "figi" TEXT, +ADD COLUMN "figiComposite" TEXT, +ADD COLUMN "figiShareClass" TEXT; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index d4db1b708..ea7b31a01 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -132,6 +132,9 @@ model SymbolProfile { createdAt DateTime @default(now()) currency String dataSource DataSource + figi String? + figiComposite String? + figiShareClass String? id String @id @default(uuid()) isin String? name String? diff --git a/test/import/invalid-multi-line.csv b/test/import/invalid-multi-line.csv new file mode 100644 index 000000000..ed9da3378 --- /dev/null +++ b/test/import/invalid-multi-line.csv @@ -0,0 +1,5 @@ +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,,0.00 +20500606,MSFT,USD,0.00,0,buy,0.00 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 59a1d2816..ead7d57aa 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.html b/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.html index d6f67faa3..c6e972f45 100644 --- a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.html +++ b/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.html @@ -9,7 +9,11 @@ [showYAxis]="true" [symbol]="symbol" > -
+
{{ itemByMonth.key }}
{ + this.historicalDataItems = this.marketData.map(({ date, marketPrice }) => { return { - date: format(marketDataItem.date, DATE_FORMAT), - value: marketDataItem.marketPrice + date: format(date, DATE_FORMAT), + value: marketPrice }; }); @@ -157,10 +157,6 @@ export class AdminMarketDataDetailComponent implements OnChanges, OnInit { const date = parseISO(`${yearMonth}-${day}`); const marketPrice = this.marketDataByMonth[yearMonth]?.[day]?.marketPrice; - if (isSameDay(date, new Date())) { - return; - } - const dialogRef = this.dialog.open(MarketDataDetailDialog, { data: { date, @@ -177,7 +173,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..bcf7679d0 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 @@ -178,10 +178,20 @@ export class AdminMarketDataComponent } public onDeleteProfileData({ dataSource, symbol }: UniqueAsset) { - this.adminService - .deleteProfileData({ dataSource, symbol }) - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(() => {}); + const confirmation = confirm( + $localize`Do you really want to delete this asset profile?` + ); + + if (confirmation) { + this.adminService + .deleteProfileData({ dataSource, symbol }) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + setTimeout(() => { + window.location.reload(); + }, 300); + }); + } } public onGather7Days() { @@ -342,7 +352,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) + + + +
+ +
+ +
+
, public readonly formBuilder: FormBuilder ) {} public ngOnInit() { - this.createAssetProfileForm = this.formBuilder.group({ - searchSymbol: new FormControl(null, [Validators.required]) - }); + this.createAssetProfileForm = this.formBuilder.group( + { + addSymbol: new FormControl(null, [Validators.required]), + searchSymbol: new FormControl(null, [Validators.required]) + }, + { + validators: this.atLeastOneValid + } + ); + + this.mode = 'auto'; } public onCancel() { this.dialogRef.close(); } + public onRadioChange(mode: 'auto' | 'manual') { + this.mode = mode; + } + public onSubmit() { - this.dialogRef.close({ - dataSource: - this.createAssetProfileForm.controls['searchSymbol'].value.dataSource, - symbol: this.createAssetProfileForm.controls['searchSymbol'].value.symbol - }); + this.mode === 'auto' + ? this.dialogRef.close({ + dataSource: + this.createAssetProfileForm.controls['searchSymbol'].value + .dataSource, + symbol: + this.createAssetProfileForm.controls['searchSymbol'].value.symbol + }) + : this.dialogRef.close({ + dataSource: 'MANUAL', + symbol: this.createAssetProfileForm.controls['addSymbol'].value + }); } public ngOnDestroy() {} + + private atLeastOneValid(control: AbstractControl): ValidationErrors { + const addSymbolControl = control.get('addSymbol'); + const searchSymbolControl = control.get('searchSymbol'); + + if (addSymbolControl.valid && searchSymbolControl.valid) { + return { atLeastOneValid: true }; + } + + if ( + addSymbolControl.valid || + !addSymbolControl || + searchSymbolControl.valid || + !searchSymbolControl + ) { + return { atLeastOneValid: false }; + } + + return { atLeastOneValid: true }; + } } diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html index 43eadf93e..e7ed9352a 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -6,13 +6,35 @@ >

Add Asset Profile

- - Name, symbol or ISIN - - +
+ + + + + + + +
+ +
+ + Name, symbol or ISIN + + +
+
+ + Symbol + + +
@@ -20,7 +42,7 @@ color="primary" mat-flat-button type="submit" - [disabled]="!createAssetProfileForm.valid" + [disabled]="createAssetProfileForm.hasError('atLeastOneValid')" > Save diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.module.ts b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.module.ts index e99d8f788..2d50200c4 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.module.ts +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.module.ts @@ -4,6 +4,8 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { MatRadioModule } from '@angular/material/radio'; import { GfSymbolAutocompleteModule } from '@ghostfolio/ui/symbol-autocomplete'; import { CreateAssetProfileDialog } from './create-asset-profile-dialog.component'; @@ -17,6 +19,8 @@ import { CreateAssetProfileDialog } from './create-asset-profile-dialog.componen MatDialogModule, MatButtonModule, MatFormFieldModule, + MatInputModule, + MatRadioModule, ReactiveFormsModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA] diff --git a/apps/client/src/app/components/admin-overview/admin-overview.component.ts b/apps/client/src/app/components/admin-overview/admin-overview.component.ts index b1e91dfc9..97573cdbe 100644 --- a/apps/client/src/app/components/admin-overview/admin-overview.component.ts +++ b/apps/client/src/app/components/admin-overview/admin-overview.component.ts @@ -1,6 +1,5 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { MatCheckboxChange } from '@angular/material/checkbox'; -import { environment } from '@ghostfolio/client/../environments/environment'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { CacheService } from '@ghostfolio/client/services/cache.service'; import { DataService } from '@ghostfolio/client/services/data.service'; diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts index 48783c91b..7cccfe2f7 100644 --- a/apps/client/src/app/components/admin-users/admin-users.component.ts +++ b/apps/client/src/app/components/admin-users/admin-users.component.ts @@ -1,4 +1,5 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatTableDataSource } from '@angular/material/table'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; @@ -20,13 +21,15 @@ import { takeUntil } from 'rxjs/operators'; templateUrl: './admin-users.html' }) export class AdminUsersComponent implements OnDestroy, OnInit { + public dataSource: MatTableDataSource = + new MatTableDataSource(); public defaultDateFormat: string; + public displayedColumns: string[] = []; public getEmojiFlag = getEmojiFlag; public hasPermissionForSubscription: boolean; public hasPermissionToImpersonateAllUsers: boolean; public info: InfoItem; public user: User; - public users: AdminData['users']; private unsubscribeSubject = new Subject(); @@ -44,6 +47,29 @@ export class AdminUsersComponent implements OnDestroy, OnInit { permissions.enableSubscription ); + if (this.hasPermissionForSubscription) { + this.displayedColumns = [ + 'index', + 'user', + 'country', + 'registration', + 'accounts', + 'activities', + 'engagementPerDay', + 'lastRequest', + 'actions' + ]; + } else { + this.displayedColumns = [ + 'index', + 'user', + 'registration', + 'accounts', + 'activities', + 'actions' + ]; + } + this.userService.stateChanged .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((state) => { @@ -118,7 +144,7 @@ export class AdminUsersComponent implements OnDestroy, OnInit { .fetchAdminData() .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ users }) => { - this.users = users; + this.dataSource = new MatTableDataSource(users); this.changeDetectorRef.markForCheck(); }); diff --git a/apps/client/src/app/components/admin-users/admin-users.html b/apps/client/src/app/components/admin-users/admin-users.html index 71166a6e1..b6e296b95 100644 --- a/apps/client/src/app/components/admin-users/admin-users.html +++ b/apps/client/src/app/components/admin-users/admin-users.html @@ -2,136 +2,232 @@
- - - - - - - - - - - - - - - - - - - + + + + + + - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + +
#User - Country - - Registration - - Accounts - - Activities - - Engagement per Day - - Last Request -
{{ i + 1 }} -
- {{ userItem.id }} - {{ (userItem.id | slice:0:5) + '...' }} - -
-
- {{ getEmojiFlag(userItem.country) }} + + + # + + {{ i + 1 }} + + User + +
+ {{ element.id }} + {{ (element.id | slice:0:5) + '...' }} -
- {{ formatDistanceToNow(userItem.createdAt) }} - - - - - + + + Country + + {{ getEmojiFlag(element.country) }} - - + + + + + Registration + + {{ formatDistanceToNow(element.createdAt) }} + + Accounts + + + + Activities + + + + Engagement per Day + + + + Last Request + + {{ formatDistanceToNow(element.lastActivity) }} + + + + + + - - - - -
diff --git a/apps/client/src/app/components/admin-users/admin-users.module.ts b/apps/client/src/app/components/admin-users/admin-users.module.ts index 8c381b205..689b39787 100644 --- a/apps/client/src/app/components/admin-users/admin-users.module.ts +++ b/apps/client/src/app/components/admin-users/admin-users.module.ts @@ -2,6 +2,7 @@ import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; +import { MatTableModule } from '@angular/material/table'; import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { GfValueModule } from '@ghostfolio/ui/value'; @@ -15,7 +16,8 @@ import { AdminUsersComponent } from './admin-users.component'; GfPremiumIndicatorModule, GfValueModule, MatButtonModule, - MatMenuModule + MatMenuModule, + MatTableModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) diff --git a/apps/client/src/app/components/header/header.component.html b/apps/client/src/app/components/header/header.component.html index 45986df95..4d606f591 100644 --- a/apps/client/src/app/components/header/header.component.html +++ b/apps/client/src/app/components/header/header.component.html @@ -131,6 +131,9 @@ diff --git a/apps/client/src/app/components/header/header.component.scss b/apps/client/src/app/components/header/header.component.scss index ce43c55ab..2e5b583c2 100644 --- a/apps/client/src/app/components/header/header.component.scss +++ b/apps/client/src/app/components/header/header.component.scss @@ -22,7 +22,7 @@ } .mdc-button { - height: unset; + height: 100%; &:not(.mat-primary) { background-color: transparent; diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts index a83e71e88..bae022133 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts @@ -81,8 +81,6 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { .subscribe((impersonationId) => { this.hasImpersonationId = !!impersonationId; }); - - this.update(); } public onChangeDateRange(dateRange: DateRange) { diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts index 1727191e8..2aa38f4d7 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts @@ -4,7 +4,9 @@ import { Inject, OnDestroy } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { CreateAccessDto } from '@ghostfolio/api/app/access/create-access.dto'; import { Subject } from 'rxjs'; import { CreateOrUpdateAccessDialogParams } from './interfaces/interfaces'; @@ -17,19 +19,36 @@ import { CreateOrUpdateAccessDialogParams } from './interfaces/interfaces'; templateUrl: 'create-or-update-access-dialog.html' }) export class CreateOrUpdateAccessDialog implements OnDestroy { + public accessForm: FormGroup; + private unsubscribeSubject = new Subject(); public constructor( + @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateAccessDialogParams, public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateAccessDialogParams + private formBuilder: FormBuilder ) {} - ngOnInit() {} + ngOnInit() { + this.accessForm = this.formBuilder.group({ + alias: [this.data.access.alias], + type: [this.data.access.type, Validators.required] + }); + } public onCancel() { this.dialogRef.close(); } + public onSubmit() { + const access: CreateAccessDto = { + alias: this.accessForm.controls['alias'].value, + type: this.accessForm.controls['type'].value + }; + + this.dialogRef.close({ access }); + } + public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html index 5142a7f6b..c2afc51fb 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -1,33 +1,38 @@ -
+

Grant access

Alias
Type - + Public
- + 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..fb3346ae0 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 @@ -1,5 +1,6 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { RouterModule } from '@angular/router'; import { GfPortfolioAccessTableModule } from '@ghostfolio/client/components/access-table/access-table.module'; @@ -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-membership/user-account-membership.html b/apps/client/src/app/components/user-account-membership/user-account-membership.html index 1681e3e16..4031ce9a0 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.html +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.html @@ -2,48 +2,42 @@

Membership

-
-
- -
- Valid until {{ - user?.subscription?.expiresAt | date: defaultDateFormat }} -
-
- - -
- {{ baseCurrency }} {{ price }} {{ baseCurrency }} {{ price - coupon - }} - {{ baseCurrency }} {{ price }} per year -
-
+
+ +
+ + +
+ {{ baseCurrency }} {{ price }} {{ baseCurrency }} {{ price - coupon + }} + {{ baseCurrency }} {{ price }} per year +
+
+
- + >
@@ -139,12 +140,13 @@
- + >
@@ -153,12 +155,13 @@
Sign in with fingerprint
- + >
- + >
diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.module.ts b/apps/client/src/app/components/user-account-settings/user-account-settings.module.ts index 24e57ff20..7a40cf641 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.module.ts +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.module.ts @@ -3,9 +3,9 @@ import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; -import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatSelectModule } from '@angular/material/select'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { RouterModule } from '@angular/router'; import { GfValueModule } from '@ghostfolio/ui/value'; @@ -20,9 +20,9 @@ import { UserAccountSettingsComponent } from './user-account-settings.component' GfValueModule, MatButtonModule, MatCardModule, - MatCheckboxModule, MatFormFieldModule, MatSelectModule, + MatSlideToggleModule, ReactiveFormsModule, RouterModule ] diff --git a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.html b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.html index 0248a8b46..fab653145 100644 --- a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.html +++ b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.html @@ -1,7 +1,7 @@
-

+

Our OSS Friends diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts index 471874dc2..4c15f73b0 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts +++ b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -1,5 +1,4 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { environment } from '@ghostfolio/client/../environments/environment'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { User } from '@ghostfolio/common/interfaces'; @@ -20,7 +19,6 @@ export class AboutOverviewPageComponent implements OnDestroy, OnInit { public routerLinkFaq = ['/' + $localize`faq`]; public routerLinkFeatures = ['/' + $localize`features`]; public user: User; - public version = environment.version; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.html b/apps/client/src/app/pages/about/overview/about-overview-page.html index a9bada763..4dc9fbf78 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.html +++ b/apps/client/src/app/pages/about/overview/about-overview-page.html @@ -35,9 +35,6 @@ title="Contributors to Ghostfolio" >contributors. - - This instance is running Ghostfolio {{ version }}. - Check the system status at { + 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.html b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html index 91efd0972..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,7 +36,9 @@ type="number" (keydown.enter)="$event.stopPropagation()" /> - {{ data.account.currency }} + {{ accountForm.controls['currency'].value }}

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 0f8b8ecb8..22ec5e1f8 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 @@ -1,13 +1,13 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; import { MatButtonModule } from '@angular/material/button'; import { MatCheckboxModule } from '@angular/material/checkbox'; 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'; diff --git a/apps/client/src/app/pages/i18n/i18n-page-routing.module.ts b/apps/client/src/app/pages/i18n/i18n-page-routing.module.ts new file mode 100644 index 000000000..9965121ca --- /dev/null +++ b/apps/client/src/app/pages/i18n/i18n-page-routing.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + +import { I18nPageComponent } from './i18n-page.component'; + +const routes: Routes = [ + { + canActivate: [AuthGuard], + component: I18nPageComponent, + path: '' + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class I18nPageRoutingModule {} diff --git a/apps/client/src/app/pages/i18n/i18n-page.component.ts b/apps/client/src/app/pages/i18n/i18n-page.component.ts new file mode 100644 index 000000000..46837fa57 --- /dev/null +++ b/apps/client/src/app/pages/i18n/i18n-page.component.ts @@ -0,0 +1,21 @@ +import { Component, OnInit } from '@angular/core'; +import { Subject } from 'rxjs'; + +@Component({ + host: { class: 'page' }, + selector: 'gf-i18n-page', + styleUrls: ['./i18n-page.scss'], + templateUrl: './i18n-page.html' +}) +export class I18nPageComponent implements OnInit { + private unsubscribeSubject = new Subject(); + + public constructor() {} + + public ngOnInit() {} + + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } +} diff --git a/apps/client/src/app/pages/i18n/i18n-page.html b/apps/client/src/app/pages/i18n/i18n-page.html new file mode 100644 index 000000000..1ace8e297 --- /dev/null +++ b/apps/client/src/app/pages/i18n/i18n-page.html @@ -0,0 +1,10 @@ +
+
+
    +
  • + Ghostfolio is a personal finance dashboard to keep track of your assets + like stocks, ETFs or cryptocurrencies across multiple platforms. +
  • +
+
+
diff --git a/apps/client/src/app/pages/i18n/i18n-page.module.ts b/apps/client/src/app/pages/i18n/i18n-page.module.ts new file mode 100644 index 000000000..5b5580ebf --- /dev/null +++ b/apps/client/src/app/pages/i18n/i18n-page.module.ts @@ -0,0 +1,12 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; + +import { I18nPageRoutingModule } from './i18n-page-routing.module'; +import { I18nPageComponent } from './i18n-page.component'; + +@NgModule({ + declarations: [I18nPageComponent], + imports: [CommonModule, I18nPageRoutingModule], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class I18nPageModule {} diff --git a/apps/client/src/app/pages/i18n/i18n-page.scss b/apps/client/src/app/pages/i18n/i18n-page.scss new file mode 100644 index 000000000..5d4e87f30 --- /dev/null +++ b/apps/client/src/app/pages/i18n/i18n-page.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} 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/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html index b6f1f3183..9772c0790 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -20,10 +20,7 @@ >Stocks, ETFs, bonds, cryptocurrencies, commodities - + {{ typesTranslationMap['FEE'] }} One-time fee, annual account feesDistribution of corporate earnings - + {{ typesTranslationMap['INTEREST'] }} Revenue for lending out money(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 d5dce6159..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'; @@ -505,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 bdf3bf6bb..005b614de 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/assets/oss-friends.json b/apps/client/src/assets/oss-friends.json index d7d8e1506..43d8141ac 100644 --- a/apps/client/src/assets/oss-friends.json +++ b/apps/client/src/assets/oss-friends.json @@ -1,5 +1,5 @@ { - "createdAt": "2023-10-05T00:00:00.000Z", + "createdAt": "2023-10-21T00:00:00.000Z", "data": [ { "name": "BoxyHQ", @@ -21,11 +21,21 @@ "description": "The Open-Source DocuSign Alternative. We aim to earn your trust by enabling you to self-host the platform and examine its inner workings.", "href": "https://documenso.com" }, + { + "name": "dyrector.io", + "description": "dyrector.io is an open-source continuous delivery & deployment platform with version management.", + "href": "https://dyrector.io" + }, { "name": "Erxes", "description": "The Open-Source HubSpot Alternative. A single XOS enables to create unique and life-changing experiences that work for all types of business.", "href": "https://erxes.io" }, + { + "name": "Firecamp", + "description": "vscode for apis, open-source postman/insomnia alternative", + "href": "https://firecamp.io" + }, { "name": "Formbricks", "description": "Survey granular user segments at any point in the user journey. Gather up to 6x more insights with targeted micro-surveys. All open-source.", @@ -46,6 +56,11 @@ "description": "Open-source authentication and user management for the passkey era. Integrated in minutes, for web and mobile apps.", "href": "https://www.hanko.io" }, + { + "name": "Hook0", + "description": "Open-Source Webhooks-as-a-service (WaaS) that makes it easy for developers to send webhooks.", + "href": "https://www.hook0.com/" + }, { "name": "HTMX", "description": "HTMX is a dependency-free JavaScript library that allows you to access AJAX, CSS Transitions, WebSockets, and Server Sent Events directly in HTML.", @@ -86,11 +101,21 @@ "description": "Open-source solution to deploy, scale, and operate your multiplayer game.", "href": "https://rivet.gg" }, + { + "name": "Shelf.nu", + "description": "Open Source Asset and Equipment tracking software that lets you create QR asset labels, manage and overview your assets across locations.", + "href": "https://www.shelf.nu/" + }, { "name": "Sniffnet", "description": "Sniffnet is a network monitoring tool to help you easily keep track of your Internet traffic.", "href": "https://www.sniffnet.net" }, + { + "name": "Spark.NET", + "description": "The .NET Web Framework for Makers. Build production ready, full-stack web applications fast without sweating the small stuff.", + "href": "https://spark-framework.net" + }, { "name": "Tolgee", "description": "Software localization from A to Z made really easy.", @@ -101,16 +126,16 @@ "description": "Create long-running Jobs directly in your codebase with features like API integrations, webhooks, scheduling and delays.", "href": "https://trigger.dev" }, - { - "name": "Typebot", - "description": "Typebot gives you powerful blocks to create unique chat experiences. Embed them anywhere on your apps and start collecting results like magic.", - "href": "https://typebot.io" - }, { "name": "Twenty", "description": "A modern CRM offering the flexibility of open-source, advanced features and sleek design.", "href": "https://twenty.com" }, + { + "name": "Typebot", + "description": "Typebot gives you powerful blocks to create unique chat experiences. Embed them anywhere on your apps and start collecting results like magic.", + "href": "https://typebot.io" + }, { "name": "Webiny", "description": "Open-source enterprise-grade serverless CMS. Own your data. Scale effortlessly. Customize everything.", @@ -120,11 +145,6 @@ "name": "Webstudio", "description": "Webstudio is an open source alternative to Webflow", "href": "https://webstudio.is" - }, - { - "name": "Spark.NET", - "description": "The .NET Web Framework for Makers. Build production ready, full-stack web applications fast without sweating the small stuff.", - "href": "https://spark-framework.net" } ], "source": "https://formbricks.com/api/oss-friends" diff --git a/apps/client/src/environments/environment.prod.ts b/apps/client/src/environments/environment.prod.ts index 66b0c6745..6f1d6b92d 100644 --- a/apps/client/src/environments/environment.prod.ts +++ b/apps/client/src/environments/environment.prod.ts @@ -1,6 +1,5 @@ export const environment = { lastPublish: '{BUILD_TIMESTAMP}', production: true, - stripePublicKey: '', - version: `v${require('../../../../package.json').version}` + stripePublicKey: '' }; diff --git a/apps/client/src/environments/environment.ts b/apps/client/src/environments/environment.ts index 58a0fe1cf..0a4d51d98 100644 --- a/apps/client/src/environments/environment.ts +++ b/apps/client/src/environments/environment.ts @@ -5,8 +5,7 @@ export const environment = { lastPublish: null, production: false, - stripePublicKey: '', - version: 'dev' + stripePublicKey: '' }; /* diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 4ca6c031e..21c260c5d 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 @@ -30,7 +30,7 @@ Empfänger apps/client/src/app/components/access-table/access-table.component.html - 22 + 10 @@ -38,19 +38,19 @@ Typ apps/client/src/app/components/access-table/access-table.component.html - 29 + 17 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 @@ -62,7 +62,7 @@ Details apps/client/src/app/components/access-table/access-table.component.html - 39 + 27 @@ -70,7 +70,7 @@ Widerrufen apps/client/src/app/components/access-table/access-table.component.html - 66 + 54 @@ -78,7 +78,7 @@ Möchtest du diese Zugangsberechtigung wirklich widerrufen? apps/client/src/app/components/access-table/access-table.component.ts - 50 + 49 @@ -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 + 111 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 + 135 @@ -286,7 +290,7 @@ Symbol apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 45 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -294,7 +298,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 87 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 @@ -302,7 +310,7 @@ Datenquelle apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 54 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -318,7 +326,7 @@ Versuche apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 63 @@ -326,7 +334,7 @@ Erstellt apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 72 @@ -334,7 +342,7 @@ Abgeschlossen apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 81 @@ -342,23 +350,23 @@ Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 90 - - Asset Profile - Anlageprofil + + Asset Profiles + Anlageprofile - apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + libs/ui/src/lib/assistant/assistant.html + 67 - - Historical Market Data + + Historical Market Data Historische Marktdaten apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 37,39 @@ -366,7 +374,7 @@ Daten anzeigen apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 150 @@ -374,7 +382,7 @@ Stacktrace anzeigen apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 157 @@ -382,7 +390,7 @@ Job löschen apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 160 @@ -430,11 +438,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 225 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 18 + 40 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -444,9 +452,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 + 97 + + + 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 +472,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,11 +482,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 232 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 25 + 47 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -484,18 +496,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 + 104 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 +518,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 102 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -518,7 +530,7 @@ Anzahl Aktivitäten apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -528,13 +540,17 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 78 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + Please add a currency: Bitte Währung hinzufügen: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -542,7 +558,7 @@ Möchtest du diesen Gutscheincode wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -550,7 +566,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 +574,7 @@ Möchtest du den Cache wirklich leeren? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -566,7 +582,7 @@ Bitte gebe deine Systemmeldung ein: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -574,7 +590,7 @@ Anzahl Benutzer apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -582,7 +598,7 @@ pro Benutzer apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -618,7 +634,7 @@ Wechselkurse apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -626,7 +642,7 @@ Währung hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -634,7 +650,7 @@ Systemmeldung apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -642,7 +658,7 @@ Systemmeldung setzen apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -650,7 +666,7 @@ Lese-Modus apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -658,7 +674,7 @@ Gutscheincodes apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -666,7 +682,7 @@ Hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -674,7 +690,7 @@ Verwaltung apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -682,7 +698,7 @@ Cache leeren apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -702,7 +718,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 192 @@ -746,7 +762,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 206 @@ -758,7 +774,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 216 @@ -778,7 +794,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 224 apps/client/src/app/pages/accounts/accounts-page.html @@ -794,7 +810,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 240 @@ -802,7 +818,7 @@ Ressourcen apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -810,7 +826,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 251 apps/client/src/app/pages/resources/resources-page.html @@ -822,7 +838,7 @@ Preise apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -830,11 +846,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 263 apps/client/src/app/components/header/header.component.html - 304 + 332 + + + 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 +974,7 @@ Über apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -958,7 +982,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 319 @@ -966,7 +990,7 @@ Ich apps/client/src/app/components/header/header.component.html - 145 + 173 @@ -974,7 +998,7 @@ Mein Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 231 @@ -982,7 +1006,7 @@ Über Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 271 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -994,11 +1018,11 @@ Features apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 306 apps/client/src/app/pages/features/features-page.html @@ -1010,11 +1034,11 @@ Märkte apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 348 apps/client/src/app/components/home-market/home-market.html @@ -1042,7 +1066,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 +1078,7 @@ Ups! Falsches Sicherheits-Token. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1106,7 +1130,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 +1174,7 @@ Einloggen apps/client/src/app/components/header/header.component.html - 333 + 361 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1276,7 +1300,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1340,7 +1364,7 @@ Sektoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 155 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1356,7 +1380,7 @@ Länder apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 165 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1516,7 +1540,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 +1552,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 +1632,7 @@ Changelog apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1620,7 +1644,7 @@ Lizenz apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1644,47 +1668,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 + 181 @@ -1694,10 +1718,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 +1727,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 + 27 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 + 91 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 + 93 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 + 137 - 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 + 155 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 + 188 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 +1864,7 @@ Konto aktualisieren apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -1852,7 +1872,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 +1888,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 + 92 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 +1916,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 +1932,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 + 46 @@ -1924,7 +1944,7 @@ Konto ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 91 @@ -1976,7 +1996,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 +2016,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 +2196,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 +2222,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Update activity @@ -2236,7 +2260,7 @@ Name, Symbol oder ISIN apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 10 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2296,11 +2320,11 @@ Kommentar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 212 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 74 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2316,7 +2340,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 116 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2556,7 +2580,7 @@ Änderung vom Allzeithoch libs/ui/src/lib/benchmark/benchmark.component.html - 12 + 31 @@ -2564,7 +2588,7 @@ vom AZH libs/ui/src/lib/benchmark/benchmark.component.html - 14 + 33 @@ -2587,8 +2611,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 + 48 @@ -2596,7 +2620,7 @@ Registrieren apps/client/src/app/components/header/header.component.html - 345 + 373 @@ -2684,7 +2708,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2700,7 +2724,7 @@ Sektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 140 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2712,7 +2736,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 149 apps/client/src/app/components/admin-users/admin-users.html @@ -2856,7 +2880,7 @@ Filtern nach... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 269 + 279 @@ -2888,11 +2912,11 @@ Alias apps/client/src/app/components/access-table/access-table.component.html - 15 + 3 - 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 +2931,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 + 172 @@ -2947,40 +2971,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 + 31 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 + 114 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 + 126 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 + 127 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 + 128 @@ -3240,35 +3264,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 + 62 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3292,7 +3316,7 @@ Symbol Zuordnung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 190 @@ -3328,7 +3352,7 @@ Benutzer Registrierung apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3342,6 +3366,10 @@ Import Importieren + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 80 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 150 @@ -3396,7 +3424,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3435,8 +3463,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 +3515,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 + 138,140 - + 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 + 173,175 @@ -3744,7 +3772,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3887,8 +3915,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 +4008,7 @@ Möchtest du diese Plattform wirklich löschen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4042,6 +4070,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 +4095,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 +4164,7 @@ Private Finanzen apps/client/src/app/app.component.html - 54 + 55 @@ -4144,7 +4172,7 @@ Häufig gestellte Fragen (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4356,7 +4384,7 @@ Scraper Konfiguration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 201 @@ -4494,6 +4522,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 +4642,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 +4762,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 +4882,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 +5002,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 +5234,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 +5466,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 +5698,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 +5934,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 +6166,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 +6398,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 +6630,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 +6750,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,7 +6870,15 @@ 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 Anonyme Nutzung @@ -6794,6 +6990,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 +7110,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 +7230,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 +7350,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 +7470,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 +7683,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 + 154 @@ -7531,8 +7767,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 + 195 @@ -7624,7 +7860,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7816,7 +8052,7 @@ Nutzer aus aller Welt verwenden Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7824,7 +8060,7 @@ Wie funktioniert Ghostfolio ? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7832,7 +8068,7 @@ Registriere dich anonym* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7840,7 +8076,7 @@ * Keine E-Mail-Adresse oder Kreditkarte erforderlich apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7848,7 +8084,7 @@ Füge historische Transaktionen hinzu apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7856,7 +8092,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 +8100,7 @@ Bist du bereit? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7872,7 +8108,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 +8120,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7900,7 +8136,7 @@ Beginne mit nur 3 Schritten apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7932,11 +8168,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 +8230,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 +8302,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 +8348,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 +8422,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 +8494,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 +8560,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 +8592,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 +8606,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 +8656,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8436,11 +8692,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 +8714,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 +8746,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 +8818,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 +8986,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 +9106,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 +9226,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 +9346,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 +9466,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 +9586,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 +9718,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 +9838,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 +9958,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 +9996,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 +10012,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 +10056,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 +10088,7 @@ Österreich apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9752,7 +10096,7 @@ Italien apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9760,7 +10104,7 @@ Niederlande apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9768,7 +10112,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9776,7 +10120,7 @@ Neuseeland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9784,11 +10128,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 @@ -9827,14 +10171,6 @@ 7 - - Add Access - Zugang hinzufügen - - apps/client/src/app/components/access-table/access-table.component.html - 8,10 - - Choose or drop a file here Wählen Sie eine Datei aus oder ziehen Sie sie hierhin @@ -9912,7 +10248,7 @@ Möchtest du diesen Tag wirklich löschen? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9936,11 +10272,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 +10292,7 @@ Währungsklumpenrisiken apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9964,7 +10300,167 @@ 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 + 184 + + + + 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 + 89 + + + + No entries... + Keine Einträge vorhanden... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profile + Anlageprofil + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31,33 + + + + Do you really want to delete this asset profile? + Möchtest du dieses Anlageprofil wirklich löschen? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 182 + + + + Search + Suche + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Manuell hinzufügen + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + Mit dem Finanz-Dashboard Ghostfolio können Sie Ihr Vermögen in Form von Aktien, ETFs oder Kryptowährungen verteilt über mehrere Finanzinstitute überwachen. + + apps/client/src/app/pages/i18n/i18n-page.html + 4,7 + + + + Last All Time High + Letztes Allzeithoch + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index bbb2d41a5..935b6605d 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 @@ -31,7 +31,7 @@ Beneficiario apps/client/src/app/components/access-table/access-table.component.html - 22 + 10 @@ -39,19 +39,19 @@ Tipo apps/client/src/app/components/access-table/access-table.component.html - 29 + 17 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 @@ -63,7 +63,7 @@ Detalles apps/client/src/app/components/access-table/access-table.component.html - 39 + 27 @@ -71,7 +71,7 @@ Revoca apps/client/src/app/components/access-table/access-table.component.html - 66 + 54 @@ -79,7 +79,7 @@ ¿Quieres revocar el acceso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 50 + 49 @@ -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 + 111 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 + 135 @@ -287,7 +291,7 @@ Símbolo apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 45 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -295,7 +299,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 87 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 @@ -303,7 +311,7 @@ Fuente de datos apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 54 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -319,7 +327,7 @@ Intentos apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 63 @@ -327,7 +335,7 @@ Creado apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 72 @@ -335,7 +343,7 @@ Finalizado apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 81 @@ -343,23 +351,23 @@ Estado apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 90 - - Asset Profile - Perfil del activo + + Asset Profiles + Perfil del activo - apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + libs/ui/src/lib/assistant/assistant.html + 67 - - Historical Market Data - Datos históricos del mercado + + Historical Market Data + Datos históricos del mercado apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 37,39 @@ -367,7 +375,7 @@ Visualiza los datos apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 150 @@ -375,7 +383,7 @@ Visualiza Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 157 @@ -383,7 +391,7 @@ Elimina el trabajo apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 160 @@ -431,11 +439,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 225 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 18 + 40 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -445,9 +453,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 + 97 + + + 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 +473,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,11 +483,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 232 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 25 + 47 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -485,18 +497,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 + 104 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 +519,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 102 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -519,7 +531,7 @@ Recuento de actividad apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -529,13 +541,17 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 78 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + Please add a currency: Por favor, añade una divisa: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -543,7 +559,7 @@ ¿Estás seguro de eliminar este cupón? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -551,7 +567,7 @@ ¿Estás seguro de eliminar esta divisa? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -559,7 +575,7 @@ ¿Estás seguro de limpiar la caché? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -567,7 +583,7 @@ Por favor, establece tu mensaje del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -575,7 +591,7 @@ Número de usuarios apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -583,7 +599,7 @@ por usario apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -619,7 +635,7 @@ Tipos de cambio apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -627,7 +643,7 @@ Añadir divisa apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -635,7 +651,7 @@ Mensaje del sistema apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -643,7 +659,7 @@ Establecer mensaje apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -651,7 +667,7 @@ Modo de solo lectura apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -659,7 +675,7 @@ Cupones apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -667,7 +683,7 @@ Añadir apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -675,7 +691,7 @@ Tareas domésticas apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -683,7 +699,7 @@ Limpiar caché apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -703,7 +719,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 192 @@ -747,7 +763,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 206 @@ -759,7 +775,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 216 @@ -779,7 +795,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 224 apps/client/src/app/pages/accounts/accounts-page.html @@ -795,7 +811,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 240 @@ -803,7 +819,7 @@ Recursos apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -811,7 +827,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 251 apps/client/src/app/pages/resources/resources-page.html @@ -823,7 +839,7 @@ Precios apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -831,11 +847,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 263 apps/client/src/app/components/header/header.component.html - 304 + 332 + + + 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 +975,7 @@ Sobre apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -959,7 +983,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 319 @@ -967,7 +991,7 @@ apps/client/src/app/components/header/header.component.html - 145 + 173 @@ -975,7 +999,7 @@ Mi Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 231 @@ -983,7 +1007,7 @@ Sobre Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 271 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -995,11 +1019,11 @@ Funcionalidades apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 306 apps/client/src/app/pages/features/features-page.html @@ -1011,11 +1035,11 @@ Mercados apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 348 apps/client/src/app/components/home-market/home-market.html @@ -1043,7 +1067,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 +1079,7 @@ Vaya! Token de seguridad incorrecto. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1107,7 +1131,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 +1175,7 @@ Iniciar sesión apps/client/src/app/components/header/header.component.html - 333 + 361 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1274,7 +1298,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1338,7 +1362,7 @@ Sectores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 155 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1354,7 +1378,7 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 165 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1514,7 +1538,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 +1550,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 +1630,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 +1642,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 +1666,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 + 181 @@ -1692,10 +1716,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 +1725,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 + 27 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 + 91 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 + 93 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 + 137 - 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 + 155 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 + 188 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 +1862,7 @@ Editar cuenta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -1850,7 +1870,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 +1886,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 + 92 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 +1914,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 +1930,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 + 46 @@ -1922,7 +1942,7 @@ ID cuenta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 91 @@ -1974,7 +1994,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 +2014,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 +2194,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 +2220,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Update activity @@ -2234,7 +2258,7 @@ Nombre, símbolo o ISIN apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 10 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2294,11 +2318,11 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 212 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 74 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2314,7 +2338,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 116 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2554,7 +2578,7 @@ Variación respecto al máximo histórico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 12 + 31 @@ -2562,7 +2586,7 @@ desde el máximo histórico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 14 + 33 @@ -2585,8 +2609,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 + 48 @@ -2594,7 +2618,7 @@ Comenzar apps/client/src/app/components/header/header.component.html - 345 + 373 @@ -2662,7 +2686,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2718,7 +2742,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 140 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2730,7 +2754,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 149 apps/client/src/app/components/admin-users/admin-users.html @@ -2870,7 +2894,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 269 + 279 @@ -2894,19 +2918,19 @@ Alias apps/client/src/app/components/access-table/access-table.component.html - 15 + 3 - 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 + 172 @@ -2945,40 +2969,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 + 31 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 + 114 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 + 126 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 + 127 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 + 128 @@ -3238,35 +3262,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 + 62 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3290,7 +3314,7 @@ Mapeo de símbolos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 190 @@ -3326,7 +3350,7 @@ User Signup apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3340,6 +3364,10 @@ Import Import + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 80 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 150 @@ -3394,7 +3422,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3433,8 +3461,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 +3513,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 + 138,140 - + 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 + 173,175 @@ -3742,7 +3770,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3885,8 +3913,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 +4006,7 @@ Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4040,6 +4068,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 +4093,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 +4162,7 @@ Personal Finance apps/client/src/app/app.component.html - 54 + 55 @@ -4142,7 +4170,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4354,7 +4382,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 201 @@ -4492,6 +4520,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 +4640,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 +4760,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 +4880,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 +5000,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 +5232,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 +5464,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 +5696,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 +5932,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 +6164,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 +6396,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 +6628,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 +6748,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,7 +6868,15 @@ 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 Use anonymously @@ -6792,6 +6988,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 +7108,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 +7228,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,6 +7348,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 @@ -7240,6 +7468,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 @@ -7445,8 +7681,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 + 154 @@ -7529,8 +7765,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 + 195 @@ -7622,7 +7858,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7814,7 +8050,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 +8058,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7830,7 +8066,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7838,7 +8074,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7846,7 +8082,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7854,7 +8090,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7862,7 +8098,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7870,7 +8106,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7882,7 +8118,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7898,7 +8134,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7930,11 +8166,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 +8228,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 +8300,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 +8346,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 +8420,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 +8492,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 +8558,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 +8590,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 +8604,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 +8654,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8434,11 +8690,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 +8712,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 +8744,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 +8816,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 +8984,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 +9104,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 +9224,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 +9344,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 +9464,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 +9584,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 +9716,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 +9836,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 +9956,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 +9994,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 +10010,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 +10054,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 +10086,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9750,7 +10094,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9758,7 +10102,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9766,7 +10110,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9774,7 +10118,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9782,11 +10126,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 @@ -9825,14 +10169,6 @@ 7 - - Add Access - Add Access - - apps/client/src/app/components/access-table/access-table.component.html - 8,10 - - Choose or drop a file here Choose or drop a file here @@ -9910,7 +10246,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9934,11 +10270,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 +10290,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9962,7 +10298,167 @@ 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 + 184 + + + + 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 + 89 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profile + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31,33 + + + + Do you really want to delete this asset profile? + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 182 + + + + Search + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + Ghostfolio es un dashboard de finanzas personales para hacer un seguimiento de tus activos como acciones, ETFs o criptodivisas a través de múltiples plataformas. + + apps/client/src/app/pages/i18n/i18n-page.html + 4,7 + + + + Last All Time High + Last All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index bdba67fad..be8a8b10b 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 @@ -14,11 +14,11 @@ Alias apps/client/src/app/components/access-table/access-table.component.html - 15 + 3 - 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 @@ -26,7 +26,7 @@ Bénéficiaire apps/client/src/app/components/access-table/access-table.component.html - 22 + 10 @@ -34,19 +34,19 @@ Type apps/client/src/app/components/access-table/access-table.component.html - 29 + 17 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 @@ -58,7 +58,7 @@ Détails apps/client/src/app/components/access-table/access-table.component.html - 39 + 27 @@ -66,7 +66,7 @@ Révoquer apps/client/src/app/components/access-table/access-table.component.html - 66 + 54 @@ -74,7 +74,7 @@ Voulez-vous vraiment révoquer cet accès ? apps/client/src/app/components/access-table/access-table.component.ts - 50 + 49 @@ -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 + 46 @@ -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 + 111 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 + 92 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 + 45 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -338,7 +342,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 87 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 @@ -346,7 +354,7 @@ Source Données apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 54 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -362,7 +370,7 @@ Tentatives apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 63 @@ -370,7 +378,7 @@ Créé apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 72 @@ -378,7 +386,7 @@ Terminé apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 81 @@ -386,7 +394,7 @@ Statut apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 90 @@ -394,23 +402,23 @@ Supprimer Tâches apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 135 - - Asset Profile - Profil d'Actifs + + Asset Profiles + Profil d'Actifs - apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + libs/ui/src/lib/assistant/assistant.html + 67 - - Historical Market Data - Données de Marché Historiques + + Historical Market Data + Données de Marché Historiques apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 37,39 @@ -418,7 +426,7 @@ Voir Données apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 150 @@ -426,7 +434,7 @@ Voir la Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 157 @@ -434,7 +442,7 @@ Supprimer Tâche apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 160 @@ -482,11 +490,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 225 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 18 + 40 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -496,9 +504,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 + 97 + + + 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 +524,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,11 +534,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 232 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 25 + 47 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -536,25 +548,25 @@ 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 + 104 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... Filtrer par... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 269 + 279 @@ -566,7 +578,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 116 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -586,7 +598,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -606,7 +618,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 102 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -628,6 +640,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 78 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + Sectors Count @@ -686,7 +702,7 @@ Secteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 140 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -698,7 +714,7 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 149 apps/client/src/app/components/admin-users/admin-users.html @@ -714,7 +730,7 @@ Secteurs apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 155 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -730,7 +746,7 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 165 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -742,7 +758,7 @@ Équivalence de Symboles apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 190 @@ -750,11 +766,11 @@ Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 212 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 74 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -766,7 +782,7 @@ Veuillez ajouter une devise : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -774,7 +790,7 @@ Voulez-vous vraiment supprimer ce code promotionnel ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -782,7 +798,7 @@ Voulez-vous vraiment supprimer cette devise ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -790,7 +806,7 @@ Voulez-vous vraiment vider le cache ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -798,7 +814,7 @@ Veuillez définir votre message système : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -806,7 +822,7 @@ Nombre d'Utilisateurs apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -814,7 +830,7 @@ Nombre d'Activités apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -822,7 +838,7 @@ par Utilisateur apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -830,7 +846,7 @@ Taux de Conversion apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -838,7 +854,7 @@ Ajouter Devise apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -862,7 +878,7 @@ Inscription de Nouveaux Utilisateurs apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -870,7 +886,7 @@ Mode Lecture Seule apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -878,7 +894,7 @@ Message Système apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -886,7 +902,7 @@ Définir Message apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -894,7 +910,7 @@ Codes promotionnels apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -902,7 +918,7 @@ Ajouter apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -910,7 +926,7 @@ Maintenance apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -918,7 +934,7 @@ Vider le Cache apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -938,7 +954,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 192 @@ -966,7 +982,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 224 apps/client/src/app/pages/accounts/accounts-page.html @@ -1050,7 +1066,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 206 @@ -1062,7 +1078,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 216 @@ -1074,7 +1090,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 240 @@ -1082,7 +1098,7 @@ Ressources apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -1090,7 +1106,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 251 apps/client/src/app/pages/resources/resources-page.html @@ -1102,7 +1118,7 @@ Prix apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -1110,11 +1126,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 263 apps/client/src/app/components/header/header.component.html - 304 + 332 + + + 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 +1254,7 @@ À propos apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -1238,7 +1262,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 319 @@ -1246,7 +1270,7 @@ Moi apps/client/src/app/components/header/header.component.html - 145 + 173 @@ -1254,7 +1278,7 @@ Mon Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 231 @@ -1262,7 +1286,7 @@ À propos de Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 271 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1274,11 +1298,11 @@ Fonctionnalités apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 306 apps/client/src/app/pages/features/features-page.html @@ -1290,11 +1314,11 @@ Marchés apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 348 apps/client/src/app/components/home-market/home-market.html @@ -1310,7 +1334,7 @@ Se connecter apps/client/src/app/components/header/header.component.html - 333 + 361 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1322,7 +1346,7 @@ Démarrer apps/client/src/app/components/header/header.component.html - 345 + 373 @@ -1330,7 +1354,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 +1366,7 @@ Oups! Jeton de Sécurité Incorrect. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1450,7 +1474,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 +1629,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1853,7 +1877,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 +1889,7 @@ License apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1889,7 +1913,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 +1925,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 + 31 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 + 181 @@ -1959,10 +1983,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 +1992,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 + 27 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 + 48 @@ -2041,143 +2061,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 + 62 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 - 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 + 91 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 + 93 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 + 114 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 + 126 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 + 127 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 + 128 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 + 137 - 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 + 155 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 + 172 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 + 188 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 +2213,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 +2221,7 @@ Ajouter compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -2217,7 +2237,7 @@ ID du compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 91 @@ -2277,7 +2297,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 +2405,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 +2429,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -2421,7 +2441,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2473,7 +2493,7 @@ Nom, symbole, ou ISIN apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 10 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2559,6 +2579,10 @@ Import Importer + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 80 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 150 @@ -2855,6 +2879,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Pricing @@ -3013,7 +3041,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 44 + 33 apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -3109,7 +3137,7 @@ Différence avec le Record Historique libs/ui/src/lib/benchmark/benchmark.component.html - 12 + 31 @@ -3117,7 +3145,7 @@ par rapport au record historique libs/ui/src/lib/benchmark/benchmark.component.html - 14 + 33 @@ -3432,8 +3460,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 +3512,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 + 138,140 - + 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 + 173,175 @@ -3741,7 +3769,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3884,8 +3912,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 +4005,7 @@ Voulez-vous vraiment supprimer cette plateforme ? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4039,6 +4067,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 +4092,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 +4161,7 @@ Finance Personnelle apps/client/src/app/app.component.html - 54 + 55 @@ -4141,7 +4169,7 @@ Questions Fréquentes (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4353,7 +4381,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 201 @@ -4491,6 +4519,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 +4639,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 +4759,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 +4879,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 +4999,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 +5231,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 +5463,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 +5695,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 +5931,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 +6163,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 +6395,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 +6627,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 +6747,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,7 +6867,15 @@ 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 Use anonymously @@ -6791,6 +6987,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 +7107,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 +7227,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,6 +7347,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 @@ -7239,6 +7467,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 @@ -7444,8 +7680,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 + 154 @@ -7528,8 +7764,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 + 195 @@ -7621,7 +7857,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7813,7 +8049,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 +8057,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7829,7 +8065,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7837,7 +8073,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7845,7 +8081,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7853,7 +8089,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7861,7 +8097,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7869,7 +8105,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7881,7 +8117,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7897,7 +8133,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7929,11 +8165,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 +8227,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 +8299,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 +8345,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 +8419,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 +8491,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 +8557,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 +8589,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 +8603,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 +8653,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8433,11 +8689,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 +8711,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 +8743,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 +8815,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 +8983,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 +9103,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 +9223,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 +9343,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 +9463,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 +9583,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 +9715,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 +9835,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 +9955,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 +9993,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 +10009,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 +10053,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 +10085,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9749,7 +10093,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9757,7 +10101,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9765,7 +10109,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9773,7 +10117,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9781,11 +10125,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 @@ -9824,14 +10168,6 @@ 7 - - Add Access - Add Access - - apps/client/src/app/components/access-table/access-table.component.html - 8,10 - - Choose or drop a file here Choose or drop a file here @@ -9909,7 +10245,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9933,11 +10269,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 +10289,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9961,7 +10297,167 @@ 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 + 184 + + + + 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 + 89 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profile + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31,33 + + + + Do you really want to delete this asset profile? + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 182 + + + + Search + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + Ghostfolio est un dashboard de finances personnelles qui permet de suivre vos actifs comme les actions, les ETF ou les crypto-monnaies sur plusieurs plateformes. + + apps/client/src/app/pages/i18n/i18n-page.html + 4,7 + + + + Last All Time High + Last All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index ae8834f0c..1712694d3 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 @@ -31,7 +31,7 @@ Beneficiario apps/client/src/app/components/access-table/access-table.component.html - 22 + 10 @@ -39,19 +39,19 @@ Tipo apps/client/src/app/components/access-table/access-table.component.html - 29 + 17 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 @@ -63,7 +63,7 @@ Dettagli apps/client/src/app/components/access-table/access-table.component.html - 39 + 27 @@ -71,7 +71,7 @@ Revoca apps/client/src/app/components/access-table/access-table.component.html - 66 + 54 @@ -79,7 +79,7 @@ Vuoi davvero revocare l'accesso concesso? apps/client/src/app/components/access-table/access-table.component.ts - 50 + 49 @@ -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 + 111 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 + 135 @@ -287,7 +291,7 @@ Simbolo apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 45 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -295,7 +299,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 87 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 @@ -303,7 +311,7 @@ Sorgente dei dati apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 54 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -319,7 +327,7 @@ Tentativi apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 63 @@ -327,7 +335,7 @@ Creato apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 72 @@ -335,7 +343,7 @@ Finito apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 81 @@ -343,23 +351,23 @@ Stato apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 90 - - Asset Profile - Profilo dell'asset + + Asset Profiles + Profilo dell'asset - apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + libs/ui/src/lib/assistant/assistant.html + 67 - - Historical Market Data - Dati storici del mercato + + Historical Market Data + Dati storici del mercato apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 37,39 @@ -367,7 +375,7 @@ Visualizza i dati apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 150 @@ -375,7 +383,7 @@ Visualizza Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 157 @@ -383,7 +391,7 @@ Elimina il lavoro apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 160 @@ -431,11 +439,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 225 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 18 + 40 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -445,9 +453,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 + 97 + + + 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 +473,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,11 +483,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 232 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 25 + 47 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -485,18 +497,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 + 104 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 +519,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 102 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -519,7 +531,7 @@ Conteggio attività apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -529,13 +541,17 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 78 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + Please add a currency: Aggiungi una valuta: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -543,7 +559,7 @@ Vuoi davvero eliminare questo buono? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -551,7 +567,7 @@ Vuoi davvero eliminare questa valuta? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -559,7 +575,7 @@ Vuoi davvero svuotare la cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -567,7 +583,7 @@ Imposta il messaggio di sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -575,7 +591,7 @@ Numero di utenti apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -583,7 +599,7 @@ per utente apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -619,7 +635,7 @@ Tassi di cambio apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -627,7 +643,7 @@ Aggiungi valuta apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -635,7 +651,7 @@ Messaggio di sistema apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -643,7 +659,7 @@ Imposta messaggio apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -651,7 +667,7 @@ Modalità di sola lettura apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -659,7 +675,7 @@ Buoni sconto apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -667,7 +683,7 @@ Aggiungi apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -675,7 +691,7 @@ Bilancio domestico apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -683,7 +699,7 @@ Svuota la cache apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -703,7 +719,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 192 @@ -747,7 +763,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 206 @@ -759,7 +775,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 216 @@ -779,7 +795,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 224 apps/client/src/app/pages/accounts/accounts-page.html @@ -795,7 +811,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 240 @@ -803,7 +819,7 @@ Risorse apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -811,7 +827,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 251 apps/client/src/app/pages/resources/resources-page.html @@ -823,7 +839,7 @@ Prezzi apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -831,11 +847,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 263 apps/client/src/app/components/header/header.component.html - 304 + 332 + + + 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 +975,7 @@ Informazioni su apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -959,7 +983,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 319 @@ -967,7 +991,7 @@ Io apps/client/src/app/components/header/header.component.html - 145 + 173 @@ -975,7 +999,7 @@ Il mio Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 231 @@ -983,7 +1007,7 @@ Informazioni su Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 271 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -995,11 +1019,11 @@ Funzionalità apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 306 apps/client/src/app/pages/features/features-page.html @@ -1011,11 +1035,11 @@ Mercati apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 348 apps/client/src/app/components/home-market/home-market.html @@ -1043,7 +1067,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 +1079,7 @@ Ops! Token di sicurezza errato. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1107,7 +1131,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 +1175,7 @@ Accedi apps/client/src/app/components/header/header.component.html - 333 + 361 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1274,7 +1298,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1338,7 +1362,7 @@ Settori apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 155 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1354,7 +1378,7 @@ Paesi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 165 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1514,7 +1538,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 +1550,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 +1630,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 +1642,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 +1666,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 + 181 @@ -1692,10 +1716,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 +1725,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 + 27 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 + 91 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 + 93 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 + 137 - 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 + 155 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 + 188 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 +1862,7 @@ Aggiorna account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -1850,7 +1870,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 +1886,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 + 92 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 +1914,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 +1930,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 + 46 @@ -1922,7 +1942,7 @@ ID account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 91 @@ -1974,7 +1994,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 +2014,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 +2194,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 +2220,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Update activity @@ -2234,7 +2258,7 @@ Nome, simbolo o ISIN apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 10 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2294,11 +2318,11 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 212 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 74 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2314,7 +2338,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 116 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2554,7 +2578,7 @@ Variazione rispetto al massimo storico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 12 + 31 @@ -2562,7 +2586,7 @@ dal massimo storico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 14 + 33 @@ -2585,8 +2609,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 + 48 @@ -2594,7 +2618,7 @@ Inizia apps/client/src/app/components/header/header.component.html - 345 + 373 @@ -2662,7 +2686,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2718,7 +2742,7 @@ Settore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 140 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2730,7 +2754,7 @@ Paese apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 149 apps/client/src/app/components/admin-users/admin-users.html @@ -2870,7 +2894,7 @@ Filtra per... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 269 + 279 @@ -2894,19 +2918,19 @@ Alias apps/client/src/app/components/access-table/access-table.component.html - 15 + 3 - 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 + 172 @@ -2945,40 +2969,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 + 31 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 + 114 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 + 126 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 + 127 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 + 128 @@ -3238,35 +3262,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 + 62 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3290,7 +3314,7 @@ Mappatura dei simboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 190 @@ -3326,7 +3350,7 @@ Registrazione utente apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3340,6 +3364,10 @@ Import Importa + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 80 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 150 @@ -3394,7 +3422,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3433,8 +3461,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 +3513,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 + 138,140 - + 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 + 173,175 @@ -3742,7 +3770,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3885,8 +3913,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 +4006,7 @@ Vuoi davvero eliminare questa piattaforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4040,6 +4068,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 +4093,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 +4162,7 @@ Finanza personale apps/client/src/app/app.component.html - 54 + 55 @@ -4142,7 +4170,7 @@ Domande più frequenti (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4354,7 +4382,7 @@ Configurazione dello scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 201 @@ -4492,6 +4520,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 +4640,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 +4760,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 +4880,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 +5000,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 +5232,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 +5464,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 +5696,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 +5932,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 +6164,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 +6396,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 +6628,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 +6748,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,7 +6868,15 @@ 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 Usalo in modo anonimo @@ -6792,6 +6988,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 +7108,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 +7228,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,6 +7348,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 @@ -7240,6 +7468,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 @@ -7445,8 +7681,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 + 154 @@ -7529,8 +7765,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 + 195 @@ -7622,7 +7858,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7814,7 +8050,7 @@ Membri da tutto il mondo utilizzano Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7822,7 +8058,7 @@ Come funziona Ghostfolio? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7830,7 +8066,7 @@ Iscriviti in modo anonimo* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7838,7 +8074,7 @@ * non è richiesto alcun indirizzo email né la carta di credito apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7846,7 +8082,7 @@ Aggiungi le tue transazioni storiche apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7854,7 +8090,7 @@ Ottieni informazioni preziose sulla composizione del tuo portafoglio apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7862,7 +8098,7 @@ Seipronto? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7870,7 +8106,7 @@ Iscriviti adesso o consulta l'account di esempio apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7882,7 +8118,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7898,7 +8134,7 @@ Inizia in soli 3 passi apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7930,11 +8166,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 +8228,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 +8300,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 +8346,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 +8420,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 +8492,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 +8558,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 +8590,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 +8604,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 +8654,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8434,11 +8690,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 +8712,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 +8744,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 +8816,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 +8984,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 +9104,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 +9224,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 +9344,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 +9464,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 +9584,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 +9716,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 +9836,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 +9956,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 +9994,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 +10010,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 +10054,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 +10086,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9750,7 +10094,7 @@ Italia apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9758,7 +10102,7 @@ Paesi Bassi apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9766,7 +10110,7 @@ Thailandia apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9774,7 +10118,7 @@ Nuova Zelanda apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9782,11 +10126,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 @@ -9825,14 +10169,6 @@ 7 - - Add Access - Add Access - - apps/client/src/app/components/access-table/access-table.component.html - 8,10 - - Choose or drop a file here Choose or drop a file here @@ -9910,7 +10246,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9934,11 +10270,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 +10290,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9962,7 +10298,167 @@ 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 + 184 + + + + 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 + 89 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profile + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31,33 + + + + Do you really want to delete this asset profile? + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 182 + + + + Search + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + Ghostfolio è un dashboard di finanza personale per tenere traccia delle vostre attività come azioni, ETF o criptovalute su più piattaforme. + + apps/client/src/app/pages/i18n/i18n-page.html + 4,7 + + + + Last All Time High + Last All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index f69216f63..f424ee349 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 @@ -30,7 +30,7 @@ Ontvanger apps/client/src/app/components/access-table/access-table.component.html - 22 + 10 @@ -38,19 +38,19 @@ Type apps/client/src/app/components/access-table/access-table.component.html - 29 + 17 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 @@ -62,7 +62,7 @@ Details apps/client/src/app/components/access-table/access-table.component.html - 39 + 27 @@ -70,7 +70,7 @@ Intrekken apps/client/src/app/components/access-table/access-table.component.html - 66 + 54 @@ -78,7 +78,7 @@ Wil je deze verleende toegang echt intrekken? apps/client/src/app/components/access-table/access-table.component.ts - 50 + 49 @@ -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 + 111 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 + 135 @@ -286,7 +290,7 @@ Symbool apps/client/src/app/components/admin-jobs/admin-jobs.html - 21 + 45 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -294,7 +298,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 87 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 @@ -302,7 +310,7 @@ Gegevensbron apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 54 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -318,7 +326,7 @@ Pogingen apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 63 @@ -326,7 +334,7 @@ Aangemaakt apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 72 @@ -334,7 +342,7 @@ Voltooid apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 81 @@ -342,23 +350,23 @@ Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 90 - - Asset Profile - Asset Profiel + + Asset Profiles + Asset Profiel - apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + libs/ui/src/lib/assistant/assistant.html + 67 - - Historical Market Data - Historische marktgegevens + + Historical Market Data + Historische marktgegevens apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 37,39 @@ -366,7 +374,7 @@ Bekijk gegevens apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 150 @@ -374,7 +382,7 @@ Bekijk Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 157 @@ -382,7 +390,7 @@ Taak verwijderen apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 160 @@ -430,11 +438,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 225 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 18 + 40 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -444,9 +452,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 + 97 + + + 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 +472,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,11 +482,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 232 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 25 + 47 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -484,18 +496,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 + 104 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 +518,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 102 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -518,7 +530,7 @@ Aantal activiteiten apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -528,13 +540,17 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 78 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + Please add a currency: Voeg een valuta toe: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -542,7 +558,7 @@ Wil je deze coupon echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -550,7 +566,7 @@ Wil je deze valuta echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -558,7 +574,7 @@ Wil je echt de cache legen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -566,7 +582,7 @@ Stel je systeemboodschap in: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -574,7 +590,7 @@ Aantal gebruikers apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -582,7 +598,7 @@ per gebruiker apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -618,7 +634,7 @@ Wisselkoersen apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -626,7 +642,7 @@ Valuta toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -634,7 +650,7 @@ Systeembericht apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -642,7 +658,7 @@ Bericht instellen apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -650,7 +666,7 @@ Alleen lezen apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -658,7 +674,7 @@ Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -666,7 +682,7 @@ Toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -674,7 +690,7 @@ Huishouding apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -682,7 +698,7 @@ Cache legen apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -702,7 +718,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 192 @@ -746,7 +762,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 206 @@ -758,7 +774,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 216 @@ -778,7 +794,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 224 apps/client/src/app/pages/accounts/accounts-page.html @@ -794,7 +810,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 240 @@ -802,7 +818,7 @@ Middelen apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -810,7 +826,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 251 apps/client/src/app/pages/resources/resources-page.html @@ -822,7 +838,7 @@ Prijzen apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -830,11 +846,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 263 apps/client/src/app/components/header/header.component.html - 304 + 332 + + + 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 +974,7 @@ Over apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -958,7 +982,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 319 @@ -966,7 +990,7 @@ Ik apps/client/src/app/components/header/header.component.html - 145 + 173 @@ -974,7 +998,7 @@ Mijn Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 231 @@ -982,7 +1006,7 @@ Over Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 271 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -994,11 +1018,11 @@ Functionaliteiten apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 306 apps/client/src/app/pages/features/features-page.html @@ -1010,11 +1034,11 @@ Markten apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 348 apps/client/src/app/components/home-market/home-market.html @@ -1042,7 +1066,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 +1078,7 @@ Oeps! Onjuiste beveiligingstoken. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1106,7 +1130,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 +1174,7 @@ Aanmelden apps/client/src/app/components/header/header.component.html - 333 + 361 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1273,7 +1297,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1337,7 +1361,7 @@ Sectoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 155 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1353,7 +1377,7 @@ Landen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 165 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1513,7 +1537,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 +1549,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 +1629,7 @@ Changelog apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1617,7 +1641,7 @@ Licentie apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1641,47 +1665,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 + 181 @@ -1691,10 +1715,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 +1724,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 + 27 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 + 91 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 + 93 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 + 137 - 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 + 155 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 + 188 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 +1861,7 @@ Rekening bijwerken apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -1849,7 +1869,7 @@ Rekening toevoegen apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -1865,15 +1885,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 + 92 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 +1913,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 +1929,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 + 46 @@ -1921,7 +1941,7 @@ Rekening-ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 91 @@ -1973,7 +1993,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 +2013,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 +2193,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 +2219,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Update activity @@ -2233,7 +2257,7 @@ Naam, symbool of ISIN apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 10 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2293,11 +2317,11 @@ Opmerking apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 212 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 74 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2313,7 +2337,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 116 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2553,7 +2577,7 @@ Verandering van All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 12 + 31 @@ -2561,7 +2585,7 @@ van ATH libs/ui/src/lib/benchmark/benchmark.component.html - 14 + 33 @@ -2584,8 +2608,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 + 48 @@ -2593,7 +2617,7 @@ Aan de slag apps/client/src/app/components/header/header.component.html - 345 + 373 @@ -2661,7 +2685,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2717,7 +2741,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 140 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2729,7 +2753,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 149 apps/client/src/app/components/admin-users/admin-users.html @@ -2869,7 +2893,7 @@ Filter op... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 269 + 279 @@ -2893,19 +2917,19 @@ Alias apps/client/src/app/components/access-table/access-table.component.html - 15 + 3 - 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 + 172 @@ -2944,40 +2968,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 + 31 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 + 114 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 + 126 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 + 127 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 + 128 @@ -3237,35 +3261,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 + 62 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3289,7 +3313,7 @@ Symbool toewijzen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 190 @@ -3325,7 +3349,7 @@ Account aanmaken apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3339,6 +3363,10 @@ Import Importeren + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 80 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 150 @@ -3393,7 +3421,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3432,8 +3460,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 +3512,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 + 138,140 - + 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 + 173,175 @@ -3741,7 +3769,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3884,8 +3912,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 +4005,7 @@ Wil je dit platform echt verwijderen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4039,6 +4067,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 +4092,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 +4161,7 @@ Persoonlijke financiën apps/client/src/app/app.component.html - 54 + 55 @@ -4141,7 +4169,7 @@ Veelgestelde Vragen apps/client/src/app/app.component.html - 75 + 76 @@ -4353,7 +4381,7 @@ Scraper instellingen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 201 @@ -4491,6 +4519,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 +4639,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 +4759,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 +4879,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 +4999,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 +5231,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 +5463,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 +5695,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 +5931,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 +6163,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 +6395,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 +6627,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 +6747,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,7 +6867,15 @@ 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 Gebruik anoniem @@ -6791,6 +6987,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 +7107,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 +7227,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,6 +7347,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 @@ -7239,6 +7467,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 @@ -7444,8 +7680,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 + 154 @@ -7528,8 +7764,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 + 195 @@ -7621,7 +7857,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7813,7 +8049,7 @@ Leden van over de hele wereld gebruikenGhostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 353,355 + 358,360 @@ -7821,7 +8057,7 @@ Hoe Ghostfolio werkt? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7829,7 +8065,7 @@ Anoniem aanmelden* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7837,7 +8073,7 @@ * geen e-mailadres of creditcard nodig apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7845,7 +8081,7 @@ Voeg al je historische transacties toe apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7853,7 +8089,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 +8097,7 @@ Ben je er klaar voor? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7869,7 +8105,7 @@ Nu lid worden of bekijk het voorbeeld account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7881,7 +8117,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7897,7 +8133,7 @@ Aan de slag in slechts 3 stappen apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7929,11 +8165,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 +8227,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 +8299,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 +8345,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 +8419,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 +8491,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 +8557,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 +8589,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 +8603,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 +8653,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8433,11 +8689,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 +8711,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 +8743,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 +8815,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 +8983,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 +9103,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 +9223,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 +9343,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 +9463,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 +9583,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 +9715,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 +9835,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 +9955,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 +9993,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 +10009,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 +10053,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 +10085,7 @@ Oostenrijk apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9749,7 +10093,7 @@ Italië apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9757,7 +10101,7 @@ Nederland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9765,7 +10109,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9773,7 +10117,7 @@ Nieuw-Zeeland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9781,11 +10125,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 @@ -9824,14 +10168,6 @@ 7 - - Add Access - Add Access - - apps/client/src/app/components/access-table/access-table.component.html - 8,10 - - Choose or drop a file here Choose or drop a file here @@ -9909,7 +10245,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9933,11 +10269,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 +10289,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9961,7 +10297,167 @@ 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 + 184 + + + + 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 + 89 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profile + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31,33 + + + + Do you really want to delete this asset profile? + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 182 + + + + Search + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + Ghostfolio is een persoonlijk financieel dashboard om uw activa zoals aandelen, ETF’s of cryptocurrencies over meerdere platforms bij te houden. + + apps/client/src/app/pages/i18n/i18n-page.html + 4,7 + + + + Last All Time High + Last All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 19a8df179..15db8b5c7 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 @@ -14,11 +14,11 @@ Alias apps/client/src/app/components/access-table/access-table.component.html - 15 + 3 - 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 @@ -26,7 +26,7 @@ Beneficiário (a) apps/client/src/app/components/access-table/access-table.component.html - 22 + 10 @@ -34,19 +34,19 @@ Tipo apps/client/src/app/components/access-table/access-table.component.html - 29 + 17 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 @@ -58,7 +58,7 @@ Detalhes apps/client/src/app/components/access-table/access-table.component.html - 39 + 27 @@ -66,7 +66,7 @@ Revogar apps/client/src/app/components/access-table/access-table.component.html - 66 + 54 @@ -74,7 +74,7 @@ Pretende realmente revogar este acesso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 50 + 49 @@ -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 + 46 @@ -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 + 111 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 + 92 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 + 45 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -338,7 +342,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 87 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 @@ -346,7 +354,7 @@ Fonte de dados apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 54 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -362,7 +370,7 @@ Tentativas apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 63 @@ -370,7 +378,7 @@ Criado apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 72 @@ -378,7 +386,7 @@ Terminado apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 81 @@ -386,7 +394,7 @@ Estado apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 90 @@ -394,23 +402,23 @@ Eliminar Tarefas apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 135 - - Asset Profile - Perfil de Ativos + + Asset Profiles + Perfil de Ativos - apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + libs/ui/src/lib/assistant/assistant.html + 67 - - Historical Market Data - Histórico de Dados de Mercado + + Historical Market Data + Histórico de Dados de Mercado apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 37,39 @@ -418,7 +426,7 @@ Visualizar dados apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 150 @@ -426,7 +434,7 @@ Ver Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 157 @@ -434,7 +442,7 @@ Apagar Tarefa apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 160 @@ -482,11 +490,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 225 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 18 + 40 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -496,9 +504,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 + 97 + + + 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 +524,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,11 +534,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 232 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 25 + 47 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -536,25 +548,25 @@ 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 + 104 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... Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 269 + 279 @@ -566,7 +578,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 116 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -586,7 +598,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -606,7 +618,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 102 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -618,7 +630,7 @@ Número de Atividades apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -628,6 +640,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 78 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + Countries Count @@ -678,7 +694,7 @@ Por favor, adicione uma moeda: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -686,7 +702,7 @@ Deseja realmente eliminar este cupão? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -694,7 +710,7 @@ Deseja realmente excluir esta moeda? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -702,7 +718,7 @@ Deseja realmente limpar a cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -710,7 +726,7 @@ Por favor, defina a sua mensagem do sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -718,7 +734,7 @@ Número de Utilizadores apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -726,7 +742,7 @@ por Utilizador apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -734,7 +750,7 @@ Taxas de Câmbio apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -742,7 +758,7 @@ Adicionar Moeda apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -750,7 +766,7 @@ Mensagem de Sistema apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -758,7 +774,7 @@ Definir Mensagem apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -766,7 +782,7 @@ Modo Somente Leitura apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -774,7 +790,7 @@ Cupões apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -782,7 +798,7 @@ Adicionar apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -790,7 +806,7 @@ Manutenção apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -798,7 +814,7 @@ Limpar Cache apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -818,7 +834,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 192 @@ -846,7 +862,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 224 apps/client/src/app/pages/accounts/accounts-page.html @@ -930,7 +946,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 206 @@ -942,7 +958,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 216 @@ -954,7 +970,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 240 @@ -962,7 +978,7 @@ Recursos apps/client/src/app/app.component.html - 59 + 60 apps/client/src/app/components/header/header.component.html @@ -970,7 +986,7 @@ apps/client/src/app/components/header/header.component.html - 223 + 251 apps/client/src/app/pages/resources/resources-page.html @@ -982,7 +998,7 @@ Preços apps/client/src/app/app.component.html - 85 + 86 apps/client/src/app/components/header/header.component.html @@ -990,11 +1006,19 @@ apps/client/src/app/components/header/header.component.html - 235 + 263 apps/client/src/app/components/header/header.component.html - 304 + 332 + + + 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 +1134,7 @@ Sobre apps/client/src/app/app.component.html - 65 + 66 apps/client/src/app/components/header/header.component.html @@ -1118,7 +1142,7 @@ apps/client/src/app/components/header/header.component.html - 291 + 319 @@ -1126,7 +1150,7 @@ Eu apps/client/src/app/components/header/header.component.html - 145 + 173 @@ -1134,7 +1158,7 @@ O meu Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 231 @@ -1142,7 +1166,7 @@ Sobre o Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 271 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1154,11 +1178,11 @@ Funcionalidades apps/client/src/app/app.component.html - 72 + 73 apps/client/src/app/components/header/header.component.html - 278 + 306 apps/client/src/app/pages/features/features-page.html @@ -1170,11 +1194,11 @@ Mercados apps/client/src/app/app.component.html - 57 + 58 apps/client/src/app/components/header/header.component.html - 320 + 348 apps/client/src/app/components/home-market/home-market.html @@ -1190,7 +1214,7 @@ Iniciar sessão apps/client/src/app/components/header/header.component.html - 333 + 361 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1202,7 +1226,7 @@ Começar apps/client/src/app/components/header/header.component.html - 345 + 373 @@ -1210,7 +1234,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 +1246,7 @@ Oops! Token de Segurança Incorreto. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -1346,7 +1370,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 +1525,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -1637,7 +1661,7 @@ Setor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 117 + 140 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1649,7 +1673,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 149 apps/client/src/app/components/admin-users/admin-users.html @@ -1665,7 +1689,7 @@ Setores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 155 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1681,7 +1705,7 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 165 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1837,7 +1861,7 @@ Changelog apps/client/src/app/app.component.html - 70 + 71 apps/client/src/app/pages/about/changelog/changelog-page.html @@ -1849,7 +1873,7 @@ Licença apps/client/src/app/app.component.html - 79 + 80 apps/client/src/app/pages/about/license/license-page.html @@ -1873,7 +1897,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 +1909,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 + 31 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 + 181 @@ -1943,10 +1967,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 +1976,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 + 27 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 + 48 @@ -2036,108 +2056,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 + 91 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 + 93 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 + 137 - 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 + 114 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 + 126 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 + 127 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 + 128 - - 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 + 155 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 + 172 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 + 188 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 +2173,7 @@ Atualizar conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -2161,7 +2181,7 @@ Adicionar conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -2177,7 +2197,7 @@ ID da Conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 91 @@ -2201,7 +2221,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 +2329,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 +2349,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 59 + 48 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2393,7 +2413,7 @@ Nome, símbolo or ISIN apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 10 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2437,11 +2457,11 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 212 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 74 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2733,7 +2753,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 +2779,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Pricing @@ -2993,7 +3017,7 @@ Diferença desde o Máximo Histórico libs/ui/src/lib/benchmark/benchmark.component.html - 12 + 31 @@ -3001,7 +3025,7 @@ a partir do ATH (All Time High) libs/ui/src/lib/benchmark/benchmark.component.html - 14 + 33 @@ -3277,7 +3301,7 @@ Mapeamento de Símbolo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 190 @@ -3285,7 +3309,7 @@ Registo do Utilizador apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -3293,35 +3317,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 + 62 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 - apps/client/src/app/pages/user-account/user-account-page.html - 164 + apps/client/src/app/pages/features/features-page.html + 259 @@ -3345,7 +3369,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3359,6 +3383,10 @@ Import Importar + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 80 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 150 @@ -3432,8 +3460,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 +3512,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 + 138,140 - + 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 + 173,175 @@ -3741,7 +3769,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3884,8 +3912,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 +4005,7 @@ Deseja mesmo eliminar esta plataforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -4039,6 +4067,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 +4092,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 +4161,7 @@ Finanças pessoais apps/client/src/app/app.component.html - 54 + 55 @@ -4141,7 +4169,7 @@ Perguntas Frequentes (FAQ) apps/client/src/app/app.component.html - 75 + 76 @@ -4353,7 +4381,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 201 @@ -4491,6 +4519,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 +4639,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 +4759,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 +4879,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 +4999,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 +5231,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 +5463,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 +5695,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 +5931,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 +6163,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 +6395,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 +6627,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 +6747,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,7 +6867,15 @@ 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 Use anonymously @@ -6791,6 +6987,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 +7107,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 +7227,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,6 +7347,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 @@ -7239,6 +7467,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 @@ -7444,8 +7680,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 + 154 @@ -7528,8 +7764,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 + 195 @@ -7621,7 +7857,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -7813,7 +8049,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 +8057,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -7829,7 +8065,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -7837,7 +8073,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -7845,7 +8081,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -7853,7 +8089,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -7861,7 +8097,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -7869,7 +8105,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -7881,7 +8117,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -7897,7 +8133,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -7929,11 +8165,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 +8227,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 +8299,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 +8345,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 +8419,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 +8491,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 +8557,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 +8589,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 +8603,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 +8653,7 @@ apps/client/src/app/components/header/header.component.ts - 55 + 80 apps/client/src/app/core/auth.guard.ts @@ -8433,11 +8689,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 +8711,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 +8743,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 +8815,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 +8983,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 +9103,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 +9223,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 +9343,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 +9463,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 +9583,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 +9715,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 +9835,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 +9955,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 +9993,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 +10009,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 +10053,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 +10085,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -9749,7 +10093,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -9757,7 +10101,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -9765,7 +10109,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -9773,7 +10117,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -9781,11 +10125,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 @@ -9824,14 +10168,6 @@ 7 - - Add Access - Add Access - - apps/client/src/app/components/access-table/access-table.component.html - 8,10 - - Choose or drop a file here Choose or drop a file here @@ -9909,7 +10245,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9933,11 +10269,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 +10289,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9961,7 +10297,167 @@ 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 + 184 + + + + 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 + 89 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profile + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31,33 + + + + Do you really want to delete this asset profile? + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 182 + + + + Search + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + Ghostfolio é um dashboard de finanças pessoais para acompanhar os seus activos como acções, ETFs ou criptomoedas em múltiplas plataformas. + + apps/client/src/app/pages/i18n/i18n-page.html + 4,7 + + + + Last All Time High + Last All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 61cdc0972..e0ca1f05f 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 + 348 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 + 251 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 + 319 @@ -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 + 306 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 + 263 apps/client/src/app/components/header/header.component.html - 304 + 332 + + + 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 + 62 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 - 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 @@ -1054,11 +1094,11 @@ Takma Ad apps/client/src/app/components/access-table/access-table.component.html - 15 + 3 - 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 @@ -1066,7 +1106,7 @@ Hibe Alan / Alıcı apps/client/src/app/components/access-table/access-table.component.html - 22 + 10 @@ -1074,19 +1114,19 @@ Tip apps/client/src/app/components/access-table/access-table.component.html - 29 + 17 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,7 +1138,7 @@ Ayrıntılar apps/client/src/app/components/access-table/access-table.component.html - 39 + 27 @@ -1106,7 +1146,7 @@ Geri Al apps/client/src/app/components/access-table/access-table.component.html - 66 + 54 @@ -1114,7 +1154,7 @@ Bu erişim iznini geri almayı gerçekten istiyor musunuz? apps/client/src/app/components/access-table/access-table.component.ts - 50 + 49 @@ -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 + 46 @@ -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 + 111 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 + 92 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 + 45 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1386,7 +1430,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 87 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 @@ -1394,7 +1442,7 @@ Veri Kaynağı apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 54 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1410,7 +1458,7 @@ Deneme apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 63 @@ -1418,7 +1466,7 @@ Oluşturuldu apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 72 @@ -1426,7 +1474,7 @@ Tamamlandı apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 81 @@ -1434,7 +1482,7 @@ Durum apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 90 @@ -1442,23 +1490,23 @@ İşleri Sil apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 135 - - Asset Profile - Varlık Profili + + Asset Profiles + Varlık Profili - apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + libs/ui/src/lib/assistant/assistant.html + 67 - - Historical Market Data - Tarihsel Piyasa Verisi + + Historical Market Data + Tarihsel Piyasa Verisi apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 37,39 @@ -1466,7 +1514,7 @@ Veri Gör apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 150 @@ -1474,7 +1522,7 @@ Hata İzini Görüntüle apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 157 @@ -1482,7 +1530,7 @@ İşleri Sil apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 160 @@ -1530,11 +1578,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 225 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 18 + 40 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -1544,9 +1592,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 + 97 + + + 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 +1612,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,11 +1622,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 232 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 25 + 47 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -1584,18 +1636,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 + 104 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 @@ -1626,7 +1678,7 @@ Filtrele... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 269 + 279 @@ -1638,7 +1690,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 116 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1658,7 +1710,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1678,7 +1730,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 102 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1700,6 +1752,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 78 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + Sectors Count @@ -1761,20 +1817,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 + 140 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1786,7 +1834,7 @@ Ülke apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 149 apps/client/src/app/components/admin-users/admin-users.html @@ -1802,7 +1850,7 @@ Sektörler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 155 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1818,7 +1866,7 @@ Ülkeler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 165 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1830,7 +1878,7 @@ Sembol Eşleştirme apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 190 @@ -1838,7 +1886,7 @@ Veri Toplayıcı Yapılandırması apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 201 @@ -1846,11 +1894,11 @@ Not apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 212 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 74 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1870,7 +1918,7 @@ Ad, sembol ya da ISIN apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 10 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1882,7 +1930,7 @@ Lütfen bir para birimi giriniz: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 112 + 114 @@ -1890,7 +1938,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 126 + 128 @@ -1898,7 +1946,7 @@ Bu para birimini silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 139 + 141 @@ -1906,7 +1954,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz apps/client/src/app/components/admin-overview/admin-overview.component.ts - 156 + 158 @@ -1914,7 +1962,7 @@ Lütfen sistem mesajınızı belirleyin: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 186 + 188 @@ -1922,7 +1970,7 @@ Kullanıcı Sayısı apps/client/src/app/components/admin-overview/admin-overview.html - 7 + 13 @@ -1930,7 +1978,7 @@ İşlem Sayısı apps/client/src/app/components/admin-overview/admin-overview.html - 17 + 23 @@ -1938,7 +1986,7 @@ Kullanıcı başına apps/client/src/app/components/admin-overview/admin-overview.html - 26 + 32 @@ -1946,7 +1994,7 @@ Döviz Kurları apps/client/src/app/components/admin-overview/admin-overview.html - 31 + 37 @@ -1954,7 +2002,7 @@ Para Birimi Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 70 + 76 @@ -1978,7 +2026,7 @@ Kullanıcı Kaydı apps/client/src/app/components/admin-overview/admin-overview.html - 76 + 82 @@ -1986,7 +2034,7 @@ Salt okunur mod apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 92 @@ -1994,7 +2042,7 @@ Sistem Mesajı apps/client/src/app/components/admin-overview/admin-overview.html - 96 + 102 @@ -2002,7 +2050,7 @@ Mesaj Belirle apps/client/src/app/components/admin-overview/admin-overview.html - 118 + 124 @@ -2010,7 +2058,7 @@ Kupon apps/client/src/app/components/admin-overview/admin-overview.html - 126 + 132 @@ -2018,7 +2066,7 @@ Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 170 + 176 @@ -2026,7 +2074,7 @@ Genel Ayarlar apps/client/src/app/components/admin-overview/admin-overview.html - 177 + 183 @@ -2034,7 +2082,7 @@ Önbelleği temizle apps/client/src/app/components/admin-overview/admin-overview.html - 181 + 187 @@ -2074,7 +2122,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 224 apps/client/src/app/pages/accounts/accounts-page.html @@ -2086,7 +2134,7 @@ Bu platformu silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -2130,7 +2178,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 192 @@ -2242,7 +2290,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 206 @@ -2254,7 +2302,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 216 @@ -2266,7 +2314,7 @@ apps/client/src/app/components/header/header.component.html - 212 + 240 @@ -2274,7 +2322,7 @@ Ben apps/client/src/app/components/header/header.component.html - 145 + 173 @@ -2282,7 +2330,7 @@ Ghostfolio'm apps/client/src/app/components/header/header.component.html - 203 + 231 @@ -2290,7 +2338,7 @@ Ghostfolio Hakkında apps/client/src/app/components/header/header.component.html - 243 + 271 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2302,7 +2350,7 @@ Giriş apps/client/src/app/components/header/header.component.html - 333 + 361 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2314,7 +2362,7 @@ Haydi Başlayalım apps/client/src/app/components/header/header.component.html - 345 + 373 @@ -2322,7 +2370,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 +2382,7 @@ Hay Allah! Güvenlik anahtarı yanlış. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -2526,7 +2574,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 +2729,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -2837,7 +2885,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -3181,7 +3229,7 @@ Update account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 2 + 7 @@ -3189,7 +3237,7 @@ Add account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 3 + 8 @@ -3197,7 +3245,7 @@ Account ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 68 + 91 @@ -3243,6 +3291,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 +3321,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 +3464,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 + 137 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 @@ -3469,7 +3525,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 +3549,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3505,7 +3561,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 +3593,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -3557,7 +3613,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -3773,7 +3829,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 +3837,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 368,370 + 373,375 @@ -3789,7 +3845,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 371 + 376 @@ -3797,7 +3853,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 377 + 382 @@ -3805,7 +3861,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 379 + 384 @@ -3813,7 +3869,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 390,392 + 395,397 @@ -3821,7 +3877,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 402,404 + 407,409 @@ -3829,7 +3885,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 414 + 419 @@ -3837,7 +3893,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 415,418 + 420,423 @@ -3955,10 +4011,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 @@ -4123,6 +4175,10 @@ Import Import + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 80 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 150 @@ -4487,6 +4543,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Pricing @@ -4955,6 +5015,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 +5135,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 +5255,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 +5375,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 +5495,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 +5615,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 +5735,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 +5855,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 +5975,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 +6207,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 +6439,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 +6671,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 +6907,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 +7139,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 +7371,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 + 155 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 167 @@ -7261,11 +7489,11 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 174 + 167 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 174 + 167 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -7367,13 +7595,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 174 - - - ❌ No - ❌ No apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 109,110 + 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 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 174 + + + + ❌ No + ❌ No + + 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 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -7591,6 +7843,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 +7963,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 +8083,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 +8203,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 +8323,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 +8443,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 +8563,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 +8683,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 +8803,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 +8923,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 +9043,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 +9081,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 +9097,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 +9141,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 +9173,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 125 + 136 @@ -8837,7 +9181,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 226 + 237 @@ -8845,7 +9189,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 236 + 247 @@ -8853,7 +9197,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 248 + 259 @@ -8861,7 +9205,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 292 @@ -8869,11 +9213,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 +9248,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 +9265,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 + 31 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 + 181 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 + 27 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 + 48 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 + 91 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 + 93 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 + 114 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 + 126 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 + 127 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 + 128 - + 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 + 138,140 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 + 154 - - 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 + 155 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 + 172 - + 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 + 173,175 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 + 188 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 + 195 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 @@ -9309,7 +9653,7 @@ Change from All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 12 + 31 @@ -9317,7 +9661,7 @@ from ATH libs/ui/src/lib/benchmark/benchmark.component.html - 14 + 33 @@ -9796,14 +10140,6 @@ 17 - - Add Access - Add Access - - apps/client/src/app/components/access-table/access-table.component.html - 8,10 - - Interest Interest @@ -9909,7 +10245,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 76 + 78 @@ -9933,11 +10269,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 +10289,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 124 @@ -9961,7 +10297,167 @@ 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 + 184 + + + + 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 + 89 + + + + No entries... + No entries... + + libs/ui/src/lib/assistant/assistant.html + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + Asset Profile + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31,33 + + + + Do you really want to delete this asset profile? + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 182 + + + + Search + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + Ghostfolio, hisse senetleri, ETF’ler veya kripto para birimleri gibi varlıklarınızı birden fazla platformda takip etmenizi sağlayan bir kişisel finans panosudur. + + apps/client/src/app/pages/i18n/i18n-page.html + 4,7 + + + + Last All Time High + Last All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 956a2ad85..1edb3b26a 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 + 348 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 + 251 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 + 319 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 + 306 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 + 263 apps/client/src/app/components/header/header.component.html - 304 + 332 + + + 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,79 +1030,79 @@ 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 + 62 - apps/client/src/app/pages/user-account/user-account-page.html - 144 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 66 - apps/client/src/app/pages/user-account/user-account-page.html - 148 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 70 - apps/client/src/app/pages/user-account/user-account-page.html - 152 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 74 - apps/client/src/app/pages/user-account/user-account-page.html - 156 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 78 - apps/client/src/app/pages/user-account/user-account-page.html - 160 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 82 - 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 Alias apps/client/src/app/components/access-table/access-table.component.html - 15 + 3 - 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 Grantee apps/client/src/app/components/access-table/access-table.component.html - 22 + 10 Type apps/client/src/app/components/access-table/access-table.component.html - 29 + 17 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 @@ -1073,21 +1113,21 @@ Details apps/client/src/app/components/access-table/access-table.component.html - 39 + 27 Revoke apps/client/src/app/components/access-table/access-table.component.html - 66 + 54 Do you really want to revoke this granted access? apps/client/src/app/components/access-table/access-table.component.ts - 50 + 49 @@ -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 + 46 @@ -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 + 111 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 + 92 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 + 45 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1347,14 +1391,18 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 64 + 87 + + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 34 Data Source apps/client/src/app/components/admin-jobs/admin-jobs.html - 22 + 54 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1369,70 +1417,70 @@ Attempts apps/client/src/app/components/admin-jobs/admin-jobs.html - 23 + 63 Created apps/client/src/app/components/admin-jobs/admin-jobs.html - 24 + 72 Finished apps/client/src/app/components/admin-jobs/admin-jobs.html - 25 + 81 Status apps/client/src/app/components/admin-jobs/admin-jobs.html - 26 + 90 Delete Jobs apps/client/src/app/components/admin-jobs/admin-jobs.html - 38 + 135 - - Asset Profile + + Asset Profiles - apps/client/src/app/components/admin-jobs/admin-jobs.html - 55 + libs/ui/src/lib/assistant/assistant.html + 67 - - Historical Market Data + + Historical Market Data apps/client/src/app/components/admin-jobs/admin-jobs.html - 60 + 37,39 View Data apps/client/src/app/components/admin-jobs/admin-jobs.html - 115 + 150 View Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 122 + 157 Delete Job apps/client/src/app/components/admin-jobs/admin-jobs.html - 125 + 160 @@ -1476,11 +1524,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 191 + 225 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 18 + 40 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -1490,9 +1538,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 + 97 + + + 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 +1558,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,11 +1567,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 198 + 232 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 25 + 47 apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -1529,18 +1581,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 + 104 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 @@ -1567,7 +1619,7 @@ Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 269 + 279 @@ -1578,7 +1630,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 93 + 116 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1597,7 +1649,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 102 + 125 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1616,7 +1668,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + 102 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1636,6 +1688,10 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html 78 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 58 + Sectors Count @@ -1690,18 +1746,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 + 140 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1712,7 +1761,7 @@ Country apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 126 + 149 apps/client/src/app/components/admin-users/admin-users.html @@ -1727,7 +1776,7 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 132 + 155 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1742,7 +1791,7 @@ Countries apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 142 + 165 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1753,25 +1802,25 @@ Symbol Mapping apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 156 + 190 Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 167 + 201 Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 178 + 212 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 47 + 74 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1789,7 +1838,7 @@ Name, symbol or ISIN apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 10 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1800,70 +1849,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 +1934,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 +2020,7 @@ apps/client/src/app/components/header/header.component.html - 196 + 224 apps/client/src/app/pages/accounts/accounts-page.html @@ -1982,7 +2031,7 @@ Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 76 + 78 @@ -2021,7 +2070,7 @@ apps/client/src/app/components/header/header.component.html - 164 + 192 @@ -2121,7 +2170,7 @@ apps/client/src/app/components/header/header.component.html - 178 + 206 @@ -2132,7 +2181,7 @@ apps/client/src/app/components/header/header.component.html - 188 + 216 @@ -2143,28 +2192,28 @@ apps/client/src/app/components/header/header.component.html - 212 + 240 Me apps/client/src/app/components/header/header.component.html - 145 + 173 My Ghostfolio apps/client/src/app/components/header/header.component.html - 203 + 231 About Ghostfolio apps/client/src/app/components/header/header.component.html - 243 + 271 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2175,7 +2224,7 @@ Sign in apps/client/src/app/components/header/header.component.html - 333 + 361 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2186,14 +2235,14 @@ Get started apps/client/src/app/components/header/header.component.html - 345 + 373 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 +2253,7 @@ Oops! Incorrect Security Token. apps/client/src/app/components/header/header.component.ts - 145 + 183 @@ -2375,7 +2424,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 +2563,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 111 @@ -2655,7 +2704,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 150 @@ -2967,21 +3016,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 + 91 @@ -3023,6 +3072,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 +3100,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 +3226,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 + 137 - apps/client/src/app/pages/user-account/user-account-page.html - 227 + apps/client/src/app/pages/features/features-page.html + 192 @@ -3224,7 +3281,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 +3304,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 54 + 43 @@ -3258,7 +3315,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 +3351,7 @@ apps/client/src/app/pages/landing/landing-page.html - 426,428 + 431,433 @@ -3312,7 +3369,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 436 @@ -3502,63 +3559,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 +3745,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 @@ -3838,6 +3891,10 @@ Import + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 80 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 150 @@ -4164,6 +4221,10 @@ apps/client/src/app/pages/public/public-page.html 14 + + libs/ui/src/lib/assistant/assistant.html + 46 + Pricing @@ -4320,12 +4381,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 +4665,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 +4784,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 +4903,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 +5022,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 +5141,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 +5260,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 +5379,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 +5498,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 +5617,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 @@ -5600,6 +5737,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 @@ -5708,6 +5853,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 @@ -5816,6 +5969,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 @@ -5924,6 +6085,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 @@ -6032,6 +6201,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 @@ -6140,6 +6317,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 @@ -6359,6 +6548,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 @@ -6467,6 +6668,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 @@ -6575,6 +6784,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 @@ -6683,6 +6900,18 @@ 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 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 155 @@ -6901,11 +7130,27 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 174 + 167 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 174 + 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 + + + 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 @@ -7118,6 +7363,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 +7482,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 +7601,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 +7720,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 +7839,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 +7958,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 +8077,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 +8196,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 +8315,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 +8434,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 +8553,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 +8672,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 +8862,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 + 31 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 + 181 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 + 27 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 + 48 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 + 91 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 + 93 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 + 114 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 + 126 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 + 127 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 + 128 - + 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 + 138,140 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 + 154 - - 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 + 155 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 + 172 - + 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 + 173,175 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 + 188 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 + 195 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 @@ -8863,14 +9208,14 @@ Change from All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 12 + 31 from ATH libs/ui/src/lib/benchmark/benchmark.component.html - 14 + 33 @@ -9291,13 +9636,6 @@ 85 - - Add Access - - apps/client/src/app/components/access-table/access-table.component.html - 8,10 - - You are using the Live Demo. @@ -9358,18 +9696,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 +9735,156 @@ 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 + 184 + + + + 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 + 89 + + + + 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 + 63 + + + libs/ui/src/lib/assistant/assistant.html + 84 + + + + From + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 + + + + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31,33 + + + + Last All Time High + + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + + + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 182 + + + + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Ghostfolio is a personal finance dashboard to keep track of your assets like stocks, ETFs or cryptocurrencies across multiple platforms. + + apps/client/src/app/pages/i18n/i18n-page.html + 4,7 diff --git a/apps/client/src/styles.scss b/apps/client/src/styles.scss index 26f8a4a48..7085effc5 100644 --- a/apps/client/src/styles.scss +++ b/apps/client/src/styles.scss @@ -446,6 +446,12 @@ ngx-skeleton-loader { .mat-mdc-menu-panel { .mat-mdc-menu-item { + &.font-weight-bold { + .mat-mdc-menu-item-text { + --mat-menu-item-label-text-weight: 700; + } + } + .mdc-list-item__primary-text { align-items: center; display: flex; @@ -462,6 +468,15 @@ ngx-skeleton-loader { } } +/** + * Fix for https://github.com/angular/components/issues/26818 + */ +.mat-mdc-slide-toggle { + .mdc-switch__track { + background-color: rgba(var(--palette-primary-500), 1); + } +} + .mat-stepper-vertical, .mat-stepper-horizontal { background: transparent !important; @@ -491,6 +506,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; @@ -502,6 +524,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/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 03fc250b8..3a3ee6e11 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -322,6 +322,15 @@ export function parseDate(date: string): Date | null { return parseISO(date); } +export function parseSymbol({ dataSource, symbol }: UniqueAsset) { + const [ticker, exchange] = symbol.split('.'); + + return { + ticker, + exchange: exchange ?? (dataSource === 'YAHOO' ? 'US' : undefined) + }; +} + export function prettifySymbol(aSymbol: string): string { return aSymbol?.replace(ghostfolioScraperApiSymbolPrefix, ''); } 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/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/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/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 index 53a72206d..d00977c18 100644 --- 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 @@ -7,10 +7,12 @@ import { EventEmitter, HostBinding, Input, + OnChanges, Output, ViewChild } from '@angular/core'; -import { Position } from '@ghostfolio/common/interfaces'; +import { Params } from '@angular/router'; +import { ISearchResultItem } from '@ghostfolio/ui/assistant/interfaces/interfaces'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -18,22 +20,46 @@ import { Position } from '@ghostfolio/common/interfaces'; templateUrl: './assistant-list-item.html', styleUrls: ['./assistant-list-item.scss'] }) -export class AssistantListItemComponent implements FocusableOption { +export class AssistantListItemComponent implements FocusableOption, OnChanges { @HostBinding('attr.tabindex') tabindex = -1; @HostBinding('class.has-focus') get getHasFocus() { return this.hasFocus; } - @Input() holding: Position; + @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; 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 index 5e078241d..d75db3c8a 100644 --- 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 @@ -1,12 +1,16 @@
{{ holding?.name }}{{ 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 index 9a88fc919..0c2e89726 100644 --- 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 @@ -1,12 +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, RouterModule] + imports: [CommonModule, GfSymbolModule, RouterModule] }) export class GfAssistantListItemModule {} diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index 30db8f2e0..2cfd9eff2 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -16,9 +16,10 @@ import { } 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 { Position } from '@ghostfolio/common/interfaces'; -import { EMPTY, Subject, lastValueFrom } from 'rxjs'; +import { translate } from '@ghostfolio/ui/i18n'; +import { EMPTY, Observable, Subject, lastValueFrom } from 'rxjs'; import { catchError, debounceTime, @@ -29,13 +30,13 @@ import { } from 'rxjs/operators'; import { AssistantListItemComponent } from './assistant-list-item/assistant-list-item.component'; -import { ISearchResults } from './interfaces/interfaces'; +import { ISearchResultItem, ISearchResults } from './interfaces/interfaces'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-assistant', - templateUrl: './assistant.html', - styleUrls: ['./assistant.scss'] + styleUrls: ['./assistant.scss'], + templateUrl: './assistant.html' }) export class AssistantComponent implements OnDestroy, OnInit { @HostListener('document:keydown', ['$event']) onKeydown( @@ -71,6 +72,7 @@ export class AssistantComponent implements OnDestroy, OnInit { } @Input() deviceType: string; + @Input() hasPermissionToAccessAdminControl: boolean; @Output() closed = new EventEmitter(); @@ -87,6 +89,7 @@ export class AssistantComponent implements OnDestroy, OnInit { public placeholder = $localize`Find holding...`; public searchFormControl = new FormControl(''); public searchResults: ISearchResults = { + assetProfiles: [], holdings: [] }; @@ -94,6 +97,7 @@ export class AssistantComponent implements OnDestroy, OnInit { private unsubscribeSubject = new Subject(); public constructor( + private adminService: AdminService, private changeDetectorRef: ChangeDetectorRef, private dataService: DataService ) {} @@ -104,6 +108,7 @@ export class AssistantComponent implements OnDestroy, OnInit { map((searchTerm) => { this.isLoading = true; this.searchResults = { + assetProfiles: [], holdings: [] }; @@ -115,6 +120,7 @@ export class AssistantComponent implements OnDestroy, OnInit { distinctUntilChanged(), mergeMap(async (searchTerm) => { const result = { + assetProfiles: [], holdings: [] }; @@ -140,6 +146,7 @@ export class AssistantComponent implements OnDestroy, OnInit { this.isLoading = true; this.keyManager = new FocusKeyManager(this.assistantListItems).withWrap(); this.searchResults = { + assetProfiles: [], holdings: [] }; @@ -180,10 +187,23 @@ export class AssistantComponent implements OnDestroy, OnInit { } private async getSearchResults(aSearchTerm: string) { - let holdings: Position[] = []; + 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.searchHolding(aSearchTerm)); + holdings = await lastValueFrom(this.searchHoldings(aSearchTerm)); holdings = holdings.slice( 0, AssistantComponent.SEARCH_RESULTS_DEFAULT_LIMIT @@ -191,11 +211,46 @@ export class AssistantComponent implements OnDestroy, OnInit { } catch {} return { + assetProfiles, holdings }; } - private searchHolding(aSearchTerm: string) { + 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: [ @@ -211,7 +266,17 @@ export class AssistantComponent implements OnDestroy, OnInit { return EMPTY; }), map(({ positions }) => { - return 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 index cf9dd67f0..0644c945e 100644 --- a/libs/ui/src/lib/assistant/assistant.html +++ b/libs/ui/src/lib/assistant/assistant.html @@ -38,12 +38,16 @@
-
+
Holdings
@@ -59,5 +63,26 @@
No entries...
+
+
Asset Profiles
+ + + +
No entries...
+
+
diff --git a/libs/ui/src/lib/assistant/interfaces/interfaces.ts b/libs/ui/src/lib/assistant/interfaces/interfaces.ts index 922091fb5..99f70dbe1 100644 --- a/libs/ui/src/lib/assistant/interfaces/interfaces.ts +++ b/libs/ui/src/lib/assistant/interfaces/interfaces.ts @@ -1,5 +1,12 @@ -import { Position } from '@ghostfolio/common/interfaces'; +import { UniqueAsset } from '@ghostfolio/common/interfaces'; + +export interface ISearchResultItem extends UniqueAsset { + assetSubClassString: string; + currency: string; + name: string; +} export interface ISearchResults { - holdings: Position[]; + 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" >