Compare commits

...

8 Commits

Author SHA1 Message Date
285f2220f3 Release 1.217.0 (#1502) 2022-12-10 14:32:28 +01:00
d72123246d Feature/upgrade cheerio to version 1.0.0 rc.12 (#1501)
* Upgrade cheerio to version 1.0.0-rc.12

* Update changelog
2022-12-10 12:19:45 +01:00
3a78d6c3f1 Feature/add dividend timeline (#1498)
* Add dividend timeline

* Update changelog

Co-Authored-By: João Pereira <joao@jpereira.me>
2022-12-10 11:54:49 +01:00
d5e3ff5717 Add locale (#1500) 2022-12-09 15:06:15 +01:00
2efb331370 Feature/improve value redaction interceptor (#1495)
* Improve value redaction interceptor

* Update changelog
2022-12-07 17:48:46 +01:00
f521fe99c5 Feature/upgrade prisma to version 4.7.1 (#1493)
* Upgrade prisma to version 4.7.1

* Update changelog
2022-12-06 09:03:28 +01:00
42306530b8 New strings translated to Spanish (#1496)
* Update messages.es.xlf

* Update changelog

Co-authored-by: Thomas <4159106+dtslvr@users.noreply.github.com>
2022-12-04 20:02:02 +01:00
68c9d1b266 Bugfix/fix activities sorting in account detail dialog (#1494)
* Fix activities sorting

* Update changelog
2022-12-04 18:54:41 +01:00
20 changed files with 556 additions and 214 deletions

View File

@ -5,6 +5,23 @@ 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.217.0 - 2022-12-10
### Added
- Added the dividend timeline grouped by month
### Changed
- Improved the value redaction interceptor (including `comment`)
- Improved the language localization for Español (`es`)
- Upgraded `cheerio` from version `1.0.0-rc.6` to `1.0.0-rc.12`
- Upgraded `prisma` from version `4.6.1` to `4.7.1`
### Fixed
- Fixed the activities sorting in the account detail dialog
## 1.216.0 - 2022-12-03
### Added

View File

@ -6,5 +6,6 @@ export interface Activities {
export interface Activity extends OrderWithAccount {
feeInBaseCurrency: number;
value: number;
valueInBaseCurrency: number;
}

View File

@ -1,5 +1,3 @@
import { UserService } from '@ghostfolio/api/app/user/user.service';
import { nullifyValuesInObjects } from '@ghostfolio/api/helper/object.helper';
import { RedactValuesInResponseInterceptor } from '@ghostfolio/api/interceptors/redact-values-in-response.interceptor';
import { TransformDataSourceInRequestInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-request.interceptor';
import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interceptors/transform-data-source-in-response.interceptor';
@ -39,8 +37,7 @@ export class OrderController {
private readonly apiService: ApiService,
private readonly impersonationService: ImpersonationService,
private readonly orderService: OrderService,
@Inject(REQUEST) private readonly request: RequestWithUser,
private readonly userService: UserService
@Inject(REQUEST) private readonly request: RequestWithUser
) {}
@Delete(':id')
@ -87,7 +84,7 @@ export class OrderController {
);
const userCurrency = this.request.user.Settings.settings.baseCurrency;
let activities = await this.orderService.getOrders({
const activities = await this.orderService.getOrders({
filters,
userCurrency,
includeDrafts: true,
@ -95,20 +92,6 @@ export class OrderController {
withExcludedAccounts: true
});
if (
impersonationUserId ||
this.userService.isRestrictedView(this.request.user)
) {
activities = nullifyValuesInObjects(activities, [
'fee',
'feeInBaseCurrency',
'quantity',
'unitPrice',
'value',
'valueInBaseCurrency'
]);
}
return { activities };
}

View File

@ -12,6 +12,7 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration.ser
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service';
import {
PortfolioDetails,
PortfolioDividends,
PortfolioInvestments,
PortfolioPerformanceResponse,
PortfolioPublicDetails,
@ -185,6 +186,55 @@ export class PortfolioController {
};
}
@Get('dividends')
@UseGuards(AuthGuard('jwt'))
public async getDividends(
@Headers('impersonation-id') impersonationId: string,
@Query('range') dateRange: DateRange = 'max',
@Query('groupBy') groupBy?: GroupBy
): Promise<PortfolioDividends> {
let dividends: InvestmentItem[];
if (groupBy === 'month') {
dividends = await this.portfolioService.getDividends({
dateRange,
groupBy,
impersonationId
});
} else {
dividends = await this.portfolioService.getDividends({
dateRange,
impersonationId
});
}
if (
impersonationId ||
this.userService.isRestrictedView(this.request.user)
) {
const maxDividend = dividends.reduce(
(investment, item) => Math.max(investment, item.investment),
1
);
dividends = dividends.map((item) => ({
date: item.date,
investment: item.investment / maxDividend
}));
}
if (
this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION') &&
this.request.user.subscription.type === 'Basic'
) {
dividends = dividends.map((item) => {
return nullifyValuesInObject(item, ['investment']);
});
}
return { dividends };
}
@Get('investments')
@UseGuards(AuthGuard('jwt'))
public async getInvestments(
@ -197,8 +247,8 @@ export class PortfolioController {
if (groupBy === 'month') {
investments = await this.portfolioService.getInvestments({
dateRange,
impersonationId,
groupBy: 'month'
groupBy,
impersonationId
});
} else {
investments = await this.portfolioService.getInvestments({

View File

@ -67,6 +67,8 @@ import {
format,
isAfter,
isBefore,
isSameMonth,
isSameYear,
max,
parseISO,
set,
@ -206,6 +208,44 @@ export class PortfolioService {
};
}
public async getDividends({
dateRange,
impersonationId,
groupBy
}: {
dateRange: DateRange;
impersonationId: string;
groupBy?: GroupBy;
}): Promise<InvestmentItem[]> {
const userId = await this.getUserId(impersonationId, this.request.user.id);
const activities = await this.orderService.getOrders({
userId,
types: ['DIVIDEND'],
userCurrency: this.request.user.Settings.settings.baseCurrency
});
let dividends = activities.map((dividend) => {
return {
date: format(dividend.date, DATE_FORMAT),
investment: dividend.valueInBaseCurrency
};
});
if (groupBy === 'month') {
dividends = this.getDividendsByMonth(dividends);
}
const startDate = this.getStartDate(
dateRange,
parseDate(dividends[0]?.date)
);
return dividends.filter(({ date }) => {
return !isBefore(parseDate(date), startDate);
});
}
public async getInvestments({
dateRange,
impersonationId,
@ -1204,6 +1244,49 @@ export class PortfolioService {
);
}
private getDividendsByMonth(aDividends: InvestmentItem[]): InvestmentItem[] {
if (aDividends.length === 0) {
return [];
}
const dividends = [];
let currentDate: Date;
let investmentByMonth = new Big(0);
for (const [index, dividend] of aDividends.entries()) {
if (
isSameMonth(parseDate(dividend.date), currentDate) &&
isSameYear(parseDate(dividend.date), currentDate)
) {
// Same month: Add up divididends
investmentByMonth = investmentByMonth.plus(dividend.investment);
} else {
// New month: Store previous month and reset
if (currentDate) {
dividends.push({
date: format(set(currentDate, { date: 1 }), DATE_FORMAT),
investment: investmentByMonth
});
}
currentDate = parseDate(dividend.date);
investmentByMonth = new Big(dividend.investment);
}
if (index === aDividends.length - 1) {
// Store current month (latest order)
dividends.push({
date: format(set(currentDate, { date: 1 }), DATE_FORMAT),
investment: investmentByMonth
});
}
}
return dividends;
}
private getFees({
date = new Date(0),
orders,

View File

@ -1,4 +1,5 @@
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
import { UserService } from '@ghostfolio/api/app/user/user.service';
import {
CallHandler,
ExecutionContext,
@ -12,7 +13,7 @@ import { map } from 'rxjs/operators';
export class RedactValuesInResponseInterceptor<T>
implements NestInterceptor<T, any>
{
public constructor() {}
public constructor(private userService: UserService) {}
public intercept(
context: ExecutionContext,
@ -23,7 +24,10 @@ export class RedactValuesInResponseInterceptor<T>
const request = context.switchToHttp().getRequest();
const hasImpersonationId = !!request.headers?.['impersonation-id'];
if (hasImpersonationId) {
if (
hasImpersonationId ||
this.userService.isRestrictedView(request.user)
) {
if (data.accounts) {
for (const accountId of Object.keys(data.accounts)) {
if (data.accounts[accountId]?.balance !== undefined) {
@ -38,6 +42,34 @@ export class RedactValuesInResponseInterceptor<T>
activity.Account.balance = null;
}
if (activity.comment !== undefined) {
activity.comment = null;
}
if (activity.fee !== undefined) {
activity.fee = null;
}
if (activity.feeInBaseCurrency !== undefined) {
activity.feeInBaseCurrency = null;
}
if (activity.quantity !== undefined) {
activity.quantity = null;
}
if (activity.unitPrice !== undefined) {
activity.unitPrice = null;
}
if (activity.value !== undefined) {
activity.value = null;
}
if (activity.valueInBaseCurrency !== undefined) {
activity.valueInBaseCurrency = null;
}
return activity;
});
}

View File

@ -30,7 +30,7 @@
</div>
</div>
<div *ngIf="orders?.length > 0" class="row">
<div class="row" [ngClass]="{ 'd-none': !orders?.length }">
<div class="col mb-3">
<div class="h5 mb-0" i18n>Activities</div>
<gf-activities-table
@ -38,7 +38,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[deviceType]="data.deviceType"
[hasPermissionToCreateActivity]="false"
[hasPermissionToExportActivities]="!hasImpersonationId"
[hasPermissionToExportActivities]="true"
[hasPermissionToFilter]="false"
[hasPermissionToImportActivities]="false"
[hasPermissionToOpenDetails]="false"

View File

@ -18,14 +18,8 @@
</ng-container>
<ng-container matColumnDef="account">
<th
*matHeaderCellDef
class="px-1"
i18n
mat-header-cell
mat-sort-header="name"
>
Name
<th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header="name">
<ng-container i18n>Name</ng-container>
</th>
<td *matCellDef="let element" class="px-1" mat-cell>
<gf-symbol-icon

View File

@ -48,6 +48,7 @@ import { last } from 'lodash';
})
export class InvestmentChartComponent implements OnChanges, OnDestroy {
@Input() benchmarkDataItems: InvestmentItem[] = [];
@Input() benchmarkDataLabel = '';
@Input() colorScheme: ColorScheme;
@Input() currency: string;
@Input() daysInMarket: number;
@ -153,7 +154,7 @@ export class InvestmentChartComponent implements OnChanges, OnDestroy {
y: this.isInPercent ? investment * 100 : investment
};
}),
label: $localize`Deposit`,
label: this.benchmarkDataLabel,
segment: {
borderColor: (context: unknown) =>
this.isInFuture(
@ -194,6 +195,9 @@ export class InvestmentChartComponent implements OnChanges, OnDestroy {
this.chart.options.plugins.tooltip = <unknown>(
this.getTooltipPluginConfiguration()
);
this.chart.options.scales.x.min = this.daysInMarket
? subDays(new Date(), this.daysInMarket).toISOString()
: undefined;
this.chart.update();
} else {
this.chart = new Chart(this.chartCanvas.nativeElement, {
@ -264,6 +268,10 @@ export class InvestmentChartComponent implements OnChanges, OnDestroy {
color: `rgba(${getTextColor(this.colorScheme)}, 0.8)`,
display: false
},
min: this.daysInMarket
? subDays(new Date(), this.daysInMarket).toISOString()
: undefined,
suggestedMax: new Date().toISOString(),
type: 'time',
time: {
tooltipFormat: getDateFormatString(this.locale),

View File

@ -30,9 +30,12 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
public dateRangeOptions = ToggleComponent.DEFAULT_DATE_RANGE_OPTIONS;
public daysInMarket: number;
public deviceType: string;
public dividendsByMonth: InvestmentItem[];
public dividendTimelineDataLabel = $localize`Dividend`;
public firstOrderDate: Date;
public hasImpersonationId: boolean;
public investments: InvestmentItem[];
public investmentTimelineDataLabel = $localize`Deposit`;
public investmentsByMonth: InvestmentItem[];
public isLoadingBenchmarkComparator: boolean;
public isLoadingInvestmentChart: boolean;
@ -42,6 +45,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
];
public performanceDataItems: HistoricalDataItem[];
public performanceDataItemsInPercentage: HistoricalDataItem[];
public portfolioEvolutionDataLabel = $localize`Deposit`;
public top3: Position[];
public user: User;
@ -165,6 +169,18 @@ export class AnalysisPageComponent implements OnDestroy, OnInit {
this.changeDetectorRef.markForCheck();
});
this.dataService
.fetchDividends({
groupBy: 'month',
range: this.user?.settings?.dateRange
})
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe(({ dividends }) => {
this.dividendsByMonth = dividends;
this.changeDetectorRef.markForCheck();
});
this.dataService
.fetchInvestments({
groupBy: 'month',

View File

@ -121,6 +121,7 @@
<gf-investment-chart
class="h-100"
[benchmarkDataItems]="investments"
[benchmarkDataLabel]="portfolioEvolutionDataLabel"
[currency]="user?.settings?.baseCurrency"
[daysInMarket]="daysInMarket"
[historicalDataItems]="performanceDataItems"
@ -133,7 +134,7 @@
</div>
</div>
<div class="row">
<div class="mb-5 row">
<div class="col-lg">
<div class="align-items-center d-flex mb-4">
<div
@ -158,6 +159,7 @@
class="h-100"
groupBy="month"
[benchmarkDataItems]="investmentsByMonth"
[benchmarkDataLabel]="investmentTimelineDataLabel"
[currency]="user?.settings?.baseCurrency"
[daysInMarket]="daysInMarket"
[isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
@ -168,4 +170,40 @@
</div>
</div>
</div>
<div class="row">
<div class="col-lg">
<div class="align-items-center d-flex mb-4">
<div
class="align-items-center d-flex flex-grow-1 h5 mb-0 text-truncate"
>
<span i18n>Dividend Timeline</span>
<gf-premium-indicator
*ngIf="user?.subscription?.type === 'Basic'"
class="ml-1"
></gf-premium-indicator>
</div>
<gf-toggle
class="d-none d-lg-block"
[defaultValue]="mode"
[isLoading]="false"
[options]="modeOptions"
(change)="onChangeGroupBy($event.value)"
></gf-toggle>
</div>
<div class="chart-container">
<gf-investment-chart
class="h-100"
groupBy="month"
[benchmarkDataItems]="dividendsByMonth"
[benchmarkDataLabel]="dividendTimelineDataLabel"
[currency]="user?.settings?.baseCurrency"
[daysInMarket]="daysInMarket"
[isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
[locale]="user?.settings?.locale"
[range]="user?.settings?.dateRange"
></gf-investment-chart>
</div>
</div>
</div>
</div>

View File

@ -27,6 +27,7 @@ import {
InfoItem,
OAuthResponse,
PortfolioDetails,
PortfolioDividends,
PortfolioInvestments,
PortfolioPerformanceResponse,
PortfolioPublicDetails,
@ -35,7 +36,7 @@ import {
User
} from '@ghostfolio/common/interfaces';
import { filterGlobalPermissions } from '@ghostfolio/common/permissions';
import { AccountWithValue, DateRange } from '@ghostfolio/common/types';
import { AccountWithValue, DateRange, GroupBy } from '@ghostfolio/common/types';
import { translate } from '@ghostfolio/ui/i18n';
import { DataSource, Order as OrderModel } from '@prisma/client';
import { format, parseISO } from 'date-fns';
@ -100,6 +101,18 @@ export class DataService {
});
}
public fetchDividends({
groupBy = 'month',
range
}: {
groupBy?: GroupBy;
range: DateRange;
}) {
return this.http.get<PortfolioDividends>('/api/v1/portfolio/dividends', {
params: { groupBy, range }
});
}
public fetchExchangeRateForDate({
date,
symbol
@ -178,10 +191,10 @@ export class DataService {
}
public fetchInvestments({
groupBy,
groupBy = 'month',
range
}: {
groupBy?: 'month';
groupBy?: GroupBy;
range: DateRange;
}) {
return this.http.get<PortfolioInvestments>(

View File

@ -90,7 +90,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">81</context>
<context context-type="linenumber">93</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-users/admin-users.html</context>
@ -110,7 +110,7 @@
<target state="translated">Name</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">21</context>
<context context-type="linenumber">22</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/positions-table/positions-table.component.html</context>
@ -130,7 +130,7 @@
<target state="translated">Gesamt</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">36</context>
<context context-type="linenumber">38</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
@ -142,11 +142,11 @@
<target state="translated">Wert</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">147</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">170</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/positions-table/positions-table.component.html</context>
@ -154,11 +154,11 @@
</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">225</context>
<context context-type="linenumber">230</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">260</context>
<context context-type="linenumber">265</context>
</context-group>
</trans-unit>
<trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">
@ -166,11 +166,11 @@
<target state="translated">Bearbeiten</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">212</context>
<context context-type="linenumber">224</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">369</context>
<context context-type="linenumber">399</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">
@ -178,19 +178,19 @@
<target state="translated">Löschen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">220</context>
<context context-type="linenumber">232</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">152</context>
<context context-type="linenumber">168</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-users/admin-users.html</context>
<context context-type="linenumber">87</context>
<context context-type="linenumber">88</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">385</context>
<context context-type="linenumber">415</context>
</context-group>
</trans-unit>
<trans-unit id="8280212421112607879" datatype="html">
@ -198,7 +198,7 @@
<target state="translated">Möchtest du dieses Konto wirklich löschen?</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.ts</context>
<context context-type="linenumber">79</context>
<context context-type="linenumber">81</context>
</context-group>
</trans-unit>
<trans-unit id="056853138da25939da59abfb432ed2316fe50934" datatype="html">
@ -226,7 +226,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">88</context>
<context context-type="linenumber">93</context>
</context-group>
</trans-unit>
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
@ -362,7 +362,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">154</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/account/create-or-update-access-dialog/create-or-update-access-dialog.html</context>
@ -374,7 +374,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">201,205</context>
<context context-type="linenumber">218,222</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>
@ -390,7 +390,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">161</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/account/create-or-update-access-dialog/create-or-update-access-dialog.html</context>
@ -402,7 +402,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">208,213</context>
<context context-type="linenumber">225,230</context>
</context-group>
</trans-unit>
<trans-unit id="86c6e9437398addbc04b6570de19b2cb4afe6084" datatype="html">
@ -434,7 +434,7 @@
<target state="translated">Daten einholen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">155</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
@ -502,7 +502,7 @@
<target state="translated">Letzte Daten einholen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">131</context>
</context-group>
</trans-unit>
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
@ -510,7 +510,7 @@
<target state="translated">Alle Daten einholen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">118</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
@ -518,11 +518,11 @@
<target state="translated">Profildaten einholen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">137</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">145</context>
<context context-type="linenumber">161</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
@ -1106,7 +1106,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">184,186</context>
<context context-type="linenumber">201,203</context>
</context-group>
</trans-unit>
<trans-unit id="43d544c2e88959f6c59cc4db419528fb0776bd6c" datatype="html">
@ -1138,7 +1138,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/positions-table/positions-table.component.html</context>
<context context-type="linenumber">91</context>
<context context-type="linenumber">92</context>
</context-group>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
@ -1146,7 +1146,7 @@
<target state="translated">Alle anzeigen</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/positions-table/positions-table.component.html</context>
<context context-type="linenumber">137</context>
<context context-type="linenumber">138</context>
</context-group>
</trans-unit>
<trans-unit id="6048892649018070225" datatype="html">
@ -1338,7 +1338,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">286</context>
<context context-type="linenumber">296</context>
</context-group>
</trans-unit>
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
@ -1514,7 +1514,7 @@
<target state="translated">Währung</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">46</context>
<context context-type="linenumber">48</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html</context>
@ -1526,7 +1526,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">113</context>
<context context-type="linenumber">118</context>
</context-group>
</trans-unit>
<trans-unit id="237bd6e6d07f448b7884f05f56a20e30df8622c4" datatype="html">
@ -1534,7 +1534,7 @@
<target state="translated">Cash-Bestand</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">100</context>
<context context-type="linenumber">112</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html</context>
@ -1550,7 +1550,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">58</context>
<context context-type="linenumber">65</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html</context>
@ -1870,7 +1870,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">134</context>
<context context-type="linenumber">139</context>
</context-group>
</trans-unit>
<trans-unit id="6713459747f0f67e53a8a0be0bba45ed324bc112" datatype="html">
@ -1882,7 +1882,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">163</context>
<context context-type="linenumber">168</context>
</context-group>
</trans-unit>
<trans-unit id="160f1ffbd26df073d0fbd02cf8ce0d8cea7603b0" datatype="html">
@ -1892,17 +1892,25 @@
<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-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-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
<context context-type="linenumber">192</context>
<context context-type="linenumber">197</context>
</context-group>
</trans-unit>
<trans-unit id="5c54befce78d70e20c215f10a00e617245f53bc9" datatype="html">
<source>Note</source>
<target state="translated">Kommentar</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">153</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">140,143</context>
<context context-type="linenumber">157,160</context>
</context-group>
</trans-unit>
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
@ -1922,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">154,156</context>
<context context-type="linenumber">171,173</context>
</context-group>
</trans-unit>
<trans-unit id="2309808536212982229" datatype="html">
@ -2082,7 +2090,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">99</context>
<context context-type="linenumber">104</context>
</context-group>
</trans-unit>
<trans-unit id="ed1d0d3031aba025b9bf280c1d7c54f44982ed46" datatype="html">
@ -2090,7 +2098,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">323</context>
<context context-type="linenumber">362</context>
</context-group>
</trans-unit>
<trans-unit id="446d1376bd7f6cf33d75d7a6022c33d2910327a2" datatype="html">
@ -2098,7 +2106,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">333</context>
<context context-type="linenumber">372</context>
</context-group>
</trans-unit>
<trans-unit id="db4ffd639aac51ba929921856f8b15ea29e53695" datatype="html">
@ -2106,7 +2114,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">343</context>
<context context-type="linenumber">382</context>
</context-group>
</trans-unit>
<trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">
@ -2114,7 +2122,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">373</context>
<context context-type="linenumber">403</context>
</context-group>
</trans-unit>
<trans-unit id="d8c19dd72422ee41c5ca9ad38b80592239e0fd08" datatype="html">
@ -2122,7 +2130,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">381</context>
<context context-type="linenumber">411</context>
</context-group>
</trans-unit>
<trans-unit id="670983159637074283" datatype="html">
@ -2130,7 +2138,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">147</context>
<context context-type="linenumber">149</context>
</context-group>
</trans-unit>
<trans-unit id="170f7de02b14690fb9c1999a16926c0044bfd5c1" datatype="html">
@ -2310,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">169,171</context>
<context context-type="linenumber">186,188</context>
</context-group>
</trans-unit>
<trans-unit id="936788a5ab949fe0d70098ba051ac7a44999ff08" datatype="html">
@ -2414,7 +2422,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">41</context>
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="5213771062241898526" datatype="html">
@ -2482,7 +2490,7 @@
<target state="translated">Filtern nach...</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
<context context-type="linenumber">128</context>
<context context-type="linenumber">130</context>
</context-group>
</trans-unit>
<trans-unit id="2078421919111943467" datatype="html">
@ -2502,7 +2510,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">319</context>
<context context-type="linenumber">321</context>
</context-group>
</trans-unit>
<trans-unit id="fbaaeb297e70b9a800acf841b9d26c19d60651ef" datatype="html">
@ -2925,6 +2933,14 @@
<context context-type="linenumber">142</context>
</context-group>
</trans-unit>
<trans-unit id="0e248090d31ea05a902faf4a175ea6a1d88d9187" datatype="html">
<source>Dividend Timeline</source>
<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">178</context>
</context-group>
</trans-unit>
</body>
</file>
</xliff>

View File

@ -2632,7 +2632,7 @@
</trans-unit>
<trans-unit id="112783260724635106" datatype="html">
<source>Total Amount</source>
<target state="new">Total Amount</target>
<target state="translated">Importe total</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/investment-chart/investment-chart.component.ts</context>
<context context-type="linenumber">177</context>
@ -2640,7 +2640,7 @@
</trans-unit>
<trans-unit id="f1a355a1af2e818050a3af693ac8b521fa7edc5f" datatype="html">
<source>Portfolio Evolution</source>
<target state="new">Portfolio Evolution</target>
<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>
@ -2656,7 +2656,7 @@
</trans-unit>
<trans-unit id="4086606389696938932" datatype="html">
<source>Account</source>
<target state="new">Account</target>
<target state="translated">Cuenta</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">4</context>
@ -2664,7 +2664,7 @@
</trans-unit>
<trans-unit id="4574987680940794089" datatype="html">
<source>Asset Class</source>
<target state="new">Asset Class</target>
<target state="translated">Tipo de activo</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">5</context>
@ -2672,7 +2672,7 @@
</trans-unit>
<trans-unit id="8106025670158480144" datatype="html">
<source>Symbol</source>
<target state="new">Symbol</target>
<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">8</context>
@ -2680,7 +2680,7 @@
</trans-unit>
<trans-unit id="1825829511397926879" datatype="html">
<source>Tag</source>
<target state="new">Tag</target>
<target state="translated">Etiqueta</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">9</context>
@ -2688,7 +2688,7 @@
</trans-unit>
<trans-unit id="787798817533231355" datatype="html">
<source>Cash</source>
<target state="new">Cash</target>
<target state="translated">Efectivo</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">12</context>
@ -2696,7 +2696,7 @@
</trans-unit>
<trans-unit id="8431989971855844965" datatype="html">
<source>Commodity</source>
<target state="new">Commodity</target>
<target state="translated">Bien</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">13</context>
@ -2704,7 +2704,7 @@
</trans-unit>
<trans-unit id="1983771552391474467" datatype="html">
<source>Equity</source>
<target state="new">Equity</target>
<target state="translated">Capital</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">14</context>
@ -2712,7 +2712,7 @@
</trans-unit>
<trans-unit id="6124744839836623630" datatype="html">
<source>Fixed Income</source>
<target state="new">Fixed Income</target>
<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">15</context>
@ -2720,7 +2720,7 @@
</trans-unit>
<trans-unit id="8432027249343784512" datatype="html">
<source>Real Estate</source>
<target state="new">Real Estate</target>
<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">16</context>
@ -2728,7 +2728,7 @@
</trans-unit>
<trans-unit id="8977365084844053365" datatype="html">
<source>Bond</source>
<target state="new">Bond</target>
<target state="translated">Bono</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">19</context>
@ -2736,7 +2736,7 @@
</trans-unit>
<trans-unit id="2893204435511484886" datatype="html">
<source>Cryptocurrency</source>
<target state="new">Cryptocurrency</target>
<target state="translated">Criptomoneda</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">20</context>
@ -2744,7 +2744,7 @@
</trans-unit>
<trans-unit id="9071695492820527473" datatype="html">
<source>ETF</source>
<target state="new">ETF</target>
<target state="translated">ETF</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">21</context>
@ -2752,7 +2752,7 @@
</trans-unit>
<trans-unit id="5734784563242233466" datatype="html">
<source>Mutual Fund</source>
<target state="new">Mutual Fund</target>
<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">22</context>
@ -2760,7 +2760,7 @@
</trans-unit>
<trans-unit id="1270654249046226808" datatype="html">
<source>Precious Metal</source>
<target state="new">Precious Metal</target>
<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">23</context>
@ -2768,7 +2768,7 @@
</trans-unit>
<trans-unit id="1346519036036997811" datatype="html">
<source>Private Equity</source>
<target state="new">Private Equity</target>
<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">24</context>
@ -2776,7 +2776,7 @@
</trans-unit>
<trans-unit id="4613338085351943838" datatype="html">
<source>Stock</source>
<target state="new">Stock</target>
<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">25</context>
@ -2784,7 +2784,7 @@
</trans-unit>
<trans-unit id="6268646680388419543" datatype="html">
<source>Emergency Fund</source>
<target state="new">Emergency Fund</target>
<target state="translated">Fondo de emergencia</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">6</context>
@ -2792,7 +2792,7 @@
</trans-unit>
<trans-unit id="8693603235657020323" datatype="html">
<source>Other</source>
<target state="new">Other</target>
<target state="translated">Otros</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">7</context>
@ -2804,7 +2804,7 @@
</trans-unit>
<trans-unit id="4893616715766810081" datatype="html">
<source>No data available</source>
<target state="new">No data available</target>
<target state="translated">Sin datos disponibles</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts</context>
<context context-type="linenumber">371</context>
@ -2816,7 +2816,7 @@
</trans-unit>
<trans-unit id="1228771048078164312" datatype="html">
<source>North America</source>
<target state="new">North America</target>
<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">31</context>
@ -2824,7 +2824,7 @@
</trans-unit>
<trans-unit id="1413778527796351850" datatype="html">
<source>Africa</source>
<target state="new">Africa</target>
<target state="translated">África</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">28</context>
@ -2832,7 +2832,7 @@
</trans-unit>
<trans-unit id="3345512471687795386" datatype="html">
<source>Asia</source>
<target state="new">Asia</target>
<target state="translated">Asia</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">29</context>
@ -2840,7 +2840,7 @@
</trans-unit>
<trans-unit id="8350109327144196614" datatype="html">
<source>Europe</source>
<target state="new">Europe</target>
<target state="translated">Europa</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">30</context>
@ -2848,7 +2848,7 @@
</trans-unit>
<trans-unit id="3228811828827738441" datatype="html">
<source>Oceania</source>
<target state="new">Oceania</target>
<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">32</context>
@ -2856,7 +2856,7 @@
</trans-unit>
<trans-unit id="5957846001261659229" datatype="html">
<source>South America</source>
<target state="new">South America</target>
<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">33</context>
@ -2864,7 +2864,7 @@
</trans-unit>
<trans-unit id="73f8489a3ae4d805787b8350d3d91e03e830115b" datatype="html">
<source>Choose File</source>
<target state="new">Choose File</target>
<target state="translated">Elegir archivo</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">18,21</context>
@ -2872,7 +2872,7 @@
</trans-unit>
<trans-unit id="6f9fd3da06dc9000eef0d4dcbb37747b303048e9" datatype="html">
<source>The following file formats are supported:</source>
<target state="new">The following file formats are supported:</target>
<target state="translated">Los siguientes formatos de archivo están soportados:</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">21,23</context>
@ -2880,7 +2880,7 @@
</trans-unit>
<trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">
<source>Back</source>
<target state="new">Back</target>
<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>
@ -2888,7 +2888,7 @@
</trans-unit>
<trans-unit id="ec2d3a89b366d1ca80be056e9e71f0165ae75c7b" datatype="html">
<source>Community</source>
<target state="new">Community</target>
<target state="translated">Comunidad</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/account/account-page.html</context>
<context context-type="linenumber">135</context>
@ -2904,7 +2904,7 @@
</trans-unit>
<trans-unit id="064d88bead9e71bd849ecaefd8b38cca8f195a88" datatype="html">
<source>Activities Count</source>
<target state="new">Activities Count</target>
<target state="translated">Recuento de actividades</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">69</context>
@ -2912,7 +2912,7 @@
</trans-unit>
<trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">
<source>Refresh</source>
<target state="new">Refresh</target>
<target state="translated">Refrescar</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">22</context>
@ -2920,7 +2920,7 @@
</trans-unit>
<trans-unit id="638bbddabc5883a7a4087f45592944ce6558409c" datatype="html">
<source>Symbol Mapping</source>
<target state="new">Symbol Mapping</target>
<target state="translated">Mapeo de símbolos</target>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">142</context>

View File

@ -83,7 +83,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">81</context>
<context context-type="linenumber">93</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-users/admin-users.html</context>
@ -102,7 +102,7 @@
<source>Name</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">21</context>
<context context-type="linenumber">22</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/positions-table/positions-table.component.html</context>
@ -121,7 +121,7 @@
<source>Total</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">36</context>
<context context-type="linenumber">38</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
@ -132,11 +132,11 @@
<source>Value</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">147</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">170</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/positions-table/positions-table.component.html</context>
@ -144,48 +144,48 @@
</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">225</context>
<context context-type="linenumber">230</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">260</context>
<context context-type="linenumber">265</context>
</context-group>
</trans-unit>
<trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">
<source>Edit</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">212</context>
<context context-type="linenumber">224</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">369</context>
<context context-type="linenumber">399</context>
</context-group>
</trans-unit>
<trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">
<source>Delete</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">220</context>
<context context-type="linenumber">232</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">152</context>
<context context-type="linenumber">168</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-users/admin-users.html</context>
<context context-type="linenumber">87</context>
<context context-type="linenumber">88</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">385</context>
<context context-type="linenumber">415</context>
</context-group>
</trans-unit>
<trans-unit id="8280212421112607879" datatype="html">
<source>Do you really want to delete this account?</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.ts</context>
<context context-type="linenumber">79</context>
<context context-type="linenumber">81</context>
</context-group>
</trans-unit>
<trans-unit id="056853138da25939da59abfb432ed2316fe50934" datatype="html">
@ -211,7 +211,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">88</context>
<context context-type="linenumber">93</context>
</context-group>
</trans-unit>
<trans-unit id="1b6bc6d5daaa6ec75d201690bb6f782f30bf98a0" datatype="html">
@ -333,7 +333,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">154</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/account/create-or-update-access-dialog/create-or-update-access-dialog.html</context>
@ -345,7 +345,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">201,205</context>
<context context-type="linenumber">218,222</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>
@ -360,7 +360,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">161</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/account/create-or-update-access-dialog/create-or-update-access-dialog.html</context>
@ -372,7 +372,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">208,213</context>
<context context-type="linenumber">225,230</context>
</context-group>
</trans-unit>
<trans-unit id="86c6e9437398addbc04b6570de19b2cb4afe6084" datatype="html">
@ -400,7 +400,7 @@
<source>Gather Data</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">155</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
@ -460,25 +460,25 @@
<source>Gather Recent Data</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">131</context>
</context-group>
</trans-unit>
<trans-unit id="27e27f3f7338baefacfd5668bad03ece9c5955df" datatype="html">
<source>Gather All Data</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">118</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="cc65b67b46b69cf06ff1f16a909e61612c9d57b8" datatype="html">
<source>Gather Profile Data</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">121</context>
<context context-type="linenumber">137</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.html</context>
<context context-type="linenumber">145</context>
<context context-type="linenumber">161</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
@ -1002,7 +1002,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">184,186</context>
<context context-type="linenumber">201,203</context>
</context-group>
</trans-unit>
<trans-unit id="43d544c2e88959f6c59cc4db419528fb0776bd6c" datatype="html">
@ -1031,14 +1031,14 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/positions-table/positions-table.component.html</context>
<context context-type="linenumber">91</context>
<context context-type="linenumber">92</context>
</context-group>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/positions-table/positions-table.component.html</context>
<context context-type="linenumber">137</context>
<context context-type="linenumber">138</context>
</context-group>
</trans-unit>
<trans-unit id="6048892649018070225" datatype="html">
@ -1208,7 +1208,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">286</context>
<context context-type="linenumber">296</context>
</context-group>
</trans-unit>
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
@ -1362,7 +1362,7 @@
<source>Currency</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">46</context>
<context context-type="linenumber">48</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html</context>
@ -1374,14 +1374,14 @@
</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">113</context>
<context context-type="linenumber">118</context>
</context-group>
</trans-unit>
<trans-unit id="237bd6e6d07f448b7884f05f56a20e30df8622c4" datatype="html">
<source>Cash Balance</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">100</context>
<context context-type="linenumber">112</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html</context>
@ -1396,7 +1396,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/accounts-table/accounts-table.component.html</context>
<context context-type="linenumber">58</context>
<context context-type="linenumber">65</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html</context>
@ -1679,7 +1679,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">134</context>
<context context-type="linenumber">139</context>
</context-group>
</trans-unit>
<trans-unit id="6713459747f0f67e53a8a0be0bba45ed324bc112" datatype="html">
@ -1690,7 +1690,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">163</context>
<context context-type="linenumber">168</context>
</context-group>
</trans-unit>
<trans-unit id="160f1ffbd26df073d0fbd02cf8ce0d8cea7603b0" datatype="html">
@ -1699,16 +1699,24 @@
<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-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-group>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/activities-table/activities-table.component.html</context>
<context context-type="linenumber">192</context>
<context context-type="linenumber">197</context>
</context-group>
</trans-unit>
<trans-unit id="5c54befce78d70e20c215f10a00e617245f53bc9" datatype="html">
<source>Note</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html</context>
<context context-type="linenumber">153</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">140,143</context>
<context context-type="linenumber">157,160</context>
</context-group>
</trans-unit>
<trans-unit id="584c9433705e9bfdd2e7a9f0192690f453d36196" datatype="html">
@ -1727,7 +1735,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">154,156</context>
<context context-type="linenumber">171,173</context>
</context-group>
</trans-unit>
<trans-unit id="2309808536212982229" datatype="html">
@ -1868,49 +1876,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">99</context>
<context context-type="linenumber">104</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">323</context>
<context context-type="linenumber">362</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">333</context>
<context context-type="linenumber">372</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">343</context>
<context context-type="linenumber">382</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">373</context>
<context context-type="linenumber">403</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">381</context>
<context context-type="linenumber">411</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">147</context>
<context context-type="linenumber">149</context>
</context-group>
</trans-unit>
<trans-unit id="170f7de02b14690fb9c1999a16926c0044bfd5c1" datatype="html">
@ -2049,7 +2057,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">169,171</context>
<context context-type="linenumber">186,188</context>
</context-group>
</trans-unit>
<trans-unit id="3c5ec7bc638db6f37c402e4afab2084f8763e268" datatype="html">
@ -2189,7 +2197,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">41</context>
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="8511b16abcf065252b350d64e337ba2447db3ffb" datatype="html">
@ -2235,14 +2243,14 @@
<source>Filter by...</source>
<context-group purpose="location">
<context context-type="sourcefile">apps/client/src/app/components/admin-market-data/admin-market-data.component.ts</context>
<context context-type="linenumber">128</context>
<context context-type="linenumber">130</context>
</context-group>
</trans-unit>
<trans-unit id="303469635941752458" datatype="html">
<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">319</context>
<context context-type="linenumber">321</context>
</context-group>
</trans-unit>
<trans-unit id="3d14940af7de691ac27efb67bef3e974cbe3281c" datatype="html">
@ -2615,6 +2623,13 @@
<context context-type="linenumber">22</context>
</context-group>
</trans-unit>
<trans-unit id="0e248090d31ea05a902faf4a175ea6a1d88d9187" datatype="html">
<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">178</context>
</context-group>
</trans-unit>
</body>
</file>
</xliff>

View File

@ -19,6 +19,7 @@ import { InfoItem } from './info-item.interface';
import { LineChartItem } from './line-chart-item.interface';
import { PortfolioChart } from './portfolio-chart.interface';
import { PortfolioDetails } from './portfolio-details.interface';
import { PortfolioDividends } from './portfolio-dividends.interface';
import { PortfolioInvestments } from './portfolio-investments.interface';
import { PortfolioItem } from './portfolio-item.interface';
import { PortfolioOverview } from './portfolio-overview.interface';
@ -62,6 +63,7 @@ export {
OAuthResponse,
PortfolioChart,
PortfolioDetails,
PortfolioDividends,
PortfolioInvestments,
PortfolioItem,
PortfolioOverview,

View File

@ -0,0 +1,5 @@
import { InvestmentItem } from './investment-item.interface';
export interface PortfolioDividends {
dividends: InvestmentItem[];
}

View File

@ -3,6 +3,7 @@ import '@angular/localize/init';
const locales = {
ACCOUNT: $localize`Account`,
ASSET_CLASS: $localize`Asset Class`,
ASSET_SUB_CLASS: $localize`Asset Sub Class`,
EMERGENCY_FUND: $localize`Emergency Fund`,
OTHER: $localize`Other`,
SYMBOL: $localize`Symbol`,

View File

@ -1,6 +1,6 @@
{
"name": "ghostfolio",
"version": "1.216.0",
"version": "1.217.0",
"homepage": "https://ghostfol.io",
"license": "AGPL-3.0",
"scripts": {
@ -82,7 +82,7 @@
"@nestjs/schedule": "2.1.0",
"@nestjs/serve-static": "3.0.0",
"@nrwl/angular": "15.0.13",
"@prisma/client": "4.6.1",
"@prisma/client": "4.7.1",
"@simplewebauthn/browser": "5.2.1",
"@simplewebauthn/server": "5.2.1",
"@stripe/stripe-js": "1.22.0",
@ -98,7 +98,7 @@
"chartjs-adapter-date-fns": "2.0.0",
"chartjs-plugin-annotation": "2.0.0",
"chartjs-plugin-datalabels": "2.0.0",
"cheerio": "1.0.0-rc.6",
"cheerio": "1.0.0-rc.12",
"class-transformer": "0.3.2",
"class-validator": "0.13.1",
"color": "4.0.1",
@ -120,7 +120,7 @@
"passport": "0.6.0",
"passport-google-oauth20": "2.0.0",
"passport-jwt": "4.0.0",
"prisma": "4.6.1",
"prisma": "4.7.1",
"reflect-metadata": "0.1.13",
"rxjs": "7.5.6",
"stripe": "8.199.0",

152
yarn.lock
View File

@ -3666,22 +3666,22 @@
dependencies:
esquery "^1.0.1"
"@prisma/client@4.6.1":
version "4.6.1"
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.6.1.tgz#e8e1d347ecbff44158d21b6591bb99650c8503a8"
integrity sha512-M1+NNrMzqaOIxT7PBGcTs3IZo7d1EW/+gVQd4C4gUgWBDGgD9AcIeZnUSidgWClmpMSgVUdnVORjsWWGUameYA==
"@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==
dependencies:
"@prisma/engines-version" "4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32"
"@prisma/engines-version" "4.7.1-1.272861e07ab64f234d3ffc4094e32bd61775599c"
"@prisma/engines-version@4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32":
version "4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32"
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.6.1-3.694eea289a8462c80264df36757e4fdc129b1b32.tgz#90a71bbdfd5172fc674009346a6ad6b84410cc0a"
integrity sha512-HUCmkXAU2jqp2O1RvNtbE+seLGLyJGEABZS/R38rZjSAafAy0WzBuHq+tbZMnD+b5OSCsTVtIPVcuvx1ySxcWQ==
"@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@4.6.1":
version "4.6.1"
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.6.1.tgz#ae31309cc0f600f2da22708697b3be4eb1e46f9e"
integrity sha512-3u2/XxvxB+Q7cMXHnKU0CpBiUK1QWqpgiBv28YDo1zOIJE3FCF8DI2vrp6vuwjGt5h0JGXDSvmSf4D4maVjJdw==
"@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==
"@samverschueren/stream-to-observable@^0.3.0":
version "0.3.1"
@ -7363,28 +7363,30 @@ check-more-types@^2.24.0:
resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz"
integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==
cheerio-select@^1.3.0:
version "1.6.0"
resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz"
integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==
cheerio-select@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4"
integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==
dependencies:
css-select "^4.3.0"
css-what "^6.0.1"
domelementtype "^2.2.0"
domhandler "^4.3.1"
domutils "^2.8.0"
boolbase "^1.0.0"
css-select "^5.1.0"
css-what "^6.1.0"
domelementtype "^2.3.0"
domhandler "^5.0.3"
domutils "^3.0.1"
cheerio@1.0.0-rc.6:
version "1.0.0-rc.6"
resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.6.tgz"
integrity sha512-hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==
cheerio@1.0.0-rc.12:
version "1.0.0-rc.12"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683"
integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==
dependencies:
cheerio-select "^1.3.0"
dom-serializer "^1.3.1"
domhandler "^4.1.0"
htmlparser2 "^6.1.0"
parse5 "^6.0.1"
parse5-htmlparser2-tree-adapter "^6.0.1"
cheerio-select "^2.1.0"
dom-serializer "^2.0.0"
domhandler "^5.0.3"
domutils "^3.0.1"
htmlparser2 "^8.0.1"
parse5 "^7.0.0"
parse5-htmlparser2-tree-adapter "^7.0.0"
"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.3:
version "3.5.3"
@ -8220,7 +8222,7 @@ css-prefers-color-scheme@^6.0.3:
resolved "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz"
integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==
css-select@^4.1.3, css-select@^4.2.0, css-select@^4.3.0:
css-select@^4.1.3, css-select@^4.2.0:
version "4.3.0"
resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz"
integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
@ -8231,6 +8233,17 @@ css-select@^4.1.3, css-select@^4.2.0, css-select@^4.3.0:
domutils "^2.8.0"
nth-check "^2.0.1"
css-select@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
dependencies:
boolbase "^1.0.0"
css-what "^6.1.0"
domhandler "^5.0.2"
domutils "^3.0.1"
nth-check "^2.0.1"
css-selector-tokenizer@^0.7.1:
version "0.7.3"
resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz"
@ -8247,7 +8260,7 @@ css-tree@^1.1.2, css-tree@^1.1.3:
mdn-data "2.0.14"
source-map "^0.6.1"
css-what@^6.0.1:
css-what@^6.0.1, css-what@^6.1.0:
version "6.1.0"
resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz"
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
@ -9237,7 +9250,7 @@ dom-converter@^0.2.0:
dependencies:
utila "~0.4"
dom-serializer@^1.0.1, dom-serializer@^1.3.1:
dom-serializer@^1.0.1:
version "1.4.1"
resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz"
integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
@ -9246,6 +9259,15 @@ dom-serializer@^1.0.1, dom-serializer@^1.3.1:
domhandler "^4.2.0"
entities "^2.0.0"
dom-serializer@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
dependencies:
domelementtype "^2.3.0"
domhandler "^5.0.2"
entities "^4.2.0"
dom-walk@^0.1.0:
version "0.1.2"
resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz"
@ -9256,7 +9278,7 @@ domain-browser@^1.1.1:
resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
domelementtype@^2.0.1, domelementtype@^2.2.0:
domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
@ -9268,13 +9290,20 @@ domexception@^4.0.0:
dependencies:
webidl-conversions "^7.0.0"
domhandler@^4.0.0, domhandler@^4.1.0, domhandler@^4.2.0, domhandler@^4.3.1:
domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1:
version "4.3.1"
resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz"
integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
dependencies:
domelementtype "^2.2.0"
domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
dependencies:
domelementtype "^2.3.0"
dompurify@2.3.8:
version "2.3.8"
resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.3.8.tgz"
@ -9289,6 +9318,15 @@ domutils@^2.5.2, domutils@^2.8.0:
domelementtype "^2.2.0"
domhandler "^4.2.0"
domutils@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c"
integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==
dependencies:
dom-serializer "^2.0.0"
domelementtype "^2.3.0"
domhandler "^5.0.1"
dot-case@^3.0.4:
version "3.0.4"
resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz"
@ -9478,6 +9516,11 @@ entities@^2.0.0:
resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
entities@^4.2.0, entities@^4.3.0, entities@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
env-paths@^2.2.0:
version "2.2.1"
resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz"
@ -11591,6 +11634,16 @@ htmlparser2@^6.1.0:
domutils "^2.5.2"
entities "^2.0.0"
htmlparser2@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010"
integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==
dependencies:
domelementtype "^2.3.0"
domhandler "^5.0.2"
domutils "^3.0.1"
entities "^4.3.0"
http-cache-semantics@^4.1.0:
version "4.1.0"
resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz"
@ -15409,6 +15462,14 @@ parse5-htmlparser2-tree-adapter@^6.0.1:
dependencies:
parse5 "^6.0.1"
parse5-htmlparser2-tree-adapter@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1"
integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==
dependencies:
domhandler "^5.0.2"
parse5 "^7.0.0"
parse5-sax-parser@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz"
@ -15431,6 +15492,13 @@ parse5@^5.0.0:
resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz"
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
parse5@^7.0.0:
version "7.1.2"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
dependencies:
entities "^4.4.0"
parseurl@~1.3.2, parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
@ -16377,12 +16445,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.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.6.1.tgz#6c85fb667abed006a6b849c9c1ddd81d3f071b87"
integrity sha512-BR4itMCuzrDV4tn3e2TF+nh1zIX/RVU0isKtKoN28ADeoJ9nYaMhiuRRkFd2TZN8+l/XfYzoRKyHzUFXLQhmBQ==
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==
dependencies:
"@prisma/engines" "4.6.1"
"@prisma/engines" "4.7.1"
prismjs@^1.27.0, prismjs@^1.28.0:
version "1.28.0"