Compare commits
40 Commits
Author | SHA1 | Date | |
---|---|---|---|
d321d56dee | |||
07dd22f7fe | |||
eb4d088a80 | |||
0509f0101f | |||
8818e09be8 | |||
d97fe4da9c | |||
b20fa55b79 | |||
dd7a6f1562 | |||
15357bd5b5 | |||
52c7adc266 | |||
1ae8970045 | |||
7c4c047140 | |||
527f7e4faf | |||
50160eb9dc | |||
58dff8a1e0 | |||
2cd41615b2 | |||
66d5793528 | |||
e8d65e1c85 | |||
da827a08f5 | |||
d545e4877c | |||
1918dee9c5 | |||
a08610b603 | |||
c22733db56 | |||
ee4866eb7d | |||
327b1fa0d7 | |||
b155666d21 | |||
c5ee3237ed | |||
16118d635c | |||
49ce4803ce | |||
0b65d05013 | |||
8793284e75 | |||
1c5e4050a8 | |||
4f187e1a9f | |||
b56111ae85 | |||
61dfc1f819 | |||
6137f228a8 | |||
5293de14cd | |||
7340a674b5 | |||
42cb3e2c73 | |||
e8a4a53c9f |
70
CHANGELOG.md
70
CHANGELOG.md
@ -5,6 +5,76 @@ 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).
|
||||
|
||||
## 1.223.0 - 2023-01-01
|
||||
|
||||
### Added
|
||||
|
||||
- Added a student discount to the pricing page
|
||||
- Added a prefix to the codes of the coupon system
|
||||
|
||||
### Changed
|
||||
|
||||
- Optimized the page titles in the header for mobile
|
||||
- Extended the asset profile details dialog in the admin control panel
|
||||
|
||||
## 1.222.0 - 2022-12-29
|
||||
|
||||
### Added
|
||||
|
||||
- Added support for filtering on the analysis page
|
||||
- Added the price to the `Subscription` database schema
|
||||
|
||||
### Changed
|
||||
|
||||
- Changed the execution time of the asset profile data gathering to every Sunday at lunch time
|
||||
- Improved the activities import by providing asset profile details
|
||||
- Upgraded `@codewithdan/observable-store` from version `2.2.11` to `2.2.15`
|
||||
- Upgraded `bull` from version `4.8.5` to `4.10.2`
|
||||
- Upgraded `countup.js` from version `2.0.7` to `2.3.2`
|
||||
- Upgraded the _Internet Identity_ dependencies from version `0.12.1` to `0.15.1`
|
||||
- Upgraded `prisma` from version `4.7.1` to `4.8.0`
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the language localization of the account type
|
||||
|
||||
## 1.221.0 - 2022-12-26
|
||||
|
||||
### Added
|
||||
|
||||
- Added support to manage the tags in the create or edit activity dialog
|
||||
- Added the tags to the admin control panel
|
||||
- Added a blog post: _The importance of tracking your personal finances_
|
||||
- Resolved the title of the blog post
|
||||
|
||||
### Changed
|
||||
|
||||
- Improved the activities import by a preview step
|
||||
- Improved the labels based on the type in the create or edit activity dialog
|
||||
- Refreshed the cryptocurrencies list
|
||||
- Removed the data source type `RAKUTEN`
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the date conversion for years with only two digits
|
||||
|
||||
## 1.220.0 - 2022-12-23
|
||||
|
||||
### Added
|
||||
|
||||
- Added the position detail dialog to the _Top 3_ and _Bottom 3_ performers of the analysis page
|
||||
- Added the `dryRun` option to the import activities endpoint
|
||||
|
||||
### Changed
|
||||
|
||||
- Increased the historical data chart of the _Fear & Greed Index_ (market mood) to 365 days
|
||||
- Upgraded `color` from version `4.0.1` to `4.2.3`
|
||||
- Upgraded `prettier` from version `2.7.1` to `2.8.1`
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed the rounding of the y-axis ticks in the benchmark comparator
|
||||
|
||||
## 1.219.0 - 2022-12-17
|
||||
|
||||
### Added
|
||||
|
@ -3,8 +3,10 @@ import * as path from 'path';
|
||||
|
||||
import { ConfigurationService } from '@ghostfolio/api/services/configuration.service';
|
||||
import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config';
|
||||
import { DATE_FORMAT } from '@ghostfolio/common/helper';
|
||||
import { Injectable, NestMiddleware } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { format } from 'date-fns';
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
|
||||
@Injectable()
|
||||
@ -51,14 +53,26 @@ export class FrontendMiddleware implements NestMiddleware {
|
||||
}
|
||||
|
||||
public use(request: Request, response: Response, next: NextFunction) {
|
||||
const currentDate = format(new Date(), DATE_FORMAT);
|
||||
let featureGraphicPath = 'assets/cover.png';
|
||||
let title = 'Ghostfolio – Open Source Wealth Management Software';
|
||||
|
||||
if (request.path.startsWith('/en/blog/2022/08/500-stars-on-github')) {
|
||||
featureGraphicPath = 'assets/images/blog/500-stars-on-github.jpg';
|
||||
title = `500 Stars - ${title}`;
|
||||
} else if (request.path.startsWith('/en/blog/2022/10/hacktoberfest-2022')) {
|
||||
featureGraphicPath = 'assets/images/blog/hacktoberfest-2022.png';
|
||||
title = `Hacktoberfest 2022 - ${title}`;
|
||||
} else if (request.path.startsWith('/en/blog/2022/11/black-friday-2022')) {
|
||||
featureGraphicPath = 'assets/images/blog/black-friday-2022.jpg';
|
||||
title = `Black Friday 2022 - ${title}`;
|
||||
} else if (
|
||||
request.path.startsWith(
|
||||
'/en/blog/2022/12/the-importance-of-tracking-your-personal-finances'
|
||||
)
|
||||
) {
|
||||
featureGraphicPath = 'assets/images/blog/20221226.jpg';
|
||||
title = `The importance of tracking your personal finances - ${title}`;
|
||||
}
|
||||
|
||||
if (
|
||||
@ -71,7 +85,9 @@ export class FrontendMiddleware implements NestMiddleware {
|
||||
} else if (request.path === '/de' || request.path.startsWith('/de/')) {
|
||||
response.send(
|
||||
this.interpolate(this.indexHtmlDe, {
|
||||
currentDate,
|
||||
featureGraphicPath,
|
||||
title,
|
||||
languageCode: 'de',
|
||||
path: request.path,
|
||||
rootUrl: this.configurationService.get('ROOT_URL')
|
||||
@ -80,7 +96,9 @@ export class FrontendMiddleware implements NestMiddleware {
|
||||
} else if (request.path === '/es' || request.path.startsWith('/es/')) {
|
||||
response.send(
|
||||
this.interpolate(this.indexHtmlEs, {
|
||||
currentDate,
|
||||
featureGraphicPath,
|
||||
title,
|
||||
languageCode: 'es',
|
||||
path: request.path,
|
||||
rootUrl: this.configurationService.get('ROOT_URL')
|
||||
@ -89,7 +107,9 @@ export class FrontendMiddleware implements NestMiddleware {
|
||||
} else if (request.path === '/it' || request.path.startsWith('/it/')) {
|
||||
response.send(
|
||||
this.interpolate(this.indexHtmlIt, {
|
||||
currentDate,
|
||||
featureGraphicPath,
|
||||
title,
|
||||
languageCode: 'it',
|
||||
path: request.path,
|
||||
rootUrl: this.configurationService.get('ROOT_URL')
|
||||
@ -98,7 +118,9 @@ export class FrontendMiddleware implements NestMiddleware {
|
||||
} else if (request.path === '/nl' || request.path.startsWith('/nl/')) {
|
||||
response.send(
|
||||
this.interpolate(this.indexHtmlNl, {
|
||||
currentDate,
|
||||
featureGraphicPath,
|
||||
title,
|
||||
languageCode: 'nl',
|
||||
path: request.path,
|
||||
rootUrl: this.configurationService.get('ROOT_URL')
|
||||
@ -107,7 +129,9 @@ export class FrontendMiddleware implements NestMiddleware {
|
||||
} else {
|
||||
response.send(
|
||||
this.interpolate(this.indexHtmlEn, {
|
||||
currentDate,
|
||||
featureGraphicPath,
|
||||
title,
|
||||
languageCode: DEFAULT_LANGUAGE_CODE,
|
||||
path: request.path,
|
||||
rootUrl: this.configurationService.get('ROOT_URL')
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { ConfigurationService } from '@ghostfolio/api/services/configuration.service';
|
||||
import { ImportResponse } from '@ghostfolio/common/interfaces';
|
||||
import type { RequestWithUser } from '@ghostfolio/common/types';
|
||||
import {
|
||||
Body,
|
||||
@ -7,6 +8,7 @@ import {
|
||||
Inject,
|
||||
Logger,
|
||||
Post,
|
||||
Query,
|
||||
UseGuards
|
||||
} from '@nestjs/common';
|
||||
import { REQUEST } from '@nestjs/core';
|
||||
@ -26,7 +28,10 @@ export class ImportController {
|
||||
|
||||
@Post()
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
public async import(@Body() importData: ImportDataDto): Promise<void> {
|
||||
public async import(
|
||||
@Body() importData: ImportDataDto,
|
||||
@Query('dryRun') isDryRun?: boolean
|
||||
): Promise<ImportResponse> {
|
||||
if (!this.configurationService.get('ENABLE_FEATURE_IMPORT')) {
|
||||
throw new HttpException(
|
||||
getReasonPhrase(StatusCodes.FORBIDDEN),
|
||||
@ -45,12 +50,18 @@ export class ImportController {
|
||||
maxActivitiesToImport = Number.MAX_SAFE_INTEGER;
|
||||
}
|
||||
|
||||
const userCurrency = this.request.user.Settings.settings.baseCurrency;
|
||||
|
||||
try {
|
||||
return await this.importService.import({
|
||||
const activities = await this.importService.import({
|
||||
maxActivitiesToImport,
|
||||
activities: importData.activities,
|
||||
isDryRun,
|
||||
userCurrency,
|
||||
activitiesDto: importData.activities,
|
||||
userId: this.request.user.id
|
||||
});
|
||||
|
||||
return { activities };
|
||||
} catch (error) {
|
||||
Logger.error(error, ImportController);
|
||||
|
||||
|
@ -5,6 +5,7 @@ import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.mo
|
||||
import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module';
|
||||
import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering.module';
|
||||
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
|
||||
import { ExchangeRateDataModule } from '@ghostfolio/api/services/exchange-rate-data.module';
|
||||
import { PrismaModule } from '@ghostfolio/api/services/prisma.module';
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
@ -19,6 +20,7 @@ import { ImportService } from './import.service';
|
||||
ConfigurationModule,
|
||||
DataGatheringModule,
|
||||
DataProviderModule,
|
||||
ExchangeRateDataModule,
|
||||
OrderModule,
|
||||
PrismaModule,
|
||||
RedisCacheModule
|
||||
|
@ -1,30 +1,39 @@
|
||||
import { AccountService } from '@ghostfolio/api/app/account/account.service';
|
||||
import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto';
|
||||
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
|
||||
import { OrderService } from '@ghostfolio/api/app/order/order.service';
|
||||
import { ConfigurationService } from '@ghostfolio/api/services/configuration.service';
|
||||
import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service';
|
||||
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service';
|
||||
import { OrderWithAccount } from '@ghostfolio/common/types';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { isSameDay, parseISO } from 'date-fns';
|
||||
import { SymbolProfile } from '@prisma/client';
|
||||
import Big from 'big.js';
|
||||
import { endOfToday, isAfter, isSameDay, parseISO } from 'date-fns';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
@Injectable()
|
||||
export class ImportService {
|
||||
public constructor(
|
||||
private readonly accountService: AccountService,
|
||||
private readonly configurationService: ConfigurationService,
|
||||
private readonly dataProviderService: DataProviderService,
|
||||
private readonly exchangeRateDataService: ExchangeRateDataService,
|
||||
private readonly orderService: OrderService
|
||||
) {}
|
||||
|
||||
public async import({
|
||||
activities,
|
||||
activitiesDto,
|
||||
isDryRun = false,
|
||||
maxActivitiesToImport,
|
||||
userCurrency,
|
||||
userId
|
||||
}: {
|
||||
activities: Partial<CreateOrderDto>[];
|
||||
activitiesDto: Partial<CreateOrderDto>[];
|
||||
isDryRun?: boolean;
|
||||
maxActivitiesToImport: number;
|
||||
userCurrency: string;
|
||||
userId: string;
|
||||
}): Promise<void> {
|
||||
for (const activity of activities) {
|
||||
}): Promise<Activity[]> {
|
||||
for (const activity of activitiesDto) {
|
||||
if (!activity.dataSource) {
|
||||
if (activity.type === 'ITEM') {
|
||||
activity.dataSource = 'MANUAL';
|
||||
@ -34,8 +43,8 @@ export class ImportService {
|
||||
}
|
||||
}
|
||||
|
||||
await this.validateActivities({
|
||||
activities,
|
||||
const assetProfiles = await this.validateActivities({
|
||||
activitiesDto,
|
||||
maxActivitiesToImport,
|
||||
userId
|
||||
});
|
||||
@ -46,60 +55,128 @@ export class ImportService {
|
||||
}
|
||||
);
|
||||
|
||||
const activities: Activity[] = [];
|
||||
|
||||
for (const {
|
||||
accountId,
|
||||
comment,
|
||||
currency,
|
||||
dataSource,
|
||||
date,
|
||||
date: dateString,
|
||||
fee,
|
||||
quantity,
|
||||
symbol,
|
||||
type,
|
||||
unitPrice
|
||||
} of activities) {
|
||||
await this.orderService.createOrder({
|
||||
comment,
|
||||
fee,
|
||||
quantity,
|
||||
type,
|
||||
unitPrice,
|
||||
userId,
|
||||
accountId: accountIds.includes(accountId) ? accountId : undefined,
|
||||
date: parseISO(<string>(<unknown>date)),
|
||||
SymbolProfile: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
currency,
|
||||
dataSource,
|
||||
symbol
|
||||
},
|
||||
where: {
|
||||
dataSource_symbol: {
|
||||
} of activitiesDto) {
|
||||
const date = parseISO(<string>(<unknown>dateString));
|
||||
const validatedAccountId = accountIds.includes(accountId)
|
||||
? accountId
|
||||
: undefined;
|
||||
|
||||
let order: OrderWithAccount;
|
||||
|
||||
if (isDryRun) {
|
||||
order = {
|
||||
comment,
|
||||
date,
|
||||
fee,
|
||||
quantity,
|
||||
type,
|
||||
unitPrice,
|
||||
userId,
|
||||
accountId: validatedAccountId,
|
||||
accountUserId: undefined,
|
||||
createdAt: new Date(),
|
||||
id: uuidv4(),
|
||||
isDraft: isAfter(date, endOfToday()),
|
||||
SymbolProfile: {
|
||||
currency,
|
||||
dataSource,
|
||||
symbol,
|
||||
assetClass: null,
|
||||
assetSubClass: null,
|
||||
comment: null,
|
||||
countries: null,
|
||||
createdAt: undefined,
|
||||
id: undefined,
|
||||
name: null,
|
||||
scraperConfiguration: null,
|
||||
sectors: null,
|
||||
symbolMapping: null,
|
||||
updatedAt: undefined,
|
||||
url: null,
|
||||
...assetProfiles[symbol]
|
||||
},
|
||||
symbolProfileId: undefined,
|
||||
updatedAt: new Date()
|
||||
};
|
||||
} else {
|
||||
order = await this.orderService.createOrder({
|
||||
comment,
|
||||
date,
|
||||
fee,
|
||||
quantity,
|
||||
type,
|
||||
unitPrice,
|
||||
userId,
|
||||
accountId: validatedAccountId,
|
||||
SymbolProfile: {
|
||||
connectOrCreate: {
|
||||
create: {
|
||||
currency,
|
||||
dataSource,
|
||||
symbol
|
||||
},
|
||||
where: {
|
||||
dataSource_symbol: {
|
||||
dataSource,
|
||||
symbol
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
User: { connect: { id: userId } }
|
||||
},
|
||||
User: { connect: { id: userId } }
|
||||
});
|
||||
}
|
||||
|
||||
const value = new Big(quantity).mul(unitPrice).toNumber();
|
||||
|
||||
activities.push({
|
||||
...order,
|
||||
value,
|
||||
feeInBaseCurrency: this.exchangeRateDataService.toCurrency(
|
||||
fee,
|
||||
currency,
|
||||
userCurrency
|
||||
),
|
||||
valueInBaseCurrency: this.exchangeRateDataService.toCurrency(
|
||||
value,
|
||||
currency,
|
||||
userCurrency
|
||||
)
|
||||
});
|
||||
}
|
||||
|
||||
return activities;
|
||||
}
|
||||
|
||||
private async validateActivities({
|
||||
activities,
|
||||
activitiesDto,
|
||||
maxActivitiesToImport,
|
||||
userId
|
||||
}: {
|
||||
activities: Partial<CreateOrderDto>[];
|
||||
activitiesDto: Partial<CreateOrderDto>[];
|
||||
maxActivitiesToImport: number;
|
||||
userId: string;
|
||||
}) {
|
||||
if (activities?.length > maxActivitiesToImport) {
|
||||
if (activitiesDto?.length > maxActivitiesToImport) {
|
||||
throw new Error(`Too many activities (${maxActivitiesToImport} at most)`);
|
||||
}
|
||||
|
||||
const assetProfiles: {
|
||||
[symbol: string]: Partial<SymbolProfile>;
|
||||
} = {};
|
||||
const existingActivities = await this.orderService.orders({
|
||||
include: { SymbolProfile: true },
|
||||
orderBy: { date: 'desc' },
|
||||
@ -109,7 +186,7 @@ export class ImportService {
|
||||
for (const [
|
||||
index,
|
||||
{ currency, dataSource, date, fee, quantity, symbol, type, unitPrice }
|
||||
] of activities.entries()) {
|
||||
] of activitiesDto.entries()) {
|
||||
const duplicateActivity = existingActivities.find((activity) => {
|
||||
return (
|
||||
activity.SymbolProfile.currency === currency &&
|
||||
@ -128,22 +205,28 @@ export class ImportService {
|
||||
}
|
||||
|
||||
if (dataSource !== 'MANUAL') {
|
||||
const quotes = await this.dataProviderService.getQuotes([
|
||||
{ dataSource, symbol }
|
||||
]);
|
||||
const assetProfile = (
|
||||
await this.dataProviderService.getAssetProfiles([
|
||||
{ dataSource, symbol }
|
||||
])
|
||||
)?.[symbol];
|
||||
|
||||
if (quotes[symbol] === undefined) {
|
||||
if (assetProfile === undefined) {
|
||||
throw new Error(
|
||||
`activities.${index}.symbol ("${symbol}") is not valid for the specified data source ("${dataSource}")`
|
||||
);
|
||||
}
|
||||
|
||||
if (quotes[symbol].currency !== currency) {
|
||||
if (assetProfile.currency !== currency) {
|
||||
throw new Error(
|
||||
`activities.${index}.currency ("${currency}") does not match with "${quotes[symbol].currency}"`
|
||||
`activities.${index}.currency ("${currency}") does not match with "${assetProfile.currency}"`
|
||||
);
|
||||
}
|
||||
|
||||
assetProfiles[symbol] = assetProfile;
|
||||
}
|
||||
}
|
||||
|
||||
return assetProfiles;
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,6 @@ import { TagService } from '@ghostfolio/api/services/tag/tag.service';
|
||||
import {
|
||||
DEMO_USER_ID,
|
||||
PROPERTY_IS_READ_ONLY_MODE,
|
||||
PROPERTY_IS_USER_SIGNUP_ENABLED,
|
||||
PROPERTY_SLACK_COMMUNITY_USERS,
|
||||
PROPERTY_STRIPE_CONFIG,
|
||||
PROPERTY_SYSTEM_MESSAGE,
|
||||
@ -303,14 +302,14 @@ export class InfoService {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const stripeConfig = await this.prismaService.property.findUnique({
|
||||
let subscriptions: Subscription[] = [];
|
||||
|
||||
const stripeConfig = (await this.prismaService.property.findUnique({
|
||||
where: { key: PROPERTY_STRIPE_CONFIG }
|
||||
});
|
||||
})) ?? { value: '{}' };
|
||||
|
||||
if (stripeConfig) {
|
||||
return [JSON.parse(stripeConfig.value)];
|
||||
}
|
||||
subscriptions = [JSON.parse(stripeConfig.value)];
|
||||
|
||||
return [];
|
||||
return subscriptions;
|
||||
}
|
||||
}
|
||||
|
@ -362,6 +362,12 @@ export class OrderService {
|
||||
delete data.symbol;
|
||||
delete data.tags;
|
||||
|
||||
// Remove existing tags
|
||||
await this.prismaService.order.update({
|
||||
data: { tags: { set: [] } },
|
||||
where
|
||||
});
|
||||
|
||||
return this.prismaService.order.update({
|
||||
data: {
|
||||
...data,
|
||||
|
@ -18,7 +18,6 @@ import {
|
||||
PortfolioPublicDetails,
|
||||
PortfolioReport
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { InvestmentItem } from '@ghostfolio/common/interfaces/investment-item.interface';
|
||||
import type {
|
||||
DateRange,
|
||||
GroupBy,
|
||||
@ -190,23 +189,24 @@ export class PortfolioController {
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
public async getDividends(
|
||||
@Headers('impersonation-id') impersonationId: string,
|
||||
@Query('accounts') filterByAccounts?: string,
|
||||
@Query('assetClasses') filterByAssetClasses?: string,
|
||||
@Query('groupBy') groupBy?: GroupBy,
|
||||
@Query('range') dateRange: DateRange = 'max',
|
||||
@Query('groupBy') groupBy?: GroupBy
|
||||
@Query('tags') filterByTags?: string
|
||||
): Promise<PortfolioDividends> {
|
||||
let dividends: InvestmentItem[];
|
||||
const filters = this.apiService.buildFiltersFromQueryParams({
|
||||
filterByAccounts,
|
||||
filterByAssetClasses,
|
||||
filterByTags
|
||||
});
|
||||
|
||||
if (groupBy === 'month') {
|
||||
dividends = await this.portfolioService.getDividends({
|
||||
dateRange,
|
||||
groupBy,
|
||||
impersonationId
|
||||
});
|
||||
} else {
|
||||
dividends = await this.portfolioService.getDividends({
|
||||
dateRange,
|
||||
impersonationId
|
||||
});
|
||||
}
|
||||
let dividends = await this.portfolioService.getDividends({
|
||||
dateRange,
|
||||
filters,
|
||||
groupBy,
|
||||
impersonationId
|
||||
});
|
||||
|
||||
if (
|
||||
impersonationId ||
|
||||
@ -239,23 +239,24 @@ export class PortfolioController {
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
public async getInvestments(
|
||||
@Headers('impersonation-id') impersonationId: string,
|
||||
@Query('accounts') filterByAccounts?: string,
|
||||
@Query('assetClasses') filterByAssetClasses?: string,
|
||||
@Query('groupBy') groupBy?: GroupBy,
|
||||
@Query('range') dateRange: DateRange = 'max',
|
||||
@Query('groupBy') groupBy?: GroupBy
|
||||
@Query('tags') filterByTags?: string
|
||||
): Promise<PortfolioInvestments> {
|
||||
let investments: InvestmentItem[];
|
||||
const filters = this.apiService.buildFiltersFromQueryParams({
|
||||
filterByAccounts,
|
||||
filterByAssetClasses,
|
||||
filterByTags
|
||||
});
|
||||
|
||||
if (groupBy === 'month') {
|
||||
investments = await this.portfolioService.getInvestments({
|
||||
dateRange,
|
||||
groupBy,
|
||||
impersonationId
|
||||
});
|
||||
} else {
|
||||
investments = await this.portfolioService.getInvestments({
|
||||
dateRange,
|
||||
impersonationId
|
||||
});
|
||||
}
|
||||
let investments = await this.portfolioService.getInvestments({
|
||||
dateRange,
|
||||
filters,
|
||||
groupBy,
|
||||
impersonationId
|
||||
});
|
||||
|
||||
if (
|
||||
impersonationId ||
|
||||
@ -290,10 +291,20 @@ export class PortfolioController {
|
||||
@Version('2')
|
||||
public async getPerformanceV2(
|
||||
@Headers('impersonation-id') impersonationId: string,
|
||||
@Query('range') dateRange: DateRange = 'max'
|
||||
@Query('accounts') filterByAccounts?: string,
|
||||
@Query('assetClasses') filterByAssetClasses?: string,
|
||||
@Query('range') dateRange: DateRange = 'max',
|
||||
@Query('tags') filterByTags?: string
|
||||
): Promise<PortfolioPerformanceResponse> {
|
||||
const filters = this.apiService.buildFiltersFromQueryParams({
|
||||
filterByAccounts,
|
||||
filterByAssetClasses,
|
||||
filterByTags
|
||||
});
|
||||
|
||||
const performanceInformation = await this.portfolioService.getPerformance({
|
||||
dateRange,
|
||||
filters,
|
||||
impersonationId,
|
||||
userId: this.request.user.id
|
||||
});
|
||||
@ -348,12 +359,22 @@ export class PortfolioController {
|
||||
@UseInterceptors(TransformDataSourceInResponseInterceptor)
|
||||
public async getPositions(
|
||||
@Headers('impersonation-id') impersonationId: string,
|
||||
@Query('range') dateRange: DateRange = 'max'
|
||||
@Query('accounts') filterByAccounts?: string,
|
||||
@Query('assetClasses') filterByAssetClasses?: string,
|
||||
@Query('range') dateRange: DateRange = 'max',
|
||||
@Query('tags') filterByTags?: string
|
||||
): Promise<PortfolioPositions> {
|
||||
const result = await this.portfolioService.getPositions(
|
||||
impersonationId,
|
||||
dateRange
|
||||
);
|
||||
const filters = this.apiService.buildFiltersFromQueryParams({
|
||||
filterByAccounts,
|
||||
filterByAssetClasses,
|
||||
filterByTags
|
||||
});
|
||||
|
||||
const result = await this.portfolioService.getPositions({
|
||||
dateRange,
|
||||
filters,
|
||||
impersonationId
|
||||
});
|
||||
|
||||
if (
|
||||
impersonationId ||
|
||||
|
@ -210,16 +210,19 @@ export class PortfolioService {
|
||||
|
||||
public async getDividends({
|
||||
dateRange,
|
||||
impersonationId,
|
||||
groupBy
|
||||
filters,
|
||||
groupBy,
|
||||
impersonationId
|
||||
}: {
|
||||
dateRange: DateRange;
|
||||
impersonationId: string;
|
||||
filters?: Filter[];
|
||||
groupBy?: GroupBy;
|
||||
impersonationId: string;
|
||||
}): Promise<InvestmentItem[]> {
|
||||
const userId = await this.getUserId(impersonationId, this.request.user.id);
|
||||
|
||||
const activities = await this.orderService.getOrders({
|
||||
filters,
|
||||
userId,
|
||||
types: ['DIVIDEND'],
|
||||
userCurrency: this.request.user.Settings.settings.baseCurrency
|
||||
@ -248,17 +251,20 @@ export class PortfolioService {
|
||||
|
||||
public async getInvestments({
|
||||
dateRange,
|
||||
impersonationId,
|
||||
groupBy
|
||||
filters,
|
||||
groupBy,
|
||||
impersonationId
|
||||
}: {
|
||||
dateRange: DateRange;
|
||||
impersonationId: string;
|
||||
filters?: Filter[];
|
||||
groupBy?: GroupBy;
|
||||
impersonationId: string;
|
||||
}): Promise<InvestmentItem[]> {
|
||||
const userId = await this.getUserId(impersonationId, this.request.user.id);
|
||||
|
||||
const { portfolioOrders, transactionPoints } =
|
||||
await this.getTransactionPoints({
|
||||
filters,
|
||||
userId,
|
||||
includeDrafts: true
|
||||
});
|
||||
@ -343,11 +349,13 @@ export class PortfolioService {
|
||||
|
||||
public async getChart({
|
||||
dateRange = 'max',
|
||||
filters,
|
||||
impersonationId,
|
||||
userCurrency,
|
||||
userId
|
||||
}: {
|
||||
dateRange?: DateRange;
|
||||
filters?: Filter[];
|
||||
impersonationId: string;
|
||||
userCurrency: string;
|
||||
userId: string;
|
||||
@ -356,6 +364,7 @@ export class PortfolioService {
|
||||
|
||||
const { portfolioOrders, transactionPoints } =
|
||||
await this.getTransactionPoints({
|
||||
filters,
|
||||
userId
|
||||
});
|
||||
|
||||
@ -397,15 +406,15 @@ export class PortfolioService {
|
||||
}
|
||||
|
||||
public async getDetails({
|
||||
impersonationId,
|
||||
dateRange = 'max',
|
||||
filters,
|
||||
impersonationId,
|
||||
userId,
|
||||
withExcludedAccounts = false
|
||||
}: {
|
||||
impersonationId: string;
|
||||
dateRange?: DateRange;
|
||||
filters?: Filter[];
|
||||
impersonationId: string;
|
||||
userId: string;
|
||||
withExcludedAccounts?: boolean;
|
||||
}): Promise<PortfolioDetails & { hasErrors: boolean }> {
|
||||
@ -850,14 +859,20 @@ export class PortfolioService {
|
||||
}
|
||||
}
|
||||
|
||||
public async getPositions(
|
||||
aImpersonationId: string,
|
||||
aDateRange: DateRange = 'max'
|
||||
): Promise<{ hasErrors: boolean; positions: Position[] }> {
|
||||
const userId = await this.getUserId(aImpersonationId, this.request.user.id);
|
||||
public async getPositions({
|
||||
dateRange = 'max',
|
||||
filters,
|
||||
impersonationId
|
||||
}: {
|
||||
dateRange?: DateRange;
|
||||
filters?: Filter[];
|
||||
impersonationId: string;
|
||||
}): Promise<{ hasErrors: boolean; positions: Position[] }> {
|
||||
const userId = await this.getUserId(impersonationId, this.request.user.id);
|
||||
|
||||
const { portfolioOrders, transactionPoints } =
|
||||
await this.getTransactionPoints({
|
||||
filters,
|
||||
userId
|
||||
});
|
||||
|
||||
@ -877,7 +892,7 @@ export class PortfolioService {
|
||||
portfolioCalculator.setTransactionPoints(transactionPoints);
|
||||
|
||||
const portfolioStart = parseDate(transactionPoints[0].date);
|
||||
const startDate = this.getStartDate(aDateRange, portfolioStart);
|
||||
const startDate = this.getStartDate(dateRange, portfolioStart);
|
||||
const currentPositions = await portfolioCalculator.getCurrentPositions(
|
||||
startDate
|
||||
);
|
||||
@ -928,10 +943,12 @@ export class PortfolioService {
|
||||
|
||||
public async getPerformance({
|
||||
dateRange = 'max',
|
||||
filters,
|
||||
impersonationId,
|
||||
userId
|
||||
}: {
|
||||
dateRange?: DateRange;
|
||||
filters?: Filter[];
|
||||
impersonationId: string;
|
||||
userId: string;
|
||||
}): Promise<PortfolioPerformanceResponse> {
|
||||
@ -941,6 +958,7 @@ export class PortfolioService {
|
||||
|
||||
const { portfolioOrders, transactionPoints } =
|
||||
await this.getTransactionPoints({
|
||||
filters,
|
||||
userId
|
||||
});
|
||||
|
||||
@ -996,6 +1014,7 @@ export class PortfolioService {
|
||||
|
||||
const historicalDataContainer = await this.getChart({
|
||||
dateRange,
|
||||
filters,
|
||||
impersonationId,
|
||||
userCurrency,
|
||||
userId
|
||||
|
@ -63,6 +63,7 @@ export class SubscriptionController {
|
||||
|
||||
await this.subscriptionService.createSubscription({
|
||||
duration: coupon.duration,
|
||||
price: 0,
|
||||
userId: this.request.user.id
|
||||
});
|
||||
|
||||
|
@ -1,6 +1,10 @@
|
||||
import { ConfigurationService } from '@ghostfolio/api/services/configuration.service';
|
||||
import { PrismaService } from '@ghostfolio/api/services/prisma.service';
|
||||
import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config';
|
||||
import {
|
||||
DEFAULT_LANGUAGE_CODE,
|
||||
PROPERTY_STRIPE_CONFIG
|
||||
} from '@ghostfolio/common/config';
|
||||
import { Subscription as SubscriptionInterface } from '@ghostfolio/common/interfaces/subscription.interface';
|
||||
import { SubscriptionType } from '@ghostfolio/common/types/subscription.type';
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { Subscription } from '@prisma/client';
|
||||
@ -70,13 +74,16 @@ export class SubscriptionService {
|
||||
|
||||
public async createSubscription({
|
||||
duration = '1 year',
|
||||
price,
|
||||
userId
|
||||
}: {
|
||||
duration?: StringValue;
|
||||
price: number;
|
||||
userId: string;
|
||||
}) {
|
||||
await this.prismaService.subscription.create({
|
||||
data: {
|
||||
price,
|
||||
expiresAt: addMilliseconds(new Date(), ms(duration)),
|
||||
User: {
|
||||
connect: {
|
||||
@ -93,7 +100,21 @@ export class SubscriptionService {
|
||||
aCheckoutSessionId
|
||||
);
|
||||
|
||||
await this.createSubscription({ userId: session.client_reference_id });
|
||||
let subscriptions: SubscriptionInterface[] = [];
|
||||
|
||||
const stripeConfig = (await this.prismaService.property.findUnique({
|
||||
where: { key: PROPERTY_STRIPE_CONFIG }
|
||||
})) ?? { value: '{}' };
|
||||
|
||||
subscriptions = [JSON.parse(stripeConfig.value)];
|
||||
|
||||
const coupon = subscriptions[0]?.coupon ?? 0;
|
||||
const price = subscriptions[0]?.price ?? 0;
|
||||
|
||||
await this.createSubscription({
|
||||
price: price - coupon,
|
||||
userId: session.client_reference_id
|
||||
});
|
||||
|
||||
await this.stripe.customers.update(session.customer as string, {
|
||||
description: session.client_reference_id
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -11,6 +11,8 @@ import { TwitterBotService } from './twitter-bot/twitter-bot.service';
|
||||
|
||||
@Injectable()
|
||||
export class CronService {
|
||||
private static readonly EVERY_SUNDAY_AT_LUNCH_TIME = '0 12 * * 0';
|
||||
|
||||
public constructor(
|
||||
private readonly dataGatheringService: DataGatheringService,
|
||||
private readonly exchangeRateDataService: ExchangeRateDataService,
|
||||
@ -28,12 +30,12 @@ export class CronService {
|
||||
}
|
||||
|
||||
@Cron(CronExpression.EVERY_DAY_AT_5PM)
|
||||
public async runEveryDayAtFivePM() {
|
||||
public async runEveryDayAtFivePm() {
|
||||
this.twitterBotService.tweetFearAndGreedIndex();
|
||||
}
|
||||
|
||||
@Cron(CronExpression.EVERY_WEEKEND)
|
||||
public async runEveryWeekend() {
|
||||
@Cron(CronService.EVERY_SUNDAY_AT_LUNCH_TIME)
|
||||
public async runEverySundayAtTwelvePm() {
|
||||
const uniqueAssets = await this.dataGatheringService.getUniqueAssets();
|
||||
|
||||
for (const { dataSource, symbol } of uniqueAssets) {
|
||||
|
@ -5,20 +5,18 @@ import {
|
||||
IDataProviderHistoricalResponse,
|
||||
IDataProviderResponse
|
||||
} from '@ghostfolio/api/services/interfaces/interfaces';
|
||||
import { PrismaService } from '@ghostfolio/api/services/prisma.service';
|
||||
import { ghostfolioFearAndGreedIndexSymbol } from '@ghostfolio/common/config';
|
||||
import { DATE_FORMAT, getToday, getYesterday } from '@ghostfolio/common/helper';
|
||||
import { DATE_FORMAT, getYesterday } from '@ghostfolio/common/helper';
|
||||
import { Granularity } from '@ghostfolio/common/types';
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { DataSource, SymbolProfile } from '@prisma/client';
|
||||
import bent from 'bent';
|
||||
import { format, subMonths, subWeeks, subYears } from 'date-fns';
|
||||
import { format } from 'date-fns';
|
||||
|
||||
@Injectable()
|
||||
export class RapidApiService implements DataProviderInterface {
|
||||
public constructor(
|
||||
private readonly configurationService: ConfigurationService,
|
||||
private readonly prismaService: PrismaService
|
||||
private readonly configurationService: ConfigurationService
|
||||
) {}
|
||||
|
||||
public canHandle(symbol: string) {
|
||||
@ -47,41 +45,6 @@ export class RapidApiService implements DataProviderInterface {
|
||||
if (symbol === ghostfolioFearAndGreedIndexSymbol) {
|
||||
const fgi = await this.getFearAndGreedIndex();
|
||||
|
||||
try {
|
||||
// Rebuild historical data
|
||||
// TODO: can be removed after all data from the last year has been gathered
|
||||
// (introduced on 27.03.2021)
|
||||
|
||||
await this.prismaService.marketData.create({
|
||||
data: {
|
||||
symbol,
|
||||
dataSource: this.getName(),
|
||||
date: subWeeks(getToday(), 1),
|
||||
marketPrice: fgi.oneWeekAgo.value
|
||||
}
|
||||
});
|
||||
|
||||
await this.prismaService.marketData.create({
|
||||
data: {
|
||||
symbol,
|
||||
dataSource: this.getName(),
|
||||
date: subMonths(getToday(), 1),
|
||||
marketPrice: fgi.oneMonthAgo.value
|
||||
}
|
||||
});
|
||||
|
||||
await this.prismaService.marketData.create({
|
||||
data: {
|
||||
symbol,
|
||||
dataSource: this.getName(),
|
||||
date: subYears(getToday(), 1),
|
||||
marketPrice: fgi.oneYearAgo.value
|
||||
}
|
||||
});
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
} catch {}
|
||||
|
||||
return {
|
||||
[ghostfolioFearAndGreedIndexSymbol]: {
|
||||
[format(getYesterday(), DATE_FORMAT)]: {
|
||||
|
@ -154,11 +154,7 @@ export class YahooFinanceService implements DataProviderInterface {
|
||||
response.url = url;
|
||||
}
|
||||
} catch (error) {
|
||||
throw new Error(
|
||||
`Could not get asset profile for ${aSymbol} (${this.getName()}): [${
|
||||
error.name
|
||||
}] ${error.message}`
|
||||
);
|
||||
Logger.error(error, 'YahooFinanceService');
|
||||
}
|
||||
|
||||
return response;
|
||||
|
@ -2,7 +2,7 @@ import { Platform } from '@angular/cdk/platform';
|
||||
import { Inject, forwardRef } from '@angular/core';
|
||||
import { MAT_DATE_LOCALE, NativeDateAdapter } from '@angular/material/core';
|
||||
import { getDateFormatString } from '@ghostfolio/common/helper';
|
||||
import { format, parse } from 'date-fns';
|
||||
import { addYears, format, getYear, parse } from 'date-fns';
|
||||
|
||||
export class CustomDateAdapter extends NativeDateAdapter {
|
||||
public constructor(
|
||||
@ -31,6 +31,16 @@ export class CustomDateAdapter extends NativeDateAdapter {
|
||||
* Parses a date from a provided value
|
||||
*/
|
||||
public parse(aValue: string): Date {
|
||||
return parse(aValue, getDateFormatString(this.locale), new Date());
|
||||
let date = parse(aValue, getDateFormatString(this.locale), new Date());
|
||||
|
||||
if (getYear(date) < 1900) {
|
||||
if (getYear(date) > Number(format(new Date(), 'yy')) + 1) {
|
||||
date = addYears(date, 1900);
|
||||
} else {
|
||||
date = addYears(date, 2000);
|
||||
}
|
||||
}
|
||||
|
||||
return date;
|
||||
}
|
||||
}
|
||||
|
@ -109,6 +109,13 @@ const routes: Routes = [
|
||||
'./pages/blog/2022/11/black-friday-2022/black-friday-2022-page.module'
|
||||
).then((m) => m.BlackFriday2022PageModule)
|
||||
},
|
||||
{
|
||||
path: 'blog/2022/12/the-importance-of-tracking-your-personal-finances',
|
||||
loadChildren: () =>
|
||||
import(
|
||||
'./pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.module'
|
||||
).then((m) => m.TheImportanceOfTrackingYourPersonalFinancesPageModule)
|
||||
},
|
||||
{
|
||||
path: 'demo',
|
||||
loadChildren: () =>
|
||||
|
@ -3,6 +3,7 @@
|
||||
class="position-fixed w-100"
|
||||
[currentRoute]="currentRoute"
|
||||
[info]="info"
|
||||
[pageTitle]="pageTitle"
|
||||
[user]="user"
|
||||
(signOut)="onSignOut()"
|
||||
></gf-header>
|
||||
|
@ -5,7 +5,13 @@ import {
|
||||
OnDestroy,
|
||||
OnInit
|
||||
} from '@angular/core';
|
||||
import { NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';
|
||||
import { Title } from '@angular/platform-browser';
|
||||
import {
|
||||
ActivatedRoute,
|
||||
NavigationEnd,
|
||||
PRIMARY_OUTLET,
|
||||
Router
|
||||
} from '@angular/router';
|
||||
import {
|
||||
primaryColorHex,
|
||||
secondaryColorHex,
|
||||
@ -36,6 +42,7 @@ export class AppComponent implements OnDestroy, OnInit {
|
||||
public currentYear = new Date().getFullYear();
|
||||
public deviceType: string;
|
||||
public info: InfoItem;
|
||||
public pageTitle: string;
|
||||
public user: User;
|
||||
public version = environment.version;
|
||||
|
||||
@ -47,6 +54,7 @@ export class AppComponent implements OnDestroy, OnInit {
|
||||
private deviceService: DeviceDetectorService,
|
||||
private materialCssVarsService: MaterialCssVarsService,
|
||||
private router: Router,
|
||||
private title: Title,
|
||||
private tokenStorageService: TokenStorageService,
|
||||
private userService: UserService
|
||||
) {
|
||||
@ -66,6 +74,19 @@ export class AppComponent implements OnDestroy, OnInit {
|
||||
this.currentRoute = urlSegments[0].path;
|
||||
|
||||
this.info = this.dataService.fetchInfo();
|
||||
|
||||
if (this.deviceType === 'mobile') {
|
||||
setTimeout(() => {
|
||||
const index = this.title.getTitle().indexOf('–');
|
||||
const title =
|
||||
index === -1
|
||||
? ''
|
||||
: this.title.getTitle().substring(0, index).trim();
|
||||
this.pageTitle = title.length <= 15 ? title : 'Ghostfolio';
|
||||
|
||||
this.changeDetectorRef.markForCheck();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.userService.stateChanged
|
||||
|
@ -12,7 +12,7 @@ import { UserService } from '@ghostfolio/client/services/user/user.service';
|
||||
import { downloadAsFile } from '@ghostfolio/common/helper';
|
||||
import { User } from '@ghostfolio/common/interfaces';
|
||||
import { OrderWithAccount } from '@ghostfolio/common/types';
|
||||
import { AccountType } from '@prisma/client';
|
||||
import { translate } from '@ghostfolio/ui/i18n';
|
||||
import { format, parseISO } from 'date-fns';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
@ -27,7 +27,7 @@ import { AccountDetailDialogParams } from './interfaces/interfaces';
|
||||
styleUrls: ['./account-detail-dialog.component.scss']
|
||||
})
|
||||
export class AccountDetailDialog implements OnDestroy, OnInit {
|
||||
public accountType: AccountType;
|
||||
public accountType: string;
|
||||
public name: string;
|
||||
public orders: OrderWithAccount[];
|
||||
public platformName: string;
|
||||
@ -59,7 +59,7 @@ export class AccountDetailDialog implements OnDestroy, OnInit {
|
||||
.fetchAccount(this.data.accountId)
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe(({ accountType, name, Platform, valueInBaseCurrency }) => {
|
||||
this.accountType = accountType;
|
||||
this.accountType = translate(accountType);
|
||||
this.name = name;
|
||||
this.platformName = Platform?.name ?? '-';
|
||||
this.valueInBaseCurrency = valueInBaseCurrency;
|
||||
|
@ -20,7 +20,6 @@ import {
|
||||
addDays,
|
||||
format,
|
||||
isBefore,
|
||||
isDate,
|
||||
isSameDay,
|
||||
isToday,
|
||||
isValid,
|
||||
@ -31,6 +30,7 @@ import { last } from 'lodash';
|
||||
import { DeviceDetectorService } from 'ngx-device-detector';
|
||||
import { Subject, takeUntil } from 'rxjs';
|
||||
|
||||
import { MarketDataDetailDialogParams } from './market-data-detail-dialog/interfaces/interfaces';
|
||||
import { MarketDataDetailDialog } from './market-data-detail-dialog/market-data-detail-dialog.component';
|
||||
|
||||
@Component({
|
||||
@ -40,6 +40,7 @@ import { MarketDataDetailDialog } from './market-data-detail-dialog/market-data-
|
||||
templateUrl: './admin-market-data-detail.component.html'
|
||||
})
|
||||
export class AdminMarketDataDetailComponent implements OnChanges, OnInit {
|
||||
@Input() currency: string;
|
||||
@Input() dataSource: DataSource;
|
||||
@Input() dateOfFirstActivity: string;
|
||||
@Input() locale = getLocale();
|
||||
@ -161,9 +162,10 @@ export class AdminMarketDataDetailComponent implements OnChanges, OnInit {
|
||||
}
|
||||
|
||||
const dialogRef = this.dialog.open(MarketDataDetailDialog, {
|
||||
data: {
|
||||
data: <MarketDataDetailDialogParams>{
|
||||
date,
|
||||
marketPrice,
|
||||
currency: this.currency,
|
||||
dataSource: this.dataSource,
|
||||
symbol: this.symbol,
|
||||
user: this.user
|
||||
|
@ -2,6 +2,7 @@ import { User } from '@ghostfolio/common/interfaces';
|
||||
import { DataSource } from '@prisma/client';
|
||||
|
||||
export interface MarketDataDetailDialogParams {
|
||||
currency: string;
|
||||
dataSource: DataSource;
|
||||
date: Date;
|
||||
marketPrice: number;
|
||||
|
@ -1,5 +1,5 @@
|
||||
<form class="d-flex flex-column h-100">
|
||||
<h1 mat-dialog-title i18n>Details for {{ data.symbol }}</h1>
|
||||
<h1 i18n mat-dialog-title>Details for {{ data.symbol }}</h1>
|
||||
<div class="flex-grow-1" mat-dialog-content>
|
||||
<div class="mb-3">
|
||||
<mat-form-field appearance="outline" class="w-100">
|
||||
@ -30,6 +30,7 @@
|
||||
type="number"
|
||||
[(ngModel)]="data.marketPrice"
|
||||
/>
|
||||
<span class="ml-2" matSuffix>{{ data.currency }}</span>
|
||||
<button
|
||||
mat-icon-button
|
||||
matSuffix
|
||||
|
@ -14,6 +14,7 @@ import {
|
||||
EnhancedSymbolProfile,
|
||||
UniqueAsset
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { translate } from '@ghostfolio/ui/i18n';
|
||||
import { MarketData } from '@prisma/client';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
@ -28,11 +29,13 @@ import { AssetProfileDialogParams } from './interfaces/interfaces';
|
||||
styleUrls: ['./asset-profile-dialog.component.scss']
|
||||
})
|
||||
export class AssetProfileDialog implements OnDestroy, OnInit {
|
||||
public assetClass: string;
|
||||
public assetProfile: EnhancedSymbolProfile;
|
||||
public assetProfileForm = this.formBuilder.group({
|
||||
comment: '',
|
||||
symbolMapping: ''
|
||||
});
|
||||
public assetSubClass: string;
|
||||
public countries: {
|
||||
[code: string]: { name: string; value: number };
|
||||
};
|
||||
@ -64,6 +67,9 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe(({ assetProfile, marketData }) => {
|
||||
this.assetProfile = assetProfile;
|
||||
|
||||
this.assetClass = translate(this.assetProfile?.assetClass);
|
||||
this.assetSubClass = translate(this.assetProfile?.assetSubClass);
|
||||
this.countries = {};
|
||||
this.marketDataDetails = marketData;
|
||||
this.sectors = {};
|
||||
|
@ -43,6 +43,7 @@
|
||||
<div class="flex-grow-1" mat-dialog-content>
|
||||
<gf-admin-market-data-detail
|
||||
class="mb-3"
|
||||
[currency]="assetProfile?.currency"
|
||||
[dataSource]="data.dataSource"
|
||||
[dateOfFirstActivity]="assetProfile?.dateOfFirstActivity"
|
||||
[locale]="data.locale"
|
||||
@ -51,6 +52,16 @@
|
||||
(marketDataChanged)="onMarketDataChanged($event)"
|
||||
></gf-admin-market-data-detail>
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<gf-value i18n size="medium" [value]="assetProfile?.symbol"
|
||||
>Symbol</gf-value
|
||||
>
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<gf-value i18n size="medium" [value]="assetProfile?.currency"
|
||||
>Currency</gf-value
|
||||
>
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<gf-value
|
||||
i18n
|
||||
@ -71,11 +82,7 @@
|
||||
>
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<gf-value
|
||||
i18n
|
||||
size="medium"
|
||||
[hidden]="!assetProfile?.assetClass"
|
||||
[value]="assetProfile?.assetClass"
|
||||
<gf-value i18n size="medium" [hidden]="!assetClass" [value]="assetClass"
|
||||
>Asset Class</gf-value
|
||||
>
|
||||
</div>
|
||||
@ -83,8 +90,8 @@
|
||||
<gf-value
|
||||
i18n
|
||||
size="medium"
|
||||
[hidden]="!assetProfile?.assetSubClass"
|
||||
[value]="assetProfile?.assetSubClass"
|
||||
[hidden]="!assetSubClass"
|
||||
[value]="assetSubClass"
|
||||
>Asset Sub Class</gf-value
|
||||
>
|
||||
</div>
|
||||
|
@ -4,6 +4,7 @@ import { CacheService } from '@ghostfolio/client/services/cache.service';
|
||||
import { DataService } from '@ghostfolio/client/services/data.service';
|
||||
import { UserService } from '@ghostfolio/client/services/user/user.service';
|
||||
import {
|
||||
ghostfolioPrefix,
|
||||
PROPERTY_COUPONS,
|
||||
PROPERTY_CURRENCIES,
|
||||
PROPERTY_IS_READ_ONLY_MODE,
|
||||
@ -97,7 +98,10 @@ export class AdminOverviewComponent implements OnDestroy, OnInit {
|
||||
public onAddCoupon() {
|
||||
const coupons = [
|
||||
...this.coupons,
|
||||
{ code: this.generateCouponCode(16), duration: this.couponDuration }
|
||||
{
|
||||
code: `${ghostfolioPrefix}${this.generateCouponCode(14)}`,
|
||||
duration: this.couponDuration
|
||||
}
|
||||
];
|
||||
this.putAdminSetting({ key: PROPERTY_COUPONS, value: coupons });
|
||||
}
|
||||
|
@ -72,16 +72,32 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="align-items-start d-flex my-3">
|
||||
<div
|
||||
*ngIf="info?.benchmarks?.length > 0"
|
||||
class="align-items-start d-flex my-3"
|
||||
>
|
||||
<div class="w-50" i18n>Benchmarks</div>
|
||||
<div class="w-50">
|
||||
<table>
|
||||
<tr *ngFor="let benchmark of info?.benchmarks">
|
||||
<tr *ngFor="let benchmark of info.benchmarks">
|
||||
<td class="pl-1">{{ benchmark.symbol }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
*ngIf="info?.tags?.length > 0"
|
||||
class="align-items-start d-flex my-3"
|
||||
>
|
||||
<div class="w-50" i18n>Tags</div>
|
||||
<div class="w-50">
|
||||
<table>
|
||||
<tr *ngFor="let tag of info.tags">
|
||||
<td class="pl-1">{{ tag.name }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex my-3">
|
||||
<div class="w-50" i18n>User Signup</div>
|
||||
<div class="w-50">
|
||||
|
@ -187,7 +187,7 @@ export class BenchmarkComparatorComponent implements OnChanges, OnDestroy {
|
||||
position: 'right',
|
||||
ticks: {
|
||||
callback: (value: number) => {
|
||||
return `${value} %`;
|
||||
return `${value.toFixed(2)} %`;
|
||||
},
|
||||
display: true,
|
||||
mirror: true,
|
||||
|
@ -5,7 +5,7 @@
|
||||
mat-button
|
||||
[routerLink]="['/']"
|
||||
>
|
||||
<gf-logo></gf-logo>
|
||||
<gf-logo [label]="pageTitle"></gf-logo>
|
||||
</a>
|
||||
<span class="spacer"></span>
|
||||
<a
|
||||
@ -231,7 +231,10 @@
|
||||
mat-button
|
||||
[routerLink]="['/']"
|
||||
>
|
||||
<gf-logo [hideName]="currentRoute === 'register'"></gf-logo>
|
||||
<gf-logo
|
||||
[label]="pageTitle"
|
||||
[showLabel]="currentRoute !== 'register'"
|
||||
></gf-logo>
|
||||
</a>
|
||||
<span class="spacer"></span>
|
||||
<a
|
||||
|
@ -30,6 +30,7 @@ import { catchError, takeUntil } from 'rxjs/operators';
|
||||
export class HeaderComponent implements OnChanges {
|
||||
@Input() currentRoute: string;
|
||||
@Input() info: InfoItem;
|
||||
@Input() pageTitle: string;
|
||||
@Input() user: User;
|
||||
|
||||
@Output() signOut = new EventEmitter<void>();
|
||||
|
@ -27,7 +27,7 @@ export class HomeMarketComponent implements OnDestroy, OnInit {
|
||||
public historicalDataItems: HistoricalDataItem[];
|
||||
public info: InfoItem;
|
||||
public isLoading = true;
|
||||
public readonly numberOfDays = 180;
|
||||
public readonly numberOfDays = 365;
|
||||
public user: User;
|
||||
|
||||
private unsubscribeSubject = new Subject<void>();
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h3 class="mb-3 text-center" i18n>Markets</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Markets</h3>
|
||||
<div class="mb-5 row">
|
||||
<div class="col-xs-12 col-md-8 offset-md-2">
|
||||
<div class="mb-2 text-center text-muted">
|
||||
|
@ -1,10 +1,8 @@
|
||||
<div class="container pb-3 px-3">
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Summary</h3>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-8 offset-md-2">
|
||||
<mat-card class="h-100">
|
||||
<mat-card-header>
|
||||
<mat-card-title i18n>Summary</mat-card-title>
|
||||
</mat-card-header>
|
||||
<mat-card-content>
|
||||
<gf-portfolio-summary
|
||||
[baseCurrency]="user?.settings?.baseCurrency"
|
||||
|
@ -19,7 +19,7 @@
|
||||
<div class="my-3 text-center text-muted" i18n>or</div>
|
||||
<div class="d-flex flex-column">
|
||||
<button
|
||||
class="mb-2"
|
||||
class="mb-2 px-4 rounded-pill"
|
||||
mat-stroked-button
|
||||
(click)="onLoginWithInternetIdentity()"
|
||||
>
|
||||
@ -29,7 +29,10 @@
|
||||
style="height: 0.75rem"
|
||||
/><span i18n>Sign in with Internet Identity</span>
|
||||
</button>
|
||||
<a href="../api/v1/auth/google" mat-stroked-button
|
||||
<a
|
||||
class="px-4 rounded-pill"
|
||||
href="../api/v1/auth/google"
|
||||
mat-stroked-button
|
||||
><img
|
||||
class="mr-2"
|
||||
src="../assets/icons/google.svg"
|
||||
|
@ -3,12 +3,12 @@
|
||||
<a
|
||||
class="d-flex p-3 w-100"
|
||||
[ngClass]="{ 'cursor-default': isLoading }"
|
||||
[routerLink]="[]"
|
||||
[queryParams]="{
|
||||
dataSource: position?.dataSource,
|
||||
positionDetailDialog: true,
|
||||
symbol: position?.symbol
|
||||
}"
|
||||
[routerLink]="[]"
|
||||
>
|
||||
<div class="d-flex mr-2">
|
||||
<gf-trend-indicator
|
||||
@ -39,7 +39,7 @@
|
||||
<div *ngIf="!isLoading" class="flex-grow-1 text-truncate">
|
||||
<div class="h6 m-0 text-truncate">{{ position?.name }}</div>
|
||||
<div class="d-flex">
|
||||
<span>{{ position?.symbol | gfSymbol }}</span>
|
||||
<small class="text-muted">{{ position?.symbol | gfSymbol }}</small>
|
||||
</div>
|
||||
<div class="d-flex mt-1">
|
||||
<gf-value
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="mb-5 row">
|
||||
<div class="col">
|
||||
<h3 class="d-flex justify-content-center mb-3">About Ghostfolio</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center">About Ghostfolio</h3>
|
||||
<div class="about-container">
|
||||
<p>
|
||||
Ghostfolio is a lightweight wealth management application for
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="mb-5 row">
|
||||
<div class="col">
|
||||
<h3 class="mb-3 text-center" i18n>Privacy Policy</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Privacy Policy</h3>
|
||||
<markdown [src]="'../assets/privacy-policy.md'"></markdown>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="d-flex justify-content-center mb-3" i18n>Account</h3>
|
||||
<h3 class="mb-3 text-center" i18n>Account</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="user?.settings" class="mb-5 row">
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="d-flex justify-content-center mb-3" i18n>Accounts</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Accounts</h3>
|
||||
<div class="accounts">
|
||||
<gf-accounts-table
|
||||
[accounts]="accounts"
|
||||
@ -27,8 +27,8 @@
|
||||
class="align-items-center d-flex justify-content-center"
|
||||
color="primary"
|
||||
mat-fab
|
||||
[routerLink]="[]"
|
||||
[queryParams]="{ createDialog: true }"
|
||||
[routerLink]="[]"
|
||||
>
|
||||
<ion-icon name="add-outline" size="large"></ion-icon>
|
||||
</a>
|
||||
|
@ -13,14 +13,21 @@ const routes: Routes = [
|
||||
canActivate: [AuthGuard],
|
||||
children: [
|
||||
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
|
||||
{ path: 'jobs', component: AdminJobsComponent },
|
||||
{ path: 'market-data', component: AdminMarketDataComponent },
|
||||
{ path: 'overview', component: AdminOverviewComponent },
|
||||
{ path: 'users', component: AdminUsersComponent }
|
||||
{ path: 'jobs', component: AdminJobsComponent, title: $localize`Jobs` },
|
||||
{
|
||||
path: 'market-data',
|
||||
component: AdminMarketDataComponent,
|
||||
title: $localize`Market Data`
|
||||
},
|
||||
{
|
||||
path: 'overview',
|
||||
component: AdminOverviewComponent,
|
||||
title: $localize`Admin Control`
|
||||
},
|
||||
{ path: 'users', component: AdminUsersComponent, title: $localize`Users` }
|
||||
],
|
||||
component: AdminPageComponent,
|
||||
path: '',
|
||||
title: $localize`Admin Control`
|
||||
path: ''
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -0,0 +1,20 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { RouterModule, Routes } from '@angular/router';
|
||||
import { AuthGuard } from '@ghostfolio/client/core/auth.guard';
|
||||
|
||||
import { TheImportanceOfTrackingYourPersonalFinancesPageComponent } from './the-importance-of-tracking-your-personal-finances-page.component';
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
canActivate: [AuthGuard],
|
||||
component: TheImportanceOfTrackingYourPersonalFinancesPageComponent,
|
||||
path: '',
|
||||
title: 'The importance of tracking your personal finances'
|
||||
}
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class TheImportanceOfTrackingYourPersonalFinancesRoutingModule {}
|
@ -0,0 +1,9 @@
|
||||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
host: { class: 'page' },
|
||||
selector: 'gf-the-importance-of-tracking-your-personal-finances-page',
|
||||
styleUrls: ['./the-importance-of-tracking-your-personal-finances-page.scss'],
|
||||
templateUrl: './the-importance-of-tracking-your-personal-finances-page.html'
|
||||
})
|
||||
export class TheImportanceOfTrackingYourPersonalFinancesPageComponent {}
|
@ -0,0 +1,168 @@
|
||||
<div class="blog container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 offset-md-2">
|
||||
<article>
|
||||
<div class="mb-4 text-center">
|
||||
<h1 class="mb-1">
|
||||
The importance of tracking your personal finances
|
||||
</h1>
|
||||
<div class="mb-3 text-muted"><small>2022-12-26</small></div>
|
||||
<img
|
||||
alt="The importance of tracking your personal finances Teaser"
|
||||
class="rounded w-100"
|
||||
src="../assets/images/blog/20221226.jpg"
|
||||
title="The importance of tracking your personal finances"
|
||||
/>
|
||||
</div>
|
||||
<section class="mb-4">
|
||||
<p>
|
||||
Once again, the end of the year is peak season for making
|
||||
resolutions, whether in the area of personal fitness, relationships
|
||||
or career. For sustainable changes, it’s important to track your
|
||||
progress and celebrate even small successes. Not surprisingly, these
|
||||
same principles apply to personal finances as well.
|
||||
</p>
|
||||
<p>
|
||||
Tracking your assets is an important part of achieving your
|
||||
financial goals. By regularly reviewing and monitoring your assets,
|
||||
you can get a clear picture of your financial situation and identify
|
||||
areas where action is required to reach your financial ambitions.
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-4">
|
||||
<h2 class="h4">Understanding your net worth</h2>
|
||||
<p>
|
||||
One of the main benefits of monitoring wealth is that it helps you
|
||||
understand the value of your assets. By keeping track of your
|
||||
assets, you can see how much money you have invested, where it is
|
||||
invested, and how well it is performing. This allows you to see how
|
||||
your assets are performing over time, and you can adjust your
|
||||
strategy if necessary.
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-4">
|
||||
<h2 class="h4">Identifying opportunities</h2>
|
||||
<p>
|
||||
Tracking your wealth can also help you identify financial
|
||||
opportunities for growth and improvement. By reviewing your assets
|
||||
regularly, you may be able to identify new investment opportunities
|
||||
or strategies that can help you grow your wealth and reach your
|
||||
financial objectives faster.
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-4">
|
||||
<h2 class="h4">Managing the risk and making informed decisions</h2>
|
||||
<p>
|
||||
Monitoring your assets not only helps you understand the value of
|
||||
your assets and identify potential for growth, but also helps you
|
||||
manage your risk. By understanding the different types of your
|
||||
assets and their performance, you can make informed decisions about
|
||||
how to allocate your assets to minimize risk and maximize the
|
||||
potential return on investment.
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-4">
|
||||
<h2 class="h4">Tracking personal finances with Ghostfolio</h2>
|
||||
<p>
|
||||
In summary, monitoring your assets is an important aspect of
|
||||
achieving your financial goals. It helps you understand the value of
|
||||
your assets, identify growth opportunities and manage your risk. By
|
||||
regularly reviewing and monitoring your assets, you can make
|
||||
informed decisions about your financial strategy and work toward
|
||||
your financial success.
|
||||
</p>
|
||||
<p>
|
||||
Instead of manually recording your assets and net worth in a
|
||||
spreadsheet, you can use
|
||||
<a href="https://ghostfol.io">Ghostfolio</a>, a web-based software
|
||||
to manage your personal finances.
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-4 py-3">
|
||||
<h2 class="h4 mb-0 text-center">
|
||||
Would you like to <strong>refine</strong> your
|
||||
<strong>personal investment strategy</strong>?
|
||||
</h2>
|
||||
<p class="lead mb-2 text-center">
|
||||
Ghostfolio empowers you to keep track of your wealth.
|
||||
</p>
|
||||
<div class="text-center">
|
||||
<a color="primary" href="https://ghostfol.io" mat-flat-button>
|
||||
Get Started
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
<section class="mb-4">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">App</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Assets</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Decision</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Finance</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Fintech</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Ghostfolio</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Goal</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Investment</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Management</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Monitoring</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Net Worth</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Opportunity</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Performance</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Personal Finance</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Portfolio Tracker</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Progress</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Risk</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Software</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Spreadsheet</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Strategy</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Success</span>
|
||||
</li>
|
||||
<li class="list-inline-item">
|
||||
<span class="badge badge-light">Wealth</span>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,19 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { RouterModule } from '@angular/router';
|
||||
|
||||
import { TheImportanceOfTrackingYourPersonalFinancesRoutingModule } from './the-importance-of-tracking-your-personal-finances-page-routing.module';
|
||||
import { TheImportanceOfTrackingYourPersonalFinancesPageComponent } from './the-importance-of-tracking-your-personal-finances-page.component';
|
||||
|
||||
@NgModule({
|
||||
declarations: [TheImportanceOfTrackingYourPersonalFinancesPageComponent],
|
||||
imports: [
|
||||
CommonModule,
|
||||
MatButtonModule,
|
||||
RouterModule,
|
||||
TheImportanceOfTrackingYourPersonalFinancesRoutingModule
|
||||
],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
||||
})
|
||||
export class TheImportanceOfTrackingYourPersonalFinancesPageModule {}
|
@ -0,0 +1,3 @@
|
||||
:host {
|
||||
display: block;
|
||||
}
|
@ -1,16 +1,42 @@
|
||||
<div class="container">
|
||||
<div class="mb-5 row">
|
||||
<div class="col">
|
||||
<h3 class="mb-3 text-center" i18n>Blog</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Blog</h3>
|
||||
<mat-card class="mb-3">
|
||||
<mat-card-content>
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../en/blog/2022/12/the-importance-of-tracking-your-personal-finances"
|
||||
>
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">
|
||||
The importance of tracking your personal finances
|
||||
</div>
|
||||
<div class="d-flex text-muted">2022-12-26</div>
|
||||
</div>
|
||||
<div class="align-items-center d-flex">
|
||||
<ion-icon
|
||||
class="chevron text-muted"
|
||||
name="chevron-forward-outline"
|
||||
size="small"
|
||||
></ion-icon>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
<mat-card *ngIf="hasPermissionForSubscription" class="mb-3">
|
||||
<mat-card-content>
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex w-100"
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../en/blog/2022/11/black-friday-2022"
|
||||
>
|
||||
<div class="flex-grow-1">
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">Black Friday 2022</div>
|
||||
<div class="d-flex text-muted">2022-11-13</div>
|
||||
</div>
|
||||
@ -31,10 +57,10 @@
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex w-100"
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../en/blog/2022/10/hacktoberfest-2022"
|
||||
>
|
||||
<div class="flex-grow-1">
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">Hacktoberfest 2022</div>
|
||||
<div class="d-flex text-muted">2022-10-01</div>
|
||||
</div>
|
||||
@ -55,10 +81,10 @@
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex w-100"
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../en/blog/2022/08/500-stars-on-github"
|
||||
>
|
||||
<div class="flex-grow-1">
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">500 Stars on GitHub</div>
|
||||
<div class="d-flex text-muted">2022-08-18</div>
|
||||
</div>
|
||||
@ -79,10 +105,10 @@
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex w-100"
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../en/blog/2022/07/ghostfolio-meets-internet-identity"
|
||||
>
|
||||
<div class="flex-grow-1">
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">
|
||||
Ghostfolio meets Internet Identity
|
||||
</div>
|
||||
@ -105,10 +131,10 @@
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex w-100"
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../en/blog/2022/07/how-do-i-get-my-finances-in-order"
|
||||
>
|
||||
<div class="flex-grow-1">
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">
|
||||
How do I get my finances in order?
|
||||
</div>
|
||||
@ -131,10 +157,10 @@
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex w-100"
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../en/blog/2022/01/ghostfolio-first-months-in-open-source"
|
||||
>
|
||||
<div class="flex-grow-1">
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">
|
||||
First months in Open Source
|
||||
</div>
|
||||
@ -157,10 +183,10 @@
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex w-100"
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../en/blog/2021/07/hello-ghostfolio"
|
||||
>
|
||||
<div class="flex-grow-1">
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">Hello Ghostfolio</div>
|
||||
<div class="d-flex text-muted">2021-07-31</div>
|
||||
</div>
|
||||
@ -181,10 +207,10 @@
|
||||
<div class="container p-0">
|
||||
<div class="flex-nowrap no-gutters row">
|
||||
<a
|
||||
class="d-flex w-100"
|
||||
class="d-flex overflow-hidden w-100"
|
||||
href="../de/blog/2021/07/hallo-ghostfolio"
|
||||
>
|
||||
<div class="flex-grow-1">
|
||||
<div class="flex-grow-1 overflow-hidden">
|
||||
<div class="h6 m-0 text-truncate">Hallo Ghostfolio</div>
|
||||
<div class="d-flex text-muted">2021-07-31</div>
|
||||
</div>
|
||||
|
@ -1,7 +1,9 @@
|
||||
<div class="container">
|
||||
<div class="mb-5 row">
|
||||
<div class="col">
|
||||
<h3 class="mb-3 text-center">Frequently Asked Questions (FAQ)</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center">
|
||||
Frequently Asked Questions (FAQ)
|
||||
</h3>
|
||||
<mat-card class="mb-3">
|
||||
<mat-card-title>What is Ghostfolio?</mat-card-title>
|
||||
<mat-card-content>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="d-flex justify-content-center mb-3 text-center">Features</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center">Features</h3>
|
||||
<div class="mb-4">
|
||||
<p>
|
||||
Check out the numerous features of <strong>Ghostfolio</strong> to
|
||||
|
@ -13,14 +13,28 @@ const routes: Routes = [
|
||||
canActivate: [AuthGuard],
|
||||
children: [
|
||||
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
|
||||
{ path: 'overview', component: HomeOverviewComponent },
|
||||
{ path: 'holdings', component: HomeHoldingsComponent },
|
||||
{ path: 'summary', component: HomeSummaryComponent },
|
||||
{ path: 'market', component: HomeMarketComponent }
|
||||
{
|
||||
path: 'overview',
|
||||
component: HomeOverviewComponent
|
||||
},
|
||||
{
|
||||
path: 'holdings',
|
||||
component: HomeHoldingsComponent,
|
||||
title: $localize`Holdings`
|
||||
},
|
||||
{
|
||||
path: 'summary',
|
||||
component: HomeSummaryComponent,
|
||||
title: $localize`Summary`
|
||||
},
|
||||
{
|
||||
path: 'market',
|
||||
component: HomeMarketComponent,
|
||||
title: $localize`Markets`
|
||||
}
|
||||
],
|
||||
component: HomePageComponent,
|
||||
path: '',
|
||||
title: $localize`Overview`
|
||||
path: ''
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -256,7 +256,7 @@
|
||||
<gf-logo
|
||||
class="mr-3 mt-2 pt-1"
|
||||
size="medium"
|
||||
[hideName]="true"
|
||||
[showLabel]="false"
|
||||
></gf-logo>
|
||||
</div>
|
||||
<div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<h3 class="d-flex justify-content-center mb-3" i18n>Activities</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Activities</h3>
|
||||
<gf-activities-table
|
||||
[activities]="activities"
|
||||
[baseCurrency]="user?.settings?.baseCurrency"
|
||||
|
@ -1,7 +1,9 @@
|
||||
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
||||
import {
|
||||
ChangeDetectionStrategy,
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
ElementRef,
|
||||
Inject,
|
||||
OnDestroy,
|
||||
ViewChild
|
||||
@ -15,7 +17,7 @@ import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto';
|
||||
import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface';
|
||||
import { DataService } from '@ghostfolio/client/services/data.service';
|
||||
import { translate } from '@ghostfolio/ui/i18n';
|
||||
import { AssetClass, AssetSubClass, Type } from '@prisma/client';
|
||||
import { AssetClass, AssetSubClass, Tag, Type } from '@prisma/client';
|
||||
import { isUUID } from 'class-validator';
|
||||
import { isString } from 'lodash';
|
||||
import { EMPTY, Observable, Subject, lastValueFrom } from 'rxjs';
|
||||
@ -23,6 +25,7 @@ import {
|
||||
catchError,
|
||||
debounceTime,
|
||||
distinctUntilChanged,
|
||||
map,
|
||||
startWith,
|
||||
switchMap,
|
||||
takeUntil
|
||||
@ -38,7 +41,8 @@ import { CreateOrUpdateActivityDialogParams } from './interfaces/interfaces';
|
||||
templateUrl: 'create-or-update-activity-dialog.html'
|
||||
})
|
||||
export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
@ViewChild('autocomplete') autocomplete;
|
||||
@ViewChild('symbolAutocomplete') symbolAutocomplete;
|
||||
@ViewChild('tagInput') tagInput: ElementRef<HTMLInputElement>;
|
||||
|
||||
public activityForm: FormGroup;
|
||||
public assetClasses = Object.keys(AssetClass).map((assetClass) => {
|
||||
@ -51,8 +55,11 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
public currentMarketPrice = null;
|
||||
public filteredLookupItems: LookupItem[];
|
||||
public filteredLookupItemsObservable: Observable<LookupItem[]>;
|
||||
public filteredTagsObservable: Observable<Tag[]>;
|
||||
public isLoading = false;
|
||||
public platforms: { id: string; name: string }[];
|
||||
public separatorKeysCodes: number[] = [ENTER, COMMA];
|
||||
public tags: Tag[] = [];
|
||||
public total = 0;
|
||||
public Validators = Validators;
|
||||
|
||||
@ -72,10 +79,11 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
this.locale = this.data.user?.settings?.locale;
|
||||
this.dateAdapter.setLocale(this.locale);
|
||||
|
||||
const { currencies, platforms } = this.dataService.fetchInfo();
|
||||
const { currencies, platforms, tags } = this.dataService.fetchInfo();
|
||||
|
||||
this.currencies = currencies;
|
||||
this.platforms = platforms;
|
||||
this.tags = tags;
|
||||
|
||||
this.activityForm = this.formBuilder.group({
|
||||
accountId: [this.data.activity?.accountId, Validators.required],
|
||||
@ -185,6 +193,15 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
})
|
||||
);
|
||||
|
||||
this.filteredTagsObservable = this.activityForm.controls[
|
||||
'tags'
|
||||
].valueChanges.pipe(
|
||||
startWith(this.activityForm.controls['tags'].value),
|
||||
map((aTags: Tag[] | null) => {
|
||||
return aTags ? this.filterTags(aTags) : this.tags.slice();
|
||||
})
|
||||
);
|
||||
|
||||
this.activityForm.controls['type'].valueChanges
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((type: Type) => {
|
||||
@ -264,6 +281,16 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
return aLookupItem?.symbol ?? '';
|
||||
}
|
||||
|
||||
public onAddTag(event: MatAutocompleteSelectedEvent) {
|
||||
this.activityForm.controls['tags'].setValue([
|
||||
...(this.activityForm.controls['tags'].value ?? []),
|
||||
this.tags.find(({ id }) => {
|
||||
return id === event.option.value;
|
||||
})
|
||||
]);
|
||||
this.tagInput.nativeElement.value = '';
|
||||
}
|
||||
|
||||
public onBlurSymbol() {
|
||||
const currentLookupItem = this.filteredLookupItems.find((lookupItem) => {
|
||||
return (
|
||||
@ -283,10 +310,18 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
this.changeDetectorRef.markForCheck();
|
||||
}
|
||||
|
||||
public onCancel(): void {
|
||||
public onCancel() {
|
||||
this.dialogRef.close();
|
||||
}
|
||||
|
||||
public onRemoveTag(aTag: Tag) {
|
||||
this.activityForm.controls['tags'].setValue(
|
||||
this.activityForm.controls['tags'].value.filter(({ id }) => {
|
||||
return id !== aTag.id;
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
public onSubmit() {
|
||||
const activity: CreateOrderDto | UpdateOrderDto = {
|
||||
accountId: this.activityForm.controls['accountId'].value,
|
||||
@ -327,6 +362,16 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
|
||||
this.unsubscribeSubject.complete();
|
||||
}
|
||||
|
||||
private filterTags(aTags: Tag[]) {
|
||||
const tagIds = aTags.map((tag) => {
|
||||
return tag.id;
|
||||
});
|
||||
|
||||
return this.tags.filter((tag) => {
|
||||
return !tagIds.includes(tag.id);
|
||||
});
|
||||
}
|
||||
|
||||
private updateSymbol(symbol: string) {
|
||||
this.isLoading = true;
|
||||
|
||||
|
@ -11,10 +11,10 @@
|
||||
<mat-form-field appearance="outline" class="w-100">
|
||||
<mat-label i18n>Type</mat-label>
|
||||
<mat-select formControlName="type">
|
||||
<mat-option i18n value="BUY">BUY</mat-option>
|
||||
<mat-option i18n value="DIVIDEND">DIVIDEND</mat-option>
|
||||
<mat-option i18n value="ITEM">ITEM</mat-option>
|
||||
<mat-option i18n value="SELL">SELL</mat-option>
|
||||
<mat-option i18n value="BUY">Buy</mat-option>
|
||||
<mat-option i18n value="DIVIDEND">Dividend</mat-option>
|
||||
<mat-option i18n value="ITEM">Item</mat-option>
|
||||
<mat-option i18n value="SELL">Sell</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
@ -41,11 +41,11 @@
|
||||
autocorrect="off"
|
||||
formControlName="searchSymbol"
|
||||
matInput
|
||||
[matAutocomplete]="autocomplete"
|
||||
[matAutocomplete]="symbolAutocomplete"
|
||||
(blur)="onBlurSymbol()"
|
||||
/>
|
||||
<mat-autocomplete
|
||||
#autocomplete="matAutocomplete"
|
||||
#symbolAutocomplete="matAutocomplete"
|
||||
[displayWith]="displayFn"
|
||||
(optionSelected)="onUpdateSymbol($event)"
|
||||
>
|
||||
@ -109,7 +109,15 @@
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field appearance="outline" class="w-100">
|
||||
<mat-label i18n>Unit Price</mat-label>
|
||||
<mat-label
|
||||
><ng-container [ngSwitch]="activityForm.controls['type']?.value">
|
||||
<ng-container *ngSwitchCase="'DIVIDEND'" i18n
|
||||
>Dividend</ng-container
|
||||
>
|
||||
<ng-container *ngSwitchCase="'ITEM'" i18n>Value</ng-container>
|
||||
<ng-container *ngSwitchDefault i18n>Unit Price</ng-container>
|
||||
</ng-container>
|
||||
</mat-label>
|
||||
<input formControlName="unitPrice" matInput type="number" />
|
||||
<span class="ml-2" matSuffix
|
||||
>{{ activityForm.controls['currency'].value }}</span
|
||||
@ -194,16 +202,38 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div
|
||||
[ngClass]="{ 'd-none': activityForm.controls['tags']?.value?.length <= 0 }"
|
||||
>
|
||||
<div [ngClass]="{ 'd-none': tags?.length <= 0 }">
|
||||
<mat-form-field appearance="outline" class="w-100">
|
||||
<mat-label i18n>Tags</mat-label>
|
||||
<mat-chip-list>
|
||||
<mat-chip *ngFor="let tag of activityForm.controls['tags']?.value">
|
||||
<mat-chip-list #tagsChipList>
|
||||
<mat-chip
|
||||
*ngFor="let tag of activityForm.controls['tags']?.value"
|
||||
matChipRemove
|
||||
[removable]="true"
|
||||
(removed)="onRemoveTag(tag)"
|
||||
>
|
||||
{{ tag.name }}
|
||||
<ion-icon class="ml-2" matPrefix name="close-outline"></ion-icon>
|
||||
</mat-chip>
|
||||
<input
|
||||
#tagInput
|
||||
name="close-outline"
|
||||
[matAutocomplete]="autocompleteTags"
|
||||
[matChipInputFor]="tagsChipList"
|
||||
[matChipInputSeparatorKeyCodes]="separatorKeysCodes"
|
||||
/>
|
||||
</mat-chip-list>
|
||||
<mat-autocomplete
|
||||
#autocompleteTags="matAutocomplete"
|
||||
(optionSelected)="onAddTag($event)"
|
||||
>
|
||||
<mat-option
|
||||
*ngFor="let tag of filteredTagsObservable | async"
|
||||
[value]="tag.id"
|
||||
>
|
||||
{{ tag.name }}
|
||||
</mat-option>
|
||||
</mat-autocomplete>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -20,6 +20,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
.mat-chip {
|
||||
cursor: pointer;
|
||||
min-height: 1.5rem !important;
|
||||
}
|
||||
|
||||
.mat-form-field-appearance-outline {
|
||||
::ng-deep {
|
||||
.mat-form-field-suffix {
|
||||
|
@ -7,6 +7,7 @@ import {
|
||||
} from '@angular/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
|
||||
import { ImportActivitiesService } from '@ghostfolio/client/services/import-activities.service';
|
||||
import { isArray } from 'lodash';
|
||||
import { Subject } from 'rxjs';
|
||||
@ -20,8 +21,11 @@ import { ImportActivitiesDialogParams } from './interfaces/interfaces';
|
||||
templateUrl: 'import-activities-dialog.html'
|
||||
})
|
||||
export class ImportActivitiesDialog implements OnDestroy {
|
||||
public activities: Activity[] = [];
|
||||
public details: any[] = [];
|
||||
public errorMessages: string[] = [];
|
||||
public isFileSelected = false;
|
||||
public selectedActivities: Activity[] = [];
|
||||
|
||||
private unsubscribeSubject = new Subject<void>();
|
||||
|
||||
@ -39,13 +43,47 @@ export class ImportActivitiesDialog implements OnDestroy {
|
||||
this.dialogRef.close();
|
||||
}
|
||||
|
||||
public onImport() {
|
||||
public async onImportActivities() {
|
||||
try {
|
||||
this.snackBar.open('⏳ ' + $localize`Importing data...`);
|
||||
|
||||
await this.importActivitiesService.importSelectedActivities(
|
||||
this.selectedActivities
|
||||
);
|
||||
|
||||
this.snackBar.open(
|
||||
'✅ ' + $localize`Import has been completed`,
|
||||
undefined,
|
||||
{
|
||||
duration: 3000
|
||||
}
|
||||
);
|
||||
} catch (error) {
|
||||
this.snackBar.open(
|
||||
$localize`Oops! Something went wrong.` +
|
||||
' ' +
|
||||
$localize`Please try again later.`,
|
||||
$localize`Okay`,
|
||||
{ duration: 3000 }
|
||||
);
|
||||
} finally {
|
||||
this.dialogRef.close();
|
||||
}
|
||||
}
|
||||
|
||||
public onReset() {
|
||||
this.details = [];
|
||||
this.errorMessages = [];
|
||||
this.isFileSelected = false;
|
||||
}
|
||||
|
||||
public onSelectFile() {
|
||||
const input = document.createElement('input');
|
||||
input.accept = 'application/JSON, .csv';
|
||||
input.type = 'file';
|
||||
|
||||
input.onchange = (event) => {
|
||||
this.snackBar.open('⏳ ' + $localize`Importing data...`);
|
||||
this.snackBar.open('⏳ ' + $localize`Validating data...`);
|
||||
|
||||
// Getting the file reference
|
||||
const file = (event.target as HTMLInputElement).files[0];
|
||||
@ -80,11 +118,10 @@ export class ImportActivitiesDialog implements OnDestroy {
|
||||
}
|
||||
|
||||
try {
|
||||
await this.importActivitiesService.importJson({
|
||||
content: content.activities
|
||||
this.activities = await this.importActivitiesService.importJson({
|
||||
content: content.activities,
|
||||
isDryRun: true
|
||||
});
|
||||
|
||||
this.handleImportSuccess();
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
this.handleImportError({ error, activities: content.activities });
|
||||
@ -93,12 +130,11 @@ export class ImportActivitiesDialog implements OnDestroy {
|
||||
return;
|
||||
} else if (file.name.endsWith('.csv')) {
|
||||
try {
|
||||
await this.importActivitiesService.importCsv({
|
||||
this.activities = await this.importActivitiesService.importCsv({
|
||||
fileContent,
|
||||
isDryRun: true,
|
||||
userAccounts: this.data.user.accounts
|
||||
});
|
||||
|
||||
this.handleImportSuccess();
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
this.handleImportError({
|
||||
@ -119,6 +155,10 @@ export class ImportActivitiesDialog implements OnDestroy {
|
||||
activities: [],
|
||||
error: { error: { message: ['Unexpected format'] } }
|
||||
});
|
||||
} finally {
|
||||
this.isFileSelected = true;
|
||||
this.snackBar.dismiss();
|
||||
this.changeDetectorRef.markForCheck();
|
||||
}
|
||||
};
|
||||
};
|
||||
@ -126,9 +166,8 @@ export class ImportActivitiesDialog implements OnDestroy {
|
||||
input.click();
|
||||
}
|
||||
|
||||
public onReset() {
|
||||
this.details = [];
|
||||
this.errorMessages = [];
|
||||
public updateSelection(data: Activity[]) {
|
||||
this.selectedActivities = data;
|
||||
}
|
||||
|
||||
public ngOnDestroy() {
|
||||
@ -143,8 +182,6 @@ export class ImportActivitiesDialog implements OnDestroy {
|
||||
activities: any[];
|
||||
error: any;
|
||||
}) {
|
||||
this.snackBar.dismiss();
|
||||
|
||||
this.errorMessages = error?.error?.message;
|
||||
|
||||
for (const message of this.errorMessages) {
|
||||
@ -161,16 +198,4 @@ export class ImportActivitiesDialog implements OnDestroy {
|
||||
|
||||
this.changeDetectorRef.markForCheck();
|
||||
}
|
||||
|
||||
private handleImportSuccess() {
|
||||
this.snackBar.open(
|
||||
'✅ ' + $localize`Import has been completed`,
|
||||
undefined,
|
||||
{
|
||||
duration: 3000
|
||||
}
|
||||
);
|
||||
|
||||
this.dialogRef.close();
|
||||
}
|
||||
}
|
||||
|
@ -6,13 +6,13 @@
|
||||
></gf-dialog-header>
|
||||
|
||||
<div class="flex-grow-1" mat-dialog-content>
|
||||
<ng-container *ngIf="errorMessages.length === 0">
|
||||
<ng-container *ngIf="!isFileSelected">
|
||||
<div class="d-flex justify-content-center flex-column">
|
||||
<button
|
||||
class="py-3"
|
||||
color="primary"
|
||||
mat-stroked-button
|
||||
(click)="onImport()"
|
||||
(click)="onSelectFile()"
|
||||
>
|
||||
<ion-icon class="mr-2" name="cloud-upload-outline"></ion-icon>
|
||||
<span i18n>Choose File</span>
|
||||
@ -33,37 +33,68 @@
|
||||
</p>
|
||||
</div>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="errorMessages.length > 0">
|
||||
<mat-accordion displayMode="flat">
|
||||
<mat-expansion-panel
|
||||
*ngFor="let message of errorMessages; let i = index"
|
||||
[disabled]="!details[i]"
|
||||
>
|
||||
<mat-expansion-panel-header class="pl-1">
|
||||
<mat-panel-title>
|
||||
<div class="d-flex">
|
||||
<div class="align-items-center d-flex mr-2">
|
||||
<ion-icon name="warning-outline"></ion-icon>
|
||||
<ng-container *ngIf="isFileSelected">
|
||||
<ng-container *ngIf="errorMessages.length === 0; else errorMessage">
|
||||
<gf-activities-table
|
||||
[activities]="activities"
|
||||
[baseCurrency]="data?.user?.settings?.baseCurrency"
|
||||
[deviceType]="data?.deviceType"
|
||||
[hasPermissionToCreateActivity]="false"
|
||||
[hasPermissionToExportActivities]="false"
|
||||
[hasPermissionToFilter]="false"
|
||||
[hasPermissionToImportActivities]="false"
|
||||
[hasPermissionToOpenDetails]="false"
|
||||
[locale]="data?.user?.settings?.locale"
|
||||
[showActions]="false"
|
||||
[showCheckbox]="true"
|
||||
[showSymbolColumn]="false"
|
||||
(selectedActivities)="updateSelection($event)"
|
||||
></gf-activities-table>
|
||||
</ng-container>
|
||||
<ng-template #errorMessage>
|
||||
<mat-accordion displayMode="flat">
|
||||
<mat-expansion-panel
|
||||
*ngFor="let message of errorMessages; let i = index"
|
||||
[disabled]="!details[i]"
|
||||
>
|
||||
<mat-expansion-panel-header class="pl-1">
|
||||
<mat-panel-title>
|
||||
<div class="d-flex">
|
||||
<div class="align-items-center d-flex mr-2">
|
||||
<ion-icon name="warning-outline"></ion-icon>
|
||||
</div>
|
||||
<div>{{ message }}</div>
|
||||
</div>
|
||||
<div>{{ message }}</div>
|
||||
</div>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<pre
|
||||
*ngIf="details[i]"
|
||||
class="m-0"
|
||||
><code>{{ details[i] | json }}</code></pre>
|
||||
</mat-expansion-panel>
|
||||
</mat-accordion>
|
||||
<div class="mt-2">
|
||||
<button mat-button (click)="onReset()">
|
||||
<ion-icon class="mr-2" name="arrow-back-outline"></ion-icon>
|
||||
<span i18n>Back</span>
|
||||
</button>
|
||||
</div>
|
||||
</mat-panel-title>
|
||||
</mat-expansion-panel-header>
|
||||
<pre
|
||||
*ngIf="details[i]"
|
||||
class="m-0"
|
||||
><code>{{ details[i] | json }}</code></pre>
|
||||
</mat-expansion-panel>
|
||||
</mat-accordion>
|
||||
<div class="mt-2">
|
||||
<button mat-button (click)="onReset()">
|
||||
<ion-icon class="mr-2" name="arrow-back-outline"></ion-icon>
|
||||
<span i18n>Back</span>
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-container>
|
||||
</div>
|
||||
|
||||
<div *ngIf="isFileSelected" class="justify-content-end" mat-dialog-actions>
|
||||
<button i18n mat-button (click)="onCancel()">Cancel</button>
|
||||
<button
|
||||
color="primary"
|
||||
mat-flat-button
|
||||
[disabled]="!selectedActivities?.length"
|
||||
(click)="onImportActivities()"
|
||||
>
|
||||
<ng-container i18n>Import</ng-container>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<gf-dialog-footer
|
||||
mat-dialog-actions
|
||||
[deviceType]="data.deviceType"
|
||||
|
@ -5,6 +5,7 @@ import { MatDialogModule } from '@angular/material/dialog';
|
||||
import { MatExpansionModule } from '@angular/material/expansion';
|
||||
import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-footer/dialog-footer.module';
|
||||
import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module';
|
||||
import { GfActivitiesTableModule } from '@ghostfolio/ui/activities-table/activities-table.module';
|
||||
|
||||
import { ImportActivitiesDialog } from './import-activities-dialog.component';
|
||||
|
||||
@ -12,6 +13,7 @@ import { ImportActivitiesDialog } from './import-activities-dialog.component';
|
||||
declarations: [ImportActivitiesDialog],
|
||||
imports: [
|
||||
CommonModule,
|
||||
GfActivitiesTableModule,
|
||||
GfDialogFooterModule,
|
||||
GfDialogHeaderModule,
|
||||
MatButtonModule,
|
||||
|
@ -22,7 +22,7 @@ import { Market, ToggleOption } from '@ghostfolio/common/types';
|
||||
import { translate } from '@ghostfolio/ui/i18n';
|
||||
import { Account, AssetClass, DataSource } from '@prisma/client';
|
||||
import { DeviceDetectorService } from 'ngx-device-detector';
|
||||
import { Subject, Subscription } from 'rxjs';
|
||||
import { Subject } from 'rxjs';
|
||||
import { distinctUntilChanged, switchMap, takeUntil } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
@ -71,7 +71,6 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
|
||||
| 'value'
|
||||
>;
|
||||
};
|
||||
public routeQueryParams: Subscription;
|
||||
public sectors: {
|
||||
[name: string]: { name: string; value: number };
|
||||
};
|
||||
@ -98,7 +97,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit {
|
||||
private router: Router,
|
||||
private userService: UserService
|
||||
) {
|
||||
this.routeQueryParams = route.queryParams
|
||||
route.queryParams
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((params) => {
|
||||
if (params['accountId'] && params['accountDetailDialog']) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="d-flex justify-content-center mb-3" i18n>Allocations</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Allocations</h3>
|
||||
<gf-activities-filter
|
||||
[allFilters]="allFilters"
|
||||
[isLoading]="isLoading"
|
||||
|
@ -1,21 +1,28 @@
|
||||
import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { PositionDetailDialogParams } from '@ghostfolio/client/components/position/position-detail-dialog/interfaces/interfaces';
|
||||
import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component';
|
||||
import { ToggleComponent } from '@ghostfolio/client/components/toggle/toggle.component';
|
||||
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 {
|
||||
Filter,
|
||||
HistoricalDataItem,
|
||||
Position,
|
||||
User
|
||||
} from '@ghostfolio/common/interfaces';
|
||||
import { InvestmentItem } from '@ghostfolio/common/interfaces/investment-item.interface';
|
||||
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
|
||||
import { DateRange, GroupBy, ToggleOption } from '@ghostfolio/common/types';
|
||||
import { SymbolProfile } from '@prisma/client';
|
||||
import { translate } from '@ghostfolio/ui/i18n';
|
||||
import { AssetClass, DataSource, SymbolProfile } from '@prisma/client';
|
||||
import { differenceInDays } from 'date-fns';
|
||||
import { sortBy } from 'lodash';
|
||||
import { DeviceDetectorService } from 'ngx-device-detector';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
import { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
host: { class: 'page' },
|
||||
@ -24,6 +31,8 @@ import { takeUntil } from 'rxjs/operators';
|
||||
templateUrl: './analysis-page.html'
|
||||
})
|
||||
export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
public activeFilters: Filter[] = [];
|
||||
public allFilters: Filter[];
|
||||
public benchmarkDataItems: HistoricalDataItem[] = [];
|
||||
public benchmarks: Partial<SymbolProfile>[];
|
||||
public bottom3: Position[];
|
||||
@ -32,6 +41,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
public deviceType: string;
|
||||
public dividendsByMonth: InvestmentItem[];
|
||||
public dividendTimelineDataLabel = $localize`Dividend`;
|
||||
public filters$ = new Subject<Filter[]>();
|
||||
public firstOrderDate: Date;
|
||||
public hasImpersonationId: boolean;
|
||||
public investments: InvestmentItem[];
|
||||
@ -45,6 +55,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
];
|
||||
public performanceDataItems: HistoricalDataItem[];
|
||||
public performanceDataItemsInPercentage: HistoricalDataItem[];
|
||||
public placeholder = '';
|
||||
public portfolioEvolutionDataLabel = $localize`Deposit`;
|
||||
public top3: Position[];
|
||||
public user: User;
|
||||
@ -54,12 +65,30 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
public constructor(
|
||||
private changeDetectorRef: ChangeDetectorRef,
|
||||
private dataService: DataService,
|
||||
private dialog: MatDialog,
|
||||
private deviceService: DeviceDetectorService,
|
||||
private impersonationStorageService: ImpersonationStorageService,
|
||||
private route: ActivatedRoute,
|
||||
private router: Router,
|
||||
private userService: UserService
|
||||
) {
|
||||
const { benchmarks } = this.dataService.fetchInfo();
|
||||
this.benchmarks = benchmarks;
|
||||
|
||||
route.queryParams
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((params) => {
|
||||
if (
|
||||
params['dataSource'] &&
|
||||
params['positionDetailDialog'] &&
|
||||
params['symbol']
|
||||
) {
|
||||
this.openPositionDialog({
|
||||
dataSource: params['dataSource'],
|
||||
symbol: params['symbol']
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public ngOnInit() {
|
||||
@ -72,12 +101,63 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
this.hasImpersonationId = !!aId;
|
||||
});
|
||||
|
||||
this.filters$
|
||||
.pipe(
|
||||
distinctUntilChanged(),
|
||||
map((filters) => {
|
||||
this.activeFilters = filters;
|
||||
this.placeholder =
|
||||
this.activeFilters.length <= 0
|
||||
? $localize`Filter by account or tag...`
|
||||
: '';
|
||||
|
||||
this.update();
|
||||
}),
|
||||
takeUntil(this.unsubscribeSubject)
|
||||
)
|
||||
.subscribe(() => {});
|
||||
|
||||
this.userService.stateChanged
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((state) => {
|
||||
if (state?.user) {
|
||||
this.user = state.user;
|
||||
|
||||
const accountFilters: Filter[] = this.user.accounts
|
||||
.filter(({ accountType }) => {
|
||||
return accountType === 'SECURITIES';
|
||||
})
|
||||
.map(({ id, name }) => {
|
||||
return {
|
||||
id,
|
||||
label: name,
|
||||
type: 'ACCOUNT'
|
||||
};
|
||||
});
|
||||
|
||||
const assetClassFilters: Filter[] = [];
|
||||
for (const assetClass of Object.keys(AssetClass)) {
|
||||
assetClassFilters.push({
|
||||
id: assetClass,
|
||||
label: translate(assetClass),
|
||||
type: 'ASSET_CLASS'
|
||||
});
|
||||
}
|
||||
|
||||
const tagFilters: Filter[] = this.user.tags.map(({ id, name }) => {
|
||||
return {
|
||||
id,
|
||||
label: name,
|
||||
type: 'TAG'
|
||||
};
|
||||
});
|
||||
|
||||
this.allFilters = [
|
||||
...accountFilters,
|
||||
...assetClassFilters,
|
||||
...tagFilters
|
||||
];
|
||||
|
||||
this.update();
|
||||
}
|
||||
});
|
||||
@ -128,12 +208,54 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
this.unsubscribeSubject.complete();
|
||||
}
|
||||
|
||||
private openPositionDialog({
|
||||
dataSource,
|
||||
symbol
|
||||
}: {
|
||||
dataSource: DataSource;
|
||||
symbol: string;
|
||||
}) {
|
||||
this.userService
|
||||
.get()
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((user) => {
|
||||
this.user = user;
|
||||
|
||||
const dialogRef = this.dialog.open(PositionDetailDialog, {
|
||||
autoFocus: false,
|
||||
data: <PositionDetailDialogParams>{
|
||||
dataSource,
|
||||
symbol,
|
||||
baseCurrency: this.user?.settings?.baseCurrency,
|
||||
colorScheme: this.user?.settings?.colorScheme,
|
||||
deviceType: this.deviceType,
|
||||
hasImpersonationId: this.hasImpersonationId,
|
||||
hasPermissionToReportDataGlitch: hasPermission(
|
||||
this.user?.permissions,
|
||||
permissions.reportDataGlitch
|
||||
),
|
||||
locale: this.user?.settings?.locale
|
||||
},
|
||||
height: this.deviceType === 'mobile' ? '97.5vh' : '80vh',
|
||||
width: this.deviceType === 'mobile' ? '100vw' : '50rem'
|
||||
});
|
||||
|
||||
dialogRef
|
||||
.afterClosed()
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe(() => {
|
||||
this.router.navigate(['.'], { relativeTo: this.route });
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private update() {
|
||||
this.isLoadingBenchmarkComparator = true;
|
||||
this.isLoadingInvestmentChart = true;
|
||||
|
||||
this.dataService
|
||||
.fetchPortfolioPerformance({
|
||||
filters: this.activeFilters,
|
||||
range: this.user?.settings?.dateRange
|
||||
})
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
@ -171,6 +293,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
|
||||
this.dataService
|
||||
.fetchDividends({
|
||||
filters: this.activeFilters,
|
||||
groupBy: 'month',
|
||||
range: this.user?.settings?.dateRange
|
||||
})
|
||||
@ -183,6 +306,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
|
||||
this.dataService
|
||||
.fetchInvestments({
|
||||
filters: this.activeFilters,
|
||||
groupBy: 'month',
|
||||
range: this.user?.settings?.dateRange
|
||||
})
|
||||
@ -194,7 +318,10 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
|
||||
});
|
||||
|
||||
this.dataService
|
||||
.fetchPositions({ range: this.user?.settings?.dateRange })
|
||||
.fetchPositions({
|
||||
filters: this.activeFilters,
|
||||
range: this.user?.settings?.dateRange
|
||||
})
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe(({ positions }) => {
|
||||
const positionsSorted = sortBy(
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h3 class="d-flex justify-content-center" i18n>Analysis</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Analysis</h3>
|
||||
<div *ngIf="user?.settings?.viewMode !== 'ZEN'" class="my-4 text-center">
|
||||
<gf-toggle
|
||||
[defaultValue]="user?.settings?.dateRange"
|
||||
@ -8,6 +8,12 @@
|
||||
(change)="onChangeDateRange($event.value)"
|
||||
></gf-toggle>
|
||||
</div>
|
||||
<gf-activities-filter
|
||||
[allFilters]="allFilters"
|
||||
[isLoading]="isLoadingBenchmarkComparator || isLoadingInvestmentChart"
|
||||
[placeholder]="placeholder"
|
||||
(valueChanged)="filters$.next($event)"
|
||||
></gf-activities-filter>
|
||||
<div class="mb-5 row">
|
||||
<div class="col-lg">
|
||||
<gf-benchmark-comparator
|
||||
@ -35,20 +41,30 @@
|
||||
>
|
||||
</mat-card-header>
|
||||
<mat-card-content>
|
||||
<div *ngFor="let position of top3; let i = index" class="d-flex py-1">
|
||||
<div class="flex-grow-1 mr-2 text-truncate">
|
||||
{{ i + 1 }}. {{ position.name }}
|
||||
</div>
|
||||
<div class="d-flex justify-content-end">
|
||||
<gf-value
|
||||
class="justify-content-end"
|
||||
position="end"
|
||||
[colorizeSign]="true"
|
||||
[isPercent]="true"
|
||||
[locale]="user?.settings?.locale"
|
||||
[value]="position.netPerformancePercentage"
|
||||
></gf-value>
|
||||
</div>
|
||||
<div *ngFor="let position of top3; let i = index" class="py-1">
|
||||
<a
|
||||
class="d-flex"
|
||||
[queryParams]="{
|
||||
dataSource: position.dataSource,
|
||||
positionDetailDialog: true,
|
||||
symbol: position.symbol
|
||||
}"
|
||||
[routerLink]="[]"
|
||||
>
|
||||
<div class="flex-grow-1 mr-2 text-truncate">
|
||||
{{ i + 1 }}. {{ position.name }}
|
||||
</div>
|
||||
<div class="d-flex justify-content-end">
|
||||
<gf-value
|
||||
class="justify-content-end"
|
||||
position="end"
|
||||
[colorizeSign]="true"
|
||||
[isPercent]="true"
|
||||
[locale]="user?.settings?.locale"
|
||||
[value]="position.netPerformancePercentage"
|
||||
></gf-value>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<ngx-skeleton-loader
|
||||
@ -71,23 +87,30 @@
|
||||
>
|
||||
</mat-card-header>
|
||||
<mat-card-content>
|
||||
<div
|
||||
*ngFor="let position of bottom3; let i = index"
|
||||
class="d-flex py-1"
|
||||
>
|
||||
<div class="flex-grow-1 mr-2 text-truncate">
|
||||
{{ i + 1 }}. {{ position.name }}
|
||||
</div>
|
||||
<div class="d-flex justify-content-end">
|
||||
<gf-value
|
||||
class="justify-content-end"
|
||||
position="end"
|
||||
[colorizeSign]="true"
|
||||
[isPercent]="true"
|
||||
[locale]="user?.settings?.locale"
|
||||
[value]="position.netPerformancePercentage"
|
||||
></gf-value>
|
||||
</div>
|
||||
<div *ngFor="let position of bottom3; let i = index" class="py-1">
|
||||
<a
|
||||
class="d-flex"
|
||||
[queryParams]="{
|
||||
dataSource: position.dataSource,
|
||||
positionDetailDialog: true,
|
||||
symbol: position.symbol
|
||||
}"
|
||||
[routerLink]="[]"
|
||||
>
|
||||
<div class="flex-grow-1 mr-2 text-truncate">
|
||||
{{ i + 1 }}. {{ position.name }}
|
||||
</div>
|
||||
<div class="d-flex justify-content-end">
|
||||
<gf-value
|
||||
class="justify-content-end"
|
||||
position="end"
|
||||
[colorizeSign]="true"
|
||||
[isPercent]="true"
|
||||
[locale]="user?.settings?.locale"
|
||||
[value]="position.netPerformancePercentage"
|
||||
></gf-value>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<ngx-skeleton-loader
|
||||
|
@ -4,6 +4,7 @@ import { MatCardModule } from '@angular/material/card';
|
||||
import { GfBenchmarkComparatorModule } from '@ghostfolio/client/components/benchmark-comparator/benchmark-comparator.module';
|
||||
import { GfInvestmentChartModule } from '@ghostfolio/client/components/investment-chart/investment-chart.module';
|
||||
import { GfToggleModule } from '@ghostfolio/client/components/toggle/toggle.module';
|
||||
import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module';
|
||||
import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator';
|
||||
import { GfValueModule } from '@ghostfolio/ui/value';
|
||||
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
||||
@ -16,6 +17,7 @@ import { AnalysisPageComponent } from './analysis-page.component';
|
||||
imports: [
|
||||
AnalysisPageRoutingModule,
|
||||
CommonModule,
|
||||
GfActivitiesFilterModule,
|
||||
GfBenchmarkComparatorModule,
|
||||
GfInvestmentChartModule,
|
||||
GfPremiumIndicatorModule,
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row mb-5">
|
||||
<div class="col-lg">
|
||||
<h3 class="d-flex justify-content-center mb-3" i18n>FIRE</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>FIRE</h3>
|
||||
<div>
|
||||
<h4 class="align-items-center d-flex mb-3">
|
||||
<span i18n>Calculator</span
|
||||
@ -83,9 +83,7 @@
|
||||
<div class="container mt-5">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="align-items-center d-flex justify-content-center mb-3">
|
||||
X-ray
|
||||
</h3>
|
||||
<h3 class="mb-3 text-center">X-ray</h3>
|
||||
<p class="mb-4">
|
||||
Ghostfolio X-ray uses static analysis to identify potential issues and
|
||||
risks in your portfolio.
|
||||
|
@ -16,7 +16,7 @@ import { hasPermission, permissions } from '@ghostfolio/common/permissions';
|
||||
import { translate } from '@ghostfolio/ui/i18n';
|
||||
import { AssetClass, DataSource } from '@prisma/client';
|
||||
import { DeviceDetectorService } from 'ngx-device-detector';
|
||||
import { Subject, Subscription } from 'rxjs';
|
||||
import { Subject } from 'rxjs';
|
||||
import { distinctUntilChanged, switchMap, takeUntil } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
@ -36,7 +36,6 @@ export class HoldingsPageComponent implements OnDestroy, OnInit {
|
||||
public placeholder = '';
|
||||
public portfolioDetails: PortfolioDetails;
|
||||
public positionsArray: PortfolioPosition[];
|
||||
public routeQueryParams: Subscription;
|
||||
public user: User;
|
||||
|
||||
private unsubscribeSubject = new Subject<void>();
|
||||
@ -51,7 +50,7 @@ export class HoldingsPageComponent implements OnDestroy, OnInit {
|
||||
private router: Router,
|
||||
private userService: UserService
|
||||
) {
|
||||
this.routeQueryParams = route.queryParams
|
||||
route.queryParams
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((params) => {
|
||||
if (
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="d-flex justify-content-center mb-3" i18n>Holdings</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center" i18n>Holdings</h3>
|
||||
<gf-activities-filter
|
||||
[allFilters]="allFilters"
|
||||
[isLoading]="isLoading"
|
||||
|
@ -1,8 +1,8 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { GfHoldingsTableModule } from '@ghostfolio/ui/holdings-table/holdings-table.module';
|
||||
import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module';
|
||||
import { GfHoldingsTableModule } from '@ghostfolio/ui/holdings-table/holdings-table.module';
|
||||
|
||||
import { HoldingsPageRoutingModule } from './holdings-page-routing.module';
|
||||
import { HoldingsPageComponent } from './holdings-page.component';
|
||||
|
@ -1,9 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="d-flex justify-content-center mb-3 text-center">
|
||||
Pricing Plans
|
||||
</h3>
|
||||
<h3 class="d-none d-sm-block mb-3 text-center">Pricing Plans</h3>
|
||||
<div class="mb-4">
|
||||
<p>
|
||||
Our official Ghostfolio Premium cloud offering is the easiest way to
|
||||
@ -18,7 +16,9 @@
|
||||
>contact us</a
|
||||
>
|
||||
to use our referral link and get a Ghostfolio Premium membership for
|
||||
one year.
|
||||
one year. Looking for a student discount? Request it
|
||||
<a href="mailto:hi@ghostfol.io?Subject=Student Discount">here</a> with
|
||||
your university email address.
|
||||
</p>
|
||||
<p>
|
||||
If you prefer to run Ghostfolio on your own infrastructure, please
|
||||
|
@ -8,8 +8,7 @@ const routes: Routes = [
|
||||
{
|
||||
canActivate: [AuthGuard],
|
||||
component: PublicPageComponent,
|
||||
path: ':id',
|
||||
title: $localize`Portfolio`
|
||||
path: ':id'
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -2,8 +2,8 @@ import { CommonModule } from '@angular/common';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatCardModule } from '@angular/material/card';
|
||||
import { GfHoldingsTableModule } from '@ghostfolio/ui/holdings-table/holdings-table.module';
|
||||
import { GfWorldMapChartModule } from '@ghostfolio/client/components/world-map-chart/world-map-chart.module';
|
||||
import { GfHoldingsTableModule } from '@ghostfolio/ui/holdings-table/holdings-table.module';
|
||||
import { GfPortfolioProportionChartModule } from '@ghostfolio/ui/portfolio-proportion-chart/portfolio-proportion-chart.module';
|
||||
import { GfValueModule } from '@ghostfolio/ui/value';
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
||||
<ng-container *ngIf="hasPermissionForSocialLogin">
|
||||
<div class="my-3 text-muted" i18n>or</div>
|
||||
<button
|
||||
class="d-block mb-2"
|
||||
class="d-block mb-2 px-4 rounded-pill"
|
||||
mat-stroked-button
|
||||
(click)="onLoginWithInternetIdentity()"
|
||||
>
|
||||
@ -40,7 +40,10 @@
|
||||
/>
|
||||
<span i18n>Continue with Internet Identity</span>
|
||||
</button>
|
||||
<a class="d-block" href="../api/v1/auth/google" mat-stroked-button
|
||||
<a
|
||||
class="d-block px-4 rounded-pill"
|
||||
href="../api/v1/auth/google"
|
||||
mat-stroked-button
|
||||
><img
|
||||
class="mr-2"
|
||||
src="../assets/icons/google.svg"
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1 class="d-flex h3 justify-content-center mb-3" i18n>Resources</h1>
|
||||
<h1 class="d-none d-sm-block mb-3 text-center" i18n>Resources</h1>
|
||||
<h2 class="h4 mb-3">Guides</h2>
|
||||
<div class="mb-5">
|
||||
<div class="mb-4 media">
|
||||
|
@ -102,14 +102,20 @@ export class DataService {
|
||||
}
|
||||
|
||||
public fetchDividends({
|
||||
filters,
|
||||
groupBy = 'month',
|
||||
range
|
||||
}: {
|
||||
filters?: Filter[];
|
||||
groupBy?: GroupBy;
|
||||
range: DateRange;
|
||||
}) {
|
||||
let params = this.buildFiltersAsQueryParams({ filters });
|
||||
params = params.append('groupBy', groupBy);
|
||||
params = params.append('range', range);
|
||||
|
||||
return this.http.get<PortfolioDividends>('/api/v1/portfolio/dividends', {
|
||||
params: { groupBy, range }
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
@ -191,15 +197,21 @@ export class DataService {
|
||||
}
|
||||
|
||||
public fetchInvestments({
|
||||
filters,
|
||||
groupBy = 'month',
|
||||
range
|
||||
}: {
|
||||
filters?: Filter[];
|
||||
groupBy?: GroupBy;
|
||||
range: DateRange;
|
||||
}) {
|
||||
let params = this.buildFiltersAsQueryParams({ filters });
|
||||
params = params.append('groupBy', groupBy);
|
||||
params = params.append('range', range);
|
||||
|
||||
return this.http.get<PortfolioInvestments>(
|
||||
'/api/v1/portfolio/investments',
|
||||
{ params: { groupBy, range } }
|
||||
{ params }
|
||||
);
|
||||
}
|
||||
|
||||
@ -224,12 +236,17 @@ export class DataService {
|
||||
}
|
||||
|
||||
public fetchPositions({
|
||||
filters,
|
||||
range
|
||||
}: {
|
||||
filters?: Filter[];
|
||||
range: DateRange;
|
||||
}): Observable<PortfolioPositions> {
|
||||
let params = this.buildFiltersAsQueryParams({ filters });
|
||||
params = params.append('range', range);
|
||||
|
||||
return this.http.get<PortfolioPositions>('/api/v1/portfolio/positions', {
|
||||
params: { range }
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
@ -284,12 +301,19 @@ export class DataService {
|
||||
}
|
||||
|
||||
public fetchPortfolioPerformance({
|
||||
filters,
|
||||
range
|
||||
}: {
|
||||
filters?: Filter[];
|
||||
range: DateRange;
|
||||
}): Observable<PortfolioPerformanceResponse> {
|
||||
let params = this.buildFiltersAsQueryParams({ filters });
|
||||
params = params.append('range', range);
|
||||
|
||||
return this.http
|
||||
.get<any>(`/api/v2/portfolio/performance`, { params: { range } })
|
||||
.get<any>(`/api/v2/portfolio/performance`, {
|
||||
params
|
||||
})
|
||||
.pipe(
|
||||
map((response) => {
|
||||
if (response.firstOrderDate) {
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto';
|
||||
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
|
||||
import { Account, DataSource, Type } from '@prisma/client';
|
||||
import { isMatch, parse, parseISO } from 'date-fns';
|
||||
import { isFinite } from 'lodash';
|
||||
@ -26,11 +27,13 @@ export class ImportActivitiesService {
|
||||
|
||||
public async importCsv({
|
||||
fileContent,
|
||||
isDryRun = false,
|
||||
userAccounts
|
||||
}: {
|
||||
fileContent: string;
|
||||
isDryRun?: boolean;
|
||||
userAccounts: Account[];
|
||||
}) {
|
||||
}): Promise<Activity[]> {
|
||||
const content = csvToJson(fileContent, {
|
||||
dynamicTyping: true,
|
||||
header: true,
|
||||
@ -52,14 +55,23 @@ export class ImportActivitiesService {
|
||||
});
|
||||
}
|
||||
|
||||
await this.importJson({ content: activities });
|
||||
return await this.importJson({ isDryRun, content: activities });
|
||||
}
|
||||
|
||||
public importJson({ content }: { content: CreateOrderDto[] }): Promise<void> {
|
||||
public importJson({
|
||||
content,
|
||||
isDryRun = false
|
||||
}: {
|
||||
content: CreateOrderDto[];
|
||||
isDryRun?: boolean;
|
||||
}): Promise<Activity[]> {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.postImport({
|
||||
activities: content
|
||||
})
|
||||
this.postImport(
|
||||
{
|
||||
activities: content
|
||||
},
|
||||
isDryRun
|
||||
)
|
||||
.pipe(
|
||||
catchError((error) => {
|
||||
reject(error);
|
||||
@ -67,13 +79,42 @@ export class ImportActivitiesService {
|
||||
})
|
||||
)
|
||||
.subscribe({
|
||||
next: () => {
|
||||
resolve();
|
||||
next: (data) => {
|
||||
resolve(data.activities);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public importSelectedActivities(
|
||||
selectedActivities: Activity[]
|
||||
): Promise<Activity[]> {
|
||||
const importData: CreateOrderDto[] = [];
|
||||
for (const activity of selectedActivities) {
|
||||
importData.push(this.convertToCreateOrderDto(activity));
|
||||
}
|
||||
return this.importJson({ content: importData });
|
||||
}
|
||||
|
||||
private convertToCreateOrderDto({
|
||||
date,
|
||||
fee,
|
||||
quantity,
|
||||
SymbolProfile,
|
||||
type,
|
||||
unitPrice
|
||||
}: Activity): CreateOrderDto {
|
||||
return {
|
||||
fee,
|
||||
quantity,
|
||||
type,
|
||||
unitPrice,
|
||||
currency: SymbolProfile.currency,
|
||||
date: date.toString(),
|
||||
symbol: SymbolProfile.symbol
|
||||
};
|
||||
}
|
||||
|
||||
private lowercaseKeys(aObject: any) {
|
||||
return Object.keys(aObject).reduce((acc, key) => {
|
||||
acc[key.toLowerCase()] = aObject[key];
|
||||
@ -301,7 +342,13 @@ export class ImportActivitiesService {
|
||||
};
|
||||
}
|
||||
|
||||
private postImport(aImportData: { activities: CreateOrderDto[] }) {
|
||||
return this.http.post<void>('/api/v1/import', aImportData);
|
||||
private postImport(
|
||||
aImportData: { activities: CreateOrderDto[] },
|
||||
aIsDryRun = false
|
||||
) {
|
||||
return this.http.post<{ activities: Activity[] }>(
|
||||
`/api/v1/import?dryRun=${aIsDryRun}`,
|
||||
aImportData
|
||||
);
|
||||
}
|
||||
}
|
||||
|
BIN
apps/client/src/assets/images/blog/20221226.jpg
Normal file
BIN
apps/client/src/assets/images/blog/20221226.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 195 KiB |
@ -6,78 +6,82 @@
|
||||
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
||||
<url>
|
||||
<loc>https://ghostfol.io</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/de/blog/2021/07/hallo-ghostfolio</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/about</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/about/changelog</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog/2021/07/hello-ghostfolio</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog/2022/01/ghostfolio-first-months-in-open-source</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog/2022/07/ghostfolio-meets-internet-identity</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog/2022/07/how-do-i-get-my-finances-in-order</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog/2022/08/500-stars-on-github</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog/2022/10/hacktoberfest-2022</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog/2022/11/black-friday-2022</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/blog/2022/12/the-importance-of-tracking-your-personal-finances</loc>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/demo</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/faq</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/features</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/markets</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/pricing</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/register</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://ghostfol.io/en/resources</loc>
|
||||
<lastmod>2022-11-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2022-12-26T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="h-100 position-relative" lang="${languageCode}">
|
||||
<head>
|
||||
<title>Ghostfolio – Open Source Wealth Management Software</title>
|
||||
<title>${title}</title>
|
||||
<base href="/" />
|
||||
<meta charset="utf-8" />
|
||||
<meta content="yes" name="apple-mobile-web-app-capable" />
|
||||
@ -20,28 +20,19 @@
|
||||
name="twitter:description"
|
||||
/>
|
||||
<meta content="${rootUrl}/${featureGraphicPath}" name="twitter:image" />
|
||||
<meta
|
||||
content="Ghostfolio – Open Source Wealth Management Software"
|
||||
name="twitter:title"
|
||||
/>
|
||||
<meta content="${title}" name="twitter:title" />
|
||||
<meta
|
||||
content="initial-scale=1, viewport-fit=cover, width=device-width"
|
||||
name="viewport"
|
||||
/>
|
||||
<meta content="#FFFFFF" name="theme-color" />
|
||||
<meta content="" property="og:description" />
|
||||
<meta
|
||||
content="Ghostfolio – Open Source Wealth Management Software"
|
||||
property="og:title"
|
||||
/>
|
||||
<meta content="${title}" property="og:title" />
|
||||
<meta content="website" property="og:type" />
|
||||
<meta content="${rootUrl}${path}" property="og:url" />
|
||||
<meta content="${rootUrl}/${featureGraphicPath}" property="og:image" />
|
||||
<meta content="2022-10-16T00:00:00+00:00" property="og:updated_time" />
|
||||
<meta
|
||||
content="Ghostfolio – Open Source Wealth Management Software"
|
||||
property="og:site_name"
|
||||
/>
|
||||
<meta content="${currentDate}T00:00:00+00:00" property="og:updated_time" />
|
||||
<meta content="${title}" property="og:site_name" />
|
||||
|
||||
<link
|
||||
href="../assets/apple-touch-icon.png"
|
||||
|
@ -18,7 +18,7 @@
|
||||
<target state="translated">Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">55,56</context>
|
||||
<context context-type="linenumber">56,57</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b6192ee60a5e0e40874f4d02fbaaa584a0f1541e" datatype="html">
|
||||
@ -54,7 +54,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
<context context-type="linenumber">78</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">
|
||||
@ -126,7 +126,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">93</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -142,7 +142,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
<context context-type="linenumber">73</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">
|
||||
@ -157,12 +157,16 @@
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">235</context>
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">117,118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -178,7 +182,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">
|
||||
@ -198,7 +202,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">420</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8280212421112607879" datatype="html">
|
||||
@ -338,7 +342,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">66</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="78a0f1c3cb3e3af864d2c21e621ba3b40b4e0afc" datatype="html">
|
||||
@ -374,7 +378,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">218,222</context>
|
||||
<context context-type="linenumber">248,252</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">87,91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -402,7 +410,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">225,230</context>
|
||||
<context context-type="linenumber">255,260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="86c6e9437398addbc04b6570de19b2cb4afe6084" datatype="html">
|
||||
@ -454,7 +462,7 @@
|
||||
<target state="translated">Bitte Währung hinzufügen:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8122024350760043460" datatype="html">
|
||||
@ -462,7 +470,7 @@
|
||||
<target state="translated">Möchtest du diesen Gutscheincode wirklich löschen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
<context context-type="linenumber">124</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1110981355132746478" datatype="html">
|
||||
@ -470,7 +478,7 @@
|
||||
<target state="translated">Möchtest du diese Währung wirklich löschen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6470890277760887814" datatype="html">
|
||||
@ -478,7 +486,7 @@
|
||||
<target state="translated">Möchtest du den Cache wirklich leeren?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">150</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2712770700065625080" datatype="html">
|
||||
@ -486,7 +494,7 @@
|
||||
<target state="translated">Bitte gebe deine Systemmeldung ein:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec03f5c28b327fc7ecfc4b20a0a7cf14a75843ff" datatype="html">
|
||||
@ -558,7 +566,7 @@
|
||||
<target state="translated">Systemmeldung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">122</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="657028d5fc9c3da8f2d667b6b15cd0df8b9a3729" datatype="html">
|
||||
@ -566,7 +574,7 @@
|
||||
<target state="translated">Systemmeldung setzen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7fd64c34428887e4cd56d05534b89c100b8544ad" datatype="html">
|
||||
@ -574,7 +582,7 @@
|
||||
<target state="translated">Lese-Modus</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e698b03c34b459b1b006d7f0473a49b9fcf5dfc1" datatype="html">
|
||||
@ -582,7 +590,7 @@
|
||||
<target state="translated">Gutscheincodes</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">
|
||||
@ -590,7 +598,7 @@
|
||||
<target state="translated">Hinzufügen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e799e6b926557f0098f41888cdf8df868eff3d47" datatype="html">
|
||||
@ -598,7 +606,7 @@
|
||||
<target state="translated">Verwaltung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7ac907e52a7ce2ac70b1786eb5f403ce306ce1f" datatype="html">
|
||||
@ -606,7 +614,7 @@
|
||||
<target state="translated">Cache leeren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2817099043823177227" datatype="html">
|
||||
@ -746,7 +754,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">
|
||||
@ -758,7 +766,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="28094f38aac43d3cb6edaf98a281fe443a930b5e" datatype="html">
|
||||
@ -790,7 +798,7 @@
|
||||
<target state="translated">Features</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">246</context>
|
||||
<context context-type="linenumber">249</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d3ad0babadabfa3e3b7f51637651822f3e56a7b1" datatype="html">
|
||||
@ -798,7 +806,7 @@
|
||||
<target state="translated">Märkte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-market/home-market.html</context>
|
||||
@ -818,7 +826,7 @@
|
||||
<target state="translated">Einloggen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts</context>
|
||||
@ -830,7 +838,7 @@
|
||||
<target state="translated">Ups! Falsches Sicherheits-Token.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -858,7 +866,7 @@
|
||||
<target state="translated">Zusammenfassung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-summary/home-summary.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a95e051c4fd80012488effb15d2842b2155ae5e" datatype="html">
|
||||
@ -886,7 +894,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">31,33</context>
|
||||
<context context-type="linenumber">31,32</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page.html</context>
|
||||
@ -898,7 +906,7 @@
|
||||
<target state="translated">Einloggen mit Internet Identity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">30,32</context>
|
||||
<context context-type="linenumber">30,34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d745a22ae7b825b146ca8185126c482597f1d485" datatype="html">
|
||||
@ -906,7 +914,7 @@
|
||||
<target state="translated">Einloggen mit Google</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">37,43</context>
|
||||
<context context-type="linenumber">40,46</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d9b3881b98593a64eebeb867422c00e037b37b9b" datatype="html">
|
||||
@ -914,7 +922,7 @@
|
||||
<target state="translated">Eingeloggt bleiben</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">46,52</context>
|
||||
<context context-type="linenumber">49,55</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="287d3301a32a65a1b31116bda5d3a6463158c42a" datatype="html">
|
||||
@ -922,11 +930,11 @@
|
||||
<target state="translated">Einloggen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">289</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">56,60</context>
|
||||
<context context-type="linenumber">59,63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="41c1e1f19aabc4a4bf198e4a189436a1f69257bb" datatype="html">
|
||||
@ -944,6 +952,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe708b572beec788b18edd1b5852d63c07dfaead" datatype="html">
|
||||
<source>Sell</source>
|
||||
@ -952,6 +964,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bbc9e4cebf91162be7d3e324ca5984d576e462c" datatype="html">
|
||||
<source>Investment</source>
|
||||
@ -1068,6 +1084,14 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">115,117</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6785405835169448749" datatype="html">
|
||||
<source>Please enter the amount of your emergency fund:</source>
|
||||
@ -1108,13 +1132,17 @@
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
<source>Tags</source>
|
||||
<target state="translated">Tags</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">201,203</context>
|
||||
<context context-type="linenumber">207,210</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="43d544c2e88959f6c59cc4db419528fb0776bd6c" datatype="html">
|
||||
@ -1228,6 +1256,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">66,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1726363342938046830" datatype="html">
|
||||
<source>About</source>
|
||||
@ -1346,7 +1378,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">323</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
|
||||
@ -1534,7 +1566,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">123</context>
|
||||
<context context-type="linenumber">145</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="237bd6e6d07f448b7884f05f56a20e30df8622c4" datatype="html">
|
||||
@ -1578,7 +1610,7 @@
|
||||
<target state="translated">Administration</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7751010942038334793" datatype="html">
|
||||
@ -1616,10 +1648,6 @@
|
||||
<trans-unit id="2614607010577950577" datatype="html">
|
||||
<source>Overview</source>
|
||||
<target state="translated">Übersicht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/zen/zen-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@ -1628,6 +1656,10 @@
|
||||
<trans-unit id="7307236732616849044" datatype="html">
|
||||
<source>Markets</source>
|
||||
<target state="translated">Märkte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/markets/markets-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1738,7 +1770,7 @@
|
||||
<target state="translated">Zeitstrahl der Investitionen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">143</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6ae1c94f6bad274424f97e9bc8766242c1577447" datatype="html">
|
||||
@ -1746,7 +1778,7 @@
|
||||
<target state="translated">Gewinner</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6723d5c967329a3ac75524cf0c1af5ced022b9a3" datatype="html">
|
||||
@ -1754,7 +1786,7 @@
|
||||
<target state="translated">Verlierer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5857197365507636437" datatype="html">
|
||||
@ -1792,6 +1824,10 @@
|
||||
<trans-unit id="803941175683258052" datatype="html">
|
||||
<source>Holdings</source>
|
||||
<target state="translated">Positionen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1825,38 +1861,14 @@
|
||||
<context context-type="linenumber">8,11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed4df708b0da9af32f3ba7174729749f6c36f29a" datatype="html">
|
||||
<source>BUY</source>
|
||||
<target state="translated">Kauf</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2389486e186b91e335cd9278cfe3af185b2ce0c2" datatype="html">
|
||||
<source>DIVIDEND</source>
|
||||
<target state="translated">Dividende</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="19288e8ab62dd8d905d5f6dac7a0c244062ab4f5" datatype="html">
|
||||
<source>ITEM</source>
|
||||
<target state="translated">Wertsache</target>
|
||||
<trans-unit id="9bca420227979312de74f0a932a003437410b1ab" datatype="html">
|
||||
<source>Item</source>
|
||||
<target state="new">Wertsache</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">16,18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e14e3acc1ebdb5839aa65787f4ce52558659a9cc" datatype="html">
|
||||
<source>SELL</source>
|
||||
<target state="translated">Verkauf</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5ab4d451ff9ce6d18d53360c51e7cd6e91c69555" datatype="html">
|
||||
<source>Name, symbol or ISIN</source>
|
||||
<target state="translated">Name, Symbol oder ISIN</target>
|
||||
@ -1878,7 +1890,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6713459747f0f67e53a8a0be0bba45ed324bc112" datatype="html">
|
||||
@ -1886,11 +1898,11 @@
|
||||
<target state="translated">Stückpreis</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">112,113</context>
|
||||
<context context-type="linenumber">118,121</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">173</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="160f1ffbd26df073d0fbd02cf8ce0d8cea7603b0" datatype="html">
|
||||
@ -1898,15 +1910,15 @@
|
||||
<target state="translated">Gebühr</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">131,132</context>
|
||||
<context context-type="linenumber">139,140</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">148,149</context>
|
||||
<context context-type="linenumber">156,157</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c54befce78d70e20c215f10a00e617245f53bc9" datatype="html">
|
||||
@ -1918,7 +1930,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">157,160</context>
|
||||
<context context-type="linenumber">165,168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1938,7 +1950,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">171,173</context>
|
||||
<context context-type="linenumber">179,181</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2309808536212982229" datatype="html">
|
||||
@ -1962,7 +1974,7 @@
|
||||
<target state="translated">Der Import wurde abgeschlossen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">167,166</context>
|
||||
<context context-type="linenumber">55,54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5080775557941296581" datatype="html">
|
||||
@ -1984,10 +1996,6 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4056a76e7a710ab32285892a58d66f2d1a927796" datatype="html">
|
||||
<source>Currencies</source>
|
||||
@ -2026,7 +2034,7 @@
|
||||
<target state="translated">Weiter mit Internet Identity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">41,43</context>
|
||||
<context context-type="linenumber">41,44</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7eb7fc17d2f646c6c835f4da0b96f255b515cf4" datatype="html">
|
||||
@ -2034,7 +2042,7 @@
|
||||
<target state="translated">Weiter mit Google</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">48,53</context>
|
||||
<context context-type="linenumber">51,56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3a6e5a6aa78ca864f6542410c5dafb6334538106" datatype="html">
|
||||
@ -2098,7 +2106,7 @@
|
||||
<target state="translated">Geplant</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed1d0d3031aba025b9bf280c1d7c54f44982ed46" datatype="html">
|
||||
@ -2106,7 +2114,7 @@
|
||||
<target state="translated">Aktivitäten importieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">367</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="446d1376bd7f6cf33d75d7a6022c33d2910327a2" datatype="html">
|
||||
@ -2114,7 +2122,7 @@
|
||||
<target state="translated">Aktivitäten exportieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="db4ffd639aac51ba929921856f8b15ea29e53695" datatype="html">
|
||||
@ -2122,7 +2130,7 @@
|
||||
<target state="translated">Geplante Aktivitäten als ICS exportieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">387</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">
|
||||
@ -2130,7 +2138,7 @@
|
||||
<target state="translated">Kopieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">408</context>
|
||||
<context context-type="linenumber">430</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d8c19dd72422ee41c5ca9ad38b80592239e0fd08" datatype="html">
|
||||
@ -2138,7 +2146,7 @@
|
||||
<target state="translated">Geplante Aktivität als ICS exportieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">416</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="670983159637074283" datatype="html">
|
||||
@ -2146,7 +2154,7 @@
|
||||
<target state="translated">Möchtest du diese Aktivität wirklich löschen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
<context context-type="linenumber">196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="170f7de02b14690fb9c1999a16926c0044bfd5c1" datatype="html">
|
||||
@ -2234,7 +2242,7 @@
|
||||
<target state="translated">Registrieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -2256,6 +2264,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">65,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7224997887539831269" datatype="html">
|
||||
<source>Oops! Something went wrong.</source>
|
||||
@ -2264,6 +2276,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">
|
||||
<source>Change</source>
|
||||
@ -2322,7 +2338,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">186,188</context>
|
||||
<context context-type="linenumber">194,196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="936788a5ab949fe0d70098ba051ac7a44999ff08" datatype="html">
|
||||
@ -2422,7 +2438,7 @@
|
||||
<target state="translated">Monatlich</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5213771062241898526" datatype="html">
|
||||
@ -2430,11 +2446,11 @@
|
||||
<target state="translated">Einlage</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">38</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
|
||||
@ -2502,11 +2518,15 @@
|
||||
<target state="translated">Filtern nach Konto oder Tag...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">111</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
<context context-type="linenumber">87</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="303469635941752458" datatype="html">
|
||||
@ -2514,7 +2534,7 @@
|
||||
<target state="translated">Filtern nach Konto, Währung, Symbol oder Typ...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">321</context>
|
||||
<context context-type="linenumber">376</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
|
||||
@ -2550,7 +2570,7 @@
|
||||
<target state="translated">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="44fcf77e86dc038202ebad6b46d1d833d60d781b" datatype="html">
|
||||
@ -2654,7 +2674,7 @@
|
||||
<target state="translated">Portfolio Wertentwicklung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8192718423057883427" datatype="html">
|
||||
@ -2686,7 +2706,7 @@
|
||||
<target state="translated">Symbol</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1825829511397926879" datatype="html">
|
||||
@ -2694,7 +2714,7 @@
|
||||
<target state="translated">Tag</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="787798817533231355" datatype="html">
|
||||
@ -2702,7 +2722,7 @@
|
||||
<target state="translated">Bargeld</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8431989971855844965" datatype="html">
|
||||
@ -2710,7 +2730,7 @@
|
||||
<target state="translated">Rohstoff</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1983771552391474467" datatype="html">
|
||||
@ -2718,7 +2738,7 @@
|
||||
<target state="translated">Anteilskapital</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6124744839836623630" datatype="html">
|
||||
@ -2726,7 +2746,7 @@
|
||||
<target state="translated">Feste Einkünfte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8432027249343784512" datatype="html">
|
||||
@ -2734,7 +2754,7 @@
|
||||
<target state="translated">Immobilien</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8977365084844053365" datatype="html">
|
||||
@ -2742,7 +2762,7 @@
|
||||
<target state="translated">Anleihe</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2893204435511484886" datatype="html">
|
||||
@ -2750,7 +2770,7 @@
|
||||
<target state="translated">Kryptowährung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9071695492820527473" datatype="html">
|
||||
@ -2758,7 +2778,7 @@
|
||||
<target state="translated">ETF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5734784563242233466" datatype="html">
|
||||
@ -2766,7 +2786,7 @@
|
||||
<target state="translated">Investmentfonds</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1270654249046226808" datatype="html">
|
||||
@ -2774,7 +2794,7 @@
|
||||
<target state="translated">Edelmetall</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1346519036036997811" datatype="html">
|
||||
@ -2782,7 +2802,7 @@
|
||||
<target state="translated">Privates Beteiligungskapital</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4613338085351943838" datatype="html">
|
||||
@ -2790,7 +2810,7 @@
|
||||
<target state="translated">Aktie</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6268646680388419543" datatype="html">
|
||||
@ -2830,7 +2850,7 @@
|
||||
<target state="translated">Nordamerika</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1413778527796351850" datatype="html">
|
||||
@ -2838,7 +2858,7 @@
|
||||
<target state="translated">Afrika</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3345512471687795386" datatype="html">
|
||||
@ -2846,7 +2866,7 @@
|
||||
<target state="translated">Asien</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8350109327144196614" datatype="html">
|
||||
@ -2854,7 +2874,7 @@
|
||||
<target state="translated">Europa</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3228811828827738441" datatype="html">
|
||||
@ -2862,7 +2882,7 @@
|
||||
<target state="translated">Ozeanien</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5957846001261659229" datatype="html">
|
||||
@ -2870,7 +2890,7 @@
|
||||
<target state="translated">Südamerika</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="73f8489a3ae4d805787b8350d3d91e03e830115b" datatype="html">
|
||||
@ -2894,7 +2914,7 @@
|
||||
<target state="translated">Zurück</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">61,67</context>
|
||||
<context context-type="linenumber">79,83</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec2d3a89b366d1ca80be056e9e71f0165ae75c7b" datatype="html">
|
||||
@ -2942,7 +2962,7 @@
|
||||
<target state="translated">Zeitstrahl der Dividenden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7765499580020598783" datatype="html">
|
||||
@ -2950,7 +2970,7 @@
|
||||
<target state="translated">Dividenden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7608037008789240367" datatype="html">
|
||||
@ -2966,9 +2986,65 @@
|
||||
<target state="translated">Benutzer Registrierung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8763985977445247551" datatype="html">
|
||||
<source>Validating data...</source>
|
||||
<target state="translated">Daten validieren...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">
|
||||
<source>Import</source>
|
||||
<target state="translated">Importieren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">94,99</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1803867056160333091" datatype="html">
|
||||
<source>Securities</source>
|
||||
<target state="translated">Wertschriften</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3229595422546554334" datatype="html">
|
||||
<source>Jobs</source>
|
||||
<target state="translated">Jobs</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4798457301875181136" datatype="html">
|
||||
<source>Market Data</source>
|
||||
<target state="translated">Marktdaten</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4555457172864212828" datatype="html">
|
||||
<source>Users</source>
|
||||
<target state="translated">Benutzer</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4739818603756173797" datatype="html">
|
||||
<source>Summary</source>
|
||||
<target state="translated">Zusammenfassung</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<target state="translated">El riesgo de pérdida en trading puede ser importante. No es aconsejable invertir dinero que puedas necesitar a corto plazo.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">55,56</context>
|
||||
<context context-type="linenumber">56,57</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b6192ee60a5e0e40874f4d02fbaaa584a0f1541e" datatype="html">
|
||||
@ -55,7 +55,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
<context context-type="linenumber">78</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">
|
||||
@ -127,7 +127,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">93</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -143,7 +143,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
<context context-type="linenumber">73</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">
|
||||
@ -158,12 +158,16 @@
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">235</context>
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">117,118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -179,7 +183,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">
|
||||
@ -199,7 +203,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">420</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8280212421112607879" datatype="html">
|
||||
@ -339,7 +343,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">66</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="78a0f1c3cb3e3af864d2c21e621ba3b40b4e0afc" datatype="html">
|
||||
@ -375,7 +379,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">218,222</context>
|
||||
<context context-type="linenumber">248,252</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">87,91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -403,7 +411,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">225,230</context>
|
||||
<context context-type="linenumber">255,260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="86c6e9437398addbc04b6570de19b2cb4afe6084" datatype="html">
|
||||
@ -455,7 +463,7 @@
|
||||
<target state="translated">Por favor, añade una divisa:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8122024350760043460" datatype="html">
|
||||
@ -463,7 +471,7 @@
|
||||
<target state="translated">¿Estás seguro de eliminar este cupón?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
<context context-type="linenumber">124</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1110981355132746478" datatype="html">
|
||||
@ -471,7 +479,7 @@
|
||||
<target state="translated">¿Estás seguro de eliminar esta divisa?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6470890277760887814" datatype="html">
|
||||
@ -479,7 +487,7 @@
|
||||
<target state="translated">¿Estás seguro de limpiar la caché?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">150</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2712770700065625080" datatype="html">
|
||||
@ -487,7 +495,7 @@
|
||||
<target state="translated">Por favor, establece tu mensaje del sistema:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec03f5c28b327fc7ecfc4b20a0a7cf14a75843ff" datatype="html">
|
||||
@ -559,7 +567,7 @@
|
||||
<target state="translated">Mensaje del sistema</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">122</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="657028d5fc9c3da8f2d667b6b15cd0df8b9a3729" datatype="html">
|
||||
@ -567,7 +575,7 @@
|
||||
<target state="translated">Establecer mensaje</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7fd64c34428887e4cd56d05534b89c100b8544ad" datatype="html">
|
||||
@ -575,7 +583,7 @@
|
||||
<target state="translated">Modo de solo lectura</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e698b03c34b459b1b006d7f0473a49b9fcf5dfc1" datatype="html">
|
||||
@ -583,7 +591,7 @@
|
||||
<target state="translated">Cupones</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">
|
||||
@ -591,7 +599,7 @@
|
||||
<target state="translated">Añadir</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e799e6b926557f0098f41888cdf8df868eff3d47" datatype="html">
|
||||
@ -599,7 +607,7 @@
|
||||
<target state="translated">Tareas domésticas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7ac907e52a7ce2ac70b1786eb5f403ce306ce1f" datatype="html">
|
||||
@ -607,7 +615,7 @@
|
||||
<target state="translated">Limpiar caché</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2817099043823177227" datatype="html">
|
||||
@ -747,7 +755,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">
|
||||
@ -759,7 +767,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="28094f38aac43d3cb6edaf98a281fe443a930b5e" datatype="html">
|
||||
@ -791,7 +799,7 @@
|
||||
<target state="translated">Funcionalidades</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">246</context>
|
||||
<context context-type="linenumber">249</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d3ad0babadabfa3e3b7f51637651822f3e56a7b1" datatype="html">
|
||||
@ -799,7 +807,7 @@
|
||||
<target state="translated">Mercados</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-market/home-market.html</context>
|
||||
@ -819,7 +827,7 @@
|
||||
<target state="translated">Iniciar sesión</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts</context>
|
||||
@ -831,7 +839,7 @@
|
||||
<target state="translated">Vaya! Token de seguridad incorrecto.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -859,7 +867,7 @@
|
||||
<target state="translated">Resumen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-summary/home-summary.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a95e051c4fd80012488effb15d2842b2155ae5e" datatype="html">
|
||||
@ -887,7 +895,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">31,33</context>
|
||||
<context context-type="linenumber">31,32</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page.html</context>
|
||||
@ -899,7 +907,7 @@
|
||||
<target state="translated">Iniciar sesión con Internet Identity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">30,32</context>
|
||||
<context context-type="linenumber">30,34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d745a22ae7b825b146ca8185126c482597f1d485" datatype="html">
|
||||
@ -907,7 +915,7 @@
|
||||
<target state="translated">Iniciar sesión con Google</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">37,43</context>
|
||||
<context context-type="linenumber">40,46</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d9b3881b98593a64eebeb867422c00e037b37b9b" datatype="html">
|
||||
@ -915,7 +923,7 @@
|
||||
<target state="translated">Seguir conectado</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">46,52</context>
|
||||
<context context-type="linenumber">49,55</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="287d3301a32a65a1b31116bda5d3a6463158c42a" datatype="html">
|
||||
@ -923,11 +931,11 @@
|
||||
<target state="translated">Iniciar sesión</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">289</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">56,60</context>
|
||||
<context context-type="linenumber">59,63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="41c1e1f19aabc4a4bf198e4a189436a1f69257bb" datatype="html">
|
||||
@ -945,6 +953,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe708b572beec788b18edd1b5852d63c07dfaead" datatype="html">
|
||||
<source>Sell</source>
|
||||
@ -953,6 +965,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bbc9e4cebf91162be7d3e324ca5984d576e462c" datatype="html">
|
||||
<source>Investment</source>
|
||||
@ -1069,6 +1085,14 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">115,117</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6785405835169448749" datatype="html">
|
||||
<source>Please enter the amount of your emergency fund:</source>
|
||||
@ -1109,13 +1133,17 @@
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
<source>Tags</source>
|
||||
<target state="translated">Etiquetas</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">201,203</context>
|
||||
<context context-type="linenumber">207,210</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="43d544c2e88959f6c59cc4db419528fb0776bd6c" datatype="html">
|
||||
@ -1229,6 +1257,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">66,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1726363342938046830" datatype="html">
|
||||
<source>About</source>
|
||||
@ -1347,7 +1379,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">323</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
|
||||
@ -1535,7 +1567,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">123</context>
|
||||
<context context-type="linenumber">145</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="237bd6e6d07f448b7884f05f56a20e30df8622c4" datatype="html">
|
||||
@ -1579,7 +1611,7 @@
|
||||
<target state="translated">Control de administrador</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7751010942038334793" datatype="html">
|
||||
@ -1617,10 +1649,6 @@
|
||||
<trans-unit id="2614607010577950577" datatype="html">
|
||||
<source>Overview</source>
|
||||
<target state="translated">Visión general</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/zen/zen-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@ -1629,6 +1657,10 @@
|
||||
<trans-unit id="7307236732616849044" datatype="html">
|
||||
<source>Markets</source>
|
||||
<target state="translated">Mercados</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/markets/markets-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1739,7 +1771,7 @@
|
||||
<target state="translated">Cronología de la inversión</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">143</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6ae1c94f6bad274424f97e9bc8766242c1577447" datatype="html">
|
||||
@ -1747,7 +1779,7 @@
|
||||
<target state="translated">Lo mejor</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6723d5c967329a3ac75524cf0c1af5ced022b9a3" datatype="html">
|
||||
@ -1755,7 +1787,7 @@
|
||||
<target state="translated">Lo peor</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5857197365507636437" datatype="html">
|
||||
@ -1793,6 +1825,10 @@
|
||||
<trans-unit id="803941175683258052" datatype="html">
|
||||
<source>Holdings</source>
|
||||
<target state="translated">Participaciones</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1826,38 +1862,14 @@
|
||||
<context context-type="linenumber">8,11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed4df708b0da9af32f3ba7174729749f6c36f29a" datatype="html">
|
||||
<source>BUY</source>
|
||||
<target state="translated">COMPRA</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2389486e186b91e335cd9278cfe3af185b2ce0c2" datatype="html">
|
||||
<source>DIVIDEND</source>
|
||||
<target state="translated">DIVIDENDO</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="19288e8ab62dd8d905d5f6dac7a0c244062ab4f5" datatype="html">
|
||||
<source>ITEM</source>
|
||||
<target state="translated">ARTÍCULO</target>
|
||||
<trans-unit id="9bca420227979312de74f0a932a003437410b1ab" datatype="html">
|
||||
<source>Item</source>
|
||||
<target state="new">ARTÍCULO</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">16,18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e14e3acc1ebdb5839aa65787f4ce52558659a9cc" datatype="html">
|
||||
<source>SELL</source>
|
||||
<target state="translated">VENTA</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5ab4d451ff9ce6d18d53360c51e7cd6e91c69555" datatype="html">
|
||||
<source>Name, symbol or ISIN</source>
|
||||
<target state="translated">Nombre, símbolo o ISIN</target>
|
||||
@ -1879,7 +1891,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6713459747f0f67e53a8a0be0bba45ed324bc112" datatype="html">
|
||||
@ -1887,11 +1899,11 @@
|
||||
<target state="translated">Precio unitario</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">112,113</context>
|
||||
<context context-type="linenumber">118,121</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">173</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="160f1ffbd26df073d0fbd02cf8ce0d8cea7603b0" datatype="html">
|
||||
@ -1899,15 +1911,15 @@
|
||||
<target state="translated">Comisión</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">131,132</context>
|
||||
<context context-type="linenumber">139,140</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">148,149</context>
|
||||
<context context-type="linenumber">156,157</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c54befce78d70e20c215f10a00e617245f53bc9" datatype="html">
|
||||
@ -1919,7 +1931,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">157,160</context>
|
||||
<context context-type="linenumber">165,168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1939,7 +1951,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">171,173</context>
|
||||
<context context-type="linenumber">179,181</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2309808536212982229" datatype="html">
|
||||
@ -1963,7 +1975,7 @@
|
||||
<target state="translated">La importación se ha completado</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">167,166</context>
|
||||
<context context-type="linenumber">55,54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5080775557941296581" datatype="html">
|
||||
@ -1985,10 +1997,6 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4056a76e7a710ab32285892a58d66f2d1a927796" datatype="html">
|
||||
<source>Currencies</source>
|
||||
@ -2027,7 +2035,7 @@
|
||||
<target state="translated">Continuar con Internet Identity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">41,43</context>
|
||||
<context context-type="linenumber">41,44</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7eb7fc17d2f646c6c835f4da0b96f255b515cf4" datatype="html">
|
||||
@ -2035,7 +2043,7 @@
|
||||
<target state="translated">Continuar con Google</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">48,53</context>
|
||||
<context context-type="linenumber">51,56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3a6e5a6aa78ca864f6542410c5dafb6334538106" datatype="html">
|
||||
@ -2099,7 +2107,7 @@
|
||||
<target state="translated">Borrador</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed1d0d3031aba025b9bf280c1d7c54f44982ed46" datatype="html">
|
||||
@ -2107,7 +2115,7 @@
|
||||
<target state="translated">Importar operaciones</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">367</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="446d1376bd7f6cf33d75d7a6022c33d2910327a2" datatype="html">
|
||||
@ -2115,7 +2123,7 @@
|
||||
<target state="translated">Exportar operaciones</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="db4ffd639aac51ba929921856f8b15ea29e53695" datatype="html">
|
||||
@ -2123,7 +2131,7 @@
|
||||
<target state="translated">Exportar borrador como ICS</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">387</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">
|
||||
@ -2131,7 +2139,7 @@
|
||||
<target state="translated">Clonar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">408</context>
|
||||
<context context-type="linenumber">430</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d8c19dd72422ee41c5ca9ad38b80592239e0fd08" datatype="html">
|
||||
@ -2139,7 +2147,7 @@
|
||||
<target state="translated">Exportar borrador como ICS</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">416</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="670983159637074283" datatype="html">
|
||||
@ -2147,7 +2155,7 @@
|
||||
<target state="translated">¿Estás seguro de eliminar esta operación?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
<context context-type="linenumber">196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="170f7de02b14690fb9c1999a16926c0044bfd5c1" datatype="html">
|
||||
@ -2235,7 +2243,7 @@
|
||||
<target state="translated">Comenzar</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -2253,6 +2261,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8947585964755853889" datatype="html">
|
||||
<source>Please try again later.</source>
|
||||
@ -2265,6 +2277,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">65,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">
|
||||
<source>Change</source>
|
||||
@ -2303,7 +2319,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">186,188</context>
|
||||
<context context-type="linenumber">194,196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c5ec7bc638db6f37c402e4afab2084f8763e268" datatype="html">
|
||||
@ -2431,11 +2447,11 @@
|
||||
<target state="translated">Depósito</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">38</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
|
||||
@ -2455,7 +2471,7 @@
|
||||
<target state="translated">Mensual</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8511b16abcf065252b350d64e337ba2447db3ffb" datatype="html">
|
||||
@ -2495,11 +2511,15 @@
|
||||
<target state="translated">Filtrar por cuenta o etiqueta...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">111</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
<context context-type="linenumber">87</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4550487415324294802" datatype="html">
|
||||
@ -2515,7 +2535,7 @@
|
||||
<target state="translated">Filtrar por cuenta, divisa, símbolo o tipo...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">321</context>
|
||||
<context context-type="linenumber">376</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -2559,7 +2579,7 @@
|
||||
<target state="translated">Benchmark</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="44fcf77e86dc038202ebad6b46d1d833d60d781b" datatype="html">
|
||||
@ -2655,7 +2675,7 @@
|
||||
<target state="translated">Evolución cartera</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8192718423057883427" datatype="html">
|
||||
@ -2687,7 +2707,7 @@
|
||||
<target state="translated">Símbolo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1825829511397926879" datatype="html">
|
||||
@ -2695,7 +2715,7 @@
|
||||
<target state="translated">Etiqueta</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="787798817533231355" datatype="html">
|
||||
@ -2703,7 +2723,7 @@
|
||||
<target state="translated">Efectivo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8431989971855844965" datatype="html">
|
||||
@ -2711,7 +2731,7 @@
|
||||
<target state="translated">Bien</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1983771552391474467" datatype="html">
|
||||
@ -2719,7 +2739,7 @@
|
||||
<target state="translated">Capital</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6124744839836623630" datatype="html">
|
||||
@ -2727,7 +2747,7 @@
|
||||
<target state="translated">Renta fija</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8432027249343784512" datatype="html">
|
||||
@ -2735,7 +2755,7 @@
|
||||
<target state="translated">Propiedad inmobiliaria</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8977365084844053365" datatype="html">
|
||||
@ -2743,7 +2763,7 @@
|
||||
<target state="translated">Bono</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2893204435511484886" datatype="html">
|
||||
@ -2751,7 +2771,7 @@
|
||||
<target state="translated">Criptomoneda</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9071695492820527473" datatype="html">
|
||||
@ -2759,7 +2779,7 @@
|
||||
<target state="translated">ETF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5734784563242233466" datatype="html">
|
||||
@ -2767,7 +2787,7 @@
|
||||
<target state="translated">Fondo de inversión</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1270654249046226808" datatype="html">
|
||||
@ -2775,7 +2795,7 @@
|
||||
<target state="translated">Metal precioso</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1346519036036997811" datatype="html">
|
||||
@ -2783,7 +2803,7 @@
|
||||
<target state="translated">Capital riesgo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4613338085351943838" datatype="html">
|
||||
@ -2791,7 +2811,7 @@
|
||||
<target state="translated">Acción</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6268646680388419543" datatype="html">
|
||||
@ -2831,7 +2851,7 @@
|
||||
<target state="translated">América del Norte</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1413778527796351850" datatype="html">
|
||||
@ -2839,7 +2859,7 @@
|
||||
<target state="translated">África</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3345512471687795386" datatype="html">
|
||||
@ -2847,7 +2867,7 @@
|
||||
<target state="translated">Asia</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8350109327144196614" datatype="html">
|
||||
@ -2855,7 +2875,7 @@
|
||||
<target state="translated">Europa</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3228811828827738441" datatype="html">
|
||||
@ -2863,7 +2883,7 @@
|
||||
<target state="translated">Oceanía</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5957846001261659229" datatype="html">
|
||||
@ -2871,7 +2891,7 @@
|
||||
<target state="translated">América del Sur</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="73f8489a3ae4d805787b8350d3d91e03e830115b" datatype="html">
|
||||
@ -2895,7 +2915,7 @@
|
||||
<target state="translated">Volver</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">61,67</context>
|
||||
<context context-type="linenumber">79,83</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec2d3a89b366d1ca80be056e9e71f0165ae75c7b" datatype="html">
|
||||
@ -2943,7 +2963,7 @@
|
||||
<target state="new">Dividend</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6410cffb96159fcff46d91effc26df0e240bc0e3" datatype="html">
|
||||
@ -2951,7 +2971,7 @@
|
||||
<target state="new">Dividend Timeline</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7608037008789240367" datatype="html">
|
||||
@ -2967,9 +2987,65 @@
|
||||
<target state="new">User Signup</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8763985977445247551" datatype="html">
|
||||
<source>Validating data...</source>
|
||||
<target state="new">Validating data...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">
|
||||
<source>Import</source>
|
||||
<target state="new">Import</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">94,99</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1803867056160333091" datatype="html">
|
||||
<source>Securities</source>
|
||||
<target state="new">Securities</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3229595422546554334" datatype="html">
|
||||
<source>Jobs</source>
|
||||
<target state="new">Jobs</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4798457301875181136" datatype="html">
|
||||
<source>Market Data</source>
|
||||
<target state="new">Market Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4555457172864212828" datatype="html">
|
||||
<source>Users</source>
|
||||
<target state="new">Users</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4739818603756173797" datatype="html">
|
||||
<source>Summary</source>
|
||||
<target state="new">Summary</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<target state="translated">Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">55,56</context>
|
||||
<context context-type="linenumber">56,57</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b6192ee60a5e0e40874f4d02fbaaa584a0f1541e" datatype="html">
|
||||
@ -55,7 +55,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
<context context-type="linenumber">78</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">
|
||||
@ -127,7 +127,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">93</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -143,7 +143,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
<context context-type="linenumber">73</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">
|
||||
@ -158,12 +158,16 @@
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">235</context>
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">117,118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -179,7 +183,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">
|
||||
@ -199,7 +203,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">420</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8280212421112607879" datatype="html">
|
||||
@ -339,7 +343,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">66</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="78a0f1c3cb3e3af864d2c21e621ba3b40b4e0afc" datatype="html">
|
||||
@ -375,7 +379,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">218,222</context>
|
||||
<context context-type="linenumber">248,252</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">87,91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -403,7 +411,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">225,230</context>
|
||||
<context context-type="linenumber">255,260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="86c6e9437398addbc04b6570de19b2cb4afe6084" datatype="html">
|
||||
@ -455,7 +463,7 @@
|
||||
<target state="translated">Aggiungi una valuta:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8122024350760043460" datatype="html">
|
||||
@ -463,7 +471,7 @@
|
||||
<target state="translated">Vuoi davvero eliminare questo buono?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
<context context-type="linenumber">124</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1110981355132746478" datatype="html">
|
||||
@ -471,7 +479,7 @@
|
||||
<target state="translated">Vuoi davvero eliminare questa valuta?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6470890277760887814" datatype="html">
|
||||
@ -479,7 +487,7 @@
|
||||
<target state="translated">Vuoi davvero svuotare la cache?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">150</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2712770700065625080" datatype="html">
|
||||
@ -487,7 +495,7 @@
|
||||
<target state="translated">Imposta il messaggio di sistema:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec03f5c28b327fc7ecfc4b20a0a7cf14a75843ff" datatype="html">
|
||||
@ -559,7 +567,7 @@
|
||||
<target state="translated">Messaggio di sistema</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">122</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="657028d5fc9c3da8f2d667b6b15cd0df8b9a3729" datatype="html">
|
||||
@ -567,7 +575,7 @@
|
||||
<target state="translated">Imposta messaggio</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7fd64c34428887e4cd56d05534b89c100b8544ad" datatype="html">
|
||||
@ -575,7 +583,7 @@
|
||||
<target state="translated">Modalità di sola lettura</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e698b03c34b459b1b006d7f0473a49b9fcf5dfc1" datatype="html">
|
||||
@ -583,7 +591,7 @@
|
||||
<target state="translated">Buoni sconto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">
|
||||
@ -591,7 +599,7 @@
|
||||
<target state="translated">Aggiungi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e799e6b926557f0098f41888cdf8df868eff3d47" datatype="html">
|
||||
@ -599,7 +607,7 @@
|
||||
<target state="translated">Bilancio domestico</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7ac907e52a7ce2ac70b1786eb5f403ce306ce1f" datatype="html">
|
||||
@ -607,7 +615,7 @@
|
||||
<target state="translated">Svuota la cache</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2817099043823177227" datatype="html">
|
||||
@ -747,7 +755,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">
|
||||
@ -759,7 +767,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="28094f38aac43d3cb6edaf98a281fe443a930b5e" datatype="html">
|
||||
@ -791,7 +799,7 @@
|
||||
<target state="translated">Funzionalità</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">246</context>
|
||||
<context context-type="linenumber">249</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d3ad0babadabfa3e3b7f51637651822f3e56a7b1" datatype="html">
|
||||
@ -799,7 +807,7 @@
|
||||
<target state="translated">Mercati</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-market/home-market.html</context>
|
||||
@ -819,7 +827,7 @@
|
||||
<target state="translated">Accedi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts</context>
|
||||
@ -831,7 +839,7 @@
|
||||
<target state="translated">Ops! Token di sicurezza errato.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -859,7 +867,7 @@
|
||||
<target state="translated">Riepilogo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-summary/home-summary.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a95e051c4fd80012488effb15d2842b2155ae5e" datatype="html">
|
||||
@ -887,7 +895,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">31,33</context>
|
||||
<context context-type="linenumber">31,32</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page.html</context>
|
||||
@ -899,7 +907,7 @@
|
||||
<target state="translated">Accedi con Internet Identity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">30,32</context>
|
||||
<context context-type="linenumber">30,34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d745a22ae7b825b146ca8185126c482597f1d485" datatype="html">
|
||||
@ -907,7 +915,7 @@
|
||||
<target state="translated">Accedi con Google</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">37,43</context>
|
||||
<context context-type="linenumber">40,46</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d9b3881b98593a64eebeb867422c00e037b37b9b" datatype="html">
|
||||
@ -915,7 +923,7 @@
|
||||
<target state="translated">Rimani connesso</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">46,52</context>
|
||||
<context context-type="linenumber">49,55</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="287d3301a32a65a1b31116bda5d3a6463158c42a" datatype="html">
|
||||
@ -923,11 +931,11 @@
|
||||
<target state="translated">Accedi</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">289</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">56,60</context>
|
||||
<context context-type="linenumber">59,63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="41c1e1f19aabc4a4bf198e4a189436a1f69257bb" datatype="html">
|
||||
@ -945,6 +953,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe708b572beec788b18edd1b5852d63c07dfaead" datatype="html">
|
||||
<source>Sell</source>
|
||||
@ -953,6 +965,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bbc9e4cebf91162be7d3e324ca5984d576e462c" datatype="html">
|
||||
<source>Investment</source>
|
||||
@ -1069,6 +1085,14 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">115,117</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6785405835169448749" datatype="html">
|
||||
<source>Please enter the amount of your emergency fund:</source>
|
||||
@ -1109,13 +1133,17 @@
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
<source>Tags</source>
|
||||
<target state="translated">Tag</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">201,203</context>
|
||||
<context context-type="linenumber">207,210</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="43d544c2e88959f6c59cc4db419528fb0776bd6c" datatype="html">
|
||||
@ -1229,6 +1257,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">66,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1726363342938046830" datatype="html">
|
||||
<source>About</source>
|
||||
@ -1347,7 +1379,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">323</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
|
||||
@ -1535,7 +1567,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">123</context>
|
||||
<context context-type="linenumber">145</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="237bd6e6d07f448b7884f05f56a20e30df8622c4" datatype="html">
|
||||
@ -1579,7 +1611,7 @@
|
||||
<target state="translated">Controllo amministrativo</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7751010942038334793" datatype="html">
|
||||
@ -1617,10 +1649,6 @@
|
||||
<trans-unit id="2614607010577950577" datatype="html">
|
||||
<source>Overview</source>
|
||||
<target state="translated">Panoramica</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/zen/zen-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@ -1629,6 +1657,10 @@
|
||||
<trans-unit id="7307236732616849044" datatype="html">
|
||||
<source>Markets</source>
|
||||
<target state="translated">Mercati</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/markets/markets-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1739,7 +1771,7 @@
|
||||
<target state="translated">Cronologia degli investimenti</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">143</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6ae1c94f6bad274424f97e9bc8766242c1577447" datatype="html">
|
||||
@ -1747,7 +1779,7 @@
|
||||
<target state="translated">In alto</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6723d5c967329a3ac75524cf0c1af5ced022b9a3" datatype="html">
|
||||
@ -1755,7 +1787,7 @@
|
||||
<target state="translated">In basso</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5857197365507636437" datatype="html">
|
||||
@ -1793,6 +1825,10 @@
|
||||
<trans-unit id="803941175683258052" datatype="html">
|
||||
<source>Holdings</source>
|
||||
<target state="translated">Partecipazioni</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1826,38 +1862,14 @@
|
||||
<context context-type="linenumber">8,11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed4df708b0da9af32f3ba7174729749f6c36f29a" datatype="html">
|
||||
<source>BUY</source>
|
||||
<target state="translated">ACQUISTO</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2389486e186b91e335cd9278cfe3af185b2ce0c2" datatype="html">
|
||||
<source>DIVIDEND</source>
|
||||
<target state="translated">DIVIDENDO</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="19288e8ab62dd8d905d5f6dac7a0c244062ab4f5" datatype="html">
|
||||
<source>ITEM</source>
|
||||
<target state="translated">ARTICOLO</target>
|
||||
<trans-unit id="9bca420227979312de74f0a932a003437410b1ab" datatype="html">
|
||||
<source>Item</source>
|
||||
<target state="new">ARTICOLO</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">16,18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e14e3acc1ebdb5839aa65787f4ce52558659a9cc" datatype="html">
|
||||
<source>SELL</source>
|
||||
<target state="translated">VENDITA</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5ab4d451ff9ce6d18d53360c51e7cd6e91c69555" datatype="html">
|
||||
<source>Name, symbol or ISIN</source>
|
||||
<target state="translated">Nome, simbolo o ISIN</target>
|
||||
@ -1879,7 +1891,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6713459747f0f67e53a8a0be0bba45ed324bc112" datatype="html">
|
||||
@ -1887,11 +1899,11 @@
|
||||
<target state="translated">Prezzo unitario</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">112,113</context>
|
||||
<context context-type="linenumber">118,121</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">173</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="160f1ffbd26df073d0fbd02cf8ce0d8cea7603b0" datatype="html">
|
||||
@ -1899,15 +1911,15 @@
|
||||
<target state="translated">Commissione</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">131,132</context>
|
||||
<context context-type="linenumber">139,140</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">148,149</context>
|
||||
<context context-type="linenumber">156,157</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c54befce78d70e20c215f10a00e617245f53bc9" datatype="html">
|
||||
@ -1919,7 +1931,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">157,160</context>
|
||||
<context context-type="linenumber">165,168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1939,7 +1951,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">171,173</context>
|
||||
<context context-type="linenumber">179,181</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2309808536212982229" datatype="html">
|
||||
@ -1963,7 +1975,7 @@
|
||||
<target state="translated">L'importazione è stata completata</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">167,166</context>
|
||||
<context context-type="linenumber">55,54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5080775557941296581" datatype="html">
|
||||
@ -1985,10 +1997,6 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4056a76e7a710ab32285892a58d66f2d1a927796" datatype="html">
|
||||
<source>Currencies</source>
|
||||
@ -2027,7 +2035,7 @@
|
||||
<target state="translated">Continua con Internet Identity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">41,43</context>
|
||||
<context context-type="linenumber">41,44</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7eb7fc17d2f646c6c835f4da0b96f255b515cf4" datatype="html">
|
||||
@ -2035,7 +2043,7 @@
|
||||
<target state="translated">Continua con Google</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">48,53</context>
|
||||
<context context-type="linenumber">51,56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3a6e5a6aa78ca864f6542410c5dafb6334538106" datatype="html">
|
||||
@ -2099,7 +2107,7 @@
|
||||
<target state="translated">Bozza</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed1d0d3031aba025b9bf280c1d7c54f44982ed46" datatype="html">
|
||||
@ -2107,7 +2115,7 @@
|
||||
<target state="translated">Importa le attività</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">367</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="446d1376bd7f6cf33d75d7a6022c33d2910327a2" datatype="html">
|
||||
@ -2115,7 +2123,7 @@
|
||||
<target state="translated">Esporta le attività</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="db4ffd639aac51ba929921856f8b15ea29e53695" datatype="html">
|
||||
@ -2123,7 +2131,7 @@
|
||||
<target state="translated">Esporta le bozze come ICS</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">387</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">
|
||||
@ -2131,7 +2139,7 @@
|
||||
<target state="translated">Clona</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">408</context>
|
||||
<context context-type="linenumber">430</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d8c19dd72422ee41c5ca9ad38b80592239e0fd08" datatype="html">
|
||||
@ -2139,7 +2147,7 @@
|
||||
<target state="translated">Esporta la bozza come ICS</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">416</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="670983159637074283" datatype="html">
|
||||
@ -2147,7 +2155,7 @@
|
||||
<target state="translated">Vuoi davvero eliminare questa attività?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
<context context-type="linenumber">196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="170f7de02b14690fb9c1999a16926c0044bfd5c1" datatype="html">
|
||||
@ -2235,7 +2243,7 @@
|
||||
<target state="translated">Inizia</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -2253,6 +2261,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8947585964755853889" datatype="html">
|
||||
<source>Please try again later.</source>
|
||||
@ -2265,6 +2277,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">65,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">
|
||||
<source>Change</source>
|
||||
@ -2303,7 +2319,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">186,188</context>
|
||||
<context context-type="linenumber">194,196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c5ec7bc638db6f37c402e4afab2084f8763e268" datatype="html">
|
||||
@ -2431,11 +2447,11 @@
|
||||
<target state="translated">Deposito</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">38</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
|
||||
@ -2455,7 +2471,7 @@
|
||||
<target state="translated">Mensile</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8511b16abcf065252b350d64e337ba2447db3ffb" datatype="html">
|
||||
@ -2495,11 +2511,15 @@
|
||||
<target state="translated">Filtra per account o tag...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">111</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
<context context-type="linenumber">87</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4550487415324294802" datatype="html">
|
||||
@ -2515,7 +2535,7 @@
|
||||
<target state="translated">Filtra per account, valuta, simbolo o tipo...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">321</context>
|
||||
<context context-type="linenumber">376</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -2559,7 +2579,7 @@
|
||||
<target state="translated">Benchmark</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="44fcf77e86dc038202ebad6b46d1d833d60d781b" datatype="html">
|
||||
@ -2655,7 +2675,7 @@
|
||||
<target state="new">Portfolio Evolution</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8192718423057883427" datatype="html">
|
||||
@ -2687,7 +2707,7 @@
|
||||
<target state="new">Symbol</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1825829511397926879" datatype="html">
|
||||
@ -2695,7 +2715,7 @@
|
||||
<target state="new">Tag</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="787798817533231355" datatype="html">
|
||||
@ -2703,7 +2723,7 @@
|
||||
<target state="new">Cash</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8431989971855844965" datatype="html">
|
||||
@ -2711,7 +2731,7 @@
|
||||
<target state="new">Commodity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1983771552391474467" datatype="html">
|
||||
@ -2719,7 +2739,7 @@
|
||||
<target state="new">Equity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6124744839836623630" datatype="html">
|
||||
@ -2727,7 +2747,7 @@
|
||||
<target state="new">Fixed Income</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8432027249343784512" datatype="html">
|
||||
@ -2735,7 +2755,7 @@
|
||||
<target state="new">Real Estate</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8977365084844053365" datatype="html">
|
||||
@ -2743,7 +2763,7 @@
|
||||
<target state="new">Bond</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2893204435511484886" datatype="html">
|
||||
@ -2751,7 +2771,7 @@
|
||||
<target state="new">Cryptocurrency</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9071695492820527473" datatype="html">
|
||||
@ -2759,7 +2779,7 @@
|
||||
<target state="new">ETF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5734784563242233466" datatype="html">
|
||||
@ -2767,7 +2787,7 @@
|
||||
<target state="new">Mutual Fund</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1270654249046226808" datatype="html">
|
||||
@ -2775,7 +2795,7 @@
|
||||
<target state="new">Precious Metal</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1346519036036997811" datatype="html">
|
||||
@ -2783,7 +2803,7 @@
|
||||
<target state="new">Private Equity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4613338085351943838" datatype="html">
|
||||
@ -2791,7 +2811,7 @@
|
||||
<target state="new">Stock</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6268646680388419543" datatype="html">
|
||||
@ -2831,7 +2851,7 @@
|
||||
<target state="new">North America</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1413778527796351850" datatype="html">
|
||||
@ -2839,7 +2859,7 @@
|
||||
<target state="new">Africa</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3345512471687795386" datatype="html">
|
||||
@ -2847,7 +2867,7 @@
|
||||
<target state="new">Asia</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8350109327144196614" datatype="html">
|
||||
@ -2855,7 +2875,7 @@
|
||||
<target state="new">Europe</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3228811828827738441" datatype="html">
|
||||
@ -2863,7 +2883,7 @@
|
||||
<target state="new">Oceania</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5957846001261659229" datatype="html">
|
||||
@ -2871,7 +2891,7 @@
|
||||
<target state="new">South America</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="73f8489a3ae4d805787b8350d3d91e03e830115b" datatype="html">
|
||||
@ -2895,7 +2915,7 @@
|
||||
<target state="new">Back</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">61,67</context>
|
||||
<context context-type="linenumber">79,83</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec2d3a89b366d1ca80be056e9e71f0165ae75c7b" datatype="html">
|
||||
@ -2943,7 +2963,7 @@
|
||||
<target state="new">Dividend</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6410cffb96159fcff46d91effc26df0e240bc0e3" datatype="html">
|
||||
@ -2951,7 +2971,7 @@
|
||||
<target state="new">Dividend Timeline</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7608037008789240367" datatype="html">
|
||||
@ -2967,9 +2987,65 @@
|
||||
<target state="new">User Signup</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8763985977445247551" datatype="html">
|
||||
<source>Validating data...</source>
|
||||
<target state="new">Validating data...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">
|
||||
<source>Import</source>
|
||||
<target state="new">Import</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">94,99</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1803867056160333091" datatype="html">
|
||||
<source>Securities</source>
|
||||
<target state="new">Securities</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3229595422546554334" datatype="html">
|
||||
<source>Jobs</source>
|
||||
<target state="new">Jobs</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4798457301875181136" datatype="html">
|
||||
<source>Market Data</source>
|
||||
<target state="new">Market Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4555457172864212828" datatype="html">
|
||||
<source>Users</source>
|
||||
<target state="new">Users</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4739818603756173797" datatype="html">
|
||||
<source>Summary</source>
|
||||
<target state="new">Summary</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<target state="translated">Het risico van verlies in de handel kan aanzienlijk zijn. Het is niet raadzaam om geld te beleggen dat u op korte termijn nodig kunt hebben.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">55,56</context>
|
||||
<context context-type="linenumber">56,57</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b6192ee60a5e0e40874f4d02fbaaa584a0f1541e" datatype="html">
|
||||
@ -54,7 +54,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
<context context-type="linenumber">78</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">
|
||||
@ -126,7 +126,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">93</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -142,7 +142,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
<context context-type="linenumber">73</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">
|
||||
@ -157,12 +157,16 @@
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">235</context>
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">117,118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -178,7 +182,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">
|
||||
@ -198,7 +202,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">420</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8280212421112607879" datatype="html">
|
||||
@ -338,7 +342,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">66</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="78a0f1c3cb3e3af864d2c21e621ba3b40b4e0afc" datatype="html">
|
||||
@ -374,7 +378,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">218,222</context>
|
||||
<context context-type="linenumber">248,252</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">87,91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -402,7 +410,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">225,230</context>
|
||||
<context context-type="linenumber">255,260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="86c6e9437398addbc04b6570de19b2cb4afe6084" datatype="html">
|
||||
@ -454,7 +462,7 @@
|
||||
<target state="translated">Voeg een valuta toe:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8122024350760043460" datatype="html">
|
||||
@ -462,7 +470,7 @@
|
||||
<target state="translated">Wilt u deze coupon echt verwijderen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
<context context-type="linenumber">124</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1110981355132746478" datatype="html">
|
||||
@ -470,7 +478,7 @@
|
||||
<target state="translated">Wilt u deze valuta echt verwijderen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6470890277760887814" datatype="html">
|
||||
@ -478,7 +486,7 @@
|
||||
<target state="translated">Wilt u echt de cache legen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">150</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2712770700065625080" datatype="html">
|
||||
@ -486,7 +494,7 @@
|
||||
<target state="translated">Stel uw systeemboodschap in:</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec03f5c28b327fc7ecfc4b20a0a7cf14a75843ff" datatype="html">
|
||||
@ -558,7 +566,7 @@
|
||||
<target state="translated">Systeembericht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">122</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="657028d5fc9c3da8f2d667b6b15cd0df8b9a3729" datatype="html">
|
||||
@ -566,7 +574,7 @@
|
||||
<target state="translated">Bericht instellen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7fd64c34428887e4cd56d05534b89c100b8544ad" datatype="html">
|
||||
@ -574,7 +582,7 @@
|
||||
<target state="translated">Alleen lezen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e698b03c34b459b1b006d7f0473a49b9fcf5dfc1" datatype="html">
|
||||
@ -582,7 +590,7 @@
|
||||
<target state="translated">Coupons</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">
|
||||
@ -590,7 +598,7 @@
|
||||
<target state="translated">Toevoegen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e799e6b926557f0098f41888cdf8df868eff3d47" datatype="html">
|
||||
@ -598,7 +606,7 @@
|
||||
<target state="translated">Huishouding</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7ac907e52a7ce2ac70b1786eb5f403ce306ce1f" datatype="html">
|
||||
@ -606,7 +614,7 @@
|
||||
<target state="translated">Cache legen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2817099043823177227" datatype="html">
|
||||
@ -746,7 +754,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">
|
||||
@ -758,7 +766,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="28094f38aac43d3cb6edaf98a281fe443a930b5e" datatype="html">
|
||||
@ -790,7 +798,7 @@
|
||||
<target state="translated">Kenmerken</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">246</context>
|
||||
<context context-type="linenumber">249</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d3ad0babadabfa3e3b7f51637651822f3e56a7b1" datatype="html">
|
||||
@ -798,7 +806,7 @@
|
||||
<target state="translated">Markten</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-market/home-market.html</context>
|
||||
@ -818,7 +826,7 @@
|
||||
<target state="translated">Aanmelden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts</context>
|
||||
@ -830,7 +838,7 @@
|
||||
<target state="translated">Oeps! Onjuiste beveiligingstoken.</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -858,7 +866,7 @@
|
||||
<target state="translated">Samenvatting</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-summary/home-summary.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a95e051c4fd80012488effb15d2842b2155ae5e" datatype="html">
|
||||
@ -886,7 +894,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">31,33</context>
|
||||
<context context-type="linenumber">31,32</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page.html</context>
|
||||
@ -898,7 +906,7 @@
|
||||
<target state="translated">Aanmelden met Internet Identity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">30,32</context>
|
||||
<context context-type="linenumber">30,34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d745a22ae7b825b146ca8185126c482597f1d485" datatype="html">
|
||||
@ -906,7 +914,7 @@
|
||||
<target state="translated">Aanmelden met Google</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">37,43</context>
|
||||
<context context-type="linenumber">40,46</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d9b3881b98593a64eebeb867422c00e037b37b9b" datatype="html">
|
||||
@ -914,7 +922,7 @@
|
||||
<target state="translated">Aangemeld blijven</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">46,52</context>
|
||||
<context context-type="linenumber">49,55</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="287d3301a32a65a1b31116bda5d3a6463158c42a" datatype="html">
|
||||
@ -922,11 +930,11 @@
|
||||
<target state="translated">Aanmelden</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">289</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">56,60</context>
|
||||
<context context-type="linenumber">59,63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="41c1e1f19aabc4a4bf198e4a189436a1f69257bb" datatype="html">
|
||||
@ -944,6 +952,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe708b572beec788b18edd1b5852d63c07dfaead" datatype="html">
|
||||
<source>Sell</source>
|
||||
@ -952,6 +964,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bbc9e4cebf91162be7d3e324ca5984d576e462c" datatype="html">
|
||||
<source>Investment</source>
|
||||
@ -1068,6 +1084,14 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">115,117</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6785405835169448749" datatype="html">
|
||||
<source>Please enter the amount of your emergency fund:</source>
|
||||
@ -1108,13 +1132,17 @@
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
<source>Tags</source>
|
||||
<target state="translated">Tags</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">201,203</context>
|
||||
<context context-type="linenumber">207,210</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="43d544c2e88959f6c59cc4db419528fb0776bd6c" datatype="html">
|
||||
@ -1228,6 +1256,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">66,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1726363342938046830" datatype="html">
|
||||
<source>About</source>
|
||||
@ -1346,7 +1378,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">323</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
|
||||
@ -1534,7 +1566,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">123</context>
|
||||
<context context-type="linenumber">145</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="237bd6e6d07f448b7884f05f56a20e30df8622c4" datatype="html">
|
||||
@ -1578,7 +1610,7 @@
|
||||
<target state="translated">Beheerderscontrole</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7751010942038334793" datatype="html">
|
||||
@ -1616,10 +1648,6 @@
|
||||
<trans-unit id="2614607010577950577" datatype="html">
|
||||
<source>Overview</source>
|
||||
<target state="translated">Overzicht</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/zen/zen-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@ -1628,6 +1656,10 @@
|
||||
<trans-unit id="7307236732616849044" datatype="html">
|
||||
<source>Markets</source>
|
||||
<target state="translated">Markten</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/markets/markets-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1738,7 +1770,7 @@
|
||||
<target state="translated">Tijdlijn investeringen</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">143</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6ae1c94f6bad274424f97e9bc8766242c1577447" datatype="html">
|
||||
@ -1746,7 +1778,7 @@
|
||||
<target state="translated">Top</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6723d5c967329a3ac75524cf0c1af5ced022b9a3" datatype="html">
|
||||
@ -1754,7 +1786,7 @@
|
||||
<target state="translated">Onder</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5857197365507636437" datatype="html">
|
||||
@ -1792,6 +1824,10 @@
|
||||
<trans-unit id="803941175683258052" datatype="html">
|
||||
<source>Holdings</source>
|
||||
<target state="translated">Participaties</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1825,38 +1861,14 @@
|
||||
<context context-type="linenumber">8,11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed4df708b0da9af32f3ba7174729749f6c36f29a" datatype="html">
|
||||
<source>BUY</source>
|
||||
<target state="translated">KOPEN</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2389486e186b91e335cd9278cfe3af185b2ce0c2" datatype="html">
|
||||
<source>DIVIDEND</source>
|
||||
<target state="translated">DIVIDEND</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="19288e8ab62dd8d905d5f6dac7a0c244062ab4f5" datatype="html">
|
||||
<source>ITEM</source>
|
||||
<target state="translated">ITEM</target>
|
||||
<trans-unit id="9bca420227979312de74f0a932a003437410b1ab" datatype="html">
|
||||
<source>Item</source>
|
||||
<target state="new">ITEM</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">16,18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e14e3acc1ebdb5839aa65787f4ce52558659a9cc" datatype="html">
|
||||
<source>SELL</source>
|
||||
<target state="translated">VERKOPEN</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5ab4d451ff9ce6d18d53360c51e7cd6e91c69555" datatype="html">
|
||||
<source>Name, symbol or ISIN</source>
|
||||
<target state="translated">Naam, symbool of ISIN</target>
|
||||
@ -1878,7 +1890,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6713459747f0f67e53a8a0be0bba45ed324bc112" datatype="html">
|
||||
@ -1886,11 +1898,11 @@
|
||||
<target state="translated">Prijs per eenheid</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">112,113</context>
|
||||
<context context-type="linenumber">118,121</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">173</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="160f1ffbd26df073d0fbd02cf8ce0d8cea7603b0" datatype="html">
|
||||
@ -1898,15 +1910,15 @@
|
||||
<target state="translated">Transactiekosten</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">131,132</context>
|
||||
<context context-type="linenumber">139,140</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">148,149</context>
|
||||
<context context-type="linenumber">156,157</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c54befce78d70e20c215f10a00e617245f53bc9" datatype="html">
|
||||
@ -1918,7 +1930,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">157,160</context>
|
||||
<context context-type="linenumber">165,168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1938,7 +1950,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">171,173</context>
|
||||
<context context-type="linenumber">179,181</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2309808536212982229" datatype="html">
|
||||
@ -1962,7 +1974,7 @@
|
||||
<target state="translated">Import is voltooid</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">167,166</context>
|
||||
<context context-type="linenumber">55,54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5080775557941296581" datatype="html">
|
||||
@ -1984,10 +1996,6 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4056a76e7a710ab32285892a58d66f2d1a927796" datatype="html">
|
||||
<source>Currencies</source>
|
||||
@ -2026,7 +2034,7 @@
|
||||
<target state="translated">Ga verder met Internet Identity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">41,43</context>
|
||||
<context context-type="linenumber">41,44</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7eb7fc17d2f646c6c835f4da0b96f255b515cf4" datatype="html">
|
||||
@ -2034,7 +2042,7 @@
|
||||
<target state="translated">Verder met Google</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">48,53</context>
|
||||
<context context-type="linenumber">51,56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3a6e5a6aa78ca864f6542410c5dafb6334538106" datatype="html">
|
||||
@ -2098,7 +2106,7 @@
|
||||
<target state="translated">Ontwerp</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed1d0d3031aba025b9bf280c1d7c54f44982ed46" datatype="html">
|
||||
@ -2106,7 +2114,7 @@
|
||||
<target state="translated">Activiteiten importeren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">367</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="446d1376bd7f6cf33d75d7a6022c33d2910327a2" datatype="html">
|
||||
@ -2114,7 +2122,7 @@
|
||||
<target state="translated">Activiteiten exporteren</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="db4ffd639aac51ba929921856f8b15ea29e53695" datatype="html">
|
||||
@ -2122,7 +2130,7 @@
|
||||
<target state="translated">Concepten exporteren als ICS</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">387</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">
|
||||
@ -2130,7 +2138,7 @@
|
||||
<target state="translated">Kloon</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">408</context>
|
||||
<context context-type="linenumber">430</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d8c19dd72422ee41c5ca9ad38b80592239e0fd08" datatype="html">
|
||||
@ -2138,7 +2146,7 @@
|
||||
<target state="translated">Concepten exporteren als ICS</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">416</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="670983159637074283" datatype="html">
|
||||
@ -2146,7 +2154,7 @@
|
||||
<target state="translated">Wilt u deze activiteit echt verwijderen?</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
<context context-type="linenumber">196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="170f7de02b14690fb9c1999a16926c0044bfd5c1" datatype="html">
|
||||
@ -2234,7 +2242,7 @@
|
||||
<target state="translated">Aan de slag</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -2252,6 +2260,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8947585964755853889" datatype="html">
|
||||
<source>Please try again later.</source>
|
||||
@ -2264,6 +2276,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">65,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">
|
||||
<source>Change</source>
|
||||
@ -2302,7 +2318,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">186,188</context>
|
||||
<context context-type="linenumber">194,196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c5ec7bc638db6f37c402e4afab2084f8763e268" datatype="html">
|
||||
@ -2430,11 +2446,11 @@
|
||||
<target state="translated">Storting</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">38</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
|
||||
@ -2454,7 +2470,7 @@
|
||||
<target state="translated">Maandelijks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8511b16abcf065252b350d64e337ba2447db3ffb" datatype="html">
|
||||
@ -2494,11 +2510,15 @@
|
||||
<target state="translated">Filter op account of tag...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">111</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
<context context-type="linenumber">87</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4550487415324294802" datatype="html">
|
||||
@ -2514,7 +2534,7 @@
|
||||
<target state="translated">Filter op rekening, valuta, symbool of type...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">321</context>
|
||||
<context context-type="linenumber">376</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -2558,7 +2578,7 @@
|
||||
<target state="translated">Benchmarks</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="44fcf77e86dc038202ebad6b46d1d833d60d781b" datatype="html">
|
||||
@ -2654,7 +2674,7 @@
|
||||
<target state="new">Portfolio Evolution</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8192718423057883427" datatype="html">
|
||||
@ -2686,7 +2706,7 @@
|
||||
<target state="new">Symbol</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1825829511397926879" datatype="html">
|
||||
@ -2694,7 +2714,7 @@
|
||||
<target state="new">Tag</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="787798817533231355" datatype="html">
|
||||
@ -2702,7 +2722,7 @@
|
||||
<target state="new">Cash</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8431989971855844965" datatype="html">
|
||||
@ -2710,7 +2730,7 @@
|
||||
<target state="new">Commodity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1983771552391474467" datatype="html">
|
||||
@ -2718,7 +2738,7 @@
|
||||
<target state="new">Equity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6124744839836623630" datatype="html">
|
||||
@ -2726,7 +2746,7 @@
|
||||
<target state="new">Fixed Income</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8432027249343784512" datatype="html">
|
||||
@ -2734,7 +2754,7 @@
|
||||
<target state="new">Real Estate</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8977365084844053365" datatype="html">
|
||||
@ -2742,7 +2762,7 @@
|
||||
<target state="new">Bond</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2893204435511484886" datatype="html">
|
||||
@ -2750,7 +2770,7 @@
|
||||
<target state="new">Cryptocurrency</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9071695492820527473" datatype="html">
|
||||
@ -2758,7 +2778,7 @@
|
||||
<target state="new">ETF</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5734784563242233466" datatype="html">
|
||||
@ -2766,7 +2786,7 @@
|
||||
<target state="new">Mutual Fund</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1270654249046226808" datatype="html">
|
||||
@ -2774,7 +2794,7 @@
|
||||
<target state="new">Precious Metal</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1346519036036997811" datatype="html">
|
||||
@ -2782,7 +2802,7 @@
|
||||
<target state="new">Private Equity</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4613338085351943838" datatype="html">
|
||||
@ -2790,7 +2810,7 @@
|
||||
<target state="new">Stock</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6268646680388419543" datatype="html">
|
||||
@ -2830,7 +2850,7 @@
|
||||
<target state="new">North America</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1413778527796351850" datatype="html">
|
||||
@ -2838,7 +2858,7 @@
|
||||
<target state="new">Africa</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3345512471687795386" datatype="html">
|
||||
@ -2846,7 +2866,7 @@
|
||||
<target state="new">Asia</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8350109327144196614" datatype="html">
|
||||
@ -2854,7 +2874,7 @@
|
||||
<target state="new">Europe</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3228811828827738441" datatype="html">
|
||||
@ -2862,7 +2882,7 @@
|
||||
<target state="new">Oceania</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5957846001261659229" datatype="html">
|
||||
@ -2870,7 +2890,7 @@
|
||||
<target state="new">South America</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="73f8489a3ae4d805787b8350d3d91e03e830115b" datatype="html">
|
||||
@ -2894,7 +2914,7 @@
|
||||
<target state="new">Back</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">61,67</context>
|
||||
<context context-type="linenumber">79,83</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec2d3a89b366d1ca80be056e9e71f0165ae75c7b" datatype="html">
|
||||
@ -2942,7 +2962,7 @@
|
||||
<target state="new">Dividend</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6410cffb96159fcff46d91effc26df0e240bc0e3" datatype="html">
|
||||
@ -2950,7 +2970,7 @@
|
||||
<target state="new">Dividend Timeline</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7608037008789240367" datatype="html">
|
||||
@ -2966,9 +2986,65 @@
|
||||
<target state="new">User Signup</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8763985977445247551" datatype="html">
|
||||
<source>Validating data...</source>
|
||||
<target state="new">Validating data...</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">
|
||||
<source>Import</source>
|
||||
<target state="new">Import</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">94,99</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1803867056160333091" datatype="html">
|
||||
<source>Securities</source>
|
||||
<target state="new">Securities</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3229595422546554334" datatype="html">
|
||||
<source>Jobs</source>
|
||||
<target state="new">Jobs</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4798457301875181136" datatype="html">
|
||||
<source>Market Data</source>
|
||||
<target state="new">Market Data</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4555457172864212828" datatype="html">
|
||||
<source>Users</source>
|
||||
<target state="new">Users</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4739818603756173797" datatype="html">
|
||||
<source>Summary</source>
|
||||
<target state="new">Summary</target>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -17,7 +17,7 @@
|
||||
<source>The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/app.component.html</context>
|
||||
<context context-type="linenumber">55,56</context>
|
||||
<context context-type="linenumber">56,57</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="b6192ee60a5e0e40874f4d02fbaaa584a0f1541e" datatype="html">
|
||||
@ -51,7 +51,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">56</context>
|
||||
<context context-type="linenumber">78</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">
|
||||
@ -118,7 +118,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">93</context>
|
||||
<context context-type="linenumber">115</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -133,7 +133,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">51</context>
|
||||
<context context-type="linenumber">73</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">
|
||||
@ -147,12 +147,16 @@
|
||||
<context context-type="linenumber">182</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">235</context>
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">117,118</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">270</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/holdings-table/holdings-table.component.html</context>
|
||||
@ -167,7 +171,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">404</context>
|
||||
<context context-type="linenumber">426</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">
|
||||
@ -186,7 +190,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">420</context>
|
||||
<context context-type="linenumber">442</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8280212421112607879" datatype="html">
|
||||
@ -311,7 +315,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">66</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="78a0f1c3cb3e3af864d2c21e621ba3b40b4e0afc" datatype="html">
|
||||
@ -345,7 +349,11 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">218,222</context>
|
||||
<context context-type="linenumber">248,252</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">87,91</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html</context>
|
||||
@ -372,7 +380,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">225,230</context>
|
||||
<context context-type="linenumber">255,260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="86c6e9437398addbc04b6570de19b2cb4afe6084" datatype="html">
|
||||
@ -419,35 +427,35 @@
|
||||
<source>Please add a currency:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">110</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8122024350760043460" datatype="html">
|
||||
<source>Do you really want to delete this coupon?</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">120</context>
|
||||
<context context-type="linenumber">124</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1110981355132746478" datatype="html">
|
||||
<source>Do you really want to delete this currency?</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6470890277760887814" datatype="html">
|
||||
<source>Do you really want to flush the cache?</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">150</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2712770700065625080" datatype="html">
|
||||
<source>Please set your system message:</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.component.ts</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">184</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec03f5c28b327fc7ecfc4b20a0a7cf14a75843ff" datatype="html">
|
||||
@ -511,49 +519,49 @@
|
||||
<source>System Message</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">106</context>
|
||||
<context context-type="linenumber">122</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="657028d5fc9c3da8f2d667b6b15cd0df8b9a3729" datatype="html">
|
||||
<source>Set Message</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">128</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7fd64c34428887e4cd56d05534b89c100b8544ad" datatype="html">
|
||||
<source>Read-only Mode</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">96</context>
|
||||
<context context-type="linenumber">112</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e698b03c34b459b1b006d7f0473a49b9fcf5dfc1" datatype="html">
|
||||
<source>Coupons</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
<context context-type="linenumber">152</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">
|
||||
<source>Add</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">171</context>
|
||||
<context context-type="linenumber">187</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e799e6b926557f0098f41888cdf8df868eff3d47" datatype="html">
|
||||
<source>Housekeeping</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">178</context>
|
||||
<context context-type="linenumber">194</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7ac907e52a7ce2ac70b1786eb5f403ce306ce1f" datatype="html">
|
||||
<source>Flush Cache</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">182</context>
|
||||
<context context-type="linenumber">198</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2817099043823177227" datatype="html">
|
||||
@ -681,7 +689,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
<context context-type="linenumber">271</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">
|
||||
@ -692,7 +700,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">257</context>
|
||||
<context context-type="linenumber">260</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="28094f38aac43d3cb6edaf98a281fe443a930b5e" datatype="html">
|
||||
@ -720,14 +728,14 @@
|
||||
<source>Features</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">246</context>
|
||||
<context context-type="linenumber">249</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d3ad0babadabfa3e3b7f51637651822f3e56a7b1" datatype="html">
|
||||
<source>Markets</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">280</context>
|
||||
<context context-type="linenumber">283</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-market/home-market.html</context>
|
||||
@ -745,7 +753,7 @@
|
||||
<source>Sign in</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">118</context>
|
||||
<context context-type="linenumber">119</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts</context>
|
||||
@ -756,7 +764,7 @@
|
||||
<source>Oops! Incorrect Security Token.</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.ts</context>
|
||||
<context context-type="linenumber">132</context>
|
||||
<context context-type="linenumber">133</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec8b93e2ecc776c8dc2e43a791b6974612a90148" datatype="html">
|
||||
@ -781,7 +789,7 @@
|
||||
<source>Summary</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/home-summary/home-summary.html</context>
|
||||
<context context-type="linenumber">6</context>
|
||||
<context context-type="linenumber">2</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6a95e051c4fd80012488effb15d2842b2155ae5e" datatype="html">
|
||||
@ -807,7 +815,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">31,33</context>
|
||||
<context context-type="linenumber">31,32</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/webauthn/webauthn-page.html</context>
|
||||
@ -818,32 +826,32 @@
|
||||
<source>Sign in with Internet Identity</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">30,32</context>
|
||||
<context context-type="linenumber">30,34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d745a22ae7b825b146ca8185126c482597f1d485" datatype="html">
|
||||
<source>Sign in with Google</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">37,43</context>
|
||||
<context context-type="linenumber">40,46</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d9b3881b98593a64eebeb867422c00e037b37b9b" datatype="html">
|
||||
<source>Stay signed in</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">46,52</context>
|
||||
<context context-type="linenumber">49,55</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="287d3301a32a65a1b31116bda5d3a6463158c42a" datatype="html">
|
||||
<source>Sign in</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">289</context>
|
||||
<context context-type="linenumber">292</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html</context>
|
||||
<context context-type="linenumber">56,60</context>
|
||||
<context context-type="linenumber">59,63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="41c1e1f19aabc4a4bf198e4a189436a1f69257bb" datatype="html">
|
||||
@ -859,6 +867,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="fe708b572beec788b18edd1b5852d63c07dfaead" datatype="html">
|
||||
<source>Sell</source>
|
||||
@ -866,6 +878,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9bbc9e4cebf91162be7d3e324ca5984d576e462c" datatype="html">
|
||||
<source>Investment</source>
|
||||
@ -968,6 +984,14 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html</context>
|
||||
<context context-type="linenumber">214</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">115,117</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6785405835169448749" datatype="html">
|
||||
<source>Please enter the amount of your emergency fund:</source>
|
||||
@ -1004,13 +1028,17 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
|
||||
<source>Tags</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">92</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html</context>
|
||||
<context context-type="linenumber">234</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">201,203</context>
|
||||
<context context-type="linenumber">207,210</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="43d544c2e88959f6c59cc4db419528fb0776bd6c" datatype="html">
|
||||
@ -1112,6 +1140,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">89</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">66,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1726363342938046830" datatype="html">
|
||||
<source>About</source>
|
||||
@ -1216,7 +1248,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">301</context>
|
||||
<context context-type="linenumber">323</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
|
||||
@ -1382,7 +1414,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">123</context>
|
||||
<context context-type="linenumber">145</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="237bd6e6d07f448b7884f05f56a20e30df8622c4" datatype="html">
|
||||
@ -1422,7 +1454,7 @@
|
||||
<source>Admin Control</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7751010942038334793" datatype="html">
|
||||
@ -1455,10 +1487,6 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="2614607010577950577" datatype="html">
|
||||
<source>Overview</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/zen/zen-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
@ -1466,6 +1494,10 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="7307236732616849044" datatype="html">
|
||||
<source>Markets</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/markets/markets-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1563,21 +1595,21 @@
|
||||
<source>Investment Timeline</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">143</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6ae1c94f6bad274424f97e9bc8766242c1577447" datatype="html">
|
||||
<source>Top</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">40</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6723d5c967329a3ac75524cf0c1af5ced022b9a3" datatype="html">
|
||||
<source>Bottom</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">70</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5857197365507636437" datatype="html">
|
||||
@ -1610,6 +1642,10 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="803941175683258052" datatype="html">
|
||||
<source>Holdings</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
@ -1640,34 +1676,13 @@
|
||||
<context context-type="linenumber">8,11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed4df708b0da9af32f3ba7174729749f6c36f29a" datatype="html">
|
||||
<source>BUY</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">14,15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2389486e186b91e335cd9278cfe3af185b2ce0c2" datatype="html">
|
||||
<source>DIVIDEND</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">15,17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="19288e8ab62dd8d905d5f6dac7a0c244062ab4f5" datatype="html">
|
||||
<source>ITEM</source>
|
||||
<trans-unit id="9bca420227979312de74f0a932a003437410b1ab" datatype="html">
|
||||
<source>Item</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">16,18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="e14e3acc1ebdb5839aa65787f4ce52558659a9cc" datatype="html">
|
||||
<source>SELL</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">17,21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5ab4d451ff9ce6d18d53360c51e7cd6e91c69555" datatype="html">
|
||||
<source>Name, symbol or ISIN</source>
|
||||
<context-group purpose="location">
|
||||
@ -1687,33 +1702,33 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">144</context>
|
||||
<context context-type="linenumber">166</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6713459747f0f67e53a8a0be0bba45ed324bc112" datatype="html">
|
||||
<source>Unit Price</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">112,113</context>
|
||||
<context context-type="linenumber">118,121</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">173</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="160f1ffbd26df073d0fbd02cf8ce0d8cea7603b0" datatype="html">
|
||||
<source>Fee</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">131,132</context>
|
||||
<context context-type="linenumber">139,140</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">148,149</context>
|
||||
<context context-type="linenumber">156,157</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">202</context>
|
||||
<context context-type="linenumber">224</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5c54befce78d70e20c215f10a00e617245f53bc9" datatype="html">
|
||||
@ -1724,7 +1739,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">157,160</context>
|
||||
<context context-type="linenumber">165,168</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
|
||||
@ -1743,7 +1758,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">171,173</context>
|
||||
<context context-type="linenumber">179,181</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2309808536212982229" datatype="html">
|
||||
@ -1764,7 +1779,7 @@
|
||||
<source>Import has been completed</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">167,166</context>
|
||||
<context context-type="linenumber">55,54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5080775557941296581" datatype="html">
|
||||
@ -1784,10 +1799,6 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/public/public-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">12</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4056a76e7a710ab32285892a58d66f2d1a927796" datatype="html">
|
||||
<source>Currencies</source>
|
||||
@ -1821,14 +1832,14 @@
|
||||
<source>Continue with Internet Identity</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">41,43</context>
|
||||
<context context-type="linenumber">41,44</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="c7eb7fc17d2f646c6c835f4da0b96f255b515cf4" datatype="html">
|
||||
<source>Continue with Google</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/register/register-page.html</context>
|
||||
<context context-type="linenumber">48,53</context>
|
||||
<context context-type="linenumber">51,56</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3a6e5a6aa78ca864f6542410c5dafb6334538106" datatype="html">
|
||||
@ -1884,49 +1895,49 @@
|
||||
<source>Draft</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">103</context>
|
||||
<context context-type="linenumber">125</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ed1d0d3031aba025b9bf280c1d7c54f44982ed46" datatype="html">
|
||||
<source>Import Activities</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">367</context>
|
||||
<context context-type="linenumber">389</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="446d1376bd7f6cf33d75d7a6022c33d2910327a2" datatype="html">
|
||||
<source>Export Activities</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">377</context>
|
||||
<context context-type="linenumber">399</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="db4ffd639aac51ba929921856f8b15ea29e53695" datatype="html">
|
||||
<source>Export Drafts as ICS</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">387</context>
|
||||
<context context-type="linenumber">409</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">
|
||||
<source>Clone</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">408</context>
|
||||
<context context-type="linenumber">430</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="d8c19dd72422ee41c5ca9ad38b80592239e0fd08" datatype="html">
|
||||
<source>Export Draft as ICS</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
|
||||
<context context-type="linenumber">416</context>
|
||||
<context context-type="linenumber">438</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="670983159637074283" datatype="html">
|
||||
<source>Do you really want to delete this activity?</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">149</context>
|
||||
<context context-type="linenumber">196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="170f7de02b14690fb9c1999a16926c0044bfd5c1" datatype="html">
|
||||
@ -2003,7 +2014,7 @@
|
||||
<source>Get started</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/header/header.component.html</context>
|
||||
<context context-type="linenumber">297</context>
|
||||
<context context-type="linenumber">300</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4190182554887994764" datatype="html">
|
||||
@ -2019,6 +2030,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">63</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8947585964755853889" datatype="html">
|
||||
<source>Please try again later.</source>
|
||||
@ -2030,6 +2045,10 @@
|
||||
<context context-type="sourcefile">apps/client/src/app/core/http-response.interceptor.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">65,62</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">
|
||||
<source>Change</source>
|
||||
@ -2065,7 +2084,7 @@
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html</context>
|
||||
<context context-type="linenumber">186,188</context>
|
||||
<context context-type="linenumber">194,196</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3c5ec7bc638db6f37c402e4afab2084f8763e268" datatype="html">
|
||||
@ -2179,11 +2198,11 @@
|
||||
<source>Deposit</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">38</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">48</context>
|
||||
<context context-type="linenumber">59</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/fire-calculator/fire-calculator.component.ts</context>
|
||||
@ -2201,7 +2220,7 @@
|
||||
<source>Monthly</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">44</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8511b16abcf065252b350d64e337ba2447db3ffb" datatype="html">
|
||||
@ -2236,11 +2255,15 @@
|
||||
<source>Filter by account or tag...</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts</context>
|
||||
<context context-type="linenumber">137</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">111</context>
|
||||
</context-group>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts</context>
|
||||
<context context-type="linenumber">88</context>
|
||||
<context context-type="linenumber">87</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4550487415324294802" datatype="html">
|
||||
@ -2254,7 +2277,7 @@
|
||||
<source>Filter by account, currency, symbol or type...</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.ts</context>
|
||||
<context context-type="linenumber">321</context>
|
||||
<context context-type="linenumber">376</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
|
||||
@ -2293,7 +2316,7 @@
|
||||
<source>Benchmarks</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">76</context>
|
||||
<context context-type="linenumber">79</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="44fcf77e86dc038202ebad6b46d1d833d60d781b" datatype="html">
|
||||
@ -2377,7 +2400,7 @@
|
||||
<source>Portfolio Evolution</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">113</context>
|
||||
<context context-type="linenumber">136</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8192718423057883427" datatype="html">
|
||||
@ -2391,35 +2414,35 @@
|
||||
<source>Precious Metal</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1825829511397926879" datatype="html">
|
||||
<source>Tag</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
<context context-type="linenumber">11</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1983771552391474467" datatype="html">
|
||||
<source>Equity</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8432027249343784512" datatype="html">
|
||||
<source>Real Estate</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
<context context-type="linenumber">18</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="2893204435511484886" datatype="html">
|
||||
<source>Cryptocurrency</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4086606389696938932" datatype="html">
|
||||
@ -2433,14 +2456,14 @@
|
||||
<source>Stock</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1346519036036997811" datatype="html">
|
||||
<source>Private Equity</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">25</context>
|
||||
<context context-type="linenumber">26</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4574987680940794089" datatype="html">
|
||||
@ -2454,49 +2477,49 @@
|
||||
<source>Mutual Fund</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
<context context-type="linenumber">24</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="787798817533231355" datatype="html">
|
||||
<source>Cash</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">13</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8106025670158480144" datatype="html">
|
||||
<source>Symbol</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
<context context-type="linenumber">10</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8431989971855844965" datatype="html">
|
||||
<source>Commodity</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">14</context>
|
||||
<context context-type="linenumber">15</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8977365084844053365" datatype="html">
|
||||
<source>Bond</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="9071695492820527473" datatype="html">
|
||||
<source>ETF</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">22</context>
|
||||
<context context-type="linenumber">23</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6124744839836623630" datatype="html">
|
||||
<source>Fixed Income</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4893616715766810081" datatype="html">
|
||||
@ -2532,42 +2555,42 @@
|
||||
<source>North America</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1413778527796351850" datatype="html">
|
||||
<source>Africa</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">29</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3228811828827738441" datatype="html">
|
||||
<source>Oceania</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3345512471687795386" datatype="html">
|
||||
<source>Asia</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">30</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="5957846001261659229" datatype="html">
|
||||
<source>South America</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8350109327144196614" datatype="html">
|
||||
<source>Europe</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">31</context>
|
||||
<context context-type="linenumber">32</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="6f9fd3da06dc9000eef0d4dcbb37747b303048e9" datatype="html">
|
||||
@ -2588,7 +2611,7 @@
|
||||
<source>Back</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">61,67</context>
|
||||
<context context-type="linenumber">79,83</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="ec2d3a89b366d1ca80be056e9e71f0165ae75c7b" datatype="html">
|
||||
@ -2631,7 +2654,7 @@
|
||||
<source>Dividend Timeline</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.html</context>
|
||||
<context context-type="linenumber">180</context>
|
||||
<context context-type="linenumber">203</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="7608037008789240367" datatype="html">
|
||||
@ -2645,16 +2668,65 @@
|
||||
<source>Dividend</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts</context>
|
||||
<context context-type="linenumber">34</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="62f17fd50522539fd4c85854828db9d2e1c5330f" datatype="html">
|
||||
<source>User Signup</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/components/admin-overview/admin-overview.html</context>
|
||||
<context context-type="linenumber">102</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="1803867056160333091" datatype="html">
|
||||
<source>Securities</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="8763985977445247551" datatype="html">
|
||||
<source>Validating data...</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts</context>
|
||||
<context context-type="linenumber">86</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">
|
||||
<source>Import</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html</context>
|
||||
<context context-type="linenumber">94,99</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="3229595422546554334" datatype="html">
|
||||
<source>Jobs</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4555457172864212828" datatype="html">
|
||||
<source>Users</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">27</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4739818603756173797" datatype="html">
|
||||
<source>Summary</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/home/home-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">28</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
<trans-unit id="4798457301875181136" datatype="html">
|
||||
<source>Market Data</source>
|
||||
<context-group purpose="location">
|
||||
<context context-type="sourcefile">apps/client/src/app/pages/admin/admin-page-routing.module.ts</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
@ -4,7 +4,8 @@ import ms from 'ms';
|
||||
|
||||
export const DEMO_USER_ID = '9b112b4d-3b7d-4bad-9bdd-3b0f7b4dac2f';
|
||||
|
||||
export const ghostfolioScraperApiSymbolPrefix = '_GF_';
|
||||
export const ghostfolioPrefix = 'GF';
|
||||
export const ghostfolioScraperApiSymbolPrefix = `_${ghostfolioPrefix}_`;
|
||||
export const ghostfolioCashSymbol = `${ghostfolioScraperApiSymbolPrefix}CASH`;
|
||||
export const ghostfolioFearAndGreedIndexDataSource = DataSource.RAPID_API;
|
||||
export const ghostfolioFearAndGreedIndexSymbol = `${ghostfolioScraperApiSymbolPrefix}FEAR_AND_GREED_INDEX`;
|
||||
|
@ -32,6 +32,7 @@ import { PortfolioSummary } from './portfolio-summary.interface';
|
||||
import { Position } from './position.interface';
|
||||
import { BenchmarkResponse } from './responses/benchmark-response.interface';
|
||||
import { ResponseError } from './responses/errors.interface';
|
||||
import { ImportResponse } from './responses/import-response.interface';
|
||||
import { OAuthResponse } from './responses/oauth-response.interface';
|
||||
import { PortfolioPerformanceResponse } from './responses/portfolio-performance-response.interface';
|
||||
import { ScraperConfiguration } from './scraper-configuration.interface';
|
||||
@ -58,6 +59,7 @@ export {
|
||||
Filter,
|
||||
FilterGroup,
|
||||
HistoricalDataItem,
|
||||
ImportResponse,
|
||||
InfoItem,
|
||||
LineChartItem,
|
||||
OAuthResponse,
|
||||
|
@ -0,0 +1,5 @@
|
||||
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
|
||||
|
||||
export interface ImportResponse {
|
||||
activities: Activity[];
|
||||
}
|
@ -15,6 +15,28 @@
|
||||
matSortDirection="desc"
|
||||
[dataSource]="dataSource"
|
||||
>
|
||||
<ng-container matColumnDef="select">
|
||||
<th *matHeaderCellDef class="px-1" mat-header-cell>
|
||||
<mat-checkbox
|
||||
class="mt-2"
|
||||
color="primary"
|
||||
[checked]="selectedRows.hasValue() && areAllRowsSelected()"
|
||||
[indeterminate]="selectedRows.hasValue() && !areAllRowsSelected()"
|
||||
(change)="$event ? toggleAllRows() : null"
|
||||
></mat-checkbox>
|
||||
</th>
|
||||
<td *matCellDef="let element" class="px-1" mat-cell>
|
||||
<mat-checkbox
|
||||
class="mt-2"
|
||||
color="primary"
|
||||
[checked]="selectedRows.isSelected(element)"
|
||||
(change)="$event ? selectedRows.toggle(element) : null"
|
||||
(click)="$event.stopPropagation()"
|
||||
></mat-checkbox>
|
||||
</td>
|
||||
<td *matFooterCellDef class="px-1" mat-footer-cell></td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="count">
|
||||
<th
|
||||
*matHeaderCellDef
|
||||
@ -45,7 +67,7 @@
|
||||
</th>
|
||||
<td *matCellDef="let element" class="px-1" mat-cell>
|
||||
<div class="d-flex">
|
||||
{{ element.date | date: defaultDateFormat }}
|
||||
{{ element.date | date : defaultDateFormat }}
|
||||
</div>
|
||||
</td>
|
||||
<td *matFooterCellDef class="px-1" i18n mat-footer-cell>Total</td>
|
||||
@ -432,15 +454,7 @@
|
||||
'cursor-pointer':
|
||||
hasPermissionToOpenDetails && !row.isDraft && row.type !== 'ITEM'
|
||||
}"
|
||||
(click)="
|
||||
hasPermissionToOpenDetails &&
|
||||
!row.isDraft &&
|
||||
row.type !== 'ITEM' &&
|
||||
onOpenPositionDialog({
|
||||
dataSource: row.SymbolProfile.dataSource,
|
||||
symbol: row.SymbolProfile.symbol
|
||||
})
|
||||
"
|
||||
(click)="onClickActivity(row)"
|
||||
></tr>
|
||||
<tr
|
||||
*matFooterRowDef="displayedColumns"
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { SelectionModel } from '@angular/cdk/collections';
|
||||
import {
|
||||
ChangeDetectionStrategy,
|
||||
Component,
|
||||
@ -41,6 +42,7 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
@Input() locale: string;
|
||||
@Input() pageSize = DEFAULT_PAGE_SIZE;
|
||||
@Input() showActions: boolean;
|
||||
@Input() showCheckbox = false;
|
||||
@Input() showNameColumn = true;
|
||||
|
||||
@Output() activityDeleted = new EventEmitter<string>();
|
||||
@ -49,6 +51,7 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
@Output() export = new EventEmitter<string[]>();
|
||||
@Output() exportDrafts = new EventEmitter<string[]>();
|
||||
@Output() import = new EventEmitter<void>();
|
||||
@Output() selectedActivities = new EventEmitter<Activity[]>();
|
||||
|
||||
@ViewChild(MatPaginator) paginator: MatPaginator;
|
||||
@ViewChild(MatSort) sort: MatSort;
|
||||
@ -67,6 +70,7 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
public placeholder = '';
|
||||
public routeQueryParams: Subscription;
|
||||
public searchKeywords: string[] = [];
|
||||
public selectedRows = new SelectionModel<Activity>(true, []);
|
||||
public totalFees: number;
|
||||
public totalValue: number;
|
||||
|
||||
@ -81,8 +85,15 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
});
|
||||
}
|
||||
|
||||
public areAllRowsSelected() {
|
||||
const numSelectedRows = this.selectedRows.selected.length;
|
||||
const numTotalRows = this.dataSource.data.length;
|
||||
return numSelectedRows === numTotalRows;
|
||||
}
|
||||
|
||||
public ngOnChanges() {
|
||||
this.displayedColumns = [
|
||||
'select',
|
||||
'count',
|
||||
'date',
|
||||
'type',
|
||||
@ -98,6 +109,16 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
'actions'
|
||||
];
|
||||
|
||||
if (this.showCheckbox) {
|
||||
this.displayedColumns = this.displayedColumns.filter((column) => {
|
||||
return column !== 'count';
|
||||
});
|
||||
} else {
|
||||
this.displayedColumns = this.displayedColumns.filter((column) => {
|
||||
return column !== 'select';
|
||||
});
|
||||
}
|
||||
|
||||
if (!this.showNameColumn) {
|
||||
this.displayedColumns = this.displayedColumns.filter((column) => {
|
||||
return column !== 'nameWithSymbol';
|
||||
@ -133,6 +154,17 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
}
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
if (this.showCheckbox) {
|
||||
this.toggleAllRows();
|
||||
this.selectedRows.changed
|
||||
.pipe(takeUntil(this.unsubscribeSubject))
|
||||
.subscribe((selectedRows) => {
|
||||
this.selectedActivities.emit(selectedRows.source.selected);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public onChangePage(page: PageEvent) {
|
||||
this.pageIndex = page.pageIndex;
|
||||
|
||||
@ -140,6 +172,21 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
this.totalValue = this.getTotalValue();
|
||||
}
|
||||
|
||||
public onClickActivity(activity: Activity) {
|
||||
if (this.showCheckbox) {
|
||||
this.selectedRows.toggle(activity);
|
||||
} else if (
|
||||
this.hasPermissionToOpenDetails &&
|
||||
!activity.isDraft &&
|
||||
activity.type !== 'ITEM'
|
||||
) {
|
||||
this.onOpenPositionDialog({
|
||||
dataSource: activity.SymbolProfile.dataSource,
|
||||
symbol: activity.SymbolProfile.symbol
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public onCloneActivity(aActivity: OrderWithAccount) {
|
||||
this.activityToClone.emit(aActivity);
|
||||
}
|
||||
@ -200,6 +247,14 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
this.activityToUpdate.emit(aActivity);
|
||||
}
|
||||
|
||||
public toggleAllRows() {
|
||||
this.areAllRowsSelected()
|
||||
? this.selectedRows.clear()
|
||||
: this.dataSource.data.forEach((row) => this.selectedRows.select(row));
|
||||
|
||||
this.selectedActivities.emit(this.selectedRows.selected);
|
||||
}
|
||||
|
||||
public ngOnDestroy() {
|
||||
this.unsubscribeSubject.next();
|
||||
this.unsubscribeSubject.complete();
|
||||
@ -237,9 +292,9 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
|
||||
type: 'TAG'
|
||||
};
|
||||
|
||||
fieldValueMap[format(activity.date, 'yyyy')] = {
|
||||
id: format(activity.date, 'yyyy'),
|
||||
label: format(activity.date, 'yyyy'),
|
||||
fieldValueMap[format(new Date(activity.date), 'yyyy')] = {
|
||||
id: format(new Date(activity.date), 'yyyy'),
|
||||
label: format(new Date(activity.date), 'yyyy'),
|
||||
type: 'TAG'
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatCheckboxModule } from '@angular/material/checkbox';
|
||||
import { MatMenuModule } from '@angular/material/menu';
|
||||
import { MatPaginatorModule } from '@angular/material/paginator';
|
||||
import { MatSortModule } from '@angular/material/sort';
|
||||
@ -26,6 +27,7 @@ import { ActivitiesTableComponent } from './activities-table.component';
|
||||
GfSymbolModule,
|
||||
GfValueModule,
|
||||
MatButtonModule,
|
||||
MatCheckboxModule,
|
||||
MatMenuModule,
|
||||
MatPaginatorModule,
|
||||
MatSortModule,
|
||||
|
@ -6,6 +6,7 @@ const locales = {
|
||||
ASSET_SUB_CLASS: $localize`Asset Sub Class`,
|
||||
EMERGENCY_FUND: $localize`Emergency Fund`,
|
||||
OTHER: $localize`Other`,
|
||||
SECURITIES: $localize`Securities`,
|
||||
SYMBOL: $localize`Symbol`,
|
||||
TAG: $localize`Tag`,
|
||||
|
||||
@ -34,6 +35,6 @@ const locales = {
|
||||
'South America': $localize`South America`
|
||||
};
|
||||
|
||||
export function translate(aKey: string) {
|
||||
export function translate(aKey: string): string {
|
||||
return locales[aKey] ?? aKey;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
<span class="align-items-center d-flex"
|
||||
><span class="d-inline-block logo mr-1"></span>
|
||||
<span *ngIf="!hideName" class="name">Ghostfolio</span></span
|
||||
<span *ngIf="showLabel" class="label">{{ label ?? 'Ghostfolio' }}</span></span
|
||||
>
|
||||
|
@ -1,12 +1,12 @@
|
||||
:host {
|
||||
.label {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.logo {
|
||||
background-color: rgba(var(--dark-primary-text));
|
||||
mask: url('/assets/ghost.svg') no-repeat center;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
:host-context(.is-dark-theme) {
|
||||
@ -16,23 +16,23 @@
|
||||
}
|
||||
|
||||
:host-context(.large) {
|
||||
.label {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 2.5rem;
|
||||
width: 2.5rem;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 3rem;
|
||||
}
|
||||
}
|
||||
|
||||
:host-context(.medium) {
|
||||
.label {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 1.5rem;
|
||||
width: 1.5rem;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ Large.args = {
|
||||
size: 'large'
|
||||
};
|
||||
|
||||
export const NoName = Template.bind({});
|
||||
NoName.args = {
|
||||
hideName: true
|
||||
export const NoLabel = Template.bind({});
|
||||
NoLabel.args = {
|
||||
showLabel: false
|
||||
};
|
||||
|
@ -2,8 +2,7 @@ import {
|
||||
ChangeDetectionStrategy,
|
||||
Component,
|
||||
HostBinding,
|
||||
Input,
|
||||
OnInit
|
||||
Input
|
||||
} from '@angular/core';
|
||||
|
||||
@Component({
|
||||
@ -12,13 +11,10 @@ import {
|
||||
templateUrl: './logo.component.html',
|
||||
styleUrls: ['./logo.component.scss']
|
||||
})
|
||||
export class LogoComponent implements OnInit {
|
||||
export class LogoComponent {
|
||||
@HostBinding('class') @Input() size: 'large' | 'medium' = 'medium';
|
||||
@Input() hideName = false;
|
||||
@Input() label: string;
|
||||
@Input() showLabel = true;
|
||||
|
||||
public constructor() {}
|
||||
|
||||
public ngOnInit() {
|
||||
this.hideName = this.hideName ?? false;
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ import { LogoComponent } from './logo.component';
|
||||
declarations: [LogoComponent],
|
||||
exports: [LogoComponent],
|
||||
imports: [CommonModule],
|
||||
providers: [],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
||||
})
|
||||
export class GfLogoModule {}
|
||||
|
@ -1,13 +1,13 @@
|
||||
<div class="p-3">
|
||||
<div class="d-flex justify-content-center mb-1">
|
||||
<gf-logo size="large" [hideName]="true"></gf-logo>
|
||||
<gf-logo size="large" [showLabel]="false"></gf-logo>
|
||||
</div>
|
||||
<a
|
||||
class="align-items-center justify-content-center"
|
||||
color="primary"
|
||||
[routerLink]="['/portfolio', 'activities']"
|
||||
[queryParams]="{ createDialog: true }"
|
||||
mat-button
|
||||
[queryParams]="{ createDialog: true }"
|
||||
[routerLink]="['/portfolio', 'activities']"
|
||||
>
|
||||
<span i18n>Time to add your first activity.</span>
|
||||
</a>
|
||||
|
34
package.json
34
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ghostfolio",
|
||||
"version": "1.219.0",
|
||||
"version": "1.223.0",
|
||||
"homepage": "https://ghostfol.io",
|
||||
"license": "AGPL-3.0",
|
||||
"scripts": {
|
||||
@ -64,15 +64,14 @@
|
||||
"@angular/platform-browser-dynamic": "14.2.0",
|
||||
"@angular/router": "14.2.0",
|
||||
"@angular/service-worker": "14.2.0",
|
||||
"@codewithdan/observable-store": "2.2.11",
|
||||
"@dfinity/agent": "0.12.1",
|
||||
"@dfinity/auth-client": "0.12.1",
|
||||
"@dfinity/authentication": "0.12.1",
|
||||
"@dfinity/candid": "0.12.1",
|
||||
"@dfinity/identity": "0.12.1",
|
||||
"@dfinity/principal": "0.12.1",
|
||||
"@codewithdan/observable-store": "2.2.15",
|
||||
"@dfinity/agent": "0.15.1",
|
||||
"@dfinity/auth-client": "0.15.1",
|
||||
"@dfinity/candid": "0.15.1",
|
||||
"@dfinity/identity": "0.15.1",
|
||||
"@dfinity/principal": "0.15.1",
|
||||
"@dinero.js/currencies": "2.0.0-alpha.8",
|
||||
"@nestjs/bull": "0.5.5",
|
||||
"@nestjs/bull": "0.6.2",
|
||||
"@nestjs/common": "9.1.4",
|
||||
"@nestjs/config": "2.2.0",
|
||||
"@nestjs/core": "9.1.4",
|
||||
@ -82,7 +81,7 @@
|
||||
"@nestjs/schedule": "2.1.0",
|
||||
"@nestjs/serve-static": "3.0.0",
|
||||
"@nrwl/angular": "15.0.13",
|
||||
"@prisma/client": "4.7.1",
|
||||
"@prisma/client": "4.8.0",
|
||||
"@simplewebauthn/browser": "5.2.1",
|
||||
"@simplewebauthn/server": "5.2.1",
|
||||
"@stripe/stripe-js": "1.22.0",
|
||||
@ -91,7 +90,7 @@
|
||||
"bent": "7.3.12",
|
||||
"big.js": "6.2.1",
|
||||
"bootstrap": "4.6.0",
|
||||
"bull": "4.8.5",
|
||||
"bull": "4.10.2",
|
||||
"cache-manager": "3.4.3",
|
||||
"cache-manager-redis-store": "2.0.0",
|
||||
"chart.js": "4.0.1",
|
||||
@ -101,9 +100,9 @@
|
||||
"cheerio": "1.0.0-rc.12",
|
||||
"class-transformer": "0.3.2",
|
||||
"class-validator": "0.13.1",
|
||||
"color": "4.0.1",
|
||||
"color": "4.2.3",
|
||||
"countries-list": "2.6.1",
|
||||
"countup.js": "2.0.7",
|
||||
"countup.js": "2.3.2",
|
||||
"date-fns": "2.29.3",
|
||||
"envalid": "7.3.1",
|
||||
"google-spreadsheet": "3.2.0",
|
||||
@ -120,7 +119,7 @@
|
||||
"passport": "0.6.0",
|
||||
"passport-google-oauth20": "2.0.0",
|
||||
"passport-jwt": "4.0.0",
|
||||
"prisma": "4.7.1",
|
||||
"prisma": "4.8.0",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "7.5.6",
|
||||
"stripe": "8.199.0",
|
||||
@ -158,12 +157,11 @@
|
||||
"@storybook/core-server": "6.5.9",
|
||||
"@storybook/manager-webpack5": "6.5.9",
|
||||
"@types/big.js": "6.1.6",
|
||||
"@types/bull": "3.15.9",
|
||||
"@types/cache-manager": "3.4.2",
|
||||
"@types/color": "3.0.2",
|
||||
"@types/color": "3.0.3",
|
||||
"@types/google-spreadsheet": "3.1.5",
|
||||
"@types/jest": "28.1.8",
|
||||
"@types/lodash": "4.14.174",
|
||||
"@types/lodash": "4.14.191",
|
||||
"@types/node": "18.7.1",
|
||||
"@types/papaparse": "5.2.6",
|
||||
"@types/passport-google-oauth20": "2.0.11",
|
||||
@ -182,7 +180,7 @@
|
||||
"jest-environment-jsdom": "28.1.1",
|
||||
"jest-preset-angular": "12.2.2",
|
||||
"nx": "15.0.13",
|
||||
"prettier": "2.7.1",
|
||||
"prettier": "2.8.1",
|
||||
"prettier-plugin-organize-attributes": "0.0.5",
|
||||
"replace-in-file": "6.3.5",
|
||||
"rimraf": "3.0.2",
|
||||
|
@ -0,0 +1,9 @@
|
||||
-- AlterEnum
|
||||
BEGIN;
|
||||
CREATE TYPE "DataSource_new" AS ENUM ('ALPHA_VANTAGE', 'EOD_HISTORICAL_DATA', 'GHOSTFOLIO', 'GOOGLE_SHEETS', 'MANUAL', 'RAPID_API', 'YAHOO');
|
||||
ALTER TABLE "MarketData" ALTER COLUMN "dataSource" TYPE "DataSource_new" USING ("dataSource"::text::"DataSource_new");
|
||||
ALTER TABLE "SymbolProfile" ALTER COLUMN "dataSource" TYPE "DataSource_new" USING ("dataSource"::text::"DataSource_new");
|
||||
ALTER TYPE "DataSource" RENAME TO "DataSource_old";
|
||||
ALTER TYPE "DataSource_new" RENAME TO "DataSource";
|
||||
DROP TYPE "DataSource_old";
|
||||
COMMIT;
|
@ -0,0 +1,2 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Subscription" ADD COLUMN "price" DOUBLE PRECISION;
|
@ -104,9 +104,9 @@ model Property {
|
||||
|
||||
model Settings {
|
||||
settings Json?
|
||||
updatedAt DateTime @updatedAt
|
||||
userId String @id
|
||||
User User @relation(fields: [userId], references: [id])
|
||||
updatedAt DateTime @updatedAt
|
||||
userId String @id
|
||||
User User @relation(fields: [userId], references: [id])
|
||||
}
|
||||
|
||||
model SymbolProfile {
|
||||
@ -147,6 +147,7 @@ model Subscription {
|
||||
createdAt DateTime @default(now())
|
||||
expiresAt DateTime
|
||||
id String @id @default(uuid())
|
||||
price Float?
|
||||
updatedAt DateTime @updatedAt
|
||||
userId String
|
||||
User User @relation(fields: [userId], references: [id])
|
||||
@ -207,7 +208,6 @@ enum DataSource {
|
||||
GHOSTFOLIO
|
||||
GOOGLE_SHEETS
|
||||
MANUAL
|
||||
RAKUTEN
|
||||
RAPID_API
|
||||
YAHOO
|
||||
}
|
||||
|
309
yarn.lock
309
yarn.lock
@ -2398,10 +2398,10 @@
|
||||
exec-sh "^0.3.2"
|
||||
minimist "^1.2.0"
|
||||
|
||||
"@codewithdan/observable-store@2.2.11":
|
||||
version "2.2.11"
|
||||
resolved "https://registry.npmjs.org/@codewithdan/observable-store/-/observable-store-2.2.11.tgz"
|
||||
integrity sha512-6CfqLJUqV0SwS4yE+9vciqxHUJ6CqIptSXXzFw80MonCDoVJvCJ/xhKfs7VZqJ4jDtEu/7ILvovFtZdLg9fiAg==
|
||||
"@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"
|
||||
integrity sha512-LVCSMZzTCvoDo5n7YDmtIIEhTmvJ8O21k36Vwu/A4kumdXQ1YVs4sKoSK3vlINZPL4AYY2MRsBVtvre4QIETFw==
|
||||
|
||||
"@colors/colors@1.5.0":
|
||||
version "1.5.0"
|
||||
@ -2582,47 +2582,53 @@
|
||||
debug "^3.1.0"
|
||||
lodash.once "^4.1.1"
|
||||
|
||||
"@dfinity/agent@0.12.1":
|
||||
version "0.12.1"
|
||||
resolved "https://registry.npmjs.org/@dfinity/agent/-/agent-0.12.1.tgz"
|
||||
integrity sha512-/KSKh248k4pjzvqCzIgYNNi3pTv+DBZ40+QiTBQeFzp6VEg3gfSv5bK2UwC0Plq9xwk7TeeeGLiTv6DI3RjCOQ==
|
||||
"@dfinity/agent@0.15.1":
|
||||
version "0.15.1"
|
||||
resolved "https://registry.yarnpkg.com/@dfinity/agent/-/agent-0.15.1.tgz#59d193d1f0e5c7c6661c7df412b110ec19e36193"
|
||||
integrity sha512-Lu/TXdDj3XJgMNZYVdrECyo+zqlOxDR1I1mA7OuO6lsIciildJNbqDnsMQAit7605S4B8QLnvbnK/Okd8c2K1g==
|
||||
dependencies:
|
||||
base64-arraybuffer "^0.2.0"
|
||||
bignumber.js "^9.0.0"
|
||||
borc "^2.1.1"
|
||||
js-sha256 "0.9.0"
|
||||
simple-cbor "^0.4.1"
|
||||
ts-node "^10.8.2"
|
||||
|
||||
"@dfinity/auth-client@0.12.1":
|
||||
version "0.12.1"
|
||||
resolved "https://registry.npmjs.org/@dfinity/auth-client/-/auth-client-0.12.1.tgz"
|
||||
integrity sha512-iZKSVjk9K+35jp+AY3QfGAv0jBfn5LZTwpSXgBKVqZCez3GRniGJirJVTvk7t9yOj4BXN8tuvjIKxTsezPpgLQ==
|
||||
|
||||
"@dfinity/authentication@0.12.1":
|
||||
version "0.12.1"
|
||||
resolved "https://registry.npmjs.org/@dfinity/authentication/-/authentication-0.12.1.tgz"
|
||||
integrity sha512-krHR48HNqTOp2NwHoKHirTUXHDfHttWZfSmwBCsQa0xwWkrrLSGb3u+9e1oQjDK1G1eK2TP7T1W2duZmmmrZkg==
|
||||
|
||||
"@dfinity/candid@0.12.1":
|
||||
version "0.12.1"
|
||||
resolved "https://registry.npmjs.org/@dfinity/candid/-/candid-0.12.1.tgz"
|
||||
integrity sha512-YX8jfyy/8Qmz4f1mbjqXUqOmtYcGru1gfYWxlRhKFSkeLH0VeZkfPEmD6EQ25k+18ATPk83MQiZnu0b6AWxBUw==
|
||||
|
||||
"@dfinity/identity@0.12.1":
|
||||
version "0.12.1"
|
||||
resolved "https://registry.npmjs.org/@dfinity/identity/-/identity-0.12.1.tgz"
|
||||
integrity sha512-FNrjV4/gG9PjQfGLIoH1DycqSAMaoTZCxB+cSVJRFCvGQKc3F3kn5tj6rIv9LV+NNV1f1qfmTXE8rYsMCmEecg==
|
||||
"@dfinity/auth-client@0.15.1":
|
||||
version "0.15.1"
|
||||
resolved "https://registry.yarnpkg.com/@dfinity/auth-client/-/auth-client-0.15.1.tgz#91f1bd890acfe759b94a65c2a38079d1d0333357"
|
||||
integrity sha512-trsqf1gQv9P4R+jgFlLQigIGRm2wKQk0Us5BMnle0+hIOqvgv0P0yBhSfHBVoklXvbCNlCNZ+wsHqOzE5Zw1bg==
|
||||
dependencies:
|
||||
"@types/jest" "^28.1.4"
|
||||
idb "^7.0.2"
|
||||
jest "^28.1.2"
|
||||
stream "^0.0.2"
|
||||
ts-jest "^28.0.5"
|
||||
ts-node "^10.8.2"
|
||||
|
||||
"@dfinity/candid@0.15.1":
|
||||
version "0.15.1"
|
||||
resolved "https://registry.yarnpkg.com/@dfinity/candid/-/candid-0.15.1.tgz#e0506c1625f72bbcefee821924e8ca8d2006a17e"
|
||||
integrity sha512-vmMjyfXfMO16X9c4ivKoGS/fNYue2+t55LTmCL0Tv5Nn81LC9Bn2IuPdXcguoRQSXISJzTS59epL3E20ELL+dA==
|
||||
dependencies:
|
||||
ts-node "^10.8.2"
|
||||
|
||||
"@dfinity/identity@0.15.1":
|
||||
version "0.15.1"
|
||||
resolved "https://registry.yarnpkg.com/@dfinity/identity/-/identity-0.15.1.tgz#feef54db7a0c2bfb39a0558432221058a5b05b30"
|
||||
integrity sha512-26+hS4u0oHOP6mR6MgquSF2is1aRACccGUPOzYkf8M593N1slG83cxTVXBrzxql9FcUT5O4XIGSNMja0v+BMiA==
|
||||
dependencies:
|
||||
"@types/webappsec-credential-management" "^0.6.2"
|
||||
borc "^2.1.1"
|
||||
js-sha256 "^0.9.0"
|
||||
secp256k1 "^4.0.2"
|
||||
tweetnacl "^1.0.1"
|
||||
|
||||
"@dfinity/principal@0.12.1":
|
||||
version "0.12.1"
|
||||
resolved "https://registry.npmjs.org/@dfinity/principal/-/principal-0.12.1.tgz"
|
||||
integrity sha512-aL5y0mpzRex6LRSc4LUZyhn2GTFfHyxkakkOZxEM7+ecz8HsKKK+mSo78gL1TCso2QkCL4BqZzxnoIxxKqM1cw==
|
||||
"@dfinity/principal@0.15.1":
|
||||
version "0.15.1"
|
||||
resolved "https://registry.yarnpkg.com/@dfinity/principal/-/principal-0.15.1.tgz#566037683c5842478de25527890d96d1c6e1e3c4"
|
||||
integrity sha512-IYODveUhLx6CikhpT+KPuzwNi/czypOlgFj+Jtp+yHb6odUxfg0V/qVwZ4UbQPictNJ1gl7WwGjJeF5ybf+e6w==
|
||||
dependencies:
|
||||
js-sha256 "^0.9.0"
|
||||
ts-node "^10.8.2"
|
||||
|
||||
"@dinero.js/currencies@2.0.0-alpha.8":
|
||||
version "2.0.0-alpha.8"
|
||||
@ -2678,6 +2684,11 @@
|
||||
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
|
||||
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
|
||||
|
||||
"@ioredis/commands@^1.1.1":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11"
|
||||
integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==
|
||||
|
||||
"@istanbuljs/load-nyc-config@^1.0.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz"
|
||||
@ -3116,20 +3127,20 @@
|
||||
resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.0.2.tgz#baea7764b1adf201ce4a792fe971fd7211dad2e4"
|
||||
integrity sha512-fpnI00dt+yO1cKx9qBXelKhPBdEgvc8ZPav1+0r09j0woYQU2N79w/jcGawSY5UGlgQ3vjaJsFHnGbGvvqdLzg==
|
||||
|
||||
"@nestjs/bull-shared@^0.0.5":
|
||||
version "0.0.5"
|
||||
resolved "https://registry.npmjs.org/@nestjs/bull-shared/-/bull-shared-0.0.5.tgz"
|
||||
integrity sha512-MPkl1q7N/ZlzLq4SC/NWdZ+7pIOF9x70+92xBcUPx7J6mewqVR1gzADHzEexErZEgg+K/n5nwJGe+BLlYFTUgg==
|
||||
"@nestjs/bull-shared@^0.1.2":
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@nestjs/bull-shared/-/bull-shared-0.1.2.tgz#23efa4e4fb11dd464ecb9daa3f93ffe409c098df"
|
||||
integrity sha512-q1JqieWb2YjA6OIal5XjtbF28LgJxEflwJB9x3OnE2OUgI0kWvaMlYMaW3opFmgcWPjx4o5lVhcGnwXeIhZfgg==
|
||||
dependencies:
|
||||
tslib "2.3.1"
|
||||
tslib "2.4.1"
|
||||
|
||||
"@nestjs/bull@0.5.5":
|
||||
version "0.5.5"
|
||||
resolved "https://registry.npmjs.org/@nestjs/bull/-/bull-0.5.5.tgz"
|
||||
integrity sha512-g42/KH8YJmJE60kQVzQucWm5xEfyOj8iwXp2s3Ox3Yu6B/mmzNmqmXLnACnaD15q3WtH84vOhME41CJANxbQeQ==
|
||||
"@nestjs/bull@0.6.2":
|
||||
version "0.6.2"
|
||||
resolved "https://registry.yarnpkg.com/@nestjs/bull/-/bull-0.6.2.tgz#2f32e8e08d1aaed5d4bc7459bd4ceb67fab89320"
|
||||
integrity sha512-tx5wiIGgfYEj5RAJA1B23pn/63nsmMH0f981V1/v3NKyE07NsvOXCrwKNGQnIZZlXkXh7lgx2I80/tYwPGnVIg==
|
||||
dependencies:
|
||||
"@nestjs/bull-shared" "^0.0.5"
|
||||
tslib "2.3.1"
|
||||
"@nestjs/bull-shared" "^0.1.2"
|
||||
tslib "2.4.1"
|
||||
|
||||
"@nestjs/common@9.1.4":
|
||||
version "9.1.4"
|
||||
@ -3666,22 +3677,22 @@
|
||||
dependencies:
|
||||
esquery "^1.0.1"
|
||||
|
||||
"@prisma/client@4.7.1":
|
||||
version "4.7.1"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.7.1.tgz#66fe84aca25de17cb3d9141dec003f34714914b9"
|
||||
integrity sha512-/GbnOwIPtjiveZNUzGXOdp7RxTEkHL4DZP3vBaFNadfr6Sf0RshU5EULFzVaSi9i9PIK9PYd+1Rn7z2B2npb9w==
|
||||
"@prisma/client@4.8.0":
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.8.0.tgz#6ec7adaca6a2e233d7e41dbe7cc6d0fa6143a407"
|
||||
integrity sha512-Y1riB0p2W52kh3zgssP/YAhln3RjBFcJy3uwEiyjmU+TQYh6QTZDRFBo3JtBWuq2FyMOl1Rye8jxzUP+n0l5Cg==
|
||||
dependencies:
|
||||
"@prisma/engines-version" "4.7.1-1.272861e07ab64f234d3ffc4094e32bd61775599c"
|
||||
"@prisma/engines-version" "4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe"
|
||||
|
||||
"@prisma/engines-version@4.7.1-1.272861e07ab64f234d3ffc4094e32bd61775599c":
|
||||
version "4.7.1-1.272861e07ab64f234d3ffc4094e32bd61775599c"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.7.1-1.272861e07ab64f234d3ffc4094e32bd61775599c.tgz#43ff7d85478e64a1d790e4d53e78768a2acfacfe"
|
||||
integrity sha512-Bd4LZ+WAnUHOq31e9X/ihi5zPlr4SzTRwUZZYxvWOxlerIZ7HJlVa9zXpuKTKLpI9O1l8Ec4OYCKsivWCs5a3Q==
|
||||
"@prisma/engines-version@4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe":
|
||||
version "4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe.tgz#30401aba1029e7d32e3cb717e705a7c92ccc211e"
|
||||
integrity sha512-MHSOSexomRMom8QN4t7bu87wPPD+pa+hW9+71JnVcF3DqyyO/ycCLhRL1we3EojRpZxKvuyGho2REQsMCvxcJw==
|
||||
|
||||
"@prisma/engines@4.7.1":
|
||||
version "4.7.1"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.7.1.tgz#d657d4d05724158140022fa00614e143643090c2"
|
||||
integrity sha512-zWabHosTdLpXXlMefHmnouhXMoTB1+SCbUU3t4FCmdrtIOZcarPKU3Alto7gm/pZ9vHlGOXHCfVZ1G7OIrSbog==
|
||||
"@prisma/engines@4.8.0":
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.8.0.tgz#5123c67dc0d2caa008268fc63081ca2d68b2ed7e"
|
||||
integrity sha512-A1Asn2rxZMlLAj1HTyfaCv0VQrLUv034jVay05QlqZg1qiHPeA3/pGTfNMijbsMYCsGVxfWEJuaZZuNxXGMCrA==
|
||||
|
||||
"@samverschueren/stream-to-observable@^0.3.0":
|
||||
version "0.3.1"
|
||||
@ -4724,14 +4735,6 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/bull@3.15.9":
|
||||
version "3.15.9"
|
||||
resolved "https://registry.npmjs.org/@types/bull/-/bull-3.15.9.tgz"
|
||||
integrity sha512-MPUcyPPQauAmynoO3ezHAmCOhbB0pWmYyijr/5ctaCqhbKWsjW0YCod38ZcLzUBprosfZ9dPqfYIcfdKjk7RNQ==
|
||||
dependencies:
|
||||
"@types/ioredis" "*"
|
||||
"@types/redis" "^2.8.0"
|
||||
|
||||
"@types/cache-manager@3.4.2":
|
||||
version "3.4.2"
|
||||
resolved "https://registry.npmjs.org/@types/cache-manager/-/cache-manager-3.4.2.tgz"
|
||||
@ -4749,10 +4752,10 @@
|
||||
resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz"
|
||||
integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
|
||||
|
||||
"@types/color@3.0.2":
|
||||
version "3.0.2"
|
||||
resolved "https://registry.npmjs.org/@types/color/-/color-3.0.2.tgz"
|
||||
integrity sha512-INiJl6sfNn8iyC5paxVzqiVUEj2boIlFki02uRTAkKwAj++7aAF+ZfEv/XrIeBa0XI/fTZuDHW8rEEcEVnON+Q==
|
||||
"@types/color@3.0.3":
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/color/-/color-3.0.3.tgz#e6d8d72b7aaef4bb9fe80847c26c7c786191016d"
|
||||
integrity sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA==
|
||||
dependencies:
|
||||
"@types/color-convert" "*"
|
||||
|
||||
@ -4855,13 +4858,6 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/ioredis@*":
|
||||
version "4.28.10"
|
||||
resolved "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz"
|
||||
integrity sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/is-function@^1.0.0":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.1.tgz"
|
||||
@ -4886,9 +4882,9 @@
|
||||
dependencies:
|
||||
"@types/istanbul-lib-report" "*"
|
||||
|
||||
"@types/jest@28.1.8":
|
||||
"@types/jest@28.1.8", "@types/jest@^28.1.4":
|
||||
version "28.1.8"
|
||||
resolved "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz"
|
||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b"
|
||||
integrity sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==
|
||||
dependencies:
|
||||
expect "^28.0.0"
|
||||
@ -4920,10 +4916,10 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/lodash@4.14.174":
|
||||
version "4.14.174"
|
||||
resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.174.tgz"
|
||||
integrity sha512-KMBLT6+g9qrGXpDt7ohjWPUD34WA/jasrtjTEHStF0NPdEwJ1N9SZ+4GaMVDeuk/y0+X5j9xFm6mNiXS7UoaLQ==
|
||||
"@types/lodash@4.14.191":
|
||||
version "4.14.191"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa"
|
||||
integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==
|
||||
|
||||
"@types/lodash@^4.14.167":
|
||||
version "4.14.182"
|
||||
@ -5101,13 +5097,6 @@
|
||||
"@types/scheduler" "*"
|
||||
csstype "^3.0.2"
|
||||
|
||||
"@types/redis@^2.8.0":
|
||||
version "2.8.32"
|
||||
resolved "https://registry.npmjs.org/@types/redis/-/redis-2.8.32.tgz"
|
||||
integrity sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/retry@0.12.0":
|
||||
version "0.12.0"
|
||||
resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz"
|
||||
@ -5200,11 +5189,6 @@
|
||||
resolved "https://registry.npmjs.org/@types/validator/-/validator-13.7.3.tgz"
|
||||
integrity sha512-DNviAE5OUcZ5s+XEQHRhERLg8fOp8gSgvyJ4aaFASx5wwaObm+PBwTIMXiOFm1QrSee5oYwEAYb7LMzX2O88gA==
|
||||
|
||||
"@types/webappsec-credential-management@^0.6.2":
|
||||
version "0.6.2"
|
||||
resolved "https://registry.npmjs.org/@types/webappsec-credential-management/-/webappsec-credential-management-0.6.2.tgz"
|
||||
integrity sha512-/6w8wmKQOFh+1CL99fcFhH7lli1/ExBdAawXsVPXFC5MBOS6ww/4cmK4crpCw51RaG6sTr477N17Y84l0G69IA==
|
||||
|
||||
"@types/webpack-env@^1.16.0":
|
||||
version "1.17.0"
|
||||
resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.17.0.tgz"
|
||||
@ -6988,15 +6972,15 @@ builtins@^5.0.0:
|
||||
dependencies:
|
||||
semver "^7.0.0"
|
||||
|
||||
bull@4.8.5:
|
||||
version "4.8.5"
|
||||
resolved "https://registry.npmjs.org/bull/-/bull-4.8.5.tgz"
|
||||
integrity sha512-2Z630e4f6VsLJnWMAtfEHwIqJYmND4W3dcG48RIbXeWpvb4UnYtpe/zxEdslJu0PKrltB4IkFj5YtBsdeQRn8w==
|
||||
bull@4.10.2:
|
||||
version "4.10.2"
|
||||
resolved "https://registry.yarnpkg.com/bull/-/bull-4.10.2.tgz#af53545b394001755cf7c6b30bac295eeb5e0420"
|
||||
integrity sha512-xa65xtWjQsLqYU/eNaXxq9VRG8xd6qNsQEjR7yjYuae05xKrzbVMVj2QgrYsTMmSs/vsqJjHqHSRRiW1+IkGXQ==
|
||||
dependencies:
|
||||
cron-parser "^4.2.1"
|
||||
debuglog "^1.0.0"
|
||||
get-port "^5.1.1"
|
||||
ioredis "^4.28.5"
|
||||
ioredis "^5.0.0"
|
||||
lodash "^4.17.21"
|
||||
msgpackr "^1.5.2"
|
||||
p-timeout "^3.2.0"
|
||||
@ -7688,9 +7672,9 @@ color-name@^1.0.0, color-name@~1.1.4:
|
||||
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
|
||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||
|
||||
color-string@^1.6.0:
|
||||
color-string@^1.9.0:
|
||||
version "1.9.1"
|
||||
resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
|
||||
integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
|
||||
dependencies:
|
||||
color-name "^1.0.0"
|
||||
@ -7701,13 +7685,13 @@ color-support@^1.1.2, color-support@^1.1.3:
|
||||
resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz"
|
||||
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
|
||||
|
||||
color@4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.npmjs.org/color/-/color-4.0.1.tgz"
|
||||
integrity sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA==
|
||||
color@4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a"
|
||||
integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
|
||||
dependencies:
|
||||
color-convert "^2.0.1"
|
||||
color-string "^1.6.0"
|
||||
color-string "^1.9.0"
|
||||
|
||||
colord@^2.9.1:
|
||||
version "2.9.2"
|
||||
@ -8001,10 +7985,10 @@ countries-list@2.6.1:
|
||||
resolved "https://registry.npmjs.org/countries-list/-/countries-list-2.6.1.tgz"
|
||||
integrity sha512-jXM1Nv3U56dPQ1DsUSsEaGmLHburo4fnB7m+1yhWDUVvx5gXCd1ok/y3gXCjXzhqyawG+igcPYcAl4qjkvopaQ==
|
||||
|
||||
countup.js@2.0.7:
|
||||
version "2.0.7"
|
||||
resolved "https://registry.npmjs.org/countup.js/-/countup.js-2.0.7.tgz"
|
||||
integrity sha512-FO0nQdvG1iQwHp28wdvkErxnNUSbdkzztqZ6YNHKLHydngD2tdiKEW8dFrqpahF3tj+Ma70h0vyYrCBzxlVWdg==
|
||||
countup.js@2.3.2:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/countup.js/-/countup.js-2.3.2.tgz#9a91d95780be1c908d1e6feb548625f353f57988"
|
||||
integrity sha512-dQ7F/CmKGjaO6cDfhtEXwsKVlXIpJ89dFs8PvkaZH9jBVJ2Z8GU4iwG/qP7MgY8qwr+1skbwR6qecWWQLUzB8Q==
|
||||
|
||||
cp-file@^7.0.0:
|
||||
version "7.0.0"
|
||||
@ -8973,7 +8957,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
|
||||
debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
@ -9114,11 +9098,16 @@ delimit-stream@0.1.0:
|
||||
resolved "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz"
|
||||
integrity sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==
|
||||
|
||||
denque@^1.1.0, denque@^1.5.0:
|
||||
denque@^1.5.0:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz"
|
||||
integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==
|
||||
|
||||
denque@^2.0.1:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
|
||||
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
|
||||
|
||||
depd@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
|
||||
@ -9435,6 +9424,11 @@ elliptic@^6.5.3, elliptic@^6.5.4:
|
||||
minimalistic-assert "^1.0.1"
|
||||
minimalistic-crypto-utils "^1.0.1"
|
||||
|
||||
emitter-component@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/emitter-component/-/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6"
|
||||
integrity sha512-G+mpdiAySMuB7kesVRLuyvYRqDmshB7ReKEVuyBPkzQlmiDiLrt7hHHIy4Aff552bgknVN7B2/d3lzhGO5dvpQ==
|
||||
|
||||
emittery@^0.10.2:
|
||||
version "0.10.2"
|
||||
resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz"
|
||||
@ -11798,6 +11792,11 @@ icss-utils@^5.0.0, icss-utils@^5.1.0:
|
||||
resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz"
|
||||
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
|
||||
|
||||
idb@^7.0.2:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b"
|
||||
integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==
|
||||
|
||||
identity-obj-proxy@3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz"
|
||||
@ -12081,19 +12080,17 @@ ionicons@6.0.4:
|
||||
dependencies:
|
||||
"@stencil/core" "^2.18.0"
|
||||
|
||||
ioredis@^4.28.5:
|
||||
version "4.28.5"
|
||||
resolved "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz"
|
||||
integrity sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==
|
||||
ioredis@^5.0.0:
|
||||
version "5.2.4"
|
||||
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.2.4.tgz#9e262a668bc29bae98f2054c1e0d7efd86996b96"
|
||||
integrity sha512-qIpuAEt32lZJQ0XyrloCRdlEdUUNGG9i0UOk6zgzK6igyudNWqEBxfH6OlbnOOoBBvr1WB02mm8fR55CnikRng==
|
||||
dependencies:
|
||||
"@ioredis/commands" "^1.1.1"
|
||||
cluster-key-slot "^1.1.0"
|
||||
debug "^4.3.1"
|
||||
denque "^1.1.0"
|
||||
debug "^4.3.4"
|
||||
denque "^2.0.1"
|
||||
lodash.defaults "^4.2.0"
|
||||
lodash.flatten "^4.4.0"
|
||||
lodash.isarguments "^3.1.0"
|
||||
p-map "^2.1.0"
|
||||
redis-commands "1.7.0"
|
||||
redis-errors "^1.2.0"
|
||||
redis-parser "^3.0.0"
|
||||
standard-as-callback "^2.1.0"
|
||||
@ -13185,9 +13182,9 @@ jest-worker@^28.1.1, jest-worker@^28.1.3:
|
||||
merge-stream "^2.0.0"
|
||||
supports-color "^8.0.0"
|
||||
|
||||
jest@28.1.3:
|
||||
jest@28.1.3, jest@^28.1.2:
|
||||
version "28.1.3"
|
||||
resolved "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz"
|
||||
resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b"
|
||||
integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==
|
||||
dependencies:
|
||||
"@jest/core" "^28.1.3"
|
||||
@ -13749,11 +13746,6 @@ lodash.defaults@^4.2.0:
|
||||
resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz"
|
||||
integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==
|
||||
|
||||
lodash.flatten@^4.4.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz"
|
||||
integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
|
||||
|
||||
lodash.includes@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz"
|
||||
@ -14645,11 +14637,6 @@ node-abort-controller@^3.0.1:
|
||||
resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.0.1.tgz"
|
||||
integrity sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==
|
||||
|
||||
node-addon-api@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz"
|
||||
integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
|
||||
|
||||
node-addon-api@^3.0.0, node-addon-api@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz"
|
||||
@ -14672,11 +14659,6 @@ node-gyp-build-optional-packages@5.0.2:
|
||||
resolved "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.2.tgz"
|
||||
integrity sha512-PiN4NWmlQPqvbEFcH/omQsswWQbe5Z9YK/zdB23irp5j2XibaA2IrGvpSWmVVG4qMZdmPdwPctSy4a86rOMn6g==
|
||||
|
||||
node-gyp-build@^4.2.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz"
|
||||
integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==
|
||||
|
||||
node-gyp-build@^4.2.2, node-gyp-build@^4.3.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz"
|
||||
@ -15289,7 +15271,7 @@ p-locate@^5.0.0:
|
||||
dependencies:
|
||||
p-limit "^3.0.2"
|
||||
|
||||
p-map@^2.0.0, p-map@^2.1.0:
|
||||
p-map@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz"
|
||||
integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
|
||||
@ -16399,10 +16381,10 @@ prettier-plugin-organize-attributes@0.0.5:
|
||||
resolved "https://registry.npmjs.org/prettier-plugin-organize-attributes/-/prettier-plugin-organize-attributes-0.0.5.tgz"
|
||||
integrity sha512-dSts16q8wd+oq8Zwk5mwmYXo1aN3B+ZkEJqx/ar5fedNHdOvx7S4XDMH/pNK7rmBW0bPXkp/kJX5gAANsWzh3A==
|
||||
|
||||
prettier@2.7.1:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz"
|
||||
integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
|
||||
prettier@2.8.1:
|
||||
version "2.8.1"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc"
|
||||
integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==
|
||||
|
||||
"prettier@>=2.2.1 <=2.3.0":
|
||||
version "2.3.0"
|
||||
@ -16445,12 +16427,12 @@ pretty-hrtime@^1.0.3:
|
||||
resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz"
|
||||
integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==
|
||||
|
||||
prisma@4.7.1:
|
||||
version "4.7.1"
|
||||
resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.7.1.tgz#0a1beac26abdc4421e496b75eb50413f3ee3b0ba"
|
||||
integrity sha512-CCQP+m+1qZOGIZlvnL6T3ZwaU0LAleIHYFPN9tFSzjs/KL6vH9rlYbGOkTuG9Q1s6Ki5D0LJlYlW18Z9EBUpGg==
|
||||
prisma@4.8.0:
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.8.0.tgz#634dbbdc9d3f76c61604880251673d08ccb6f02b"
|
||||
integrity sha512-DWIhxvxt8f4h6MDd35mz7BJff+fu7HItW3WPDIEpCR3RzcOWyiHBbLQW5/DOgmf+pRLTjwXQob7kuTZVYUAw5w==
|
||||
dependencies:
|
||||
"@prisma/engines" "4.7.1"
|
||||
"@prisma/engines" "4.8.0"
|
||||
|
||||
prismjs@^1.27.0, prismjs@^1.28.0:
|
||||
version "1.28.0"
|
||||
@ -16870,7 +16852,7 @@ redent@^1.0.0:
|
||||
indent-string "^2.1.0"
|
||||
strip-indent "^1.0.1"
|
||||
|
||||
redis-commands@1.7.0, redis-commands@^1.7.0:
|
||||
redis-commands@^1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz"
|
||||
integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==
|
||||
@ -17484,15 +17466,6 @@ schema-utils@^4.0.0:
|
||||
ajv-formats "^2.1.1"
|
||||
ajv-keywords "^5.0.0"
|
||||
|
||||
secp256k1@^4.0.2:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz"
|
||||
integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==
|
||||
dependencies:
|
||||
elliptic "^6.5.4"
|
||||
node-addon-api "^2.0.0"
|
||||
node-gyp-build "^4.2.0"
|
||||
|
||||
secure-compare@3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz"
|
||||
@ -18100,6 +18073,13 @@ stream-shift@^1.0.0:
|
||||
resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz"
|
||||
integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
|
||||
|
||||
stream@^0.0.2:
|
||||
version "0.0.2"
|
||||
resolved "https://registry.yarnpkg.com/stream/-/stream-0.0.2.tgz#7f5363f057f6592c5595f00bc80a27f5cec1f0ef"
|
||||
integrity sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==
|
||||
dependencies:
|
||||
emitter-component "^1.1.1"
|
||||
|
||||
streamsearch@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz"
|
||||
@ -18788,9 +18768,9 @@ ts-dedent@^2.0.0:
|
||||
resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz"
|
||||
integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==
|
||||
|
||||
ts-jest@28.0.8, ts-jest@^28.0.0:
|
||||
ts-jest@28.0.8, ts-jest@^28.0.0, ts-jest@^28.0.5:
|
||||
version "28.0.8"
|
||||
resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz"
|
||||
resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.8.tgz#cd204b8e7a2f78da32cf6c95c9a6165c5b99cc73"
|
||||
integrity sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==
|
||||
dependencies:
|
||||
bs-logger "0.x"
|
||||
@ -18823,9 +18803,9 @@ ts-loader@^9.3.1:
|
||||
micromatch "^4.0.0"
|
||||
semver "^7.3.4"
|
||||
|
||||
ts-node@10.9.1:
|
||||
ts-node@10.9.1, ts-node@^10.8.2:
|
||||
version "10.9.1"
|
||||
resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
|
||||
integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
|
||||
dependencies:
|
||||
"@cspotcode/source-map-support" "^0.8.0"
|
||||
@ -18881,6 +18861,11 @@ tslib@2.4.0, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz"
|
||||
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
|
||||
|
||||
tslib@2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
|
||||
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
|
||||
|
||||
tslib@^1.10.0, tslib@^1.8.1:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
|
||||
|
Reference in New Issue
Block a user