-
+
Name
@@ -102,7 +114,12 @@
-
+
Asset Profiles
@@ -193,13 +210,13 @@
diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.ts b/apps/client/src/app/components/admin-settings/admin-settings.component.ts
index cabf4e589..d030abb82 100644
--- a/apps/client/src/app/components/admin-settings/admin-settings.component.ts
+++ b/apps/client/src/app/components/admin-settings/admin-settings.component.ts
@@ -1,8 +1,6 @@
import { GfAdminPlatformComponent } from '@ghostfolio/client/components/admin-platform/admin-platform.component';
import { GfAdminTagComponent } from '@ghostfolio/client/components/admin-tag/admin-tag.component';
import { GfDataProviderStatusComponent } from '@ghostfolio/client/components/data-provider-status/data-provider-status.component';
-import { AdminService } from '@ghostfolio/client/services/admin.service';
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { PROPERTY_API_KEY_GHOSTFOLIO } from '@ghostfolio/common/config';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
@@ -16,6 +14,7 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { AdminService, DataService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule } from '@angular/common';
@@ -23,20 +22,24 @@ import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
- OnDestroy,
- OnInit
+ DestroyRef,
+ OnInit,
+ ViewChild
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatMenuModule } from '@angular/material/menu';
import { MatProgressBarModule } from '@angular/material/progress-bar';
+import { MatSort, MatSortModule } from '@angular/material/sort';
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { ellipsisHorizontal, trashOutline } from 'ionicons/icons';
+import { get } from 'lodash';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { catchError, filter, of, Subject, takeUntil } from 'rxjs';
+import { catchError, filter, of } from 'rxjs';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -53,6 +56,7 @@ import { catchError, filter, of, Subject, takeUntil } from 'rxjs';
MatCardModule,
MatMenuModule,
MatProgressBarModule,
+ MatSortModule,
MatTableModule,
NgxSkeletonLoaderModule,
RouterModule
@@ -61,7 +65,9 @@ import { catchError, filter, of, Subject, takeUntil } from 'rxjs';
styleUrls: ['./admin-settings.component.scss'],
templateUrl: './admin-settings.component.html'
})
-export class GfAdminSettingsComponent implements OnDestroy, OnInit {
+export class GfAdminSettingsComponent implements OnInit {
+ @ViewChild(MatSort) sort: MatSort;
+
public dataSource = new MatTableDataSource();
public defaultDateFormat: string;
public displayedColumns = [
@@ -75,14 +81,13 @@ export class GfAdminSettingsComponent implements OnDestroy, OnInit {
public isGhostfolioApiKeyValid: boolean;
public isLoading = false;
public pricingUrl: string;
-
- private unsubscribeSubject = new Subject();
- private user: User;
+ public user: User;
public constructor(
private adminService: AdminService,
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private notificationService: NotificationService,
private userService: UserService
) {
@@ -91,7 +96,7 @@ export class GfAdminSettingsComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -148,11 +153,6 @@ export class GfAdminSettingsComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private initialize() {
this.isLoading = true;
@@ -160,13 +160,15 @@ export class GfAdminSettingsComponent implements OnDestroy, OnInit {
this.adminService
.fetchAdminData()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ dataProviders, settings }) => {
const filteredProviders = dataProviders.filter(({ dataSource }) => {
return dataSource !== 'MANUAL';
});
this.dataSource = new MatTableDataSource(filteredProviders);
+ this.dataSource.sort = this.sort;
+ this.dataSource.sortingDataAccessor = get;
const ghostfolioApiKey = settings[
PROPERTY_API_KEY_GHOSTFOLIO
@@ -186,7 +188,7 @@ export class GfAdminSettingsComponent implements OnDestroy, OnInit {
filter((status) => {
return status !== null;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe((status) => {
this.ghostfolioApiStatus = status;
diff --git a/apps/client/src/app/components/admin-tag/admin-tag.component.html b/apps/client/src/app/components/admin-tag/admin-tag.component.html
index 98919abd8..463a817ff 100644
--- a/apps/client/src/app/components/admin-tag/admin-tag.component.html
+++ b/apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -45,7 +45,11 @@
Activities
- {{ element.activityCount }}
+
diff --git a/apps/client/src/app/components/admin-tag/admin-tag.component.ts b/apps/client/src/app/components/admin-tag/admin-tag.component.ts
index 305eb4628..506736156 100644
--- a/apps/client/src/app/components/admin-tag/admin-tag.component.ts
+++ b/apps/client/src/app/components/admin-tag/admin-tag.component.ts
@@ -1,17 +1,21 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { CreateTagDto, UpdateTagDto } from '@ghostfolio/common/dtos';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
+import { getLocale } from '@ghostfolio/common/helper';
import { NotificationService } from '@ghostfolio/ui/notifications';
+import { DataService } from '@ghostfolio/ui/services';
+import { GfValueComponent } from '@ghostfolio/ui/value';
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
- OnDestroy,
+ DestroyRef,
+ Input,
OnInit,
ViewChild
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog';
import { MatMenuModule } from '@angular/material/menu';
@@ -28,7 +32,6 @@ import {
} from 'ionicons/icons';
import { get } from 'lodash';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject, takeUntil } from 'rxjs';
import { GfCreateOrUpdateTagDialogComponent } from './create-or-update-tag-dialog/create-or-update-tag-dialog.component';
import { CreateOrUpdateTagDialogParams } from './create-or-update-tag-dialog/interfaces/interfaces';
@@ -36,6 +39,7 @@ import { CreateOrUpdateTagDialogParams } from './create-or-update-tag-dialog/int
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
+ GfValueComponent,
IonIcon,
MatButtonModule,
MatMenuModule,
@@ -47,7 +51,9 @@ import { CreateOrUpdateTagDialogParams } from './create-or-update-tag-dialog/int
styleUrls: ['./admin-tag.component.scss'],
templateUrl: './admin-tag.component.html'
})
-export class GfAdminTagComponent implements OnDestroy, OnInit {
+export class GfAdminTagComponent implements OnInit {
+ @Input() locale = getLocale();
+
@ViewChild(MatSort) sort: MatSort;
public dataSource = new MatTableDataSource();
@@ -55,11 +61,10 @@ export class GfAdminTagComponent implements OnDestroy, OnInit {
public displayedColumns = ['name', 'userId', 'activities', 'actions'];
public tags: Tag[];
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog,
private notificationService: NotificationService,
@@ -68,7 +73,7 @@ export class GfAdminTagComponent implements OnDestroy, OnInit {
private userService: UserService
) {
this.route.queryParams
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((params) => {
if (params['createTagDialog']) {
this.openCreateTagDialog();
@@ -110,20 +115,15 @@ export class GfAdminTagComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private deleteTag(aId: string) {
this.dataService
.deleteTag(aId)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: () => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchTags();
@@ -134,7 +134,7 @@ export class GfAdminTagComponent implements OnDestroy, OnInit {
private fetchTags() {
this.dataService
.fetchTags()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((tags) => {
this.tags = tags;
@@ -165,17 +165,17 @@ export class GfAdminTagComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((tag: CreateTagDto | null) => {
if (tag) {
this.dataService
.postTag(tag)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: () => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchTags();
@@ -204,17 +204,17 @@ export class GfAdminTagComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((tag: UpdateTagDto | null) => {
if (tag) {
this.dataService
.putTag(tag)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: () => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchTags();
diff --git a/apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts b/apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts
index 323609a48..e22c73478 100644
--- a/apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts
+++ b/apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.component.ts
@@ -1,12 +1,7 @@
import { CreateTagDto, UpdateTagDto } from '@ghostfolio/common/dtos';
import { validateObjectForForm } from '@ghostfolio/common/utils';
-import {
- ChangeDetectionStrategy,
- Component,
- Inject,
- OnDestroy
-} from '@angular/core';
+import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
import {
FormBuilder,
FormGroup,
@@ -21,7 +16,6 @@ import {
} from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
-import { Subject } from 'rxjs';
import { CreateOrUpdateTagDialogParams } from './interfaces/interfaces';
@@ -40,11 +34,9 @@ import { CreateOrUpdateTagDialogParams } from './interfaces/interfaces';
styleUrls: ['./create-or-update-tag-dialog.scss'],
templateUrl: 'create-or-update-tag-dialog.html'
})
-export class GfCreateOrUpdateTagDialogComponent implements OnDestroy {
+export class GfCreateOrUpdateTagDialogComponent {
public tagForm: FormGroup;
- private unsubscribeSubject = new Subject();
-
public constructor(
@Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateTagDialogParams,
public dialogRef: MatDialogRef,
@@ -85,9 +77,4 @@ export class GfCreateOrUpdateTagDialogComponent implements OnDestroy {
console.error(error);
}
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts
index 1722b498f..874bbc1db 100644
--- a/apps/client/src/app/components/admin-users/admin-users.component.ts
+++ b/apps/client/src/app/components/admin-users/admin-users.component.ts
@@ -1,9 +1,6 @@
import { UserDetailDialogParams } from '@ghostfolio/client/components/user-detail-dialog/interfaces/interfaces';
import { GfUserDetailDialogComponent } from '@ghostfolio/client/components/user-detail-dialog/user-detail-dialog.component';
-import { AdminService } from '@ghostfolio/client/services/admin.service';
-import { DataService } from '@ghostfolio/client/services/data.service';
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
-import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
@@ -21,16 +18,18 @@ import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { AdminService, DataService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule } from '@angular/common';
import {
ChangeDetectorRef,
Component,
- OnDestroy,
+ DestroyRef,
OnInit,
ViewChild
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog';
import { MatMenuModule } from '@angular/material/menu';
@@ -57,8 +56,7 @@ import {
} from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
+import { switchMap, tap } from 'rxjs/operators';
@Component({
imports: [
@@ -77,7 +75,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./admin-users.scss'],
templateUrl: './admin-users.html'
})
-export class GfAdminUsersComponent implements OnDestroy, OnInit {
+export class GfAdminUsersComponent implements OnInit {
@ViewChild(MatPaginator) paginator: MatPaginator;
public dataSource = new MatTableDataSource();
@@ -95,19 +93,17 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
public totalItems = 0;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private adminService: AdminService,
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog,
private impersonationStorageService: ImpersonationStorageService,
private notificationService: NotificationService,
private route: ActivatedRoute,
private router: Router,
- private tokenStorageService: TokenStorageService,
private userService: UserService
) {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
@@ -140,8 +136,25 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
];
}
- this.route.paramMap
- .pipe(takeUntil(this.unsubscribeSubject))
+ this.userService.stateChanged
+ .pipe(
+ takeUntilDestroyed(this.destroyRef),
+ tap((state) => {
+ if (state?.user) {
+ this.user = state.user;
+
+ this.defaultDateFormat = getDateFormatString(
+ this.user.settings.locale
+ );
+
+ this.hasPermissionToImpersonateAllUsers = hasPermission(
+ this.user.permissions,
+ permissions.impersonateAllUsers
+ );
+ }
+ }),
+ switchMap(() => this.route.paramMap)
+ )
.subscribe((params) => {
const userId = params.get('userId');
@@ -150,23 +163,6 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
}
});
- this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
- .subscribe((state) => {
- if (state?.user) {
- this.user = state.user;
-
- this.defaultDateFormat = getDateFormatString(
- this.user.settings.locale
- );
-
- this.hasPermissionToImpersonateAllUsers = hasPermission(
- this.user.permissions,
- permissions.impersonateAllUsers
- );
- }
- });
-
addIcons({
contractOutline,
ellipsisHorizontal,
@@ -207,12 +203,15 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
confirmFn: () => {
this.dataService
.deleteUser(aId)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
- this.fetchUsers();
+ this.router.navigate(['..'], { relativeTo: this.route });
});
},
confirmType: ConfirmationDialogType.Warn,
+ discardFn: () => {
+ this.router.navigate(['..'], { relativeTo: this.route });
+ },
title: $localize`Do you really want to delete this user?`
});
}
@@ -222,13 +221,12 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
confirmFn: () => {
this.dataService
.updateUserAccessToken(aUserId)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ accessToken }) => {
this.notificationService.alert({
discardFn: () => {
if (aUserId === this.user.id) {
- this.tokenStorageService.signOut();
- this.userService.remove();
+ this.userService.signOut();
document.location.href = `/${document.documentElement.lang}`;
}
@@ -259,11 +257,6 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
);
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private fetchUsers({ pageIndex }: { pageIndex: number } = { pageIndex: 0 }) {
this.isLoading = true;
@@ -276,7 +269,7 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
skip: pageIndex * this.pageSize,
take: this.pageSize
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ count, users }) => {
this.dataSource = new MatTableDataSource(users);
this.totalItems = count;
@@ -294,6 +287,7 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
>(GfUserDetailDialogComponent, {
autoFocus: false,
data: {
+ currentUserId: this.user?.id,
deviceType: this.deviceType,
hasPermissionForSubscription: this.hasPermissionForSubscription,
locale: this.user?.settings?.locale,
@@ -305,11 +299,15 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
- .subscribe(() => {
- this.router.navigate(
- internalRoutes.adminControl.subRoutes.users.routerLink
- );
+ .pipe(takeUntilDestroyed(this.destroyRef))
+ .subscribe((data) => {
+ if (data?.action === 'delete' && data?.userId) {
+ this.onDeleteUser(data.userId);
+ } else {
+ this.router.navigate(
+ internalRoutes.adminControl.subRoutes.users.routerLink
+ );
+ }
});
}
}
diff --git a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
index 7f03ea57f..2ecefc311 100644
--- a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
+++ b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -1,6 +1,5 @@
import {
getTooltipOptions,
- getTooltipPositionerMapTop,
getVerticalHoverLinePlugin
} from '@ghostfolio/common/chart-helper';
import { primaryColorRgb, secondaryColorRgb } from '@ghostfolio/common/config';
@@ -15,12 +14,14 @@ import { LineChartItem, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { ColorScheme } from '@ghostfolio/common/types';
+import { registerChartConfiguration } from '@ghostfolio/ui/chart';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { CommonModule } from '@angular/common';
import {
ChangeDetectionStrategy,
Component,
+ type ElementRef,
EventEmitter,
Input,
OnChanges,
@@ -42,7 +43,7 @@ import {
PointElement,
TimeScale,
Tooltip,
- TooltipPosition
+ type TooltipOptions
} from 'chart.js';
import 'chartjs-adapter-date-fns';
import annotationPlugin from 'chartjs-plugin-annotation';
@@ -78,7 +79,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
@Output() benchmarkChanged = new EventEmitter();
- @ViewChild('chartCanvas') chartCanvas;
+ @ViewChild('chartCanvas') chartCanvas: ElementRef;
public chart: Chart<'line'>;
public hasPermissionToAccessAdminControl: boolean;
@@ -96,8 +97,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
Tooltip
);
- Tooltip.positioners['top'] = (_elements, position: TooltipPosition) =>
- getTooltipPositionerMapTop(this.chart, position);
+ registerChartConfiguration();
addIcons({ arrowForwardOutline });
}
@@ -157,8 +157,10 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
if (this.chartCanvas) {
if (this.chart) {
this.chart.data = data;
+ this.chart.options.plugins ??= {};
this.chart.options.plugins.tooltip =
- this.getTooltipPluginConfiguration() as unknown;
+ this.getTooltipPluginConfiguration();
+
this.chart.update();
} else {
this.chart = new Chart(this.chartCanvas.nativeElement, {
@@ -196,7 +198,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
verticalHoverLine: {
color: `rgba(${getTextColor(this.colorScheme)}, 0.1)`
}
- } as unknown,
+ },
responsive: true,
scales: {
x: {
@@ -253,7 +255,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
}
}
- private getTooltipPluginConfiguration() {
+ private getTooltipPluginConfiguration(): Partial> {
return {
...getTooltipOptions({
colorScheme: this.colorScheme,
@@ -261,7 +263,7 @@ export class GfBenchmarkComparatorComponent implements OnChanges, OnDestroy {
unit: '%'
}),
mode: 'index',
- position: 'top' as unknown,
+ position: 'top',
xAlign: 'center',
yAlign: 'bottom'
};
diff --git a/apps/client/src/app/components/data-provider-status/data-provider-status.component.ts b/apps/client/src/app/components/data-provider-status/data-provider-status.component.ts
index 0f638961c..a77d65961 100644
--- a/apps/client/src/app/components/data-provider-status/data-provider-status.component.ts
+++ b/apps/client/src/app/components/data-provider-status/data-provider-status.component.ts
@@ -1,16 +1,17 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
+import { DataService } from '@ghostfolio/ui/services';
import { CommonModule } from '@angular/common';
import {
ChangeDetectionStrategy,
Component,
+ DestroyRef,
Input,
- OnDestroy,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import type { DataSource } from '@prisma/client';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { catchError, map, type Observable, of, Subject, takeUntil } from 'rxjs';
+import { catchError, map, type Observable, of } from 'rxjs';
import { DataProviderStatus } from './interfaces/interfaces';
@@ -20,14 +21,15 @@ import { DataProviderStatus } from './interfaces/interfaces';
selector: 'gf-data-provider-status',
templateUrl: './data-provider-status.component.html'
})
-export class GfDataProviderStatusComponent implements OnDestroy, OnInit {
+export class GfDataProviderStatusComponent implements OnInit {
@Input() dataSource: DataSource;
public status$: Observable;
- private unsubscribeSubject = new Subject();
-
- public constructor(private dataService: DataService) {}
+ public constructor(
+ private dataService: DataService,
+ private destroyRef: DestroyRef
+ ) {}
public ngOnInit() {
this.status$ = this.dataService
@@ -39,12 +41,7 @@ export class GfDataProviderStatusComponent implements OnDestroy, OnInit {
catchError(() => {
return of({ isHealthy: false });
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
);
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/components/footer/footer.component.html b/apps/client/src/app/components/footer/footer.component.html
index 155f27f68..45626620e 100644
--- a/apps/client/src/app/components/footer/footer.component.html
+++ b/apps/client/src/app/components/footer/footer.component.html
@@ -122,7 +122,9 @@
-->
- Chinese
+ Chinese (简体中文)
Deutsch
@@ -139,6 +141,13 @@
Italiano
+
Nederlands
@@ -153,7 +162,9 @@
diff --git a/apps/client/src/app/components/header/header.component.ts b/apps/client/src/app/components/header/header.component.ts
index b7bf4cb98..ab329251f 100644
--- a/apps/client/src/app/components/header/header.component.ts
+++ b/apps/client/src/app/components/header/header.component.ts
@@ -1,7 +1,6 @@
import { LoginWithAccessTokenDialogParams } from '@ghostfolio/client/components/login-with-access-token-dialog/interfaces/interfaces';
import { GfLoginWithAccessTokenDialogComponent } from '@ghostfolio/client/components/login-with-access-token-dialog/login-with-access-token-dialog.component';
import { LayoutService } from '@ghostfolio/client/core/layout.service';
-import { DataService } from '@ghostfolio/client/services/data.service';
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import {
KEY_STAY_SIGNED_IN,
@@ -18,12 +17,14 @@ import { GfAssistantComponent } from '@ghostfolio/ui/assistant/assistant.compone
import { GfLogoComponent } from '@ghostfolio/ui/logo';
import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import { CommonModule } from '@angular/common';
import {
ChangeDetectionStrategy,
Component,
CUSTOM_ELEMENTS_SCHEMA,
+ DestroyRef,
EventEmitter,
HostListener,
Input,
@@ -31,6 +32,7 @@ import {
Output,
ViewChild
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatBadgeModule } from '@angular/material/badge';
import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog';
@@ -48,8 +50,8 @@ import {
radioButtonOffOutline,
radioButtonOnOutline
} from 'ionicons/icons';
-import { EMPTY, Subject } from 'rxjs';
-import { catchError, takeUntil } from 'rxjs/operators';
+import { EMPTY } from 'rxjs';
+import { catchError } from 'rxjs/operators';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -131,10 +133,9 @@ export class GfHeaderComponent implements OnChanges {
public routerLinkRegister = publicRoutes.register.routerLink;
public routerLinkResources = publicRoutes.resources.routerLink;
- private unsubscribeSubject = new Subject();
-
public constructor(
private dataService: DataService,
+ private destroyRef: DestroyRef,
private dialog: MatDialog,
private impersonationStorageService: ImpersonationStorageService,
private layoutService: LayoutService,
@@ -146,7 +147,7 @@ export class GfHeaderComponent implements OnChanges {
) {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
this.impersonationId = impersonationId;
@@ -224,11 +225,11 @@ export class GfHeaderComponent implements OnChanges {
public onDateRangeChange(dateRange: DateRange) {
this.dataService
.putUserSetting({ dateRange })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
});
}
@@ -252,11 +253,11 @@ export class GfHeaderComponent implements OnChanges {
this.dataService
.putUserSetting(userSetting)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
});
}
@@ -301,7 +302,7 @@ export class GfHeaderComponent implements OnChanges {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((data) => {
if (data?.accessToken) {
this.dataService
@@ -314,7 +315,7 @@ export class GfHeaderComponent implements OnChanges {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(({ authToken }) => {
this.setToken(authToken);
@@ -331,7 +332,7 @@ export class GfHeaderComponent implements OnChanges {
this.userService
.get()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
const userLanguage = user?.settings?.language;
@@ -342,9 +343,4 @@ export class GfHeaderComponent implements OnChanges {
}
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
index 6a7129fec..13ded73eb 100644
--- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
+++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
@@ -1,4 +1,3 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import {
NUMERICAL_PRECISION_THRESHOLD_3_FIGURES,
@@ -26,6 +25,7 @@ import { GfHistoricalMarketDataEditorComponent } from '@ghostfolio/ui/historical
import { translate } from '@ghostfolio/ui/i18n';
import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
import { GfPortfolioProportionChartComponent } from '@ghostfolio/ui/portfolio-proportion-chart';
+import { DataService } from '@ghostfolio/ui/services';
import { GfTagsSelectorComponent } from '@ghostfolio/ui/tags-selector';
import { GfValueComponent } from '@ghostfolio/ui/value';
@@ -35,10 +35,11 @@ import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
+ DestroyRef,
Inject,
- OnDestroy,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatChipsModule } from '@angular/material/chips';
@@ -67,8 +68,7 @@ import {
walletOutline
} from 'ionicons/icons';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { Subject } from 'rxjs';
-import { switchMap, takeUntil } from 'rxjs/operators';
+import { switchMap } from 'rxjs/operators';
import { HoldingDetailDialogParams } from './interfaces/interfaces';
@@ -102,7 +102,7 @@ import { HoldingDetailDialogParams } from './interfaces/interfaces';
styleUrls: ['./holding-detail-dialog.component.scss'],
templateUrl: 'holding-detail-dialog.html'
})
-export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
+export class GfHoldingDetailDialogComponent implements OnInit {
public activitiesCount: number;
public accounts: Account[];
public assetClass: string;
@@ -116,11 +116,11 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
};
public dataProviderInfo: DataProviderInfo;
public dataSource: MatTableDataSource;
+ public dateOfFirstActivity: string;
public dividendInBaseCurrency: number;
public dividendInBaseCurrencyPrecision = 2;
public dividendYieldPercentWithCurrencyEffect: number;
public feeInBaseCurrency: number;
- public firstBuyDate: string;
public hasPermissionToCreateOwnTag: boolean;
public hasPermissionToReadMarketDataOfOwnAssetProfile: boolean;
public historicalDataItems: LineChartItem[];
@@ -158,11 +158,10 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
public user: User;
public value: number;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
public dialogRef: MatDialogRef,
@Inject(MAT_DIALOG_DATA) public data: HoldingDetailDialogParams,
private formBuilder: FormBuilder,
@@ -192,7 +191,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
this.holdingForm
.get('tags')
- .valueChanges.pipe(takeUntil(this.unsubscribeSubject))
+ .valueChanges.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((tags: Tag[]) => {
const newTag = tags.find(({ id }) => {
return id === undefined;
@@ -217,7 +216,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
switchMap(() => {
return this.userService.get(true);
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe();
} else {
@@ -227,7 +226,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
dataSource: this.data.dataSource,
symbol: this.data.symbol
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
}
});
@@ -236,7 +235,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
.fetchAccounts({
filters
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ accounts }) => {
this.accounts = accounts;
@@ -249,7 +248,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
sortColumn: this.sortColumn,
sortDirection: this.sortDirection
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ activities }) => {
this.dataSource = new MatTableDataSource(activities);
@@ -261,16 +260,16 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
dataSource: this.data.dataSource,
symbol: this.data.symbol
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(
({
activitiesCount,
averagePrice,
dataProviderInfo,
+ dateOfFirstActivity,
dividendInBaseCurrency,
dividendYieldPercentWithCurrencyEffect,
feeInBaseCurrency,
- firstBuyDate,
historicalData,
investmentInBaseCurrencyWithCurrencyEffect,
marketPrice,
@@ -298,6 +297,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
this.benchmarkDataItems = [];
this.countries = {};
this.dataProviderInfo = dataProviderInfo;
+ this.dateOfFirstActivity = dateOfFirstActivity;
this.dividendInBaseCurrency = dividendInBaseCurrency;
if (
@@ -312,7 +312,6 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
dividendYieldPercentWithCurrencyEffect;
this.feeInBaseCurrency = feeInBaseCurrency;
- this.firstBuyDate = firstBuyDate;
this.hasPermissionToReadMarketDataOfOwnAssetProfile =
hasPermission(
@@ -461,16 +460,16 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
}
}
- if (isToday(parseISO(this.firstBuyDate))) {
+ if (isToday(parseISO(this.dateOfFirstActivity))) {
// Add average price
this.historicalDataItems.push({
- date: this.firstBuyDate,
+ date: this.dateOfFirstActivity,
value: this.averagePrice
});
// Add benchmark 1
this.benchmarkDataItems.push({
- date: this.firstBuyDate,
+ date: this.dateOfFirstActivity,
value: averagePrice
});
@@ -501,7 +500,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
if (
this.benchmarkDataItems[0]?.value === undefined &&
- isSameMonth(parseISO(this.firstBuyDate), new Date())
+ isSameMonth(parseISO(this.dateOfFirstActivity), new Date())
) {
this.benchmarkDataItems[0].value = this.averagePrice;
}
@@ -524,7 +523,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
);
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -581,8 +580,8 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
};
this.dataService
- .postOrder(activity)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .postActivity(activity)
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.router.navigate(
internalRoutes.portfolio.subRoutes.activities.routerLink
@@ -599,7 +598,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
this.dataService
.fetchExport({ activityIds })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((data) => {
downloadAsFile({
content: data,
@@ -629,18 +628,13 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
this.dialogRef.close();
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private fetchMarketData() {
this.dataService
.fetchMarketDataBySymbol({
dataSource: this.data.dataSource,
symbol: this.data.symbol
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ marketData }) => {
this.marketDataItems = marketData;
diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
index f52286160..11771dee2 100644
--- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -215,7 +215,7 @@
[deviceType]="data.deviceType"
[isDate]="true"
[locale]="data.locale"
- [value]="firstBuyDate"
+ [value]="dateOfFirstActivity"
>First Activity
@@ -286,7 +286,7 @@
[baseCurrency]="data.baseCurrency"
[colorScheme]="data.colorScheme"
[data]="sectors"
- [isInPercent]="true"
+ [isInPercentage]="true"
[keys]="['name']"
[locale]="data.locale"
[maxItems]="10"
@@ -298,7 +298,7 @@
[baseCurrency]="data.baseCurrency"
[colorScheme]="data.colorScheme"
[data]="countries"
- [isInPercent]="true"
+ [isInPercentage]="true"
[keys]="['name']"
[locale]="data.locale"
[maxItems]="10"
@@ -310,6 +310,9 @@
Symbol
ISIN
@@ -400,7 +405,7 @@
diff --git a/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts
index aab854384..527b13636 100644
--- a/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts
+++ b/apps/client/src/app/components/holding-detail-dialog/interfaces/interfaces.ts
@@ -11,7 +11,7 @@ export interface HoldingDetailDialogParams {
hasPermissionToAccessAdminControl: boolean;
hasPermissionToCreateActivity: boolean;
hasPermissionToReportDataGlitch: boolean;
- hasPermissionToUpdateOrder: boolean;
+ hasPermissionToUpdateActivity: boolean;
locale: string;
symbol: string;
}
diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts
index 33d9139ea..19a48ccd8 100644
--- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts
+++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts
@@ -1,4 +1,3 @@
-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 {
@@ -11,6 +10,7 @@ import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { HoldingType, HoldingsViewMode } from '@ghostfolio/common/types';
import { GfHoldingsTableComponent } from '@ghostfolio/ui/holdings-table';
+import { DataService } from '@ghostfolio/ui/services';
import { GfToggleComponent } from '@ghostfolio/ui/toggle';
import { GfTreemapChartComponent } from '@ghostfolio/ui/treemap-chart';
@@ -19,9 +19,10 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatButtonToggleModule } from '@angular/material/button-toggle';
@@ -30,8 +31,6 @@ import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { gridOutline, reorderFourOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
imports: [
@@ -51,7 +50,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./home-holdings.scss'],
templateUrl: './home-holdings.html'
})
-export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
+export class GfHomeHoldingsComponent implements OnInit {
public static DEFAULT_HOLDINGS_VIEW_MODE: HoldingsViewMode = 'TABLE';
public deviceType: string;
@@ -71,11 +70,10 @@ export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
GfHomeHoldingsComponent.DEFAULT_HOLDINGS_VIEW_MODE
);
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private impersonationStorageService: ImpersonationStorageService,
private router: Router,
@@ -89,13 +87,13 @@ export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -107,7 +105,7 @@ export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
this.hasPermissionToCreateActivity = hasPermission(
this.user.permissions,
- permissions.createOrder
+ permissions.createActivity
);
this.initialize();
@@ -117,15 +115,15 @@ export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
});
this.viewModeFormControl.valueChanges
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((holdingsViewMode) => {
this.dataService
.putUserSetting({ holdingsViewMode })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -149,11 +147,6 @@ export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
}
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private fetchHoldings() {
const filters = this.userService.getFilters();
@@ -193,7 +186,7 @@ export class GfHomeHoldingsComponent implements OnDestroy, OnInit {
this.holdings = undefined;
this.fetchHoldings()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ holdings }) => {
this.holdings = holdings;
diff --git a/apps/client/src/app/components/home-holdings/home-holdings.html b/apps/client/src/app/components/home-holdings/home-holdings.html
index 8b4e4c5d3..175c88606 100644
--- a/apps/client/src/app/components/home-holdings/home-holdings.html
+++ b/apps/client/src/app/components/home-holdings/home-holdings.html
@@ -46,9 +46,6 @@
}
();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private userService: UserService
) {
@@ -59,7 +57,7 @@ export class GfHomeMarketComponent implements OnDestroy, OnInit {
this.info = this.dataService.fetchInfo();
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -82,7 +80,7 @@ export class GfHomeMarketComponent implements OnDestroy, OnInit {
includeHistoricalData: this.numberOfDays,
symbol: ghostfolioFearAndGreedIndexSymbol
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ historicalData, marketPrice }) => {
this.fearAndGreedIndex = marketPrice;
this.historicalDataItems = [
@@ -99,16 +97,11 @@ export class GfHomeMarketComponent implements OnDestroy, OnInit {
this.dataService
.fetchBenchmarks()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ benchmarks }) => {
this.benchmarks = benchmarks;
this.changeDetectorRef.markForCheck();
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/components/home-overview/home-overview.component.ts b/apps/client/src/app/components/home-overview/home-overview.component.ts
index 6c9694a19..58284d27d 100644
--- a/apps/client/src/app/components/home-overview/home-overview.component.ts
+++ b/apps/client/src/app/components/home-overview/home-overview.component.ts
@@ -1,6 +1,5 @@
import { GfPortfolioPerformanceComponent } from '@ghostfolio/client/components/portfolio-performance/portfolio-performance.component';
import { LayoutService } from '@ghostfolio/client/core/layout.service';
-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 { NUMERICAL_PRECISION_THRESHOLD_6_FIGURES } from '@ghostfolio/common/config';
@@ -13,20 +12,20 @@ import {
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
+import { DataService } from '@ghostfolio/ui/services';
import { CommonModule } from '@angular/common';
import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { RouterModule } from '@angular/router';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
imports: [
@@ -41,7 +40,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./home-overview.scss'],
templateUrl: './home-overview.html'
})
-export class GfHomeOverviewComponent implements OnDestroy, OnInit {
+export class GfHomeOverviewComponent implements OnInit {
public deviceType: string;
public errors: AssetProfileIdentifier[];
public hasError: boolean;
@@ -62,25 +61,24 @@ export class GfHomeOverviewComponent implements OnDestroy, OnInit {
public unit: string;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private impersonationStorageService: ImpersonationStorageService,
private layoutService: LayoutService,
private userService: UserService
) {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
this.hasPermissionToCreateActivity = hasPermission(
this.user.permissions,
- permissions.createOrder
+ permissions.createActivity
);
this.update();
@@ -99,7 +97,7 @@ export class GfHomeOverviewComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
@@ -107,17 +105,12 @@ export class GfHomeOverviewComponent implements OnDestroy, OnInit {
});
this.layoutService.shouldReloadContent$
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.update();
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private update() {
this.historicalDataItems = null;
this.isLoadingPerformance = true;
@@ -126,7 +119,7 @@ export class GfHomeOverviewComponent implements OnDestroy, OnInit {
.fetchPortfolioPerformance({
range: this.user?.settings?.dateRange
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ chart, errors, performance }) => {
this.errors = errors;
this.performance = performance;
diff --git a/apps/client/src/app/components/home-summary/home-summary.component.ts b/apps/client/src/app/components/home-summary/home-summary.component.ts
index 845d1b448..719cfbd29 100644
--- a/apps/client/src/app/components/home-summary/home-summary.component.ts
+++ b/apps/client/src/app/components/home-summary/home-summary.component.ts
@@ -1,5 +1,4 @@
import { GfPortfolioSummaryComponent } from '@ghostfolio/client/components/portfolio-summary/portfolio-summary.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 {
@@ -8,19 +7,19 @@ import {
User
} from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
+import { DataService } from '@ghostfolio/ui/services';
import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatCardModule } from '@angular/material/card';
import { MatSnackBarRef, TextOnlySnackBar } from '@angular/material/snack-bar';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
imports: [GfPortfolioSummaryComponent, MatCardModule],
@@ -29,7 +28,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./home-summary.scss'],
templateUrl: './home-summary.html'
})
-export class GfHomeSummaryComponent implements OnDestroy, OnInit {
+export class GfHomeSummaryComponent implements OnInit {
public deviceType: string;
public hasImpersonationId: boolean;
public hasPermissionForSubscription: boolean;
@@ -40,11 +39,10 @@ export class GfHomeSummaryComponent implements OnDestroy, OnInit {
public summary: PortfolioSummary;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private impersonationStorageService: ImpersonationStorageService,
private userService: UserService
@@ -57,7 +55,7 @@ export class GfHomeSummaryComponent implements OnDestroy, OnInit {
);
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -77,7 +75,7 @@ export class GfHomeSummaryComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
@@ -86,11 +84,11 @@ export class GfHomeSummaryComponent implements OnDestroy, OnInit {
public onChangeEmergencyFund(emergencyFund: number) {
this.dataService
.putUserSetting({ emergencyFund })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -99,17 +97,12 @@ export class GfHomeSummaryComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private update() {
this.isLoading = true;
this.dataService
.fetchPortfolioDetails()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ summary }) => {
this.summary = summary;
this.isLoading = false;
diff --git a/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts b/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts
index 60d74be92..847b2d4ab 100644
--- a/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts
+++ b/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.component.ts
@@ -1,14 +1,8 @@
+import type { AssetProfileIdentifier } from '@ghostfolio/common/interfaces';
import { GfSymbolAutocompleteComponent } from '@ghostfolio/ui/symbol-autocomplete';
+import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
import {
- ChangeDetectionStrategy,
- Component,
- OnDestroy,
- OnInit
-} from '@angular/core';
-import {
- AbstractControl,
- FormBuilder,
FormControl,
FormGroup,
FormsModule,
@@ -19,7 +13,8 @@ import {
import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule, MatDialogRef } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
-import { Subject } from 'rxjs';
+
+import { CreateWatchlistItemForm } from './interfaces/interfaces';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -36,51 +31,41 @@ import { Subject } from 'rxjs';
styleUrls: ['./create-watchlist-item-dialog.component.scss'],
templateUrl: 'create-watchlist-item-dialog.html'
})
-export class GfCreateWatchlistItemDialogComponent implements OnDestroy, OnInit {
- public createWatchlistItemForm: FormGroup;
-
- private unsubscribeSubject = new Subject();
-
- public constructor(
- public readonly dialogRef: MatDialogRef,
- public readonly formBuilder: FormBuilder
- ) {}
-
- public ngOnInit() {
- this.createWatchlistItemForm = this.formBuilder.group(
+export class GfCreateWatchlistItemDialogComponent {
+ protected readonly createWatchlistItemForm: CreateWatchlistItemForm =
+ new FormGroup(
{
- searchSymbol: new FormControl(null, [Validators.required])
+ searchSymbol: new FormControl(null, [
+ Validators.required
+ ])
},
{
validators: this.validator
}
);
- }
- public onCancel() {
+ private readonly dialogRef =
+ inject>(MatDialogRef);
+
+ protected onCancel() {
this.dialogRef.close();
}
- public onSubmit() {
+ protected onSubmit() {
this.dialogRef.close({
dataSource:
- this.createWatchlistItemForm.get('searchSymbol').value.dataSource,
- symbol: this.createWatchlistItemForm.get('searchSymbol').value.symbol
+ this.createWatchlistItemForm.controls.searchSymbol.value?.dataSource,
+ symbol: this.createWatchlistItemForm.controls.searchSymbol.value?.symbol
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
- private validator(control: AbstractControl): ValidationErrors {
- const searchSymbolControl = control.get('searchSymbol');
+ private validator(control: CreateWatchlistItemForm): ValidationErrors {
+ const searchSymbolControl = control.controls.searchSymbol;
if (
searchSymbolControl.valid &&
- searchSymbolControl.value.dataSource &&
- searchSymbolControl.value.symbol
+ searchSymbolControl.value?.dataSource &&
+ searchSymbolControl.value?.symbol
) {
return { incomplete: false };
}
diff --git a/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/interfaces/interfaces.ts
index c0f74d022..965331326 100644
--- a/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/interfaces/interfaces.ts
+++ b/apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/interfaces/interfaces.ts
@@ -1,4 +1,12 @@
+import type { AssetProfileIdentifier } from '@ghostfolio/common/interfaces';
+
+import type { FormControl, FormGroup } from '@angular/forms';
+
export interface CreateWatchlistItemDialogParams {
deviceType: string;
locale: string;
}
+
+export type CreateWatchlistItemForm = FormGroup<{
+ searchSymbol: FormControl;
+}>;
diff --git a/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts b/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts
index ab43e54dd..7deace7de 100644
--- a/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts
+++ b/apps/client/src/app/components/home-watchlist/home-watchlist.component.ts
@@ -1,6 +1,6 @@
-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 { locale as defaultLocale } from '@ghostfolio/common/config';
import {
AssetProfileIdentifier,
Benchmark,
@@ -9,15 +9,19 @@ import {
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { GfBenchmarkComponent } from '@ghostfolio/ui/benchmark';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
+ computed,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
+ inject,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
@@ -25,8 +29,6 @@ import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { addOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
import { GfCreateWatchlistItemDialogComponent } from './create-watchlist-item-dialog/create-watchlist-item-dialog.component';
import { CreateWatchlistItemDialogParams } from './create-watchlist-item-dialog/interfaces/interfaces';
@@ -45,37 +47,39 @@ import { CreateWatchlistItemDialogParams } from './create-watchlist-item-dialog/
styleUrls: ['./home-watchlist.scss'],
templateUrl: './home-watchlist.html'
})
-export class GfHomeWatchlistComponent implements OnDestroy, OnInit {
- public deviceType: string;
- public hasImpersonationId: boolean;
- public hasPermissionToCreateWatchlistItem: boolean;
- public hasPermissionToDeleteWatchlistItem: boolean;
- public user: User;
- public watchlist: Benchmark[];
-
- private unsubscribeSubject = new Subject();
-
- public constructor(
- private changeDetectorRef: ChangeDetectorRef,
- private dataService: DataService,
- private deviceService: DeviceDetectorService,
- private dialog: MatDialog,
- private impersonationStorageService: ImpersonationStorageService,
- private route: ActivatedRoute,
- private router: Router,
- private userService: UserService
- ) {
- this.deviceType = this.deviceService.getDeviceInfo().deviceType;
-
+export class GfHomeWatchlistComponent implements OnInit {
+ protected hasImpersonationId: boolean;
+ protected hasPermissionToCreateWatchlistItem: boolean;
+ protected hasPermissionToDeleteWatchlistItem: boolean;
+ protected user: User;
+ protected watchlist: Benchmark[];
+
+ protected readonly deviceType = computed(
+ () => this.deviceDetectorService.deviceInfo().deviceType
+ );
+
+ private readonly changeDetectorRef = inject(ChangeDetectorRef);
+ private readonly dataService = inject(DataService);
+ private readonly destroyRef = inject(DestroyRef);
+ private readonly deviceDetectorService = inject(DeviceDetectorService);
+ private readonly dialog = inject(MatDialog);
+ private readonly impersonationStorageService = inject(
+ ImpersonationStorageService
+ );
+ private readonly route = inject(ActivatedRoute);
+ private readonly router = inject(Router);
+ private readonly userService = inject(UserService);
+
+ public constructor() {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.route.queryParams
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((params) => {
if (params['createWatchlistItemDialog']) {
this.openCreateWatchlistItemDialog();
@@ -83,7 +87,7 @@ export class GfHomeWatchlistComponent implements OnDestroy, OnInit {
});
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -112,13 +116,13 @@ export class GfHomeWatchlistComponent implements OnDestroy, OnInit {
this.loadWatchlistData();
}
- public onWatchlistItemDeleted({
+ protected onWatchlistItemDeleted({
dataSource,
symbol
}: AssetProfileIdentifier) {
this.dataService
.deleteWatchlistItem({ dataSource, symbol })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: () => {
return this.loadWatchlistData();
@@ -126,15 +130,10 @@ export class GfHomeWatchlistComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private loadWatchlistData() {
this.dataService
.fetchWatchlist()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ watchlist }) => {
this.watchlist = watchlist;
@@ -145,7 +144,7 @@ export class GfHomeWatchlistComponent implements OnDestroy, OnInit {
private openCreateWatchlistItemDialog() {
this.userService
.get()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -155,20 +154,20 @@ export class GfHomeWatchlistComponent implements OnDestroy, OnInit {
>(GfCreateWatchlistItemDialogComponent, {
autoFocus: false,
data: {
- deviceType: this.deviceType,
- locale: this.user?.settings?.locale
+ deviceType: this.deviceType(),
+ locale: this.user?.settings?.locale ?? defaultLocale
},
- width: this.deviceType === 'mobile' ? '100vw' : '50rem'
+ width: this.deviceType() === 'mobile' ? '100vw' : '50rem'
});
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ dataSource, symbol } = {}) => {
if (dataSource && symbol) {
this.dataService
.postWatchlistItem({ dataSource, symbol })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: () => this.loadWatchlistData()
});
diff --git a/apps/client/src/app/components/home-watchlist/home-watchlist.html b/apps/client/src/app/components/home-watchlist/home-watchlist.html
index 743d86c37..a17259000 100644
--- a/apps/client/src/app/components/home-watchlist/home-watchlist.html
+++ b/apps/client/src/app/components/home-watchlist/home-watchlist.html
@@ -11,7 +11,7 @@
;
public chart: Chart<'bar' | 'line'>;
private investments: InvestmentItem[];
@@ -81,8 +85,7 @@ export class GfInvestmentChartComponent implements OnChanges, OnDestroy {
Tooltip
);
- Tooltip.positioners['top'] = (_elements, position: TooltipPosition) =>
- getTooltipPositionerMapTop(this.chart, position);
+ registerChartConfiguration();
}
public ngOnChanges() {
@@ -116,17 +119,17 @@ export class GfInvestmentChartComponent implements OnChanges, OnDestroy {
data: this.investments.map(({ date, investment }) => {
return {
x: parseDate(date).getTime(),
- y: this.isInPercent ? investment * 100 : investment
+ y: this.isInPercentage ? investment * 100 : investment
};
}),
label: this.benchmarkDataLabel,
segment: {
- borderColor: (context: unknown) =>
+ borderColor: (context) =>
this.isInFuture(
context,
`rgba(${secondaryColorRgb.r}, ${secondaryColorRgb.g}, ${secondaryColorRgb.b}, 0.67)`
),
- borderDash: (context: unknown) => this.isInFuture(context, [2, 2])
+ borderDash: (context) => this.isInFuture(context, [2, 2])
},
stepped: true
},
@@ -136,19 +139,19 @@ export class GfInvestmentChartComponent implements OnChanges, OnDestroy {
data: this.values.map(({ date, value }) => {
return {
x: parseDate(date).getTime(),
- y: this.isInPercent ? value * 100 : value
+ y: this.isInPercentage ? value * 100 : value
};
}),
fill: false,
label: $localize`Total Amount`,
pointRadius: 0,
segment: {
- borderColor: (context: unknown) =>
+ borderColor: (context) =>
this.isInFuture(
context,
`rgba(${primaryColorRgb.r}, ${primaryColorRgb.g}, ${primaryColorRgb.b}, 0.67)`
),
- borderDash: (context: unknown) => this.isInFuture(context, [2, 2])
+ borderDash: (context) => this.isInFuture(context, [2, 2])
}
}
]
@@ -157,17 +160,14 @@ export class GfInvestmentChartComponent implements OnChanges, OnDestroy {
if (this.chartCanvas) {
if (this.chart) {
this.chart.data = chartData;
+ this.chart.options.plugins ??= {};
this.chart.options.plugins.tooltip =
- this.getTooltipPluginConfiguration() as unknown;
+ this.getTooltipPluginConfiguration();
- if (
- this.savingsRate &&
- // @ts-ignore
- this.chart.options.plugins.annotation.annotations.savingsRate
- ) {
- // @ts-ignore
- this.chart.options.plugins.annotation.annotations.savingsRate.value =
- this.savingsRate;
+ const annotations = this.chart.options.plugins.annotation
+ .annotations as Record>;
+ if (this.savingsRate && annotations.savingsRate) {
+ annotations.savingsRate.value = this.savingsRate;
}
this.chart.update();
@@ -201,7 +201,7 @@ export class GfInvestmentChartComponent implements OnChanges, OnDestroy {
color: 'white',
content: $localize`Savings Rate`,
display: true,
- font: { size: '10px', weight: 'normal' },
+ font: { size: 10, weight: 'normal' },
padding: {
x: 4,
y: 2
@@ -229,7 +229,7 @@ export class GfInvestmentChartComponent implements OnChanges, OnDestroy {
verticalHoverLine: {
color: `rgba(${getTextColor(this.colorScheme)}, 0.1)`
}
- } as unknown,
+ },
responsive: true,
scales: {
x: {
@@ -251,7 +251,7 @@ export class GfInvestmentChartComponent implements OnChanges, OnDestroy {
border: {
display: false
},
- display: !this.isInPercent,
+ display: !this.isInPercentage,
grid: {
color: ({ scale, tick }) => {
if (
@@ -286,23 +286,25 @@ export class GfInvestmentChartComponent implements OnChanges, OnDestroy {
}
}
- private getTooltipPluginConfiguration() {
+ private getTooltipPluginConfiguration(): Partial<
+ TooltipOptions<'bar' | 'line'>
+ > {
return {
...getTooltipOptions({
colorScheme: this.colorScheme,
- currency: this.isInPercent ? undefined : this.currency,
+ currency: this.isInPercentage ? undefined : this.currency,
groupBy: this.groupBy,
- locale: this.isInPercent ? undefined : this.locale,
- unit: this.isInPercent ? '%' : undefined
+ locale: this.isInPercentage ? undefined : this.locale,
+ unit: this.isInPercentage ? '%' : undefined
}),
mode: 'index',
- position: 'top' as unknown,
+ position: 'top',
xAlign: 'center',
yAlign: 'bottom'
};
}
- private isInFuture(aContext: any, aValue: T) {
+ private isInFuture(aContext: ScriptableLineSegmentContext, aValue: T) {
return isAfter(new Date(aContext?.p1?.parsed?.x), new Date())
? aValue
: undefined;
diff --git a/apps/client/src/app/components/markets/markets.component.ts b/apps/client/src/app/components/markets/markets.component.ts
index a7f83216f..4214ee989 100644
--- a/apps/client/src/app/components/markets/markets.component.ts
+++ b/apps/client/src/app/components/markets/markets.component.ts
@@ -1,5 +1,4 @@
import { GfFearAndGreedIndexComponent } from '@ghostfolio/client/components/fear-and-greed-index/fear-and-greed-index.component';
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { resetHours } from '@ghostfolio/common/helper';
import {
@@ -12,6 +11,7 @@ import {
import { FearAndGreedIndexMode } from '@ghostfolio/common/types';
import { GfBenchmarkComponent } from '@ghostfolio/ui/benchmark';
import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
+import { DataService } from '@ghostfolio/ui/services';
import { GfToggleComponent } from '@ghostfolio/ui/toggle';
import {
@@ -19,12 +19,11 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -39,7 +38,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./markets.scss'],
templateUrl: './markets.html'
})
-export class GfMarketsComponent implements OnDestroy, OnInit {
+export class GfMarketsComponent implements OnInit {
public benchmarks: Benchmark[];
public deviceType: string;
public fearAndGreedIndex: number;
@@ -55,18 +54,17 @@ export class GfMarketsComponent implements OnDestroy, OnInit {
public readonly numberOfDays = 365;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private userService: UserService
) {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -79,7 +77,7 @@ export class GfMarketsComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.dataService
.fetchMarketDataOfMarkets({ includeHistoricalData: this.numberOfDays })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ fearAndGreedIndex }) => {
this.fearAndGreedIndexData = fearAndGreedIndex;
@@ -90,7 +88,7 @@ export class GfMarketsComponent implements OnDestroy, OnInit {
this.dataService
.fetchBenchmarks()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ benchmarks }) => {
this.benchmarks = benchmarks;
@@ -119,9 +117,4 @@ export class GfMarketsComponent implements OnDestroy, OnInit {
this.initialize();
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
index 46eb2845c..0e26a49a8 100644
--- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
@@ -65,7 +65,11 @@
[locale]="locale"
[precision]="precision"
[unit]="baseCurrency"
- [value]="isLoading ? undefined : summary?.committedFunds"
+ [value]="
+ isLoading
+ ? undefined
+ : summary?.totalInvestmentValueWithCurrencyEffect
+ "
/>
@@ -180,18 +184,21 @@
[ngClass]="{
'cursor-pointer':
hasPermissionToUpdateUserSettings &&
+ !user?.settings?.isRestrictedView &&
user?.subscription?.type !== 'Basic'
}"
(click)="
hasPermissionToUpdateUserSettings &&
+ !user?.settings?.isRestrictedView &&
user?.subscription?.type !== 'Basic' &&
onEditEmergencyFund()
"
>
@if (
hasPermissionToUpdateUserSettings &&
- user?.subscription?.type !== 'Basic' &&
- !isLoading
+ !isLoading &&
+ !user?.settings?.isRestrictedView &&
+ user?.subscription?.type !== 'Basic'
) {
();
private deviceType: string;
- private unsubscribeSubject = new Subject();
-
public constructor(
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog
) {
@@ -94,7 +94,7 @@ export class GfRuleComponent implements OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((settings: RuleSettings) => {
if (settings) {
this.ruleUpdated.emit({
@@ -115,9 +115,4 @@ export class GfRuleComponent implements OnInit {
this.ruleUpdated.emit(settings);
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts
index 0d616b92e..d10be10bd 100644
--- a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts
+++ b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts
@@ -7,9 +7,11 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
+ DestroyRef,
Inject,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import {
MAT_DIALOG_DATA,
@@ -21,8 +23,8 @@ import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { arrowForwardOutline, checkmarkCircleOutline } from 'ionicons/icons';
import ms from 'ms';
-import { interval, Subject } from 'rxjs';
-import { take, takeUntil, tap } from 'rxjs/operators';
+import { interval } from 'rxjs';
+import { take, tap } from 'rxjs/operators';
import { SubscriptionInterstitialDialogParams } from './interfaces/interfaces';
@@ -51,11 +53,10 @@ export class GfSubscriptionInterstitialDialogComponent implements OnInit {
public routerLinkPricing = publicRoutes.pricing.routerLink;
public variantIndex: number;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
@Inject(MAT_DIALOG_DATA) public data: SubscriptionInterstitialDialogParams,
+ private destroyRef: DestroyRef,
public dialogRef: MatDialogRef
) {
this.variantIndex = Math.floor(
@@ -76,7 +77,7 @@ export class GfSubscriptionInterstitialDialogComponent implements OnInit {
this.changeDetectorRef.markForCheck();
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe();
}
@@ -84,9 +85,4 @@ export class GfSubscriptionInterstitialDialogComponent implements OnInit {
public closeDialog() {
this.dialogRef.close({});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
index e20dac0d5..3ce729402 100644
--- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
+++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
@@ -1,5 +1,3 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
-import { UserService } from '@ghostfolio/client/services/user/user.service';
import { CreateAccessDto, UpdateAccessDto } from '@ghostfolio/common/dtos';
import {
AssetProfileIdentifier,
@@ -13,15 +11,19 @@ import {
GfPortfolioFilterFormComponent,
PortfolioFilterFormValue
} from '@ghostfolio/ui/portfolio-filter-form';
+import { DataService } from '@ghostfolio/ui/services';
+import { UserService } from '@ghostfolio/client/services/user/user.service';
+import type { HttpErrorResponse } from '@angular/common/http';
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
- Inject,
- OnDestroy,
+ DestroyRef,
+ inject,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import {
AbstractControl,
FormBuilder,
@@ -39,9 +41,8 @@ import {
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
-import { AccessPermission } from '@prisma/client';
import { StatusCodes } from 'http-status-codes';
-import { EMPTY, Subject, catchError, takeUntil } from 'rxjs';
+import { EMPTY, catchError } from 'rxjs';
import { CreateOrUpdateAccessDialogParams } from './interfaces/interfaces';
@@ -62,9 +63,7 @@ import { CreateOrUpdateAccessDialogParams } from './interfaces/interfaces';
styleUrls: ['./create-or-update-access-dialog.scss'],
templateUrl: 'create-or-update-access-dialog.html'
})
-export class GfCreateOrUpdateAccessDialogComponent
- implements OnDestroy, OnInit
-{
+export class GfCreateOrUpdateAccessDialogComponent implements OnInit {
public accessForm: FormGroup;
public mode: 'create' | 'update';
public showFilterPanel = false;
@@ -74,17 +73,18 @@ export class GfCreateOrUpdateAccessDialogComponent
public holdings: PortfolioPosition[] = [];
public tags: Filter[] = [];
- private unsubscribeSubject = new Subject();
-
- public constructor(
- private changeDetectorRef: ChangeDetectorRef,
- @Inject(MAT_DIALOG_DATA) private data: CreateOrUpdateAccessDialogParams,
- private dataService: DataService,
- public dialogRef: MatDialogRef,
- private formBuilder: FormBuilder,
- private notificationService: NotificationService,
- private userService: UserService
- ) {
+ private readonly changeDetectorRef = inject(ChangeDetectorRef);
+ private readonly data =
+ inject(MAT_DIALOG_DATA);
+ private readonly dataService = inject(DataService);
+ private readonly destroyRef = inject(DestroyRef);
+ private readonly dialogRef =
+ inject>(MatDialogRef);
+ private readonly formBuilder = inject(FormBuilder);
+ private readonly notificationService = inject(NotificationService);
+ private readonly userService = inject(UserService);
+
+ public constructor() {
this.mode = this.data.access?.id ? 'update' : 'create';
}
@@ -110,28 +110,31 @@ export class GfCreateOrUpdateAccessDialogComponent
]
});
- this.accessForm.get('type').valueChanges.subscribe((accessType) => {
- const granteeUserIdControl = this.accessForm.get('granteeUserId');
- const permissionsControl = this.accessForm.get('permissions');
-
- if (accessType === 'PRIVATE') {
- granteeUserIdControl.setValidators([
- (control: AbstractControl) => Validators.required(control)
- ]);
- this.showFilterPanel = false;
- this.accessForm.get('filters')?.setValue(null);
- } else {
- granteeUserIdControl.clearValidators();
- granteeUserIdControl.setValue(null);
- permissionsControl.setValue(this.data.access.permissions[0]);
- this.showFilterPanel = true;
- this.loadFilterData();
- }
+ this.accessForm
+ .get('type')
+ ?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef))
+ .subscribe((accessType) => {
+ const granteeUserIdControl = this.accessForm.get('granteeUserId');
+ const permissionsControl = this.accessForm.get('permissions');
+
+ if (accessType === 'PRIVATE') {
+ granteeUserIdControl?.setValidators([
+ (control: AbstractControl) => Validators.required(control)
+ ]);
+ this.showFilterPanel = false;
+ this.accessForm.get('filters')?.setValue(null);
+ } else {
+ granteeUserIdControl?.clearValidators();
+ granteeUserIdControl?.setValue(null);
+ permissionsControl?.setValue(this.data.access.permissions[0]);
+ this.showFilterPanel = true;
+ this.loadFilterData();
+ }
- granteeUserIdControl.updateValueAndValidity();
+ granteeUserIdControl?.updateValueAndValidity();
- this.changeDetectorRef.markForCheck();
- });
+ this.changeDetectorRef.markForCheck();
+ });
if (isPublic) {
this.showFilterPanel = true;
@@ -151,11 +154,6 @@ export class GfCreateOrUpdateAccessDialogComponent
}
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private buildFilterObject():
| {
accountIds?: string[];
@@ -213,7 +211,7 @@ export class GfCreateOrUpdateAccessDialogComponent
this.userService
.get()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.accounts = user.accounts;
this.tags = user.tags
@@ -228,7 +226,7 @@ export class GfCreateOrUpdateAccessDialogComponent
this.dataService
.fetchPortfolioDetails({})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((response) => {
if (response.holdings) {
this.holdings = Object.values(response.holdings);
@@ -301,12 +299,10 @@ export class GfCreateOrUpdateAccessDialogComponent
const filter = this.showFilterPanel ? this.buildFilterObject() : undefined;
const access: CreateAccessDto = {
+ alias: this.accessForm.get('alias')?.value,
filter,
- alias: this.accessForm.get('alias')?.value as string,
- granteeUserId: this.accessForm.get('granteeUserId')?.value as string,
- permissions: [
- this.accessForm.get('permissions')?.value as AccessPermission
- ]
+ granteeUserId: this.accessForm.get('granteeUserId')?.value,
+ permissions: [this.accessForm.get('permissions')?.value]
};
try {
@@ -319,8 +315,8 @@ export class GfCreateOrUpdateAccessDialogComponent
this.dataService
.postAccess(access)
.pipe(
- catchError((error: { status?: number }) => {
- if (error.status === (StatusCodes.BAD_REQUEST as number)) {
+ catchError((error: HttpErrorResponse) => {
+ if (error.status === StatusCodes.BAD_REQUEST) {
this.notificationService.alert({
title: $localize`Oops! Could not grant access.`
});
@@ -328,7 +324,7 @@ export class GfCreateOrUpdateAccessDialogComponent
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(() => {
this.dialogRef.close(access);
@@ -342,13 +338,11 @@ export class GfCreateOrUpdateAccessDialogComponent
const filter = this.showFilterPanel ? this.buildFilterObject() : undefined;
const access: UpdateAccessDto = {
- alias: this.accessForm.get('alias')?.value as string,
+ alias: this.accessForm.get('alias')?.value,
filter,
- granteeUserId: this.accessForm.get('granteeUserId')?.value as string,
+ granteeUserId: this.accessForm.get('granteeUserId')?.value,
id: this.data.access.id,
- permissions: [
- this.accessForm.get('permissions')?.value as AccessPermission
- ]
+ permissions: [this.accessForm.get('permissions')?.value]
};
try {
@@ -361,8 +355,8 @@ export class GfCreateOrUpdateAccessDialogComponent
this.dataService
.putAccess(access)
.pipe(
- catchError((error: { status?: number }) => {
- if (error.status === (StatusCodes.BAD_REQUEST as number)) {
+ catchError(({ status }: HttpErrorResponse) => {
+ if (status === StatusCodes.BAD_REQUEST) {
this.notificationService.alert({
title: $localize`Oops! Could not update access.`
});
@@ -370,7 +364,7 @@ export class GfCreateOrUpdateAccessDialogComponent
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(() => {
this.dialogRef.close(access);
diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
index c678c84b1..27d4788e6 100644
--- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -38,13 +38,13 @@
Permission
Restricted view
- @if (accessForm.get('type').value === 'PRIVATE') {
+ @if (accessForm.get('type')?.value === 'PRIVATE') {
View
}
- @if (accessForm.get('type').value === 'PRIVATE') {
+ @if (accessForm.get('type')?.value === 'PRIVATE') {
diff --git a/apps/client/src/app/components/user-account-access/user-account-access.component.ts b/apps/client/src/app/components/user-account-access/user-account-access.component.ts
index 6f031a91f..ce00d3cf9 100644
--- a/apps/client/src/app/components/user-account-access/user-account-access.component.ts
+++ b/apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -1,6 +1,4 @@
import { GfAccessTableComponent } from '@ghostfolio/client/components/access-table/access-table.component';
-import { DataService } from '@ghostfolio/client/services/data.service';
-import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { CreateAccessDto } from '@ghostfolio/common/dtos';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
@@ -8,15 +6,17 @@ import { Access, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import {
AbstractControl,
FormBuilder,
@@ -32,8 +32,8 @@ import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { addOutline, eyeOffOutline, eyeOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { EMPTY, Subject } from 'rxjs';
-import { catchError, takeUntil } from 'rxjs/operators';
+import { EMPTY } from 'rxjs';
+import { catchError } from 'rxjs/operators';
import { GfCreateOrUpdateAccessDialogComponent } from './create-or-update-access-dialog/create-or-update-access-dialog.component';
import { CreateOrUpdateAccessDialogParams } from './create-or-update-access-dialog/interfaces/interfaces';
@@ -57,7 +57,7 @@ import { CreateOrUpdateAccessDialogParams } from './create-or-update-access-dial
styleUrls: ['./user-account-access.scss'],
templateUrl: './user-account-access.html'
})
-export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
+export class GfUserAccountAccessComponent implements OnInit {
public accessesGet: Access[];
public accessesGive: Access[];
public deviceType: string;
@@ -73,18 +73,16 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
});
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog,
private formBuilder: FormBuilder,
private notificationService: NotificationService,
private route: ActivatedRoute,
private router: Router,
- private tokenStorageService: TokenStorageService,
private userService: UserService
) {
const { globalPermissions } = this.dataService.fetchInfo();
@@ -95,7 +93,7 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
);
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -120,7 +118,7 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
});
this.route.queryParams
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((params) => {
if (params['createDialog']) {
this.openCreateAccessDialog();
@@ -141,7 +139,7 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
public onDeleteAccess(aId: string) {
this.dataService
.deleteAccess(aId)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: () => {
this.update();
@@ -164,13 +162,12 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(({ accessToken }) => {
this.notificationService.alert({
discardFn: () => {
- this.tokenStorageService.signOut();
- this.userService.remove();
+ this.userService.signOut();
document.location.href = `/${document.documentElement.lang}`;
},
@@ -190,11 +187,6 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private openCreateAccessDialog() {
const dialogRef = this.dialog.open<
GfCreateOrUpdateAccessDialogComponent,
@@ -228,8 +220,6 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
});
if (!access) {
- console.log('Could not find access.');
-
return;
}
@@ -273,7 +263,7 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit {
this.dataService
.fetchAccesses()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((accesses) => {
this.accessesGive = accesses;
diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
index 8eec9c188..b13a983fc 100644
--- a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+++ b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
@@ -1,4 +1,3 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { getDateFormatString } from '@ghostfolio/common/helper';
@@ -8,21 +7,23 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { GfMembershipCardComponent } from '@ghostfolio/ui/membership-card';
import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import { CommonModule } from '@angular/common';
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
- OnDestroy
+ DestroyRef
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatSnackBar } from '@angular/material/snack-bar';
import { RouterModule } from '@angular/router';
import ms, { StringValue } from 'ms';
-import { EMPTY, Subject } from 'rxjs';
-import { catchError, takeUntil } from 'rxjs/operators';
+import { EMPTY } from 'rxjs';
+import { catchError } from 'rxjs/operators';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -38,7 +39,7 @@ import { catchError, takeUntil } from 'rxjs/operators';
styleUrls: ['./user-account-membership.scss'],
templateUrl: './user-account-membership.html'
})
-export class GfUserAccountMembershipComponent implements OnDestroy {
+export class GfUserAccountMembershipComponent {
public baseCurrency: string;
public coupon: number;
public couponId: string;
@@ -54,11 +55,10 @@ export class GfUserAccountMembershipComponent implements OnDestroy {
'mailto:hi@ghostfol.io?Subject=Ghostfolio Premium Trial&body=Hello%0D%0DI am interested in Ghostfolio Premium. Can you please send me a coupon code to try it for some time?%0D%0DKind regards';
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private notificationService: NotificationService,
private snackBar: MatSnackBar,
private userService: UserService
@@ -73,7 +73,7 @@ export class GfUserAccountMembershipComponent implements OnDestroy {
);
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -118,7 +118,7 @@ export class GfUserAccountMembershipComponent implements OnDestroy {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(({ sessionUrl }) => {
window.location.href = sessionUrl;
@@ -142,7 +142,7 @@ export class GfUserAccountMembershipComponent implements OnDestroy {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(({ apiKey }) => {
this.notificationService.alert({
@@ -180,7 +180,7 @@ export class GfUserAccountMembershipComponent implements OnDestroy {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(() => {
const snackBarRef = this.snackBar.open(
@@ -193,14 +193,14 @@ export class GfUserAccountMembershipComponent implements OnDestroy {
snackBarRef
.afterDismissed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
window.location.reload();
});
snackBarRef
.onAction()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
window.location.reload();
});
@@ -210,9 +210,4 @@ export class GfUserAccountMembershipComponent implements OnDestroy {
title: $localize`Please enter your coupon code.`
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
index e0028bb5c..72bbfc2c6 100644
--- a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
+++ b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
@@ -1,10 +1,8 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import {
KEY_STAY_SIGNED_IN,
KEY_TOKEN,
SettingsStorageService
} from '@ghostfolio/client/services/settings-storage.service';
-import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
@@ -13,15 +11,17 @@ import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { NotificationService } from '@ghostfolio/ui/notifications';
+import { DataService } from '@ghostfolio/ui/services';
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import {
FormBuilder,
FormsModule,
@@ -44,8 +44,8 @@ import { format, parseISO } from 'date-fns';
import { addIcons } from 'ionicons';
import { eyeOffOutline, eyeOutline } from 'ionicons/icons';
import ms from 'ms';
-import { EMPTY, Subject, throwError } from 'rxjs';
-import { catchError, takeUntil } from 'rxjs/operators';
+import { EMPTY, throwError } from 'rxjs';
+import { catchError } from 'rxjs/operators';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -66,7 +66,7 @@ import { catchError, takeUntil } from 'rxjs/operators';
styleUrls: ['./user-account-settings.scss'],
templateUrl: './user-account-settings.html'
})
-export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
+export class GfUserAccountSettingsComponent implements OnInit {
public appearancePlaceholder = $localize`Auto`;
public baseCurrency: string;
public currencies: string[] = [];
@@ -89,6 +89,7 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
'es',
'fr',
'it',
+ 'ko',
'nl',
'pl',
'pt',
@@ -98,16 +99,14 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
];
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private formBuilder: FormBuilder,
private notificationService: NotificationService,
private settingsStorageService: SettingsStorageService,
private snackBar: MatSnackBar,
- private tokenStorageService: TokenStorageService,
private userService: UserService,
public webAuthnService: WebAuthnService
) {
@@ -117,7 +116,7 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
this.currencies = currencies;
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -158,11 +157,11 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
public onChangeUserSetting(aKey: string, aValue: string) {
this.dataService
.putUserSetting({ [aKey]: aValue })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -194,11 +193,10 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(() => {
- this.tokenStorageService.signOut();
- this.userService.remove();
+ this.userService.signOut();
document.location.href = `/${document.documentElement.lang}`;
});
@@ -211,11 +209,11 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
public onExperimentalFeaturesChange(aEvent: MatSlideToggleChange) {
this.dataService
.putUserSetting({ isExperimentalFeatures: aEvent.checked })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -227,7 +225,7 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
public onExport() {
this.dataService
.fetchExport()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((data) => {
for (const activity of data.activities) {
delete activity.id;
@@ -247,11 +245,11 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
public onRestrictedViewChange(aEvent: MatSlideToggleChange) {
this.dataService
.putUserSetting({ isRestrictedView: aEvent.checked })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -286,11 +284,11 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
public onViewModeChange(aEvent: MatSlideToggleChange) {
this.dataService
.putUserSetting({ viewMode: aEvent.checked === true ? 'ZEN' : 'DEFAULT' })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -299,11 +297,6 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private deregisterDevice() {
this.webAuthnService
.deregister()
@@ -313,7 +306,7 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(() => {
this.update();
@@ -343,7 +336,7 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit {
return error;
});
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe({
next: () => {
diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.html b/apps/client/src/app/components/user-account-settings/user-account-settings.html
index e6ab544c8..93ed614cc 100644
--- a/apps/client/src/app/components/user-account-settings/user-account-settings.html
+++ b/apps/client/src/app/components/user-account-settings/user-account-settings.html
@@ -87,7 +87,8 @@
>
}
Chinese (Community Chinese / 简体中文 (Community )
Italiano (Community )
+ @if (user?.settings?.isExperimentalFeatures) {
+ Korean / 한국어 (Community )
+ }
Nederlands (Community )
@if (user?.settings?.isExperimentalFeatures) {
Українська (Community Ukrainian / Українська (Community )
}
diff --git a/apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts
index b922e7a54..ed46e8a02 100644
--- a/apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts
+++ b/apps/client/src/app/components/user-detail-dialog/interfaces/interfaces.ts
@@ -1,4 +1,5 @@
export interface UserDetailDialogParams {
+ currentUserId: string;
deviceType: string;
hasPermissionForSubscription: boolean;
locale: string;
diff --git a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
index 248fd48f3..fec2d4b06 100644
--- a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
+++ b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
@@ -1,7 +1,5 @@
-import { AdminService } from '@ghostfolio/client/services/admin.service';
import { AdminUserResponse } from '@ghostfolio/common/interfaces';
-import { GfDialogFooterComponent } from '@ghostfolio/ui/dialog-footer';
-import { GfDialogHeaderComponent } from '@ghostfolio/ui/dialog-header';
+import { AdminService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
import {
@@ -9,15 +7,20 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
+ DestroyRef,
Inject,
- OnDestroy,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { MatDialogModule } from '@angular/material/dialog';
-import { EMPTY, Subject } from 'rxjs';
-import { catchError, takeUntil } from 'rxjs/operators';
+import { MatMenuModule } from '@angular/material/menu';
+import { IonIcon } from '@ionic/angular/standalone';
+import { addIcons } from 'ionicons';
+import { ellipsisVertical } from 'ionicons/icons';
+import { EMPTY } from 'rxjs';
+import { catchError } from 'rxjs/operators';
import { UserDetailDialogParams } from './interfaces/interfaces';
@@ -25,34 +28,37 @@ import { UserDetailDialogParams } from './interfaces/interfaces';
changeDetection: ChangeDetectionStrategy.OnPush,
host: { class: 'd-flex flex-column h-100' },
imports: [
- GfDialogFooterComponent,
- GfDialogHeaderComponent,
GfValueComponent,
+ IonIcon,
MatButtonModule,
- MatDialogModule
+ MatDialogModule,
+ MatMenuModule
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
selector: 'gf-user-detail-dialog',
styleUrls: ['./user-detail-dialog.component.scss'],
templateUrl: './user-detail-dialog.html'
})
-export class GfUserDetailDialogComponent implements OnDestroy, OnInit {
+export class GfUserDetailDialogComponent implements OnInit {
public user: AdminUserResponse;
- private unsubscribeSubject = new Subject();
-
public constructor(
private adminService: AdminService,
private changeDetectorRef: ChangeDetectorRef,
@Inject(MAT_DIALOG_DATA) public data: UserDetailDialogParams,
+ private destroyRef: DestroyRef,
public dialogRef: MatDialogRef
- ) {}
+ ) {
+ addIcons({
+ ellipsisVertical
+ });
+ }
public ngOnInit() {
this.adminService
.fetchUserById(this.data.userId)
.pipe(
- takeUntil(this.unsubscribeSubject),
+ takeUntilDestroyed(this.destroyRef),
catchError(() => {
this.dialogRef.close();
@@ -66,12 +72,14 @@ export class GfUserDetailDialogComponent implements OnDestroy, OnInit {
});
}
- public onClose() {
- this.dialogRef.close();
+ public deleteUser() {
+ this.dialogRef.close({
+ action: 'delete',
+ userId: this.data.userId
+ });
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
+ public onClose() {
+ this.dialogRef.close();
}
}
diff --git a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
index 60f6a2585..e9af86942 100644
--- a/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+++ b/apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
@@ -1,14 +1,39 @@
-
-
+
+
+
+
+
+
+ Delete
+
+
+
- User ID
+ User ID
Role
@@ -103,7 +128,8 @@
-
+
+
+ Close
+
+
diff --git a/apps/client/src/app/core/auth.guard.ts b/apps/client/src/app/core/auth.guard.ts
index c26419031..3292f0ff7 100644
--- a/apps/client/src/app/core/auth.guard.ts
+++ b/apps/client/src/app/core/auth.guard.ts
@@ -1,7 +1,7 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { SettingsStorageService } from '@ghostfolio/client/services/settings-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { internalRoutes, publicRoutes } from '@ghostfolio/common/routes/routes';
+import { DataService } from '@ghostfolio/ui/services';
import { Injectable } from '@angular/core';
import {
@@ -68,7 +68,7 @@ export class AuthGuard {
this.dataService
.putUserSetting({ language: document.documentElement.lang })
.subscribe(() => {
- this.userService.remove();
+ this.userService.reset();
setTimeout(() => {
window.location.reload();
diff --git a/apps/client/src/app/core/http-response.interceptor.ts b/apps/client/src/app/core/http-response.interceptor.ts
index c2eef4175..315e9d64e 100644
--- a/apps/client/src/app/core/http-response.interceptor.ts
+++ b/apps/client/src/app/core/http-response.interceptor.ts
@@ -1,8 +1,8 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
-import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service';
+import { UserService } from '@ghostfolio/client/services/user/user.service';
import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service';
import { InfoItem } from '@ghostfolio/common/interfaces';
import { internalRoutes, publicRoutes } from '@ghostfolio/common/routes/routes';
+import { DataService } from '@ghostfolio/ui/services';
import {
HTTP_INTERCEPTORS,
@@ -32,8 +32,8 @@ export class HttpResponseInterceptor implements HttpInterceptor {
public constructor(
private dataService: DataService,
private router: Router,
- private tokenStorageService: TokenStorageService,
private snackBar: MatSnackBar,
+ private userService: UserService,
private webAuthnService: WebAuthnService
) {
this.info = this.dataService.fetchInfo();
@@ -115,7 +115,7 @@ export class HttpResponseInterceptor implements HttpInterceptor {
if (this.webAuthnService.isEnabled()) {
this.router.navigate(internalRoutes.webauthn.routerLink);
} else {
- this.tokenStorageService.signOut();
+ this.userService.signOut();
}
}
}
diff --git a/apps/client/src/app/interfaces/interfaces.ts b/apps/client/src/app/interfaces/interfaces.ts
new file mode 100644
index 000000000..493eff4ab
--- /dev/null
+++ b/apps/client/src/app/interfaces/interfaces.ts
@@ -0,0 +1,8 @@
+import type { Params } from '@angular/router';
+import type { DataSource } from '@prisma/client';
+
+export interface GfAppQueryParams extends Params {
+ dataSource?: DataSource;
+ holdingDetailDialog?: string;
+ symbol?: string;
+}
diff --git a/apps/client/src/app/pages/about/about-page.component.ts b/apps/client/src/app/pages/about/about-page.component.ts
index 4fe6a57e3..1e749d1cd 100644
--- a/apps/client/src/app/pages/about/about-page.component.ts
+++ b/apps/client/src/app/pages/about/about-page.component.ts
@@ -1,16 +1,17 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { TabConfiguration, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
+import { DataService } from '@ghostfolio/ui/services';
import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatTabsModule } from '@angular/material/tabs';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
@@ -24,8 +25,6 @@ import {
sparklesOutline
} from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
host: { class: 'page has-tabs' },
@@ -35,17 +34,16 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./about-page.scss'],
templateUrl: './about-page.html'
})
-export class AboutPageComponent implements OnDestroy, OnInit {
+export class AboutPageComponent implements OnInit {
public deviceType: string;
public hasPermissionForSubscription: boolean;
public tabs: TabConfiguration[] = [];
public user: User;
- private unsubscribeSubject = new Subject
();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private userService: UserService
) {
@@ -57,7 +55,7 @@ export class AboutPageComponent implements OnDestroy, OnInit {
);
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
this.tabs = [
{
@@ -118,9 +116,4 @@ export class AboutPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/about/changelog/changelog-page.component.ts b/apps/client/src/app/pages/about/changelog/changelog-page.component.ts
index 69b397370..d7f583bd1 100644
--- a/apps/client/src/app/pages/about/changelog/changelog-page.component.ts
+++ b/apps/client/src/app/pages/about/changelog/changelog-page.component.ts
@@ -1,7 +1,6 @@
-import { Component, OnDestroy } from '@angular/core';
+import { Component } from '@angular/core';
import { MarkdownModule } from 'ngx-markdown';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { Subject } from 'rxjs';
@Component({
imports: [MarkdownModule, NgxSkeletonLoaderModule],
@@ -9,17 +8,10 @@ import { Subject } from 'rxjs';
styleUrls: ['./changelog-page.scss'],
templateUrl: './changelog-page.html'
})
-export class GfChangelogPageComponent implements OnDestroy {
+export class GfChangelogPageComponent {
public isLoading = true;
- private unsubscribeSubject = new Subject();
-
public onLoad() {
this.isLoading = false;
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/about/license/license-page.component.ts b/apps/client/src/app/pages/about/license/license-page.component.ts
index 0dc5b2f51..d530d0418 100644
--- a/apps/client/src/app/pages/about/license/license-page.component.ts
+++ b/apps/client/src/app/pages/about/license/license-page.component.ts
@@ -1,6 +1,5 @@
-import { Component, OnDestroy } from '@angular/core';
+import { Component } from '@angular/core';
import { MarkdownModule } from 'ngx-markdown';
-import { Subject } from 'rxjs';
@Component({
imports: [MarkdownModule],
@@ -8,11 +7,4 @@ import { Subject } from 'rxjs';
styleUrls: ['./license-page.scss'],
templateUrl: './license-page.html'
})
-export class GfLicensePageComponent implements OnDestroy {
- private unsubscribeSubject = new Subject();
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-}
+export class GfLicensePageComponent {}
diff --git a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts
index bdbbdf9a7..c2e500a52 100644
--- a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts
+++ b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.component.ts
@@ -1,10 +1,9 @@
-import { Component, OnDestroy } from '@angular/core';
+import { Component } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { arrowForwardOutline } from 'ionicons/icons';
-import { Subject } from 'rxjs';
const ossFriends = require('../../../../assets/oss-friends.json');
@@ -14,17 +13,10 @@ const ossFriends = require('../../../../assets/oss-friends.json');
styleUrls: ['./oss-friends-page.scss'],
templateUrl: './oss-friends-page.html'
})
-export class GfOpenSourceSoftwareFriendsPageComponent implements OnDestroy {
+export class GfOpenSourceSoftwareFriendsPageComponent {
public ossFriends = ossFriends.data;
- private unsubscribeSubject = new Subject();
-
public constructor() {
addIcons({ arrowForwardOutline });
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts
index d315f2cbd..9c399762b 100644
--- a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts
+++ b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts
@@ -1,17 +1,18 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
+import { DataService } from '@ghostfolio/ui/services';
import { CommonModule } from '@angular/common';
import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
@@ -23,8 +24,6 @@ import {
logoX,
mail
} from 'ionicons/icons';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
imports: [CommonModule, IonIcon, MatButtonModule, RouterModule],
@@ -33,7 +32,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./about-overview-page.scss'],
templateUrl: './about-overview-page.html'
})
-export class GfAboutOverviewPageComponent implements OnDestroy, OnInit {
+export class GfAboutOverviewPageComponent implements OnInit {
public hasPermissionForStatistics: boolean;
public hasPermissionForSubscription: boolean;
public isLoggedIn: boolean;
@@ -43,11 +42,10 @@ export class GfAboutOverviewPageComponent implements OnDestroy, OnInit {
public routerLinkOpenStartup = publicRoutes.openStartup.routerLink;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private userService: UserService
) {
const { globalPermissions } = this.dataService.fetchInfo();
@@ -67,7 +65,7 @@ export class GfAboutOverviewPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -76,9 +74,4 @@ export class GfAboutOverviewPageComponent implements OnDestroy, OnInit {
}
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.html b/apps/client/src/app/pages/about/overview/about-overview-page.html
index 185becba7..cab1caa23 100644
--- a/apps/client/src/app/pages/about/overview/about-overview-page.html
+++ b/apps/client/src/app/pages/about/overview/about-overview-page.html
@@ -207,18 +207,20 @@
Sponsors
-
Browser testing via
-
+
Browser testing via
diff --git a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts
index 78881cd2c..50e4e3e2f 100644
--- a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts
+++ b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.component.ts
@@ -1,6 +1,5 @@
-import { Component, OnDestroy } from '@angular/core';
+import { Component } from '@angular/core';
import { MarkdownModule } from 'ngx-markdown';
-import { Subject } from 'rxjs';
@Component({
imports: [MarkdownModule],
@@ -8,11 +7,4 @@ import { Subject } from 'rxjs';
styleUrls: ['./privacy-policy-page.scss'],
templateUrl: './privacy-policy-page.html'
})
-export class GfPrivacyPolicyPageComponent implements OnDestroy {
- private unsubscribeSubject = new Subject
();
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-}
+export class GfPrivacyPolicyPageComponent {}
diff --git a/apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.component.ts b/apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.component.ts
index dbf07ef19..7899f0187 100644
--- a/apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.component.ts
+++ b/apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.component.ts
@@ -1,6 +1,5 @@
-import { Component, OnDestroy } from '@angular/core';
+import { Component } from '@angular/core';
import { MarkdownModule } from 'ngx-markdown';
-import { Subject } from 'rxjs';
@Component({
imports: [MarkdownModule],
@@ -8,11 +7,4 @@ import { Subject } from 'rxjs';
styleUrls: ['./terms-of-service-page.scss'],
templateUrl: './terms-of-service-page.html'
})
-export class GfTermsOfServicePageComponent implements OnDestroy {
- private unsubscribeSubject = new Subject();
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-}
+export class GfTermsOfServicePageComponent {}
diff --git a/apps/client/src/app/pages/accounts/accounts-page.component.ts b/apps/client/src/app/pages/accounts/accounts-page.component.ts
index 2b496e4fb..fdc78a8c4 100644
--- a/apps/client/src/app/pages/accounts/accounts-page.component.ts
+++ b/apps/client/src/app/pages/accounts/accounts-page.component.ts
@@ -1,6 +1,5 @@
import { GfAccountDetailDialogComponent } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.component';
import { AccountDetailDialogParams } from '@ghostfolio/client/components/account-detail-dialog/interfaces/interfaces';
-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 {
@@ -12,8 +11,15 @@ import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { GfAccountsTableComponent } from '@ghostfolio/ui/accounts-table';
import { NotificationService } from '@ghostfolio/ui/notifications';
+import { DataService } from '@ghostfolio/ui/services';
-import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
+import {
+ ChangeDetectorRef,
+ Component,
+ DestroyRef,
+ OnInit
+} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
@@ -21,8 +27,8 @@ import { Account as AccountModel } from '@prisma/client';
import { addIcons } from 'ionicons';
import { addOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { EMPTY, Subject, Subscription } from 'rxjs';
-import { catchError, takeUntil } from 'rxjs/operators';
+import { EMPTY, Subscription } from 'rxjs';
+import { catchError } from 'rxjs/operators';
import { GfCreateOrUpdateAccountDialogComponent } from './create-or-update-account-dialog/create-or-update-account-dialog.component';
import { CreateOrUpdateAccountDialogParams } from './create-or-update-account-dialog/interfaces/interfaces';
@@ -36,8 +42,9 @@ import { GfTransferBalanceDialogComponent } from './transfer-balance/transfer-ba
styleUrls: ['./accounts-page.scss'],
templateUrl: './accounts-page.html'
})
-export class GfAccountsPageComponent implements OnDestroy, OnInit {
+export class GfAccountsPageComponent implements OnInit {
public accounts: AccountModel[];
+ public activitiesCount = 0;
public deviceType: string;
public hasImpersonationId: boolean;
public hasPermissionToCreateAccount: boolean;
@@ -45,14 +52,12 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
public routeQueryParams: Subscription;
public totalBalanceInBaseCurrency = 0;
public totalValueInBaseCurrency = 0;
- public transactionCount = 0;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog,
private impersonationStorageService: ImpersonationStorageService,
@@ -62,7 +67,7 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
private userService: UserService
) {
this.route.queryParams
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((params) => {
if (params['accountId'] && params['accountDetailDialog']) {
this.openAccountDetailDialog(params['accountId']);
@@ -94,13 +99,13 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -124,18 +129,18 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
public fetchAccounts() {
this.dataService
.fetchAccounts()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(
({
accounts,
+ activitiesCount,
totalBalanceInBaseCurrency,
- totalValueInBaseCurrency,
- transactionCount
+ totalValueInBaseCurrency
}) => {
this.accounts = accounts;
+ this.activitiesCount = activitiesCount;
this.totalBalanceInBaseCurrency = totalBalanceInBaseCurrency;
this.totalValueInBaseCurrency = totalValueInBaseCurrency;
- this.transactionCount = transactionCount;
if (this.accounts?.length <= 0) {
this.router.navigate([], { queryParams: { createDialog: true } });
@@ -151,11 +156,11 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
this.dataService
.deleteAccount(aId)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchAccounts();
@@ -204,18 +209,18 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((account: UpdateAccountDto | null) => {
if (account) {
this.reset();
this.dataService
.putAccount(account)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchAccounts();
@@ -228,11 +233,6 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private openAccountDetailDialog(aAccountId: string) {
const dialogRef = this.dialog.open<
GfAccountDetailDialogComponent,
@@ -245,7 +245,7 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
hasImpersonationId: this.hasImpersonationId,
hasPermissionToCreateActivity:
!this.hasImpersonationId &&
- hasPermission(this.user?.permissions, permissions.createOrder) &&
+ hasPermission(this.user?.permissions, permissions.createActivity) &&
!this.user?.settings?.isRestrictedView
},
height: this.deviceType === 'mobile' ? '98vh' : '80vh',
@@ -254,7 +254,7 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.fetchAccounts();
@@ -284,18 +284,18 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((account: CreateAccountDto | null) => {
if (account) {
this.reset();
this.dataService
.postAccount(account)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchAccounts();
@@ -321,7 +321,7 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((data: any) => {
if (data) {
this.reset();
@@ -343,7 +343,7 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(() => {
this.fetchAccounts();
@@ -358,8 +358,8 @@ export class GfAccountsPageComponent implements OnDestroy, OnInit {
private reset() {
this.accounts = undefined;
+ this.activitiesCount = 0;
this.totalBalanceInBaseCurrency = 0;
this.totalValueInBaseCurrency = 0;
- this.transactionCount = 0;
}
}
diff --git a/apps/client/src/app/pages/accounts/accounts-page.html b/apps/client/src/app/pages/accounts/accounts-page.html
index 6f29a4f7c..3d9d7ee5c 100644
--- a/apps/client/src/app/pages/accounts/accounts-page.html
+++ b/apps/client/src/app/pages/accounts/accounts-page.html
@@ -4,8 +4,8 @@
Accounts
;
- public platforms: Platform[] = [];
-
- private unsubscribeSubject = new Subject();
-
- public constructor(
- @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateAccountDialogParams,
- private dataService: DataService,
- public dialogRef: MatDialogRef,
- private formBuilder: FormBuilder
- ) {}
+export class GfCreateOrUpdateAccountDialogComponent {
+ protected accountForm: FormGroup;
+ protected currencies: string[] = [];
+ protected filteredPlatforms: Observable | undefined;
+ protected platforms: Platform[] = [];
+
+ protected readonly data =
+ inject(MAT_DIALOG_DATA);
+ private readonly dataService = inject(DataService);
+ private readonly dialogRef =
+ inject>(MatDialogRef);
+ private readonly formBuilder = inject(FormBuilder);
public ngOnInit() {
const { currencies } = this.dataService.fetchInfo();
@@ -100,18 +93,18 @@ export class GfCreateOrUpdateAccountDialogComponent implements OnDestroy {
this.filteredPlatforms = this.accountForm
.get('platformId')
- .valueChanges.pipe(
+ ?.valueChanges.pipe(
startWith(''),
- map((value) => {
+ map((value: Platform | string) => {
const name = typeof value === 'string' ? value : value?.name;
- return name ? this.filter(name as string) : this.platforms.slice();
+ return name ? this.filter(name) : this.platforms.slice();
})
);
});
}
- public autoCompleteCheck() {
- const inputValue = this.accountForm.get('platformId').value;
+ protected autoCompleteCheck() {
+ const inputValue = this.accountForm.get('platformId')?.value;
if (typeof inputValue === 'string') {
const matchingEntry = this.platforms.find(({ name }) => {
@@ -119,28 +112,28 @@ export class GfCreateOrUpdateAccountDialogComponent implements OnDestroy {
});
if (matchingEntry) {
- this.accountForm.get('platformId').setValue(matchingEntry);
+ this.accountForm.get('platformId')?.setValue(matchingEntry);
}
}
}
- public displayFn(platform: Platform) {
+ protected displayFn(platform: Platform) {
return platform?.name ?? '';
}
- public onCancel() {
+ protected onCancel() {
this.dialogRef.close();
}
- public async onSubmit() {
+ protected async onSubmit() {
const account: CreateAccountDto | UpdateAccountDto = {
- balance: this.accountForm.get('balance').value,
- comment: this.accountForm.get('comment').value || null,
- currency: this.accountForm.get('currency').value,
- id: this.accountForm.get('accountId').value,
- isExcluded: this.accountForm.get('isExcluded').value,
- name: this.accountForm.get('name').value,
- platformId: this.accountForm.get('platformId').value?.id || null
+ balance: this.accountForm.get('balance')?.value,
+ comment: this.accountForm.get('comment')?.value || null,
+ currency: this.accountForm.get('currency')?.value,
+ id: this.accountForm.get('accountId')?.value,
+ isExcluded: this.accountForm.get('isExcluded')?.value,
+ name: this.accountForm.get('name')?.value,
+ platformId: this.accountForm.get('platformId')?.value?.id || null
};
try {
@@ -170,11 +163,6 @@ export class GfCreateOrUpdateAccountDialogComponent implements OnDestroy {
}
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private autocompleteObjectValidator(): ValidatorFn {
return (control: AbstractControl) => {
if (control.value && typeof control.value === 'string') {
@@ -189,7 +177,7 @@ export class GfCreateOrUpdateAccountDialogComponent implements OnDestroy {
const filterValue = value.toLowerCase();
return this.platforms.filter(({ name }) => {
- return name.toLowerCase().startsWith(filterValue);
+ return name?.toLowerCase().startsWith(filterValue);
});
}
}
diff --git a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts
index 85d2e60bf..34a66b156 100644
--- a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts
+++ b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts
@@ -1,12 +1,7 @@
import { TransferBalanceDto } from '@ghostfolio/common/dtos';
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
-import {
- ChangeDetectionStrategy,
- Component,
- Inject,
- OnDestroy
-} from '@angular/core';
+import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
import {
AbstractControl,
FormBuilder,
@@ -25,7 +20,6 @@ import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatSelectModule } from '@angular/material/select';
import { Account } from '@prisma/client';
-import { Subject } from 'rxjs';
import { TransferBalanceDialogParams } from './interfaces/interfaces';
@@ -45,13 +39,11 @@ import { TransferBalanceDialogParams } from './interfaces/interfaces';
styleUrls: ['./transfer-balance-dialog.scss'],
templateUrl: 'transfer-balance-dialog.html'
})
-export class GfTransferBalanceDialogComponent implements OnDestroy {
+export class GfTransferBalanceDialogComponent {
public accounts: Account[] = [];
public currency: string;
public transferBalanceForm: FormGroup;
- private unsubscribeSubject = new Subject();
-
public constructor(
@Inject(MAT_DIALOG_DATA) public data: TransferBalanceDialogParams,
public dialogRef: MatDialogRef,
@@ -93,11 +85,6 @@ export class GfTransferBalanceDialogComponent implements OnDestroy {
this.dialogRef.close({ account });
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private compareAccounts(control: AbstractControl): ValidationErrors {
const accountFrom = control.get('fromAccount');
const accountTo = control.get('toAccount');
diff --git a/apps/client/src/app/pages/admin/admin-page.component.ts b/apps/client/src/app/pages/admin/admin-page.component.ts
index b9243dcb9..66312ef33 100644
--- a/apps/client/src/app/pages/admin/admin-page.component.ts
+++ b/apps/client/src/app/pages/admin/admin-page.component.ts
@@ -1,7 +1,7 @@
import { TabConfiguration } from '@ghostfolio/common/interfaces';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
-import { Component, OnDestroy, OnInit } from '@angular/core';
+import { Component, OnInit } from '@angular/core';
import { MatTabsModule } from '@angular/material/tabs';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
@@ -14,7 +14,6 @@ import {
settingsOutline
} from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page has-tabs' },
@@ -23,12 +22,10 @@ import { Subject } from 'rxjs';
styleUrls: ['./admin-page.scss'],
templateUrl: './admin-page.html'
})
-export class AdminPageComponent implements OnDestroy, OnInit {
+export class AdminPageComponent implements OnInit {
public deviceType: string;
public tabs: TabConfiguration[] = [];
- private unsubscribeSubject = new Subject();
-
public constructor(private deviceService: DeviceDetectorService) {
addIcons({
flashOutline,
@@ -50,11 +47,7 @@ export class AdminPageComponent implements OnDestroy, OnInit {
},
{
iconName: 'settings-outline',
- label:
- internalRoutes.adminControl.subRoutes.settings.title +
- '' +
- $localize`new` +
- ' ',
+ label: internalRoutes.adminControl.subRoutes.settings.title,
routerLink: internalRoutes.adminControl.subRoutes.settings.routerLink
},
{
@@ -74,9 +67,4 @@ export class AdminPageComponent implements OnDestroy, OnInit {
}
];
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/api/api-page.component.ts b/apps/client/src/app/pages/api/api-page.component.ts
index 353605380..357a08bbd 100644
--- a/apps/client/src/app/pages/api/api-page.component.ts
+++ b/apps/client/src/app/pages/api/api-page.component.ts
@@ -14,9 +14,10 @@ import {
import { CommonModule } from '@angular/common';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
-import { Component, OnInit } from '@angular/core';
+import { Component, DestroyRef, OnInit } from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { format, startOfYear } from 'date-fns';
-import { map, Observable, Subject, takeUntil } from 'rxjs';
+import { map, Observable } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -35,9 +36,11 @@ export class GfApiPageComponent implements OnInit {
public status$: Observable;
private apiKey: string;
- private unsubscribeSubject = new Subject();
- public constructor(private http: HttpClient) {}
+ public constructor(
+ private destroyRef: DestroyRef,
+ private http: HttpClient
+ ) {}
public ngOnInit() {
this.apiKey = prompt($localize`Please enter your Ghostfolio API key:`);
@@ -51,18 +54,13 @@ export class GfApiPageComponent implements OnInit {
this.status$ = this.fetchStatus();
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private fetchAssetProfile({ symbol }: { symbol: string }) {
return this.http
.get(
`/api/v1/data-providers/ghostfolio/asset-profile/${symbol}`,
{ headers: this.getHeaders() }
)
- .pipe(takeUntil(this.unsubscribeSubject));
+ .pipe(takeUntilDestroyed(this.destroyRef));
}
private fetchDividends({ symbol }: { symbol: string }) {
@@ -82,7 +80,7 @@ export class GfApiPageComponent implements OnInit {
map(({ dividends }) => {
return dividends;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
);
}
@@ -103,7 +101,7 @@ export class GfApiPageComponent implements OnInit {
map(({ historicalData }) => {
return historicalData;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
);
}
@@ -129,7 +127,7 @@ export class GfApiPageComponent implements OnInit {
map(({ items }) => {
return items;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
);
}
@@ -145,7 +143,7 @@ export class GfApiPageComponent implements OnInit {
map(({ quotes }) => {
return quotes;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
);
}
@@ -155,7 +153,7 @@ export class GfApiPageComponent implements OnInit {
'/api/v2/data-providers/ghostfolio/status',
{ headers: this.getHeaders() }
)
- .pipe(takeUntil(this.unsubscribeSubject));
+ .pipe(takeUntilDestroyed(this.destroyRef));
}
private getHeaders() {
diff --git a/apps/client/src/app/pages/auth/auth-page.component.ts b/apps/client/src/app/pages/auth/auth-page.component.ts
index 082401d6d..1b0b4a67c 100644
--- a/apps/client/src/app/pages/auth/auth-page.component.ts
+++ b/apps/client/src/app/pages/auth/auth-page.component.ts
@@ -4,20 +4,18 @@ import {
} from '@ghostfolio/client/services/settings-storage.service';
import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service';
-import { Component, OnDestroy, OnInit } from '@angular/core';
+import { Component, DestroyRef, OnInit } from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { ActivatedRoute, Router } from '@angular/router';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
selector: 'gf-auth-page',
styleUrls: ['./auth-page.scss'],
templateUrl: './auth-page.html'
})
-export class GfAuthPageComponent implements OnDestroy, OnInit {
- private unsubscribeSubject = new Subject();
-
+export class GfAuthPageComponent implements OnInit {
public constructor(
+ private destroyRef: DestroyRef,
private route: ActivatedRoute,
private router: Router,
private settingsStorageService: SettingsStorageService,
@@ -26,7 +24,7 @@ export class GfAuthPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.route.params
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((params) => {
const jwt = params['jwt'];
@@ -38,9 +36,4 @@ export class GfAuthPageComponent implements OnDestroy, OnInit {
this.router.navigate(['/']);
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/blog/blog-page.component.ts b/apps/client/src/app/pages/blog/blog-page.component.ts
index 9977e6df4..7f2c56d2d 100644
--- a/apps/client/src/app/pages/blog/blog-page.component.ts
+++ b/apps/client/src/app/pages/blog/blog-page.component.ts
@@ -1,13 +1,12 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
+import { DataService } from '@ghostfolio/ui/services';
-import { Component, CUSTOM_ELEMENTS_SCHEMA, OnDestroy } from '@angular/core';
+import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { chevronForwardOutline } from 'ionicons/icons';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -17,11 +16,9 @@ import { Subject } from 'rxjs';
styleUrls: ['./blog-page.scss'],
templateUrl: './blog-page.html'
})
-export class GfBlogPageComponent implements OnDestroy {
+export class GfBlogPageComponent {
public hasPermissionForSubscription: boolean;
- private unsubscribeSubject = new Subject();
-
public constructor(private dataService: DataService) {
const info = this.dataService.fetchInfo();
@@ -32,9 +29,4 @@ export class GfBlogPageComponent implements OnDestroy {
addIcons({ chevronForwardOutline });
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/demo/demo-page.component.ts b/apps/client/src/app/pages/demo/demo-page.component.ts
index 9eba64788..235805dcc 100644
--- a/apps/client/src/app/pages/demo/demo-page.component.ts
+++ b/apps/client/src/app/pages/demo/demo-page.component.ts
@@ -1,11 +1,10 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service';
import { InfoItem } from '@ghostfolio/common/interfaces';
import { NotificationService } from '@ghostfolio/ui/notifications';
+import { DataService } from '@ghostfolio/ui/services';
-import { Component, OnDestroy } from '@angular/core';
+import { Component } from '@angular/core';
import { Router } from '@angular/router';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -13,11 +12,9 @@ import { Subject } from 'rxjs';
standalone: true,
templateUrl: './demo-page.html'
})
-export class GfDemoPageComponent implements OnDestroy {
+export class GfDemoPageComponent {
public info: InfoItem;
- private unsubscribeSubject = new Subject();
-
public constructor(
private dataService: DataService,
private notificationService: NotificationService,
@@ -40,9 +37,4 @@ export class GfDemoPageComponent implements OnDestroy {
this.router.navigate(['/']);
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/faq/faq-page.component.ts b/apps/client/src/app/pages/faq/faq-page.component.ts
index cba9e19f1..83171254a 100644
--- a/apps/client/src/app/pages/faq/faq-page.component.ts
+++ b/apps/client/src/app/pages/faq/faq-page.component.ts
@@ -1,21 +1,15 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { TabConfiguration } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
+import { DataService } from '@ghostfolio/ui/services';
-import {
- CUSTOM_ELEMENTS_SCHEMA,
- Component,
- OnDestroy,
- OnInit
-} from '@angular/core';
+import { CUSTOM_ELEMENTS_SCHEMA, Component, OnInit } from '@angular/core';
import { MatTabsModule } from '@angular/material/tabs';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { cloudyOutline, readerOutline, serverOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page has-tabs' },
@@ -25,13 +19,11 @@ import { Subject } from 'rxjs';
styleUrls: ['./faq-page.scss'],
templateUrl: './faq-page.html'
})
-export class GfFaqPageComponent implements OnDestroy, OnInit {
+export class GfFaqPageComponent implements OnInit {
public deviceType: string;
public hasPermissionForSubscription: boolean;
public tabs: TabConfiguration[] = [];
- private unsubscribeSubject = new Subject();
-
public constructor(
private dataService: DataService,
private deviceService: DeviceDetectorService
@@ -68,9 +60,4 @@ export class GfFaqPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts
index 8faa8307e..1d59e67e8 100644
--- a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts
+++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts
@@ -7,11 +7,11 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy
+ DestroyRef
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
-import { Subject, takeUntil } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -21,21 +21,20 @@ import { Subject, takeUntil } from 'rxjs';
styleUrls: ['./faq-overview-page.scss'],
templateUrl: './faq-overview-page.html'
})
-export class GfFaqOverviewPageComponent implements OnDestroy {
+export class GfFaqOverviewPageComponent {
public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${publicRoutes.pricing.path}`;
public routerLinkFeatures = publicRoutes.features.routerLink;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
+ private destroyRef: DestroyRef,
private userService: UserService
) {}
public ngOnInit() {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -44,9 +43,4 @@ export class GfFaqOverviewPageComponent implements OnDestroy {
}
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/faq/saas/saas-page.component.ts b/apps/client/src/app/pages/faq/saas/saas-page.component.ts
index b47d45fe2..3f44653d2 100644
--- a/apps/client/src/app/pages/faq/saas/saas-page.component.ts
+++ b/apps/client/src/app/pages/faq/saas/saas-page.component.ts
@@ -7,11 +7,11 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy
+ DestroyRef
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
-import { Subject, takeUntil } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -21,7 +21,7 @@ import { Subject, takeUntil } from 'rxjs';
styleUrls: ['./saas-page.scss'],
templateUrl: './saas-page.html'
})
-export class GfSaasPageComponent implements OnDestroy {
+export class GfSaasPageComponent {
public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${publicRoutes.pricing.path}`;
public routerLinkAccount = internalRoutes.account.routerLink;
public routerLinkAccountMembership =
@@ -30,16 +30,15 @@ export class GfSaasPageComponent implements OnDestroy {
public routerLinkRegister = publicRoutes.register.routerLink;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
+ private destroyRef: DestroyRef,
private userService: UserService
) {}
public ngOnInit() {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -48,9 +47,4 @@ export class GfSaasPageComponent implements OnDestroy {
}
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts
index ed1d74395..f2468c7d4 100644
--- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts
+++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts
@@ -1,10 +1,9 @@
import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
-import { CUSTOM_ELEMENTS_SCHEMA, Component, OnDestroy } from '@angular/core';
+import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -14,13 +13,6 @@ import { Subject } from 'rxjs';
styleUrls: ['./self-hosting-page.scss'],
templateUrl: './self-hosting-page.html'
})
-export class GfSelfHostingPageComponent implements OnDestroy {
+export class GfSelfHostingPageComponent {
public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${publicRoutes.pricing.path}`;
-
- private unsubscribeSubject = new Subject();
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html
index 42e810eb0..ef88df9aa 100644
--- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html
+++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html
@@ -93,6 +93,10 @@
dialog
+
+ For derived currencies (e.g. GBp), ensure that you
+ gather the data for the parent currency (e.g. GBP).
+
diff --git a/apps/client/src/app/pages/features/features-page.component.ts b/apps/client/src/app/pages/features/features-page.component.ts
index dc2dfaf42..cef90f2e5 100644
--- a/apps/client/src/app/pages/features/features-page.component.ts
+++ b/apps/client/src/app/pages/features/features-page.component.ts
@@ -1,15 +1,15 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { InfoItem, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
-import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';
+import { ChangeDetectorRef, Component, DestroyRef } from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
-import { Subject, takeUntil } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -23,7 +23,7 @@ import { Subject, takeUntil } from 'rxjs';
styleUrls: ['./features-page.scss'],
templateUrl: './features-page.html'
})
-export class GfFeaturesPageComponent implements OnDestroy {
+export class GfFeaturesPageComponent {
public hasPermissionForSubscription: boolean;
public hasPermissionToCreateUser: boolean;
public info: InfoItem;
@@ -31,11 +31,10 @@ export class GfFeaturesPageComponent implements OnDestroy {
public routerLinkResources = publicRoutes.resources.routerLink;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private userService: UserService
) {
this.info = this.dataService.fetchInfo();
@@ -43,7 +42,7 @@ export class GfFeaturesPageComponent implements OnDestroy {
public ngOnInit() {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -62,9 +61,4 @@ export class GfFeaturesPageComponent implements OnDestroy {
permissions.createUserAccount
);
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/features/features-page.html b/apps/client/src/app/pages/features/features-page.html
index d172347f7..efe96aec6 100644
--- a/apps/client/src/app/pages/features/features-page.html
+++ b/apps/client/src/app/pages/features/features-page.html
@@ -260,8 +260,9 @@
Use Ghostfolio in multiple languages: English,
- Chinese, Dutch, French, German, Italian, Polish, Portuguese,
- Spanish and Turkish
+ Chinese, Dutch, French, German, Italian,
+
+ Polish, Portuguese, Spanish and Turkish
are currently supported.
diff --git a/apps/client/src/app/pages/home/home-page.component.ts b/apps/client/src/app/pages/home/home-page.component.ts
index fd860ced5..5130c8166 100644
--- a/apps/client/src/app/pages/home/home-page.component.ts
+++ b/apps/client/src/app/pages/home/home-page.component.ts
@@ -8,9 +8,10 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatTabsModule } from '@angular/material/tabs';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
@@ -23,8 +24,6 @@ import {
readerOutline
} from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
host: { class: 'page has-tabs' },
@@ -34,22 +33,21 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./home-page.scss'],
templateUrl: './home-page.html'
})
-export class GfHomePageComponent implements OnDestroy, OnInit {
+export class GfHomePageComponent implements OnInit {
public deviceType: string;
public hasImpersonationId: boolean;
public tabs: TabConfiguration[] = [];
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private impersonationStorageService: ImpersonationStorageService,
private userService: UserService
) {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -110,14 +108,9 @@ export class GfHomePageComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/i18n/i18n-page.component.ts b/apps/client/src/app/pages/i18n/i18n-page.component.ts
index 19ecd222e..76d123914 100644
--- a/apps/client/src/app/pages/i18n/i18n-page.component.ts
+++ b/apps/client/src/app/pages/i18n/i18n-page.component.ts
@@ -1,5 +1,4 @@
import { Component } from '@angular/core';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -8,11 +7,4 @@ import { Subject } from 'rxjs';
styleUrls: ['./i18n-page.scss'],
templateUrl: './i18n-page.html'
})
-export class GfI18nPageComponent {
- private unsubscribeSubject = new Subject();
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-}
+export class GfI18nPageComponent {}
diff --git a/apps/client/src/app/pages/i18n/i18n-page.html b/apps/client/src/app/pages/i18n/i18n-page.html
index b4297d5ac..99ef3039e 100644
--- a/apps/client/src/app/pages/i18n/i18n-page.html
+++ b/apps/client/src/app/pages/i18n/i18n-page.html
@@ -149,14 +149,14 @@
An emergency fund has been set up
- Fee Ratio
-
- The fees do exceed ${thresholdMax}% of your initial investment
- (${feeRatio}%)
-
-
- The fees do not exceed ${thresholdMax}% of your initial
- investment (${feeRatio}%)
+ Fee Ratio
+
+ The fees do exceed ${thresholdMax}% of your total investment
+ volume (${feeRatio}%)
+
+
+ The fees do not exceed ${thresholdMax}% of your total
+ investment volume (${feeRatio}%)
Fees
diff --git a/apps/client/src/app/pages/landing/landing-page.component.ts b/apps/client/src/app/pages/landing/landing-page.component.ts
index 55f07a798..9ee9cceb4 100644
--- a/apps/client/src/app/pages/landing/landing-page.component.ts
+++ b/apps/client/src/app/pages/landing/landing-page.component.ts
@@ -1,15 +1,15 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { Statistics } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { GfCarouselComponent } from '@ghostfolio/ui/carousel';
import { GfLogoComponent } from '@ghostfolio/ui/logo';
import { GfLogoCarouselComponent } from '@ghostfolio/ui/logo-carousel';
+import { DataService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { GfWorldMapChartComponent } from '@ghostfolio/ui/world-map-chart';
import { CommonModule } from '@angular/common';
-import { Component, OnDestroy, OnInit } from '@angular/core';
+import { Component, OnInit } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
@@ -21,7 +21,6 @@ import {
starOutline
} from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -40,7 +39,7 @@ import { Subject } from 'rxjs';
styleUrls: ['./landing-page.scss'],
templateUrl: './landing-page.html'
})
-export class GfLandingPageComponent implements OnDestroy, OnInit {
+export class GfLandingPageComponent implements OnInit {
public countriesOfSubscribersMap: {
[code: string]: { value: number };
} = {};
@@ -107,8 +106,6 @@ export class GfLandingPageComponent implements OnDestroy, OnInit {
}
];
- private unsubscribeSubject = new Subject();
-
public constructor(
private dataService: DataService,
private deviceService: DeviceDetectorService
@@ -155,9 +152,4 @@ export class GfLandingPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/markets/markets-page.component.ts b/apps/client/src/app/pages/markets/markets-page.component.ts
index 1ab97c3e0..c70cb8120 100644
--- a/apps/client/src/app/pages/markets/markets-page.component.ts
+++ b/apps/client/src/app/pages/markets/markets-page.component.ts
@@ -1,7 +1,6 @@
import { GfHomeMarketComponent } from '@ghostfolio/client/components/home-market/home-market.component';
-import { Component, OnDestroy } from '@angular/core';
-import { Subject } from 'rxjs';
+import { Component } from '@angular/core';
@Component({
host: { class: 'page' },
@@ -10,11 +9,4 @@ import { Subject } from 'rxjs';
styleUrls: ['./markets-page.scss'],
templateUrl: './markets-page.html'
})
-export class GfMarketsPageComponent implements OnDestroy {
- private unsubscribeSubject = new Subject();
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-}
+export class GfMarketsPageComponent {}
diff --git a/apps/client/src/app/pages/open/open-page.component.ts b/apps/client/src/app/pages/open/open-page.component.ts
index 773025769..090588d7d 100644
--- a/apps/client/src/app/pages/open/open-page.component.ts
+++ b/apps/client/src/app/pages/open/open-page.component.ts
@@ -1,17 +1,17 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { Statistics, User } from '@ghostfolio/common/interfaces';
+import { DataService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatCardModule } from '@angular/material/card';
-import { Subject, takeUntil } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -21,15 +21,14 @@ import { Subject, takeUntil } from 'rxjs';
styleUrls: ['./open-page.scss'],
templateUrl: './open-page.html'
})
-export class GfOpenPageComponent implements OnDestroy, OnInit {
+export class GfOpenPageComponent implements OnInit {
public statistics: Statistics;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private userService: UserService
) {
const { statistics } = this.dataService.fetchInfo();
@@ -39,7 +38,7 @@ export class GfOpenPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -48,9 +47,4 @@ export class GfOpenPageComponent implements OnDestroy, OnInit {
}
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts
index 5b5273b65..acd6cba10 100644
--- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts
@@ -1,4 +1,3 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { IcsService } from '@ghostfolio/client/services/ics/ics.service';
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
@@ -11,9 +10,17 @@ import {
User
} from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
+import { DateRange } from '@ghostfolio/common/types';
import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table';
+import { DataService } from '@ghostfolio/ui/services';
-import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
+import {
+ ChangeDetectorRef,
+ Component,
+ DestroyRef,
+ OnInit
+} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatDialog } from '@angular/material/dialog';
import { PageEvent } from '@angular/material/paginator';
@@ -26,8 +33,7 @@ import { format, parseISO } from 'date-fns';
import { addIcons } from 'ionicons';
import { addOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject, Subscription } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
+import { Subscription } from 'rxjs';
import { GfCreateOrUpdateActivityDialogComponent } from './create-or-update-activity-dialog/create-or-update-activity-dialog.component';
import { CreateOrUpdateActivityDialogParams } from './create-or-update-activity-dialog/interfaces/interfaces';
@@ -47,7 +53,8 @@ import { ImportActivitiesDialogParams } from './import-activities-dialog/interfa
styleUrls: ['./activities-page.scss'],
templateUrl: './activities-page.html'
})
-export class GfActivitiesPageComponent implements OnDestroy, OnInit {
+export class GfActivitiesPageComponent implements OnInit {
+ public activityTypesFilter: string[] = [];
public dataSource: MatTableDataSource;
public deviceType: string;
public hasImpersonationId: boolean;
@@ -58,14 +65,13 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
public routeQueryParams: Subscription;
public sortColumn = 'date';
public sortDirection: SortDirection = 'desc';
- public totalItems: number;
+ public totalItems: number | undefined;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog,
private icsService: IcsService,
@@ -75,13 +81,13 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
private userService: UserService
) {
this.routeQueryParams = route.queryParams
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((params) => {
if (params['createDialog']) {
if (params['activityId']) {
this.dataService
.fetchActivity(params['activityId'])
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((activity) => {
this.openCreateActivityDialog(activity);
});
@@ -92,7 +98,7 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
if (params['activityId']) {
this.dataService
.fetchActivity(params['activityId'])
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((activity) => {
this.openUpdateActivityDialog(activity);
});
@@ -110,13 +116,13 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.updateUser(state.user);
@@ -129,15 +135,26 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
}
public fetchActivities() {
+ // Reset dataSource and totalItems to show loading state
+ this.dataSource = undefined;
+ this.totalItems = undefined;
+
+ const dateRange = this.user?.settings?.dateRange;
+ const range = this.isCalendarYear(dateRange) ? dateRange : undefined;
+
this.dataService
.fetchActivities({
+ range,
+ activityTypes: this.activityTypesFilter.length
+ ? this.activityTypesFilter
+ : undefined,
filters: this.userService.getFilters(),
skip: this.pageIndex * this.pageSize,
sortColumn: this.sortColumn,
sortDirection: this.sortDirection,
take: this.pageSize
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ activities, count }) => {
this.dataSource = new MatTableDataSource(activities);
this.totalItems = count;
@@ -178,28 +195,32 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
.deleteActivities({
filters: this.userService.getFilters()
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchActivities();
+
+ this.changeDetectorRef.markForCheck();
});
}
public onDeleteActivity(aId: string) {
this.dataService
.deleteActivity(aId)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchActivities();
+
+ this.changeDetectorRef.markForCheck();
});
}
@@ -207,12 +228,17 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
let fetchExportParams: any = { activityIds };
if (!activityIds) {
- fetchExportParams = { filters: this.userService.getFilters() };
+ fetchExportParams = {
+ activityTypes: this.activityTypesFilter.length
+ ? this.activityTypesFilter
+ : undefined,
+ filters: this.userService.getFilters()
+ };
}
this.dataService
.fetchExport(fetchExportParams)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((data) => {
for (const activity of data.activities) {
delete activity.id;
@@ -232,7 +258,7 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
public onExportDrafts(activityIds?: string[]) {
this.dataService
.fetchExport({ activityIds })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((data) => {
downloadAsFile({
content: this.icsService.transformActivitiesToIcsContent(
@@ -262,14 +288,16 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchActivities();
+
+ this.changeDetectorRef.markForCheck();
});
}
@@ -289,14 +317,16 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchActivities();
+
+ this.changeDetectorRef.markForCheck();
});
}
@@ -308,6 +338,13 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
this.fetchActivities();
}
+ public onTypesFilterChanged(aTypes: string[]) {
+ this.activityTypesFilter = aTypes;
+ this.pageIndex = 0;
+
+ this.fetchActivities();
+ }
+
public onUpdateActivity(aActivity: Activity) {
this.router.navigate([], {
queryParams: { activityId: aActivity.id, editDialog: true }
@@ -330,15 +367,17 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((activity: UpdateOrderDto) => {
if (activity) {
this.dataService
- .putOrder(activity)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .putActivity(activity)
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe({
next: () => {
this.fetchActivities();
+
+ this.changeDetectorRef.markForCheck();
}
});
}
@@ -347,15 +386,18 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
+ private isCalendarYear(dateRange: DateRange) {
+ if (!dateRange) {
+ return false;
+ }
+
+ return /^\d{4}$/.test(dateRange);
}
private openCreateActivityDialog(aActivity?: Activity) {
this.userService
.get()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.updateUser(user);
@@ -382,17 +424,19 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((transaction: CreateOrderDto | null) => {
if (transaction) {
- this.dataService.postOrder(transaction).subscribe({
+ this.dataService.postActivity(transaction).subscribe({
next: () => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.fetchActivities();
+
+ this.changeDetectorRef.markForCheck();
}
});
}
@@ -407,9 +451,9 @@ export class GfActivitiesPageComponent implements OnDestroy, OnInit {
this.hasPermissionToCreateActivity =
!this.hasImpersonationId &&
- hasPermission(this.user.permissions, permissions.createOrder);
+ hasPermission(this.user.permissions, permissions.createActivity);
this.hasPermissionToDeleteActivity =
!this.hasImpersonationId &&
- hasPermission(this.user.permissions, permissions.deleteOrder);
+ hasPermission(this.user.permissions, permissions.deleteActivity);
}
}
diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.html b/apps/client/src/app/pages/portfolio/activities/activities-page.html
index 80ad71b79..2a72dcfd2 100644
--- a/apps/client/src/app/pages/portfolio/activities/activities-page.html
+++ b/apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -10,6 +10,7 @@
[hasPermissionToCreateActivity]="hasPermissionToCreateActivity"
[hasPermissionToDeleteActivity]="hasPermissionToDeleteActivity"
[hasPermissionToExportActivities]="!hasImpersonationId"
+ [hasPermissionToFilterByType]="user?.settings?.isExperimentalFeatures"
[locale]="user?.settings?.locale"
[pageIndex]="pageIndex"
[pageSize]="pageSize"
@@ -32,6 +33,7 @@
(importDividends)="onImportDividends()"
(pageChanged)="onChangePage($event)"
(sortChanged)="onSortChanged($event)"
+ (typesFilterChanged)="onTypesFilterChanged($event)"
/>
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
index b44e8ee6b..277701862 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
@@ -1,5 +1,6 @@
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { ASSET_CLASS_MAPPING } from '@ghostfolio/common/config';
+import { locale as defaultLocale } from '@ghostfolio/common/config';
import { CreateOrderDto, UpdateOrderDto } from '@ghostfolio/common/dtos';
import { getDateFormatString } from '@ghostfolio/common/helper';
import {
@@ -10,6 +11,7 @@ import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { validateObjectForForm } from '@ghostfolio/common/utils';
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
import { translate } from '@ghostfolio/ui/i18n';
+import { DataService } from '@ghostfolio/ui/services';
import { GfSymbolAutocompleteComponent } from '@ghostfolio/ui/symbol-autocomplete';
import { GfTagsSelectorComponent } from '@ghostfolio/ui/tags-selector';
import { GfValueComponent } from '@ghostfolio/ui/value';
@@ -19,9 +21,10 @@ import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
- Inject,
- OnDestroy
+ DestroyRef,
+ Inject
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import {
FormBuilder,
FormGroup,
@@ -45,10 +48,9 @@ import { AssetClass, Tag, Type } from '@prisma/client';
import { isAfter, isToday } from 'date-fns';
import { addIcons } from 'ionicons';
import { calendarClearOutline, refreshOutline } from 'ionicons/icons';
-import { EMPTY, Subject } from 'rxjs';
-import { catchError, delay, takeUntil } from 'rxjs/operators';
+import { EMPTY } from 'rxjs';
+import { catchError, delay } from 'rxjs/operators';
-import { DataService } from '../../../../services/data.service';
import { CreateOrUpdateActivityDialogParams } from './interfaces/interfaces';
import { ActivityType } from './types/activity-type.type';
@@ -75,7 +77,7 @@ import { ActivityType } from './types/activity-type.type';
styleUrls: ['./create-or-update-activity-dialog.scss'],
templateUrl: 'create-or-update-activity-dialog.html'
})
-export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
+export class GfCreateOrUpdateActivityDialogComponent {
public activityForm: FormGroup;
public assetClassOptions: AssetClassSelectorOption[] = Object.keys(AssetClass)
@@ -88,11 +90,11 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
public assetSubClassOptions: AssetClassSelectorOption[] = [];
public currencies: string[] = [];
- public currencyOfAssetProfile: string;
- public currentMarketPrice = null;
+ public currencyOfAssetProfile: string | undefined;
+ public currentMarketPrice: number | null = null;
public defaultDateFormat: string;
public defaultLookupItems: LookupItem[] = [];
- public hasPermissionToCreateOwnTag: boolean;
+ public hasPermissionToCreateOwnTag: boolean | undefined;
public isLoading = false;
public isToday = isToday;
public mode: 'create' | 'update';
@@ -101,13 +103,12 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
public typesTranslationMap = new Map
();
public Validators = Validators;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
@Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateActivityDialogParams,
private dataService: DataService,
- private dateAdapter: DateAdapter,
+ private dateAdapter: DateAdapter,
+ private destroyRef: DestroyRef,
public dialogRef: MatDialogRef,
private formBuilder: FormBuilder,
@Inject(MAT_DATE_LOCALE) private locale: string,
@@ -121,7 +122,7 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
this.hasPermissionToCreateOwnTag =
this.data.user?.settings?.isExperimentalFeatures &&
hasPermission(this.data.user?.permissions, permissions.createOwnTag);
- this.locale = this.data.user?.settings?.locale;
+ this.locale = this.data.user.settings.locale ?? defaultLocale;
this.mode = this.data.activity?.id ? 'update' : 'create';
this.dateAdapter.setLocale(this.locale);
@@ -133,37 +134,28 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
this.dataService
.fetchPortfolioHoldings()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ holdings }) => {
this.defaultLookupItems = holdings
- .filter(({ assetSubClass }) => {
- return !['CASH'].includes(assetSubClass);
+ .filter(({ assetProfile }) => {
+ return !['CASH'].includes(assetProfile.assetSubClass);
})
.sort((a, b) => {
return a.name?.localeCompare(b.name);
})
- .map(
- ({
- assetClass,
- assetSubClass,
- currency,
- dataSource,
- name,
- symbol
- }) => {
- return {
- assetClass,
- assetSubClass,
- currency,
- dataSource,
- name,
- symbol,
- dataProviderInfo: {
- isPremium: false
- }
- };
- }
- );
+ .map(({ assetProfile }) => {
+ return {
+ assetClass: assetProfile.assetClass,
+ assetSubClass: assetProfile.assetSubClass,
+ currency: assetProfile.currency ?? '',
+ dataProviderInfo: {
+ isPremium: false
+ },
+ dataSource: assetProfile.dataSource,
+ name: assetProfile.name ?? '',
+ symbol: assetProfile.symbol
+ };
+ });
this.changeDetectorRef.markForCheck();
});
@@ -188,8 +180,7 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
!this.data.activity?.accountId &&
this.mode === 'create'
? this.data.accounts[0].id
- : this.data.activity?.accountId,
- Validators.required
+ : this.data.activity?.accountId
],
assetClass: [this.data.activity?.SymbolProfile?.assetClass],
assetSubClass: [this.data.activity?.SymbolProfile?.assetSubClass],
@@ -238,30 +229,30 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
// Slightly delay until the more specific form control value changes have
// completed
delay(300),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(async () => {
if (
['BUY', 'FEE', 'VALUABLE'].includes(
- this.activityForm.get('type').value
+ this.activityForm.get('type')?.value
)
) {
this.total =
- this.activityForm.get('quantity').value *
- this.activityForm.get('unitPrice').value +
- (this.activityForm.get('fee').value ?? 0);
+ this.activityForm.get('quantity')?.value *
+ this.activityForm.get('unitPrice')?.value +
+ (this.activityForm.get('fee')?.value ?? 0);
} else {
this.total =
- this.activityForm.get('quantity').value *
- this.activityForm.get('unitPrice').value -
- (this.activityForm.get('fee').value ?? 0);
+ this.activityForm.get('quantity')?.value *
+ this.activityForm.get('unitPrice')?.value -
+ (this.activityForm.get('fee')?.value ?? 0);
}
this.changeDetectorRef.markForCheck();
});
- this.activityForm.get('accountId').valueChanges.subscribe((accountId) => {
- const type = this.activityForm.get('type').value;
+ this.activityForm.get('accountId')?.valueChanges.subscribe((accountId) => {
+ const type = this.activityForm.get('type')?.value;
if (['FEE', 'INTEREST', 'LIABILITY', 'VALUABLE'].includes(type)) {
const currency =
@@ -269,15 +260,15 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
return id === accountId;
})?.currency ?? this.data.user.settings.baseCurrency;
- this.activityForm.get('currency').setValue(currency);
- this.activityForm.get('currencyOfUnitPrice').setValue(currency);
+ this.activityForm.get('currency')?.setValue(currency);
+ this.activityForm.get('currencyOfUnitPrice')?.setValue(currency);
if (['FEE', 'INTEREST'].includes(type)) {
- if (this.activityForm.get('accountId').value) {
- this.activityForm.get('updateAccountBalance').enable();
+ if (this.activityForm.get('accountId')?.value) {
+ this.activityForm.get('updateAccountBalance')?.enable();
} else {
- this.activityForm.get('updateAccountBalance').disable();
- this.activityForm.get('updateAccountBalance').setValue(false);
+ this.activityForm.get('updateAccountBalance')?.disable();
+ this.activityForm.get('updateAccountBalance')?.setValue(false);
}
}
}
@@ -285,7 +276,7 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
this.activityForm
.get('assetClass')
- .valueChanges.pipe(takeUntil(this.unsubscribeSubject))
+ ?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((assetClass) => {
const assetSubClasses = ASSET_CLASS_MAPPING.get(assetClass) ?? [];
@@ -298,28 +289,28 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
})
.sort((a, b) => a.label.localeCompare(b.label));
- this.activityForm.get('assetSubClass').setValue(null);
+ this.activityForm.get('assetSubClass')?.setValue(null);
this.changeDetectorRef.markForCheck();
});
- this.activityForm.get('date').valueChanges.subscribe(() => {
- if (isToday(this.activityForm.get('date').value)) {
- this.activityForm.get('updateAccountBalance').enable();
+ this.activityForm.get('date')?.valueChanges.subscribe(() => {
+ if (isToday(this.activityForm.get('date')?.value)) {
+ this.activityForm.get('updateAccountBalance')?.enable();
} else {
- this.activityForm.get('updateAccountBalance').disable();
- this.activityForm.get('updateAccountBalance').setValue(false);
+ this.activityForm.get('updateAccountBalance')?.disable();
+ this.activityForm.get('updateAccountBalance')?.setValue(false);
}
this.changeDetectorRef.markForCheck();
});
- this.activityForm.get('searchSymbol').valueChanges.subscribe(() => {
- if (this.activityForm.get('searchSymbol').invalid) {
+ this.activityForm.get('searchSymbol')?.valueChanges.subscribe(() => {
+ if (this.activityForm.get('searchSymbol')?.invalid) {
this.data.activity.SymbolProfile = null;
} else if (
['BUY', 'DIVIDEND', 'SELL'].includes(
- this.activityForm.get('type').value
+ this.activityForm.get('type')?.value
)
) {
this.updateAssetProfile();
@@ -328,7 +319,7 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
this.changeDetectorRef.markForCheck();
});
- this.activityForm.get('tags').valueChanges.subscribe((tags: Tag[]) => {
+ this.activityForm.get('tags')?.valueChanges.subscribe((tags: Tag[]) => {
const newTag = tags.find(({ id }) => {
return id === undefined;
});
@@ -336,9 +327,9 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
if (newTag && this.hasPermissionToCreateOwnTag) {
this.dataService
.postTag({ ...newTag, userId: this.data.user.id })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((tag) => {
- this.activityForm.get('tags').setValue(
+ this.activityForm.get('tags')?.setValue(
tags.map((currentTag) => {
if (currentTag.id === undefined) {
return tag;
@@ -350,7 +341,7 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
});
}
@@ -358,118 +349,106 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
this.activityForm
.get('type')
- .valueChanges.pipe(takeUntil(this.unsubscribeSubject))
+ ?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((type: ActivityType) => {
if (
type === 'VALUABLE' ||
- (this.activityForm.get('dataSource').value === 'MANUAL' &&
+ (this.activityForm.get('dataSource')?.value === 'MANUAL' &&
type === 'BUY')
) {
- this.activityForm
- .get('accountId')
- .removeValidators(Validators.required);
- this.activityForm.get('accountId').updateValueAndValidity();
-
const currency =
this.data.accounts.find(({ id }) => {
- return id === this.activityForm.get('accountId').value;
+ return id === this.activityForm.get('accountId')?.value;
})?.currency ?? this.data.user.settings.baseCurrency;
- this.activityForm.get('currency').setValue(currency);
- this.activityForm.get('currencyOfUnitPrice').setValue(currency);
+ this.activityForm.get('currency')?.setValue(currency);
+ this.activityForm.get('currencyOfUnitPrice')?.setValue(currency);
this.activityForm
.get('dataSource')
- .removeValidators(Validators.required);
- this.activityForm.get('dataSource').updateValueAndValidity();
- this.activityForm.get('fee').setValue(0);
- this.activityForm.get('name').setValidators(Validators.required);
- this.activityForm.get('name').updateValueAndValidity();
+ ?.removeValidators(Validators.required);
+ this.activityForm.get('dataSource')?.updateValueAndValidity();
+ this.activityForm.get('fee')?.setValue(0);
+ this.activityForm.get('name')?.setValidators(Validators.required);
+ this.activityForm.get('name')?.updateValueAndValidity();
if (type === 'VALUABLE') {
- this.activityForm.get('quantity').setValue(1);
+ this.activityForm.get('quantity')?.setValue(1);
}
this.activityForm
.get('searchSymbol')
- .removeValidators(Validators.required);
- this.activityForm.get('searchSymbol').updateValueAndValidity();
- this.activityForm.get('updateAccountBalance').disable();
- this.activityForm.get('updateAccountBalance').setValue(false);
+ ?.removeValidators(Validators.required);
+ this.activityForm.get('searchSymbol')?.updateValueAndValidity();
+ this.activityForm.get('updateAccountBalance')?.disable();
+ this.activityForm.get('updateAccountBalance')?.setValue(false);
} else if (['FEE', 'INTEREST', 'LIABILITY'].includes(type)) {
- this.activityForm
- .get('accountId')
- .removeValidators(Validators.required);
- this.activityForm.get('accountId').updateValueAndValidity();
-
const currency =
this.data.accounts.find(({ id }) => {
- return id === this.activityForm.get('accountId').value;
+ return id === this.activityForm.get('accountId')?.value;
})?.currency ?? this.data.user.settings.baseCurrency;
- this.activityForm.get('currency').setValue(currency);
- this.activityForm.get('currencyOfUnitPrice').setValue(currency);
+ this.activityForm.get('currency')?.setValue(currency);
+ this.activityForm.get('currencyOfUnitPrice')?.setValue(currency);
this.activityForm
.get('dataSource')
- .removeValidators(Validators.required);
- this.activityForm.get('dataSource').updateValueAndValidity();
+ ?.removeValidators(Validators.required);
+ this.activityForm.get('dataSource')?.updateValueAndValidity();
if (['INTEREST', 'LIABILITY'].includes(type)) {
- this.activityForm.get('fee').setValue(0);
+ this.activityForm.get('fee')?.setValue(0);
}
- this.activityForm.get('name').setValidators(Validators.required);
- this.activityForm.get('name').updateValueAndValidity();
+ this.activityForm.get('name')?.setValidators(Validators.required);
+ this.activityForm.get('name')?.updateValueAndValidity();
if (type === 'FEE') {
- this.activityForm.get('quantity').setValue(0);
+ this.activityForm.get('quantity')?.setValue(0);
} else if (['INTEREST', 'LIABILITY'].includes(type)) {
- this.activityForm.get('quantity').setValue(1);
+ this.activityForm.get('quantity')?.setValue(1);
}
this.activityForm
.get('searchSymbol')
- .removeValidators(Validators.required);
- this.activityForm.get('searchSymbol').updateValueAndValidity();
+ ?.removeValidators(Validators.required);
+ this.activityForm.get('searchSymbol')?.updateValueAndValidity();
if (type === 'FEE') {
- this.activityForm.get('unitPrice').setValue(0);
+ this.activityForm.get('unitPrice')?.setValue(0);
}
if (
['FEE', 'INTEREST'].includes(type) &&
- this.activityForm.get('accountId').value
+ this.activityForm.get('accountId')?.value
) {
- this.activityForm.get('updateAccountBalance').enable();
+ this.activityForm.get('updateAccountBalance')?.enable();
} else {
- this.activityForm.get('updateAccountBalance').disable();
- this.activityForm.get('updateAccountBalance').setValue(false);
+ this.activityForm.get('updateAccountBalance')?.disable();
+ this.activityForm.get('updateAccountBalance')?.setValue(false);
}
} else {
- this.activityForm.get('accountId').setValidators(Validators.required);
- this.activityForm.get('accountId').updateValueAndValidity();
this.activityForm
.get('dataSource')
- .setValidators(Validators.required);
- this.activityForm.get('dataSource').updateValueAndValidity();
- this.activityForm.get('name').removeValidators(Validators.required);
- this.activityForm.get('name').updateValueAndValidity();
+ ?.setValidators(Validators.required);
+ this.activityForm.get('dataSource')?.updateValueAndValidity();
+ this.activityForm.get('name')?.removeValidators(Validators.required);
+ this.activityForm.get('name')?.updateValueAndValidity();
this.activityForm
.get('searchSymbol')
- .setValidators(Validators.required);
- this.activityForm.get('searchSymbol').updateValueAndValidity();
- this.activityForm.get('updateAccountBalance').enable();
+ ?.setValidators(Validators.required);
+ this.activityForm.get('searchSymbol')?.updateValueAndValidity();
+ this.activityForm.get('updateAccountBalance')?.enable();
}
this.changeDetectorRef.markForCheck();
});
- this.activityForm.get('type').setValue(this.data.activity?.type);
+ this.activityForm.get('type')?.setValue(this.data.activity?.type);
if (this.data.activity?.id) {
- this.activityForm.get('searchSymbol').disable();
- this.activityForm.get('type').disable();
+ this.activityForm.get('searchSymbol')?.disable();
+ this.activityForm.get('type')?.disable();
}
if (this.data.activity?.SymbolProfile?.symbol) {
@@ -478,7 +457,7 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
dataSource: this.data.activity?.SymbolProfile?.dataSource,
symbol: this.data.activity?.SymbolProfile?.symbol
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ marketPrice }) => {
this.currentMarketPrice = marketPrice;
@@ -489,7 +468,7 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
public applyCurrentMarketPrice() {
this.activityForm.patchValue({
- currencyOfUnitPrice: this.activityForm.get('currency').value,
+ currencyOfUnitPrice: this.activityForm.get('currency')?.value,
unitPrice: this.currentMarketPrice
});
}
@@ -508,41 +487,42 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
public async onSubmit() {
const activity: CreateOrderDto | UpdateOrderDto = {
- accountId: this.activityForm.get('accountId').value,
- assetClass: this.activityForm.get('assetClass').value,
- assetSubClass: this.activityForm.get('assetSubClass').value,
- comment: this.activityForm.get('comment').value || null,
- currency: this.activityForm.get('currency').value,
- customCurrency: this.activityForm.get('currencyOfUnitPrice').value,
- date: this.activityForm.get('date').value,
- dataSource:
- this.activityForm.get('type').value === 'VALUABLE'
- ? 'MANUAL'
- : this.activityForm.get('dataSource').value,
- fee: this.activityForm.get('fee').value,
- quantity: this.activityForm.get('quantity').value,
+ accountId: this.activityForm.get('accountId')?.value,
+ assetClass: this.activityForm.get('assetClass')?.value,
+ assetSubClass: this.activityForm.get('assetSubClass')?.value,
+ comment: this.activityForm.get('comment')?.value || null,
+ currency: this.activityForm.get('currency')?.value,
+ customCurrency: this.activityForm.get('currencyOfUnitPrice')?.value,
+ dataSource: ['FEE', 'INTEREST', 'LIABILITY', 'VALUABLE'].includes(
+ this.activityForm.get('type')?.value
+ )
+ ? 'MANUAL'
+ : this.activityForm.get('dataSource')?.value,
+ date: this.activityForm.get('date')?.value,
+ fee: this.activityForm.get('fee')?.value,
+ quantity: this.activityForm.get('quantity')?.value,
symbol:
(['FEE', 'INTEREST', 'LIABILITY', 'VALUABLE'].includes(
- this.activityForm.get('type').value
+ this.activityForm.get('type')?.value
)
? undefined
: this.activityForm.get('searchSymbol')?.value?.symbol) ??
this.activityForm.get('name')?.value,
- tags: this.activityForm.get('tags').value?.map(({ id }) => {
+ tags: this.activityForm.get('tags')?.value?.map(({ id }) => {
return id;
}),
type:
- this.activityForm.get('type').value === 'VALUABLE'
+ this.activityForm.get('type')?.value === 'VALUABLE'
? 'BUY'
- : this.activityForm.get('type').value,
- unitPrice: this.activityForm.get('unitPrice').value
+ : this.activityForm.get('type')?.value,
+ unitPrice: this.activityForm.get('unitPrice')?.value
};
try {
if (this.mode === 'create') {
activity.updateAccountBalance = this.activityForm.get(
'updateAccountBalance'
- ).value;
+ )?.value;
await validateObjectForForm({
classDto: CreateOrderDto,
@@ -569,19 +549,14 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
}
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private updateAssetProfile() {
this.isLoading = true;
this.changeDetectorRef.markForCheck();
this.dataService
.fetchSymbolItem({
- dataSource: this.activityForm.get('searchSymbol').value.dataSource,
- symbol: this.activityForm.get('searchSymbol').value.symbol
+ dataSource: this.activityForm.get('searchSymbol')?.value.dataSource,
+ symbol: this.activityForm.get('searchSymbol')?.value.symbol
})
.pipe(
catchError(() => {
@@ -593,13 +568,13 @@ export class GfCreateOrUpdateActivityDialogComponent implements OnDestroy {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(({ currency, dataSource, marketPrice }) => {
if (this.mode === 'create') {
- this.activityForm.get('currency').setValue(currency);
- this.activityForm.get('currencyOfUnitPrice').setValue(currency);
- this.activityForm.get('dataSource').setValue(dataSource);
+ this.activityForm.get('currency')?.setValue(currency);
+ this.activityForm.get('currencyOfUnitPrice')?.setValue(currency);
+ this.activityForm.get('dataSource')?.setValue(dataSource);
}
this.currencyOfAssetProfile = currency;
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
index 42fbd0ebf..038da44cb 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
@@ -15,7 +15,7 @@
Type
{{
- typesTranslationMap[activityForm.get('type').value]
+ typesTranslationMap[activityForm.get('type')?.value]
}}
Account
- @if (
- !activityForm.get('accountId').hasValidator(Validators.required) ||
- (!activityForm.get('accountId').value && mode === 'update')
- ) {
-
- }
+
+
@for (account of data.accounts; track account) {
@@ -117,7 +113,7 @@
[ngClass]="{
'd-none': !activityForm
.get('searchSymbol')
- .hasValidator(Validators.required)
+ ?.hasValidator(Validators.required)
}"
>
@@ -132,7 +128,7 @@
@@ -232,7 +228,7 @@
@if (
currencyOfAssetProfile ===
- activityForm.get('currencyOfUnitPrice').value &&
+ activityForm.get('currencyOfUnitPrice')?.value &&
currentMarketPrice &&
['BUY', 'SELL'].includes(data.activity.type) &&
isToday(activityForm.get('date')?.value)
@@ -266,7 +262,7 @@
matTextSuffix
[ngClass]="{ 'd-none': !activityForm.get('currency')?.value }"
>
- {{ activityForm.get('currencyOfUnitPrice').value }}
+ {{ activityForm.get('currencyOfUnitPrice')?.value }}
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts
index 5206aacf9..322bcc076 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts
@@ -4,6 +4,8 @@ import { Account } from '@prisma/client';
export interface CreateOrUpdateActivityDialogParams {
accounts: Account[];
- activity: Activity;
+ activity: Omit & {
+ SymbolProfile: Activity['SymbolProfile'] | null;
+ };
user: User;
}
diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
index 582ab8e25..00f0508fe 100644
--- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
@@ -1,5 +1,4 @@
import { GfFileDropDirective } from '@ghostfolio/client/directives/file-drop/file-drop.directive';
-import { DataService } from '@ghostfolio/client/services/data.service';
import { ImportActivitiesService } from '@ghostfolio/client/services/import-activities.service';
import {
CreateAccountWithBalancesDto,
@@ -11,6 +10,7 @@ import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table';
import { GfDialogFooterComponent } from '@ghostfolio/ui/dialog-footer';
import { GfDialogHeaderComponent } from '@ghostfolio/ui/dialog-header';
+import { DataService } from '@ghostfolio/ui/services';
import {
StepperOrientation,
@@ -21,9 +21,10 @@ import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
- Inject,
- OnDestroy
+ DestroyRef,
+ Inject
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import {
FormBuilder,
FormGroup,
@@ -52,7 +53,6 @@ import { cloudUploadOutline, warningOutline } from 'ionicons/icons';
import { isArray, sortBy } from 'lodash';
import ms from 'ms';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject, takeUntil } from 'rxjs';
import { ImportStep } from './enums/import-step';
import { ImportActivitiesDialogParams } from './interfaces/interfaces';
@@ -81,7 +81,7 @@ import { ImportActivitiesDialogParams } from './interfaces/interfaces';
styleUrls: ['./import-activities-dialog.scss'],
templateUrl: 'import-activities-dialog.html'
})
-export class GfImportActivitiesDialogComponent implements OnDestroy {
+export class GfImportActivitiesDialogComponent {
public accounts: CreateAccountWithBalancesDto[] = [];
public activities: Activity[] = [];
public assetProfileForm: FormGroup;
@@ -104,12 +104,11 @@ export class GfImportActivitiesDialogComponent implements OnDestroy {
public tags: CreateTagDto[] = [];
public totalItems: number;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
@Inject(MAT_DIALOG_DATA) public data: ImportActivitiesDialogParams,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private formBuilder: FormBuilder,
public dialogRef: MatDialogRef,
@@ -152,7 +151,7 @@ export class GfImportActivitiesDialogComponent implements OnDestroy {
],
range: 'max'
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ holdings }) => {
this.holdings = sortBy(holdings, ({ name }) => {
return name.toLowerCase();
@@ -237,7 +236,7 @@ export class GfImportActivitiesDialogComponent implements OnDestroy {
dataSource,
symbol
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ activities }) => {
this.activities = activities;
this.dataSource = new MatTableDataSource(activities.reverse());
@@ -284,11 +283,6 @@ export class GfImportActivitiesDialogComponent implements OnDestroy {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private async handleFile({
file,
stepper
diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
index b4de51701..b0282c937 100644
--- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
@@ -1,6 +1,5 @@
import { GfAccountDetailDialogComponent } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.component';
import { AccountDetailDialogParams } from '@ghostfolio/client/components/account-detail-dialog/interfaces/interfaces';
-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 { MAX_TOP_HOLDINGS, UNKNOWN_KEY } from '@ghostfolio/common/config';
@@ -17,12 +16,19 @@ import { Market, MarketAdvanced } from '@ghostfolio/common/types';
import { translate } from '@ghostfolio/ui/i18n';
import { GfPortfolioProportionChartComponent } from '@ghostfolio/ui/portfolio-proportion-chart';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import { GfTopHoldingsComponent } from '@ghostfolio/ui/top-holdings';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { GfWorldMapChartComponent } from '@ghostfolio/ui/world-map-chart';
import { NgClass } from '@angular/common';
-import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
+import {
+ ChangeDetectorRef,
+ Component,
+ DestroyRef,
+ OnInit
+} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatCardModule } from '@angular/material/card';
import { MatDialog } from '@angular/material/dialog';
import { MatProgressBarModule } from '@angular/material/progress-bar';
@@ -36,8 +42,6 @@ import {
} from '@prisma/client';
import { isNumber } from 'lodash';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
imports: [
@@ -54,7 +58,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./allocations-page.scss'],
templateUrl: './allocations-page.html'
})
-export class GfAllocationsPageComponent implements OnDestroy, OnInit {
+export class GfAllocationsPageComponent implements OnInit {
public accounts: {
[id: string]: Pick & {
id: string;
@@ -119,11 +123,10 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
public user: User;
public worldMapChartFormat: string;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog,
private impersonationStorageService: ImpersonationStorageService,
@@ -132,7 +135,7 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
private userService: UserService
) {
this.route.queryParams
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((params) => {
if (params['accountId'] && params['accountDetailDialog']) {
this.openAccountDetailDialog(params['accountId']);
@@ -145,28 +148,27 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
- this.worldMapChartFormat =
- this.hasImpersonationId || this.user.settings.isRestrictedView
- ? `{0}%`
- : `{0} ${this.user?.settings?.baseCurrency}`;
+ this.worldMapChartFormat = this.showValuesInPercentage()
+ ? `{0}%`
+ : `{0} ${this.user?.settings?.baseCurrency}`;
this.isLoading = true;
this.initialize();
this.fetchPortfolioDetails()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((portfolioDetails) => {
this.initialize();
@@ -202,11 +204,6 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
}
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private extractEtfProvider({
assetSubClass,
name
@@ -312,7 +309,7 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
] of Object.entries(this.portfolioDetails.accounts)) {
let value = 0;
- if (this.hasImpersonationId) {
+ if (this.showValuesInPercentage()) {
value = valueInPercentage;
} else {
value = valueInBaseCurrency;
@@ -330,7 +327,7 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
)) {
let value = 0;
- if (this.hasImpersonationId) {
+ if (this.showValuesInPercentage()) {
value = position.allocationInPercentage;
} else {
value = position.valueInBaseCurrency;
@@ -407,17 +404,22 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
}
if (position.holdings.length > 0) {
- for (const holding of position.holdings) {
- const { allocationInPercentage, name, valueInBaseCurrency } =
- holding;
-
- if (this.topHoldingsMap[name]?.value) {
- this.topHoldingsMap[name].value += isNumber(valueInBaseCurrency)
+ for (const {
+ allocationInPercentage,
+ name,
+ valueInBaseCurrency
+ } of position.holdings) {
+ const normalizedAssetName = this.normalizeAssetName(name);
+
+ if (this.topHoldingsMap[normalizedAssetName]?.value) {
+ this.topHoldingsMap[normalizedAssetName].value += isNumber(
+ valueInBaseCurrency
+ )
? valueInBaseCurrency
: allocationInPercentage *
this.portfolioDetails.holdings[symbol].valueInPercentage;
} else {
- this.topHoldingsMap[name] = {
+ this.topHoldingsMap[normalizedAssetName] = {
name,
value: isNumber(valueInBaseCurrency)
? valueInBaseCurrency
@@ -488,7 +490,7 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
] of Object.entries(this.portfolioDetails.platforms)) {
let value = 0;
- if (this.hasImpersonationId) {
+ if (this.showValuesInPercentage()) {
value = valueInPercentage;
} else {
value = valueInBaseCurrency;
@@ -503,7 +505,7 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
this.topHoldings = Object.values(this.topHoldingsMap)
.map(({ name, value }) => {
- if (this.hasImpersonationId || this.user.settings.isRestrictedView) {
+ if (this.showValuesInPercentage()) {
return {
name,
allocationInPercentage: value,
@@ -520,7 +522,10 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
if (holding.holdings.length > 0) {
const currentParentHolding = holding.holdings.find(
(parentHolding) => {
- return parentHolding.name === name;
+ return (
+ this.normalizeAssetName(parentHolding.name) ===
+ this.normalizeAssetName(name)
+ );
}
);
@@ -557,6 +562,14 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
}
}
+ private normalizeAssetName(name: string) {
+ if (!name) {
+ return '';
+ }
+
+ return name.trim().toLowerCase();
+ }
+
private openAccountDetailDialog(aAccountId: string) {
const dialogRef = this.dialog.open<
GfAccountDetailDialogComponent,
@@ -569,7 +582,7 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
hasImpersonationId: this.hasImpersonationId,
hasPermissionToCreateActivity:
!this.hasImpersonationId &&
- hasPermission(this.user?.permissions, permissions.createOrder) &&
+ hasPermission(this.user?.permissions, permissions.createActivity) &&
!this.user?.settings?.isRestrictedView
},
height: this.deviceType === 'mobile' ? '98vh' : '80vh',
@@ -578,9 +591,13 @@ export class GfAllocationsPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.router.navigate(['.'], { relativeTo: this.route });
});
}
+
+ public showValuesInPercentage() {
+ return this.hasImpersonationId || this.user?.settings?.isRestrictedView;
+ }
}
diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html
index 8d5503840..33431ce5d 100644
--- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html
@@ -25,11 +25,9 @@
@@ -49,7 +47,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="platforms"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['id']"
[locale]="user?.settings?.locale"
/>
@@ -71,7 +69,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="holdings"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['currency']"
[locale]="user?.settings?.locale"
/>
@@ -93,7 +91,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="holdings"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['assetClassLabel', 'assetSubClassLabel']"
[locale]="user?.settings?.locale"
/>
@@ -114,7 +112,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="symbols"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['symbol']"
[locale]="user?.settings?.locale"
[showLabels]="deviceType !== 'mobile'"
@@ -138,7 +136,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="sectors"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['name']"
[locale]="user?.settings?.locale"
[maxItems]="10"
@@ -161,7 +159,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="continents"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['name']"
[locale]="user?.settings?.locale"
/>
@@ -183,7 +181,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="marketsAdvanced"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[locale]="user?.settings?.locale"
/>
@@ -206,9 +204,7 @@
@@ -272,7 +268,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="countries"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['name']"
[locale]="user?.settings?.locale"
[maxItems]="10"
@@ -291,7 +287,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="accounts"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['id']"
[locale]="user?.settings?.locale"
(proportionChartClicked)="onAccountChartClicked($event)"
@@ -314,7 +310,7 @@
[baseCurrency]="user?.settings?.baseCurrency"
[colorScheme]="user?.settings?.colorScheme"
[data]="holdings"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="showValuesInPercentage()"
[keys]="['etfProvider']"
[locale]="user?.settings?.locale"
/>
diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
index 63ed3569c..47845ea6f 100644
--- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -1,8 +1,8 @@
import { GfBenchmarkComparatorComponent } from '@ghostfolio/client/components/benchmark-comparator/benchmark-comparator.component';
import { GfInvestmentChartComponent } from '@ghostfolio/client/components/investment-chart/investment-chart.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 { NUMERICAL_PRECISION_THRESHOLD_6_FIGURES } from '@ghostfolio/common/config';
import {
HistoricalDataItem,
InvestmentItem,
@@ -16,6 +16,7 @@ import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import type { AiPromptMode, GroupBy } from '@ghostfolio/common/types';
import { translate } from '@ghostfolio/ui/i18n';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import { GfToggleComponent } from '@ghostfolio/ui/toggle';
import { GfValueComponent } from '@ghostfolio/ui/value';
@@ -23,10 +24,11 @@ import { Clipboard } from '@angular/cdk/clipboard';
import {
ChangeDetectorRef,
Component,
- OnDestroy,
+ DestroyRef,
OnInit,
ViewChild
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
@@ -41,8 +43,6 @@ import { isNumber, sortBy } from 'lodash';
import ms from 'ms';
import { DeviceDetectorService } from 'ngx-device-detector';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
imports: [
@@ -63,7 +63,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./analysis-page.scss'],
templateUrl: './analysis-page.html'
})
-export class GfAnalysisPageComponent implements OnDestroy, OnInit {
+export class GfAnalysisPageComponent implements OnInit {
@ViewChild(MatMenuTrigger) actionsMenuButton!: MatMenuTrigger;
public benchmark: Partial;
@@ -94,18 +94,18 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
public performanceDataItems: HistoricalDataItem[];
public performanceDataItemsInPercentage: HistoricalDataItem[];
public portfolioEvolutionDataLabel = $localize`Investment`;
+ public precision = 2;
public streaks: PortfolioInvestmentsResponse['streaks'];
public top3: PortfolioPosition[];
public unitCurrentStreak: string;
public unitLongestStreak: string;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private clipboard: Clipboard,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private impersonationStorageService: ImpersonationStorageService,
private snackBar: MatSnackBar,
@@ -133,13 +133,13 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -161,11 +161,11 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
public onChangeBenchmark(symbolProfileId: string) {
this.dataService
.putUserSetting({ benchmark: symbolProfileId })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -191,7 +191,7 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
mode,
filters: this.userService.getFilters()
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ prompt }) => {
this.clipboard.copy(prompt);
@@ -205,7 +205,7 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
snackBarRef
.onAction()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
window.open('https://duck.ai', '_blank');
});
@@ -220,11 +220,6 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private fetchDividendsAndInvestments() {
this.isLoadingDividendTimelineChart = true;
this.isLoadingInvestmentTimelineChart = true;
@@ -235,7 +230,7 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
groupBy: this.mode,
range: this.user?.settings?.dateRange
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ dividends }) => {
this.dividendsByGroup = dividends;
@@ -250,7 +245,7 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
groupBy: this.mode,
range: this.user?.settings?.dateRange
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ investments, streaks }) => {
this.investmentsByGroup = investments;
this.streaks = streaks;
@@ -285,7 +280,7 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
filters: this.userService.getFilters(),
range: this.user?.settings?.dateRange
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ chart, firstOrderDate, performance }) => {
this.firstOrderDate = firstOrderDate ?? new Date();
@@ -317,12 +312,21 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
: valueInPercentage
});
}
+
this.performanceDataItemsInPercentage.push({
date,
value: netPerformanceInPercentageWithCurrencyEffect
});
}
+ if (
+ this.deviceType === 'mobile' &&
+ this.performance.currentValueInBaseCurrency >=
+ NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
+ ) {
+ this.precision = 0;
+ }
+
this.isLoadingInvestmentChart = false;
this.updateBenchmarkDataItems();
@@ -335,7 +339,7 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
filters: this.userService.getFilters(),
range: this.user?.settings?.dateRange
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ holdings }) => {
const holdingsSorted = sortBy(
holdings.filter(({ netPerformancePercentWithCurrencyEffect }) => {
@@ -386,7 +390,7 @@ export class GfAnalysisPageComponent implements OnDestroy, OnInit {
range: this.user?.settings?.dateRange,
startDate: this.firstOrderDate
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ marketData }) => {
this.benchmarkDataItems = marketData.map(({ date, value }) => {
return {
diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
index 150caa7d8..c4e8f610b 100644
--- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html
@@ -74,6 +74,72 @@
}
+
+ @if (user?.settings?.isExperimentalFeatures) {
+
+
+
+
+ Total amount
+
+
+
+
+
+
+ Change with currency effect
+
+
+
+
+
+
+ Performance with currency effect
+
+
+
+
+ }
+
@@ -407,7 +475,9 @@
[benchmarkDataLabel]="investmentTimelineDataLabel"
[currency]="user?.settings?.baseCurrency"
[groupBy]="mode"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="
+ hasImpersonationId || user.settings.isRestrictedView
+ "
[isLoading]="isLoadingInvestmentTimelineChart"
[locale]="user?.settings?.locale"
[savingsRate]="savingsRate"
@@ -442,7 +512,9 @@
[benchmarkDataLabel]="dividendTimelineDataLabel"
[currency]="user?.settings?.baseCurrency"
[groupBy]="mode"
- [isInPercent]="hasImpersonationId || user.settings.isRestrictedView"
+ [isInPercentage]="
+ hasImpersonationId || user.settings.isRestrictedView
+ "
[isLoading]="isLoadingDividendTimelineChart"
[locale]="user?.settings?.locale"
/>
diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts
index da1378d22..2f7568982 100644
--- a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts
@@ -1,4 +1,3 @@
-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 {
@@ -9,17 +8,22 @@ import {
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { GfFireCalculatorComponent } from '@ghostfolio/ui/fire-calculator';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule, NgStyle } from '@angular/common';
-import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
+import {
+ ChangeDetectorRef,
+ Component,
+ DestroyRef,
+ OnInit
+} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { FormControl } from '@angular/forms';
import { Big } from 'big.js';
import { DeviceDetectorService } from 'ngx-device-detector';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
imports: [
@@ -36,7 +40,7 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./fire-page.scss'],
templateUrl: './fire-page.html'
})
-export class GfFirePageComponent implements OnDestroy, OnInit {
+export class GfFirePageComponent implements OnInit {
public deviceType: string;
public fireWealth: FireWealth;
public hasImpersonationId: boolean;
@@ -52,11 +56,10 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
public withdrawalRatePerYear: Big;
public withdrawalRatePerYearProjected: Big;
- private unsubscribeSubject = new Subject
();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private impersonationStorageService: ImpersonationStorageService,
private userService: UserService
@@ -68,7 +71,7 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
this.dataService
.fetchPortfolioDetails()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ summary }) => {
this.fireWealth = {
today: {
@@ -92,19 +95,19 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.safeWithdrawalRateControl.valueChanges
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((value) => {
this.onSafeWithdrawalRateChange(Number(value));
});
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -132,11 +135,11 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
public onAnnualInterestRateChange(annualInterestRate: number) {
this.dataService
.putUserSetting({ annualInterestRate })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -163,11 +166,11 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
retirementDate: retirementDate.toISOString(),
projectedTotalAmount: null
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -179,11 +182,11 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
public onSafeWithdrawalRateChange(safeWithdrawalRate: number) {
this.dataService
.putUserSetting({ safeWithdrawalRate })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -198,11 +201,11 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
public onSavingsRateChange(savingsRate: number) {
this.dataService
.putUserSetting({ savingsRate })
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -217,11 +220,11 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
projectedTotalAmount,
retirementDate: null
})
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((user) => {
this.user = user;
@@ -230,11 +233,6 @@ export class GfFirePageComponent implements OnDestroy, OnInit {
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private calculateWithdrawalRates() {
if (this.fireWealth && this.user?.settings?.safeWithdrawalRate) {
this.withdrawalRatePerYear = new Big(
diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts
index 387e3fd0f..eb4935127 100644
--- a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts
@@ -2,7 +2,13 @@ import { UserService } from '@ghostfolio/client/services/user/user.service';
import { TabConfiguration, User } from '@ghostfolio/common/interfaces';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
-import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
+import {
+ ChangeDetectorRef,
+ Component,
+ DestroyRef,
+ OnInit
+} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatTabsModule } from '@angular/material/tabs';
import { RouterModule } from '@angular/router';
import { addIcons } from 'ionicons';
@@ -14,8 +20,6 @@ import {
swapVerticalOutline
} from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
host: { class: 'page has-tabs' },
@@ -24,20 +28,19 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./portfolio-page.scss'],
templateUrl: './portfolio-page.html'
})
-export class PortfolioPageComponent implements OnDestroy, OnInit {
+export class PortfolioPageComponent implements OnInit {
public deviceType: string;
public tabs: TabConfiguration[] = [];
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private userService: UserService
) {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.tabs = [
@@ -87,9 +90,4 @@ export class PortfolioPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts
index 0bf869238..e97fd4876 100644
--- a/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.ts
@@ -1,5 +1,4 @@
import { GfRulesComponent } from '@ghostfolio/client/components/rules/rules.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 { UpdateUserSettingDto } from '@ghostfolio/common/dtos';
@@ -10,9 +9,11 @@ import {
import { User } from '@ghostfolio/common/interfaces/user.interface';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import { NgClass } from '@angular/common';
-import { ChangeDetectorRef, Component } from '@angular/core';
+import { ChangeDetectorRef, Component, DestroyRef } from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import {
@@ -21,7 +22,6 @@ import {
warningOutline
} from 'ionicons/icons';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
-import { Subject, takeUntil } from 'rxjs';
@Component({
imports: [
@@ -48,11 +48,10 @@ export class GfXRayPageComponent {
public statistics: PortfolioReportResponse['xRay']['statistics'];
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private impersonationStorageService: ImpersonationStorageService,
private userService: UserService
) {
@@ -62,13 +61,13 @@ export class GfXRayPageComponent {
public ngOnInit() {
this.impersonationStorageService
.onChangeHasImpersonation()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((impersonationId) => {
this.hasImpersonationId = !!impersonationId;
});
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -91,28 +90,23 @@ export class GfXRayPageComponent {
public onRulesUpdated(event: UpdateUserSettingDto) {
this.dataService
.putUserSetting(event)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.userService
.get(true)
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
this.initializePortfolioReport();
});
}
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
-
private initializePortfolioReport() {
this.isLoading = true;
this.dataService
.fetchPortfolioReport()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ xRay: { categories, statistics } }) => {
this.categories = categories;
this.inactiveRules = this.mergeInactiveRules(categories);
diff --git a/apps/client/src/app/pages/pricing/pricing-page.component.ts b/apps/client/src/app/pages/pricing/pricing-page.component.ts
index aaf0c597b..08c561fc8 100644
--- a/apps/client/src/app/pages/pricing/pricing-page.component.ts
+++ b/apps/client/src/app/pages/pricing/pricing-page.component.ts
@@ -1,4 +1,3 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
@@ -6,15 +5,17 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { translate } from '@ghostfolio/ui/i18n';
import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
+import { DataService } from '@ghostfolio/ui/services';
import { CommonModule } from '@angular/common';
import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatTooltipModule } from '@angular/material/tooltip';
@@ -27,8 +28,8 @@ import {
informationCircleOutline
} from 'ionicons/icons';
import { StringValue } from 'ms';
-import { EMPTY, Subject } from 'rxjs';
-import { catchError, takeUntil } from 'rxjs/operators';
+import { EMPTY } from 'rxjs';
+import { catchError } from 'rxjs/operators';
@Component({
host: { class: 'page' },
@@ -46,7 +47,7 @@ import { catchError, takeUntil } from 'rxjs/operators';
styleUrls: ['./pricing-page.scss'],
templateUrl: './pricing-page.html'
})
-export class GfPricingPageComponent implements OnDestroy, OnInit {
+export class GfPricingPageComponent implements OnInit {
public baseCurrency: string;
public coupon: number;
public couponId: string;
@@ -82,6 +83,7 @@ export class GfPricingPageComponent implements OnDestroy, OnInit {
'frankly',
'Interactive Brokers',
'Mintos',
+ 'Monefit SmartSaver',
'Swissquote',
'VIAC',
'Zak'
@@ -91,11 +93,10 @@ export class GfPricingPageComponent implements OnDestroy, OnInit {
public routerLinkRegister = publicRoutes.register.routerLink;
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
private dataService: DataService,
+ private destroyRef: DestroyRef,
private notificationService: NotificationService,
private userService: UserService
) {
@@ -123,7 +124,7 @@ export class GfPricingPageComponent implements OnDestroy, OnInit {
this.price = subscriptionOffer?.price;
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -160,15 +161,10 @@ export class GfPricingPageComponent implements OnDestroy, OnInit {
return EMPTY;
}),
- takeUntil(this.unsubscribeSubject)
+ takeUntilDestroyed(this.destroyRef)
)
.subscribe(({ sessionUrl }) => {
window.location.href = sessionUrl;
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/pricing/pricing-page.html b/apps/client/src/app/pages/pricing/pricing-page.html
index 3cc0e460a..d755cd303 100644
--- a/apps/client/src/app/pages/pricing/pricing-page.html
+++ b/apps/client/src/app/pages/pricing/pricing-page.html
@@ -195,12 +195,9 @@
- Everything in
-
- Basic ,
- plus :
+ Everything in Basic , plus :
diff --git a/apps/client/src/app/pages/public/public-page.component.ts b/apps/client/src/app/pages/public/public-page.component.ts
index 55e2a122a..ab2bd2b4a 100644
--- a/apps/client/src/app/pages/public/public-page.component.ts
+++ b/apps/client/src/app/pages/public/public-page.component.ts
@@ -1,4 +1,3 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { UNKNOWN_KEY } from '@ghostfolio/common/config';
import { prettifySymbol } from '@ghostfolio/common/helper';
import {
@@ -11,16 +10,22 @@ import { Market } from '@ghostfolio/common/types';
import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table/activities-table.component';
import { GfHoldingsTableComponent } from '@ghostfolio/ui/holdings-table/holdings-table.component';
import { GfPortfolioProportionChartComponent } from '@ghostfolio/ui/portfolio-proportion-chart/portfolio-proportion-chart.component';
+import { DataService } from '@ghostfolio/ui/services';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { GfWorldMapChartComponent } from '@ghostfolio/ui/world-map-chart';
import { CommonModule } from '@angular/common';
+import { HttpErrorResponse } from '@angular/common/http';
import {
ChangeDetectorRef,
Component,
+ computed,
CUSTOM_ELEMENTS_SCHEMA,
+ DestroyRef,
+ inject,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
import { MatTableDataSource } from '@angular/material/table';
@@ -29,8 +34,8 @@ import { AssetClass } from '@prisma/client';
import { StatusCodes } from 'http-status-codes';
import { isNumber } from 'lodash';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { EMPTY, Subject } from 'rxjs';
-import { catchError, takeUntil } from 'rxjs/operators';
+import { EMPTY } from 'rxjs';
+import { catchError } from 'rxjs/operators';
@Component({
host: { class: 'page' },
@@ -50,48 +55,50 @@ import { catchError, takeUntil } from 'rxjs/operators';
templateUrl: './public-page.html'
})
export class GfPublicPageComponent implements OnInit {
- public continents: {
+ protected continents: {
[code: string]: { name: string; value: number };
};
- public countries: {
+ protected countries: {
[code: string]: { name: string; value: number };
};
- public defaultAlias = $localize`someone`;
- public deviceType: string;
- public hasPermissionForSubscription: boolean;
- public holdings: PublicPortfolioResponse['holdings'][string][];
- public info: InfoItem;
- public latestActivitiesDataSource: MatTableDataSource<
+ protected readonly defaultAlias = $localize`someone`;
+ protected readonly deviceType = computed(
+ () => this.deviceDetectorService.deviceInfo().deviceType
+ );
+ protected hasPermissionForSubscription: boolean;
+ protected holdings: PublicPortfolioResponse['holdings'][string][];
+ protected info: InfoItem;
+ protected latestActivitiesDataSource: MatTableDataSource<
PublicPortfolioResponse['latestActivities'][0]
>;
- public markets: {
+ protected markets: {
[key in Market]: { id: Market; valueInPercentage: number };
};
- public pageSize = Number.MAX_SAFE_INTEGER;
- public positions: {
+ protected readonly pageSize = Number.MAX_SAFE_INTEGER;
+ protected positions: {
[symbol: string]: Pick & {
value: number;
};
};
- public publicPortfolioDetails: PublicPortfolioResponse;
- public sectors: {
+ protected publicPortfolioDetails: PublicPortfolioResponse;
+ protected sectors: {
[name: string]: { name: string; value: number };
};
- public symbols: {
+ protected symbols: {
[name: string]: { name: string; symbol: string; value: number };
};
- public UNKNOWN_KEY = UNKNOWN_KEY;
+ protected readonly UNKNOWN_KEY = UNKNOWN_KEY;
+
+ private readonly activatedRoute = inject(ActivatedRoute);
+ private readonly changeDetectorRef = inject(ChangeDetectorRef);
+ private readonly dataService = inject(DataService);
+ private readonly destroyRef = inject(DestroyRef);
+ private readonly deviceDetectorService = inject(DeviceDetectorService);
+ private readonly router = inject(Router);
private accessId: string;
- private unsubscribeSubject = new Subject();
-
- public constructor(
- private activatedRoute: ActivatedRoute,
- private changeDetectorRef: ChangeDetectorRef,
- private dataService: DataService,
- private deviceService: DeviceDetectorService,
- private router: Router
- ) {
+
+ public constructor() {
this.activatedRoute.params.subscribe((params) => {
this.accessId = params['id'];
});
@@ -105,13 +112,11 @@ export class GfPublicPageComponent implements OnInit {
}
public ngOnInit() {
- this.deviceType = this.deviceService.getDeviceInfo().deviceType;
-
this.dataService
.fetchPublicPortfolio(this.accessId)
.pipe(
- takeUntil(this.unsubscribeSubject),
- catchError((error) => {
+ takeUntilDestroyed(this.destroyRef),
+ catchError((error: HttpErrorResponse) => {
if (error.status === StatusCodes.NOT_FOUND) {
console.error(error);
this.router.navigate(['/']);
@@ -133,7 +138,7 @@ export class GfPublicPageComponent implements OnInit {
});
}
- public initializeAnalysisData() {
+ private initializeAnalysisData() {
this.continents = {
[UNKNOWN_KEY]: {
name: UNKNOWN_KEY,
@@ -183,36 +188,38 @@ export class GfPublicPageComponent implements OnInit {
if (this.continents[continent]?.value) {
this.continents[continent].value +=
- weight * position.valueInBaseCurrency;
+ weight * (position.valueInBaseCurrency ?? 0);
} else {
this.continents[continent] = {
name: continent,
value:
weight *
- this.publicPortfolioDetails.holdings[symbol]
- .valueInBaseCurrency
+ (this.publicPortfolioDetails.holdings[symbol]
+ .valueInBaseCurrency ?? 0)
};
}
if (this.countries[code]?.value) {
this.countries[code].value +=
- weight * position.valueInBaseCurrency;
+ weight * (position.valueInBaseCurrency ?? 0);
} else {
this.countries[code] = {
name,
value:
weight *
- this.publicPortfolioDetails.holdings[symbol]
- .valueInBaseCurrency
+ (this.publicPortfolioDetails.holdings[symbol]
+ .valueInBaseCurrency ?? 0)
};
}
}
} else {
this.continents[UNKNOWN_KEY].value +=
- this.publicPortfolioDetails.holdings[symbol].valueInBaseCurrency;
+ this.publicPortfolioDetails.holdings[symbol].valueInBaseCurrency ??
+ 0;
this.countries[UNKNOWN_KEY].value +=
- this.publicPortfolioDetails.holdings[symbol].valueInBaseCurrency;
+ this.publicPortfolioDetails.holdings[symbol].valueInBaseCurrency ??
+ 0;
}
if (position.sectors.length > 0) {
@@ -220,20 +227,22 @@ export class GfPublicPageComponent implements OnInit {
const { name, weight } = sector;
if (this.sectors[name]?.value) {
- this.sectors[name].value += weight * position.valueInBaseCurrency;
+ this.sectors[name].value +=
+ weight * (position.valueInBaseCurrency ?? 0);
} else {
this.sectors[name] = {
name,
value:
weight *
- this.publicPortfolioDetails.holdings[symbol]
- .valueInBaseCurrency
+ (this.publicPortfolioDetails.holdings[symbol]
+ .valueInBaseCurrency ?? 0)
};
}
}
} else {
this.sectors[UNKNOWN_KEY].value +=
- this.publicPortfolioDetails.holdings[symbol].valueInBaseCurrency;
+ this.publicPortfolioDetails.holdings[symbol].valueInBaseCurrency ??
+ 0;
}
}
@@ -242,13 +251,8 @@ export class GfPublicPageComponent implements OnInit {
symbol: prettifySymbol(symbol),
value: isNumber(position.valueInBaseCurrency)
? position.valueInBaseCurrency
- : position.valueInPercentage
+ : (position.valueInPercentage ?? 0)
};
}
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/public/public-page.html b/apps/client/src/app/pages/public/public-page.html
index 079566e0d..44696cd7c 100644
--- a/apps/client/src/app/pages/public/public-page.html
+++ b/apps/client/src/app/pages/public/public-page.html
@@ -73,12 +73,11 @@
@@ -116,7 +115,7 @@
@@ -135,7 +134,7 @@
@@ -155,7 +154,7 @@
@@ -214,7 +213,7 @@
();
-
public constructor(
private dataService: DataService,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog,
private router: Router,
- private tokenStorageService: TokenStorageService
+ private tokenStorageService: TokenStorageService,
+ private userService: UserService
) {
this.info = this.dataService.fetchInfo();
- this.tokenStorageService.signOut();
+ this.userService.signOut();
}
public ngOnInit() {
@@ -93,7 +93,7 @@ export class GfRegisterPageComponent implements OnDestroy, OnInit {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((authToken) => {
if (authToken) {
this.tokenStorageService.saveToken(authToken, true);
@@ -102,9 +102,4 @@ export class GfRegisterPageComponent implements OnDestroy, OnInit {
}
});
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.component.ts b/apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.component.ts
index 36e1ce710..cbbe2d29c 100644
--- a/apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.component.ts
+++ b/apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.component.ts
@@ -1,5 +1,5 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
+import { DataService } from '@ghostfolio/ui/services';
import { ClipboardModule } from '@angular/cdk/clipboard';
import { TextFieldModule } from '@angular/cdk/text-field';
@@ -8,9 +8,11 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
+ DestroyRef,
Inject,
ViewChild
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatCheckboxModule } from '@angular/material/checkbox';
@@ -26,8 +28,6 @@ import {
checkmarkOutline,
copyOutline
} from 'ionicons/icons';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
import { UserAccountRegistrationDialogParams } from './interfaces/interfaces';
@@ -63,12 +63,11 @@ export class GfUserAccountRegistrationDialogComponent {
public routerLinkAboutTermsOfService =
publicRoutes.about.subRoutes.termsOfService.routerLink;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
@Inject(MAT_DIALOG_DATA) public data: UserAccountRegistrationDialogParams,
- private dataService: DataService
+ private dataService: DataService,
+ private destroyRef: DestroyRef
) {
addIcons({ arrowForwardOutline, checkmarkOutline, copyOutline });
}
@@ -76,7 +75,7 @@ export class GfUserAccountRegistrationDialogComponent {
public createAccount() {
this.dataService
.postUser()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ accessToken, authToken, role }) => {
this.accessToken = accessToken;
this.authToken = authToken;
diff --git a/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts b/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts
index 96958dd70..112619239 100644
--- a/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts
+++ b/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts
@@ -1,7 +1,7 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { InfoItem } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
+import { DataService } from '@ghostfolio/ui/services';
import { Component, OnInit } from '@angular/core';
import { RouterModule } from '@angular/router';
diff --git a/apps/client/src/app/pages/resources/overview/resources-overview.component.html b/apps/client/src/app/pages/resources/overview/resources-overview.component.html
index 3a6f18d40..86a334c79 100644
--- a/apps/client/src/app/pages/resources/overview/resources-overview.component.html
+++ b/apps/client/src/app/pages/resources/overview/resources-overview.component.html
@@ -7,7 +7,9 @@
}
diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts
index c4cfd184e..bb4ae3889 100644
--- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts
+++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts
@@ -1,13 +1,12 @@
import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
-import { Component, OnDestroy } from '@angular/core';
+import { Component } from '@angular/core';
import { MatCardModule } from '@angular/material/card';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { chevronForwardOutline } from 'ionicons/icons';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page' },
@@ -16,7 +15,7 @@ import { Subject } from 'rxjs';
styleUrls: ['./personal-finance-tools-page.scss'],
templateUrl: './personal-finance-tools-page.html'
})
-export class PersonalFinanceToolsPageComponent implements OnDestroy {
+export class PersonalFinanceToolsPageComponent {
public pathAlternativeTo =
publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes.product
.path + '-';
@@ -28,14 +27,7 @@ export class PersonalFinanceToolsPageComponent implements OnDestroy {
});
public routerLinkAbout = publicRoutes.about.routerLink;
- private unsubscribeSubject = new Subject
();
-
public constructor() {
addIcons({ chevronForwardOutline });
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
index 511cf672d..14f9554d5 100644
--- a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+++ b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
@@ -1,8 +1,8 @@
-import { DataService } from '@ghostfolio/client/services/data.service';
import { Product } from '@ghostfolio/common/interfaces';
import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
import { translate } from '@ghostfolio/ui/i18n';
+import { DataService } from '@ghostfolio/ui/services';
import { Component, OnInit } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
@@ -43,15 +43,16 @@ export class GfProductPageComponent implements OnInit {
isOpenSource: true,
key: 'ghostfolio',
languages: [
+ 'Chinese (简体中文)',
'Deutsch',
'English',
'Español',
'Français',
'Italiano',
+ 'Korean (한국어)',
'Nederlands',
'Português',
- 'Türkçe',
- '简体中文'
+ 'Türkçe'
],
name: 'Ghostfolio',
origin: $localize`Switzerland`,
diff --git a/apps/client/src/app/pages/resources/resources-page.component.ts b/apps/client/src/app/pages/resources/resources-page.component.ts
index 9db996f57..c25ef00d6 100644
--- a/apps/client/src/app/pages/resources/resources-page.component.ts
+++ b/apps/client/src/app/pages/resources/resources-page.component.ts
@@ -13,7 +13,6 @@ import {
readerOutline
} from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
@Component({
host: { class: 'page has-tabs' },
@@ -47,8 +46,6 @@ export class ResourcesPageComponent implements OnInit {
}
];
- private unsubscribeSubject = new Subject();
-
public constructor(private deviceService: DeviceDetectorService) {
addIcons({ bookOutline, libraryOutline, newspaperOutline, readerOutline });
}
@@ -56,9 +53,4 @@ export class ResourcesPageComponent implements OnInit {
public ngOnInit() {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/user-account/user-account-page.component.ts b/apps/client/src/app/pages/user-account/user-account-page.component.ts
index 7341660f2..24c150408 100644
--- a/apps/client/src/app/pages/user-account/user-account-page.component.ts
+++ b/apps/client/src/app/pages/user-account/user-account-page.component.ts
@@ -6,16 +6,16 @@ import {
ChangeDetectorRef,
Component,
CUSTOM_ELEMENTS_SCHEMA,
- OnDestroy,
+ DestroyRef,
OnInit
} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatTabsModule } from '@angular/material/tabs';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { diamondOutline, keyOutline, settingsOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject, takeUntil } from 'rxjs';
@Component({
host: { class: 'page has-tabs' },
@@ -25,20 +25,19 @@ import { Subject, takeUntil } from 'rxjs';
styleUrls: ['./user-account-page.scss'],
templateUrl: './user-account-page.html'
})
-export class GfUserAccountPageComponent implements OnDestroy, OnInit {
+export class GfUserAccountPageComponent implements OnInit {
public deviceType: string;
public tabs: TabConfiguration[] = [];
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private userService: UserService
) {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.user = state.user;
@@ -73,9 +72,4 @@ export class GfUserAccountPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/webauthn/webauthn-page.component.ts b/apps/client/src/app/pages/webauthn/webauthn-page.component.ts
index 74631eeca..8e7e58fd1 100644
--- a/apps/client/src/app/pages/webauthn/webauthn-page.component.ts
+++ b/apps/client/src/app/pages/webauthn/webauthn-page.component.ts
@@ -2,12 +2,16 @@ import { TokenStorageService } from '@ghostfolio/client/services/token-storage.s
import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service';
import { GfLogoComponent } from '@ghostfolio/ui/logo';
-import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
+import {
+ ChangeDetectorRef,
+ Component,
+ DestroyRef,
+ OnInit
+} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatButtonModule } from '@angular/material/button';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { Router } from '@angular/router';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
host: { class: 'page' },
@@ -16,13 +20,12 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./webauthn-page.scss'],
templateUrl: './webauthn-page.html'
})
-export class GfWebauthnPageComponent implements OnDestroy, OnInit {
+export class GfWebauthnPageComponent implements OnInit {
public hasError = false;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
+ private destroyRef: DestroyRef,
private router: Router,
private tokenStorageService: TokenStorageService,
private webAuthnService: WebAuthnService
@@ -35,7 +38,7 @@ export class GfWebauthnPageComponent implements OnDestroy, OnInit {
public deregisterDevice() {
this.webAuthnService
.deregister()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(() => {
this.router.navigate(['/']);
});
@@ -46,7 +49,7 @@ export class GfWebauthnPageComponent implements OnDestroy, OnInit {
this.webAuthnService
.login()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(
({ authToken }) => {
this.tokenStorageService.saveToken(authToken, false);
@@ -59,9 +62,4 @@ export class GfWebauthnPageComponent implements OnDestroy, OnInit {
}
);
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/pages/zen/zen-page.component.ts b/apps/client/src/app/pages/zen/zen-page.component.ts
index 280f33c25..633f15885 100644
--- a/apps/client/src/app/pages/zen/zen-page.component.ts
+++ b/apps/client/src/app/pages/zen/zen-page.component.ts
@@ -2,15 +2,19 @@ import { UserService } from '@ghostfolio/client/services/user/user.service';
import { TabConfiguration, User } from '@ghostfolio/common/interfaces';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
-import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
+import {
+ ChangeDetectorRef,
+ Component,
+ DestroyRef,
+ OnInit
+} from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatTabsModule } from '@angular/material/tabs';
import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { addIcons } from 'ionicons';
import { albumsOutline, analyticsOutline } from 'ionicons/icons';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Subject } from 'rxjs';
-import { takeUntil } from 'rxjs/operators';
@Component({
host: { class: 'page has-tabs' },
@@ -19,20 +23,19 @@ import { takeUntil } from 'rxjs/operators';
styleUrls: ['./zen-page.scss'],
templateUrl: './zen-page.html'
})
-export class GfZenPageComponent implements OnDestroy, OnInit {
+export class GfZenPageComponent implements OnInit {
public deviceType: string;
public tabs: TabConfiguration[] = [];
public user: User;
- private unsubscribeSubject = new Subject();
-
public constructor(
private changeDetectorRef: ChangeDetectorRef,
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private userService: UserService
) {
this.userService.stateChanged
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((state) => {
if (state?.user) {
this.tabs = [
@@ -59,9 +62,4 @@ export class GfZenPageComponent implements OnDestroy, OnInit {
public ngOnInit() {
this.deviceType = this.deviceService.getDeviceInfo().deviceType;
}
-
- public ngOnDestroy() {
- this.unsubscribeSubject.next();
- this.unsubscribeSubject.complete();
- }
}
diff --git a/apps/client/src/app/services/import-activities.service.ts b/apps/client/src/app/services/import-activities.service.ts
index 94d8470f7..55b5c44d5 100644
--- a/apps/client/src/app/services/import-activities.service.ts
+++ b/apps/client/src/app/services/import-activities.service.ts
@@ -97,9 +97,7 @@ export class ImportActivitiesService {
isin: null,
marketData: [],
name: symbol,
- scraperConfiguration: null,
sectors: [],
- symbolMapping: {},
url: null
});
}
diff --git a/apps/client/src/app/services/token-storage.service.ts b/apps/client/src/app/services/token-storage.service.ts
index 5b9a29a08..f54aab828 100644
--- a/apps/client/src/app/services/token-storage.service.ts
+++ b/apps/client/src/app/services/token-storage.service.ts
@@ -1,19 +1,11 @@
-import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service';
-
import { Injectable } from '@angular/core';
import { KEY_TOKEN } from './settings-storage.service';
-import { UserService } from './user/user.service';
@Injectable({
providedIn: 'root'
})
export class TokenStorageService {
- public constructor(
- private userService: UserService,
- private webAuthnService: WebAuthnService
- ) {}
-
public getToken(): string {
return (
window.sessionStorage.getItem(KEY_TOKEN) ||
@@ -25,23 +17,7 @@ export class TokenStorageService {
if (staySignedIn) {
window.localStorage.setItem(KEY_TOKEN, token);
}
- window.sessionStorage.setItem(KEY_TOKEN, token);
- }
-
- public signOut() {
- const utmSource = window.localStorage.getItem('utm_source');
- if (this.webAuthnService.isEnabled()) {
- this.webAuthnService.deregister().subscribe();
- }
-
- window.localStorage.clear();
- window.sessionStorage.clear();
-
- this.userService.remove();
-
- if (utmSource) {
- window.localStorage.setItem('utm_source', utmSource);
- }
+ window.sessionStorage.setItem(KEY_TOKEN, token);
}
}
diff --git a/apps/client/src/app/services/user/user.service.ts b/apps/client/src/app/services/user/user.service.ts
index bd9d7d04c..e92eb6bd4 100644
--- a/apps/client/src/app/services/user/user.service.ts
+++ b/apps/client/src/app/services/user/user.service.ts
@@ -1,15 +1,17 @@
+import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service';
import { Filter, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { HttpClient } from '@angular/common/http';
-import { Injectable } from '@angular/core';
+import { DestroyRef, Injectable } from '@angular/core';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { MatDialog } from '@angular/material/dialog';
import { ObservableStore } from '@codewithdan/observable-store';
import { parseISO } from 'date-fns';
import { DeviceDetectorService } from 'ngx-device-detector';
-import { Observable, Subject, of } from 'rxjs';
+import { Observable, of } from 'rxjs';
import { throwError } from 'rxjs';
-import { catchError, map, takeUntil } from 'rxjs/operators';
+import { catchError, map } from 'rxjs/operators';
import { SubscriptionInterstitialDialogParams } from '../../components/subscription-interstitial-dialog/interfaces/interfaces';
import { GfSubscriptionInterstitialDialogComponent } from '../../components/subscription-interstitial-dialog/subscription-interstitial-dialog.component';
@@ -21,12 +23,13 @@ import { UserStoreState } from './user-store.state';
})
export class UserService extends ObservableStore {
private deviceType: string;
- private unsubscribeSubject = new Subject();
public constructor(
+ private destroyRef: DestroyRef,
private deviceService: DeviceDetectorService,
private dialog: MatDialog,
- private http: HttpClient
+ private http: HttpClient,
+ private webAuthnService: WebAuthnService
) {
super({ trackStateHistory: true });
@@ -93,10 +96,40 @@ export class UserService extends ObservableStore {
return this.getFilters().length > 0;
}
- public remove() {
+ public reset() {
this.setState({ user: null }, UserStoreActions.RemoveUser);
}
+ public signOut() {
+ const utmSource = window.localStorage.getItem('utm_source');
+
+ if (this.webAuthnService.isEnabled()) {
+ this.webAuthnService.deregister().subscribe();
+ }
+
+ window.localStorage.clear();
+ window.sessionStorage.clear();
+
+ void this.clearAllCookies();
+
+ this.reset();
+
+ if (utmSource) {
+ window.localStorage.setItem('utm_source', utmSource);
+ }
+ }
+
+ private async clearAllCookies() {
+ if (!('cookieStore' in window)) {
+ console.warn('Cookie Store API not available in this browser');
+ return;
+ }
+
+ const cookies = await cookieStore.getAll();
+
+ await Promise.all(cookies.map(({ name }) => cookieStore.delete(name)));
+ }
+
private fetchUser(): Observable {
return this.http.get('/api/v1/user').pipe(
map((user) => {
@@ -131,7 +164,7 @@ export class UserService extends ObservableStore {
dialogRef
.afterClosed()
- .pipe(takeUntil(this.unsubscribeSubject))
+ .pipe(takeUntilDestroyed(this.destroyRef))
.subscribe();
}
diff --git a/apps/client/src/assets/images/sponsors/logo-lambdatest.png b/apps/client/src/assets/images/sponsors/logo-lambdatest.png
deleted file mode 100644
index 9e05b1cde..000000000
Binary files a/apps/client/src/assets/images/sponsors/logo-lambdatest.png and /dev/null differ
diff --git a/apps/client/src/assets/images/sponsors/logo-testmu-dark.svg b/apps/client/src/assets/images/sponsors/logo-testmu-dark.svg
new file mode 100644
index 000000000..90fbbdd6d
--- /dev/null
+++ b/apps/client/src/assets/images/sponsors/logo-testmu-dark.svg
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/client/src/assets/images/sponsors/logo-testmu-light.svg b/apps/client/src/assets/images/sponsors/logo-testmu-light.svg
new file mode 100644
index 000000000..e925efd5e
--- /dev/null
+++ b/apps/client/src/assets/images/sponsors/logo-testmu-light.svg
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/client/src/assets/terms-of-service.md b/apps/client/src/assets/terms-of-service.md
index d2a6e598d..4f62eee5b 100644
--- a/apps/client/src/assets/terms-of-service.md
+++ b/apps/client/src/assets/terms-of-service.md
@@ -51,8 +51,18 @@ This Agreement constitutes the entire agreement between the User and LICENSEE re
LICENSEE reserves the right to modify this Agreement at any time. Users are encouraged to review this Agreement periodically for updates. Continued use of the Service after changes to this Agreement constitutes acceptance of the modified terms.
+## Paid Plans
+
+LICENSEE offers paid plans (such as [Ghostfolio Premium](https://ghostfol.io/en/pricing)) for a fixed term as specified at the time of purchase. Paid plans do not renew automatically.
+
+LICENSEE may change the features or pricing of paid plans. For any existing paid plan, if a material feature is removed, LICENSEE may, acting in good faith, offer a pro-rata refund for the unused portion of the term upon the User’s request.
+
+## Refund Policy
+
+LICENSEE may offer a free trial of paid plans. Users are encouraged to use any available free trial to evaluate the Service before purchasing. While all purchases are final, a refund may be requested within fourteen (14) days of the purchase date by contacting LICENSEE. Requests after this period will not be honored.
+
By accessing or using the Service, or downloading data provided by the Service, the User acknowledges that they have read, understood, and agreed to be bound by this Terms of Service Agreement.
For any questions or concerns regarding this Agreement, please contact us [here](https://ghostfol.io/en/about).
-Date of Last Revision: March 29, 2025
+Date of Last Revision: April 6, 2026
diff --git a/apps/client/src/environments/environment.prod.ts b/apps/client/src/environments/environment.prod.ts
index 6f1d6b92d..f3ded619e 100644
--- a/apps/client/src/environments/environment.prod.ts
+++ b/apps/client/src/environments/environment.prod.ts
@@ -1,5 +1,6 @@
-export const environment = {
+import type { GfEnvironment } from '@ghostfolio/ui/environment';
+
+export const environment: GfEnvironment = {
lastPublish: '{BUILD_TIMESTAMP}',
- production: true,
- stripePublicKey: ''
+ production: true
};
diff --git a/apps/client/src/environments/environment.ts b/apps/client/src/environments/environment.ts
index 0a4d51d98..1b9efe2be 100644
--- a/apps/client/src/environments/environment.ts
+++ b/apps/client/src/environments/environment.ts
@@ -1,11 +1,12 @@
+import type { GfEnvironment } from '@ghostfolio/ui/environment';
+
// This file can be replaced during build by using the `fileReplacements` array.
// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
// The list of file replacements can be found in `angular.json`.
-export const environment = {
+export const environment: GfEnvironment = {
lastPublish: null,
- production: false,
- stripePublicKey: ''
+ production: false
};
/*
diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf
index 762f8f73a..009d561a4 100644
--- a/apps/client/src/locales/messages.ca.xlf
+++ b/apps/client/src/locales/messages.ca.xlf
@@ -38,7 +38,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -102,7 +102,7 @@
El risc d’assumir pèrdues en les inversions és substancial. No és recomanable invertir diners que pugui necessitar a curt termini.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -295,7 +295,7 @@
please
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -347,7 +347,7 @@
Revocar
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -358,20 +358,12 @@
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
Realment vol revocar aquest accés?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -387,7 +379,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -403,7 +395,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -411,7 +403,7 @@
Balanç de Caixa
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -435,7 +427,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -447,7 +439,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -463,15 +455,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -479,7 +471,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -495,7 +487,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -507,7 +499,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -519,15 +511,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -539,15 +531,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -555,23 +547,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -595,19 +587,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -623,15 +615,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -639,11 +635,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -655,7 +651,7 @@
Realment vol suprimir aquest compte?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -663,7 +659,7 @@
Tipus
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -675,7 +671,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -683,7 +683,7 @@
Perfil d’Actiu
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -691,11 +691,11 @@
Dades Històriques de Mercat
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -703,7 +703,7 @@
Origen de les Dades
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -715,7 +715,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -727,7 +727,7 @@
Prioritat
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -735,7 +735,7 @@
Intents
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -743,7 +743,7 @@
Creat
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -751,7 +751,7 @@
Finalitzat
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -759,11 +759,11 @@
Estat
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -779,7 +779,7 @@
Aturar Processos
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -787,7 +787,7 @@
Veure les Dades
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -795,7 +795,7 @@
Veure Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -803,7 +803,7 @@
Executar Procés
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -811,7 +811,7 @@
Suprimir Procés
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -827,7 +827,7 @@
Data
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -835,7 +835,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -863,7 +863,7 @@
Punts de referència
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -871,19 +871,11 @@
Divises
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
-
-
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
+ 95
@@ -891,7 +883,7 @@
ETFs sense País
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -899,7 +891,7 @@
ETFs sense Sector
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -907,7 +899,7 @@
Filtra per...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -927,7 +919,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -947,7 +939,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -1015,7 +1007,7 @@
Oooh! No s’han pogut recopilar les dades históriques.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -1023,7 +1015,7 @@
El preu de mercat actual és
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -1047,7 +1039,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -1079,7 +1071,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -1091,7 +1083,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1099,7 +1091,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -1111,7 +1103,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1123,7 +1115,7 @@
Mapatge de Símbols
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -1139,7 +1131,7 @@
Configuració del Proveïdor de Dades
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -1147,7 +1139,7 @@
Prova
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -1155,11 +1147,11 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -1175,7 +1167,7 @@
Asset profile has been saved
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -1183,7 +1175,7 @@
Notes
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -1191,7 +1183,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -1235,7 +1227,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -1243,7 +1235,7 @@
Està segur qeu vol eliminar aquest cupó?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -1251,7 +1243,7 @@
Està segur que vol eliminar aquest missatge del sistema?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -1259,7 +1251,7 @@
Està segur que vol depurar el cache?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -1267,7 +1259,7 @@
Si us plau, afegeixi el seu missatge del sistema:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -1283,7 +1275,7 @@
Número d’Usuaris
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -1291,7 +1283,7 @@
Número d’Activitats
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -1299,7 +1291,7 @@
per Usuari
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -1315,7 +1307,7 @@
Registrar Usuari
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -1323,7 +1315,7 @@
Mode Només Lecutra
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -1331,11 +1323,11 @@
Recollida de Dades
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -1343,7 +1335,7 @@
Missatge del Sistema
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -1351,7 +1343,7 @@
Estableix el Missatge
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -1359,7 +1351,7 @@
Coupons
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -1367,7 +1359,7 @@
Afegir
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -1379,7 +1371,7 @@
Ordre
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -1387,7 +1379,7 @@
Depurar el Cache
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -1403,7 +1395,15 @@
Està segur que vol eliminar aquesta plataforma?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
@@ -1427,7 +1427,7 @@
Current year
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -1443,7 +1443,7 @@
Plataformes
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -1451,7 +1451,7 @@
Etiquetes
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1475,7 +1475,7 @@
Està segur que vol eliminar aquesta etiqueta?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -1499,7 +1499,7 @@
Està segur que vol eliminar aquest usuari?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -1535,7 +1535,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -1567,11 +1567,11 @@
Could not validate form
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -1607,7 +1607,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -1619,7 +1619,7 @@
Punt de Referència
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -1659,7 +1659,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -1675,7 +1675,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -1695,15 +1695,15 @@
Oooh! El testimoni de seguretat és incorrecte.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -1731,15 +1731,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1759,7 +1759,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -1767,7 +1767,7 @@
Indonèsia
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -1783,7 +1783,7 @@
Informar d’un Problema amb les Dades
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1791,7 +1791,7 @@
en Actiiu
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -1799,7 +1799,7 @@
Finalitzat
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -1823,7 +1823,7 @@
Gestionar Activitats
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -1831,15 +1831,15 @@
Por
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -1847,15 +1847,15 @@
Cobdícia
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -1955,7 +1955,7 @@
Current week
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1975,7 +1975,7 @@
Import total
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -2003,7 +2003,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -2047,7 +2047,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -2111,7 +2111,7 @@
Rendiment brut absolut
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -2119,11 +2119,11 @@
Rendiment net absolut
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -2131,11 +2131,11 @@
Rendiment net
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -2143,7 +2143,7 @@
Actius totals
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -2151,7 +2151,7 @@
Actius
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -2159,7 +2159,7 @@
Poder adquisitiu
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -2167,7 +2167,7 @@
Exclòs de l’anàlisi
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -2175,7 +2175,7 @@
Passius
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -2187,7 +2187,7 @@
Valor net
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -2195,7 +2195,7 @@
Rendiment anualitzat
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -2235,7 +2235,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -2255,7 +2255,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -2271,7 +2271,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -2287,7 +2287,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -2299,7 +2299,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -2315,7 +2315,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -2355,7 +2355,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -2363,11 +2363,11 @@
YTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -2375,11 +2375,11 @@
1 any
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -2387,11 +2387,19 @@
5 anys
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -2399,11 +2407,11 @@
Màx
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -2411,7 +2419,7 @@
Vaja! No s’ha pogut concedir l’accés.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -2419,7 +2427,7 @@
Argentina
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -2455,11 +2463,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -2519,7 +2527,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -2547,7 +2555,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -2555,7 +2563,7 @@
De debò vols tancar el teu compte de Ghostfolio?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -2563,7 +2571,7 @@
De debò vols eliminar aquest mètode d’inici de sessió?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -2571,7 +2579,7 @@
Include in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -2579,7 +2587,7 @@
Ups! Hi ha hagut un error en configurar l’autenticació biomètrica.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -2587,7 +2595,7 @@
Vista del presentador
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -2595,7 +2603,7 @@
Protecció per a informació sensible com ara rendiments absoluts i valors de quantitat
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -2627,11 +2635,11 @@
Localització
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -2639,7 +2647,7 @@
Format de data i número
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -2647,7 +2655,7 @@
Aparença
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -2655,7 +2663,7 @@
Llum
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -2663,7 +2671,7 @@
Fosc
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -2671,7 +2679,7 @@
Mode Zen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -2683,7 +2691,7 @@
Experiència sense distraccions per a temps turbulents
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -2699,7 +2707,7 @@
Autenticació biomètrica
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -2707,7 +2715,7 @@
Inicieu la sessió amb l’empremta digital
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -2715,7 +2723,7 @@
Característiques experimentals
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -2723,7 +2731,7 @@
Doneu un cop d’ull a les properes funcionalitats
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -2731,7 +2739,7 @@
Exporta dades
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -2739,7 +2747,7 @@
Zona de perill
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -2747,7 +2755,7 @@
Tanca el compte
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -2771,7 +2779,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -2791,7 +2799,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2807,7 +2815,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -2943,11 +2951,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -3047,7 +3055,7 @@
Dades de mercat
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -3081,6 +3089,10 @@
Overview
Visió general
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -3099,11 +3111,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -3227,11 +3239,11 @@
Could not parse scraper configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -3247,7 +3259,7 @@
Com que ja has iniciat sessió, no pots accedir al compte de demostració.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -3275,7 +3287,7 @@
General
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -3283,7 +3295,7 @@
Núvol
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -3295,7 +3307,7 @@
Autoallotjament
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -3416,7 +3428,7 @@
Programari de codi obert
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -3428,7 +3440,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -3440,11 +3452,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -3496,7 +3508,7 @@
Mercats
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -3520,7 +3532,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -3912,7 +3924,7 @@
with your university e-mail address
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -3968,7 +3980,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -4004,7 +4016,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -4024,11 +4036,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -4040,7 +4052,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -4108,7 +4120,7 @@
Actualitzar el saldo d’efectiu
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -4116,11 +4128,11 @@
Preu unitari
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -4132,11 +4144,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -4144,15 +4156,15 @@
Importar dividends
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -4160,7 +4172,7 @@
S’estan important dades...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -4168,7 +4180,7 @@
La importació s’ha completat
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -4184,7 +4196,7 @@
S’estan validant les dades...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -4296,7 +4308,7 @@
Per plataforma
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -4304,7 +4316,7 @@
Per Moneda
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -4312,7 +4324,7 @@
Per classe d’actiu
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -4320,7 +4332,7 @@
Per Holding
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -4328,7 +4340,7 @@
Per sectors
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -4336,7 +4348,7 @@
Per continent
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -4344,7 +4356,7 @@
Per Mercat
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -4352,11 +4364,11 @@
Regions
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -4376,11 +4388,11 @@
Mercats desenvolupats
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
@@ -4388,7 +4400,7 @@
Latest activities
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -4396,11 +4408,11 @@
Mercats emergents
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -4408,11 +4420,11 @@
Altres Mercats
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -4420,7 +4432,7 @@
Per País
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -4428,7 +4440,7 @@
Per compte
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -4436,7 +4448,7 @@
Pel proveïdor d’ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
@@ -4444,7 +4456,7 @@
Per ETF Holding
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -4452,7 +4464,7 @@
Aproximació basada en les participacions principals de cada ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -4472,7 +4484,7 @@
Looking for a student discount?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -4488,7 +4500,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -4496,7 +4508,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -4528,7 +4540,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
@@ -4536,7 +4548,7 @@
here
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
@@ -4560,7 +4572,7 @@
Close Holding
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -4568,7 +4580,7 @@
Rendiment absolut dels actius
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -4576,7 +4588,7 @@
Rendiment de l’actiu
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -4584,7 +4596,7 @@
Rendiment absolut de la moneda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -4592,7 +4604,7 @@
Rendiment de la moneda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -4600,7 +4612,7 @@
A dalt
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -4608,7 +4620,7 @@
A baix
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -4616,7 +4628,7 @@
Evolució de la cartera
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -4624,7 +4636,7 @@
Cronologia de la inversió
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -4632,7 +4644,7 @@
Ratxa actual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4640,7 +4652,7 @@
Ratxa més llarga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4648,7 +4660,7 @@
Cronologia de dividends
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -4824,7 +4836,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -4840,7 +4852,7 @@
Suport per correu electrònic i xat
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -4848,7 +4860,7 @@
Pagament únic, sense renovació automàtica.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
@@ -4856,11 +4868,11 @@
Could not save asset profile
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -4868,7 +4880,7 @@
És gratuït.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -4884,7 +4896,7 @@
Continents
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -4892,7 +4904,7 @@
Vols refinar la teva estratègia d’inversió personal ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -4908,7 +4920,7 @@
Ghostfolio us permet fer un seguiment de la vostra riquesa.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -4938,6 +4950,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Personal Finance Tools
@@ -5001,11 +5017,11 @@
Suïssa
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -5013,7 +5029,7 @@
Global
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -5281,7 +5297,7 @@
Pertinença
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -5297,7 +5313,7 @@
Request it
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -5349,7 +5365,7 @@
Realment voleu eliminar el saldo d’aquest compte?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -5357,11 +5373,11 @@
Activitats d’exportació
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -5369,11 +5385,11 @@
Exporta esborranys com a ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -5381,7 +5397,7 @@
Suprimeix les activitats
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -5389,7 +5405,7 @@
Esborrany
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -5397,7 +5413,7 @@
Clonar
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -5405,7 +5421,7 @@
Exporta l’esborrany com a ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -5413,7 +5429,7 @@
De veritat vols suprimir aquestes activitats?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -5421,7 +5437,7 @@
Realment vols suprimir aquesta activitat?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -5429,7 +5445,7 @@
Setmana fins avui
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5437,11 +5453,11 @@
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5449,7 +5465,7 @@
Mes fins a la data
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5457,11 +5473,11 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5469,7 +5485,7 @@
Any fins a la data
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5477,7 +5493,7 @@
any
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -5489,7 +5505,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -5497,11 +5513,11 @@
anys
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -5509,7 +5525,7 @@
Perfils d’actius
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -5585,7 +5601,7 @@
contact us
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -5596,6 +5612,14 @@
119
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Dades de mercat proporcionades per
@@ -5649,7 +5673,7 @@
Dipòsit
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -5661,11 +5685,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -5677,7 +5701,7 @@
Estalvi
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -5685,11 +5709,11 @@
Assignació
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5705,7 +5729,7 @@
Mostra-ho tot
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -5717,7 +5741,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -5749,7 +5773,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -5757,7 +5781,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -5781,7 +5805,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -5789,7 +5813,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -5841,7 +5865,7 @@
Fons d’emergència
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -5881,7 +5905,7 @@
Japó
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -5917,7 +5941,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -5928,6 +5952,14 @@
27
+
+ No Activities
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Provisió de jubilació
@@ -5936,6 +5968,14 @@
28
+
+ Everything in Basic , plus
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Satèl·lit
@@ -5949,7 +5989,7 @@
Símbol
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -5965,7 +6005,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -6001,7 +6041,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -6037,11 +6077,11 @@
Comissió
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -6081,7 +6121,7 @@
Efectiu
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -6137,7 +6177,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -6169,7 +6209,7 @@
Fons d’inversió
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -6177,7 +6217,7 @@
Metall preciós
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -6185,7 +6225,7 @@
Capital privat
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -6193,7 +6233,7 @@
Acció
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -6201,7 +6241,7 @@
Àfrica
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -6209,7 +6249,7 @@
Àsia
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -6217,7 +6257,7 @@
Europa
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -6225,7 +6265,7 @@
Amèrica del Nord
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -6241,7 +6281,7 @@
Oceania
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -6249,7 +6289,7 @@
Amèrica del Sud
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -6257,7 +6297,7 @@
Por extrema
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -6265,7 +6305,7 @@
Avarícia extrema
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -6273,7 +6313,7 @@
Neutral
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -6281,7 +6321,7 @@
Vàlid fins a
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -6301,11 +6341,11 @@
No hi ha dades disponibles
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -6313,11 +6353,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -6337,7 +6377,7 @@
Alternativa
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6345,7 +6385,7 @@
Aplicació
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6353,7 +6393,7 @@
Pressupost
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6369,47 +6409,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6417,7 +6461,7 @@
Oficina familiar
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6425,7 +6469,7 @@
Investor
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6437,7 +6481,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6449,7 +6493,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6457,7 +6501,7 @@
Privacy
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6465,7 +6509,7 @@
Software
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6473,7 +6517,7 @@
Tool
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6481,7 +6525,7 @@
User Experience
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6489,7 +6533,7 @@
Wealth
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6497,7 +6541,7 @@
Wealth Management
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6505,7 +6549,7 @@
Australia
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6513,7 +6557,7 @@
Austria
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6521,7 +6565,7 @@
Belgium
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6529,7 +6573,7 @@
Bulgaria
libs/ui/src/lib/i18n.ts
- 83
+ 84
@@ -6537,7 +6581,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6545,7 +6589,7 @@
Canada
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6553,7 +6597,7 @@
Czech Republic
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6561,7 +6605,7 @@
Finland
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6569,7 +6613,7 @@
France
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6577,7 +6621,7 @@
Germany
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6585,7 +6629,7 @@
India
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6593,7 +6637,7 @@
Italy
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6601,7 +6645,7 @@
Netherlands
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6609,7 +6653,7 @@
New Zealand
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6617,7 +6661,7 @@
Poland
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6625,7 +6669,7 @@
Romania
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6633,7 +6677,7 @@
South Africa
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6641,7 +6685,7 @@
Thailand
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6649,7 +6693,7 @@
United States
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6657,7 +6701,7 @@
Error
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6681,7 +6725,7 @@
Oops! Could not update access.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
@@ -6709,7 +6753,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6741,7 +6785,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6749,7 +6793,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6761,7 +6805,7 @@
Close
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6787,13 +6831,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6805,7 +6853,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6829,7 +6877,7 @@
Portfolio Snapshot
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6845,7 +6893,7 @@
If you plan to open an account at
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6896,6 +6944,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
From the beginning
@@ -6957,7 +7013,7 @@
to use our referral link and get a Ghostfolio Premium membership for one year
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7061,7 +7117,7 @@
Set API key
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7077,7 +7133,7 @@
Ukraine
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7097,7 +7153,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7113,7 +7169,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7167,7 +7223,7 @@
of
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7175,7 +7231,7 @@
daily requests
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7183,7 +7239,7 @@
Remove API key
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7191,7 +7247,7 @@
Do you really want to delete the API key?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7199,7 +7255,7 @@
Please enter your Ghostfolio API key:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7211,7 +7267,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7283,7 +7339,7 @@
Save
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7319,11 +7375,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7335,7 +7391,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7359,7 +7415,15 @@
Please enter your Ghostfolio API key.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7375,7 +7439,7 @@
Link has been copied to the clipboard
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7383,7 +7447,7 @@
Lazy
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7391,7 +7455,7 @@
Instant
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7399,7 +7463,7 @@
Default Market Price
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7407,7 +7471,7 @@
Mode
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7415,7 +7479,7 @@
Selector
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7423,7 +7487,7 @@
HTTP Request Headers
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7431,7 +7495,7 @@
end of day
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7439,7 +7503,7 @@
real-time
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7463,11 +7527,11 @@
Change
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7479,19 +7543,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -7518,12 +7582,20 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Armenia
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7531,7 +7603,7 @@
British Virgin Islands
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7539,7 +7611,7 @@
Singapore
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7587,11 +7659,11 @@
Security token
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7599,7 +7671,7 @@
Do you really want to generate a new security token for this user?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
@@ -7607,7 +7679,7 @@
Find account, holding or page...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7623,7 +7695,7 @@
United Kingdom
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7672,7 +7744,7 @@
( ) is already in use.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7680,7 +7752,7 @@
An error occurred while updating to ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7696,7 +7768,7 @@
with API access for
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7744,7 +7816,7 @@
someone
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7817,7 +7889,7 @@
Demo user account has been synced.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7825,7 +7897,7 @@
Sync Demo User Account
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7852,7 +7924,7 @@
150
-
+
Fee Ratio
Fee Ratio
@@ -7860,17 +7932,17 @@
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7995,7 +8067,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8007,7 +8079,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8031,7 +8103,7 @@
Current month
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8039,11 +8111,7 @@
new
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8200,7 +8268,7 @@
Do you really want to generate a new security token?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8224,7 +8292,7 @@
Stocks
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8236,7 +8304,7 @@
Cryptocurrencies
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8256,7 +8324,7 @@
Manage Asset Profile
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8676,7 +8744,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf
index 9a429cfad..e9d54a973 100644
--- a/apps/client/src/locales/messages.de.xlf
+++ b/apps/client/src/locales/messages.de.xlf
@@ -26,7 +26,7 @@
Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -42,7 +42,7 @@
bitte
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -50,7 +50,7 @@
Typ
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -62,7 +62,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -78,7 +82,7 @@
Widerrufen
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -89,20 +93,12 @@
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
Möchtest du diese Zugangsberechtigung wirklich widerrufen?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -114,7 +110,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -126,7 +122,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -142,15 +138,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -158,7 +154,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -174,7 +170,7 @@
Gesamt
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -186,15 +182,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -202,23 +198,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -242,19 +238,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -270,15 +266,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -286,11 +286,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -302,7 +302,7 @@
Möchtest du dieses Konto wirklich löschen?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -310,7 +310,7 @@
Jobs löschen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -318,7 +318,7 @@
Datenquelle
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -330,7 +330,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -342,7 +342,7 @@
Versuche
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -350,7 +350,7 @@
Erstellt
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -358,7 +358,7 @@
Abgeschlossen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -366,11 +366,11 @@
Status
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -386,7 +386,7 @@
Anlageprofile
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -398,11 +398,11 @@
Historische Marktdaten
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -410,7 +410,7 @@
Daten anzeigen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -418,7 +418,7 @@
Stacktrace anzeigen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -426,7 +426,7 @@
Job löschen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -442,7 +442,7 @@
Datum
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -450,7 +450,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -490,7 +490,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -498,7 +498,7 @@
Anzahl Aktivitäten
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -510,7 +510,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -518,7 +518,7 @@
Möchtest du diesen Gutscheincode wirklich löschen?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -526,7 +526,7 @@
Möchtest du den Cache wirklich leeren?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -534,7 +534,7 @@
Bitte gebe deine Systemmeldung ein:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -542,7 +542,7 @@
Anzahl Benutzer
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -550,7 +550,7 @@
pro Benutzer
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -594,7 +594,7 @@
Systemmeldung
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -602,7 +602,7 @@
Systemmeldung setzen
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -610,7 +610,7 @@
Lese-Modus
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -618,7 +618,7 @@
Gutscheincodes
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -626,7 +626,7 @@
Hinzufügen
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -638,7 +638,7 @@
Verwaltung
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -646,7 +646,7 @@
Cache leeren
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -654,7 +654,7 @@
Möchtest du diesen Benutzer wirklich löschen?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -690,7 +690,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -730,7 +730,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -742,11 +742,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -762,7 +762,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -782,15 +782,15 @@
Ups! Falsches Sicherheits-Token.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -798,7 +798,7 @@
Aktivitäten verwalten
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -830,7 +830,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -874,7 +874,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -914,7 +914,7 @@
Absolute Brutto Performance
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -922,11 +922,11 @@
Absolute Netto Performance
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -934,11 +934,11 @@
Netto Performance
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -946,7 +946,7 @@
Gesamtanlagevermögen
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -954,7 +954,7 @@
Kaufkraft
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -962,7 +962,7 @@
Gesamtvermögen
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -970,7 +970,7 @@
Performance pro Jahr
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -990,7 +990,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -998,7 +998,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -1010,7 +1010,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1022,7 +1022,7 @@
Tags
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1038,7 +1038,7 @@
Datenfehler melden
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1046,11 +1046,11 @@
Allokation
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1066,7 +1066,7 @@
Alle anzeigen
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -1078,7 +1078,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -1086,11 +1086,11 @@
YTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -1098,11 +1098,11 @@
1J
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -1110,11 +1110,19 @@
5J
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Performance mit Währungseffekt
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -1122,11 +1130,11 @@
Max
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -1142,7 +1150,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -1234,7 +1242,7 @@
Möchtest du diese Anmeldemethode wirklich löschen?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -1254,7 +1262,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -1278,7 +1286,7 @@
Präsentationsansicht
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -1294,11 +1302,11 @@
Lokalität
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -1306,7 +1314,7 @@
Datums- und Zahlenformat
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -1314,7 +1322,7 @@
Zen Modus
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -1326,7 +1334,7 @@
Einloggen mit Fingerabdruck
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -1338,11 +1346,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -1390,11 +1398,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -1434,7 +1442,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -1446,15 +1454,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -1470,7 +1478,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -1486,7 +1494,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -1626,7 +1634,7 @@
Da du bereits eingeloggt bist, kannst du nicht auf die Live Demo zugreifen.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -1672,6 +1680,10 @@
Overview
Übersicht
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -1690,11 +1702,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -1710,7 +1722,7 @@
Märkte
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -1734,7 +1746,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -1774,7 +1786,7 @@
Nach Konto
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -1782,7 +1794,7 @@
Nach Währung
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -1790,7 +1802,7 @@
Nach Anlageklasse
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -1798,7 +1810,7 @@
Nach Position
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -1806,7 +1818,7 @@
Nach Sektor
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -1814,7 +1826,7 @@
Nach Kontinent
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -1822,7 +1834,7 @@
Nach Land
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -1830,11 +1842,11 @@
Regionen
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -1854,7 +1866,7 @@
Zeitstrahl der Investitionen
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -1862,7 +1874,7 @@
Gewinner
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -1870,7 +1882,7 @@
Verlierer
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -1930,7 +1942,7 @@
Aktuelle Woche
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1974,7 +1986,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -1986,15 +1998,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -2002,11 +2014,11 @@
Stückpreis
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -2014,7 +2026,7 @@
Kommentar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -2022,7 +2034,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -2034,7 +2046,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -2054,11 +2066,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -2070,7 +2082,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -2078,7 +2090,7 @@
Daten importieren...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -2086,7 +2098,7 @@
Der Import wurde abgeschlossen
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -2146,7 +2158,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -2158,7 +2170,7 @@
Kontinente
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -2174,7 +2186,7 @@
Ghostfolio verschafft dir den Überblick über dein Vermögen.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -2204,6 +2216,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Resources
@@ -2258,7 +2274,7 @@
Geplant
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -2270,11 +2286,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -2282,11 +2298,11 @@
Aktivitäten exportieren
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -2294,11 +2310,11 @@
Geplante Aktivitäten als ICS exportieren
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -2306,7 +2322,7 @@
Kopieren
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -2314,7 +2330,7 @@
Geplante Aktivität als ICS exportieren
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -2322,7 +2338,7 @@
Möchtest du diese Aktivität wirklich löschen?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -2338,7 +2354,7 @@
kontaktiere uns
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -2394,7 +2410,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -2406,7 +2422,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2454,7 +2470,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -2474,11 +2490,11 @@
Entwickelte Länder
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
@@ -2486,7 +2502,7 @@
Neueste Aktivitäten
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -2494,11 +2510,11 @@
Schwellenländer
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -2506,11 +2522,11 @@
Übrige Länder
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -2542,7 +2558,7 @@
Einlage
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -2554,11 +2570,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -2570,7 +2586,7 @@
Ersparnisse
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -2594,15 +2610,15 @@
Angst
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -2610,15 +2626,15 @@
Gier
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -2626,7 +2642,7 @@
Filtern nach...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -2654,7 +2670,7 @@
Experimentelle Funktionen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -2662,11 +2678,11 @@
Das Formular konnte nicht validiert werden
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -2682,7 +2698,7 @@
Benchmark
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -2702,7 +2718,7 @@
Von der Analyse ausgenommen
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -2714,7 +2730,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -2722,7 +2738,7 @@
Aussehen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -2730,7 +2746,7 @@
Hell
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -2738,7 +2754,7 @@
Dunkel
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -2746,7 +2762,7 @@
Gesamtbetrag
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -2754,7 +2770,7 @@
Portfolio Wertentwicklung
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -2774,7 +2790,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -2798,7 +2814,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -2806,7 +2822,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -2822,7 +2838,7 @@
Symbol
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -2838,7 +2854,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -2862,7 +2878,7 @@
Bargeld
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -2910,7 +2926,7 @@
Authentifizierung
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -2942,7 +2958,7 @@
Investmentfonds
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -2950,7 +2966,7 @@
Edelmetall
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -2958,7 +2974,7 @@
Privates Beteiligungskapital
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -2966,7 +2982,7 @@
Aktie
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -2974,7 +2990,7 @@
Notfallfonds
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -2994,7 +3010,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -3002,11 +3018,11 @@
Keine Daten verfügbar
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -3014,11 +3030,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -3030,7 +3046,7 @@
Nordamerika
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -3038,7 +3054,7 @@
Afrika
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -3046,7 +3062,7 @@
Asien
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -3054,7 +3070,7 @@
Europa
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -3070,7 +3086,7 @@
Ozeanien
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -3078,7 +3094,7 @@
Südamerika
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -3122,7 +3138,7 @@
Symbol Zuordnung
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -3130,7 +3146,7 @@
Zeitstrahl der Dividenden
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -3138,7 +3154,7 @@
Suchst du nach einem Studentenrabatt?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -3154,7 +3170,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -3162,7 +3178,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -3186,7 +3202,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -3194,7 +3210,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -3206,7 +3222,7 @@
Benutzer Registrierung
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -3214,7 +3230,7 @@
Daten validieren...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3230,7 +3246,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -3238,7 +3254,7 @@
Marktdaten
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -3298,15 +3314,15 @@
Dividenden importieren
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3314,7 +3330,7 @@
Gültig bis
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -3353,6 +3369,14 @@
22
+
+ No Activities
+ Keine Aktivitäten
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Altersvorsorge
@@ -3361,6 +3385,14 @@
28
+
+ Everything in Basic , plus
+ Alles von Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Satellit
@@ -3374,7 +3406,7 @@
Ausblenden von sensiblen Informationen wie absoluter Performance und Stückzahl
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -3382,7 +3414,7 @@
Unbeschwertes Erlebnis für turbulente Zeiten
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -3390,7 +3422,7 @@
Vorschau auf kommende Funktionalität
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -3414,7 +3446,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -3430,7 +3462,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -3446,7 +3478,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -3462,7 +3494,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -3510,7 +3542,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -3594,7 +3626,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -3610,7 +3642,7 @@
Einmalige Zahlung, keine automatische Erneuerung.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
@@ -3618,11 +3650,11 @@
Das Anlageprofil konnte nicht gespeichert werden
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -3630,7 +3662,7 @@
Es ist kostenlos.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -3642,7 +3674,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -3662,7 +3694,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -3706,7 +3738,7 @@
E-Mail und Chat Support
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -3725,6 +3757,14 @@
14
+
+ Loan
+ Darlehen
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Marktdaten bereitgestellt von
@@ -3758,7 +3798,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -3782,7 +3822,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -3814,7 +3854,7 @@
Möchtest du diese Aktivitäten wirklich löschen?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3822,7 +3862,15 @@
Nach ETF-Anbieter
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
+
+
+
+ Explore
+ Entdecke
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
@@ -3846,7 +3894,7 @@
Aktuelles Jahr
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -3862,11 +3910,11 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -3882,7 +3930,7 @@
Das Anlageprofil wurde gespeichert
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -3890,7 +3938,7 @@
Möchtest du diese Plattform wirklich löschen?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
@@ -3898,7 +3946,7 @@
Plattformen
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -3906,7 +3954,7 @@
Cash-Bestand aktualisieren
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3914,7 +3962,7 @@
Nach Plattform
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -4026,7 +4074,7 @@
Aktueller Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4034,7 +4082,7 @@
Längster Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4078,7 +4126,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -4086,7 +4134,7 @@
Verbindlichkeiten
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -4218,7 +4266,7 @@
Open Source Software
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -4242,7 +4290,7 @@
Scraper Konfiguration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -4481,20 +4529,12 @@
43
-
- Everything in
- Alles von
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
-
-
ETFs without Countries
ETFs ohne Länder
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -4502,7 +4542,7 @@
ETFs ohne Sektoren
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -4510,7 +4550,7 @@
Anlagevermögen
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -4526,7 +4566,7 @@
Nach Markt
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -4542,7 +4582,7 @@
Japan
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -4638,7 +4678,7 @@
Biometrische Authentifizierung
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -4682,7 +4722,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -4730,7 +4770,7 @@
Daten exportieren
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -4738,11 +4778,11 @@
Währungen
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
+ 95
@@ -4790,11 +4830,11 @@
Die Scraper Konfiguration konnte nicht geparsed werden
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -5348,11 +5388,11 @@
Schweiz
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -5360,7 +5400,7 @@
Weltweit
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -5388,7 +5428,7 @@
mit deiner Universitäts-E-Mail-Adresse
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -5456,11 +5496,11 @@
Gebühr
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5488,7 +5528,7 @@
Möchtest du diesen Tag wirklich löschen?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -5556,7 +5596,7 @@
Mitgliedschaft
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -5572,7 +5612,7 @@
Fordere ihn an
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -5588,7 +5628,7 @@
Anlageprofil
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -5688,7 +5728,7 @@
Extreme Angst
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -5696,7 +5736,7 @@
Extreme Gier
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5704,7 +5744,7 @@
Neutral
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -5712,7 +5752,7 @@
Ups! Die historischen Daten konnten nicht geparsed werden.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -5720,7 +5760,7 @@
Möchtest du diese Systemmeldung wirklich löschen?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -5744,7 +5784,7 @@
Cash-Bestände
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -5764,7 +5804,7 @@
Möchtest du diesen Cash-Bestand wirklich löschen?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -5780,7 +5820,7 @@
Der aktuelle Marktpreis ist
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5788,7 +5828,7 @@
Test
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5828,7 +5868,7 @@
Ups! Der Zugang konnte nicht gewährt werden.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -5836,7 +5876,7 @@
Argentinien
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5884,7 +5924,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
@@ -5892,7 +5932,7 @@
hier
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
@@ -5900,7 +5940,7 @@
Position abschliessen
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5908,7 +5948,7 @@
Absolute Anlage Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5916,7 +5956,7 @@
Anlage Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -5924,7 +5964,7 @@
Absolute Währungsperformance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -5932,7 +5972,7 @@
Währungsperformance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5940,7 +5980,7 @@
Seit Wochenbeginn
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5948,11 +5988,11 @@
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5960,7 +6000,7 @@
Seit Monatsbeginn
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5968,11 +6008,11 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5980,7 +6020,7 @@
Seit Jahresbeginn
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -6016,7 +6056,7 @@
Jahr
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6028,7 +6068,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6036,11 +6076,11 @@
Jahre
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6056,11 +6096,11 @@
Finanzmarktdaten synchronisieren
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6068,7 +6108,7 @@
Allgemein
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6076,7 +6116,7 @@
Cloud
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6088,7 +6128,7 @@
Self-Hosting
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6129,7 +6169,7 @@
Aktiv
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6137,7 +6177,7 @@
Abgeschlossen
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6145,7 +6185,7 @@
Indonesien
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -6169,7 +6209,7 @@
Job ausführen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6177,7 +6217,7 @@
Priorität
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6217,7 +6257,7 @@
Aktivitäten löschen
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6233,7 +6273,7 @@
Möchtest du dieses Ghostfolio Konto wirklich schliessen?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6241,7 +6281,7 @@
Gefahrenzone
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6249,7 +6289,7 @@
Konto schliessen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6257,7 +6297,7 @@
Nach ETF Position
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -6265,7 +6305,7 @@
Annäherung auf Basis der grössten Positionen pro ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6281,7 +6321,7 @@
Berücksichtigen in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -6289,7 +6329,7 @@
Ups! Beim Einrichten der biometrischen Authentifizierung ist ein Fehler aufgetreten.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6305,7 +6345,7 @@
Benchmarks
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -6353,7 +6393,7 @@
Möchtest du deine persönliche Anlagestrategie verfeinern ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6361,7 +6401,7 @@
Alternative
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6369,7 +6409,7 @@
App
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6377,7 +6417,7 @@
Budgetierung
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6393,47 +6433,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6441,7 +6485,7 @@
Family Office
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6449,7 +6493,7 @@
Investor
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6461,7 +6505,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6473,7 +6517,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6481,7 +6525,7 @@
Datenschutz
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6489,7 +6533,7 @@
Software
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6497,7 +6541,7 @@
Tool
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6505,7 +6549,7 @@
User Experience
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6513,7 +6557,7 @@
Vermögen
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6521,7 +6565,7 @@
Vermögensverwaltung
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6529,7 +6573,7 @@
Australien
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6537,7 +6581,7 @@
Österreich
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6545,7 +6589,7 @@
Belgien
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6553,7 +6597,7 @@
Bulgarien
libs/ui/src/lib/i18n.ts
- 83
+ 84
@@ -6561,7 +6605,7 @@
Position ansehen
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6569,7 +6613,7 @@
Kanada
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6577,7 +6621,7 @@
Tschechien
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6585,7 +6629,7 @@
Finnland
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6593,7 +6637,7 @@
Frankreich
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6601,7 +6645,7 @@
Deutschland
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6609,7 +6653,7 @@
Indien
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6617,7 +6661,7 @@
Italien
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6625,7 +6669,7 @@
Niederlande
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6633,7 +6677,7 @@
Neuseeland
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6641,7 +6685,7 @@
Polen
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6649,7 +6693,7 @@
Rumänien
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6657,7 +6701,7 @@
Südafrika
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6665,7 +6709,7 @@
Thailand
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6673,7 +6717,7 @@
USA
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6681,7 +6725,7 @@
Fehler
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6705,7 +6749,7 @@
Ups! Der Zugang konnte nicht bearbeitet werden.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
@@ -6733,7 +6777,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6765,7 +6809,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6773,7 +6817,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6785,7 +6829,7 @@
Schliessen
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6811,13 +6855,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6829,7 +6877,7 @@
Rolle
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6853,7 +6901,7 @@
Portfolio Snapshot
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6869,7 +6917,7 @@
Wenn du die Eröffnung eines Kontos planst bei
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6920,6 +6968,14 @@
42
+
+ has been copied to the clipboard
+ wurde in die Zwischenablage kopiert
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
Seit Beginn
@@ -6981,7 +7037,7 @@
um unseren Empfehlungslink zu verwenden und eine Ghostfolio Premium-Mitgliedschaft für ein Jahr zu erhalten
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7085,7 +7141,7 @@
API-Schlüssel setzen
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7101,7 +7157,7 @@
Ukraine
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7121,7 +7177,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7137,7 +7193,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7191,7 +7247,7 @@
von
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7199,7 +7255,7 @@
täglichen Anfragen
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7207,7 +7263,7 @@
API-Schlüssel löschen
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7215,7 +7271,7 @@
Möchtest du den API-Schlüssel wirklich löschen?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7223,7 +7279,7 @@
Bitte gib den API-Schlüssel ein:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7235,7 +7291,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7307,7 +7363,7 @@
Speichern
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7343,11 +7399,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7359,7 +7415,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7383,7 +7439,15 @@
Bitte gebe deinen Ghostfolio API-Schlüssel ein.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Änderung mit Währungseffekt
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7399,7 +7463,7 @@
Link wurde in die Zwischenablage kopiert
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7407,7 +7471,7 @@
Verzögert
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7415,7 +7479,7 @@
Sofort
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7423,7 +7487,7 @@
Standardmarktpreis
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7431,7 +7495,7 @@
Modus
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7439,7 +7503,7 @@
Selektor
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7447,7 +7511,7 @@
HTTP Request-Headers
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7455,7 +7519,7 @@
Tagesende
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7463,7 +7527,7 @@
in Echtzeit
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7487,11 +7551,11 @@
Änderung
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7503,19 +7567,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -7542,12 +7606,20 @@
67
+
+ Total amount
+ Gesamtbetrag
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Armenien
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7555,7 +7627,7 @@
Britische Jungferninseln
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7563,7 +7635,7 @@
Singapur
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7611,11 +7683,11 @@
Sicherheits-Token
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7623,7 +7695,7 @@
Möchtest du für diesen Benutzer wirklich ein neues Sicherheits-Token generieren?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
@@ -7631,7 +7703,7 @@
Konto, Position oder Seite finden...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7647,7 +7719,7 @@
Vereinigtes Königreich
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7696,7 +7768,7 @@
( ) wird bereits verwendet.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7704,7 +7776,7 @@
Bei der Änderung zu ( ) ist ein Fehler aufgetreten.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7720,7 +7792,7 @@
inklusive API-Zugriff für
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7744,7 +7816,7 @@
jemand
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7817,15 +7889,15 @@
Demo Benutzerkonto wurde synchronisiert.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
Sync Demo User Account
- Synchronisiere Demo Benutzerkonto
+ Synchronisiere Demo Benutzerkonto
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7852,7 +7924,7 @@
150
-
+
Fee Ratio
Gebührenverhältnis
@@ -7860,17 +7932,17 @@
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Die Gebühren übersteigen ${thresholdMax}% deiner ursprünglichen Investition (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ Die Gebühren übersteigen ${thresholdMax}% deines gesamten Investitionsvolumens (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Die Gebühren übersteigen ${thresholdMax}% deiner ursprünglichen Investition (${feeRatio}%) nicht
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ Die Gebühren übersteigen ${thresholdMax}% deines gesamten Investitionsvolumens (${feeRatio}%) nicht
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7995,7 +8067,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8007,7 +8079,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8031,7 +8103,7 @@
Aktueller Monat
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8039,11 +8111,7 @@
neu
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8200,7 +8268,7 @@
Möchtest du wirklich ein neues Sicherheits-Token generieren?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8224,7 +8292,7 @@
Aktien
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8236,7 +8304,7 @@
Kryptowährungen
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8256,7 +8324,7 @@
Anlageprofil verwalten
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8676,7 +8744,7 @@
Registrierungsdatum
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf
index 9be8108bd..1df016d5b 100644
--- a/apps/client/src/locales/messages.es.xlf
+++ b/apps/client/src/locales/messages.es.xlf
@@ -27,12 +27,12 @@
El riesgo de pérdida en trading puede ser sustancial. No es aconsejable invertir dinero que puedas necesitar a corto plazo.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
Grantee
- Beneficiario
+ Usuario autorizado
apps/client/src/app/components/access-table/access-table.component.html
11
@@ -40,10 +40,10 @@
please
- please
+ por favor
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -51,7 +51,7 @@
Tipo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -63,7 +63,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -76,34 +80,26 @@
Revoke
- Revoca
+ Revocar
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
with
- with
+ con
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
- ¿Quieres revocar el acceso concedido?
+ ¿Seguro que quieres revocar el acceso concedido?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -115,7 +111,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -127,7 +123,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -143,15 +139,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -159,7 +155,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -175,7 +171,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -187,15 +183,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -203,23 +199,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -232,7 +228,7 @@
Edit
- Edita
+ Editar
apps/client/src/app/components/access-table/access-table.component.html
76
@@ -243,24 +239,24 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
Delete
- Elimina
+ Eliminar
apps/client/src/app/components/admin-market-data/admin-market-data.html
289
@@ -271,15 +267,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -287,11 +287,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -300,18 +300,18 @@
Do you really want to delete this account?
- ¿Estás seguro de eliminar esta cuenta?
+ ¿Seguro que quieres eliminar esta cuenta?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
Delete Jobs
- Elimina los trabajos
+ Eliminar trabajos
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -319,7 +319,7 @@
Fuente de datos
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -331,7 +331,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -343,7 +343,7 @@
Intentos
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -351,7 +351,7 @@
Creado
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -359,7 +359,7 @@
Finalizado
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -367,16 +367,16 @@
Estado
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
and is driven by the efforts of its contributors
- and is driven by the efforts of its contributors
+ y es impulsado por los esfuerzos de sus colaboradores
apps/client/src/app/pages/about/overview/about-overview-page.html
49
@@ -384,10 +384,10 @@
Asset Profiles
- Perfiles de activos.
+ Perfiles de activos
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -399,40 +399,40 @@
Datos históricos del mercado
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
View Data
- Visualiza los datos
+ Ver datos
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
View Stacktrace
- Visualiza Stacktrace
+ Ver Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
Delete Job
- Elimina el trabajo
+ Eliminar trabajo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
Details for
- Detalles para
+ Detalles de
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
2
@@ -443,7 +443,7 @@
Fecha
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -451,7 +451,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -476,7 +476,7 @@
First Activity
- Primera actividad
+ Primera operación
apps/client/src/app/components/admin-market-data/admin-market-data.html
147
@@ -491,15 +491,15 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
Activity Count
- Recuento de actividad
+ Número de operaciones
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -511,23 +511,23 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
Do you really want to delete this coupon?
- ¿Estás seguro de eliminar este cupón?
+ ¿Seguro que quieres eliminar este cupón?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
Do you really want to flush the cache?
- ¿Estás seguro de limpiar la caché?
+ ¿Seguro que quieres limpiar la caché?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -535,7 +535,7 @@
Por favor, establece tu mensaje del sistema:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -543,20 +543,20 @@
Número de usuarios
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
per User
- por usario
+ por usuario
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
Gather Profile Data
- Recoger los datos del perfil
+ Recopilar datos del perfil
apps/client/src/app/components/admin-market-data/admin-market-data.html
234
@@ -579,7 +579,7 @@
Mensaje del sistema
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -587,7 +587,7 @@
Establecer mensaje
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -595,7 +595,7 @@
Modo de solo lectura
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -603,7 +603,7 @@
Cupones
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -611,7 +611,7 @@
Añadir
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -620,10 +620,10 @@
Housekeeping
- Tareas domésticas
+ Limpieza del sistema
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -631,15 +631,15 @@
Limpiar caché
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
Do you really want to delete this user?
- ¿Estás seguro de eliminar este usuario?
+ ¿Seguro que quieres eliminar este usuario?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -660,7 +660,7 @@
No auto-renewal on membership.
- No auto-renewal on membership.
+ Sin renovación automática de la membresía.
apps/client/src/app/components/user-account-membership/user-account-membership.html
74
@@ -668,14 +668,14 @@
Engagement per Day
- Contratación diaria
+ Interacción diaria
apps/client/src/app/components/admin-users/admin-users.html
140
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -688,7 +688,7 @@
Current Market Mood
- Estado de ánimo del mercado
+ Sentimiento del mercado
apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html
12
@@ -715,7 +715,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -727,11 +727,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -747,7 +747,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -764,26 +764,26 @@
Oops! Incorrect Security Token.
- Vaya! Token de seguridad incorrecto.
+ ¡Vaya! Token de seguridad incorrecto.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
Manage Activities
- Gestión de las operaciones
+ Gestionar operaciones
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -815,7 +815,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -859,7 +859,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -899,7 +899,7 @@
Rendimiento bruto absoluto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -907,11 +907,11 @@
Rendimiento neto absoluto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -919,11 +919,11 @@
Rendimiento neto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -931,15 +931,15 @@
Total de activos
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
Buying Power
- Capacidad de compra
+ Poder adquisitivo
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -947,7 +947,7 @@
Patrimonio neto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -955,12 +955,12 @@
Rendimiento anualizado
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
Please set the amount of your emergency fund.
- Por favor, ingresa la cantidad de tu fondo de emergencia:
+ Por favor, ingresa la cantidad de tu fondo de emergencia.
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
111
@@ -975,7 +975,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -983,7 +983,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -995,7 +995,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1007,7 +1007,7 @@
Etiquetas
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1020,10 +1020,10 @@
Report Data Glitch
- Reporta un anomalía de los datos
+ Reportar anomalía en los datos
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1031,11 +1031,11 @@
Distribución
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1051,7 +1051,7 @@
Mostrar todos
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -1063,19 +1063,19 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
YTD
- Desde principio de año
+ YTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -1083,11 +1083,11 @@
1 año
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -1095,11 +1095,19 @@
5 años
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Rendimiento con el efecto de la divisa
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -1107,11 +1115,11 @@
Máximo
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -1127,12 +1135,12 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
About
- Sobre
+ Acerca de
apps/client/src/app/components/footer/footer.component.html
20
@@ -1184,7 +1192,7 @@
Please enter your coupon code.
- Por favor, ingresa tu código de cupón:
+ Por favor, ingresa tu código de cupón.
apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
210
@@ -1192,7 +1200,7 @@
Could not redeem coupon code
- No se puede canjear este código de cupón
+ No se pudo canjear el código de cupón
apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
174
@@ -1200,7 +1208,7 @@
Coupon code has been redeemed
- El codigo de cupón ha sido canjeado
+ El código del cupón ha sido canjeado
apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
187
@@ -1208,7 +1216,7 @@
Reload
- Refrescar
+ Recargar
apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
188
@@ -1216,10 +1224,10 @@
Do you really want to remove this sign in method?
- ¿Estás seguro de eliminar este método de acceso?
+ ¿Seguro que quieres eliminar este método de acceso?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -1239,12 +1247,12 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
Try Premium
- Prueba Premium
+ Probar Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
53
@@ -1252,7 +1260,7 @@
Redeem Coupon
- Canjea el cupón
+ Canjear cupón
apps/client/src/app/components/user-account-membership/user-account-membership.html
67
@@ -1263,7 +1271,7 @@
Vista del presentador
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -1276,14 +1284,14 @@
Locale
- Ubicación
+ Configuración regional
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -1291,7 +1299,7 @@
Formato de fecha y número
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -1299,7 +1307,7 @@
Modo Zen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -1311,23 +1319,23 @@
Iniciar sesión con huella digital
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
User ID
- ID usuario
+ ID de usuario
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
51
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -1375,11 +1383,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -1396,7 +1404,7 @@
Update account
- Editar cuenta
+ Actualizar cuenta
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
8
@@ -1412,14 +1420,14 @@
Currency
- Divisa base
+ Divisa
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
199
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -1431,15 +1439,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -1455,7 +1463,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -1471,12 +1479,12 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
Account ID
- ID cuenta
+ ID de cuenta
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
96
@@ -1611,12 +1619,12 @@
Como estás conectado, no puedes acceder a la cuenta de demostración.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
Frequently Asked Questions (FAQ)
- Preguntas más frecuentes (FAQ)
+ Preguntas frecuentes (FAQ)
apps/client/src/app/components/footer/footer.component.html
33
@@ -1657,6 +1665,10 @@
Overview
Visión general
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -1675,11 +1687,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -1695,7 +1707,7 @@
Mercados
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -1719,7 +1731,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -1759,7 +1771,7 @@
Por cuenta
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -1767,7 +1779,7 @@
Por divisa
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -1775,15 +1787,15 @@
Por tipo de activo
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
By Holding
- Por participación
+ Por posiciones
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -1791,7 +1803,7 @@
Por sector
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -1799,7 +1811,7 @@
Por continente
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -1807,7 +1819,7 @@
Por país
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -1815,11 +1827,11 @@
Regiones
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -1839,23 +1851,23 @@
Cronología de la inversión
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
Top
- Lo mejor
+ Mejores
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
Bottom
- Lo peor
+ Peores
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -1876,7 +1888,7 @@
Holdings
- Participaciones
+ Posiciones
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
102
@@ -1904,7 +1916,7 @@
Update activity
- Actualizar opereación
+ Actualizar operación
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
10
@@ -1912,10 +1924,10 @@
Current week
- Current week
+ Semana actual
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1959,7 +1971,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -1971,15 +1983,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1987,11 +1999,11 @@
Precio unitario
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -1999,7 +2011,7 @@
Nota
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -2007,19 +2019,19 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
Activities
- Operación
+ Operaciones
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
86
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -2039,11 +2051,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -2055,7 +2067,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -2063,7 +2075,7 @@
Importando datos...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -2071,12 +2083,12 @@
La importación se ha completado
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
or start a discussion at
- or start a discussion at
+ o inicia una discusión en
apps/client/src/app/pages/about/overview/about-overview-page.html
94
@@ -2131,7 +2143,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -2143,12 +2155,12 @@
Continentes
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
Sustainable retirement income
- Sustainable retirement income
+ Ingresos sostenibles para la jubilación
apps/client/src/app/pages/portfolio/fire/fire-page.html
41
@@ -2156,10 +2168,10 @@
Ghostfolio empowers you to keep track of your wealth.
- Ghostfolio te permite hacer un seguimiento de tu riqueza.
+ Ghostfolio te permite hacer un seguimiento de tu patrimonio.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -2189,6 +2201,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Resources
@@ -2243,7 +2259,7 @@
Borrador
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -2255,11 +2271,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -2267,11 +2283,11 @@
Exportar operaciones
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -2279,11 +2295,11 @@
Exportar borrador como ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -2291,7 +2307,7 @@
Clonar
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -2299,15 +2315,15 @@
Exportar borrador como ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
Do you really want to delete this activity?
- ¿Estás seguro de eliminar esta operación?
+ ¿Seguro que quieres eliminar esta operación?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -2320,10 +2336,10 @@
contact us
- contact us
+ contáctanos
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -2336,7 +2352,7 @@
Annual Interest Rate
- Tipo de interés anual
+ Tasa de interés anual
libs/ui/src/lib/fire-calculator/fire-calculator.component.html
21
@@ -2368,14 +2384,14 @@
Oops! Something went wrong.
- Vaya! Algo no funcionó bien.
+ ¡Vaya! Algo no funcionó bien.
apps/client/src/app/core/http-response.interceptor.ts
86
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2391,7 +2407,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -2411,19 +2427,19 @@
Mercados desarrollados
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
Latest activities
- Latest activities
+ Últimas operaciones
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -2439,11 +2455,11 @@
Otros mercados
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -2451,11 +2467,11 @@
Mercados emergentes
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -2487,7 +2503,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -2511,7 +2527,7 @@
Ahorros
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -2523,11 +2539,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -2536,7 +2552,7 @@
annual interest rate
- annual interest rate
+ tasa de interés anual
apps/client/src/app/pages/portfolio/fire/fire-page.html
185
@@ -2547,7 +2563,7 @@
Depósito
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -2579,15 +2595,15 @@
Miedo
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -2595,15 +2611,15 @@
Codicia
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -2611,12 +2627,12 @@
Filtrar por...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
Hello, has shared a Portfolio with you!
- Hola, ha compartido una Cartera contigo!
+ ¡Hola, ha compartido una cartera contigo!
apps/client/src/app/pages/public/public-page.html
5
@@ -2639,15 +2655,15 @@
Funcionalidades experimentales
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
Benchmark
- Benchmark
+ Índice de referencia
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -2656,14 +2672,14 @@
Could not validate form
- Could not validate form
+ No se pudo validar el formulario
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -2687,7 +2703,7 @@
Excluido del análisis
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -2699,7 +2715,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -2707,7 +2723,7 @@
Apariencia
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -2715,7 +2731,7 @@
Claro
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -2723,7 +2739,7 @@
Oscuro
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -2731,15 +2747,15 @@
Importe total
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
Portfolio Evolution
- Evolución cartera
+ Evolución de la cartera
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -2759,7 +2775,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -2783,7 +2799,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -2791,7 +2807,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -2807,7 +2823,7 @@
Símbolo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -2823,7 +2839,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -2847,7 +2863,7 @@
Efectivo
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -2856,7 +2872,7 @@
Commodity
- Bien
+ Materia prima
libs/ui/src/lib/i18n.ts
47
@@ -2864,7 +2880,7 @@
Equity
- Capital
+ Renta variable
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
57
@@ -2892,10 +2908,10 @@
Authentication
- Authentication
+ Autenticación
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -2927,7 +2943,7 @@
Fondo de inversión
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -2935,7 +2951,7 @@
Metal precioso
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -2943,7 +2959,7 @@
Capital riesgo
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -2951,7 +2967,7 @@
Acción
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -2959,7 +2975,7 @@
Fondo de emergencia
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -2979,7 +2995,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -2987,11 +3003,11 @@
Sin datos disponibles
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -2999,11 +3015,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -3015,7 +3031,7 @@
América del Norte
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -3023,7 +3039,7 @@
África
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -3031,7 +3047,7 @@
Asia
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -3039,12 +3055,12 @@
Europa
libs/ui/src/lib/i18n.ts
- 71
+ 72
If you retire today, you would be able to withdraw
- If you retire today, you would be able to withdraw
+ Si te jubilas hoy, podrías retirar
apps/client/src/app/pages/portfolio/fire/fire-page.html
68
@@ -3055,7 +3071,7 @@
Oceanía
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -3063,12 +3079,12 @@
América del Sur
libs/ui/src/lib/i18n.ts
- 74
+ 75
The following file formats are supported:
- Los siguientes formatos de archivo están soportados:
+ Los siguientes formatos de archivo son compatibles:
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
90
@@ -3088,7 +3104,7 @@
Activities Count
- Recuento de actividades
+ Número de operaciones
apps/client/src/app/components/admin-market-data/admin-market-data.html
156
@@ -3096,7 +3112,7 @@
Refresh
- Refrescar
+ Actualizar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
21
@@ -3107,15 +3123,15 @@
Mapeo de símbolos
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
Looking for a student discount?
- Looking for a student discount?
+ ¿Buscas un descuento para estudiantes?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -3131,7 +3147,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -3139,7 +3155,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -3155,7 +3171,7 @@
Calendario de dividendos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -3171,7 +3187,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -3179,7 +3195,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -3191,7 +3207,7 @@
Registro de usuario
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -3199,7 +3215,7 @@
Validando datos...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3215,7 +3231,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -3223,7 +3239,7 @@
Datos del mercado
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -3252,7 +3268,7 @@
Holding
- Participación
+ Posición
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
32
@@ -3280,18 +3296,18 @@
Import Dividends
- Importar Dividendos
+ Importar dividendos
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3299,7 +3315,7 @@
Válido hasta
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -3324,7 +3340,7 @@
Higher Risk
- Riesgo mayor
+ Mayor riesgo
libs/ui/src/lib/i18n.ts
20
@@ -3338,6 +3354,14 @@
22
+
+ No Activities
+ Sin operaciones
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Provisión de jubilación
@@ -3346,6 +3370,14 @@
28
+
+ Everything in Basic , plus
+ Todo lo incluido en Basic , más
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Satélite
@@ -3356,10 +3388,10 @@
Protection for sensitive information like absolute performances and quantity values
- Protección de información confidencial como rendimientos absolutos y valores cuantitativos
+ Protección de información confidencial como rendimientos absolutos y cantidades
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -3367,7 +3399,7 @@
Experiencia sin distracciones para tiempos turbulentos
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -3375,12 +3407,12 @@
Un adelanto de las próximas funciones
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
Are you an ambitious investor who needs the full picture?
- ¿Es usted un inversor ambicioso que necesita una visión completa?
+ ¿Eres un inversor ambicioso que necesita una visión completa?
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
15
@@ -3399,12 +3431,12 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
Performance Benchmarks
- Puntos de referencia de rendimiento
+ Índices de referencia de rendimiento
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
32
@@ -3415,7 +3447,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -3431,12 +3463,12 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
and more Features...
- y más características...
+ y más funcionalidades...
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
44
@@ -3447,12 +3479,12 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
Skip
- Saltar
+ Omitir
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
59
@@ -3495,7 +3527,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -3508,7 +3540,7 @@
Unlimited Transactions
- Transacciones ilimitadas
+ Operaciones ilimitadas
apps/client/src/app/pages/pricing/pricing-page.html
35
@@ -3532,7 +3564,7 @@
Portfolio Performance
- Rendimiento del Portfolio
+ Rendimiento de la cartera
apps/client/src/app/pages/pricing/pricing-page.html
43
@@ -3544,7 +3576,7 @@
Self-hosted, update manually.
- Auto alojado, actualiza manualmente.
+ Autoalojado, actualiza manualmente.
apps/client/src/app/pages/pricing/pricing-page.html
84
@@ -3564,7 +3596,7 @@
For new investors who are just getting started with trading.
- Para nuevos inversores que estan empezando con el trading.
+ Para nuevos inversores que están empezando con el trading.
apps/client/src/app/pages/pricing/pricing-page.html
119
@@ -3572,19 +3604,19 @@
Fully managed Ghostfolio cloud offering.
- Oferta en la nube de Ghostfolio totalmente administrada.
+ Oferta de Ghostfolio en la nube totalmente gestionada.
apps/client/src/app/pages/pricing/pricing-page.html
150
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
For ambitious investors who need the full picture of their financial assets.
- Para inversores ambiciosos que necesitan una visión completa de sus activos financieros
+ Para inversores ambiciosos que necesitan una visión completa de sus activos financieros.
apps/client/src/app/pages/pricing/pricing-page.html
193
@@ -3595,19 +3627,19 @@
Pago único, sin renovación automática.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
Could not save asset profile
- Could not save asset profile
+ No se pudo guardar el perfil del activo
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -3615,7 +3647,7 @@
Es gratis.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -3627,12 +3659,12 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
Portfolio Allocations
- Distribucion del Portfolio
+ Distribución de la cartera
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
28
@@ -3647,7 +3679,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -3660,7 +3692,7 @@
Data Import and Export
- Importacion y exportacion de datos
+ Importación y exportación de datos
apps/client/src/app/pages/pricing/pricing-page.html
63
@@ -3672,7 +3704,7 @@
Switch to Ghostfolio Premium easily
- Cambia a Ghostfolio Premium facilmente
+ Cambia a Ghostfolio Premium fácilmente
libs/ui/src/lib/i18n.ts
13
@@ -3688,15 +3720,15 @@
Email and Chat Support
- Soporte a Traves de Email y Chat
+ Soporte a través de correo electrónico y chat
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
Switch to Ghostfolio Premium or Ghostfolio Open Source easily
- Cambie a Ghostfolio Premium o Ghostfolio Open Source fácilmente
+ Cambia a Ghostfolio Premium o Ghostfolio Open Source fácilmente
libs/ui/src/lib/i18n.ts
12
@@ -3704,12 +3736,20 @@
Switch to Ghostfolio Open Source or Ghostfolio Basic easily
- Cambie a Ghostfolio Open Source o Ghostfolio Basic fácilmente
+ Cambia a Ghostfolio Open Source o Ghostfolio Basic fácilmente
libs/ui/src/lib/i18n.ts
14
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Datos de mercado proporcionados por
@@ -3728,14 +3768,14 @@
Professional Data Provider
- Proveedor de datos profesional
+ Proveedor de datos profesional
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
40
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -3759,7 +3799,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -3788,10 +3828,10 @@
Do you really want to delete these activities?
- ¿Realmente deseas eliminar estas actividades?
+ ¿Seguro que quieres eliminar estas operaciones?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3799,12 +3839,20 @@
Por proveedor de ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
+
+
+
+ Explore
+ Explorar
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
By
- By
+ Por
apps/client/src/app/pages/portfolio/fire/fire-page.html
139
@@ -3820,15 +3868,15 @@
Current year
- Current year
+ Año actual
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
Add platform
- Agregar plataforma
+ Añadir plataforma
apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
10
@@ -3836,14 +3884,14 @@
Url
- ¿La URL?
+ Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -3856,18 +3904,18 @@
Asset profile has been saved
- Asset profile has been saved
+ Perfil del activo guardado
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
Do you really want to delete this platform?
- ¿Realmente deseas eliminar esta plataforma?
+ ¿Seguro que quieres eliminar esta plataforma?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
@@ -3875,7 +3923,7 @@
Plataformas
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -3883,7 +3931,7 @@
Actualizar saldo en efectivo
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3891,12 +3939,12 @@
Por plataforma
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience:
- Actualiza a Ghostfolio Premium hoy y accede a características exclusivas para mejorar tu experiencia de inversión:
+ Actualiza a Ghostfolio Premium hoy y accede a funcionalidades exclusivas para mejorar tu experiencia de inversión:
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
18
@@ -3912,7 +3960,7 @@
Add Platform
- Agregar plataforma
+ Añadir plataforma
apps/client/src/app/components/admin-platform/admin-platform.component.html
9
@@ -3920,7 +3968,7 @@
Settings
- Configuraciones
+ Ajustes
apps/client/src/app/components/user-account-settings/user-account-settings.html
2
@@ -3936,7 +3984,7 @@
This activity already exists.
- Esta actividad ya existe.
+ Esta operación ya existe.
libs/ui/src/lib/i18n.ts
21
@@ -3944,7 +3992,7 @@
Manage Benchmarks
- Gestionar puntos de referencia
+ Gestionar índices de referencia
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html
35
@@ -3976,7 +4024,7 @@
Select Activities
- Seleccionar dividendos
+ Seleccionar operaciones
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
115
@@ -4003,7 +4051,7 @@
Racha actual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4011,7 +4059,7 @@
Racha más larga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4048,14 +4096,14 @@
View Details
- View Details
+ Ver detalles
apps/client/src/app/components/admin-users/admin-users.html
225
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -4063,7 +4111,7 @@
Pasivos
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -4136,7 +4184,7 @@
Multi-Accounts
- Cuentas múltiples
+ Múltiples cuentas
apps/client/src/app/pages/features/features-page.html
127
@@ -4144,7 +4192,7 @@
Portfolio Calculations
- Cálculos de portafolio
+ Cálculos de la cartera
apps/client/src/app/pages/features/features-page.html
141
@@ -4160,7 +4208,7 @@
Market Mood
- Modo de mercado
+ Sentimiento del mercado
apps/client/src/app/pages/features/features-page.html
215
@@ -4176,7 +4224,7 @@
Multi-Language
- Multilenguaje
+ Multilingüe
apps/client/src/app/pages/features/features-page.html
259
@@ -4184,7 +4232,7 @@
per week
- per week
+ por semana
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
130
@@ -4195,12 +4243,12 @@
Software de código abierto
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
Liability
- Responsabilidad
+ Pasivo
libs/ui/src/lib/i18n.ts
41
@@ -4208,7 +4256,7 @@
and we share aggregated key metrics of the platform’s performance
- and we share aggregated key metrics of the platform’s performance
+ y compartimos métricas clave agregadas del rendimiento de la plataforma
apps/client/src/app/pages/about/overview/about-overview-page.html
32
@@ -4219,12 +4267,12 @@
Configuración del scraper
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
Add Asset Profile
- Agregar perfil de activo
+ Añadir perfil de activo
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
7
@@ -4244,7 +4292,7 @@
Discover Open Source Alternatives for Personal Finance Tools
- Descubra alternativas de software libre para herramientas de finanzas personales
+ Descubre alternativas de software de código abierto para herramientas de finanzas personales
apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html
5
@@ -4252,7 +4300,7 @@
Website of Thomas Kaul
- Website of Thomas Kaul
+ Sitio web de Thomas Kaul
apps/client/src/app/pages/about/overview/about-overview-page.html
44
@@ -4396,7 +4444,7 @@
Effortlessly track, analyze, and visualize your wealth with Ghostfolio.
- Siga, analice y visualice su patrimonio sin esfuerzo con Ghostfolio.
+ Sigue, analiza y visualiza tu patrimonio sin esfuerzo con Ghostfolio.
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
329
@@ -4432,7 +4480,7 @@
Sign in with OpenID Connect
- Sign in with OpenID Connect
+ Iniciar sesión con OpenID Connect
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
55
@@ -4440,7 +4488,7 @@
Buy
- Comprar
+ Compra
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
31
@@ -4452,26 +4500,18 @@
Valuable
- Valioso
+ Activo de valor
libs/ui/src/lib/i18n.ts
43
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
-
-
ETFs without Countries
ETFs sin países
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -4479,7 +4519,7 @@
ETFs sin sectores
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -4487,7 +4527,7 @@
Activos
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -4503,7 +4543,7 @@
Por mercado
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -4519,7 +4559,7 @@
Japón
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -4532,7 +4572,7 @@
The source code is fully available as open source software (OSS) under the AGPL-3.0 license
- The source code is fully available as open source software (OSS) under the AGPL-3.0 license
+ El código fuente está disponible como software de código abierto (OSS) bajo la licencia AGPL-3.0
apps/client/src/app/pages/about/overview/about-overview-page.html
16
@@ -4556,7 +4596,7 @@
Capture your activities
- Captura tus actividades
+ Captura tus operaciones
apps/client/src/app/components/home-overview/home-overview.html
28
@@ -4564,7 +4604,7 @@
Record your investment activities to keep your portfolio up to date.
- Registra tus actividades de inversión para mantener tu portafolio actualizado.
+ Registra tus operaciones de inversión para mantener tu cartera actualizada.
apps/client/src/app/components/home-overview/home-overview.html
30
@@ -4572,7 +4612,7 @@
Monitor and analyze your portfolio
- Monitorea y analiza tu portafolio
+ Monitorea y analiza tu cartera
apps/client/src/app/components/home-overview/home-overview.html
37
@@ -4588,7 +4628,7 @@
Ready to take control of your personal finances?
- ¿Listo para tomar el control de tus finanzas personales?
+ ¿Estás preparado para tomar el control de tus finanzas personales?
apps/client/src/app/components/home-overview/home-overview.html
12
@@ -4604,7 +4644,7 @@
this is projected to increase to
- this is projected to increase to
+ se proyecta que esto aumente a
apps/client/src/app/pages/portfolio/fire/fire-page.html
147
@@ -4615,12 +4655,12 @@
Autenticación biométrica
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status.
- En Ghostfolio, la transparencia está en el centro de nuestros valores. Publicamos el código fuente como software de código abierto (OSS) bajo la licencia Licencia AGPL-3.0 y compartimos abiertamente métricas clave agregadas sobre el estado operativo de la plataforma.
+ En Ghostfolio, la transparencia está en el centro de nuestros valores. Publicamos el código fuente como software de código abierto (OSS) bajo la Licencia AGPL-3.0 y compartimos abiertamente métricas clave agregadas sobre el estado operativo de la plataforma.
apps/client/src/app/pages/open/open-page.html
7
@@ -4656,10 +4696,10 @@
Job ID
- Job ID
+ ID del trabajo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -4707,19 +4747,19 @@
Exportar datos
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
Currencies
- Monedas
+ Divisas
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
+ 95
@@ -4740,7 +4780,7 @@
for
- for
+ para
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
128
@@ -4756,7 +4796,7 @@
Check out the numerous features of Ghostfolio to manage your wealth
- Descubra las numerosas funciones de Ghostfolio para gestionar su patrimonio
+ Descubre las numerosas funciones de Ghostfolio para gestionar tu patrimonio
apps/client/src/app/pages/features/features-page.html
7
@@ -4764,14 +4804,14 @@
Could not parse scraper configuration
- Could not parse scraper configuration
+ No se pudo analizar la configuración del scraper
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -4808,7 +4848,7 @@
Edit access
- Edit access
+ Editar acceso
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
11
@@ -4832,7 +4872,7 @@
Protect your assets . Refine your personal investment strategy .
- Protege tus assets . Mejora tu estrategia de inversión personal .
+ Protege tus activos . Mejora tu estrategia de inversión personal .
apps/client/src/app/pages/landing/landing-page.html
124
@@ -4880,7 +4920,7 @@
Get access to 80’000+ tickers from over 50 exchanges
- Get access to 80’000+ tickers from over 50 exchanges
+ Accede a más de 80.000 tickers de más de 50 bolsas
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
84
@@ -4912,7 +4952,7 @@
pursuing a buy & hold strategy
- persiguiendo una compra & mantener estrategia
+ siguiendo una estrategia de comprar y mantener
apps/client/src/app/pages/landing/landing-page.html
184
@@ -4920,7 +4960,7 @@
interested in getting insights of your portfolio composition
- interesado en obtener información sobre la composición de tu portafolio
+ interesado en obtener información sobre la composición de tu cartera
apps/client/src/app/pages/landing/landing-page.html
189
@@ -4936,7 +4976,7 @@
into minimalism
- en el minimalismo
+ interesado en el minimalismo
apps/client/src/app/pages/landing/landing-page.html
197
@@ -4944,7 +4984,7 @@
caring about diversifying your financial resources
- preocuparse por diversificar tus recursos financieros
+ preocupado por diversificar tus recursos financieros
apps/client/src/app/pages/landing/landing-page.html
201
@@ -5000,7 +5040,7 @@
How does Ghostfolio work?
- ¿Cómo Ghostfolio work?
+ ¿Cómo funciona Ghostfolio ?
apps/client/src/app/pages/landing/landing-page.html
282
@@ -5016,7 +5056,7 @@
* no e-mail address nor credit card required
- * no se requiere dirección de correo electrónico ni tarjeta de crédito
+ * no se necesita correo electrónico ni tarjeta de crédito
apps/client/src/app/pages/landing/landing-page.html
292
@@ -5032,7 +5072,7 @@
Get valuable insights of your portfolio composition
- Obtén información valiosa sobre la composición de tu portafolio
+ Obtén información valiosa sobre la composición de tu cartera
apps/client/src/app/pages/landing/landing-page.html
316
@@ -5040,7 +5080,7 @@
Are you ready?
- ¿Estás tú listo?
+ ¿Estás preparado ?
apps/client/src/app/pages/landing/landing-page.html
330
@@ -5064,7 +5104,7 @@
less than
- less than
+ menos de
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
129
@@ -5253,7 +5293,7 @@
Open Source Alternative to
- Alternativa de software libre a
+ Alternativa de software de código abierto a
apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html
42
@@ -5261,7 +5301,7 @@
The Open Source Alternative to
- La alternativa de software libre a
+ La alternativa de software de código abierto a
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
8
@@ -5269,7 +5309,7 @@
Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future.
- ¿Estás buscando una alternativa de código abierto a ? Ghostfolio es una potente herramienta de gestión de carteras que ofrece a los usuarios una plataforma integral para rastrear, analizar y optimizar sus inversiones. Ya seas un inversor con experiencia o estés comenzando, Ghostfolio ofrece una interfaz intuitiva y una amplia gama de funcionalidades para ayudarte a tomar decisiones informadas y tener el control de tu futuro financiero.
+ ¿Estás buscando una alternativa de código abierto a ? Ghostfolio es una potente herramienta de gestión de carteras que proporciona a los usuarios una plataforma completa para seguir, analizar y optimizar sus inversiones. Ya seas un inversor con experiencia o estés comenzando, Ghostfolio ofrece una interfaz intuitiva y una amplia gama de funcionalidades para ayudarte a tomar decisiones informadas y tener el control de tu futuro financiero.
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
19
@@ -5293,7 +5333,7 @@
open-source-alternative-to
- alternativa-de-software-libre-a
+ alternativa-de-software-de-codigo-abierto-a
kebab-case
libs/common/src/lib/routes/routes.ts
@@ -5314,7 +5354,7 @@
Ready to take your investments to the next level ?
- ¿Listo para llevar sus inversiones al siguiente nivel ?
+ ¿Estás preparado para llevar tus inversiones al siguiente nivel ?
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
325
@@ -5325,11 +5365,11 @@
Suiza
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -5337,7 +5377,7 @@
Global
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -5354,7 +5394,7 @@
Ghostfolio Status
- Ghostfolio Status
+ Estado de Ghostfolio
apps/client/src/app/pages/about/overview/about-overview-page.html
62
@@ -5362,10 +5402,10 @@
with your university e-mail address
- with your university e-mail address
+ con tu dirección de correo electrónico universitaria
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -5382,7 +5422,7 @@
and a safe withdrawal rate (SWR) of
- and a safe withdrawal rate (SWR) of
+ y una tasa de retiro segura (SWR) de
apps/client/src/app/pages/portfolio/fire/fire-page.html
108
@@ -5414,7 +5454,7 @@
One-time fee, annual account fees
- Tarifa única, tarifas anuales de la cuenta
+ Comisión única, comisiones anuales de la cuenta
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
33
@@ -5430,14 +5470,14 @@
Fee
- Tarifa
+ Comisión
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5454,7 +5494,7 @@
Add Tag
- Agregar etiqueta
+ Añadir etiqueta
apps/client/src/app/components/admin-tag/admin-tag.component.html
9
@@ -5462,10 +5502,10 @@
Do you really want to delete this tag?
- ¿Realmente deseas eliminar esta etiqueta?
+ ¿Seguro que quieres eliminar esta etiqueta?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -5533,7 +5573,7 @@
Membresía
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -5546,10 +5586,10 @@
Request it
- Request it
+ Solicítalo
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -5565,12 +5605,12 @@
Perfil de activo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
Do you really want to delete this asset profile?
- ¿Realmente deseas eliminar este perfil de activo?
+ ¿Seguro que quieres eliminar este perfil de activo?
apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
37
@@ -5594,7 +5634,7 @@
Ghostfolio is a personal finance dashboard to keep track of your net worth including cash, stocks, ETFs and cryptocurrencies across multiple platforms.
- Ghostfolio es un dashboard de finanzas personales para hacer un seguimiento de tus activos como acciones, ETFs o criptodivisas a través de múltiples plataformas.
+ Ghostfolio es un panel de control de finanzas personales para hacer un seguimiento de tu patrimonio neto, incluyendo efectivo, acciones, ETFs y criptomonedas a través de múltiples plataformas.
apps/client/src/app/pages/i18n/i18n-page.html
5
@@ -5602,7 +5642,7 @@
,
- ,
+ ,
apps/client/src/app/pages/portfolio/fire/fire-page.html
145
@@ -5618,7 +5658,7 @@
per month
- per month
+ por mes
apps/client/src/app/pages/portfolio/fire/fire-page.html
94
@@ -5630,7 +5670,7 @@
Ghostfolio vs comparison table
- Ghostfolio vs tabla comparativa
+ Tabla comparativa de Ghostfolio vs
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
55
@@ -5646,7 +5686,7 @@
app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3
- aplicación, activo, criptomoneda, panel, ETF, finanzas, gestión, rendimiento, cartera, software, acciones, comercio, riqueza, web3
+ aplicación, activo, criptomoneda, panel, ETF, finanzas, gestión, rendimiento, cartera, software, acciones, comercio, patrimonio, web3
apps/client/src/app/pages/i18n/i18n-page.html
10
@@ -5654,7 +5694,7 @@
Oops, cash balance transfer has failed.
- Oops, el saldo de efectivo no se ha transferido.
+ ¡Vaya! La transferencia del saldo de efectivo ha fallado.
apps/client/src/app/pages/accounts/accounts-page.component.ts
341
@@ -5665,15 +5705,15 @@
Miedo extremo
libs/ui/src/lib/i18n.ts
- 106
+ 107
Extreme Greed
- Avaricia extrema
+ Codicia extrema
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5681,23 +5721,23 @@
Neutral
libs/ui/src/lib/i18n.ts
- 110
+ 111
Oops! Could not parse historical data.
- ¡Ups! No se pudieron analizar los datos históricos.
+ ¡Vaya! No se pudieron analizar los datos históricos.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
Do you really want to delete this system message?
- ¿Realmente deseas eliminar este mensaje del sistema?
+ ¿Seguro que quieres eliminar este mensaje del sistema?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -5721,7 +5761,7 @@
Saldos de efectivo
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -5738,15 +5778,15 @@
Do you really want to delete this account balance?
- ¿Realmente desea eliminar el saldo de esta cuenta?
+ ¿Seguro que quieres eliminar el saldo de esta cuenta?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
If a translation is missing, kindly support us in extending it here .
- Si falta una traducción, por favor ayúdenos a ampliarla. here .
+ Si falta una traducción, por favor ayúdanos a completarla aquí .
apps/client/src/app/components/user-account-settings/user-account-settings.html
59
@@ -5757,7 +5797,7 @@
El precio actual de mercado es
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5765,7 +5805,7 @@
Prueba
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5802,10 +5842,10 @@
Oops! Could not grant access.
- ¡Ups! No se pudo otorgar acceso.
+ ¡Vaya! No se pudo otorgar acceso.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -5813,7 +5853,7 @@
Argentina
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5834,7 +5874,7 @@
Market data is delayed for
- Los datos del mercado se retrasan por
+ Los datos del mercado tienen un retraso de
apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts
95
@@ -5861,23 +5901,23 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
here
- here
+ aquí
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
Close Holding
- Close Holding
+ Cerrar posición
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5885,31 +5925,31 @@
Rendimiento absoluto de los activos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
Asset Performance
- Rendimiento de activos
+ Rendimiento de los activos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
Absolute Currency Performance
- Rendimiento absoluto de divisas
+ Rendimiento absoluto de las divisas
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
Currency Performance
- Rendimiento de la moneda
+ Rendimiento de la divisa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5917,7 +5957,7 @@
Semana hasta la fecha
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5925,11 +5965,11 @@
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5937,7 +5977,7 @@
Mes hasta la fecha
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5945,19 +5985,19 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
Year to date
- El año hasta la fecha
+ Año hasta la fecha
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5974,7 +6014,7 @@
Oops! A data provider is experiencing the hiccups.
- ¡Ups! Un proveedor de datos está experimentando problemas.
+ ¡Vaya! Un proveedor de datos está experimentando problemas.
apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html
8
@@ -5993,7 +6033,7 @@
año
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6005,7 +6045,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6013,11 +6053,11 @@
años
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6033,11 +6073,11 @@
Recopilación de datos
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6045,7 +6085,7 @@
General
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6053,7 +6093,7 @@
Nube
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6065,7 +6105,7 @@
Autoalojamiento
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6074,7 +6114,7 @@
self-hosting
- auto-alojado
+ autoalojado
kebab-case
libs/common/src/lib/routes/routes.ts
@@ -6106,7 +6146,7 @@
Activo
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6114,7 +6154,7 @@
Cerrado
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6122,12 +6162,12 @@
Indonesia
libs/ui/src/lib/i18n.ts
- 90
+ 91
Activity
- Actividad
+ Operación
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
229
@@ -6143,10 +6183,10 @@
Execute Job
- Ejecutar Tarea
+ Ejecutar trabajo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6154,7 +6194,7 @@
Prioridad
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6175,7 +6215,7 @@
{VAR_PLURAL, plural, =1 {activity} other {activities}}
- {VAR_PLURAL, plural, =1 {activity} other {activities}}
+ {VAR_PLURAL, plural, =1 {operación} other {operaciones}}
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
14
@@ -6191,10 +6231,10 @@
Delete Activities
- Eliminar actividades
+ Eliminar operaciones
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6207,10 +6247,10 @@
Do you really want to close your Ghostfolio account?
- ¿Estás seguro de querer borrar tu cuenta de Ghostfolio?
+ ¿Seguro que quieres eliminar tu cuenta de Ghostfolio?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6218,7 +6258,7 @@
Zona peligrosa
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6226,7 +6266,7 @@
Eliminar cuenta
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6234,15 +6274,15 @@
Por tenencia de ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
Approximation based on the top holdings of each ETF
- Aproximación basada en las principales participaciones de cada ETF
+ Aproximación basada en las principales posiciones de cada ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6255,18 +6295,18 @@
Include in
- Include in
+ Incluir en
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
Oops! There was an error setting up biometric authentication.
- ¡Ups! Hubo un error al configurar la autenticación biométrica.
+ ¡Vaya! Hubo un error al configurar la autenticación biométrica.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6279,15 +6319,15 @@
Benchmarks
- Puntos de referencia
+ Índices de referencia
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
Delete Profiles
- Borrar Perfiles
+ Eliminar Perfiles
apps/client/src/app/components/admin-market-data/admin-market-data.html
242
@@ -6295,7 +6335,7 @@
Do you really want to delete these profiles?
- Estas seguro de borrar estos perfiles?
+ ¿Seguro que quieres eliminar estos perfiles?
apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
68
@@ -6303,7 +6343,7 @@
Oops! Could not delete profiles.
- ¡Ups! No se pudieron eliminar los perfiles.
+ ¡Vaya! No se pudieron eliminar los perfiles.
apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
56
@@ -6319,7 +6359,7 @@
Chart
- Grafico
+ Gráfico
apps/client/src/app/components/home-holdings/home-holdings.html
19
@@ -6330,7 +6370,7 @@
¿Te gustaría refinar tu estrategia de inversión personal ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6338,7 +6378,7 @@
Alternativa
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6346,15 +6386,15 @@
Aplicación
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
Budgeting
- Presupuestación
+ Presupuestos
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6370,47 +6410,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6418,7 +6462,7 @@
Family Office
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6426,7 +6470,7 @@
Inversor
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6438,7 +6482,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6450,7 +6494,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6458,7 +6502,7 @@
Privacidad
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6466,7 +6510,7 @@
Software
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6474,7 +6518,7 @@
Herramienta
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6482,15 +6526,15 @@
Experiencia del usuario
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
Wealth
- Riqueza
+ Patrimonio
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6498,7 +6542,7 @@
Gestión de patrimonios
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6506,7 +6550,7 @@
Australia
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6514,7 +6558,7 @@
Austria
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6522,7 +6566,7 @@
Bélgica
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6530,15 +6574,15 @@
Bulgaria
libs/ui/src/lib/i18n.ts
- 83
+ 84
View Holding
- View Holding
+ Ver posición
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6546,7 +6590,7 @@
Canadá
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6554,7 +6598,7 @@
República Checa
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6562,7 +6606,7 @@
Finlandia
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6570,7 +6614,7 @@
Francia
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6578,7 +6622,7 @@
Alemania
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6586,7 +6630,7 @@
India
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6594,7 +6638,7 @@
Italia
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6602,7 +6646,7 @@
Países Bajos
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6610,7 +6654,7 @@
Nueva Zelanda
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6618,7 +6662,7 @@
Polonia
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6626,7 +6670,7 @@
Rumanía
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6634,7 +6678,7 @@
Sudáfrica
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6642,7 +6686,7 @@
Tailandia
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6650,7 +6694,7 @@
Estados Unidos
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6658,7 +6702,7 @@
Error
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6679,15 +6723,15 @@
Oops! Could not update access.
- Oops! Could not update access.
+ ¡Vaya! No se pudo actualizar el acceso.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
, based on your total assets of
- , based on your total assets of
+ , basado en tus activos totales de
apps/client/src/app/pages/portfolio/fire/fire-page.html
96
@@ -6710,7 +6754,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6742,7 +6786,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6750,7 +6794,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6759,10 +6803,10 @@
Close
- Cerca
+ Cerrar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6788,13 +6832,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6803,10 +6851,10 @@
Role
- Role
+ Rol
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6830,12 +6878,12 @@
Instantánea de la cartera
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
Change with currency effect Change
- Change with currency effect Change
+ Cambio con el efecto de la divisa Cambio
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
63
@@ -6843,15 +6891,15 @@
If you plan to open an account at
- If you plan to open an account at
+ Si planeas abrir una cuenta en
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
Performance with currency effect Performance
- Performance with currency effect Performance
+ Rendimiento con el efecto de la divisa Rendimiento
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
83
@@ -6875,7 +6923,7 @@
send an e-mail to
- send an e-mail to
+ envía un correo electrónico a
apps/client/src/app/pages/about/overview/about-overview-page.html
87
@@ -6897,6 +6945,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
Desde el principio
@@ -6907,7 +6963,7 @@
Oops! Invalid currency.
- ¡Ups! Moneda inválida.
+ ¡Vaya! Divisa no válida.
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
48
@@ -6947,7 +7003,7 @@
, assuming a
- , assuming a
+ , asumiendo un
apps/client/src/app/pages/portfolio/fire/fire-page.html
174
@@ -6955,10 +7011,10 @@
to use our referral link and get a Ghostfolio Premium membership for one year
- to use our referral link and get a Ghostfolio Premium membership for one year
+ para utilizar nuestro enlace de recomendación y obtener una membresía de Ghostfolio Premium por un año
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7035,7 +7091,7 @@
Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.
- Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.
+ Ghostfolio es una aplicación ligera de gestión de patrimonio para que las personas realicen un seguimiento de acciones, ETFs o criptomonedas y tomen decisiones de inversión sólidas basadas en datos.
apps/client/src/app/pages/about/overview/about-overview-page.html
10
@@ -7043,7 +7099,7 @@
Oops! Could not find any assets.
- ¡Ups! No se pudieron encontrar activos.
+ ¡Vaya! No se pudieron encontrar activos.
libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html
40
@@ -7062,12 +7118,12 @@
Configurar clave API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
Get access to 80’000+ tickers from over 50 exchanges
- Accede a más de 80’000 tickers de más de 50 bolsas
+ Accede a más de 80.000 tickers de más de 50 bolsas
libs/ui/src/lib/i18n.ts
26
@@ -7078,7 +7134,7 @@
Ucrania
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7098,7 +7154,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7114,7 +7170,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7149,7 +7205,7 @@
Threshold range
- Rango umbral
+ Rango del umbral
apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
9
@@ -7168,7 +7224,7 @@
de
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7176,7 +7232,7 @@
solicitudes diarias
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7184,35 +7240,35 @@
Eliminar clave API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
Do you really want to delete the API key?
- ¿Realmente deseas eliminar la clave API?
+ ¿Seguro que quieres eliminar la clave API?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
Please enter your Ghostfolio API key:
- Ingrese su clave API de Ghostfolio:
+ Ingresa tu clave API de Ghostfolio:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
API Requests Today
- Solicitudes de API hoy
+ Solicitudes de API de hoy
apps/client/src/app/components/admin-users/admin-users.html
161
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7225,7 +7281,7 @@
Set this API key in your self-hosted environment:
- Configure esta clave API en su entorno autohospedado:
+ Configura esta clave API en tu entorno autoalojado:
apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
151
@@ -7241,7 +7297,7 @@
Do you really want to generate a new API key?
- ¿Realmente desea generar una nueva clave API?
+ ¿Seguro que quieres generar una nueva clave API?
apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
159
@@ -7257,7 +7313,7 @@
Generate Ghostfolio Premium Data Provider API key for self-hosted environments...
- Genere la clave API del proveedor de datos premium de Ghostfolio para entornos autohospedados...
+ Genera la clave API del proveedor de datos premium de Ghostfolio para entornos autoalojados...
libs/ui/src/lib/membership-card/membership-card.component.html
29
@@ -7265,7 +7321,7 @@
out of
- fuera de
+ de
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
56
@@ -7273,7 +7329,7 @@
rules align with your portfolio.
- Las reglas se alinean con su cartera.
+ reglas se alinean con tu cartera.
apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
58
@@ -7281,10 +7337,10 @@
Save
- Ahorrar
+ Guardar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7320,11 +7376,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7336,7 +7392,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7349,7 +7405,7 @@
Check the system status at
- Check the system status at
+ Verifica el estado del sistema en
apps/client/src/app/pages/about/overview/about-overview-page.html
57
@@ -7360,12 +7416,20 @@
Por favor, ingresa tu clave API de Ghostfolio.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Cambio con el efecto de la divisa
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
AI prompt has been copied to the clipboard
- El aviso de IA ha sido copiado al portapapeles
+ El prompt para la IA ha sido copiado al portapapeles
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
199
@@ -7376,15 +7440,15 @@
El enlace ha sido copiado al portapapeles
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
Lazy
- Perezoso
+ Bajo demanda
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7392,7 +7456,7 @@
Instantáneo
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7400,7 +7464,7 @@
Precio de mercado por defecto
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7408,7 +7472,7 @@
Modo
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7416,7 +7480,7 @@
Selector
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7424,7 +7488,7 @@
Encabezados de solicitud HTTP
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7432,7 +7496,7 @@
final del día
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7440,7 +7504,7 @@
en tiempo real
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7461,14 +7525,14 @@
Change
- Cambiar
+ Cambio
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7480,24 +7544,24 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
The project has been initiated by
- The project has been initiated by
+ El proyecto ha sido iniciado por
apps/client/src/app/pages/about/overview/about-overview-page.html
40
@@ -7505,7 +7569,7 @@
Copy portfolio data to clipboard for AI prompt
- Copiar los datos del portafolio al portapapeles para el aviso de IA
+ Copiar los datos de la cartera al portapapeles para el prompt de IA
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
42
@@ -7513,18 +7577,26 @@
Copy AI prompt to clipboard for analysis
- Copiar el aviso de IA al portapapeles para análisis
+ Copiar el prompt de IA al portapapeles para análisis
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
67
+
+ Total amount
+ Importe total
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Armenia
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7532,7 +7604,7 @@
Islas Vírgenes Británicas
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7540,12 +7612,12 @@
Singapur
libs/ui/src/lib/i18n.ts
- 97
+ 98
Terms and Conditions
- Terminos y condiciones
+ Términos y Condiciones
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
15
@@ -7588,27 +7660,27 @@
Token de seguridad
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
Do you really want to generate a new security token for this user?
- ¿Realmente deseas generar un nuevo token de seguridad para este usuario?
+ ¿Seguro que quieres generar un nuevo token de seguridad para este usuario?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
Find account, holding or page...
- Find account, holding or page...
+ Busca una cuenta, posición o página...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7624,7 +7696,7 @@
Reino Unido
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7662,7 +7734,7 @@
and I agree to the Terms of Service .
- y acepto los Términos del servicio .
+ y acepto los Términos de servicio .
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
34
@@ -7673,7 +7745,7 @@
( ) ya está en uso.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7681,7 +7753,7 @@
Ocurrió un error al actualizar a ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7697,7 +7769,7 @@
con acceso a la API para
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7745,7 +7817,7 @@
alguien
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7774,7 +7846,7 @@
Do you really want to delete this item?
- ¿Realmente deseas eliminar este elemento?
+ ¿Seguro que quieres eliminar este elemento?
libs/ui/src/lib/benchmark/benchmark.component.ts
139
@@ -7782,7 +7854,7 @@
Log out
- Finalizar la sesión
+ Cerrar sesión
apps/client/src/app/components/header/header.component.html
329
@@ -7790,7 +7862,7 @@
Calculations are based on delayed market data and may not be displayed in real-time.
- Los cálculos se basan en datos de mercado retrasados y es posible que no se muestren en tiempo real.
+ Los cálculos se basan en datos de mercado con retraso y es posible que no se muestren en tiempo real.
apps/client/src/app/components/home-market/home-market.html
45
@@ -7802,7 +7874,7 @@
changelog
- registro-decambios
+ registro-de-cambios
kebab-case
libs/common/src/lib/routes/routes.ts
@@ -7818,7 +7890,7 @@
La cuenta de usuario de demostración se ha sincronizado.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7826,12 +7898,12 @@
Sincronizar cuenta de usuario de demostración
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
Set up
- Fondo de Emergencia: Establecer
+ Establecer
apps/client/src/app/pages/i18n/i18n-page.html
145
@@ -7853,25 +7925,25 @@
150
-
+
Fee Ratio
- Relación de tarifas
+ Relación de comisiones
apps/client/src/app/pages/i18n/i18n-page.html
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Las tarifas superan el ${thresholdMax}% de su inversión inicial (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ Las comisiones superan el ${thresholdMax}% de tu volumen total de inversión (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Las tarifas no superan el ${thresholdMax}% de su inversión inicial (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ Las comisiones no superan el ${thresholdMax}% de tu volumen total de inversión (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7903,7 +7975,7 @@
Open Source Alternative to
- Alternativa de software libre a
+ Alternativa de software de código abierto a
libs/common/src/lib/routes/routes.ts
326
@@ -7965,7 +8037,7 @@
Fuel your self-hosted Ghostfolio with a powerful data provider to access 80,000+ tickers from over 50 exchanges worldwide.
- Alimenta tu Ghostfolio autoalojado con un proveedor de datos potente para acceder a más de 80.000 tickers de más de 50 intercambios a nivel mundial.
+ Alimenta tu Ghostfolio autoalojado con un proveedor de datos potente para acceder a más de 80.000 tickers de más de 50 bolsas a nivel mundial.
apps/client/src/app/components/admin-settings/admin-settings.component.html
16
@@ -7981,7 +8053,7 @@
Learn more
- Aprender más
+ Más información
apps/client/src/app/components/admin-settings/admin-settings.component.html
38
@@ -7996,7 +8068,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8008,7 +8080,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8029,10 +8101,10 @@
Current month
- Current month
+ Mes actual
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8040,11 +8112,7 @@
nuevo
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8073,7 +8141,7 @@
Equity
- Acciones
+ Renta variable
apps/client/src/app/pages/i18n/i18n-page.html
41
@@ -8137,7 +8205,7 @@
Investment: Base Currency
- Inversión: Moneda base
+ Inversión: Divisa base
apps/client/src/app/pages/i18n/i18n-page.html
85
@@ -8145,7 +8213,7 @@
The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency})
- La mayor parte de tu inversión actual no está en tu moneda base (${baseCurrencyValueRatio}% en ${baseCurrency})
+ La mayor parte de tu inversión actual no está en tu divisa base (${baseCurrencyValueRatio}% en ${baseCurrency})
apps/client/src/app/pages/i18n/i18n-page.html
88
@@ -8153,7 +8221,7 @@
The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency})
- La mayor parte de tu inversión actual está en tu moneda base (${baseCurrencyValueRatio}% en ${baseCurrency})
+ La mayor parte de tu inversión actual está en tu divisa base (${baseCurrencyValueRatio}% en ${baseCurrency})
apps/client/src/app/pages/i18n/i18n-page.html
92
@@ -8198,10 +8266,10 @@
Do you really want to generate a new security token?
- ¿Realmente deseas generar un nuevo token de seguridad?
+ ¿Seguro que quieres generar un nuevo token de seguridad?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8214,7 +8282,7 @@
If you encounter a bug, would like to suggest an improvement or a new feature , please join the Ghostfolio Slack community, post to @ghostfolio_
- If you encounter a bug, would like to suggest an improvement or a new feature , please join the Ghostfolio Slack community, post to @ghostfolio_
+ Si encuentras un error, deseas sugerir una mejora o una nueva funcionalidad , por favor únete a la comunidad de Ghostfolio en Slack y publica en @ghostfolio_
apps/client/src/app/pages/about/overview/about-overview-page.html
69
@@ -8225,7 +8293,7 @@
Acciones
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8237,7 +8305,7 @@
Criptomonedas
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8246,7 +8314,7 @@
-
+
apps/client/src/app/components/admin-users/admin-users.html
39
@@ -8257,7 +8325,7 @@
Gestionar perfil de activo
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8290,7 +8358,7 @@
Account Cluster Risks
- Riesgos de grupo de cuentas
+ Riesgos de agrupación de cuentas
apps/client/src/app/pages/i18n/i18n-page.html
14
@@ -8298,7 +8366,7 @@
Asset Class Cluster Risks
- Riesgos de grupo de clases de activos
+ Riesgos de agrupación de tipos de activos
apps/client/src/app/pages/i18n/i18n-page.html
39
@@ -8306,7 +8374,7 @@
Currency Cluster Risks
- Riesgos del clúster de divisas
+ Riesgos de agrupación de divisas
apps/client/src/app/pages/i18n/i18n-page.html
83
@@ -8314,7 +8382,7 @@
Economic Market Cluster Risks
- Economic Market Cluster Risks
+ Riesgos de agrupación de mercados económicos
apps/client/src/app/pages/i18n/i18n-page.html
106
@@ -8322,7 +8390,7 @@
Emergency Fund
- Emergency Fund
+ Fondo de emergencia
apps/client/src/app/pages/i18n/i18n-page.html
144
@@ -8330,7 +8398,7 @@
Fees
- Fees
+ Comisiones
apps/client/src/app/pages/i18n/i18n-page.html
161
@@ -8338,7 +8406,7 @@
Liquidity
- Liquidity
+ Liquidez
apps/client/src/app/pages/i18n/i18n-page.html
70
@@ -8346,7 +8414,7 @@
Buying Power
- Buying Power
+ Poder adquisitivo
apps/client/src/app/pages/i18n/i18n-page.html
71
@@ -8354,7 +8422,7 @@
Your buying power is below ${thresholdMin} ${baseCurrency}
- Your buying power is below ${thresholdMin} ${baseCurrency}
+ Tu poder adquisitivo está por debajo de ${thresholdMin} ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
73
@@ -8362,7 +8430,7 @@
Your buying power is 0 ${baseCurrency}
- Your buying power is 0 ${baseCurrency}
+ Tu poder adquisitivo es 0 ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
77
@@ -8370,7 +8438,7 @@
Your buying power exceeds ${thresholdMin} ${baseCurrency}
- Your buying power exceeds ${thresholdMin} ${baseCurrency}
+ Tu poder adquisitivo supera ${thresholdMin} ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
80
@@ -8378,7 +8446,7 @@
Regional Market Cluster Risks
- Riesgos de los grupos de mercados regionales
+ Riesgos de agrupación de mercados regionales
apps/client/src/app/pages/i18n/i18n-page.html
163
@@ -8402,7 +8470,7 @@
The developed markets contribution of your current investment (${developedMarketsValueRatio}%) exceeds ${thresholdMax}%
- The developed markets contribution of your current investment (${developedMarketsValueRatio}%) exceeds ${thresholdMax}%
+ La contribución a mercados desarrollados de tu inversión actual (${developedMarketsValueRatio}%) supera ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
112
@@ -8410,7 +8478,7 @@
The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is below ${thresholdMin}%
- The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is below ${thresholdMin}%
+ La contribución a mercados desarrollados de tu inversión actual (${developedMarketsValueRatio}%) es inferior a ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
117
@@ -8418,7 +8486,7 @@
The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ La contribución a mercados desarrollados de tu inversión actual (${developedMarketsValueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
122
@@ -8434,7 +8502,7 @@
The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) exceeds ${thresholdMax}%
- The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) exceeds ${thresholdMax}%
+ La contribución a mercados emergentes de tu inversión actual (${emergingMarketsValueRatio}%) supera ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
130
@@ -8442,7 +8510,7 @@
The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is below ${thresholdMin}%
- The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is below ${thresholdMin}%
+ La contribución a mercados emergentes de tu inversión actual (${emergingMarketsValueRatio}%) es inferior a ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
135
@@ -8450,7 +8518,7 @@
The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ La contribución a mercados emergentes de tu inversión actual (${emergingMarketsValueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
140
@@ -8466,7 +8534,7 @@
Your net worth is managed by 0 accounts
- Su patrimonio neto es administrado por 0 cuentas
+ Tu patrimonio neto es administrado por 0 cuentas
apps/client/src/app/pages/i18n/i18n-page.html
33
@@ -8474,7 +8542,7 @@
Asia-Pacific
- Asia-Pacific
+ Asia-Pacífico
apps/client/src/app/pages/i18n/i18n-page.html
165
@@ -8482,7 +8550,7 @@
The Asia-Pacific market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- The Asia-Pacific market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ La contribución al mercado Asiático-Pacífico de tu inversión actual (${valueRatio}%) supera ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
167
@@ -8490,7 +8558,7 @@
The Asia-Pacific market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- The Asia-Pacific market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ La contribución al mercado Asiático-Pacífico de tu inversión actual (${valueRatio}%) es inferior a ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
171
@@ -8498,7 +8566,7 @@
The Asia-Pacific market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The Asia-Pacific market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ La contribución al mercado Asiático-Pacífico de tu inversión actual (${valueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
175
@@ -8506,7 +8574,7 @@
Emerging Markets
- Emerging Markets
+ Mercados emergentes
apps/client/src/app/pages/i18n/i18n-page.html
180
@@ -8514,7 +8582,7 @@
The Emerging Markets contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- The Emerging Markets contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ La contribución a mercados emergentes de tu inversión actual (${valueRatio}%) supera ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
183
@@ -8522,7 +8590,7 @@
The Emerging Markets contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- The Emerging Markets contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ La contribución a mercados emergentes de tu inversión actual (${valueRatio}%) es inferior a ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
187
@@ -8530,7 +8598,7 @@
The Emerging Markets contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The Emerging Markets contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ La contribución a mercados emergentes de tu inversión actual (${valueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
191
@@ -8538,7 +8606,7 @@
Europe
- Europe
+ Europa
apps/client/src/app/pages/i18n/i18n-page.html
195
@@ -8546,7 +8614,7 @@
The Europe market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- The Europe market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ La contribución al mercado europeo de tu inversión actual (${valueRatio}%) supera ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
197
@@ -8554,7 +8622,7 @@
The Europe market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- The Europe market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ La contribución al mercado europeo de tu inversión actual (${valueRatio}%) es inferior a ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
201
@@ -8562,7 +8630,7 @@
The Europe market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The Europe market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ La contribución al mercado europeo de tu inversión actual (${valueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
205
@@ -8578,7 +8646,7 @@
The Japan market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- La contribución al mercado japonés de su inversión actual (${valueRatio}%) supera el ${thresholdMax}%
+ La contribución al mercado japonés de tu inversión actual (${valueRatio}%) supera el ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
211
@@ -8586,7 +8654,7 @@
The Japan market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- La contribución al mercado japonés de su inversión actual (${valueRatio}%) es inferior a ${thresholdMin}%
+ La contribución al mercado japonés de tu inversión actual (${valueRatio}%) es inferior a ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
215
@@ -8594,7 +8662,7 @@
The Japan market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- La contribución al mercado japonés de su inversión actual (${valueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
+ La contribución al mercado japonés de tu inversión actual (${valueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
219
@@ -8610,7 +8678,7 @@
The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- La contribución del mercado de América del Norte de su inversión actual (${valueRatio}%) supera el ${thresholdMax}%
+ La contribución al mercado de América del Norte de tu inversión actual (${valueRatio}%) supera el ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
225
@@ -8618,7 +8686,7 @@
The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- La contribución al mercado de América del Norte de su inversión actual (${valueRatio}%) es inferior a ${thresholdMin}%
+ La contribución al mercado de América del Norte de tu inversión actual (${valueRatio}%) es inferior a ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
229
@@ -8626,7 +8694,7 @@
The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- La contribución al mercado de América del Norte de su inversión actual (${valueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
+ La contribución al mercado de América del Norte de tu inversión actual (${valueRatio}%) está dentro del rango de ${thresholdMin}% y ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
233
@@ -8646,7 +8714,7 @@
Join the Ghostfolio Slack community
- Únete a la comunidad de Ghostfolio Slack
+ Únete a la comunidad de Ghostfolio en Slack
apps/client/src/app/pages/about/overview/about-overview-page.html
109
@@ -8654,7 +8722,7 @@
Follow Ghostfolio on X (formerly Twitter)
- Siga a Ghostfolio en X (anteriormente Twitter)
+ Sigue a Ghostfolio en X (anteriormente Twitter)
apps/client/src/app/pages/about/overview/about-overview-page.html
118
@@ -8674,15 +8742,15 @@
Registration Date
- Registration Date
+ Fecha de registro
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
Follow Ghostfolio on LinkedIn
- Siga a Ghostfolio en LinkedIn
+ Sigue a Ghostfolio en LinkedIn
apps/client/src/app/pages/about/overview/about-overview-page.html
147
@@ -8690,7 +8758,7 @@
Ghostfolio is an independent & bootstrapped business
- Ghostfolio es una empresa independiente y autónoma
+ Ghostfolio es una empresa independiente y autofinanciada
apps/client/src/app/pages/about/overview/about-overview-page.html
157
@@ -8698,7 +8766,7 @@
Support Ghostfolio
- Soporte Ghostfolio
+ Apoya a Ghostfolio
apps/client/src/app/pages/about/overview/about-overview-page.html
166
diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf
index 5bb9d6489..d2de4b979 100644
--- a/apps/client/src/locales/messages.fr.xlf
+++ b/apps/client/src/locales/messages.fr.xlf
@@ -6,7 +6,7 @@
Le risque de perte en investissant peut être important. Il est déconseillé d’investir de l’argent dont vous pourriez avoir besoin à court terme.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -34,7 +34,7 @@
please
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -42,7 +42,7 @@
Type
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -54,7 +54,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -70,7 +74,7 @@
Révoquer
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -81,20 +85,12 @@
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
Voulez-vous vraiment révoquer cet accès ?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -110,7 +106,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -122,7 +118,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -134,7 +130,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -150,15 +146,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -166,7 +162,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -182,7 +178,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -194,7 +190,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -206,15 +202,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -230,7 +226,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -242,15 +238,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -258,23 +254,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -298,19 +294,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -326,15 +322,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -342,11 +342,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -358,7 +358,7 @@
Voulez-vous vraiment supprimer ce compte ?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -366,7 +366,7 @@
Source Données
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -378,7 +378,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -390,7 +390,7 @@
Tentatives
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -398,7 +398,7 @@
Créé
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -406,7 +406,7 @@
Terminé
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -414,11 +414,11 @@
Statut
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -434,7 +434,7 @@
Supprimer Tâches
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -442,7 +442,7 @@
Profils d’Actifs
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -454,11 +454,11 @@
Données historiques du marché
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -466,7 +466,7 @@
Voir Données
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -474,7 +474,7 @@
Voir la Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -482,7 +482,7 @@
Supprimer Tâche
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -498,7 +498,7 @@
Date
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -506,7 +506,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -534,7 +534,7 @@
Filtrer par...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -554,7 +554,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -574,7 +574,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -642,7 +642,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -654,7 +654,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -662,7 +662,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -674,7 +674,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -686,7 +686,7 @@
Équivalence de Symboles
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -694,7 +694,7 @@
Note
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -702,7 +702,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -710,7 +710,7 @@
Voulez-vous vraiment supprimer ce code promotionnel ?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -718,7 +718,7 @@
Voulez-vous vraiment vider le cache ?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -726,7 +726,7 @@
Veuillez définir votre message système :
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -734,7 +734,7 @@
Nombre d’Utilisateurs
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -742,7 +742,7 @@
Nombre d’Activités
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -750,7 +750,7 @@
par Utilisateur
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -766,7 +766,7 @@
Étiquettes
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -782,7 +782,7 @@
Inscription de Nouveaux Utilisateurs
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -790,7 +790,7 @@
Mode Lecture Seule
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -798,7 +798,7 @@
Message Système
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -806,7 +806,7 @@
Définir Message
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -814,7 +814,7 @@
Codes promotionnels
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -822,7 +822,7 @@
Ajouter
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -834,7 +834,7 @@
Maintenance
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -842,7 +842,7 @@
Vider le Cache
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -850,7 +850,7 @@
Voulez-vous vraiment supprimer cet·te utilisateur·rice ?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -886,7 +886,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -902,11 +902,11 @@
Could not validate form
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -934,7 +934,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -946,7 +946,7 @@
Référence
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -982,7 +982,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -1002,15 +1002,15 @@
Oups! Jeton de Sécurité Incorrect.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -1018,7 +1018,7 @@
Gérer les Activités
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -1026,15 +1026,15 @@
Peur
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -1042,15 +1042,15 @@
Avidité
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -1070,7 +1070,7 @@
Montant Total
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -1098,7 +1098,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -1142,7 +1142,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -1182,7 +1182,7 @@
Performance Absolue Brute
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -1190,11 +1190,11 @@
Performance Absolue Nette
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -1202,11 +1202,11 @@
Performance nette
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -1214,7 +1214,7 @@
Actifs Totaux
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -1222,7 +1222,7 @@
Pouvoir d’Achat
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -1230,7 +1230,7 @@
Exclus de l’Analyse
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -1238,7 +1238,7 @@
Fortune
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -1246,7 +1246,7 @@
Performance annualisée
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -1282,15 +1282,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1298,7 +1298,7 @@
Signaler une Erreur de Données
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1310,7 +1310,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -1318,11 +1318,11 @@
CDA
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -1330,11 +1330,11 @@
1A
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -1342,11 +1342,19 @@
5A
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -1354,11 +1362,11 @@
Max
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -1382,7 +1390,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -1394,7 +1402,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -1410,7 +1418,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -1474,7 +1482,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -1514,7 +1522,7 @@
Voulez-vous vraiment supprimer cette méthode de connexion ?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -1534,7 +1542,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -1558,7 +1566,7 @@
Vue de Présentation
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -1582,11 +1590,11 @@
Paramètres régionaux
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -1594,7 +1602,7 @@
Format de date et d’heure
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -1602,7 +1610,7 @@
Apparence
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -1610,7 +1618,7 @@
Clair
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -1618,7 +1626,7 @@
Sombre
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -1626,7 +1634,7 @@
Mode Zen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -1638,7 +1646,7 @@
Se connecter avec empreinte
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -1646,7 +1654,7 @@
Fonctionnalités expérimentales
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -1658,11 +1666,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -1710,11 +1718,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -1758,7 +1766,7 @@
Données du marché
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -1902,7 +1910,7 @@
Puisque vous êtes déjà connecté·e, vous ne pouvez pas accéder au compte de démonstration.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -1990,7 +1998,7 @@
Marchés
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -2014,7 +2022,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -2042,7 +2050,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -2062,11 +2070,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -2078,7 +2086,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -2094,7 +2102,7 @@
Current week
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -2138,7 +2146,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -2146,11 +2154,11 @@
Prix Unitaire
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -2158,7 +2166,7 @@
Import des données...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -2166,7 +2174,7 @@
L’import est terminé
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -2182,7 +2190,7 @@
Validation des données...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -2218,7 +2226,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -2250,7 +2258,7 @@
Par Compte
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -2258,7 +2266,7 @@
Par Devise
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -2266,7 +2274,7 @@
Par Classe d’Actifs
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -2274,7 +2282,7 @@
Par Position
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -2282,7 +2290,7 @@
Par Secteur
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -2290,7 +2298,7 @@
Par Continent
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -2298,7 +2306,7 @@
Par Pays
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -2306,11 +2314,11 @@
Régions
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -2330,11 +2338,11 @@
Marchés développés
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
@@ -2342,7 +2350,7 @@
Latest activities
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -2350,11 +2358,11 @@
Marchés émergents
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -2362,11 +2370,11 @@
Autres marchés
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -2386,7 +2394,7 @@
Looking for a student discount?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -2402,7 +2410,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -2410,7 +2418,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -2434,7 +2442,7 @@
Dépôt
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -2450,7 +2458,7 @@
Haut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -2458,7 +2466,7 @@
Bas
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -2466,7 +2474,7 @@
Évolution du Portefeuille
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -2474,7 +2482,7 @@
Historique des Investissements
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -2482,7 +2490,7 @@
Historique des Dividendes
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -2546,7 +2554,7 @@
Continents
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -2562,7 +2570,7 @@
Ghostfolio vous aide à garder un aperçu de votre patrimoine.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -2574,7 +2582,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -2586,11 +2594,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -2644,6 +2652,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Resources
@@ -2696,6 +2708,10 @@
Overview
Aperçu
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -2714,11 +2730,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -2734,7 +2750,7 @@
Brouillon
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -2746,11 +2762,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -2758,11 +2774,11 @@
Exporter Activités
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -2770,11 +2786,11 @@
Exporter Brouillons sous ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -2782,7 +2798,7 @@
Dupliquer
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -2790,7 +2806,7 @@
Exporter Brouillon sous ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -2798,7 +2814,7 @@
Voulez-vous vraiment supprimer cette activité ?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -2814,7 +2830,7 @@
contact us
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -2850,11 +2866,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -2866,7 +2882,7 @@
Épargne
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -2874,11 +2890,11 @@
Part
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -2894,7 +2910,7 @@
Montrer tout
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -2906,7 +2922,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -2930,7 +2946,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -2938,7 +2954,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -2962,7 +2978,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -2970,7 +2986,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -2982,7 +2998,7 @@
Fonds d’Urgence
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -3002,7 +3018,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -3010,7 +3026,7 @@
Symbole
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -3026,7 +3042,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -3050,7 +3066,7 @@
Cash
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -3098,7 +3114,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -3130,7 +3146,7 @@
SICAV
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -3138,7 +3154,7 @@
Métal Précieux
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -3146,7 +3162,7 @@
Capital Propre
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -3154,7 +3170,7 @@
Action
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -3162,7 +3178,7 @@
Afrique
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -3170,7 +3186,7 @@
Asie
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -3178,7 +3194,7 @@
Europe
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -3186,7 +3202,7 @@
Amérique du Nord
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -3202,7 +3218,7 @@
Océanie
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -3210,7 +3226,7 @@
Amérique du Sud
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -3226,11 +3242,11 @@
Pas de données disponibles
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -3238,11 +3254,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -3282,15 +3298,15 @@
Importer Dividendes
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3298,7 +3314,7 @@
Valide jusqu’au
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -3337,6 +3353,14 @@
22
+
+ No Activities
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Réserve pour retraite
@@ -3345,6 +3369,14 @@
28
+
+ Everything in Basic , plus
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Satellite
@@ -3358,7 +3390,7 @@
Protection pour les informations sensibles telles que la performance absolue et les montants
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -3366,7 +3398,7 @@
Expérience sans distraction pour les périodes tumultueuses
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -3374,7 +3406,7 @@
Avant-première de fonctionnalités futures
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -3398,7 +3430,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -3414,7 +3446,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -3430,7 +3462,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -3446,7 +3478,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -3494,7 +3526,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -3578,7 +3610,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -3594,7 +3626,7 @@
Paiement unique, sans auto-renouvellement.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
@@ -3602,11 +3634,11 @@
Could not save asset profile
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -3614,7 +3646,7 @@
C’est gratuit.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -3626,7 +3658,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -3646,7 +3678,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -3690,7 +3722,7 @@
Support par E-mail et Tchat
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -3709,6 +3741,14 @@
14
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Données de marché fournies par
@@ -3734,7 +3774,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -3758,7 +3798,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -3790,7 +3830,7 @@
Voulez-vous vraiment supprimer toutes vos activités ?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3798,7 +3838,15 @@
Par Émetteur d’ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
@@ -3822,7 +3870,7 @@
Current year
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -3838,11 +3886,11 @@
Lien
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -3858,7 +3906,7 @@
Asset profile has been saved
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -3866,7 +3914,7 @@
Voulez-vous vraiment supprimer cette plateforme ?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
@@ -3874,7 +3922,7 @@
Platformes
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -3882,7 +3930,7 @@
Mettre à jour le Solde
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3890,7 +3938,7 @@
Par Plateforme
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -4002,7 +4050,7 @@
Série en cours
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4010,7 +4058,7 @@
Série la plus longue
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4054,7 +4102,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -4062,7 +4110,7 @@
Dettes
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -4194,7 +4242,7 @@
Logiciel Open Source
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -4218,7 +4266,7 @@
Configuration du Scraper
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -4457,20 +4505,12 @@
43
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
-
-
ETFs without Countries
ETF sans Pays
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -4478,7 +4518,7 @@
ETF sans Secteurs
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -4486,7 +4526,7 @@
Actifs
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -4502,7 +4542,7 @@
par marché
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -4518,7 +4558,7 @@
Japon
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -4614,7 +4654,7 @@
Authentication biométrique
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -4658,7 +4698,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -4706,7 +4746,7 @@
Exporter les Data
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -4714,11 +4754,11 @@
Devises
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
+ 95
@@ -4766,11 +4806,11 @@
Could not parse scraper configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -5324,11 +5364,11 @@
Suisse
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -5336,7 +5376,7 @@
Mondial
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -5364,7 +5404,7 @@
with your university e-mail address
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -5432,11 +5472,11 @@
Frais
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5464,7 +5504,7 @@
Confirmez la suppression de ce tag ?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -5532,7 +5572,7 @@
Statut
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -5548,7 +5588,7 @@
Request it
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -5564,7 +5604,7 @@
Profil d’Actif
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -5664,7 +5704,7 @@
Extreme Peur
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -5672,7 +5712,7 @@
Extreme Cupidité
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5680,7 +5720,7 @@
Neutre
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -5688,7 +5728,7 @@
Oops! Echec du parsing des données historiques.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -5696,7 +5736,7 @@
Confirmer la suppresion de ce message système?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -5720,7 +5760,7 @@
Cash Balances
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -5740,7 +5780,7 @@
Voulez-vous vraiment supprimer ce solde de compte ?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -5756,7 +5796,7 @@
Le prix actuel du marché est
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5764,7 +5804,7 @@
Test
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5804,7 +5844,7 @@
Oops! Impossible d’accorder l’accès.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -5812,7 +5852,7 @@
Argentina
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5860,7 +5900,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
@@ -5868,7 +5908,7 @@
here
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
@@ -5876,7 +5916,7 @@
Close Holding
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5884,7 +5924,7 @@
Performance des Actifs en valeur absolue
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5892,7 +5932,7 @@
Performance des Actifs
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -5900,7 +5940,7 @@
Performance des devises en valeur absolue
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -5908,7 +5948,7 @@
Performance des devises
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5916,7 +5956,7 @@
Week to date
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5924,11 +5964,11 @@
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5936,7 +5976,7 @@
Month to date
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5944,11 +5984,11 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5956,7 +5996,7 @@
Year to date
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5992,7 +6032,7 @@
année
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6004,7 +6044,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6012,11 +6052,11 @@
années
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6032,11 +6072,11 @@
Collecter les données
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6044,7 +6084,7 @@
Général
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6052,7 +6092,7 @@
Cloud
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6064,7 +6104,7 @@
Self-Hosting
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6105,7 +6145,7 @@
Actif
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6113,7 +6153,7 @@
Clôturé
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6121,7 +6161,7 @@
Indonesia
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -6145,7 +6185,7 @@
Execute la tâche
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6153,7 +6193,7 @@
Priorité
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6193,7 +6233,7 @@
Supprimer les Activitées
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6209,7 +6249,7 @@
Confirmer la suppresion de votre compte Ghostfolio ?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6217,7 +6257,7 @@
Zone de danger
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6225,7 +6265,7 @@
Supprimer le compte
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6233,7 +6273,7 @@
Par détention ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -6241,7 +6281,7 @@
Approximation basée sur les principaux titres de chaque ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6257,7 +6297,7 @@
Include in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -6265,7 +6305,7 @@
Oops! Une erreur s’est produite lors de la configuration de l’authentification biométrique.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6281,7 +6321,7 @@
Benchmarks
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -6329,7 +6369,7 @@
Souhaitez-vous affiner votre stratégie d’investissement personnelle ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6337,7 +6377,7 @@
Alternative
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6345,7 +6385,7 @@
App
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6353,7 +6393,7 @@
Budget
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6369,47 +6409,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6417,7 +6461,7 @@
Family Office
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6425,7 +6469,7 @@
Investisseur
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6437,7 +6481,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6449,7 +6493,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6457,7 +6501,7 @@
Confidentialité
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6465,7 +6509,7 @@
Logiciels
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6473,7 +6517,7 @@
Outils
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6481,7 +6525,7 @@
Expérience Utilisateur
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6489,7 +6533,7 @@
Patrimoine
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6497,7 +6541,7 @@
Gestion de Patrimoine
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6505,7 +6549,7 @@
Australie
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6513,7 +6557,7 @@
Autriche
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6521,7 +6565,7 @@
Belgique
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6529,7 +6573,7 @@
Bulgarie
libs/ui/src/lib/i18n.ts
- 83
+ 84
@@ -6537,7 +6581,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6545,7 +6589,7 @@
Canada
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6553,7 +6597,7 @@
République Tchèque
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6561,7 +6605,7 @@
Finlande
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6569,7 +6613,7 @@
France
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6577,7 +6621,7 @@
Allemagne
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6585,7 +6629,7 @@
Inde
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6593,7 +6637,7 @@
Italie
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6601,7 +6645,7 @@
Pays-Bas
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6609,7 +6653,7 @@
Nouvelle-Zélande
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6617,7 +6661,7 @@
Pologne
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6625,7 +6669,7 @@
Roumanie
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6633,7 +6677,7 @@
Afrique du Sud
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6641,7 +6685,7 @@
Thaïlande
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6649,7 +6693,7 @@
Etats-Unis
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6657,7 +6701,7 @@
Erreur
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6681,7 +6725,7 @@
Oops! Could not update access.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
@@ -6709,7 +6753,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6741,7 +6785,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6749,7 +6793,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6761,7 +6805,7 @@
Fermer
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6787,13 +6831,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6805,7 +6853,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6829,7 +6877,7 @@
Résumé du portefeuille
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6845,7 +6893,7 @@
If you plan to open an account at
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6896,6 +6944,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
Depuis le début
@@ -6957,7 +7013,7 @@
to use our referral link and get a Ghostfolio Premium membership for one year
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7061,7 +7117,7 @@
Définir clé API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7077,7 +7133,7 @@
Ukraine
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7097,7 +7153,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7113,7 +7169,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7167,7 +7223,7 @@
sur
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7175,7 +7231,7 @@
requêtes journalières
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7183,7 +7239,7 @@
Retirer la clé API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7191,7 +7247,7 @@
Voulez-vous vraiment supprimer la clé API?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7199,7 +7255,7 @@
Veuillez saisir votre clé API Ghostfolio :
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7211,7 +7267,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7283,7 +7339,7 @@
Sauvegarder
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7319,11 +7375,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7335,7 +7391,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7359,7 +7415,15 @@
Veuillez saisir votre clé API Ghostfolio.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7375,7 +7439,7 @@
Le lien a été copié dans le presse-papiers
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7383,7 +7447,7 @@
Paresseux
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7391,7 +7455,7 @@
Instantané
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7399,7 +7463,7 @@
Prix du marché par défaut
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7407,7 +7471,7 @@
Mode
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7415,7 +7479,7 @@
Selecteur
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7423,7 +7487,7 @@
En-têtes de requête HTTP
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7431,7 +7495,7 @@
fin de journée
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7439,7 +7503,7 @@
temps réel
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7463,11 +7527,11 @@
Variation
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7479,19 +7543,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -7518,12 +7582,20 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Arménie
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7531,7 +7603,7 @@
Îles Vierges britanniques
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7539,7 +7611,7 @@
Singapour
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7587,11 +7659,11 @@
Jeton de sécurité
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7599,7 +7671,7 @@
Voulez-vous vraiment générer un nouveau jeton de sécurité pour cet utilisateur ?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
@@ -7607,7 +7679,7 @@
Find account, holding or page...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7623,7 +7695,7 @@
Royaume-Uni
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7672,7 +7744,7 @@
( ) est déjà utilisé.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7680,7 +7752,7 @@
Une erreur s’est produite lors de la mise à jour vers ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7696,7 +7768,7 @@
avec accès API pour
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7744,7 +7816,7 @@
quelqu’un
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7817,7 +7889,7 @@
Le compte utilisateur de démonstration a été synchronisé.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7825,7 +7897,7 @@
Synchroniser le compte utilisateur de démonstration
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7852,25 +7924,25 @@
150
-
+
Fee Ratio
- Ratio de frais
+ Fee Ratio
apps/client/src/app/pages/i18n/i18n-page.html
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Les frais dépassent ${thresholdMax}% de votre investissement initial (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Les frais ne dépassent pas ${thresholdMax}% de votre investissement initial (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7995,7 +8067,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8007,7 +8079,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8031,7 +8103,7 @@
Current month
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8039,11 +8111,7 @@
new
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8200,7 +8268,7 @@
Voulez-vous vraiment générer un nouveau jeton de sécurité?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8224,7 +8292,7 @@
Actions
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8236,7 +8304,7 @@
Crypto-monnaies
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8256,7 +8324,7 @@
Gérer le profil d’actif
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8676,7 +8744,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf
index 2986e8ee4..e2f7303e2 100644
--- a/apps/client/src/locales/messages.it.xlf
+++ b/apps/client/src/locales/messages.it.xlf
@@ -27,7 +27,7 @@
Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -43,7 +43,7 @@
please
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -51,7 +51,7 @@
Tipo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -63,7 +63,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -79,7 +83,7 @@
Revoca
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -90,20 +94,12 @@
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
Vuoi davvero revocare l’accesso concesso?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -115,7 +111,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -127,7 +123,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -143,15 +139,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -159,7 +155,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -175,7 +171,7 @@
Totale
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -187,15 +183,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -203,23 +199,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -243,19 +239,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -271,15 +267,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -287,11 +287,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -303,7 +303,7 @@
Vuoi davvero eliminare questo account?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -311,7 +311,7 @@
Elimina i lavori
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -319,7 +319,7 @@
Sorgente dei dati
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -331,7 +331,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -343,7 +343,7 @@
Tentativi
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -351,7 +351,7 @@
Creato
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -359,7 +359,7 @@
Finito
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -367,11 +367,11 @@
Stato
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -387,7 +387,7 @@
Profilo dell’asset
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -399,11 +399,11 @@
Dati storici del mercato
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -411,7 +411,7 @@
Visualizza i dati
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -419,7 +419,7 @@
Visualizza Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -427,7 +427,7 @@
Elimina il lavoro
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -443,7 +443,7 @@
Data
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -451,7 +451,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -491,7 +491,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -499,7 +499,7 @@
Conteggio attività
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -511,7 +511,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -519,7 +519,7 @@
Vuoi davvero eliminare questo buono?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -527,7 +527,7 @@
Vuoi davvero svuotare la cache?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -535,7 +535,7 @@
Imposta il messaggio di sistema:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -543,7 +543,7 @@
Numero di utenti
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -551,7 +551,7 @@
per utente
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -579,7 +579,7 @@
Messaggio di sistema
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -587,7 +587,7 @@
Imposta messaggio
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -595,7 +595,7 @@
Modalità di sola lettura
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -603,7 +603,7 @@
Buoni sconto
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -611,7 +611,7 @@
Aggiungi
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -623,7 +623,7 @@
Bilancio domestico
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -631,7 +631,7 @@
Svuota la cache
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -639,7 +639,7 @@
Vuoi davvero eliminare questo utente?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -675,7 +675,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -715,7 +715,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -727,11 +727,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -747,7 +747,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -767,15 +767,15 @@
Ops! Token di sicurezza errato.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -783,7 +783,7 @@
Gestione delle attività
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -815,7 +815,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -859,7 +859,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -899,7 +899,7 @@
Prestazioni lorde assolute
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -907,11 +907,11 @@
Prestazioni nette assolute
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -919,11 +919,11 @@
Prestazioni nette
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -931,7 +931,7 @@
Asset totali
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -939,7 +939,7 @@
Potere d’acquisto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -947,7 +947,7 @@
Patrimonio netto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -955,7 +955,7 @@
Prestazioni annualizzate
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -975,7 +975,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -983,7 +983,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -995,7 +995,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1007,7 +1007,7 @@
Tag
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1023,7 +1023,7 @@
Segnala un’anomalia dei dati
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1031,11 +1031,11 @@
Allocazione
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1051,7 +1051,7 @@
Mostra tutti
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -1063,7 +1063,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -1071,11 +1071,11 @@
anno corrente
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -1083,11 +1083,11 @@
1 anno
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -1095,11 +1095,19 @@
5 anni
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -1107,11 +1115,11 @@
Massimo
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -1127,7 +1135,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -1219,7 +1227,7 @@
Vuoi davvero rimuovere questo metodo di accesso?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -1239,7 +1247,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -1263,7 +1271,7 @@
Vista presentatore
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -1279,11 +1287,11 @@
Locale
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -1291,7 +1299,7 @@
Formato data e numero
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -1299,7 +1307,7 @@
Modalità Zen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -1311,7 +1319,7 @@
Accesso con impronta digitale
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -1323,11 +1331,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -1375,11 +1383,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -1419,7 +1427,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -1431,15 +1439,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -1455,7 +1463,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -1471,7 +1479,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -1611,7 +1619,7 @@
Poiché hai già effettuato l’accesso, non puoi accedere all’account demo.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -1657,6 +1665,10 @@
Overview
Panoramica
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -1675,11 +1687,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -1695,7 +1707,7 @@
Mercati
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -1719,7 +1731,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -1759,7 +1771,7 @@
Per account
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -1767,7 +1779,7 @@
Per valuta
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -1775,7 +1787,7 @@
Per classe asset
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -1783,7 +1795,7 @@
Per partecipazione
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -1791,7 +1803,7 @@
Per settore
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -1799,7 +1811,7 @@
Per continente
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -1807,7 +1819,7 @@
Per paese
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -1815,11 +1827,11 @@
Regioni
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -1839,7 +1851,7 @@
Cronologia degli investimenti
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -1847,7 +1859,7 @@
In alto
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -1855,7 +1867,7 @@
In basso
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -1915,7 +1927,7 @@
Current week
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1959,7 +1971,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -1971,15 +1983,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1987,11 +1999,11 @@
Prezzo unitario
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -1999,7 +2011,7 @@
Nota
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -2007,7 +2019,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -2019,7 +2031,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -2039,11 +2051,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -2055,7 +2067,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -2063,7 +2075,7 @@
Importazione dei dati...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -2071,7 +2083,7 @@
L’importazione è stata completata
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -2131,7 +2143,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -2143,7 +2155,7 @@
Continenti
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -2159,7 +2171,7 @@
Ghostfolio ti permette di tenere traccia della tua ricchezza.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -2189,6 +2201,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Resources
@@ -2243,7 +2259,7 @@
Bozza
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -2255,11 +2271,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -2267,11 +2283,11 @@
Esporta le attività
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -2279,11 +2295,11 @@
Esporta le bozze come ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -2291,7 +2307,7 @@
Clona
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -2299,7 +2315,7 @@
Esporta la bozza come ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -2307,7 +2323,7 @@
Vuoi davvero eliminare questa attività?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -2323,7 +2339,7 @@
contact us
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -2375,7 +2391,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2391,7 +2407,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -2411,11 +2427,11 @@
Mercati sviluppati
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
@@ -2423,7 +2439,7 @@
Latest activities
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -2439,11 +2455,11 @@
Altri mercati
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -2451,11 +2467,11 @@
Mercati emergenti
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -2487,7 +2503,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -2511,7 +2527,7 @@
Risparmio
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -2523,11 +2539,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -2547,7 +2563,7 @@
Deposito
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -2579,15 +2595,15 @@
Paura
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -2595,15 +2611,15 @@
Avidità
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -2611,7 +2627,7 @@
Filtra per...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -2639,7 +2655,7 @@
Funzionalità sperimentali
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -2647,7 +2663,7 @@
Benchmark
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -2659,11 +2675,11 @@
Could not validate form
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -2687,7 +2703,7 @@
Escluso dall’analisi
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -2699,7 +2715,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -2707,7 +2723,7 @@
Aspetto
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -2715,7 +2731,7 @@
Chiaro
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -2723,7 +2739,7 @@
Scuro
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -2731,7 +2747,7 @@
Importo totale
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -2739,7 +2755,7 @@
Evoluzione del portafoglio
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -2759,7 +2775,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -2783,7 +2799,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -2791,7 +2807,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -2807,7 +2823,7 @@
Simbolo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -2823,7 +2839,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -2847,7 +2863,7 @@
Contanti
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -2895,7 +2911,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -2927,7 +2943,7 @@
Fondo comune di investimento
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -2935,7 +2951,7 @@
Metalli preziosi
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -2943,7 +2959,7 @@
Azione ordinaria privata
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -2951,7 +2967,7 @@
Azione
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -2959,7 +2975,7 @@
Fondo di emergenza
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -2979,7 +2995,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -2987,11 +3003,11 @@
Nessun dato disponibile
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -2999,11 +3015,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -3015,7 +3031,7 @@
Nord America
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -3023,7 +3039,7 @@
Africa
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -3031,7 +3047,7 @@
Asia
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -3039,7 +3055,7 @@
Europa
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -3055,7 +3071,7 @@
Oceania
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -3063,7 +3079,7 @@
Sud America
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -3107,7 +3123,7 @@
Mappatura dei simboli
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -3115,7 +3131,7 @@
Looking for a student discount?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -3131,7 +3147,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -3139,7 +3155,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -3155,7 +3171,7 @@
Cronologia dei dividendi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -3171,7 +3187,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -3179,7 +3195,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -3191,7 +3207,7 @@
Registrazione utente
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -3199,7 +3215,7 @@
Convalida dei dati...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3215,7 +3231,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -3223,7 +3239,7 @@
Dati del mercato
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -3240,7 +3256,7 @@
Summary
- Summario
+ Riepilogo
apps/client/src/app/components/home-summary/home-summary.html
2
@@ -3283,15 +3299,15 @@
Importa i dividendi
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3299,7 +3315,7 @@
Valido fino a
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -3338,6 +3354,14 @@
22
+
+ No Activities
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Fondo pensione
@@ -3346,6 +3370,14 @@
28
+
+ Everything in Basic , plus
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Satellite
@@ -3359,7 +3391,7 @@
Protezione delle informazioni sensibili come le prestazioni assolute e i valori quantitativi
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -3367,7 +3399,7 @@
Esperienza priva di distrazioni per i periodi più turbolenti
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -3375,7 +3407,7 @@
Un’anteprima delle funzionalità in arrivo
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -3399,7 +3431,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -3415,7 +3447,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -3431,7 +3463,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -3447,7 +3479,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -3495,7 +3527,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -3579,7 +3611,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -3595,7 +3627,7 @@
Pagamento una tantum, senza rinnovo automatico.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
@@ -3603,11 +3635,11 @@
Could not save asset profile
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -3615,7 +3647,7 @@
È gratuito.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -3627,7 +3659,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -3647,7 +3679,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -3691,7 +3723,7 @@
Supporto via email e chat
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -3710,6 +3742,14 @@
14
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Dati del mercato forniti da
@@ -3735,7 +3775,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -3759,7 +3799,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -3791,7 +3831,7 @@
Vuoi davvero eliminare tutte le tue attività?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3799,7 +3839,15 @@
Per fornitore di ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
@@ -3823,7 +3871,7 @@
Current year
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -3839,11 +3887,11 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -3859,7 +3907,7 @@
Asset profile has been saved
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -3867,7 +3915,7 @@
Vuoi davvero eliminare questa piattaforma?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
@@ -3875,7 +3923,7 @@
Piattaforme
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -3883,7 +3931,7 @@
Aggiornamento del saldo di cassa
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3891,7 +3939,7 @@
Per piattaforma
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -4003,7 +4051,7 @@
Serie attuale
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4011,7 +4059,7 @@
Serie più lunga
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4055,7 +4103,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -4063,7 +4111,7 @@
Passività
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -4195,7 +4243,7 @@
Software open source
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -4219,7 +4267,7 @@
Configurazione dello scraper
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -4458,20 +4506,12 @@
43
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
-
-
ETFs without Countries
ETF senza paesi
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -4479,7 +4519,7 @@
ETF senza settori
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -4487,7 +4527,7 @@
Asset
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -4503,7 +4543,7 @@
Per mercato
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -4519,7 +4559,7 @@
Giappone
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -4615,7 +4655,7 @@
Autenticazione biometrica
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -4659,7 +4699,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -4707,7 +4747,7 @@
Esporta dati
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -4715,11 +4755,11 @@
Valute
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
+ 95
@@ -4767,11 +4807,11 @@
Could not parse scraper configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -5325,11 +5365,11 @@
Svizzera
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -5337,7 +5377,7 @@
Globale
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -5365,7 +5405,7 @@
with your university e-mail address
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -5433,11 +5473,11 @@
Commissione
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5465,7 +5505,7 @@
Sei sicuro di voler eliminare questo tag?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -5533,7 +5573,7 @@
Iscrizione
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -5549,7 +5589,7 @@
Request it
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -5565,7 +5605,7 @@
Profilo dell’asset
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -5665,7 +5705,7 @@
Paura estrema
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -5673,7 +5713,7 @@
Avidità estrema
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5681,7 +5721,7 @@
Neutrale
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -5689,7 +5729,7 @@
Ops! Impossibile elaborare i dati storici.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -5697,7 +5737,7 @@
Confermi di voler cancellare questo messaggio di sistema?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -5721,7 +5761,7 @@
Saldi di cassa
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -5741,7 +5781,7 @@
Vuoi veramente elimnare il saldo di questo conto?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -5757,7 +5797,7 @@
L’attuale prezzo di mercato è
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5765,7 +5805,7 @@
Prova
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5805,7 +5845,7 @@
Ops! Impossibile abilitare l’accesso.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -5813,7 +5853,7 @@
Argentina
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5861,7 +5901,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
@@ -5869,7 +5909,7 @@
here
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
@@ -5877,7 +5917,7 @@
Close Holding
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5885,7 +5925,7 @@
Rendimento assoluto dell’Asset
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5893,7 +5933,7 @@
Rendimento dell’Asset
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -5901,7 +5941,7 @@
Rendimento assoluto della Valuta
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -5909,7 +5949,7 @@
Rendimento della Valuta
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5917,7 +5957,7 @@
Da inizio settimana
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5925,11 +5965,11 @@
Settimana corrente
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5937,7 +5977,7 @@
Da inizio mese
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5945,11 +5985,11 @@
Mese corrente
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5957,7 +5997,7 @@
Da inizio anno
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5993,7 +6033,7 @@
anno
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6005,7 +6045,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6013,11 +6053,11 @@
anni
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6033,11 +6073,11 @@
Raccolta Dati
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6045,7 +6085,7 @@
Generale
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6053,7 +6093,7 @@
Cloud
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6065,7 +6105,7 @@
Self-Hosting
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6106,7 +6146,7 @@
Attivo
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6114,7 +6154,7 @@
Chiuso
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6122,7 +6162,7 @@
Indonesia
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -6146,7 +6186,7 @@
Esegui il lavoro
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6154,7 +6194,7 @@
Priorità
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6194,7 +6234,7 @@
Elimina le attività
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6210,7 +6250,7 @@
Confermi di voler chiudere il tuo account Ghostfolio?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6218,7 +6258,7 @@
Zona di Pericolo
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6226,7 +6266,7 @@
Chiudi l’account
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6234,7 +6274,7 @@
Per ETF posseduti
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -6242,7 +6282,7 @@
Approssimato in base ai principali ETF posseduti
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6258,7 +6298,7 @@
Include in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -6266,7 +6306,7 @@
Ops! C’è stato un errore impostando l’autenticazione biometrica.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6282,7 +6322,7 @@
Benchmarks
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -6330,7 +6370,7 @@
Vorresti perfezionare la tua strategia personale di investimento ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6338,7 +6378,7 @@
Alternativa
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6346,7 +6386,7 @@
App
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6354,7 +6394,7 @@
Budgeting
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6370,47 +6410,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6418,7 +6462,7 @@
Ufficio familiare
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6426,7 +6470,7 @@
Investitore
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6438,7 +6482,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6450,7 +6494,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6458,7 +6502,7 @@
Privacy
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6466,7 +6510,7 @@
Software
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6474,7 +6518,7 @@
Strumento
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6482,7 +6526,7 @@
Esperienza Utente
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6490,7 +6534,7 @@
Ricchezza
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6498,7 +6542,7 @@
Gestione Patrimoniale
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6506,7 +6550,7 @@
Australia
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6514,7 +6558,7 @@
Austria
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6522,7 +6566,7 @@
Belgio
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6530,7 +6574,7 @@
Bulgaria
libs/ui/src/lib/i18n.ts
- 83
+ 84
@@ -6538,7 +6582,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6546,7 +6590,7 @@
Canada
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6554,7 +6598,7 @@
Repubblica Ceca
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6562,7 +6606,7 @@
Finlandia
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6570,7 +6614,7 @@
Francia
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6578,7 +6622,7 @@
Germania
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6586,7 +6630,7 @@
India
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6594,7 +6638,7 @@
Italia
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6602,7 +6646,7 @@
Olanda
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6610,7 +6654,7 @@
Nuova Zelanda
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6618,7 +6662,7 @@
Polonia
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6626,7 +6670,7 @@
Romania
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6634,7 +6678,7 @@
Sud Africa
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6642,7 +6686,7 @@
Tailandia
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6650,7 +6694,7 @@
Stati Uniti
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6658,7 +6702,7 @@
Errore
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6682,7 +6726,7 @@
Oops! Could not update access.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
@@ -6710,7 +6754,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6742,7 +6786,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6750,7 +6794,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6762,7 +6806,7 @@
Chiudi
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6788,13 +6832,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6806,7 +6854,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6830,7 +6878,7 @@
Stato del Portfolio
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6846,7 +6894,7 @@
If you plan to open an account at
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6897,6 +6945,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
Dall’inizio
@@ -6958,7 +7014,7 @@
to use our referral link and get a Ghostfolio Premium membership for one year
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7062,7 +7118,7 @@
Imposta API Key
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7078,7 +7134,7 @@
Ucraina
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7098,7 +7154,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7114,7 +7170,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7168,7 +7224,7 @@
di
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7176,7 +7232,7 @@
richieste giornaliere
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7184,7 +7240,7 @@
Rimuovi API key
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7192,7 +7248,7 @@
Vuoi davvero eliminare l’API key?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7200,7 +7256,7 @@
Inserisci la tua API key di Ghostfolio:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7212,7 +7268,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7284,7 +7340,7 @@
Salva
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7320,11 +7376,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7336,7 +7392,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7360,7 +7416,15 @@
Inserisci la tua API key di Ghostfolio.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7376,7 +7440,7 @@
Il link è stato copiato negli appunti
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7384,7 +7448,7 @@
Pigro
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7392,7 +7456,7 @@
Istantaneo
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7400,7 +7464,7 @@
Prezzo di mercato predefinito
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7408,7 +7472,7 @@
Modalità
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7416,7 +7480,7 @@
Selettore
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7424,7 +7488,7 @@
Intestazioni della richiesta HTTP
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7432,7 +7496,7 @@
fine giornata
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7440,7 +7504,7 @@
in tempo reale
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7464,11 +7528,11 @@
Cambia
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7480,19 +7544,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -7519,12 +7583,20 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Armenia
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7532,7 +7604,7 @@
Isole Vergini Britanniche
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7540,7 +7612,7 @@
Singapore
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7588,11 +7660,11 @@
Token di sicurezza
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7600,7 +7672,7 @@
Vuoi davvero generare un nuovo token di sicurezza per questo utente?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
@@ -7608,7 +7680,7 @@
Find account, holding or page...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7624,7 +7696,7 @@
United Kingdom
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7673,7 +7745,7 @@
( ) e gia in uso.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7681,7 +7753,7 @@
Si è verificato un errore durante l’aggiornamento di ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7697,7 +7769,7 @@
con accesso API per
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7745,7 +7817,7 @@
qualcuno
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7818,7 +7890,7 @@
L’account utente demo è stato sincronizzato.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7826,7 +7898,7 @@
Sincronizza l’account utente demo
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7853,25 +7925,25 @@
150
-
+
Fee Ratio
- Rapporto tariffario
+ Fee Ratio
apps/client/src/app/pages/i18n/i18n-page.html
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Le commissioni superano il ${thresholdMax}% del tuo investimento iniziale (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Le commissioni non superano il ${thresholdMax}% del tuo investimento iniziale (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7996,7 +8068,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8008,7 +8080,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8032,7 +8104,7 @@
Current month
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8040,11 +8112,7 @@
nuovo
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8201,7 +8269,7 @@
Vuoi davvero generare un nuovo token di sicurezza?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8225,7 +8293,7 @@
Azioni
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8237,7 +8305,7 @@
criptovalute
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8257,7 +8325,7 @@
Gestisci profilo risorsa
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8677,7 +8745,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.ko.xlf b/apps/client/src/locales/messages.ko.xlf
new file mode 100644
index 000000000..0d35cd867
--- /dev/null
+++ b/apps/client/src/locales/messages.ko.xlf
@@ -0,0 +1,8777 @@
+
+
+
+
+
+ about
+ about
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 176
+
+
+ libs/common/src/lib/routes/routes.ts
+ 177
+
+
+ libs/common/src/lib/routes/routes.ts
+ 182
+
+
+ libs/common/src/lib/routes/routes.ts
+ 190
+
+
+ libs/common/src/lib/routes/routes.ts
+ 198
+
+
+ libs/common/src/lib/routes/routes.ts
+ 206
+
+
+ libs/common/src/lib/routes/routes.ts
+ 214
+
+
+
+ faq
+ faq
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 234
+
+
+ libs/common/src/lib/routes/routes.ts
+ 235
+
+
+ libs/common/src/lib/routes/routes.ts
+ 239
+
+
+ libs/common/src/lib/routes/routes.ts
+ 245
+
+
+
+ features
+ features
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 254
+
+
+ libs/common/src/lib/routes/routes.ts
+ 255
+
+
+
+ license
+ license
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 188
+
+
+ libs/common/src/lib/routes/routes.ts
+ 191
+
+
+
+ markets
+ markets
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 259
+
+
+ libs/common/src/lib/routes/routes.ts
+ 260
+
+
+
+ pricing
+ pricing
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 269
+
+
+ libs/common/src/lib/routes/routes.ts
+ 270
+
+
+
+ privacy-policy
+ privacy-policy
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 204
+
+
+ libs/common/src/lib/routes/routes.ts
+ 207
+
+
+
+ register
+ register
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 279
+
+
+ libs/common/src/lib/routes/routes.ts
+ 280
+
+
+
+ resources
+ resources
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 284
+
+
+ libs/common/src/lib/routes/routes.ts
+ 285
+
+
+ libs/common/src/lib/routes/routes.ts
+ 290
+
+
+ libs/common/src/lib/routes/routes.ts
+ 298
+
+
+ libs/common/src/lib/routes/routes.ts
+ 306
+
+
+ libs/common/src/lib/routes/routes.ts
+ 314
+
+
+ libs/common/src/lib/routes/routes.ts
+ 322
+
+
+
+ You are using the Live Demo.
+ 현재 라이브 데모를 사용 중입니다.
+
+ apps/client/src/app/app.component.html
+ 12
+
+
+
+ Create Account
+ 계정 생성
+
+ apps/client/src/app/app.component.html
+ 13
+
+
+ apps/client/src/app/pages/register/register-page.html
+ 28
+
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 2
+
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 101
+
+
+
+ Frequently Asked Questions (FAQ)
+ 자주 묻는 질문
+
+ apps/client/src/app/pages/faq/overview/faq-overview-page.html
+ 5
+
+
+ apps/client/src/app/pages/faq/saas/saas-page.html
+ 5
+
+
+ apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html
+ 5
+
+
+
+ The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term.
+ 거래에는 상당한 손실 위험이 따를 수 있습니다. 단기적으로 필요할 수 있는 자금의 투자는 권장되지 않습니다.
+
+ apps/client/src/app/components/footer/footer.component.html
+ 182
+
+
+
+ Alias
+ 별칭
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 4
+
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 17
+
+
+
+ Grantee
+ 권한 수신자
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 11
+
+
+
+ please
+ 부탁드립니다
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 333
+
+
+
+ Type
+ 유형
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 57
+
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 28
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 15
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
+
+
+
+ Details
+ 상세
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 33
+
+
+
+ Revoke
+ 회수
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 97
+
+
+
+ with
+ 와(과)
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 87
+
+
+
+ Do you really want to revoke this granted access?
+ 이 부여된 접근 권한을 정말로 회수하시겠습니까?
+
+ apps/client/src/app/components/access-table/access-table.component.ts
+ 115
+
+
+
+ Cash Balance
+ 현금 잔액
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 45
+
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 34
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 143
+
+
+
+ Platform
+ 플랫폼
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 90
+
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 48
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 93
+
+
+
+ Cash Balances
+ 현금 잔액
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 146
+
+
+
+ Transfer Cash Balance
+ 현금 잔액 이체
+
+ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html
+ 7
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 10
+
+
+
+ Name
+ 이름
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 88
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 310
+
+
+ apps/client/src/app/components/admin-platform/admin-platform.component.html
+ 22
+
+
+ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
+ 15
+
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 58
+
+
+ apps/client/src/app/components/admin-tag/admin-tag.component.html
+ 22
+
+
+ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html
+ 15
+
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 15
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 135
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 50
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 161
+
+
+ libs/ui/src/lib/benchmark/benchmark.component.html
+ 12
+
+
+ libs/ui/src/lib/holdings-table/holdings-table.component.html
+ 23
+
+
+ libs/ui/src/lib/top-holdings/top-holdings.component.html
+ 16
+
+
+ libs/ui/src/lib/top-holdings/top-holdings.component.html
+ 88
+
+
+
+ Total
+ 합계
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 62
+
+
+
+ Currency
+ 통화
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 199
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 317
+
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 45
+
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 25
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 141
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 72
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 307
+
+
+
+ Value
+ 평가액
+
+ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html
+ 53
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 201
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 204
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 207
+
+
+ libs/ui/src/lib/account-balances/account-balances.component.html
+ 34
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 178
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 213
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 288
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 324
+
+
+ libs/ui/src/lib/holdings-table/holdings-table.component.html
+ 93
+
+
+ libs/ui/src/lib/top-holdings/top-holdings.component.html
+ 25
+
+
+ libs/ui/src/lib/top-holdings/top-holdings.component.html
+ 102
+
+
+
+ Edit
+ 편집
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 76
+
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 267
+
+
+ apps/client/src/app/components/admin-platform/admin-platform.component.html
+ 78
+
+
+ apps/client/src/app/components/admin-tag/admin-tag.component.html
+ 71
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 320
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 481
+
+
+
+ Delete
+ 삭제
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 289
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 87
+
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 140
+
+
+ apps/client/src/app/components/admin-platform/admin-platform.component.html
+ 89
+
+
+ apps/client/src/app/components/admin-tag/admin-tag.component.html
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
+
+
+ libs/ui/src/lib/account-balances/account-balances.component.html
+ 80
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 331
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 508
+
+
+ libs/ui/src/lib/benchmark/benchmark.component.html
+ 176
+
+
+
+ Do you really want to delete this account?
+ 이 계정을 정말 삭제하시겠습니까?
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.ts
+ 148
+
+
+
+ Asset Profile
+ 자산 프로필
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 61
+
+
+
+ Historical Market Data
+ 과거 시장 데이터
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 63
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 449
+
+
+
+ Data Source
+ 데이터 소스
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 91
+
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 105
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 180
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 151
+
+
+ libs/ui/src/lib/i18n.ts
+ 15
+
+
+
+ Attempts
+ 시도 횟수
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 129
+
+
+
+ Created
+ 생성됨
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 143
+
+
+
+ Finished
+ 완료됨
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 152
+
+
+
+ Status
+ 상태
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 161
+
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 104
+
+
+
+ and is driven by the efforts of its contributors
+ 기여자 들의 노력으로 발전하고 있습니다
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 49
+
+
+
+ Delete Jobs
+ 작업 삭제
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 202
+
+
+
+ View Data
+ 데이터 보기
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 217
+
+
+
+ View Stacktrace
+ 스택트레이스 보기
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 225
+
+
+
+ Delete Job
+ 작업 삭제
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 233
+
+
+
+ Details for
+ 에 대한 세부정보
+
+ libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
+ 2
+
+
+
+ Date
+ 날짜
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 157
+
+
+ libs/ui/src/lib/account-balances/account-balances.component.html
+ 12
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 196
+
+
+ libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
+ 6
+
+
+
+ Market Price
+ 시장 가격
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 132
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 113
+
+
+ libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
+ 26
+
+
+
+ Currencies
+ 통화
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 130
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 95
+
+
+
+ ETFs without Countries
+ 국가 정보 없는 ETF
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 135
+
+
+
+ ETFs without Sectors
+ 섹터 정보 없는 ETF
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 140
+
+
+
+ Do you really want to delete this asset profile?
+ 이 자산 프로필을 정말 삭제하시겠습니까?
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
+ 37
+
+
+
+ Filter by...
+ 다음 기준으로 필터...
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 383
+
+
+
+ First Activity
+ 첫 활동
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 147
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 217
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 219
+
+
+ libs/ui/src/lib/holdings-table/holdings-table.component.html
+ 45
+
+
+
+ Activities Count
+ 활동 수
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 156
+
+
+
+ Historical Data
+ 과거 데이터
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 165
+
+
+ libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
+ 40
+
+
+
+ Sectors Count
+ 섹터 수
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 174
+
+
+
+ Countries Count
+ 국가 수
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 183
+
+
+
+ Gather Recent Historical Market Data
+ 최근 과거 시장 데이터 수집
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 225
+
+
+
+ Gather All Historical Market Data
+ 전체 과거 시장 데이터 수집
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 230
+
+
+
+ Gather Profile Data
+ 프로필 데이터 수집
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 234
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 66
+
+
+
+ Oops! Could not parse historical data.
+ 이런! 과거 데이터를 파싱할 수 없습니다.
+
+ libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
+ 284
+
+
+
+ Refresh
+ 새로고침
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 21
+
+
+
+ Gather Historical Market Data
+ 과거 시장 데이터 수집
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 34
+
+
+
+ Import
+ 가져오기
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 155
+
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 190
+
+
+ libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
+ 67
+
+
+
+ Sector
+ 섹터
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 262
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 268
+
+
+
+ Country
+ 국가
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 273
+
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 60
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 278
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 78
+
+
+
+ Sectors
+ 섹터
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 279
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 398
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 284
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 113
+
+
+
+ Countries
+ 국가
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 289
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 409
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 296
+
+
+
+ Symbol Mapping
+ 심볼 매핑
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 387
+
+
+
+ and we share aggregated key metrics of the platform’s performance
+ 또한 플랫폼 성과에 대한 집계된 핵심 지표 를 공유합니다
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 32
+
+
+
+ Scraper Configuration
+ 스크래퍼 설정
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 472
+
+
+
+ Note
+ 메모
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 433
+
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 78
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 271
+
+
+
+ Add Asset Profile
+ 자산 프로필 추가
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 7
+
+
+
+ Search
+ 검색
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 16
+
+
+
+ Add Manually
+ 수동 추가
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 18
+
+
+
+ Name, symbol or ISIN
+ 이름, 심볼 또는 ISIN
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 133
+
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 27
+
+
+ apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html
+ 10
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 120
+
+
+
+ Do you really want to delete this coupon?
+ 이 쿠폰을 정말 삭제하시겠습니까?
+
+ apps/client/src/app/components/admin-overview/admin-overview.component.ts
+ 196
+
+
+
+ Do you really want to delete this system message?
+ 이 시스템 메시지를 정말 삭제하시겠습니까?
+
+ apps/client/src/app/components/admin-overview/admin-overview.component.ts
+ 209
+
+
+
+ Do you really want to flush the cache?
+ 정말로 캐시를 플러시하시겠습니까?
+
+ apps/client/src/app/components/admin-overview/admin-overview.component.ts
+ 233
+
+
+
+ Please set your system message:
+ 시스템 메시지를 설정하십시오:
+
+ apps/client/src/app/components/admin-overview/admin-overview.component.ts
+ 253
+
+
+
+ Version
+ 버전
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 7
+
+
+
+ User Count
+ 사용자 수
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 16
+
+
+
+ Activity Count
+ 활동 수
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 22
+
+
+
+ per User
+ 사용자당
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 31
+
+
+
+ Add Currency
+ 통화 추가
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 20
+
+
+
+ User Signup
+ 사용자 가입
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 37
+
+
+
+ Read-only Mode
+ 읽기 전용 모드
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 51
+
+
+
+ System Message
+ 시스템 메시지
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 75
+
+
+
+ Set Message
+ 메시지 설정
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 97
+
+
+
+ Coupons
+ 쿠폰
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 105
+
+
+
+ Add
+ 추가
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 185
+
+
+ libs/ui/src/lib/account-balances/account-balances.component.html
+ 93
+
+
+
+ Housekeeping
+ 유지 관리
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 193
+
+
+
+ Flush Cache
+ 캐시 플러시
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 209
+
+
+
+ Add Platform
+ 플랫폼 추가
+
+ apps/client/src/app/components/admin-platform/admin-platform.component.html
+ 9
+
+
+
+ Url
+ 링크
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 420
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 551
+
+
+ apps/client/src/app/components/admin-platform/admin-platform.component.html
+ 38
+
+
+ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
+ 25
+
+
+
+ Asset profile has been saved
+ Asset profile has been saved
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 594
+
+
+
+ Do you really want to delete this platform?
+ 정말로 이 플랫폼을 삭제하시겠습니까?
+
+ apps/client/src/app/components/admin-platform/admin-platform.component.ts
+ 111
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
+
+
+
+ By
+ 에 의해
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 139
+
+
+
+ Update platform
+ 플랫폼 업데이트
+
+ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
+ 8
+
+
+
+ Current year
+ 올해
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 205
+
+
+
+ Add platform
+ 플랫폼 추가
+
+ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
+ 10
+
+
+
+ Platforms
+ 플랫폼
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 212
+
+
+
+ Tags
+ 태그
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 218
+
+
+ libs/ui/src/lib/tags-selector/tags-selector.component.html
+ 4
+
+
+ libs/ui/src/lib/tags-selector/tags-selector.component.html
+ 16
+
+
+
+ Add Tag
+ 태그 추가
+
+ apps/client/src/app/components/admin-tag/admin-tag.component.html
+ 9
+
+
+
+ Do you really want to delete this tag?
+ 이 태그를 정말로 삭제하시겠습니까?
+
+ apps/client/src/app/components/admin-tag/admin-tag.component.ts
+ 108
+
+
+
+ Update tag
+ 태그 업데이트
+
+ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html
+ 8
+
+
+
+ Add tag
+ 태그 추가
+
+ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html
+ 10
+
+
+
+ Do you really want to delete this user?
+ 이 사용자를 정말로 삭제하시겠습니까?
+
+ apps/client/src/app/components/admin-users/admin-users.component.ts
+ 215
+
+
+
+ User
+ 사용자
+
+ apps/client/src/app/components/admin-tag/admin-tag.component.html
+ 31
+
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 12
+
+
+ apps/client/src/app/components/header/header.component.html
+ 231
+
+
+
+ No auto-renewal on membership.
+ 멤버십 자동 갱신은 없습니다.
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.html
+ 74
+
+
+
+ Engagement per Day
+ 일일 참여
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 140
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 114
+
+
+
+ Last Request
+ 마지막 요청
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 186
+
+
+
+ Impersonate User
+ 사용자 대리 접속
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 233
+
+
+
+ Delete User
+ 사용자 삭제
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 254
+
+
+
+ Could not validate form
+ Could not validate form
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 570
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 573
+
+
+
+ Compare with...
+ 비교해보세요...
+
+ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html
+ 18
+
+
+
+ Manage Benchmarks
+ 벤치마크 관리
+
+ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html
+ 35
+
+
+
+ Portfolio
+ 포트폴리오
+
+ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
+ 140
+
+
+ apps/client/src/app/components/header/header.component.html
+ 44
+
+
+ apps/client/src/app/components/header/header.component.html
+ 258
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 95
+
+
+ libs/common/src/lib/routes/routes.ts
+ 151
+
+
+
+ Benchmark
+ 기준
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 379
+
+
+ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
+ 152
+
+
+
+ Current Market Mood
+ 현재 시장 분위기
+
+ apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html
+ 12
+
+
+
+ About Ghostfolio
+ 고스트폴리오 소개
+
+ apps/client/src/app/components/header/header.component.html
+ 326
+
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 5
+
+
+
+ Sign in
+ 로그인
+
+ apps/client/src/app/components/header/header.component.html
+ 422
+
+
+ apps/client/src/app/components/header/header.component.ts
+ 298
+
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 79
+
+
+ libs/common/src/lib/routes/routes.ts
+ 81
+
+
+ libs/common/src/lib/routes/routes.ts
+ 157
+
+
+
+ Oops! Incorrect Security Token.
+ 이런! 잘못된 보안 토큰.
+
+ apps/client/src/app/components/header/header.component.ts
+ 313
+
+
+ apps/client/src/app/components/user-account-access/user-account-access.component.ts
+ 152
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
+ 191
+
+
+
+ Manage Activities
+ 활동 관리
+
+ apps/client/src/app/components/home-holdings/home-holdings.html
+ 64
+
+
+
+ Fear
+ 두려움
+
+ apps/client/src/app/components/home-market/home-market.component.ts
+ 41
+
+
+ apps/client/src/app/components/markets/markets.component.ts
+ 46
+
+
+ libs/ui/src/lib/i18n.ts
+ 109
+
+
+
+ Greed
+ 탐욕
+
+ apps/client/src/app/components/home-market/home-market.component.ts
+ 42
+
+
+ apps/client/src/app/components/markets/markets.component.ts
+ 47
+
+
+ libs/ui/src/lib/i18n.ts
+ 110
+
+
+
+ Last Days
+ 지난 일
+
+ apps/client/src/app/components/home-market/home-market.html
+ 7
+
+
+ apps/client/src/app/components/markets/markets.html
+ 17
+
+
+
+ Welcome to Ghostfolio
+ Ghostfolio에 오신 것을 환영합니다
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 11
+
+
+
+ Ready to take control of your personal finances?
+ 개인 재정을 관리할 준비가 되셨나요?
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 12
+
+
+
+ The source code is fully available as open source software (OSS) under the AGPL-3.0 license
+ 소스 코드는 오픈 소스 소프트웨어 로 완전히 공개되어 있으며, AGPL-3.0 라이선스 하에 제공됩니다
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 16
+
+
+
+ Setup your accounts
+ 계정 설정
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 19
+
+
+
+ Get a comprehensive financial overview by adding your bank and brokerage accounts.
+ 은행 및 중개 계좌를 추가하여 포괄적인 재무 개요를 확인하세요.
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 21
+
+
+
+ Capture your activities
+ 활동을 캡처하세요
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 28
+
+
+
+ Record your investment activities to keep your portfolio up to date.
+ 투자 활동을 기록하여 포트폴리오를 최신 상태로 유지하세요.
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 30
+
+
+
+ Monitor and analyze your portfolio
+ 포트폴리오를 모니터링하고 분석하세요.
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 37
+
+
+
+ Track your progress in real-time with comprehensive analysis and insights.
+ 포괄적인 분석과 통찰력을 통해 진행 상황을 실시간으로 추적하세요.
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 39
+
+
+
+ Setup accounts
+ 계정 설정
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 52
+
+
+
+ Current week
+ 이번주
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 197
+
+
+
+ Add activity
+ 활동 추가
+
+ apps/client/src/app/components/home-overview/home-overview.html
+ 60
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 8
+
+
+
+ Total Amount
+ 총액
+
+ apps/client/src/app/components/investment-chart/investment-chart.component.ts
+ 146
+
+
+
+ Savings Rate
+ 저축률
+
+ apps/client/src/app/components/investment-chart/investment-chart.component.ts
+ 202
+
+
+
+ Security Token
+ 보안 토큰
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 8
+
+
+ apps/client/src/app/components/user-account-access/user-account-access.html
+ 3
+
+
+ apps/client/src/app/components/user-account-access/user-account-access.html
+ 15
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 288
+
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 64
+
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 72
+
+
+
+ or
+ 또는
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 30
+
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 32
+
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 47
+
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 348
+
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 97
+
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 83
+
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 161
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 326
+
+
+ apps/client/src/app/pages/register/register-page.html
+ 33
+
+
+ apps/client/src/app/pages/webauthn/webauthn-page.html
+ 30
+
+
+
+ Sign in with Google
+ 구글로 로그인
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 44
+
+
+
+ Stay signed in
+ 로그인 상태 유지
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 66
+
+
+
+ Time in Market
+ 시장 참여 기간
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 3
+
+
+
+ Absolute Gross Performance
+ 절대 총 성과
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 77
+
+
+
+ Fees
+ 수수료
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 208
+
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 92
+
+
+
+ Absolute Net Performance
+ 절대 순 성과
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 111
+
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 259
+
+
+
+ Net Performance
+ 순 성과
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 127
+
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 278
+
+
+
+ Total Assets
+ 총자산
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 153
+
+
+
+ Assets
+ 자산
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 233
+
+
+
+ Buying Power
+ 매수 가능 금액
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 248
+
+
+
+ Excluded from Analysis
+ 분석에서 제외됨
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 274
+
+
+
+ Liabilities
+ 부채
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 302
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 102
+
+
+
+ Net Worth
+ 순자산
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 324
+
+
+
+ Annualized Performance
+ 연환산 성과
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 338
+
+
+
+ Please set the amount of your emergency fund.
+ 비상금 금액을 설정해 주세요.
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
+ 111
+
+
+
+ Minimum Price
+ 최저가
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 130
+
+
+
+ Maximum Price
+ 최고가
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 147
+
+
+
+ Quantity
+ 수량
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 157
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 185
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 217
+
+
+ libs/ui/src/lib/holdings-table/holdings-table.component.html
+ 69
+
+
+
+ Report Data Glitch
+ 데이터 결함 보고
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 456
+
+
+
+ Are you an ambitious investor who needs the full picture?
+ 당신은 전체 그림이 필요한 야심찬 투자자이신가요?
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 15
+
+
+
+ Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience:
+ 지금 Ghostfolio 프리미엄으로 업그레이드하고, 투자 경험을 향상시키는 독점 기능을 이용하세요:
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 18
+
+
+
+ Portfolio Summary
+ 포트폴리오 요약
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 24
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 47
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 204
+
+
+
+ Portfolio Allocations
+ 포트폴리오 자산배분
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 28
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 161
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 51
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 208
+
+
+
+ Performance Benchmarks
+ 성과 벤치마크
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 32
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 55
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 212
+
+
+
+ FIRE Calculator
+ 파이어(FIRE) 계산기
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 36
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 59
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 216
+
+
+
+ Professional Data Provider
+ 전문 데이터 제공자
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 40
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 220
+
+
+
+ and more Features...
+ 그리고 더 많은 기능...
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 44
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 75
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 243
+
+
+
+ Get the tools to effectively manage your finances and refine your personal investment strategy.
+ 재무를 효율적으로 관리하고 개인 투자 전략을 고도화할 수 있는 도구를 제공합니다.
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 48
+
+
+
+ Skip
+ 건너뛰다
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 59
+
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 99
+
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 141
+
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 181
+
+
+
+ Upgrade Plan
+ 업그레이드 계획
+
+ apps/client/src/app/components/header/header.component.html
+ 193
+
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 70
+
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 110
+
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 153
+
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.html
+ 21
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 281
+
+
+
+ Today
+ 오늘
+
+ apps/client/src/app/pages/public/public-page.html
+ 24
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 362
+
+
+
+ YTD
+ 연초 대비
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 205
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 374
+
+
+
+ 1Y
+ 1년
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 209
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 384
+
+
+
+ 5Y
+ 5년
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 213
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 408
+
+
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
+
+
+
+ Max
+ 맥스
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 217
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 414
+
+
+
+ Grant access
+ 액세스 권한 부여
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 9
+
+
+
+ Public
+ 공공의
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 31
+
+
+
+ Granted Access
+ 액세스 권한 부여
+
+ apps/client/src/app/components/user-account-access/user-account-access.html
+ 57
+
+
+
+ Please enter your coupon code.
+ 쿠폰 코드를 입력해주세요.
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 210
+
+
+
+ Could not redeem coupon code
+ 쿠폰 코드를 사용할 수 없습니다.
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 174
+
+
+
+ Coupon code has been redeemed
+ 쿠폰 코드가 사용되었습니다.
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 187
+
+
+
+ Reload
+ 새로고침
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 188
+
+
+
+ per year
+ 연간
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.html
+ 33
+
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 80
+
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 158
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 265
+
+
+
+ Try Premium
+ 프리미엄을 사용해 보세요
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.html
+ 53
+
+
+
+ Redeem Coupon
+ 쿠폰 사용
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.html
+ 67
+
+
+
+ Auto
+ 자동
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
+ 70
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 181
+
+
+
+ Do you really want to remove this sign in method?
+ 이 로그인 방법을 정말로 제거하시겠습니까?
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
+ 279
+
+
+
+ Presenter View
+ 발표자 보기
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 192
+
+
+
+ Protection for sensitive information like absolute performances and quantity values
+ 절대 성과 및 수량 값과 같은 민감한 정보를 보호합니다.
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 194
+
+
+
+ Base Currency
+ 기본 통화
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 9
+
+
+
+ Language
+ 언어
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 56
+
+
+
+ Locale
+ 장소
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 510
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 142
+
+
+
+ Date and number format
+ 날짜 및 숫자 형식
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 144
+
+
+
+ Appearance
+ 테마
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 167
+
+
+
+ Light
+ 라이트
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 182
+
+
+
+ Dark
+ 다크
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 183
+
+
+
+ Zen Mode
+ 프라이버시 모드
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 210
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 246
+
+
+
+ Distraction-free experience for turbulent times
+ 격동의 시대에 방해받지 않는 경험
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 212
+
+
+
+ this is projected to increase to
+ 이는 다음과 같이 증가할 것으로 예상된다.
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 147
+
+
+
+ Biometric Authentication
+ 생체인증
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 227
+
+
+
+ Sign in with fingerprint
+ 지문으로 로그인
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 228
+
+
+
+ Experimental Features
+ 실험적 기능
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 244
+
+
+
+ Sneak peek at upcoming functionality
+ 곧 출시될 기능 미리보기
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 246
+
+
+
+ User ID
+ 사용자 ID
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 51
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 261
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 35
+
+
+
+ Export Data
+ 데이터 내보내기
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 269
+
+
+
+ This feature is currently unavailable.
+ 이 기능은 현재 사용할 수 없습니다.
+
+ apps/client/src/app/core/http-response.interceptor.ts
+ 55
+
+
+
+ Please try again later.
+ 나중에 다시 시도해 주세요.
+
+ apps/client/src/app/core/http-response.interceptor.ts
+ 57
+
+
+ apps/client/src/app/core/http-response.interceptor.ts
+ 88
+
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+ 194
+
+
+
+ Oops! Something went wrong.
+ 이런! 문제가 발생했습니다.
+
+ apps/client/src/app/core/http-response.interceptor.ts
+ 86
+
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+ 192
+
+
+
+ Okay
+ 좋아요
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 149
+
+
+ apps/client/src/app/core/http-response.interceptor.ts
+ 89
+
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+ 195
+
+
+
+ About
+ 소개
+
+ apps/client/src/app/components/footer/footer.component.html
+ 20
+
+
+ apps/client/src/app/components/header/header.component.html
+ 124
+
+
+ apps/client/src/app/components/header/header.component.html
+ 375
+
+
+ apps/client/src/app/pages/about/overview/about-overview-page.routes.ts
+ 12
+
+
+ libs/common/src/lib/routes/routes.ts
+ 220
+
+
+
+ Changelog
+ 변경 내역
+
+ apps/client/src/app/components/footer/footer.component.html
+ 27
+
+
+ apps/client/src/app/pages/about/changelog/changelog-page.html
+ 4
+
+
+ libs/common/src/lib/routes/routes.ts
+ 185
+
+
+
+ License
+ 특허
+
+ apps/client/src/app/components/footer/footer.component.html
+ 39
+
+
+ apps/client/src/app/pages/about/license/license-page.html
+ 4
+
+
+ libs/common/src/lib/routes/routes.ts
+ 193
+
+
+
+ Privacy Policy
+ 개인 정보 보호 정책
+
+ apps/client/src/app/components/footer/footer.component.html
+ 55
+
+
+ apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html
+ 4
+
+
+ libs/common/src/lib/routes/routes.ts
+ 209
+
+
+
+ Our
+ 우리의
+
+ apps/client/src/app/pages/about/oss-friends/oss-friends-page.html
+ 6
+
+
+
+ Discover other exciting Open Source Software projects
+ 다른 흥미로운 오픈 소스 소프트웨어 프로젝트를 찾아보세요
+
+ apps/client/src/app/pages/about/oss-friends/oss-friends-page.html
+ 9
+
+
+
+ Visit
+ 방문하다
+
+ apps/client/src/app/pages/about/oss-friends/oss-friends-page.html
+ 28
+
+
+
+ for
+ ~을 위한
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 128
+
+
+
+ Accounts
+ 계정
+
+ apps/client/src/app/components/admin-platform/admin-platform.component.html
+ 52
+
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 97
+
+
+ apps/client/src/app/components/header/header.component.html
+ 58
+
+
+ apps/client/src/app/components/header/header.component.html
+ 268
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 381
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 91
+
+
+ apps/client/src/app/pages/accounts/accounts-page.html
+ 4
+
+
+ libs/common/src/lib/routes/routes.ts
+ 69
+
+
+ libs/ui/src/lib/assistant/assistant.html
+ 84
+
+
+
+ Oops, cash balance transfer has failed.
+ 죄송합니다. 현금 잔액 이체가 실패했습니다.
+
+ apps/client/src/app/pages/accounts/accounts-page.component.ts
+ 341
+
+
+
+ Update account
+ 계정 업데이트
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 8
+
+
+
+ Add account
+ 계정 추가
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 10
+
+
+
+ Account ID
+ 계정 ID
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 96
+
+
+
+ From
+ 에서
+
+ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html
+ 11
+
+
+
+ To
+ 에게
+
+ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html
+ 32
+
+
+
+ Transfer
+ 옮기다
+
+ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html
+ 72
+
+
+
+ Admin Control
+ 관리자 제어
+
+ apps/client/src/app/components/header/header.component.html
+ 74
+
+
+ apps/client/src/app/components/header/header.component.html
+ 289
+
+
+ libs/common/src/lib/routes/routes.ts
+ 64
+
+
+
+ Market Data
+ 시장 데이터
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 403
+
+
+ libs/common/src/lib/routes/routes.ts
+ 51
+
+
+
+ Settings
+ 설정
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 2
+
+
+ libs/common/src/lib/routes/routes.ts
+ 34
+
+
+ libs/common/src/lib/routes/routes.ts
+ 56
+
+
+
+ Users
+ 사용자
+
+ libs/common/src/lib/routes/routes.ts
+ 61
+
+
+
+ Overview
+ 개요
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 114
+
+
+ apps/client/src/app/components/header/header.component.html
+ 30
+
+
+ apps/client/src/app/components/header/header.component.html
+ 248
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 47
+
+
+ apps/client/src/app/pages/admin/admin-page.component.ts
+ 45
+
+
+ apps/client/src/app/pages/resources/resources-page.component.ts
+ 29
+
+
+ libs/common/src/lib/routes/routes.ts
+ 113
+
+
+ libs/common/src/lib/routes/routes.ts
+ 170
+
+
+
+ Blog
+ 블로그
+
+ apps/client/src/app/components/footer/footer.component.html
+ 24
+
+
+ apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html
+ 205
+
+
+ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html
+ 185
+
+
+ apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html
+ 185
+
+
+ apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html
+ 185
+
+
+ apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html
+ 210
+
+
+ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html
+ 197
+
+
+ apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html
+ 182
+
+
+ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html
+ 142
+
+
+ apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.html
+ 169
+
+
+ apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.html
+ 179
+
+
+ apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.html
+ 203
+
+
+ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html
+ 254
+
+
+ apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html
+ 234
+
+
+ apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.html
+ 244
+
+
+ apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html
+ 155
+
+
+ apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.html
+ 274
+
+
+ apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.html
+ 184
+
+
+ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.html
+ 149
+
+
+ apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.html
+ 271
+
+
+ apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.html
+ 190
+
+
+ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.html
+ 168
+
+
+ apps/client/src/app/pages/blog/2025/09/hacktoberfest-2025/hacktoberfest-2025-page.html
+ 189
+
+
+ apps/client/src/app/pages/blog/2025/11/black-weeks-2025/black-weeks-2025-page.html
+ 147
+
+
+ apps/client/src/app/pages/blog/blog-page.html
+ 5
+
+
+ libs/common/src/lib/routes/routes.ts
+ 225
+
+
+
+ Could not parse scraper configuration
+ Could not parse scraper configuration
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 525
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 528
+
+
+
+ Discover the latest Ghostfolio updates and insights on personal finance
+ 개인 금융에 대한 최신 Ghostfolio 업데이트와 통찰력을 알아보세요
+
+ apps/client/src/app/pages/blog/blog-page.html
+ 7
+
+
+
+ As you are already logged in, you cannot access the demo account.
+ 이미 로그인되어 있으므로 데모 계정에 접근할 수 없습니다.
+
+ apps/client/src/app/pages/demo/demo-page.component.ts
+ 32
+
+
+
+ Frequently Asked Questions (FAQ)
+ 자주 묻는 질문
+
+ apps/client/src/app/components/footer/footer.component.html
+ 33
+
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 189
+
+
+ apps/client/src/app/pages/faq/overview/faq-overview-page.routes.ts
+ 12
+
+
+ libs/common/src/lib/routes/routes.ts
+ 251
+
+
+
+ Features
+ 특징
+
+ apps/client/src/app/components/footer/footer.component.html
+ 29
+
+
+ apps/client/src/app/components/header/header.component.html
+ 361
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 5
+
+
+ libs/common/src/lib/routes/routes.ts
+ 256
+
+
+
+ Check out the numerous features of Ghostfolio to manage your wealth
+ 자산 관리를 위한 Ghostfolio의 다양한 기능을 확인해보세요
+
+ apps/client/src/app/pages/features/features-page.html
+ 7
+
+
+
+ ETFs
+ ETF
+
+ apps/client/src/app/pages/features/features-page.html
+ 25
+
+
+
+ Bonds
+ 채권
+
+ apps/client/src/app/pages/features/features-page.html
+ 38
+
+
+
+ Wealth Items
+ 자산 항목
+
+ apps/client/src/app/pages/features/features-page.html
+ 76
+
+
+
+ Import and Export
+ 가져오기 및 내보내기
+
+ apps/client/src/app/pages/features/features-page.html
+ 116
+
+
+
+ Multi-Accounts
+ 다중 계정
+
+ apps/client/src/app/pages/features/features-page.html
+ 127
+
+
+
+ Portfolio Calculations
+ 포트폴리오 계산
+
+ apps/client/src/app/pages/features/features-page.html
+ 141
+
+
+
+ Dark Mode
+ 다크 모드
+
+ apps/client/src/app/pages/features/features-page.html
+ 233
+
+
+
+ Market Mood
+ 시장 분위기
+
+ apps/client/src/app/pages/features/features-page.html
+ 215
+
+
+
+ Static Analysis
+ 정적 분석
+
+ apps/client/src/app/pages/features/features-page.html
+ 179
+
+
+
+ Multi-Language
+ 다국어
+
+ apps/client/src/app/pages/features/features-page.html
+ 259
+
+
+
+ per week
+ 주당
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 130
+
+
+
+ Open Source Software
+ 오픈 소스 소프트웨어
+
+ apps/client/src/app/pages/features/features-page.html
+ 296
+
+
+
+ Get Started
+ 시작하기
+
+ apps/client/src/app/components/header/header.component.html
+ 433
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 321
+
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 41
+
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 344
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 360
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 241
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 334
+
+
+
+ Holdings
+ 보유 종목
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 102
+
+
+ apps/client/src/app/components/home-holdings/home-holdings.html
+ 4
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 70
+
+
+ libs/common/src/lib/routes/routes.ts
+ 90
+
+
+ libs/common/src/lib/routes/routes.ts
+ 167
+
+
+ libs/ui/src/lib/assistant/assistant.html
+ 110
+
+
+
+ Summary
+ 요약
+
+ apps/client/src/app/components/home-summary/home-summary.html
+ 2
+
+
+ libs/common/src/lib/routes/routes.ts
+ 105
+
+
+
+ Markets
+ 시장
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 381
+
+
+ apps/client/src/app/components/footer/footer.component.html
+ 11
+
+
+ apps/client/src/app/components/header/header.component.html
+ 408
+
+
+ apps/client/src/app/components/home-market/home-market.html
+ 2
+
+
+ apps/client/src/app/components/markets/markets.html
+ 2
+
+
+ apps/client/src/app/pages/resources/markets/resources-markets.component.html
+ 2
+
+
+ apps/client/src/app/pages/resources/resources-page.component.ts
+ 39
+
+
+ libs/common/src/lib/routes/routes.ts
+ 95
+
+
+ libs/common/src/lib/routes/routes.ts
+ 100
+
+
+ libs/common/src/lib/routes/routes.ts
+ 261
+
+
+ libs/common/src/lib/routes/routes.ts
+ 309
+
+
+
+ Ghostfolio is a personal finance dashboard to keep track of your net worth including cash, stocks, ETFs and cryptocurrencies across multiple platforms.
+ Ghostfolio는 여러 플랫폼에 분산된 현금, 주식, ETF, 암호화폐를 포함한 순자산을 추적할 수 있는 개인 재무 대시보드입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 5
+
+
+
+ app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3
+ 앱, 자산, 암호화폐, 대시보드, ETF, 금융, 관리, 성과, 포트폴리오, 소프트웨어, 주식, 트레이딩, 자산관리, 웹3
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 10
+
+
+
+ Open Source Wealth Management Software
+ 오픈 소스 자산관리 소프트웨어
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 237
+
+
+
+ Manage your wealth like a boss
+ 전문가처럼 자산을 관리하세요
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 6
+
+
+
+ Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions.
+ Ghostfolio는 프라이버시를 최우선으로 하는 오픈 소스 개인 재무 대시보드입니다. 자산배분을 분석하고 순자산을 파악하여, 데이터 기반의 합리적인 투자 의사결정을 내리세요.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 10
+
+
+
+ Edit access
+ 접근 권한 편집
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 11
+
+
+
+ Monthly Active Users
+ 월간 활성 사용자
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 69
+
+
+
+ Stars on GitHub
+ 깃허브 스타
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 87
+
+
+ apps/client/src/app/pages/open/open-page.html
+ 103
+
+
+
+ Pulls on Docker Hub
+ 도커 허브에서 가져오기
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 105
+
+
+ apps/client/src/app/pages/open/open-page.html
+ 117
+
+
+
+ As seen in
+ 에서 볼 수 있듯이
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 114
+
+
+
+ Protect your assets . Refine your personal investment strategy .
+ 자산 을 보호하세요. 개인 투자 전략 을 정교화하세요.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 124
+
+
+
+ Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked.
+ Ghostfolio는 바쁜 사람들이 추적당하지 않으면서도 주식, ETF, 암호화폐를 손쉽게 추적할 수 있도록 돕습니다.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 128
+
+
+
+ 360° View
+ 360° 보기
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 138
+
+
+
+ Get the full picture of your personal finances across multiple platforms.
+ 여러 플랫폼에 걸쳐 개인 재정에 대한 전체 그림을 얻으세요.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 141
+
+
+
+ Web3 Ready
+ 웹3 준비
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 149
+
+
+
+ Use Ghostfolio anonymously and own your financial data.
+ 익명으로 Ghostfolio를 사용하고 금융 데이터를 소유하세요.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 152
+
+
+
+ Benefit from continuous improvements through a strong community.
+ 강력한 커뮤니티를 통해 지속적인 개선의 혜택을 누리세요.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 162
+
+
+
+ Get access to 80’000+ tickers from over 50 exchanges
+ 50개 이상의 거래소에서 80,000개 이상의 티커에 접근하세요
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 84
+
+
+
+ Why Ghostfolio ?
+ 왜 Ghostfolio 인가요?
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 170
+
+
+
+ Ghostfolio is for you if you are...
+ Ghostfolio는 당신을 위한 것입니다...
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 172
+
+
+
+ trading stocks, ETFs or cryptocurrencies on multiple platforms
+ 여러 플랫폼에서 주식, ETF 또는 암호화폐 거래
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 178
+
+
+
+ pursuing a buy & hold strategy
+ 매수 후 보유 전략을 추구
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 184
+
+
+
+ interested in getting insights of your portfolio composition
+ 포트폴리오 구성에 대한 인사이트가 필요하신가요
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 189
+
+
+
+ valuing privacy and data ownership
+ 개인 정보 보호 및 데이터 소유권을 소중히 여깁니다.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 194
+
+
+
+ into minimalism
+ 미니멀리즘으로
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 197
+
+
+
+ caring about diversifying your financial resources
+ 재정 자원을 다양화하는 데 관심을 가짐
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 201
+
+
+
+ interested in financial independence
+ 재정적 독립에 관심
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 205
+
+
+
+ saying no to spreadsheets in
+ 의 스프레드시트에 거부 의사 표시
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 209
+
+
+
+ still reading this list
+ 아직도 이 목록을 읽고 있어요
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 212
+
+
+
+ Learn more about Ghostfolio
+ Ghostfolio에 대해 자세히 알아보기
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 217
+
+
+
+ What our users are saying
+ 사용자 의 이야기
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 226
+
+
+
+ Members from around the globe are using Ghostfolio Premium
+ 전 세계의 사용자들이 Ghostfolio 프리미엄 을 사용하고 있습니다
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 265
+
+
+
+ How does Ghostfolio work?
+ Ghostfolio 는 어떻게 동작하나요?
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 282
+
+
+
+ Get started in only 3 steps
+ 단 3단계만으로 시작하세요
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 284
+
+
+
+ less than
+ 미만
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 129
+
+
+
+ Sign up anonymously*
+ 익명으로 가입*
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 290
+
+
+
+ * no e-mail address nor credit card required
+ * 이메일 주소 및 신용카드 정보가 필요하지 않습니다
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 292
+
+
+
+ Add any of your historical transactions
+ 과거 거래를 추가하세요.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 304
+
+
+
+ Get valuable insights of your portfolio composition
+ 포트폴리오 구성에 대한 유의미한 인사이트를 확인하세요
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 316
+
+
+
+ Are you ready?
+ 준비 되셨나요?
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 330
+
+
+
+ At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status.
+ Ghostfolio는 투명성을 핵심 가치로 삼습니다. 우리는 소스 코드를 오픈 소스 소프트웨어 로 공개하며, AGPL-3.0 라이선스 하에 배포합니다. 또한 플랫폼 운영 현황에 대한 집계된 핵심 지표를 공개적으로 공유합니다.
+
+ apps/client/src/app/pages/open/open-page.html
+ 7
+
+
+
+ (Last 24 hours)
+ (지난 24시간)
+
+ apps/client/src/app/pages/open/open-page.html
+ 37
+
+
+
+ Ghostfolio Status
+ 고스트폴리오 상태
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 62
+
+
+
+ with your university e-mail address
+ 대학 이메일 주소로
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 348
+
+
+
+ Active Users
+ 활성 사용자
+
+ apps/client/src/app/pages/open/open-page.html
+ 40
+
+
+ apps/client/src/app/pages/open/open-page.html
+ 62
+
+
+
+ (Last 30 days)
+ (지난 30일)
+
+ apps/client/src/app/pages/open/open-page.html
+ 48
+
+
+ apps/client/src/app/pages/open/open-page.html
+ 59
+
+
+
+ and a safe withdrawal rate (SWR) of
+ 안전 인출률(SWR)은 다음과 같습니다.
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 108
+
+
+
+ New Users
+ 신규 사용자
+
+ apps/client/src/app/pages/open/open-page.html
+ 51
+
+
+
+ Users in Slack community
+ 슬랙 커뮤니티의 사용자
+
+ apps/client/src/app/pages/open/open-page.html
+ 75
+
+
+
+ Job ID
+ 작업 ID
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 43
+
+
+
+ Contributors on GitHub
+ 깃허브의 기여자
+
+ apps/client/src/app/pages/open/open-page.html
+ 89
+
+
+
+ (Last 90 days)
+ (지난 90일)
+
+ apps/client/src/app/pages/open/open-page.html
+ 127
+
+
+
+ Uptime
+ 가동 시간
+
+ apps/client/src/app/pages/open/open-page.html
+ 132
+
+
+
+ Activities
+ 활동
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 86
+
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 113
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 226
+
+
+ apps/client/src/app/components/admin-tag/admin-tag.component.html
+ 45
+
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 118
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 231
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 348
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 100
+
+
+ apps/client/src/app/pages/portfolio/activities/activities-page.html
+ 4
+
+
+ libs/common/src/lib/routes/routes.ts
+ 128
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 126
+
+
+
+ Do you really want to delete these activities?
+ 정말로 이 활동을 삭제하시겠습니까?
+
+ libs/ui/src/lib/activities-table/activities-table.component.ts
+ 304
+
+
+
+ Update activity
+ 활동 업데이트
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 10
+
+
+
+ Stocks, ETFs, bonds, cryptocurrencies, commodities
+ 주식, ETF, 채권, 암호화폐, 원자재
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 25
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 65
+
+
+
+ One-time fee, annual account fees
+ 일회성 수수료, 연간 계정 수수료
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 33
+
+
+
+ Distribution of corporate earnings
+ 기업 수익 분배
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 41
+
+
+
+ Revenue for lending out money
+ 이자 수익
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 49
+
+
+
+ Mortgages, personal loans, credit cards
+ 모기지, 개인 대출, 신용카드
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 57
+
+
+
+ Luxury items, real estate, private companies
+ 명품, 부동산, 민간 기업
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 73
+
+
+
+ Update Cash Balance
+ 현금 잔액 업데이트
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 108
+
+
+
+ Unit Price
+ 단가
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 210
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 241
+
+
+
+ Import Activities
+ 활동 가져오기
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+ 92
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 28
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 407
+
+
+
+ Import Dividends
+ 배당금 가져오기
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+ 136
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 52
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 421
+
+
+
+ Importing data...
+ 데이터 가져오는 중...
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+ 174
+
+
+
+ Import has been completed
+ 가져오기가 완료되었습니다.
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+ 184
+
+
+
+ or start a discussion at
+ 또는 다음에서 토론을 시작하세요.
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 94
+
+
+
+ Validating data...
+ 데이터 유효성을 검사하는 중...
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+ 293
+
+
+
+ Select Holding
+ 보유 종목 선택
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 19
+
+
+
+ Select File
+ 파일 선택
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 21
+
+
+
+ Holding
+ 보유
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 32
+
+
+ libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html
+ 26
+
+
+
+ Load Dividends
+ 배당금 불러오기
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 68
+
+
+
+ Choose or drop a file here
+ 여기에 파일을 선택하거나 드롭하세요.
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 84
+
+
+
+ The following file formats are supported:
+ 다음 파일 형식이 지원됩니다.
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 90
+
+
+
+ Select Dividends
+ 배당금 선택
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 113
+
+
+
+ Select Activities
+ 활동 선택
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 115
+
+
+
+ Back
+ 뒤쪽에
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 146
+
+
+ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+ 182
+
+
+
+ Allocations
+ 할당
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 4
+
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.routes.ts
+ 12
+
+
+ libs/common/src/lib/routes/routes.ts
+ 133
+
+
+
+ Proportion of Net Worth
+ 순자산 비율
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 12
+
+
+
+ By Platform
+ 플랫폼별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 42
+
+
+
+ By Currency
+ 통화별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 61
+
+
+
+ By Asset Class
+ 자산 클래스별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 83
+
+
+
+ By Holding
+ 보유 종목별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 105
+
+
+
+ By Sector
+ 부문별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 128
+
+
+
+ By Continent
+ 대륙별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 151
+
+
+
+ By Market
+ 시장별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 173
+
+
+
+ Regions
+ 지역
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 196
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 150
+
+
+
+ Exclude from Analysis
+ 분석에서 제외
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 90
+
+
+ libs/ui/src/lib/i18n.ts
+ 17
+
+
+
+ Developed Markets
+ 선진시장
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 218
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 167
+
+
+
+ Latest activities
+ 최신 활동
+
+ apps/client/src/app/pages/public/public-page.html
+ 210
+
+
+
+ Emerging Markets
+ 신흥시장
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 227
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 176
+
+
+
+ Other Markets
+ 기타 시장
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 236
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 185
+
+
+
+ By Account
+ 계정별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 282
+
+
+
+ By ETF Provider
+ ETF 제공자별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 302
+
+
+
+ By Country
+ 국가별
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 260
+
+
+
+ Analysis
+ 분석
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 2
+
+
+ libs/common/src/lib/routes/routes.ts
+ 138
+
+
+
+ Looking for a student discount?
+ 학생 할인을 찾고 계십니까?
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 342
+
+
+
+ Dividend
+ 배당금
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 81
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 186
+
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 372
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 63
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 198
+
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+ 75
+
+
+ libs/ui/src/lib/i18n.ts
+ 38
+
+
+
+ annual interest rate
+ 연간 이자율
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 185
+
+
+
+ Deposit
+ 보증금
+
+ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
+ 404
+
+
+
+ Monthly
+ 월간
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+ 90
+
+
+
+ Yearly
+ 매년
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+ 91
+
+
+
+ Top
+ 상위
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 305
+
+
+
+ Bottom
+ 하위
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 354
+
+
+
+ Portfolio Evolution
+ 포트폴리오 진화
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 407
+
+
+
+ Investment Timeline
+ 투자 일정
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 436
+
+
+
+ Current Streak
+ 현재 연속
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 457
+
+
+
+ Longest Streak
+ 최장 연속
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 466
+
+
+
+ Dividend Timeline
+ 배당 일정
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 495
+
+
+
+ FIRE
+ 불
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 4
+
+
+
+ Calculator
+ 계산자
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 7
+
+
+
+ Pricing
+ 가격
+
+ apps/client/src/app/components/footer/footer.component.html
+ 49
+
+
+ apps/client/src/app/components/header/header.component.html
+ 105
+
+
+ apps/client/src/app/components/header/header.component.html
+ 313
+
+
+ apps/client/src/app/components/header/header.component.html
+ 389
+
+
+ apps/client/src/app/pages/pricing/pricing-page.routes.ts
+ 12
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 287
+
+
+ libs/common/src/lib/routes/routes.ts
+ 271
+
+
+
+ Pricing Plans
+ 가격 계획
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 4
+
+
+
+ Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover operational costs for the hosting infrastructure and professional data providers, and to fund ongoing development.
+ 공식 Ghostfolio 프리미엄 클라우드 서비스는 시작하는 가장 쉬운 방법입니다. 시간이 절약되므로 이는 대부분의 사람들에게 최선의 선택이 될 것입니다. 수익은 호스팅 인프라 및 전문 데이터 제공업체의 운영 비용을 충당하고 지속적인 개발 자금을 조달하는 데 사용됩니다.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 7
+
+
+
+ If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub .
+ 자체 인프라에서 Ghostfolio를 운영하고 싶다면, 깃허브 에서 소스 코드와 추가 안내를 확인하세요.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 14
+
+
+
+ For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure.
+ 자체 인프라에서 Ghostfolio를 실행하기를 선호하는 기술에 정통한 투자자를 위한 것입니다.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 26
+
+
+
+ Unlimited Transactions
+ 무제한 거래
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 35
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 127
+
+
+
+ Unlimited Accounts
+ 무제한 계정
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 39
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 131
+
+
+
+ Portfolio Performance
+ 포트폴리오 성과
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 43
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 135
+
+
+
+ Data Import and Export
+ 데이터 가져오기 및 내보내기
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 63
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 139
+
+
+
+ Community Support
+ 커뮤니티 지원
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 80
+
+
+
+ Self-hosted, update manually.
+ 자체 호스팅, 수동으로 업데이트합니다.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 84
+
+
+
+ Free
+ 무료
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 86
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 152
+
+
+
+ For new investors who are just getting started with trading.
+ 이제 막 거래를 시작한 신규 투자자를 위한 제품입니다.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 119
+
+
+
+ Fully managed Ghostfolio cloud offering.
+ 완전 관리형 Ghostfolio 클라우드 제품.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 150
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 252
+
+
+
+ For ambitious investors who need the full picture of their financial assets.
+ 자신의 금융 자산에 대한 전체 그림이 필요한 야심찬 투자자를 위한 제품입니다.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 193
+
+
+
+ Email and Chat Support
+ 이메일 및 채팅 지원
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 248
+
+
+
+ Renew Plan
+ 플랜 갱신
+
+ apps/client/src/app/components/header/header.component.html
+ 191
+
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.html
+ 19
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 279
+
+
+
+ One-time payment, no auto-renewal.
+ 일회성 결제, 자동 갱신 없음.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 285
+
+
+
+ Could not save asset profile
+ Could not save asset profile
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 604
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 607
+
+
+
+ It’s free.
+ 무료입니다.
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 362
+
+
+
+ Hello, has shared a Portfolio with you!
+ 안녕하세요. 님이 포트폴리오 를 공유했습니다!
+
+ apps/client/src/app/pages/public/public-page.html
+ 5
+
+
+
+ Continents
+ 대륙
+
+ apps/client/src/app/pages/public/public-page.html
+ 131
+
+
+
+ Sustainable retirement income
+ 지속 가능한 퇴직 소득
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 41
+
+
+
+ Ghostfolio empowers you to keep track of your wealth.
+ Ghostfolio는 귀하의 재산을 추적할 수 있도록 해줍니다.
+
+ apps/client/src/app/pages/public/public-page.html
+ 237
+
+
+
+ Registration
+ 등록
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 80
+
+
+ libs/common/src/lib/routes/routes.ts
+ 281
+
+
+
+ Continue with Google
+ 구글로 계속하기
+
+ apps/client/src/app/pages/register/register-page.html
+ 43
+
+
+
+ Copy to clipboard
+ 클립보드에 복사
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 88
+
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
+
+
+ Personal Finance Tools
+ 개인 금융 도구
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 351
+
+
+ libs/common/src/lib/routes/routes.ts
+ 329
+
+
+
+ open-source-alternative-to
+ open-source-alternative-to
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 320
+
+
+ libs/common/src/lib/routes/routes.ts
+ 324
+
+
+
+ Discover Open Source Alternatives for Personal Finance Tools
+ 개인 금융 도구를 위한 오픈 소스 대안을 찾아보세요
+
+ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html
+ 5
+
+
+
+ This overview page features a curated collection of personal finance tools compared to the open source alternative Ghostfolio . If you value transparency, data privacy, and community collaboration, Ghostfolio provides an excellent opportunity to take control of your financial management.
+ 이 개요 페이지에는 오픈 소스 대안인 Ghostfolio 와 비교하여 엄선된 개인 금융 도구 컬렉션이 포함되어 있습니다. 투명성, 데이터 개인 정보 보호 및 커뮤니티 협업을 중요하게 생각한다면 Ghostfolio는 재무 관리를 제어할 수 있는 훌륭한 기회를 제공합니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html
+ 9
+
+
+
+ Explore the links below to compare a variety of personal finance tools with Ghostfolio.
+ Ghostfolio와 다양한 개인 금융 도구를 비교하려면 아래 링크를 탐색하십시오.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html
+ 17
+
+
+
+ Open Source Alternative to
+ 의 오픈 소스 대안
+
+ apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html
+ 42
+
+
+
+ The Open Source Alternative to
+ 오픈 소스 대안
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 8
+
+
+
+ Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future.
+ 에 대한 오픈소스 대안을 찾고 계십니까? Ghostfolio 는 개인에게 투자를 추적, 분석, 최적화할 수 있는 포괄적인 플랫폼을 제공하는 강력한 포트폴리오 관리 도구입니다. 숙련된 투자자이든 이제 막 시작한 투자자이든 Ghostfolio는 직관적인 사용자 인터페이스와 다양한 기능 을 제공하여 정보에 입각한 결정을 내리고 재정적 미래를 관리하는 데 도움을 줍니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 19
+
+
+
+ Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE) . By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience.
+ Ghostfolio는 오픈 소스 소프트웨어로, 에 대한 비용 효율적인 대안을 제공하므로 재정적 독립, 조기 퇴직(FIRE) 을 추구하는 사람과 같이 예산이 부족한 개인에게 특히 적합합니다. Ghostfolio는 개발자 커뮤니티와 개인 금융 애호가들의 공동 노력을 활용하여 기능, 보안 및 사용자 경험을 지속적으로 향상시킵니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 33
+
+
+
+ Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements.
+ Ghostfolio가 과 관련하여 어떻게 위치하는지 철저하게 이해하기 위해 아래의 자세한 Ghostfolio 대 비교표를 자세히 살펴보겠습니다. 우리는 기능, 데이터 개인 정보 보호, 가격 등과 같은 다양한 측면을 탐색하여 귀하의 개인 요구 사항에 맞는 정보를 바탕으로 선택할 수 있도록 할 것입니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 44
+
+
+
+ per month
+ 매월
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 94
+
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 172
+
+
+
+ Ghostfolio vs comparison table
+ Ghostfolio와 비교표
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 55
+
+
+
+ Website of Thomas Kaul
+ 토마스 카울의 웹사이트
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 44
+
+
+
+ Founded
+ 설립
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 77
+
+
+
+ Origin
+ 기원
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 82
+
+
+
+ Region
+ 지역
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 87
+
+
+
+ Available in
+ 사용 가능
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 109
+
+
+
+ ✅ Yes
+ ✅ 예
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 140
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 157
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 179
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 196
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 218
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 235
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 257
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 274
+
+
+
+ ❌ No
+ ❌ 아니요
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 147
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 164
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 186
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 203
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 225
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 242
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 264
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 281
+
+
+
+ Self-Hosting
+ 셀프 호스팅
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 171
+
+
+
+ Use anonymously
+ 익명으로 사용
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 210
+
+
+
+ Free Plan
+ 무료 플랜
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 249
+
+
+
+ Starting from
+ 에서 시작
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 289
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 294
+
+
+
+ Notes
+ 메모
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 302
+
+
+
+ Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub .
+ Ghostfolio와 비교표에 제공된 정보는 당사의 독립적인 연구 및 분석을 기반으로 한 것입니다. 이 웹사이트는 또는 비교에 언급된 다른 제품과 관련이 없습니다. 개인 금융 도구의 환경이 발전함에 따라 각 제품 페이지에서 직접 특정 세부 정보나 변경 사항을 확인하는 것이 중요합니다. 데이터를 새로 고쳐야 합니까? 깃허브 에서 정확한 데이터를 유지할 수 있도록 도와주세요.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 312
+
+
+
+ Ready to take your investments to the next level ?
+ 투자 를 다음 단계 로 발전시킬 준비가 되셨나요?
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 325
+
+
+
+ Effortlessly track, analyze, and visualize your wealth with Ghostfolio.
+ Ghostfolio를 사용하여 귀하의 재산을 쉽게 추적, 분석 및 시각화하십시오.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 329
+
+
+
+ Switzerland
+ 스위스
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 58
+
+
+ libs/ui/src/lib/i18n.ts
+ 100
+
+
+
+ Global
+ 글로벌
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 59
+
+
+ libs/ui/src/lib/i18n.ts
+ 18
+
+
+
+ Resources
+ 리소스
+
+ apps/client/src/app/components/footer/footer.component.html
+ 14
+
+
+ apps/client/src/app/components/header/header.component.html
+ 88
+
+
+ apps/client/src/app/components/header/header.component.html
+ 301
+
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 4
+
+
+ libs/common/src/lib/routes/routes.ts
+ 332
+
+
+
+ Membership
+ 멤버십
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 73
+
+
+ libs/common/src/lib/routes/routes.ts
+ 31
+
+
+ libs/ui/src/lib/membership-card/membership-card.component.html
+ 40
+
+
+
+ Request it
+ 요청하세요
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 344
+
+
+
+ Access
+ 입장
+
+ libs/common/src/lib/routes/routes.ts
+ 26
+
+
+
+ My Ghostfolio
+ 나의 고스트폴리오
+
+ apps/client/src/app/components/header/header.component.html
+ 277
+
+
+ apps/client/src/app/pages/user-account/user-account-page.routes.ts
+ 33
+
+
+
+ Oops, authentication has failed.
+ 앗, 인증에 실패했습니다.
+
+ apps/client/src/app/pages/webauthn/webauthn-page.html
+ 19
+
+
+
+ Try again
+ 다시 시도하세요
+
+ apps/client/src/app/pages/webauthn/webauthn-page.html
+ 27
+
+
+
+ Go back to Home Page
+ 홈 페이지로 돌아가기
+
+ apps/client/src/app/pages/webauthn/webauthn-page.html
+ 33
+
+
+
+ Do you really want to delete this account balance?
+ 정말로 이 계정 잔액을 삭제하시겠습니까?
+
+ libs/ui/src/lib/account-balances/account-balances.component.ts
+ 113
+
+
+
+ Export Activities
+ 수출 활동
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 64
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 435
+
+
+
+ Export Drafts as ICS
+ 초안을 달력 파일로 내보내기
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 77
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 448
+
+
+
+ Draft
+ 초안
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 168
+
+
+
+ Clone
+ 클론
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 487
+
+
+
+ Export Draft as ICS
+ 초안을 달력 파일로 내보내기
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 497
+
+
+
+ Do you really want to delete this activity?
+ 정말로 이 활동을 삭제하시겠습니까?
+
+ libs/ui/src/lib/activities-table/activities-table.component.ts
+ 314
+
+
+
+ Asset Profiles
+ 자산 프로필
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 123
+
+
+ libs/ui/src/lib/assistant/assistant.html
+ 140
+
+
+
+ 50-Day Trend
+ 50일 추세
+
+ libs/ui/src/lib/benchmark/benchmark.component.html
+ 32
+
+
+
+ 200-Day Trend
+ 200일 추세
+
+ libs/ui/src/lib/benchmark/benchmark.component.html
+ 61
+
+
+
+ ,
+ ,
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 145
+
+
+
+ Last All Time High
+ 마지막 역대 최고치
+
+ libs/ui/src/lib/benchmark/benchmark.component.html
+ 90
+
+
+
+ Change from All Time High
+ 역대 최고치에서 변화
+
+ libs/ui/src/lib/benchmark/benchmark.component.html
+ 117
+
+
+
+ contact us
+ 저희에게 연락주세요
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 336
+
+
+
+ from ATH
+ ATH에서
+
+ libs/ui/src/lib/benchmark/benchmark.component.html
+ 119
+
+
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
+
+ Market data provided by
+ 시장 데이터 제공:
+
+ libs/ui/src/lib/data-provider-credits/data-provider-credits.component.html
+ 2
+
+
+
+ Savings Rate per Month
+ 월별 저축률
+
+ libs/ui/src/lib/fire-calculator/fire-calculator.component.html
+ 10
+
+
+
+ Annual Interest Rate
+ 연이자율
+
+ libs/ui/src/lib/fire-calculator/fire-calculator.component.html
+ 21
+
+
+
+ Retirement Date
+ 퇴직일
+
+ libs/ui/src/lib/fire-calculator/fire-calculator.component.html
+ 32
+
+
+
+ Projected Total Amount
+ 예상총액
+
+ libs/ui/src/lib/fire-calculator/fire-calculator.component.html
+ 59
+
+
+
+ Interest
+ 관심
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 69
+
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 359
+
+
+ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
+ 414
+
+
+ libs/ui/src/lib/i18n.ts
+ 40
+
+
+
+ Savings
+ 저금
+
+ libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
+ 424
+
+
+
+ Allocation
+ 배당
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 248
+
+
+ libs/ui/src/lib/holdings-table/holdings-table.component.html
+ 117
+
+
+ libs/ui/src/lib/top-holdings/top-holdings.component.html
+ 40
+
+
+ libs/ui/src/lib/top-holdings/top-holdings.component.html
+ 116
+
+
+
+ Show all
+ 모두 표시
+
+ libs/ui/src/lib/holdings-table/holdings-table.component.html
+ 212
+
+
+
+ Account
+ 계정
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 85
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 339
+
+
+ libs/ui/src/lib/i18n.ts
+ 4
+
+
+ libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html
+ 4
+
+
+
+ Asia-Pacific
+ 아시아·태평양
+
+ libs/ui/src/lib/i18n.ts
+ 5
+
+
+
+ Asset Class
+ 자산 클래스
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 114
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 235
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 327
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 242
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 286
+
+
+ libs/ui/src/lib/i18n.ts
+ 6
+
+
+ libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html
+ 64
+
+
+
+ Asset Sub Class
+ 자산 하위 클래스
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 123
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 244
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 343
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 251
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 305
+
+
+ libs/ui/src/lib/i18n.ts
+ 7
+
+
+
+ Core
+ 핵심
+
+ libs/ui/src/lib/i18n.ts
+ 10
+
+
+
+ Switch to Ghostfolio Premium or Ghostfolio Open Source easily
+ Ghostfolio 프리미엄 또는 Ghostfolio Open Source로 쉽게 전환하세요
+
+ libs/ui/src/lib/i18n.ts
+ 12
+
+
+
+ Switch to Ghostfolio Premium easily
+ Ghostfolio 프리미엄으로 쉽게 전환하세요
+
+ libs/ui/src/lib/i18n.ts
+ 13
+
+
+
+ Switch to Ghostfolio Open Source or Ghostfolio Basic easily
+ Ghostfolio Open Source 또는 Ghostfolio Basic으로 쉽게 전환하세요
+
+ libs/ui/src/lib/i18n.ts
+ 14
+
+
+
+ Emergency Fund
+ 비상자금
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 168
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 89
+
+
+ libs/ui/src/lib/i18n.ts
+ 16
+
+
+
+ Grant
+ 승인하다
+
+ libs/ui/src/lib/i18n.ts
+ 19
+
+
+
+ Higher Risk
+ 더 높은 위험
+
+ libs/ui/src/lib/i18n.ts
+ 20
+
+
+
+ This activity already exists.
+ 이 활동은 이미 존재합니다.
+
+ libs/ui/src/lib/i18n.ts
+ 21
+
+
+
+ Japan
+ 일본
+
+ libs/ui/src/lib/i18n.ts
+ 93
+
+
+
+ Lower Risk
+ 위험 감소
+
+ libs/ui/src/lib/i18n.ts
+ 22
+
+
+
+ Month
+ 월
+
+ libs/ui/src/lib/i18n.ts
+ 23
+
+
+
+ Months
+ 개월
+
+ libs/ui/src/lib/i18n.ts
+ 24
+
+
+
+ Other
+ 다른
+
+ libs/ui/src/lib/i18n.ts
+ 25
+
+
+ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
+ 451
+
+
+
+ Preset
+ 프리셋
+
+ libs/ui/src/lib/i18n.ts
+ 27
+
+
+
+ No Activities
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
+
+ Retirement Provision
+ 퇴직금
+
+ libs/ui/src/lib/i18n.ts
+ 28
+
+
+
+ Everything in Basic , plus
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
+
+ Satellite
+ 위성
+
+ libs/ui/src/lib/i18n.ts
+ 29
+
+
+
+ Symbol
+ 상징
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 77
+
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 74
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 169
+
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 37
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 318
+
+
+ libs/ui/src/lib/i18n.ts
+ 30
+
+
+
+ Tag
+ 꼬리표
+
+ libs/ui/src/lib/i18n.ts
+ 31
+
+
+ libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html
+ 53
+
+
+
+ Year
+ 년도
+
+ libs/ui/src/lib/i18n.ts
+ 32
+
+
+
+ View Details
+ 세부정보 보기
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 225
+
+
+ libs/ui/src/lib/accounts-table/accounts-table.component.html
+ 314
+
+
+
+ Years
+ 연령
+
+ libs/ui/src/lib/i18n.ts
+ 33
+
+
+
+ Sign in with OpenID Connect
+ OpenID Connect로 로그인
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
+
+ Buy
+ 구입하다
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 31
+
+
+ libs/ui/src/lib/i18n.ts
+ 37
+
+
+
+ Fee
+ 요금
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 258
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 265
+
+
+ libs/ui/src/lib/i18n.ts
+ 39
+
+
+
+ Valuable
+ 귀중한
+
+ libs/ui/src/lib/i18n.ts
+ 43
+
+
+
+ Liability
+ 책임
+
+ libs/ui/src/lib/i18n.ts
+ 41
+
+
+
+ Sell
+ 팔다
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 44
+
+
+ libs/ui/src/lib/i18n.ts
+ 42
+
+
+
+ Cash
+ 현금
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 219
+
+
+ libs/ui/src/lib/i18n.ts
+ 55
+
+
+
+ Commodity
+ 상품
+
+ libs/ui/src/lib/i18n.ts
+ 47
+
+
+
+ Equity
+ 주식
+
+ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
+ 57
+
+
+ libs/ui/src/lib/i18n.ts
+ 48
+
+
+
+ Fixed Income
+ 채권
+
+ libs/ui/src/lib/i18n.ts
+ 49
+
+
+
+ Real Estate
+ 부동산
+
+ libs/ui/src/lib/i18n.ts
+ 51
+
+
+
+ Authentication
+ 입증
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 60
+
+
+
+ Bond
+ 노예
+
+ libs/ui/src/lib/i18n.ts
+ 54
+
+
+
+ Cryptocurrency
+ 암호화폐
+
+ libs/ui/src/lib/i18n.ts
+ 57
+
+
+
+ ETF
+ ETF
+
+ libs/ui/src/lib/i18n.ts
+ 58
+
+
+
+ Mutual Fund
+ 뮤추얼 펀드
+
+ libs/ui/src/lib/i18n.ts
+ 60
+
+
+
+ Precious Metal
+ 귀금속
+
+ libs/ui/src/lib/i18n.ts
+ 61
+
+
+
+ Private Equity
+ 사모펀드
+
+ libs/ui/src/lib/i18n.ts
+ 62
+
+
+
+ Stock
+ 재고
+
+ libs/ui/src/lib/i18n.ts
+ 63
+
+
+
+ Africa
+ 아프리카
+
+ libs/ui/src/lib/i18n.ts
+ 70
+
+
+
+ Asia
+ 아시아
+
+ libs/ui/src/lib/i18n.ts
+ 71
+
+
+
+ Europe
+ 유럽
+
+ libs/ui/src/lib/i18n.ts
+ 72
+
+
+
+ North America
+ 북미
+
+ libs/ui/src/lib/i18n.ts
+ 73
+
+
+
+ If you retire today, you would be able to withdraw
+ 오늘 퇴사하면 탈퇴 가능
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 68
+
+
+
+ Oceania
+ 오세아니아
+
+ libs/ui/src/lib/i18n.ts
+ 74
+
+
+
+ South America
+ 남아메리카
+
+ libs/ui/src/lib/i18n.ts
+ 75
+
+
+
+ Extreme Fear
+ 극심한 공포
+
+ libs/ui/src/lib/i18n.ts
+ 107
+
+
+
+ Extreme Greed
+ 극도의 탐욕
+
+ libs/ui/src/lib/i18n.ts
+ 108
+
+
+
+ Neutral
+ 중립적
+
+ libs/ui/src/lib/i18n.ts
+ 111
+
+
+
+ Valid until
+ 유효기간
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 86
+
+
+ libs/ui/src/lib/membership-card/membership-card.component.html
+ 45
+
+
+
+ Time to add your first activity.
+ 첫 번째 활동을 추가할 시간입니다.
+
+ libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html
+ 12
+
+
+
+ No data available
+ 사용 가능한 데이터가 없습니다.
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 246
+
+
+ apps/client/src/app/pages/public/public-page.html
+ 195
+
+
+ libs/ui/src/lib/benchmark/benchmark.component.html
+ 209
+
+
+ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
+ 453
+
+
+ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
+ 467
+
+
+ libs/ui/src/lib/top-holdings/top-holdings.component.html
+ 181
+
+
+
+ If a translation is missing, kindly support us in extending it here .
+ 번역이 누락된 경우 여기 에서 번역을 확장할 수 있도록 지원해 주시기 바랍니다.
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 59
+
+
+
+ Date Range
+ 기간
+
+ libs/ui/src/lib/assistant/assistant.html
+ 170
+
+
+
+ The current market price is
+ 현재 시장가격은
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 722
+
+
+
+ Test
+ 시험
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 569
+
+
+
+ Oops! Could not grant access.
+ 이런! 액세스 권한을 부여할 수 없습니다.
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
+ 144
+
+
+
+ Argentina
+ 아르헨티나
+
+ libs/ui/src/lib/i18n.ts
+ 79
+
+
+
+ Restricted view
+ 제한된 보기
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 26
+
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 40
+
+
+
+ Permission
+ 허가
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 18
+
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 38
+
+
+
+ Private
+ 사적인
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 30
+
+
+
+ Job Queue
+ 작업 대기열
+
+ libs/common/src/lib/routes/routes.ts
+ 46
+
+
+
+ Market data is delayed for
+ 시장 데이터가 지연됩니다.
+
+ apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts
+ 95
+
+
+
+ Absolute Currency Performance
+ 절대적인 통화 성과
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 211
+
+
+
+ Close Holding
+ 닫기 보유
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 447
+
+
+
+ Absolute Asset Performance
+ 절대자산성과
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 168
+
+
+
+ Investment
+ 투자
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 171
+
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 60
+
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+ 80
+
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+ 96
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 89
+
+
+
+ here
+ 여기
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 347
+
+
+
+ Asset Performance
+ 자산 성과
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 190
+
+
+
+ Currency Performance
+ 통화 성과
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 236
+
+
+
+ Year to date
+ 연초 현재
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 374
+
+
+
+ Week to date
+ 이번주 현재까지
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 366
+
+
+
+ Month to date
+ 월간 누계
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 370
+
+
+
+ MTD
+ MTD
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 201
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 370
+
+
+
+ WTD
+ WTD
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 197
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 366
+
+
+
+ Oops! A data provider is experiencing the hiccups.
+ 이런! 데이터 제공업체에 문제가 발생했습니다.
+
+ apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html
+ 8
+
+
+
+ View
+ 보다
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 23
+
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 42
+
+
+
+ Reset Filters
+ 필터 재설정
+
+ libs/ui/src/lib/assistant/assistant.html
+ 204
+
+
+
+ year
+ 년도
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 209
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 290
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 296
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 384
+
+
+
+ years
+ 연령
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 213
+
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 408
+
+
+
+ Apply Filters
+ 필터 적용
+
+ libs/ui/src/lib/assistant/assistant.html
+ 217
+
+
+
+ self-hosting
+ self-hosting
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 243
+
+
+ libs/common/src/lib/routes/routes.ts
+ 246
+
+
+
+ Self-Hosting
+ 셀프 호스팅
+
+ apps/client/src/app/pages/faq/faq-page.component.ts
+ 52
+
+
+ libs/common/src/lib/routes/routes.ts
+ 248
+
+
+
+ Data Gathering
+ 데이터 수집
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 592
+
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 63
+
+
+
+ General
+ 일반적인
+
+ apps/client/src/app/pages/faq/faq-page.component.ts
+ 41
+
+
+
+ Cloud
+ 구름
+
+ apps/client/src/app/pages/faq/faq-page.component.ts
+ 46
+
+
+ libs/common/src/lib/routes/routes.ts
+ 240
+
+
+
+ Oops! It looks like you’re making too many requests. Please slow down a bit.
+ 이런! 요청을 너무 많이 하시는 것 같습니다. 조금 천천히 해주세요.
+
+ apps/client/src/app/core/http-response.interceptor.ts
+ 106
+
+
+
+ My Account
+ 내 계정
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 13
+
+
+
+ Closed
+ 닫은
+
+ apps/client/src/app/components/home-holdings/home-holdings.component.ts
+ 64
+
+
+
+ Active
+ 활동적인
+
+ apps/client/src/app/components/home-holdings/home-holdings.component.ts
+ 63
+
+
+
+ Indonesia
+ 인도네시아 공화국
+
+ libs/ui/src/lib/i18n.ts
+ 91
+
+
+
+ Activity
+ 활동
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 229
+
+
+
+ Dividend Yield
+ 배당수익률
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 196
+
+
+
+ Execute Job
+ 작업 실행
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 229
+
+
+
+ This action is not allowed.
+ 이 작업은 허용되지 않습니다.
+
+ apps/client/src/app/core/http-response.interceptor.ts
+ 67
+
+
+
+ Priority
+ 우선 사항
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 105
+
+
+
+ Liquidity
+ 유동성
+
+ libs/ui/src/lib/i18n.ts
+ 50
+
+
+
+ Buy and sell
+ 구매 및 판매
+
+ libs/ui/src/lib/i18n.ts
+ 8
+
+
+
+ {VAR_PLURAL, plural, =1 {activity} other {activities}}
+ {VAR_PLURAL, 복수형, =1 {활동} 기타 {활동}}
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
+ 14
+
+
+
+ Delete Activities
+ 활동 삭제
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 92
+
+
+
+ Internationalization
+ 국제화
+
+ libs/common/src/lib/routes/routes.ts
+ 119
+
+
+
+ Close Account
+ 계정 폐쇄
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 316
+
+
+
+ Do you really want to close your Ghostfolio account?
+ 정말로 Ghostfolio 계정을 폐쇄하시겠습니까?
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
+ 205
+
+
+
+ Danger Zone
+ 위험지대
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 281
+
+
+
+ Approximation based on the top holdings of each ETF
+ 각 ETF의 상위 보유량을 기준으로 한 근사치
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 336
+
+
+
+ By ETF Holding
+ ETF 홀딩으로
+
+ apps/client/src/app/pages/portfolio/allocations/allocations-page.html
+ 329
+
+
+
+ Join now or check out the example account
+ 지금 가입 하거나 예시 계정 을 확인하세요.
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 333
+
+
+
+ Include in
+ 포함
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 377
+
+
+
+ Oops! There was an error setting up biometric authentication.
+ 이런! 생체 인증을 설정하는 중에 오류가 발생했습니다.
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
+ 328
+
+
+
+ Show more
+ 더 보기
+
+ libs/ui/src/lib/top-holdings/top-holdings.component.html
+ 174
+
+
+
+ Do you really want to delete these profiles?
+ 이 프로필을 정말로 삭제하시겠습니까?
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
+ 68
+
+
+
+ Delete Profiles
+ 프로필 삭제
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 242
+
+
+
+ Oops! Could not delete profiles.
+ 이런! 프로필을 삭제할 수 없습니다.
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
+ 56
+
+
+
+ Benchmarks
+ 벤치마크
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 125
+
+
+
+ Chart
+ 차트
+
+ apps/client/src/app/components/home-holdings/home-holdings.html
+ 19
+
+
+
+ Table
+ 테이블
+
+ apps/client/src/app/components/home-holdings/home-holdings.html
+ 16
+
+
+
+ Would you like to refine your personal investment strategy ?
+ 개인 투자 전략 을 개선 하시겠습니까?
+
+ apps/client/src/app/pages/public/public-page.html
+ 233
+
+
+
+ Wealth
+ 재산
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 99
+
+
+
+ Community
+ 지역 사회
+
+ apps/client/src/app/components/footer/footer.component.html
+ 80
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 85
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 91
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 95
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 99
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 103
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 109
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 114
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 118
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 122
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 277
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 86
+
+
+
+ Thailand
+ 태국
+
+ libs/ui/src/lib/i18n.ts
+ 101
+
+
+
+ India
+ 인도
+
+ libs/ui/src/lib/i18n.ts
+ 90
+
+
+
+ Austria
+ 오스트리아
+
+ libs/ui/src/lib/i18n.ts
+ 81
+
+
+
+ Poland
+ 폴란드
+
+ libs/ui/src/lib/i18n.ts
+ 96
+
+
+
+ Italy
+ 이탈리아
+
+ libs/ui/src/lib/i18n.ts
+ 92
+
+
+
+ User Experience
+ 사용자 경험
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 98
+
+
+
+ App
+ 앱
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 84
+
+
+
+ Tool
+ 도구
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 97
+
+
+
+ Investor
+ 투자자
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 90
+
+
+
+ Wealth Management
+ 자산관리
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 100
+
+
+
+ View Holding
+ 보유보기
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 474
+
+
+
+ Canada
+ 캐나다
+
+ libs/ui/src/lib/i18n.ts
+ 85
+
+
+
+ New Zealand
+ 뉴질랜드
+
+ libs/ui/src/lib/i18n.ts
+ 95
+
+
+
+ Netherlands
+ 네덜란드
+
+ libs/ui/src/lib/i18n.ts
+ 94
+
+
+
+ Alternative
+ 대안
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 83
+
+
+
+ Family Office
+ 패밀리오피스
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 87
+
+
+
+ Personal Finance
+ 개인 금융
+
+ apps/client/src/app/components/footer/footer.component.html
+ 7
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 93
+
+
+
+ Software
+ 소프트웨어
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 96
+
+
+
+ Romania
+ 루마니아
+
+ libs/ui/src/lib/i18n.ts
+ 97
+
+
+
+ Germany
+ 독일
+
+ libs/ui/src/lib/i18n.ts
+ 89
+
+
+
+ United States
+ 미국
+
+ libs/ui/src/lib/i18n.ts
+ 104
+
+
+
+ Budgeting
+ 예산 편성
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 85
+
+
+
+ Belgium
+ 벨기에
+
+ libs/ui/src/lib/i18n.ts
+ 82
+
+
+
+ Open Source
+ 오픈 소스
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 159
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 91
+
+
+
+ Czech Republic
+ 체코
+
+ libs/ui/src/lib/i18n.ts
+ 86
+
+
+
+ Australia
+ 호주
+
+ libs/ui/src/lib/i18n.ts
+ 80
+
+
+
+ South Africa
+ 남아프리카
+
+ libs/ui/src/lib/i18n.ts
+ 99
+
+
+
+ Bulgaria
+ 불가리아
+
+ libs/ui/src/lib/i18n.ts
+ 84
+
+
+
+ Privacy
+ 은둔
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
+ 94
+
+
+
+ Finland
+ 핀란드
+
+ libs/ui/src/lib/i18n.ts
+ 87
+
+
+
+ France
+ 프랑스
+
+ libs/ui/src/lib/i18n.ts
+ 88
+
+
+
+ Error
+ 오류
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 713
+
+
+
+ Cancel
+ 취소
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 162
+
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 597
+
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 57
+
+
+ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
+ 44
+
+
+ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html
+ 27
+
+
+ apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html
+ 17
+
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 66
+
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 105
+
+
+ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html
+ 65
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 341
+
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 48
+
+
+ libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
+ 47
+
+
+ libs/ui/src/lib/i18n.ts
+ 9
+
+
+
+ Role
+ 역할
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 39
+
+
+
+ Yes
+ 예
+
+ libs/ui/src/lib/i18n.ts
+ 34
+
+
+
+ , based on your total assets of
+ , 귀하의 총 자산을 기준으로
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 96
+
+
+
+ Inactive
+ 비활성
+
+ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
+ 88
+
+
+
+ Close
+ 닫다
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 599
+
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 59
+
+
+ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
+ 46
+
+
+ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html
+ 29
+
+
+ apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html
+ 19
+
+
+ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
+ 130
+
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 68
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 107
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 343
+
+
+ libs/ui/src/lib/i18n.ts
+ 11
+
+
+
+ Activate
+ 활성화
+
+ apps/client/src/app/components/rule/rule.component.html
+ 83
+
+
+
+ Oops! Could not update access.
+ 이런! 액세스를 업데이트할 수 없습니다.
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
+ 181
+
+
+
+ Deactivate
+ 비활성화
+
+ apps/client/src/app/components/rule/rule.component.html
+ 78
+
+
+
+ Threshold Max
+ 임계값 최대
+
+ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
+ 93
+
+
+
+ send an e-mail to
+ 에게 이메일을 보내다
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 87
+
+
+
+ Customize
+ 사용자 정의
+
+ apps/client/src/app/components/rule/rule.component.html
+ 69
+
+
+
+ Portfolio Snapshot
+ 포트폴리오 스냅샷
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 65
+
+
+
+ Threshold Min
+ 임계값 최소
+
+ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
+ 55
+
+
+
+ If you plan to open an account at
+ 에서 계좌를 개설할 계획이라면
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 312
+
+
+
+ Performance with currency effect Performance
+ 환율 효과가 있는 실적 실적
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 83
+
+
+
+ Copy link to clipboard
+ 링크를 클립보드에 복사
+
+ apps/client/src/app/components/access-table/access-table.component.html
+ 84
+
+
+
+ Change with currency effect Change
+ 통화 효과로 변경 변경
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 63
+
+
+
+ From the beginning
+ 처음부터
+
+ apps/client/src/app/pages/public/public-page.html
+ 60
+
+
+
+ This year
+ 올해
+
+ apps/client/src/app/pages/public/public-page.html
+ 42
+
+
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
+
+ offers a free plan
+ 은(는) 무료 요금제를 제공합니다
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 256
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 273
+
+
+
+ does not offer a free plan
+ 은(는) 무료 요금제를 제공하지 않습니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 263
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 280
+
+
+
+ Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.
+ Ghostfolio는 개인이 주식, ETF 또는 암호화폐를 추적하고 확실한 데이터 기반 투자 결정을 내릴 수 있는 경량 자산 관리 애플리케이션입니다.
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 10
+
+
+
+ , assuming a
+ , 가정
+
+ apps/client/src/app/pages/portfolio/fire/fire-page.html
+ 174
+
+
+
+ to use our referral link and get a Ghostfolio Premium membership for one year
+ 추천 링크를 사용하고 1년 동안 Ghostfolio 프리미엄 멤버십을 얻으려면
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 340
+
+
+
+ can be self-hosted
+ 은(는) 자체 호스팅 가능
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 178
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 195
+
+
+
+ cannot be self-hosted
+ 은(는) 자체 호스팅할 수 없습니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 185
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 202
+
+
+
+ can be used anonymously
+ 은(는) 익명으로 사용할 수 있습니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 217
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 234
+
+
+
+ cannot be used anonymously
+ 은(는) 익명으로 사용할 수 없습니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 224
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 241
+
+
+
+ is not Open Source Software
+ 은(는) 오픈 소스 소프트웨어가 아닙니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 146
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 163
+
+
+
+ is Open Source Software
+ 은(는) 오픈 소스 소프트웨어입니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 139
+
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 156
+
+
+
+ This page has been archived.
+ 이 페이지는 보관되었습니다.
+
+ apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
+ 14
+
+
+
+ Oops! Invalid currency.
+ 이런! 통화가 잘못되었습니다.
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 48
+
+
+
+ Oops! Could not find any assets.
+ 이런! 자산을 찾을 수 없습니다.
+
+ libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html
+ 40
+
+
+
+ Ukraine
+ 우크라이나
+
+ libs/ui/src/lib/i18n.ts
+ 102
+
+
+
+ Set API key
+ API 키 설정
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 188
+
+
+
+ Get access to 80’000+ tickers from over 50 exchanges
+ 50개 이상의 거래소에서 80,000개 이상의 티커에 접근하세요
+
+ libs/ui/src/lib/i18n.ts
+ 26
+
+
+
+ Data Providers
+ 데이터 제공자
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 4
+
+
+
+ Join now
+ 지금 가입하세요
+
+ apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
+ 193
+
+
+
+ Glossary
+ 용어집
+
+ apps/client/src/app/pages/resources/glossary/resources-glossary.component.html
+ 4
+
+
+ apps/client/src/app/pages/resources/resources-page.component.ts
+ 44
+
+
+ libs/common/src/lib/routes/routes.ts
+ 293
+
+
+
+ glossary
+ glossary
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 288
+
+
+ libs/common/src/lib/routes/routes.ts
+ 291
+
+
+
+ Guides
+ 가이드
+
+ apps/client/src/app/pages/resources/guides/resources-guides.component.html
+ 4
+
+
+ apps/client/src/app/pages/resources/resources-page.component.ts
+ 33
+
+
+ libs/common/src/lib/routes/routes.ts
+ 301
+
+
+
+ guides
+ guides
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 296
+
+
+ libs/common/src/lib/routes/routes.ts
+ 299
+
+
+
+ Threshold range
+ 임계값 범위
+
+ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
+ 9
+
+
+
+ Ghostfolio X-ray uses static analysis to uncover potential issues and risks in your portfolio. Adjust the rules below and set custom thresholds to align with your personal investment strategy.
+ Ghostfolio X-ray는 정적 분석을 사용하여 포트폴리오의 잠재적인 문제와 위험을 찾아냅니다. 아래 규칙을 조정하고 개인 투자 전략에 맞게 맞춤 임계값을 설정하세요.
+
+ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
+ 6
+
+
+
+ Please enter your Ghostfolio API key:
+ Ghostfolio API 키를 입력하세요:
+
+ apps/client/src/app/pages/api/api-page.component.ts
+ 46
+
+
+
+ of
+ ~의
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 152
+
+
+
+ Do you really want to delete the API key?
+ API 키를 정말로 삭제하시겠습니까?
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.ts
+ 133
+
+
+
+ Remove API key
+ API 키 제거
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 178
+
+
+
+ daily requests
+ 일일 요청
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 154
+
+
+
+ Generate Ghostfolio Premium Data Provider API key for self-hosted environments...
+ 자체 호스팅 환경을 위한 Ghostfolio 프리미엄 데이터 공급자 API 키 생성...
+
+ libs/ui/src/lib/membership-card/membership-card.component.html
+ 29
+
+
+
+ API Key
+ API 키
+
+ libs/ui/src/lib/membership-card/membership-card.component.html
+ 21
+
+
+
+ API Requests Today
+ 오늘의 API 요청
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 161
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 123
+
+
+
+ Could not generate an API key
+ API 키를 생성할 수 없습니다.
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 136
+
+
+
+ Do you really want to generate a new API key?
+ 정말로 새 API 키를 생성하시겠습니까?
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 159
+
+
+
+ Ghostfolio Premium Data Provider API Key
+ Ghostfolio 프리미엄 데이터 공급자 API 키
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 154
+
+
+
+ Set this API key in your self-hosted environment:
+ 자체 호스팅 환경에서 이 API 키를 설정하세요.
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts
+ 151
+
+
+
+ rules align with your portfolio.
+ 규칙은 귀하의 포트폴리오와 일치합니다.
+
+ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
+ 58
+
+
+
+ out of
+ 밖으로
+
+ apps/client/src/app/pages/portfolio/x-ray/x-ray-page.component.html
+ 56
+
+
+
+ Save
+ 구하다
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 608
+
+
+ apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
+ 68
+
+
+ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html
+ 55
+
+
+ apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html
+ 38
+
+
+ apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html
+ 28
+
+
+ apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
+ 109
+
+
+ apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
+ 136
+
+
+ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
+ 81
+
+
+ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
+ 116
+
+
+ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
+ 352
+
+
+ libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
+ 49
+
+
+
+ Received Access
+ 수신된 액세스
+
+ apps/client/src/app/components/user-account-access/user-account-access.html
+ 53
+
+
+
+ Check the system status at
+ 시스템 상태를 확인하세요.
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 57
+
+
+
+ Me
+ 나
+
+ apps/client/src/app/components/header/header.component.html
+ 213
+
+
+ apps/client/src/app/components/user-account-access/user-account-access.component.ts
+ 250
+
+
+
+ Please enter your Ghostfolio API key.
+ Ghostfolio API 키를 입력하세요.
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.ts
+ 152
+
+
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
+
+
+
+ AI prompt has been copied to the clipboard
+ AI 프롬프트가 클립보드에 복사되었습니다.
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+ 199
+
+
+
+ Link has been copied to the clipboard
+ 링크가 클립보드에 복사되었습니다.
+
+ apps/client/src/app/components/access-table/access-table.component.ts
+ 101
+
+
+
+ Mode
+ 방법
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 519
+
+
+
+ Default Market Price
+ 기본 시장 가격
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 482
+
+
+
+ Selector
+ 선택자
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 535
+
+
+
+ Instant
+ 즉각적인
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 235
+
+
+
+ Lazy
+ 게으른
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 231
+
+
+
+ HTTP Request Headers
+ HTTP 요청 헤더
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 495
+
+
+
+ real-time
+ 실시간
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 235
+
+
+
+ end of day
+ 하루의 끝
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 231
+
+
+
+ Open Duck.ai
+ 오픈 Duck.ai
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
+ 200
+
+
+
+ Create
+ 만들다
+
+ libs/ui/src/lib/tags-selector/tags-selector.component.html
+ 50
+
+
+
+ Change
+ 변화
+
+ libs/ui/src/lib/holdings-table/holdings-table.component.html
+ 138
+
+
+ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
+ 377
+
+
+
+ Performance
+ 성능
+
+ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html
+ 6
+
+
+ apps/client/src/app/components/home-overview/home-overview.component.ts
+ 54
+
+
+ libs/ui/src/lib/holdings-table/holdings-table.component.html
+ 161
+
+
+ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
+ 377
+
+
+ libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
+ 390
+
+
+
+ The project has been initiated by
+ 프로젝트는 다음에 의해 시작되었습니다.
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 40
+
+
+
+ Copy AI prompt to clipboard for analysis
+ 분석을 위해 AI 프롬프트를 클립보드에 복사
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 67
+
+
+
+ Singapore
+ 싱가포르
+
+ libs/ui/src/lib/i18n.ts
+ 98
+
+
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
+
+ Armenia
+ 아르메니아
+
+ libs/ui/src/lib/i18n.ts
+ 78
+
+
+
+ British Virgin Islands
+ 영국령 버진아일랜드
+
+ libs/ui/src/lib/i18n.ts
+ 83
+
+
+
+ Copy portfolio data to clipboard for AI prompt
+ AI 프롬프트를 위해 포트폴리오 데이터를 클립보드에 복사
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 42
+
+
+
+ I understand that if I lose my security token, I cannot recover my account
+ 보안 토큰을 분실하면 계정을 복구할 수 없다는 점을 이해합니다.
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 28
+
+
+
+ Please keep your security token safe. If you lose it, you will not be able to recover your account.
+ 보안 토큰을 안전하게 보관하세요. 분실한 경우 계정을 복구할 수 없습니다.
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 18
+
+
+
+ Here is your security token. It is only visible once, please store and keep it in a safe place.
+ 여기 보안 토큰이 있습니다. 한 번만 볼 수 있으므로 안전한 곳에 보관하여 보관하시기 바랍니다.
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 67
+
+
+
+ Continue
+ 계속하다
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 57
+
+
+
+ Terms and Conditions
+ 이용약관
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 15
+
+
+
+ Do you really want to generate a new security token for this user?
+ 정말로 이 사용자에 대한 새 보안 토큰을 생성하시겠습니까?
+
+ apps/client/src/app/components/admin-users/admin-users.component.ts
+ 240
+
+
+
+ Find account, holding or page...
+ 계정, 보유 또는 페이지 찾기...
+
+ libs/ui/src/lib/assistant/assistant.component.ts
+ 115
+
+
+
+ Security token
+ 보안 토큰
+
+ apps/client/src/app/components/admin-users/admin-users.component.ts
+ 235
+
+
+ apps/client/src/app/components/user-account-access/user-account-access.component.ts
+ 167
+
+
+
+ Generate Security Token
+ 보안 토큰 생성
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 243
+
+
+
+ United Kingdom
+ 영국
+
+ libs/ui/src/lib/i18n.ts
+ 103
+
+
+
+ Terms of Service
+ 이용약관
+
+ apps/client/src/app/components/footer/footer.component.html
+ 62
+
+
+ libs/common/src/lib/routes/routes.ts
+ 217
+
+
+
+ terms-of-service
+ terms-of-service
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 212
+
+
+ libs/common/src/lib/routes/routes.ts
+ 215
+
+
+
+ Terms of Service
+ 이용약관
+
+ apps/client/src/app/pages/about/terms-of-service/terms-of-service-page.html
+ 5
+
+
+
+ and I agree to the Terms of Service .
+ 서비스 약관 에 동의합니다.
+
+ apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
+ 34
+
+
+
+ ( ) is already in use.
+ ( )은(는) 이미 사용 중입니다.
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 649
+
+
+
+ An error occurred while updating to ( ).
+ ( )로 업데이트하는 동안 오류가 발생했습니다.
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 657
+
+
+
+ Apply
+ 적용하다
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
+ 154
+
+
+
+ with API access for
+ 다음에 대한 API 액세스 권한이 있는
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 235
+
+
+
+ Data Gathering is off
+ 데이터 수집이 사용 중지되었습니다.
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.html
+ 38
+
+
+
+ Performance Calculation
+ 성능 계산
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 31
+
+
+
+ someone
+ 누구
+
+ apps/client/src/app/pages/public/public-page.component.ts
+ 61
+
+
+
+ Add asset to watchlist
+ 관심 목록에 자산 추가
+
+ apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html
+ 7
+
+
+
+ Watchlist
+ 관심 목록
+
+ apps/client/src/app/components/home-watchlist/home-watchlist.html
+ 4
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 197
+
+
+ libs/common/src/lib/routes/routes.ts
+ 110
+
+
+
+ Do you really want to delete this item?
+ 이 항목을 정말로 삭제하시겠습니까?
+
+ libs/ui/src/lib/benchmark/benchmark.component.ts
+ 139
+
+
+
+ Log out
+ 로그아웃
+
+ apps/client/src/app/components/header/header.component.html
+ 329
+
+
+
+ Calculations are based on delayed market data and may not be displayed in real-time.
+ 계산은 지연된 시장 데이터를 기반으로 하며 실시간으로 표시되지 않을 수 있습니다.
+
+ apps/client/src/app/components/home-market/home-market.html
+ 45
+
+
+ apps/client/src/app/components/markets/markets.html
+ 54
+
+
+
+ changelog
+ changelog
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 180
+
+
+ libs/common/src/lib/routes/routes.ts
+ 183
+
+
+
+ Sync Demo User Account
+ 데모 사용자 계정 동기화
+
+ apps/client/src/app/components/admin-overview/admin-overview.html
+ 204
+
+
+
+ Demo user account has been synced.
+ 데모 사용자 계정이 동기화되었습니다.
+
+ apps/client/src/app/components/admin-overview/admin-overview.component.ts
+ 277
+
+
+
+ Set up
+ 설정
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 145
+
+
+
+ No emergency fund has been set up
+ 비상금은 마련되지 않았습니다
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 147
+
+
+
+ An emergency fund has been set up
+ 비상금이 마련됐어요
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 150
+
+
+
+ Fee Ratio
+ Fee Ratio
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 152
+
+
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 154
+
+
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 158
+
+
+
+ Quick Links
+ 빠른 링크
+
+ libs/ui/src/lib/assistant/assistant.html
+ 58
+
+
+
+ Live Demo
+ 라이브 데모
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 48
+
+
+ apps/client/src/app/pages/landing/landing-page.html
+ 349
+
+
+ libs/common/src/lib/routes/routes.ts
+ 231
+
+
+
+ Open Source Alternative to
+ 오픈 소스 대안
+
+ libs/common/src/lib/routes/routes.ts
+ 326
+
+
+
+ Single Account
+ 단일 계정
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 28
+
+
+
+ Your net worth is managed by a single account
+ 귀하의 순자산은 단일 계정으로 관리됩니다
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 30
+
+
+
+ Your net worth is managed by ${accountsLength} accounts
+ 귀하의 순자산은 ${accountsLength} 계정에서 관리됩니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 36
+
+
+
+ personal-finance-tools
+ personal-finance-tools
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 312
+
+
+ libs/common/src/lib/routes/routes.ts
+ 315
+
+
+ libs/common/src/lib/routes/routes.ts
+ 323
+
+
+
+ markets
+ markets
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 304
+
+
+ libs/common/src/lib/routes/routes.ts
+ 307
+
+
+
+ Get Access
+ 액세스 권한 얻기
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 27
+
+
+
+ Fuel your self-hosted Ghostfolio with a powerful data provider to access 80,000+ tickers from over 50 exchanges worldwide.
+ 자체 호스팅 Ghostfolio 를 강력한 데이터 제공업체 와 함께 활용하여 전 세계 50개 이상의 거래소 에서 80,000개 이상의 시세 에 액세스하세요.
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 16
+
+
+
+ Learn more
+ 자세히 알아보기
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 38
+
+
+
+ Limited Offer!
+ 한정 상품!
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.html
+ 41
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 294
+
+
+
+ Get extra
+ 추가 구매
+
+ apps/client/src/app/components/user-account-membership/user-account-membership.html
+ 44
+
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 297
+
+
+
+ Unavailable
+ 없는
+
+ apps/client/src/app/components/data-provider-status/data-provider-status.component.html
+ 5
+
+
+
+ Available
+ 사용 가능
+
+ apps/client/src/app/components/data-provider-status/data-provider-status.component.html
+ 3
+
+
+
+ Current month
+ 이번 달
+
+ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+ 201
+
+
+
+ new
+ 새로운
+
+ apps/client/src/app/components/admin-settings/admin-settings.component.html
+ 79
+
+
+
+ Investment
+ 투자
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 15
+
+
+
+ Over ${thresholdMax}% of your current investment is at ${maxAccountName} (${maxInvestmentRatio}%)
+ 현재 투자의 ${thresholdMax}% 이상이 ${maxAccountName} (${maxInvestmentRatio}%)에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 17
+
+
+
+ The major part of your current investment is at ${maxAccountName} (${maxInvestmentRatio}%) and does not exceed ${thresholdMax}%
+ 현재 투자의 주요 부분은 ${maxAccountName} (${maxInvestmentRatio}%)이며 ${thresholdMax}%를 초과하지 않습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 24
+
+
+
+ Equity
+ 주식
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 41
+
+
+
+ The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 지분 기여도(${equityValueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 43
+
+
+
+ The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 지분 기여도(${equityValueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 47
+
+
+
+ The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 지분 기여도(${equityValueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 51
+
+
+
+ Fixed Income
+ 채권
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 55
+
+
+
+ The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 고정 수입 기여도(${fixedIncomeValueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 57
+
+
+
+ The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 고정 수입 기여도(${fixedIncomeValueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 61
+
+
+
+ The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 고정 수입 기여도(${fixedIncomeValueRatio}%)가 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 66
+
+
+
+ Investment: Base Currency
+ 투자: 기본 통화
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 85
+
+
+
+ The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency})
+ 현재 투자의 주요 부분이 기본 통화(${baseCurrency}의 ${baseCurrencyValueRatio}%)로 되어 있지 않습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 88
+
+
+
+ The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency})
+ 현재 투자의 주요 부분은 기본 통화(${baseCurrency}의 ${baseCurrencyValueRatio}%)입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 92
+
+
+
+ Investment
+ 투자
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 95
+
+
+
+ Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%)
+ 현재 투자의 ${thresholdMax}% 이상이 ${currency}(${maxValueRatio}%)에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 97
+
+
+
+ The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}%
+ 현재 투자의 주요 부분은 ${currency} (${maxValueRatio}%)이며 ${thresholdMax}%를 초과하지 않습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 101
+
+
+
+ start
+ start
+ kebab-case
+
+ libs/common/src/lib/routes/routes.ts
+ 336
+
+
+ libs/common/src/lib/routes/routes.ts
+ 337
+
+
+
+ Generate
+ 생성하다
+
+ apps/client/src/app/components/user-account-access/user-account-access.html
+ 43
+
+
+
+ If you encounter a bug, would like to suggest an improvement or a new feature , please join the Ghostfolio Slack community, post to @ghostfolio_
+ 버그가 발생하거나 개선 사항이나 새로운 기능 을 제안하고 싶다면 Ghostfolio 슬랙 커뮤니티에 가입하고 @ghostfolio_ 에 게시하세요.
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 69
+
+
+
+ Do you really want to generate a new security token?
+ 정말로 새로운 보안 토큰을 생성하시겠습니까?
+
+ apps/client/src/app/components/user-account-access/user-account-access.component.ts
+ 172
+
+
+
+ Cryptocurrencies
+ 암호화폐
+
+ apps/client/src/app/components/markets/markets.component.ts
+ 52
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 51
+
+
+
+ Stocks
+ 주식
+
+ apps/client/src/app/components/markets/markets.component.ts
+ 51
+
+
+ apps/client/src/app/pages/features/features-page.html
+ 15
+
+
+
+
+
+
+ apps/client/src/app/components/admin-users/admin-users.html
+ 39
+
+
+
+ Manage Asset Profile
+ 자산 프로필 관리
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 471
+
+
+
+ Alternative Investment
+ 대체투자
+
+ libs/ui/src/lib/i18n.ts
+ 46
+
+
+
+ Collectible
+ 소장용
+
+ libs/ui/src/lib/i18n.ts
+ 56
+
+
+
+ Average Unit Price
+ 평균단가
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
+ 113
+
+
+ apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
+ 101
+
+
+
+ No results found...
+ 검색된 결과가 없습니다...
+
+ libs/ui/src/lib/assistant/assistant.html
+ 51
+
+
+
+ Account Cluster Risks
+ 계정 클러스터 위험
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 14
+
+
+
+ Asset Class Cluster Risks
+ 자산 클래스 클러스터 위험
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 39
+
+
+
+ Currency Cluster Risks
+ 통화 클러스터 위험
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 83
+
+
+
+ Economic Market Cluster Risks
+ 경제 시장 클러스터 위험
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 106
+
+
+
+ Emergency Fund
+ 비상자금
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 144
+
+
+
+ Fees
+ 수수료
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 161
+
+
+
+ Liquidity
+ 유동성
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 70
+
+
+
+ Buying Power
+ 매수 가능 금액
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 71
+
+
+
+ Your buying power is below ${thresholdMin} ${baseCurrency}
+ 귀하의 구매력은 ${thresholdMin} ${baseCurrency} 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 73
+
+
+
+ Your buying power is 0 ${baseCurrency}
+ 귀하의 구매력은 0입니다 ${baseCurrency}
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 77
+
+
+
+ Your buying power exceeds ${thresholdMin} ${baseCurrency}
+ 매수 가능 금액이 ${thresholdMin} ${baseCurrency}을(를) 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 80
+
+
+
+ Regional Market Cluster Risks
+ 지역 시장 클러스터 위험
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 163
+
+
+
+ Developed Markets
+ 선진시장
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 109
+
+
+
+ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 선진국 시장 기여도(${개발된MarketsValueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 112
+
+
+
+ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 선진국 시장 기여도(${개발된MarketsValueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 117
+
+
+
+ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 선진국 시장 기여도(${개발된MarketsValueRatio}%)는 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 122
+
+
+
+ Emerging Markets
+ 신흥시장
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 127
+
+
+
+ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 신흥 시장 기여도(${emergingMarketsValueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 130
+
+
+
+ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 신흥 시장 기여도(${emergingMarketsValueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 135
+
+
+
+ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 신흥 시장 기여도(${emergingMarketsValueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 140
+
+
+
+ No accounts have been set up
+ 설정된 계정이 없습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 21
+
+
+
+ Your net worth is managed by 0 accounts
+ 귀하의 순자산은 0개의 계정에서 관리됩니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 33
+
+
+
+ Asia-Pacific
+ 아시아·태평양
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 165
+
+
+
+ The Asia-Pacific market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 아시아 태평양 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 167
+
+
+
+ The Asia-Pacific market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 아시아 태평양 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 171
+
+
+
+ The Asia-Pacific market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 아시아 태평양 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 175
+
+
+
+ Emerging Markets
+ 신흥시장
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 180
+
+
+
+ The Emerging Markets contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 신흥 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 183
+
+
+
+ The Emerging Markets contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 신흥 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 187
+
+
+
+ The Emerging Markets contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 신흥 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 191
+
+
+
+ Europe
+ 유럽
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 195
+
+
+
+ The Europe market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 유럽 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 197
+
+
+
+ The Europe market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 유럽 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 201
+
+
+
+ The Europe market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 유럽 시장 기여도(${valueRatio}%)는 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 205
+
+
+
+ Japan
+ 일본
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 209
+
+
+
+ The Japan market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 일본 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 211
+
+
+
+ The Japan market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 일본 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 215
+
+
+
+ The Japan market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 일본 시장 기여도(${valueRatio}%)는 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 219
+
+
+
+ North America
+ 북미
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 223
+
+
+
+ The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ 현재 투자의 북미 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 225
+
+
+
+ The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ 현재 투자의 북미 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 229
+
+
+
+ The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ 현재 투자의 북미 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다.
+
+ apps/client/src/app/pages/i18n/i18n-page.html
+ 233
+
+
+
+ Support Ghostfolio
+ 고스트폴리오 지원
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 166
+
+
+
+ Find Ghostfolio on GitHub
+ 깃허브에서 Ghostfolio 찾기
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 99
+
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 138
+
+
+
+ Ghostfolio is an independent & bootstrapped business
+ Ghostfolio는 독립적이고 부트스트랩된 사업입니다.
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 157
+
+
+
+ Send an e-mail
+ 이메일 보내기
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 89
+
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 128
+
+
+
+ Registration Date
+ 등록일
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 51
+
+
+
+ Join the Ghostfolio Slack community
+ Ghostfolio 슬랙 커뮤니티에 참여하세요
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 109
+
+
+
+ Follow Ghostfolio on LinkedIn
+ LinkedIn에서 Ghostfolio를 팔로우하세요.
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 147
+
+
+
+ Follow Ghostfolio on X (formerly Twitter)
+ X(이전의 Twitter)에서 Ghostfolio를 팔로우하세요.
+
+ apps/client/src/app/pages/about/overview/about-overview-page.html
+ 118
+
+
+
+
+
diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf
index c34f259bc..288628863 100644
--- a/apps/client/src/locales/messages.nl.xlf
+++ b/apps/client/src/locales/messages.nl.xlf
@@ -26,7 +26,7 @@
Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -39,10 +39,10 @@
please
- please
+ alsjeblieft
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -50,7 +50,7 @@
Type
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -62,7 +62,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -78,31 +82,23 @@
Intrekken
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
with
- with
+ met
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
Wil je deze verleende toegang echt intrekken?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -114,7 +110,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -126,7 +122,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -142,15 +138,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -158,7 +154,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -174,7 +170,7 @@
Totaal
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -186,15 +182,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -202,23 +198,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -242,19 +238,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -270,15 +266,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -286,11 +286,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -302,7 +302,7 @@
Wil je deze rekening echt verwijderen?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -310,7 +310,7 @@
Taken verwijderen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -318,7 +318,7 @@
Gegevensbron
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -330,7 +330,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -342,7 +342,7 @@
Pogingen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -350,7 +350,7 @@
Aangemaakt
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -358,7 +358,7 @@
Voltooid
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -366,16 +366,16 @@
Status
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
and is driven by the efforts of its contributors
- and is driven by the efforts of its contributors
+ en wordt gedreven door de inspanningen van zijn bijdragers
apps/client/src/app/pages/about/overview/about-overview-page.html
49
@@ -386,7 +386,7 @@
Activa Profiel
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -398,11 +398,11 @@
Historische marktgegevens
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -410,7 +410,7 @@
Bekijk gegevens
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -418,7 +418,7 @@
Bekijk Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -426,7 +426,7 @@
Taak verwijderen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -442,7 +442,7 @@
Datum
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -450,7 +450,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -490,7 +490,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -498,7 +498,7 @@
Aantal activiteiten
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -510,7 +510,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -518,7 +518,7 @@
Wil je deze coupon echt verwijderen?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -526,7 +526,7 @@
Wil je echt de cache legen?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -534,7 +534,7 @@
Stel je systeemboodschap in:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -542,7 +542,7 @@
Aantal gebruikers
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -550,7 +550,7 @@
per gebruiker
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -578,7 +578,7 @@
Systeembericht
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -586,7 +586,7 @@
Bericht instellen
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -594,7 +594,7 @@
Alleen lezen
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -602,7 +602,7 @@
Coupons
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -610,7 +610,7 @@
Toevoegen
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -622,7 +622,7 @@
Huishouding
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -630,7 +630,7 @@
Cache legen
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -638,7 +638,7 @@
Wilt je deze gebruiker echt verwijderen?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -659,7 +659,7 @@
No auto-renewal on membership.
- No auto-renewal on membership.
+ Het lidmaatschap wordt niet automatisch verlengd.
apps/client/src/app/components/user-account-membership/user-account-membership.html
74
@@ -674,7 +674,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -714,7 +714,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -726,11 +726,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -746,7 +746,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -766,15 +766,15 @@
Oeps! Onjuiste beveiligingstoken.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -782,7 +782,7 @@
Activiteiten beheren
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -814,7 +814,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -858,7 +858,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -898,7 +898,7 @@
Absoluut bruto rendement
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -906,11 +906,11 @@
Absoluut netto rendement
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -918,11 +918,11 @@
Netto rendement
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -930,7 +930,7 @@
Totaal Activa
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -938,7 +938,7 @@
Koopkracht
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -946,7 +946,7 @@
Netto waarde
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -954,7 +954,7 @@
Rendement per jaar
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -974,7 +974,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -982,7 +982,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -994,7 +994,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1006,7 +1006,7 @@
Tags
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1022,7 +1022,7 @@
Gegevensstoring melden
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1030,11 +1030,11 @@
Allocatie
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1050,7 +1050,7 @@
Toon alle
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -1062,7 +1062,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -1070,11 +1070,11 @@
YTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -1082,11 +1082,11 @@
1J
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -1094,11 +1094,19 @@
5J
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Prestaties met valuta-effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -1106,11 +1114,11 @@
Max
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -1126,7 +1134,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -1218,7 +1226,7 @@
Wil je deze aanmeldingsmethode echt verwijderen?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -1238,7 +1246,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -1262,7 +1270,7 @@
Presentatie weergave
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -1278,11 +1286,11 @@
Locatie
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -1290,7 +1298,7 @@
Datum- en getalnotatie
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -1298,7 +1306,7 @@
Zen-modus
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -1310,7 +1318,7 @@
Aanmelden met vingerafdruk
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -1322,11 +1330,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -1374,11 +1382,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -1418,7 +1426,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -1430,15 +1438,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -1454,7 +1462,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -1470,7 +1478,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -1610,7 +1618,7 @@
Aangezien je al ingelogd bent, heb je geen toegang tot de demo-account.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -1656,6 +1664,10 @@
Overview
Overzicht
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -1674,11 +1686,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -1694,7 +1706,7 @@
Markten
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -1718,7 +1730,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -1758,7 +1770,7 @@
Per rekening
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -1766,7 +1778,7 @@
Per valuta
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -1774,7 +1786,7 @@
Per asset klasse
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -1782,7 +1794,7 @@
Per positie
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -1790,7 +1802,7 @@
Per sector
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -1798,7 +1810,7 @@
Per continent
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -1806,7 +1818,7 @@
Per land
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -1814,11 +1826,11 @@
Regio’s
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -1838,7 +1850,7 @@
Tijdlijn investeringen
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -1846,7 +1858,7 @@
Winnaars
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -1854,7 +1866,7 @@
Verliezers
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -1911,10 +1923,10 @@
Current week
- Current week
+ Huidige week
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1958,7 +1970,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -1970,15 +1982,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1986,11 +1998,11 @@
Prijs per eenheid
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -1998,7 +2010,7 @@
Opmerking
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -2006,7 +2018,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -2018,7 +2030,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -2038,11 +2050,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -2054,7 +2066,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -2062,7 +2074,7 @@
Gegevens importeren...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -2070,12 +2082,12 @@
Importeren is voltooid
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
or start a discussion at
- or start a discussion at
+ of start een discussie op
apps/client/src/app/pages/about/overview/about-overview-page.html
94
@@ -2130,7 +2142,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -2142,12 +2154,12 @@
Continenten
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
Sustainable retirement income
- Sustainable retirement income
+ Duurzaam pensioeninkomen
apps/client/src/app/pages/portfolio/fire/fire-page.html
41
@@ -2158,7 +2170,7 @@
Ghostfolio stelt je in staat om je vermogen bij te houden.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -2188,6 +2200,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Resources
@@ -2242,7 +2258,7 @@
Concept
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -2254,11 +2270,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -2266,11 +2282,11 @@
Activiteiten exporteren
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -2278,11 +2294,11 @@
Concept exporteren als ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -2290,7 +2306,7 @@
Kloon
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -2298,7 +2314,7 @@
Concept exporteren als ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -2306,7 +2322,7 @@
Wil je deze activiteit echt verwijderen?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -2319,10 +2335,10 @@
contact us
- contact us
+ contacteer ons
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -2374,7 +2390,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2390,12 +2406,12 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
Exclude from Analysis
- Exclude from Analysis
+ Uitsluiten van analyse
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
90
@@ -2410,19 +2426,19 @@
Ontwikkelde markten
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
Latest activities
- Latest activities
+ Laatste activiteiten
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -2438,11 +2454,11 @@
Andere markten
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -2450,11 +2466,11 @@
Opkomende markten
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -2486,7 +2502,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -2510,7 +2526,7 @@
Besparingen
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -2522,11 +2538,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -2535,7 +2551,7 @@
annual interest rate
- annual interest rate
+ jaarlijkse rente
apps/client/src/app/pages/portfolio/fire/fire-page.html
185
@@ -2546,7 +2562,7 @@
Storting
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -2578,15 +2594,15 @@
Angst
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -2594,15 +2610,15 @@
Hebzucht
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -2610,7 +2626,7 @@
Filter op...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -2638,7 +2654,7 @@
Experimentele functies
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -2646,7 +2662,7 @@
Benchmark
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -2655,14 +2671,14 @@
Could not validate form
- Could not validate form
+ Het formulier kon niet worden gevalideerd.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -2686,7 +2702,7 @@
Uitgesloten van analyse
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -2698,7 +2714,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -2706,7 +2722,7 @@
Weergave
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -2714,7 +2730,7 @@
Licht
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -2722,7 +2738,7 @@
Donker
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -2730,7 +2746,7 @@
Totaalbedrag
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -2738,7 +2754,7 @@
Waardeontwikkeling van portefeuille
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -2758,7 +2774,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -2782,7 +2798,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -2790,7 +2806,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -2806,7 +2822,7 @@
Symbool
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -2822,7 +2838,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -2846,7 +2862,7 @@
Contant geld
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -2891,10 +2907,10 @@
Authentication
- Authentication
+ Authenticatie
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -2926,7 +2942,7 @@
Beleggingsfonds
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -2934,7 +2950,7 @@
Edelmetaal
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -2942,7 +2958,7 @@
Private equity
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -2950,7 +2966,7 @@
Aandeel
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -2958,7 +2974,7 @@
Noodfonds
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -2978,7 +2994,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -2986,11 +3002,11 @@
Geen gegevens beschikbaar
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -2998,11 +3014,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -3014,7 +3030,7 @@
Noord-Amerika
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -3022,7 +3038,7 @@
Afrika
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -3030,7 +3046,7 @@
Azië
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -3038,12 +3054,12 @@
Europa
libs/ui/src/lib/i18n.ts
- 71
+ 72
If you retire today, you would be able to withdraw
- If you retire today, you would be able to withdraw
+ Als u vandaag met pensioen gaat, kunt u
apps/client/src/app/pages/portfolio/fire/fire-page.html
68
@@ -3054,7 +3070,7 @@
Oceanië
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -3062,7 +3078,7 @@
Zuid-Amerika
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -3106,15 +3122,15 @@
Symbool toewijzen
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
Looking for a student discount?
- Looking for a student discount?
+ Op zoek naar studentenkorting?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -3130,7 +3146,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -3138,7 +3154,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -3154,7 +3170,7 @@
Tijdlijn dividend
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -3170,7 +3186,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -3178,7 +3194,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -3190,7 +3206,7 @@
Account aanmaken
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -3198,7 +3214,7 @@
Gegevens valideren...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3214,7 +3230,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -3222,7 +3238,7 @@
Marktgegevens
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -3282,15 +3298,15 @@
Importeer dividenden
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3298,7 +3314,7 @@
Geldig tot
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -3337,6 +3353,14 @@
22
+
+ No Activities
+ Geen activiteiten
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Pensioen
@@ -3345,6 +3369,14 @@
28
+
+ Everything in Basic , plus
+ Alles van Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Satelliet
@@ -3358,7 +3390,7 @@
Bescherming voor gevoelige informatie zoals absoluut rendement en hoeveelheden
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -3366,7 +3398,7 @@
Afleidingsvrije ervaring voor roerige tijden
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -3374,7 +3406,7 @@
Voorproefje van nieuwe functionaliteit
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -3398,7 +3430,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -3414,7 +3446,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -3430,7 +3462,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -3446,7 +3478,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -3494,7 +3526,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -3578,7 +3610,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -3594,19 +3626,19 @@
Eenmalige betaling, geen automatische verlenging.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
Could not save asset profile
- Could not save asset profile
+ Kon het assetprofiel niet opslaan
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -3614,7 +3646,7 @@
Het is gratis.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -3626,7 +3658,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -3646,7 +3678,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -3690,7 +3722,7 @@
Ondersteuning via e-mail en chat
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -3709,6 +3741,14 @@
14
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Marktgegevens geleverd door
@@ -3734,7 +3774,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -3758,7 +3798,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -3790,7 +3830,7 @@
Weet je zeker dat je alle activiteiten wilt verwijderen?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3798,12 +3838,20 @@
Per ETF-aanbieder
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
By
- By
+ Tegen
apps/client/src/app/pages/portfolio/fire/fire-page.html
139
@@ -3819,10 +3867,10 @@
Current year
- Current year
+ Huidig jaar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -3838,11 +3886,11 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -3855,10 +3903,10 @@
Asset profile has been saved
- Asset profile has been saved
+ Het activaprofiel is opgeslagen.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -3866,7 +3914,7 @@
Wil je dit platform echt verwijderen?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
@@ -3874,7 +3922,7 @@
Platforms
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -3882,7 +3930,7 @@
Saldo bijwerken
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3890,7 +3938,7 @@
Per platform
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -4002,7 +4050,7 @@
Huidige reeks
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4010,7 +4058,7 @@
Langste reeks
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4047,14 +4095,14 @@
View Details
- View Details
+ Bekijk details
apps/client/src/app/components/admin-users/admin-users.html
225
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -4062,7 +4110,7 @@
Verplichtingen
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -4183,7 +4231,7 @@
per week
- per week
+ per week
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
130
@@ -4194,7 +4242,7 @@
Open Source Software
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -4207,7 +4255,7 @@
and we share aggregated key metrics of the platform’s performance
- and we share aggregated key metrics of the platform’s performance
+ en we delen geaggregeerde belangrijke prestatiegegevens van het platform
apps/client/src/app/pages/about/overview/about-overview-page.html
32
@@ -4218,7 +4266,7 @@
Scraper instellingen
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -4251,7 +4299,7 @@
Website of Thomas Kaul
- Website of Thomas Kaul
+ Website van Thomas Kaul
apps/client/src/app/pages/about/overview/about-overview-page.html
44
@@ -4431,7 +4479,7 @@
Sign in with OpenID Connect
- Sign in with OpenID Connect
+ Meld je aan met OpenID Connect
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
55
@@ -4457,20 +4505,12 @@
43
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
-
-
ETFs without Countries
ETF’s zonder Landen
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -4478,7 +4518,7 @@
ETF’s zonder Sectoren
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -4486,7 +4526,7 @@
Assets
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -4502,7 +4542,7 @@
Per markt
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -4518,7 +4558,7 @@
Japan
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -4531,7 +4571,7 @@
The source code is fully available as open source software (OSS) under the AGPL-3.0 license
- The source code is fully available as open source software (OSS) under the AGPL-3.0 license
+ De broncode is volledig beschikbaar als open source software (OSS) onder de AGPL-3.0-licentie
apps/client/src/app/pages/about/overview/about-overview-page.html
16
@@ -4603,7 +4643,7 @@
this is projected to increase to
- this is projected to increase to
+ zal dit naar verwachting stijgen tot
apps/client/src/app/pages/portfolio/fire/fire-page.html
147
@@ -4614,7 +4654,7 @@
Biometrische authenticatie
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -4655,10 +4695,10 @@
Job ID
- Job ID
+ Opdracht ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -4706,7 +4746,7 @@
Exporteer Data
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -4714,11 +4754,11 @@
Valuta
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
+ 95
@@ -4739,7 +4779,7 @@
for
- for
+ voor
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
128
@@ -4763,14 +4803,14 @@
Could not parse scraper configuration
- Could not parse scraper configuration
+ De scraperconfiguratie kon niet worden geparseerd
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -4807,7 +4847,7 @@
Edit access
- Edit access
+ Toegang bewerken
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
11
@@ -4879,7 +4919,7 @@
Get access to 80’000+ tickers from over 50 exchanges
- Get access to 80’000+ tickers from over 50 exchanges
+ Krijg toegang tot meer dan 80.000+ tickers van meer dan 50 beurzen
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
84
@@ -5063,7 +5103,7 @@
less than
- less than
+ minder dan
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
129
@@ -5324,11 +5364,11 @@
Zwitserland
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -5336,7 +5376,7 @@
Wereldwijd
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -5353,7 +5393,7 @@
Ghostfolio Status
- Ghostfolio Status
+ Ghostfolio Status
apps/client/src/app/pages/about/overview/about-overview-page.html
62
@@ -5361,10 +5401,10 @@
with your university e-mail address
- with your university e-mail address
+ met uw universitaire e-mailadres
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -5381,7 +5421,7 @@
and a safe withdrawal rate (SWR) of
- and a safe withdrawal rate (SWR) of
+ en een veilige opnameratio (SWR) van
apps/client/src/app/pages/portfolio/fire/fire-page.html
108
@@ -5432,11 +5472,11 @@
Kosten
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5464,7 +5504,7 @@
Weet u zetker dat u dit label wilt verwijderen?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -5532,7 +5572,7 @@
Lidmaatschap
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -5545,10 +5585,10 @@
Request it
- Request it
+ Aanvragen
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -5564,7 +5604,7 @@
Bezittingen Profiel
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -5601,7 +5641,7 @@
,
- ,
+ ,
apps/client/src/app/pages/portfolio/fire/fire-page.html
145
@@ -5617,7 +5657,7 @@
per month
- per month
+ per maand
apps/client/src/app/pages/portfolio/fire/fire-page.html
94
@@ -5664,7 +5704,7 @@
Extreme Angst
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -5672,7 +5712,7 @@
Extreme Hebzucht
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5680,7 +5720,7 @@
Neutraal
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -5688,7 +5728,7 @@
Oeps! Ophalen van historische data is mislukt.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -5696,7 +5736,7 @@
Wilt u dit systeembericht echt verwijderen?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -5720,7 +5760,7 @@
Contant Saldo
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -5740,7 +5780,7 @@
Wilt u dit rekeningsaldo echt verwijderen?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -5756,7 +5796,7 @@
De huidige markt waarde is
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5764,7 +5804,7 @@
Test
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5804,15 +5844,15 @@
Oeps! Kan geen toegang verlenen.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
Argentina
- Argentina
+ Argentinië
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5860,23 +5900,23 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
here
- here
+ hier
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
Close Holding
- Close Holding
+ Sluit Holding
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5884,7 +5924,7 @@
Absolute Activaprestaties
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5892,7 +5932,7 @@
Activaprestaties
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -5900,7 +5940,7 @@
Absolute Valutaprestaties
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -5908,7 +5948,7 @@
Valutaprestaties
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5916,7 +5956,7 @@
Week tot nu toe
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5924,11 +5964,11 @@
Week tot nu toe
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5936,7 +5976,7 @@
Maand tot nu toe
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5944,11 +5984,11 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5956,7 +5996,7 @@
Jaar tot nu toe
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5992,7 +6032,7 @@
jaar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6004,7 +6044,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6012,11 +6052,11 @@
jaren
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6032,11 +6072,11 @@
Data Verzamelen
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6044,7 +6084,7 @@
Algemeen
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6052,7 +6092,7 @@
Cloud
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6064,7 +6104,7 @@
Zelf Hosten
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6105,7 +6145,7 @@
Actief
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6113,7 +6153,7 @@
Gesloten
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6121,7 +6161,7 @@
Indonesië
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -6145,7 +6185,7 @@
Opdracht Uitvoeren
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6153,7 +6193,7 @@
Prioriteit
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6193,7 +6233,7 @@
Verwijder Activiteiten
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6209,7 +6249,7 @@
Wilt u uw Ghostfolio account echt sluiten?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6217,7 +6257,7 @@
Gevarenzone
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6225,7 +6265,7 @@
Account Sluiten
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6233,7 +6273,7 @@
Per Aangehouden ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -6241,7 +6281,7 @@
Benadering op basis van de grootste belegingen binnen iedere ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6254,10 +6294,10 @@
Include in
- Include in
+ Opnemen in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -6265,7 +6305,7 @@
Oeps! Er is een fout opgetreden met het instellen van de biometrische authenticatie.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6281,7 +6321,7 @@
Benchmarks
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -6329,7 +6369,7 @@
Wilt u uw persoonlijke belegginngsstrategie verfijnen ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6337,7 +6377,7 @@
Alternatief
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6345,7 +6385,7 @@
App
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6353,7 +6393,7 @@
Budgetteren
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6369,47 +6409,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6417,7 +6461,7 @@
Familiekantoor
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6425,7 +6469,7 @@
Investeerder
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6437,7 +6481,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6449,7 +6493,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6457,7 +6501,7 @@
Privacy
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6465,7 +6509,7 @@
Software
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6473,7 +6517,7 @@
Hulpmiddel
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6481,7 +6525,7 @@
Gebruikers Ervaring
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6489,7 +6533,7 @@
Vermogen
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6497,7 +6541,7 @@
Vermogensbeheer
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6505,7 +6549,7 @@
Australië
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6513,7 +6557,7 @@
Oostenrijk
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6521,7 +6565,7 @@
België
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6529,15 +6573,15 @@
Bulgarije
libs/ui/src/lib/i18n.ts
- 83
+ 84
View Holding
- View Holding
+ Bekijk Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6545,7 +6589,7 @@
Canada
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6553,7 +6597,7 @@
Tsjechische Republiek
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6561,7 +6605,7 @@
Finland
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6569,7 +6613,7 @@
Frankrijk
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6577,7 +6621,7 @@
Duitsland
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6585,7 +6629,7 @@
India
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6593,7 +6637,7 @@
Italië
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6601,7 +6645,7 @@
Nederland
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6609,7 +6653,7 @@
Nieuw-Zeeland
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6617,7 +6661,7 @@
Polen
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6625,7 +6669,7 @@
Roemenië
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6633,7 +6677,7 @@
Zuid-Afrika
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6641,7 +6685,7 @@
Thailand
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6649,7 +6693,7 @@
Verenigde Station
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6657,7 +6701,7 @@
Fout
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6678,15 +6722,15 @@
Oops! Could not update access.
- Oops! Could not update access.
+ Oops! Kan de toegang niet updaten.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
, based on your total assets of
- , based on your total assets of
+ opnemen, dit is gebaseerd op uw totale vermogen van
apps/client/src/app/pages/portfolio/fire/fire-page.html
96
@@ -6709,7 +6753,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6741,7 +6785,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6749,7 +6793,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6761,7 +6805,7 @@
Sluiten
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6787,13 +6831,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6802,10 +6850,10 @@
Role
- Role
+ Rol
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6829,7 +6877,7 @@
Portfolio Momentopname
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6842,10 +6890,10 @@
If you plan to open an account at
- If you plan to open an account at
+ Als u van plan bent een rekening te openen bij
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6874,7 +6922,7 @@
send an e-mail to
- send an e-mail to
+ stuur een e-mail naar
apps/client/src/app/pages/about/overview/about-overview-page.html
87
@@ -6896,6 +6944,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
Vanaf het begin
@@ -6946,7 +7002,7 @@
, assuming a
- , assuming a
+ , uitgaande van
apps/client/src/app/pages/portfolio/fire/fire-page.html
174
@@ -6957,7 +7013,7 @@
to use our referral link and get a Ghostfolio Premium membership for one year
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7034,7 +7090,7 @@
Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.
- Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.
+ Ghostfolio is een gebruiksvriendelijke applicatie voor vermogensbeheer waarmee particulieren hun aandelen, ETF's of cryptovaluta kunnen volgen en weloverwogen, datagestuurde beleggingsbeslissingen kunnen nemen.
apps/client/src/app/pages/about/overview/about-overview-page.html
10
@@ -7061,7 +7117,7 @@
API-sleutel instellen
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7077,7 +7133,7 @@
Oekraïne
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7097,7 +7153,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7113,7 +7169,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7167,7 +7223,7 @@
van
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7175,7 +7231,7 @@
dagelijkse verzoeken
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7183,7 +7239,7 @@
Verwijder API-sleutel
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7191,7 +7247,7 @@
Wilt u de API-sleutel echt verwijderen?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7199,7 +7255,7 @@
Voer uw Ghostfolio API-sleutel in:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7211,7 +7267,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7283,7 +7339,7 @@
Opslaan
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7319,11 +7375,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7335,7 +7391,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7359,7 +7415,15 @@
Voer uw Ghostfolio API-sleutel in.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Verandering met valuta-effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7375,7 +7439,7 @@
Link is gekopieerd naar klemboord
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7383,7 +7447,7 @@
Lui
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7391,7 +7455,7 @@
Direct
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7399,7 +7463,7 @@
Standaard Marktprijs
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7407,7 +7471,7 @@
Modus
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7415,7 +7479,7 @@
Kiezer
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7423,7 +7487,7 @@
HTTP Verzoek Headers
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7431,7 +7495,7 @@
eind van de dag
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7439,7 +7503,7 @@
real-time
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7463,11 +7527,11 @@
Aanpassen
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7479,24 +7543,24 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
The project has been initiated by
- The project has been initiated by
+ Het project is geïnitieerd door
apps/client/src/app/pages/about/overview/about-overview-page.html
40
@@ -7518,12 +7582,20 @@
67
+
+ Total amount
+ Totaal bedrag
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Armenië
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7531,7 +7603,7 @@
Britse Maagdeneilanden
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7539,7 +7611,7 @@
Singapore
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7587,11 +7659,11 @@
Beveiligingstoken
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7599,15 +7671,15 @@
Wilt u echt een nieuw beveiligingstoken voor deze gebruiker aanmaken?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
Find account, holding or page...
- Find account, holding or page...
+ Vindt een account, holding of pagina...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7623,7 +7695,7 @@
Verenigd Koninkrijk
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7672,7 +7744,7 @@
( ) is al in gebruik.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7680,7 +7752,7 @@
Er is een fout opgetreden tijdens het updaten naar ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7696,7 +7768,7 @@
met API toegang tot
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7744,7 +7816,7 @@
iemand
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7817,7 +7889,7 @@
Demo-gebruikersaccount is gesynchroniseerd.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7825,7 +7897,7 @@
Synchroniseer demo-gebruikersaccount
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7852,7 +7924,7 @@
150
-
+
Fee Ratio
Vergoedingsverhouding
@@ -7860,17 +7932,17 @@
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- De kosten overschrijden ${thresholdMax}% van uw initiële investering (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ De kosten overschrijden ${thresholdMax}% van uw totale investeringsvolume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- De kosten bedragen niet meer dan ${thresholdMax}% van uw initiële investering (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ De kosten bedragen maximaal ${thresholdMax}% van uw totale investeringsvolume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7995,7 +8067,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8007,7 +8079,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8028,10 +8100,10 @@
Current month
- Current month
+ Huidige maand
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8039,11 +8111,7 @@
nieuw
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8200,7 +8268,7 @@
Wilt u echt een nieuwe securitytoken genereren?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8213,7 +8281,7 @@
If you encounter a bug, would like to suggest an improvement or a new feature , please join the Ghostfolio Slack community, post to @ghostfolio_
- If you encounter a bug, would like to suggest an improvement or a new feature , please join the Ghostfolio Slack community, post to @ghostfolio_
+ Als je een bug tegenkomt, een verbetering wilt voorstellen of een nieuwe functie wilt toevoegen, word dan lid van de Ghostfolio Slack-community . Stuur een bericht naar @ghostfolio_
apps/client/src/app/pages/about/overview/about-overview-page.html
69
@@ -8224,7 +8292,7 @@
Aandelen
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8236,7 +8304,7 @@
Cryptovaluta
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8256,7 +8324,7 @@
Beheer activaprofiel
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8337,7 +8405,7 @@
Liquidity
- Liquidity
+ Liquiditeit
apps/client/src/app/pages/i18n/i18n-page.html
70
@@ -8345,7 +8413,7 @@
Buying Power
- Buying Power
+ Koopkracht
apps/client/src/app/pages/i18n/i18n-page.html
71
@@ -8353,7 +8421,7 @@
Your buying power is below ${thresholdMin} ${baseCurrency}
- Your buying power is below ${thresholdMin} ${baseCurrency}
+ Uw koopkracht ligt onder ${thresholdMin} ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
73
@@ -8361,7 +8429,7 @@
Your buying power is 0 ${baseCurrency}
- Your buying power is 0 ${baseCurrency}
+ Uw koopkracht is 0 ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
77
@@ -8369,7 +8437,7 @@
Your buying power exceeds ${thresholdMin} ${baseCurrency}
- Your buying power exceeds ${thresholdMin} ${baseCurrency}
+ Uw koopkracht overschrijdt ${thresholdMin} ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
80
@@ -8673,10 +8741,10 @@
Registration Date
- Registration Date
+ Registratiedatum
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf
index 2241e6a9a..ff5299356 100644
--- a/apps/client/src/locales/messages.pl.xlf
+++ b/apps/client/src/locales/messages.pl.xlf
@@ -215,7 +215,7 @@
Ryzyko strat na rynku może być znaczne. Nie jest zalecane inwestowanie pieniędzy, które mogą być potrzebne w krótkim okresie.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -240,10 +240,10 @@
please
- please
+ proszę
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -251,7 +251,7 @@
Typ
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -263,7 +263,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -279,31 +283,23 @@
Cofnij
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
with
- with
+ z
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
Czy na pewno chcesz cofnąć przyznany dostęp?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -319,7 +315,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -335,7 +331,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -359,7 +355,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -371,7 +367,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -387,15 +383,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -403,7 +399,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -419,7 +415,7 @@
Suma
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -431,7 +427,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -443,15 +439,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -463,15 +459,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -479,23 +475,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -519,19 +515,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -547,15 +543,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -563,11 +563,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -579,7 +579,7 @@
Czy na pewno chcesz usunąć to konto?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -587,7 +587,7 @@
Profil Aktywów
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -595,11 +595,11 @@
Historyczne Dane Rynkowe
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -607,7 +607,7 @@
Źródło Danych
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -619,7 +619,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -631,7 +631,7 @@
Próby
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -639,7 +639,7 @@
Utworzono
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -647,7 +647,7 @@
Zakończono
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -655,16 +655,16 @@
Status
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
and is driven by the efforts of its contributors
- and is driven by the efforts of its contributors
+ i jest rozwijany dzięki pracy jego współtwórców
apps/client/src/app/pages/about/overview/about-overview-page.html
49
@@ -675,7 +675,7 @@
Usuń Zadania
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -683,7 +683,7 @@
Zobacz Dane
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -691,7 +691,7 @@
Wyświetl Stos Wywołań
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -699,7 +699,7 @@
Usuń Zadanie
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -715,7 +715,7 @@
Data
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -723,7 +723,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -751,19 +751,11 @@
Waluty
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
-
-
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
+ 95
@@ -771,7 +763,7 @@
ETF-y bez Krajów
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -779,7 +771,7 @@
ETF-y bez Sektorów
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -795,7 +787,7 @@
Filtruj według...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -815,7 +807,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -835,7 +827,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -871,7 +863,7 @@
Ups! Nie udało się sparsować danych historycznych.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -895,7 +887,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -927,7 +919,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -939,7 +931,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -947,7 +939,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -959,7 +951,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -971,7 +963,7 @@
Mapowanie Symboli
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -987,7 +979,7 @@
Konfiguracja Scrapera
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -995,7 +987,7 @@
Notatka
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -1003,7 +995,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -1047,7 +1039,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -1055,7 +1047,7 @@
Czy naprawdę chcesz usunąć ten kupon?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -1063,7 +1055,7 @@
Czy naprawdę chcesz usunąć tę wiadomość systemową?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -1071,7 +1063,7 @@
Czy naprawdę chcesz wyczyścić pamięć podręczną?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -1079,7 +1071,7 @@
Proszę ustawić swoją wiadomość systemową:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -1095,7 +1087,7 @@
Liczba Użytkowników
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -1103,7 +1095,7 @@
Liczba Aktywności
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -1111,7 +1103,7 @@
na Użytkownika
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -1127,7 +1119,7 @@
Rejestracja Użytkownika
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -1135,7 +1127,7 @@
Tryb Tylko do Odczytu
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -1143,7 +1135,7 @@
Wiadomość Systemowa
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -1151,7 +1143,7 @@
Ustaw Wiadomość
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -1159,7 +1151,7 @@
Kupony
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -1167,7 +1159,7 @@
Dodaj
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -1179,7 +1171,7 @@
Konserwacja
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -1187,7 +1179,7 @@
Wyczyszczenie pamięci podręcznej
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -1203,11 +1195,11 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -1220,10 +1212,10 @@
Asset profile has been saved
- Asset profile has been saved
+ Profil zasobu został zapisany
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -1231,12 +1223,20 @@
Czy naprawdę chcesz usunąć tę platformę?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
+
+
+
+ Explore
+ Eksploruj
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
By
- By
+ Przez
apps/client/src/app/pages/portfolio/fire/fire-page.html
139
@@ -1252,10 +1252,10 @@
Current year
- Current year
+ Obecny rok
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -1271,7 +1271,7 @@
Platformy
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -1279,7 +1279,7 @@
Tagi
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1303,7 +1303,7 @@
Czy naprawdę chcesz usunąć ten tag?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -1327,7 +1327,7 @@
Czy na pewno chcesz usunąć tego użytkownika?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -1348,7 +1348,7 @@
No auto-renewal on membership.
- No auto-renewal on membership.
+ Brak automatycznego odnawiania członkostwa.
apps/client/src/app/components/user-account-membership/user-account-membership.html
74
@@ -1363,7 +1363,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -1395,11 +1395,11 @@
Could not validate form
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -1435,7 +1435,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -1447,7 +1447,7 @@
Poziom Odniesienia (Benchmark)
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -1483,7 +1483,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -1503,15 +1503,15 @@
Ups! Nieprawidłowy token bezpieczeństwa.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -1519,7 +1519,7 @@
Zarządzaj Aktywnościami
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -1527,15 +1527,15 @@
Zagrożenie
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -1543,15 +1543,15 @@
Zachłanność
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -1584,7 +1584,7 @@
The source code is fully available as open source software (OSS) under the AGPL-3.0 license
- The source code is fully available as open source software (OSS) under the AGPL-3.0 license
+ Kod źródłowy jest w pełni dostępny jako oprogramowanie open source (OSS) na licencji AGPL-3.0 license
apps/client/src/app/pages/about/overview/about-overview-page.html
16
@@ -1648,10 +1648,10 @@
Current week
- Current week
+ Obecny tydzień
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1671,7 +1671,7 @@
Całkowita Kwota
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -1699,7 +1699,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -1743,7 +1743,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -1783,7 +1783,7 @@
Bezwzględne Osiągi Brutto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -1795,7 +1795,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -1803,11 +1803,11 @@
Bezwzględne Osiągi Netto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -1815,11 +1815,11 @@
Osiągi Netto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -1827,7 +1827,7 @@
Suma Aktywów
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -1835,7 +1835,7 @@
Aktywa
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -1843,7 +1843,7 @@
Siła Nabywcza
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -1851,7 +1851,7 @@
Wykluczone z Analizy
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -1859,7 +1859,7 @@
Pasywa (Zobowiązania Finansowe)
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -1871,7 +1871,7 @@
Wartość Netto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -1879,7 +1879,7 @@
Osiągi w Ujęciu Rocznym
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -1915,15 +1915,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1931,7 +1931,7 @@
Zgłoś Błąd Danych
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1963,7 +1963,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -1983,7 +1983,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -1999,7 +1999,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -2015,7 +2015,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -2027,7 +2027,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -2043,7 +2043,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -2099,7 +2099,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -2111,7 +2111,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -2119,11 +2119,11 @@
Liczony od początku roku (year-to-date)
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -2131,11 +2131,11 @@
1 rok
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -2143,11 +2143,19 @@
5 lat
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Wynik z efektem walutowym
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -2155,11 +2163,11 @@
Maksimum
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -2235,7 +2243,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -2263,7 +2271,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -2271,7 +2279,7 @@
Czy na pewno chcesz usunąć tą metode logowania?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -2279,7 +2287,7 @@
Widok Prezentera
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -2287,7 +2295,7 @@
Ochrona dla wrażliwych informacji takich jak wyniki i wartości ilościowe
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -2311,11 +2319,11 @@
Ustawienia Regionalne
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -2323,7 +2331,7 @@
Format daty i liczb
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -2331,7 +2339,7 @@
Wygląd (tryb)
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -2339,7 +2347,7 @@
Jasny
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -2347,7 +2355,7 @@
Ciemny
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -2355,7 +2363,7 @@
Tryb Zen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -2367,12 +2375,12 @@
Doświadczenie bez zakłóceń w niespokojnych czasach
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
this is projected to increase to
- this is projected to increase to
+ prognozuje się wzrost tej kwoty do
apps/client/src/app/pages/portfolio/fire/fire-page.html
147
@@ -2383,7 +2391,7 @@
Uwierzytelnianie Biometryczne
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -2391,7 +2399,7 @@
Logowanie za pomocą linii papilarnych
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -2399,7 +2407,7 @@
Funkcje Eksperymentalne
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -2407,7 +2415,7 @@
Podgląd nadchodzących funkcjonalności
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -2419,11 +2427,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -2431,7 +2439,7 @@
Eksportuj Dane
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -2455,7 +2463,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -2467,7 +2475,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2483,7 +2491,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -2584,7 +2592,7 @@
for
- for
+ dla
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
128
@@ -2611,11 +2619,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -2707,7 +2715,7 @@
Dane Rynkowe
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -2741,6 +2749,10 @@
Overview
Przegląd
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -2759,11 +2771,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -2884,14 +2896,14 @@
Could not parse scraper configuration
- Could not parse scraper configuration
+ Nie udało się przetworzyć konfiguracji scrapera
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -2907,7 +2919,7 @@
Ponieważ jesteś już zalogowany, nie możesz uzyskać dostępu do konta demo.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -3040,7 +3052,7 @@
per week
- per week
+ na tydzień
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
130
@@ -3051,7 +3063,7 @@
Oprogramowanie Open Source
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -3063,7 +3075,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -3075,11 +3087,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -3131,7 +3143,7 @@
Rynki
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -3155,7 +3167,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -3216,7 +3228,7 @@
Edit access
- Edit access
+ Edytuj dostęp
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
11
@@ -3320,7 +3332,7 @@
Get access to 80’000+ tickers from over 50 exchanges
- Get access to 80’000+ tickers from over 50 exchanges
+ Uzyskaj dostęp do 80 000+ tickerów z ponad 50 giełd
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
84
@@ -3456,7 +3468,7 @@
less than
- less than
+ mniej niż
apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html
129
@@ -3520,7 +3532,7 @@
Ghostfolio Status
- Ghostfolio Status
+ Ghostfolio Status
apps/client/src/app/pages/about/overview/about-overview-page.html
62
@@ -3528,10 +3540,10 @@
with your university e-mail address
- with your university e-mail address
+ używając swojego adresu e-mail uczelni
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -3560,7 +3572,7 @@
and a safe withdrawal rate (SWR) of
- and a safe withdrawal rate (SWR) of
+ oraz bezpiecznej stopy wypłaty (SWR) na poziomie
apps/client/src/app/pages/portfolio/fire/fire-page.html
108
@@ -3587,7 +3599,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -3623,7 +3635,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -3643,11 +3655,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -3659,7 +3671,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -3667,7 +3679,7 @@
Czy na pewno chcesz usunąć te aktywności?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3735,7 +3747,7 @@
Zaktualizuj Saldo Gotówkowe
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3743,11 +3755,11 @@
Cena Jednostkowa
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -3759,11 +3771,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -3771,15 +3783,15 @@
Impotruj Dywidendy
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3787,7 +3799,7 @@
Importowanie danych...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -3795,12 +3807,12 @@
Importowanie zakończone
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
or start a discussion at
- or start a discussion at
+ lub rozpocznij dyskusję n
apps/client/src/app/pages/about/overview/about-overview-page.html
94
@@ -3811,7 +3823,7 @@
Weryfikacja danych...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3923,7 +3935,7 @@
Wg. platformy
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -3931,7 +3943,7 @@
Wg. waluty
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -3939,7 +3951,7 @@
Wg. klasy aktywów
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -3947,7 +3959,7 @@
Wg. inwestycji
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -3955,7 +3967,7 @@
Wg. sektora
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -3963,7 +3975,7 @@
Wg. kontynentu
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -3971,7 +3983,7 @@
Wg. rynku
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -3979,11 +3991,11 @@
Regiony
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -4003,19 +4015,19 @@
Rynki Rozwinięte
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
Latest activities
- Latest activities
+ Ostatnie transakcje
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -4023,11 +4035,11 @@
Rynki Wschodzące
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -4035,11 +4047,11 @@
Inne Rynki
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -4047,7 +4059,7 @@
Wg. kont
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -4055,7 +4067,7 @@
Wg. Dostawcy ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
@@ -4063,7 +4075,7 @@
Wg. kraju
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -4080,10 +4092,10 @@
Looking for a student discount?
- Looking for a student discount?
+ Szukasz zniżki studenckiej?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -4099,7 +4111,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -4107,7 +4119,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -4120,7 +4132,7 @@
annual interest rate
- annual interest rate
+ rocznej stopy zwrotu
apps/client/src/app/pages/portfolio/fire/fire-page.html
185
@@ -4131,7 +4143,7 @@
Depozyt
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -4155,7 +4167,7 @@
Największe wzrosty
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -4163,7 +4175,7 @@
Największy spadek
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -4171,7 +4183,7 @@
Rozwój portfela
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -4179,7 +4191,7 @@
Oś czasu inwestycji
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -4187,7 +4199,7 @@
Obecna passa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4195,7 +4207,7 @@
Najdłuższa passa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4203,7 +4215,7 @@
Oś czasu dywidend
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -4379,7 +4391,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -4395,7 +4407,7 @@
Wsparcie przez E-mail i Czat
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -4411,7 +4423,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -4419,7 +4431,7 @@
Płatność jednorazowa, bez automatycznego odnawiania.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
@@ -4427,11 +4439,11 @@
Could not save asset profile
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -4439,7 +4451,7 @@
Jest bezpłatny.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -4455,12 +4467,12 @@
Kontynenty
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
Sustainable retirement income
- Sustainable retirement income
+ Zrównoważony dochód na emeryturze
apps/client/src/app/pages/portfolio/fire/fire-page.html
41
@@ -4471,7 +4483,7 @@
Ghostfolio umożliwia śledzenie wartości swojego majątku.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -4501,6 +4513,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Personal Finance Tools
@@ -4593,7 +4609,7 @@
per month
- per month
+ miesięcznie
apps/client/src/app/pages/portfolio/fire/fire-page.html
94
@@ -4613,7 +4629,7 @@
Website of Thomas Kaul
- Website of Thomas Kaul
+ Strona internetowa Thomas'a Kaul'a
apps/client/src/app/pages/about/overview/about-overview-page.html
44
@@ -4784,11 +4800,11 @@
Szwajcaria
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -4796,7 +4812,7 @@
Globalny
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -4832,7 +4848,7 @@
Członkostwo
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -4845,10 +4861,10 @@
Request it
- Request it
+ Porpoś o
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -4900,11 +4916,11 @@
Eksportuj Działalności
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -4912,11 +4928,11 @@
Eksportuj Wersje Robocze jako ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -4924,7 +4940,7 @@
Przygotuj Wstępną Wersję
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -4932,7 +4948,7 @@
Sklonuj
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -4940,7 +4956,7 @@
Eksportuj Wersję Roboczą jako ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -4948,7 +4964,7 @@
Czy na pewno chcesz usunąć tę działalność?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -4956,7 +4972,7 @@
Profile aktywów
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -4965,7 +4981,7 @@
,
- ,
+ ,
apps/client/src/app/pages/portfolio/fire/fire-page.html
145
@@ -4989,10 +5005,10 @@
contact us
- contact us
+ skontaktuj się z nami
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -5003,6 +5019,14 @@
119
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Dane rynkowe dostarczone przez
@@ -5045,18 +5069,18 @@
Interest
- Udział
+ Odsetki
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
69
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -5068,7 +5092,7 @@
Oszczędności
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -5076,11 +5100,11 @@
Podział
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5096,7 +5120,7 @@
Pokaż wszystko
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -5108,7 +5132,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -5140,7 +5164,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -5148,7 +5172,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -5172,7 +5196,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -5180,7 +5204,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -5224,7 +5248,7 @@
Fundusz Rezerwowy
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -5264,7 +5288,7 @@
Japonia
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -5300,7 +5324,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -5311,6 +5335,14 @@
27
+
+ No Activities
+ Brak transakcji
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Świadczenia Emerytalne
@@ -5319,6 +5351,14 @@
28
+
+ Everything in Basic , plus
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Satelita
@@ -5332,7 +5372,7 @@
Symbol
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -5348,7 +5388,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -5377,14 +5417,14 @@
View Details
- View Details
+ Zobacz szczegóły
apps/client/src/app/components/admin-users/admin-users.html
225
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -5397,7 +5437,7 @@
Sign in with OpenID Connect
- Sign in with OpenID Connect
+ Zaloguj się za pomocą OpenID Connect
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
55
@@ -5405,7 +5445,7 @@
Buy
- Zakup
+ Kupno
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
31
@@ -5420,11 +5460,11 @@
Opłata
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5449,7 +5489,7 @@
Sell
- Sprzedaj
+ Sprzedaż
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
44
@@ -5464,7 +5504,7 @@
Gotówka
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -5509,10 +5549,10 @@
Authentication
- Authentication
+ Uwierzytelnianie
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -5544,7 +5584,7 @@
Fundusz Wzajemny
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -5552,7 +5592,7 @@
Metal Szlachetny
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -5560,7 +5600,7 @@
Prywatny Kapitał
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -5568,7 +5608,7 @@
Akcje
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -5576,7 +5616,7 @@
Afryka
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -5584,7 +5624,7 @@
Azja
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -5592,7 +5632,7 @@
Europa
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -5600,12 +5640,12 @@
Ameryka Północna
libs/ui/src/lib/i18n.ts
- 72
+ 73
If you retire today, you would be able to withdraw
- If you retire today, you would be able to withdraw
+ Gdybyś przeszedł na emeryturę dziś, mógłbyś wypłacać
apps/client/src/app/pages/portfolio/fire/fire-page.html
68
@@ -5616,7 +5656,7 @@
Oceania
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -5624,7 +5664,7 @@
Ameryka Południowa
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -5632,7 +5672,7 @@
Skrajny Strach
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -5640,7 +5680,7 @@
Skrajna Zachłanność
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5648,7 +5688,7 @@
Neutralny
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -5656,7 +5696,7 @@
Ważność do
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -5676,11 +5716,11 @@
Brak danych
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -5688,11 +5728,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5720,7 +5760,7 @@
Salda Gotówkowe
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -5740,7 +5780,7 @@
Czy na pewno chcesz usunąć saldo tego konta?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -5756,7 +5796,7 @@
Obecna cena rynkowa wynosi
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5764,7 +5804,7 @@
Test
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5804,15 +5844,15 @@
Ups! Nie udało się przyznać dostępu.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
Argentina
- Argentina
+ Argentyna
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5860,23 +5900,23 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
here
- here
+ tutaj
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
Close Holding
- Close Holding
+ Zamknij pozycję
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5884,7 +5924,7 @@
Łączny wynik aktywów
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5892,7 +5932,7 @@
Wyniki aktywów
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -5900,7 +5940,7 @@
Łączny wynik walut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -5908,7 +5948,7 @@
Wynik walut
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5916,7 +5956,7 @@
Dotychczasowy tydzień
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5924,11 +5964,11 @@
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5936,7 +5976,7 @@
Od początku miesiąca
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5944,11 +5984,11 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5956,7 +5996,7 @@
Od początku roku
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5992,7 +6032,7 @@
rok
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6004,7 +6044,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6012,11 +6052,11 @@
lata
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6032,11 +6072,11 @@
Gromadzenie Danych
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6044,7 +6084,7 @@
Informacje Ogólne
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6052,7 +6092,7 @@
Rozwiązanie w Chmurze
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6064,7 +6104,7 @@
Własny Hosting
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6105,7 +6145,7 @@
Antywne
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6113,7 +6153,7 @@
Zamknięte
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6121,7 +6161,7 @@
Indonezja
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -6145,7 +6185,7 @@
Wykonaj Zadanie
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6153,7 +6193,7 @@
Priorytet
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6193,7 +6233,7 @@
Usuń aktywności
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6209,7 +6249,7 @@
Czy na pewno chcesz zamknąć swoje konto Ghostfolio?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6217,7 +6257,7 @@
Strefa Zagrożenia
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6225,7 +6265,7 @@
Zamknij Konto
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6233,7 +6273,7 @@
Wg. Holdingu ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -6241,7 +6281,7 @@
Przybliżenie oparte na najwyższych aktywach każdego funduszu ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6254,10 +6294,10 @@
Include in
- Include in
+ Uwzględnij w
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -6265,7 +6305,7 @@
Ups! Wystąpił błąd podczas konfigurowania uwierzytelniania biometrycznego.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6281,7 +6321,7 @@
Punkty Odniesienia
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -6329,7 +6369,7 @@
Chcesz udoskonalić swoją osobistą strategię inwestycyjną ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6337,7 +6377,7 @@
Alternatywa
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6345,7 +6385,7 @@
Aplikacja
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6353,7 +6393,7 @@
Budżetowanie
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6369,47 +6409,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6417,7 +6461,7 @@
Biuro Rodzinne
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6425,7 +6469,7 @@
Inwestor
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6437,7 +6481,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6449,7 +6493,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6457,7 +6501,7 @@
Prywatność
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6465,7 +6509,7 @@
Oprogramowanie
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6473,7 +6517,7 @@
Narzędzie
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6481,7 +6525,7 @@
Doświadczenie Użytkownika
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6489,7 +6533,7 @@
Majątek
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6497,7 +6541,7 @@
Zarządzanie Majątkiem
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6505,7 +6549,7 @@
Australia
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6513,7 +6557,7 @@
Austria
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6521,7 +6565,7 @@
Belgia
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6529,15 +6573,15 @@
Bułgaria
libs/ui/src/lib/i18n.ts
- 83
+ 84
View Holding
- View Holding
+ Podgląd inwestycji
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6545,7 +6589,7 @@
Kanada
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6553,7 +6597,7 @@
Czechy
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6561,7 +6605,7 @@
Finlandia
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6569,7 +6613,7 @@
Francja
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6577,7 +6621,7 @@
Niemcy
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6585,7 +6629,7 @@
Indie
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6593,7 +6637,7 @@
Włochy
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6601,7 +6645,7 @@
Holandia
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6609,7 +6653,7 @@
Nowa Zelandia
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6617,7 +6661,7 @@
Polska
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6625,7 +6669,7 @@
Rumunia
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6633,7 +6677,7 @@
Południowa Afryka
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6641,7 +6685,7 @@
Tajlandia
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6649,7 +6693,7 @@
Stany Zjednoczone
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6657,7 +6701,7 @@
Błąd
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6678,15 +6722,15 @@
Oops! Could not update access.
- Oops! Could not update access.
+ Ups! Nie udało się zaktualizować dostępu.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
, based on your total assets of
- , based on your total assets of
+ , na podstawie całkowitej wartości aktywów wynoszącej
apps/client/src/app/pages/portfolio/fire/fire-page.html
96
@@ -6709,7 +6753,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6741,7 +6785,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6749,7 +6793,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6761,7 +6805,7 @@
Zamknij
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6787,13 +6831,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6802,10 +6850,10 @@
Role
- Role
+ Rola
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6829,7 +6877,7 @@
Przegląd portfela
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6842,10 +6890,10 @@
If you plan to open an account at
- If you plan to open an account at
+ Jeśli planujesz otworzyć konto w
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6874,7 +6922,7 @@
send an e-mail to
- send an e-mail to
+ wyślij e-mail do
apps/client/src/app/pages/about/overview/about-overview-page.html
87
@@ -6896,6 +6944,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
Od samego początku
@@ -6946,7 +7002,7 @@
, assuming a
- , assuming a
+ , przyjmując
apps/client/src/app/pages/portfolio/fire/fire-page.html
174
@@ -6954,15 +7010,15 @@
to use our referral link and get a Ghostfolio Premium membership for one year
- to use our referral link and get a Ghostfolio Premium membership for one year
+ aby skorzystać z naszego linku polecającego i otrzymać roczną subskrypcję Ghostfolio Premium
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
can be self-hosted
- może być hostowany samodzielnie
+ może być hostowana samodzielnie
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
178
@@ -6986,7 +7042,7 @@
can be used anonymously
- może być używany anonimowo
+ może być używana anonimowo
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
217
@@ -6998,7 +7054,7 @@
cannot be used anonymously
- nie może być używany anonimowo
+ nie może być używana anonimowo
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
224
@@ -7034,7 +7090,7 @@
Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.
- Ghostfolio is a lightweight wealth management application for individuals to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.
+ Ghostfolio to aplikacja do zarządzania majątkiem, przeznaczona dla osób prywatnych do śledzenia akcji, ETF‑ów i kryptowalut oraz podejmowania solidnych, opartych na danych decyzji inwestycyjnych.
apps/client/src/app/pages/about/overview/about-overview-page.html
10
@@ -7061,7 +7117,7 @@
Skonfiguruj klucz API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7077,7 +7133,7 @@
Ukraina
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7097,7 +7153,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7113,7 +7169,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7167,7 +7223,7 @@
z
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7175,7 +7231,7 @@
codzienne żądania
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7183,7 +7239,7 @@
Usuń klucz API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7191,7 +7247,7 @@
Czy na pewno chcesz usunąć klucz API??
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7199,7 +7255,7 @@
Wprowadź swój klucz API konta Ghostfolio:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7211,7 +7267,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7283,7 +7339,7 @@
Zapisz
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7319,11 +7375,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7335,7 +7391,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7348,7 +7404,7 @@
Check the system status at
- Check the system status at
+ Sprawdź status systemu n
apps/client/src/app/pages/about/overview/about-overview-page.html
57
@@ -7359,7 +7415,15 @@
Wprowadź swój klucz API Ghostfolio.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Zmiana z efektem walutowym
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7375,7 +7439,7 @@
Link został skopiowany do schowka
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7383,7 +7447,7 @@
Leniwy
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7391,7 +7455,7 @@
Natychmiastowy
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7399,7 +7463,7 @@
Domyślna cena rynkowa
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7407,7 +7471,7 @@
Tryb
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7415,7 +7479,7 @@
Selektor
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7423,7 +7487,7 @@
Nagłówki żądań HTTP
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7431,7 +7495,7 @@
koniec dnia
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7439,7 +7503,7 @@
w czasie rzeczywistym
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7463,11 +7527,11 @@
Zmiana
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7479,24 +7543,24 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
The project has been initiated by
- The project has been initiated by
+ Projekt został zainicjowany przez
apps/client/src/app/pages/about/overview/about-overview-page.html
40
@@ -7518,12 +7582,20 @@
67
+
+ Total amount
+ Wartość portfela
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Armenia
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7531,7 +7603,7 @@
Brytyjskie Wyspy Dziewicze
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7539,7 +7611,7 @@
Singapur
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7587,11 +7659,11 @@
Token bezpieczeństwa
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7599,15 +7671,15 @@
Czy napewno chcesz wygenerować nowy token bezpieczeństwa dla tego użytkownika?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
Find account, holding or page...
- Find account, holding or page...
+ Znajdź konto, pozycję lub stronę...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7623,7 +7695,7 @@
Wielka Brytania
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7672,7 +7744,7 @@
( ) jest już w użyciu.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7680,7 +7752,7 @@
Wystąpił błąd podczas aktualizacji do ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7696,7 +7768,7 @@
z dostępem API dla
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7744,7 +7816,7 @@
ktoś
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7817,7 +7889,7 @@
Konto użytkownika demonstracyjnego zostało zsynchronizowane.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7825,7 +7897,7 @@
Synchronizuj konto użytkownika demonstracyjnego
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7852,25 +7924,25 @@
150
-
+
Fee Ratio
- Stosunek opłat
+ Wskaźnik opłat
apps/client/src/app/pages/i18n/i18n-page.html
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Opłaty przekraczają ${thresholdMax}% początkowej inwestycji (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ Opłaty przekraczają ${thresholdMax}% twojej całkowitej wartości inwestycji (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Opłaty nie przekraczają ${thresholdMax}% początkowej inwestycji (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ Opłaty nie przekraczają ${thresholdMax}% twojej całkowitej wartości inwestycji (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7995,7 +8067,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8007,7 +8079,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8028,10 +8100,10 @@
Current month
- Current month
+ Bieżący miesiąc
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8039,11 +8111,7 @@
nowy
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8200,7 +8268,7 @@
Czy na pewno chcesz wygenerować nowy token bezpieczeństwa?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8224,7 +8292,7 @@
Akcje
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8236,7 +8304,7 @@
Kryptowaluty
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8256,7 +8324,7 @@
Zarządzaj profilem aktywów
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8289,7 +8357,7 @@
Account Cluster Risks
- Account Cluster Risks
+ Ryzyka skupienia w obrębie rachunków
apps/client/src/app/pages/i18n/i18n-page.html
14
@@ -8297,7 +8365,7 @@
Asset Class Cluster Risks
- Asset Class Cluster Risks
+ Ryzyka skupienia w obrębie klas aktywów
apps/client/src/app/pages/i18n/i18n-page.html
39
@@ -8305,7 +8373,7 @@
Currency Cluster Risks
- Currency Cluster Risks
+ Ryzyka koncentracji walutowej
apps/client/src/app/pages/i18n/i18n-page.html
83
@@ -8313,7 +8381,7 @@
Economic Market Cluster Risks
- Economic Market Cluster Risks
+ Ryzyka skupienia w obrębie segmentów rynku gospodarczego
apps/client/src/app/pages/i18n/i18n-page.html
106
@@ -8321,7 +8389,7 @@
Emergency Fund
- Emergency Fund
+ Fundusz Awaryjny
apps/client/src/app/pages/i18n/i18n-page.html
144
@@ -8329,7 +8397,7 @@
Fees
- Fees
+ Opłaty
apps/client/src/app/pages/i18n/i18n-page.html
161
@@ -8337,7 +8405,7 @@
Liquidity
- Liquidity
+ Płynność
apps/client/src/app/pages/i18n/i18n-page.html
70
@@ -8345,7 +8413,7 @@
Buying Power
- Buying Power
+ Siła nabywcza
apps/client/src/app/pages/i18n/i18n-page.html
71
@@ -8353,7 +8421,7 @@
Your buying power is below ${thresholdMin} ${baseCurrency}
- Your buying power is below ${thresholdMin} ${baseCurrency}
+ Twoja siła nabywcza jest niższa niż ${thresholdMin} ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
73
@@ -8361,7 +8429,7 @@
Your buying power is 0 ${baseCurrency}
- Your buying power is 0 ${baseCurrency}
+ Twoja siła nabywcza to 0 ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
77
@@ -8369,7 +8437,7 @@
Your buying power exceeds ${thresholdMin} ${baseCurrency}
- Your buying power exceeds ${thresholdMin} ${baseCurrency}
+ Twoja siła nabywcza przekracza ${thresholdMin} ${baseCurrency}
apps/client/src/app/pages/i18n/i18n-page.html
80
@@ -8377,7 +8445,7 @@
Regional Market Cluster Risks
- Regional Market Cluster Risks
+ Ryzyka skupienia w obrębie regionów rynkowych
apps/client/src/app/pages/i18n/i18n-page.html
163
@@ -8385,7 +8453,7 @@
No results found...
- No results found...
+ Nie znaleziono wyników...
libs/ui/src/lib/assistant/assistant.html
51
@@ -8393,7 +8461,7 @@
Developed Markets
- Developed Markets
+ Rynki rozwinięte
apps/client/src/app/pages/i18n/i18n-page.html
109
@@ -8401,7 +8469,7 @@
The developed markets contribution of your current investment (${developedMarketsValueRatio}%) exceeds ${thresholdMax}%
- The developed markets contribution of your current investment (${developedMarketsValueRatio}%) exceeds ${thresholdMax}%
+ Udział rynków rozwiniętych w Twojej obecnej inwestycji (${developedMarketsValueRatio}%) przekracza ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
112
@@ -8409,7 +8477,7 @@
The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is below ${thresholdMin}%
- The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is below ${thresholdMin}%
+ Udział rynków rozwiniętych w Twojej obecnej inwestycji (${developedMarketsValueRatio}%) jest poniżej ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
117
@@ -8417,7 +8485,7 @@
The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ Udział rynków rozwiniętych w Twojej obecnej inwestycji (${developedMarketsValueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
122
@@ -8425,7 +8493,7 @@
Emerging Markets
- Emerging Markets
+ Rynki wschodzące
apps/client/src/app/pages/i18n/i18n-page.html
127
@@ -8433,7 +8501,7 @@
The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) exceeds ${thresholdMax}%
- The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) exceeds ${thresholdMax}%
+ Udział rynków wschodzących w obecnej inwestycji (${emergingMarketsValueRatio}%) przekracza ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
130
@@ -8441,7 +8509,7 @@
The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is below ${thresholdMin}%
- The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is below ${thresholdMin}%
+ Udział rynków wschodzących w obecnej inwestycji (${emergingMarketsValueRatio}%) jest poniżej ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
135
@@ -8449,7 +8517,7 @@
The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ Udział rynków wschodzących w obecnej inwestycji (${emergingMarketsValueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
140
@@ -8457,7 +8525,7 @@
No accounts have been set up
- No accounts have been set up
+ Nie utworzono żadnych kont
apps/client/src/app/pages/i18n/i18n-page.html
21
@@ -8465,7 +8533,7 @@
Your net worth is managed by 0 accounts
- Your net worth is managed by 0 accounts
+ Twój majątek jest zarządzany przez 0 kont
apps/client/src/app/pages/i18n/i18n-page.html
33
@@ -8473,7 +8541,7 @@
Asia-Pacific
- Asia-Pacific
+ Asia-Pacific
apps/client/src/app/pages/i18n/i18n-page.html
165
@@ -8481,7 +8549,7 @@
The Asia-Pacific market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- The Asia-Pacific market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ Udział rynku Azji i Pacyfiku w Twojej obecnej inwestycji (${valueRatio}%) przekracza ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
167
@@ -8489,7 +8557,7 @@
The Asia-Pacific market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- The Asia-Pacific market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ Udział rynku Azji i Pacyfiku w Twojej obecnej inwestycji (${valueRatio}%) jest poniżej ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
171
@@ -8497,7 +8565,7 @@
The Asia-Pacific market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The Asia-Pacific market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ Udział rynku Azji i Pacyfiku w Twojej obecnej inwestycji (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
175
@@ -8505,7 +8573,7 @@
Emerging Markets
- Emerging Markets
+ Rynki wschodzące
apps/client/src/app/pages/i18n/i18n-page.html
180
@@ -8513,7 +8581,7 @@
The Emerging Markets contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- The Emerging Markets contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ Udział rynków wschodzących w Twojej obecnej inwestycji (${valueRatio}%) przekracza ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
183
@@ -8521,7 +8589,7 @@
The Emerging Markets contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- The Emerging Markets contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ Udział rynków wschodzących w Twojej obecnej inwestycji (${valueRatio}%) jest poniżej ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
187
@@ -8529,7 +8597,7 @@
The Emerging Markets contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The Emerging Markets contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ Udział rynków wschodzących w Twojej obecnej inwestycji (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
191
@@ -8537,7 +8605,7 @@
Europe
- Europe
+ Europa
apps/client/src/app/pages/i18n/i18n-page.html
195
@@ -8545,7 +8613,7 @@
The Europe market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- The Europe market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ Udział rynku europejskiego w obecnej inwestycji (${valueRatio}%) przekracza ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
197
@@ -8553,7 +8621,7 @@
The Europe market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- The Europe market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ Udział rynku europejskiego w obecnej inwestycji (${valueRatio}%) jest poniżej ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
201
@@ -8561,7 +8629,7 @@
The Europe market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The Europe market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ Udział rynku europejskiego w obecnej inwestycji (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
205
@@ -8569,7 +8637,7 @@
Japan
- Japan
+ Japonia
apps/client/src/app/pages/i18n/i18n-page.html
209
@@ -8577,7 +8645,7 @@
The Japan market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- The Japan market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ Udział rynku japońskiego w obecnej inwestycj (${valueRatio}%) przekracza ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
211
@@ -8585,7 +8653,7 @@
The Japan market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- The Japan market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ Udział rynku japońskiego w obecnej inwestycj (${valueRatio}%) jest poniżej ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
215
@@ -8593,7 +8661,7 @@
The Japan market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The Japan market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ Udział rynku japońskiego w obecnej inwestycj (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
219
@@ -8601,7 +8669,7 @@
North America
- North America
+ Północna Ameryka
apps/client/src/app/pages/i18n/i18n-page.html
223
@@ -8609,7 +8677,7 @@
The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
- The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}%
+ Udział rynku Ameryki Północnej w obecnej inwestycji (${valueRatio}%) przekracza ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
225
@@ -8617,7 +8685,7 @@
The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
- The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}%
+ Udział rynku Ameryki Północnej w obecnej inwestycji (${valueRatio}%) jest poniżej ${thresholdMin}%
apps/client/src/app/pages/i18n/i18n-page.html
229
@@ -8625,7 +8693,7 @@
The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
- The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}%
+ Udział rynku Ameryki Północnej w obecnej inwestycji (${valueRatio}%) mieści się w zakresie ${thresholdMin}% i ${thresholdMax}%
apps/client/src/app/pages/i18n/i18n-page.html
233
@@ -8633,7 +8701,7 @@
Find Ghostfolio on GitHub
- Find Ghostfolio on GitHub
+ Znajdź Ghostfolio na GitHub
apps/client/src/app/pages/about/overview/about-overview-page.html
99
@@ -8645,7 +8713,7 @@
Join the Ghostfolio Slack community
- Join the Ghostfolio Slack community
+ Dołącz do społeczności Ghostfolio na Slacku
apps/client/src/app/pages/about/overview/about-overview-page.html
109
@@ -8653,7 +8721,7 @@
Follow Ghostfolio on X (formerly Twitter)
- Follow Ghostfolio on X (formerly Twitter)
+ Śledź Ghostfolio na X (poprzednio Twitter)
apps/client/src/app/pages/about/overview/about-overview-page.html
118
@@ -8661,7 +8729,7 @@
Send an e-mail
- Send an e-mail
+ Wyślij e-mail
apps/client/src/app/pages/about/overview/about-overview-page.html
89
@@ -8673,15 +8741,15 @@
Registration Date
- Registration Date
+ Data rejestracji
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
Follow Ghostfolio on LinkedIn
- Follow Ghostfolio on LinkedIn
+ Śledź Ghostfolio na LinkedIn
apps/client/src/app/pages/about/overview/about-overview-page.html
147
@@ -8689,7 +8757,7 @@
Ghostfolio is an independent & bootstrapped business
- Ghostfolio is an independent & bootstrapped business
+ Ghostfolio to niezależna & samofinansująca się firma
apps/client/src/app/pages/about/overview/about-overview-page.html
157
@@ -8697,7 +8765,7 @@
Support Ghostfolio
- Support Ghostfolio
+ Wesprzyj Ghostfolio
apps/client/src/app/pages/about/overview/about-overview-page.html
166
diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf
index 188bda9c8..0eb436849 100644
--- a/apps/client/src/locales/messages.pt.xlf
+++ b/apps/client/src/locales/messages.pt.xlf
@@ -6,7 +6,7 @@
O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -34,7 +34,7 @@
please
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -42,7 +42,7 @@
Tipo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -54,7 +54,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -70,7 +74,7 @@
Revogar
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -81,20 +85,12 @@
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
Pretende realmente revogar este acesso concedido?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -110,7 +106,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -122,7 +118,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -134,7 +130,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -150,15 +146,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -166,7 +162,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -182,7 +178,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -194,7 +190,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -206,15 +202,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -230,7 +226,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -242,15 +238,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -258,23 +254,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -298,19 +294,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -326,15 +322,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -342,11 +342,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -358,7 +358,7 @@
Pretende realmente eliminar esta conta?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -366,7 +366,7 @@
Fonte de dados
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -378,7 +378,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -390,7 +390,7 @@
Tentativas
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -398,7 +398,7 @@
Criado
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -406,7 +406,7 @@
Terminado
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -414,11 +414,11 @@
Estado
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -434,7 +434,7 @@
Eliminar Tarefas
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -442,7 +442,7 @@
Perfil de Ativos
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -454,11 +454,11 @@
Histórico de Dados de Mercado
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -466,7 +466,7 @@
Visualizar dados
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -474,7 +474,7 @@
Ver Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -482,7 +482,7 @@
Apagar Tarefa
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -498,7 +498,7 @@
Data
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -506,7 +506,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -534,7 +534,7 @@
Filtrar por...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -554,7 +554,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -562,7 +562,7 @@
Número de Atividades
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -574,7 +574,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -610,7 +610,7 @@
Deseja realmente eliminar este cupão?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -618,7 +618,7 @@
Deseja realmente limpar a cache?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -626,7 +626,7 @@
Por favor, defina a sua mensagem do sistema:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -634,7 +634,7 @@
Número de Utilizadores
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -642,7 +642,7 @@
por Utilizador
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -658,7 +658,7 @@
Mensagem de Sistema
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -666,7 +666,7 @@
Definir Mensagem
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -674,7 +674,7 @@
Modo Somente Leitura
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -682,7 +682,7 @@
Cupões
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -690,7 +690,7 @@
Adicionar
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -702,7 +702,7 @@
Manutenção
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -710,7 +710,7 @@
Limpar Cache
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -718,7 +718,7 @@
Deseja realmente excluir este utilizador?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -754,7 +754,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -770,11 +770,11 @@
Could not validate form
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -802,7 +802,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -814,7 +814,7 @@
Referência
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -850,7 +850,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -870,15 +870,15 @@
Oops! Token de Segurança Incorreto.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -886,7 +886,7 @@
Gerir Atividades
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -894,15 +894,15 @@
Medo
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -910,15 +910,15 @@
Ganância
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -946,7 +946,7 @@
Depósito
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -954,7 +954,7 @@
Valor Total
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -982,7 +982,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -1026,7 +1026,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -1066,7 +1066,7 @@
Desempenho Bruto Absoluto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -1074,11 +1074,11 @@
Desempenho Líquido Absoluto
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -1086,11 +1086,11 @@
Desempenho Líquido
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -1098,7 +1098,7 @@
Ativos Totais
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -1106,7 +1106,7 @@
Poder de Compra
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -1114,7 +1114,7 @@
Excluído da Análise
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -1122,7 +1122,7 @@
Valor Líquido
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -1130,7 +1130,7 @@
Desempenho Anual
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -1166,15 +1166,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1206,7 +1206,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -1218,7 +1218,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1226,7 +1226,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -1238,7 +1238,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1250,7 +1250,7 @@
Marcadores
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1266,7 +1266,7 @@
Dados do Relatório com Problema
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1274,11 +1274,11 @@
Alocação
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -1294,7 +1294,7 @@
Mostrar tudo
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -1306,7 +1306,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -1314,11 +1314,11 @@
AATD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -1326,11 +1326,11 @@
1A
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -1338,11 +1338,19 @@
5A
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -1350,11 +1358,11 @@
Máx
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -1378,7 +1386,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -1390,7 +1398,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -1406,7 +1414,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -1470,7 +1478,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -1510,7 +1518,7 @@
Deseja realmente remover este método de início de sessão?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -1530,7 +1538,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -1554,7 +1562,7 @@
Vista do Apresentador
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -1586,11 +1594,11 @@
Localidade
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -1598,7 +1606,7 @@
Formato de números e datas
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -1606,7 +1614,7 @@
Modo Zen
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -1618,7 +1626,7 @@
Aparência
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -1626,7 +1634,7 @@
Claro
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -1634,7 +1642,7 @@
Escuro
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -1642,7 +1650,7 @@
Iniciar sessão com impressão digital
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -1650,7 +1658,7 @@
Funcionalidades Experimentais
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -1662,11 +1670,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -1714,11 +1722,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -1886,7 +1894,7 @@
Como já tem sessão iniciada, não pode aceder à conta de demonstração.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -1932,6 +1940,10 @@
Overview
Visão geral
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -1950,11 +1962,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -1970,7 +1982,7 @@
Mercados
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -1994,7 +2006,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -2022,7 +2034,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -2042,11 +2054,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -2058,7 +2070,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -2074,7 +2086,7 @@
Current week
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -2118,7 +2130,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -2126,11 +2138,11 @@
Preço por Unidade
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -2138,7 +2150,7 @@
Nota
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -2146,7 +2158,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -2154,7 +2166,7 @@
A importar dados...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -2162,7 +2174,7 @@
A importação foi concluída
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -2222,7 +2234,7 @@
Por Conta
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -2230,7 +2242,7 @@
Por Moeda
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -2238,7 +2250,7 @@
Por Classe de Ativo
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -2246,7 +2258,7 @@
Por Posse
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -2254,7 +2266,7 @@
Por Setor
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -2262,7 +2274,7 @@
Por Continente
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -2270,7 +2282,7 @@
Por País
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -2278,11 +2290,11 @@
Regiões
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -2302,11 +2314,11 @@
Mercados Desenvoldidos
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
@@ -2314,7 +2326,7 @@
Latest activities
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -2322,11 +2334,11 @@
Mercados Emergentes
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -2334,11 +2346,11 @@
Outros Mercados
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -2366,7 +2378,7 @@
Topo
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -2374,7 +2386,7 @@
Fundo
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -2382,7 +2394,7 @@
Evolução do Portefólio
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -2390,7 +2402,7 @@
Cronograma de Investimento
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -2482,7 +2494,7 @@
Continentes
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -2498,7 +2510,7 @@
O Ghostfolio permite-lhe estar a par e gerir a sua riqueza.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -2510,7 +2522,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -2522,11 +2534,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -2580,6 +2592,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Resources
@@ -2634,7 +2650,7 @@
Rascunho
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -2646,11 +2662,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -2658,11 +2674,11 @@
Exportar Atividades
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -2670,11 +2686,11 @@
Exportar Rascunhos como ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -2682,7 +2698,7 @@
Clonar
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -2690,7 +2706,7 @@
Exportar Rascunho como ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -2698,7 +2714,7 @@
Deseja realmente eliminar esta atividade?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -2714,7 +2730,7 @@
contact us
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -2750,11 +2766,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -2766,7 +2782,7 @@
Poupanças
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -2778,7 +2794,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -2802,7 +2818,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -2810,7 +2826,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -2826,7 +2842,7 @@
Fundo de Emergência
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -2846,7 +2862,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -2854,7 +2870,7 @@
Símbolo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -2870,7 +2886,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -2894,7 +2910,7 @@
Dinheiro
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -2942,7 +2958,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -2974,7 +2990,7 @@
Fundo de Investimento
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -2982,7 +2998,7 @@
Metal Precioso
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -2990,7 +3006,7 @@
Private Equity
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -2998,7 +3014,7 @@
Ação
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -3006,7 +3022,7 @@
África
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -3014,7 +3030,7 @@
Ásia
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -3022,7 +3038,7 @@
Europa
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -3030,7 +3046,7 @@
América do Norte
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -3046,7 +3062,7 @@
Oceânia
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -3054,7 +3070,7 @@
América do Sul
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -3070,11 +3086,11 @@
Sem dados disponíveis
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -3082,11 +3098,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -3114,7 +3130,7 @@
Mapeamento de Símbolo
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -3122,7 +3138,7 @@
Registo do Utilizador
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -3130,7 +3146,7 @@
Dados de Mercado
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -3154,7 +3170,7 @@
A validar dados...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3170,7 +3186,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -3178,7 +3194,7 @@
Looking for a student discount?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -3194,7 +3210,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -3202,7 +3218,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -3218,7 +3234,7 @@
Cronograma de Dividendos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -3234,7 +3250,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -3242,7 +3258,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -3282,15 +3298,15 @@
Importar Dividendos
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3298,7 +3314,7 @@
Válido até
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -3337,6 +3353,14 @@
22
+
+ No Activities
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Provisão de Reforma
@@ -3345,6 +3369,14 @@
28
+
+ Everything in Basic , plus
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Satélite
@@ -3358,7 +3390,7 @@
Proteção para informações sensíveis, como desempenhos absolutos e valores quantitativos
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -3366,7 +3398,7 @@
Experiência sem distrações para tempos turbulentos
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -3374,7 +3406,7 @@
Acesso antecipado a funcionalidades futuras
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -3398,7 +3430,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -3414,7 +3446,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -3430,7 +3462,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -3446,7 +3478,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -3494,7 +3526,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -3578,7 +3610,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -3594,7 +3626,7 @@
Pagamento único, sem renovação automática.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
@@ -3602,11 +3634,11 @@
Could not save asset profile
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -3614,7 +3646,7 @@
É gratuito.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -3626,7 +3658,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -3646,7 +3678,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -3690,7 +3722,7 @@
Suporte por Email e Chat
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -3709,6 +3741,14 @@
14
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Dados de mercado fornecidos por
@@ -3734,7 +3774,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -3758,7 +3798,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -3790,7 +3830,7 @@
Deseja mesmo eliminar estas atividades?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3798,7 +3838,15 @@
Por Prestador de ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
@@ -3822,7 +3870,7 @@
Current year
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -3838,11 +3886,11 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -3858,7 +3906,7 @@
Asset profile has been saved
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -3866,7 +3914,7 @@
Deseja mesmo eliminar esta plataforma?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
@@ -3874,7 +3922,7 @@
Plataformas
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -3882,7 +3930,7 @@
Atualizar saldo em Dinheiro
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3890,7 +3938,7 @@
Por Plataforma
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -4002,7 +4050,7 @@
Série Atual
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4010,7 +4058,7 @@
Série mais Longa
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4054,7 +4102,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -4062,7 +4110,7 @@
Responsabilidades
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -4194,7 +4242,7 @@
Software de código aberto
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -4218,7 +4266,7 @@
Configuração do raspador
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -4457,20 +4505,12 @@
43
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
-
-
ETFs without Countries
ETFs sem países
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -4478,7 +4518,7 @@
ETFs sem setores
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -4486,7 +4526,7 @@
Ativos
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -4502,7 +4542,7 @@
Por mercado
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -4518,7 +4558,7 @@
Japão
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -4614,7 +4654,7 @@
Autenticação biométrica
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -4658,7 +4698,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -4706,7 +4746,7 @@
Exportar dados
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -4714,11 +4754,11 @@
Moedas
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
+ 95
@@ -4766,11 +4806,11 @@
Could not parse scraper configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -5324,11 +5364,11 @@
Suíça
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -5336,7 +5376,7 @@
Global
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -5364,7 +5404,7 @@
with your university e-mail address
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -5432,11 +5472,11 @@
Taxa
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5464,7 +5504,7 @@
Você realmente deseja excluir esta tag?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -5532,7 +5572,7 @@
Associação
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -5548,7 +5588,7 @@
Request it
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -5564,7 +5604,7 @@
Perfil de ativos
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -5664,7 +5704,7 @@
Medo Extremo
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -5672,7 +5712,7 @@
Ganância Extrema
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5680,7 +5720,7 @@
Neutro
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -5688,7 +5728,7 @@
Ops! Não foi possível analisar os dados históricos.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -5696,7 +5736,7 @@
Você realmente deseja excluir esta mensagem do sistema?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -5720,7 +5760,7 @@
Saldos de caixa
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -5740,7 +5780,7 @@
Você realmente deseja excluir o saldo desta conta?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -5756,7 +5796,7 @@
O preço de mercado atual é
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5764,7 +5804,7 @@
Teste
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5804,7 +5844,7 @@
Ops! Não foi possível conceder acesso.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -5812,7 +5852,7 @@
Argentina
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5860,7 +5900,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
@@ -5868,7 +5908,7 @@
here
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
@@ -5876,7 +5916,7 @@
Close Holding
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5884,7 +5924,7 @@
Desempenho absoluto de ativos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5892,7 +5932,7 @@
Desempenho de ativos
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -5900,7 +5940,7 @@
Desempenho absoluto da moeda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -5908,7 +5948,7 @@
Desempenho da moeda
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5916,7 +5956,7 @@
Semana até agora
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5924,11 +5964,11 @@
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5936,7 +5976,7 @@
Do mês até a data
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5944,11 +5984,11 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5956,7 +5996,7 @@
No acumulado do ano
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5992,7 +6032,7 @@
ano
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6004,7 +6044,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6012,11 +6052,11 @@
anos
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6032,11 +6072,11 @@
Coleta de dados
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6044,7 +6084,7 @@
geral
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6052,7 +6092,7 @@
Nuvem
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6064,7 +6104,7 @@
Auto-hospedagem
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6105,7 +6145,7 @@
Ativo
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6113,7 +6153,7 @@
Fechado
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6121,7 +6161,7 @@
Indonésia
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -6145,7 +6185,7 @@
Executar trabalho
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6153,7 +6193,7 @@
Prioridade
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6193,7 +6233,7 @@
Excluir atividades
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6209,7 +6249,7 @@
Você realmente deseja encerrar sua conta Ghostfolio?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6217,7 +6257,7 @@
Zona de perigo
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6225,7 +6265,7 @@
Fechar conta
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6233,7 +6273,7 @@
Por ETF Holding
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -6241,7 +6281,7 @@
Aproximação baseada nas principais participações de cada ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6257,7 +6297,7 @@
Include in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -6265,7 +6305,7 @@
Ops! Ocorreu um erro ao configurar a autenticação biométrica.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6281,7 +6321,7 @@
Referências
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -6329,7 +6369,7 @@
Você gostaria de refinar seu estratégia de investimento pessoal ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6337,7 +6377,7 @@
Alternativo
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6345,7 +6385,7 @@
Aplicativo
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6353,7 +6393,7 @@
Orçamento
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6369,47 +6409,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6417,7 +6461,7 @@
Escritório Familiar
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6425,7 +6469,7 @@
Investidor
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6437,7 +6481,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6449,7 +6493,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6457,7 +6501,7 @@
Privacidade
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6465,7 +6509,7 @@
Programas
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6473,7 +6517,7 @@
Ferramenta
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6481,7 +6525,7 @@
Experiência do usuário
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6489,7 +6533,7 @@
Fortuna
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6497,7 +6541,7 @@
Gestão de patrimônio
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6505,7 +6549,7 @@
Austrália
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6513,7 +6557,7 @@
Áustria
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6521,7 +6565,7 @@
Bélgica
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6529,7 +6573,7 @@
Bulgária
libs/ui/src/lib/i18n.ts
- 83
+ 84
@@ -6537,7 +6581,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6545,7 +6589,7 @@
Canadá
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6553,7 +6597,7 @@
República Tcheca
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6561,7 +6605,7 @@
Finlândia
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6569,7 +6613,7 @@
França
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6577,7 +6621,7 @@
Alemanha
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6585,7 +6629,7 @@
Índia
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6593,7 +6637,7 @@
Itália
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6601,7 +6645,7 @@
Holanda
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6609,7 +6653,7 @@
Nova Zelândia
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6617,7 +6661,7 @@
Polônia
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6625,7 +6669,7 @@
Romênia
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6633,7 +6677,7 @@
África do Sul
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6641,7 +6685,7 @@
Tailândia
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6649,7 +6693,7 @@
Estados Unidos
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6657,7 +6701,7 @@
Erro
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6681,7 +6725,7 @@
Oops! Could not update access.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
@@ -6709,7 +6753,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6741,7 +6785,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6749,7 +6793,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6761,7 +6805,7 @@
Fechar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6787,13 +6831,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6805,7 +6853,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6829,7 +6877,7 @@
Visão geral do portfólio
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6845,7 +6893,7 @@
If you plan to open an account at
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6896,6 +6944,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
Desde o início
@@ -6957,7 +7013,7 @@
to use our referral link and get a Ghostfolio Premium membership for one year
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7061,7 +7117,7 @@
Definir chave de API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7077,7 +7133,7 @@
Ucrânia
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7097,7 +7153,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7113,7 +7169,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7167,7 +7223,7 @@
de
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7175,7 +7231,7 @@
solicitações diárias
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7183,7 +7239,7 @@
Remover chave de API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7191,7 +7247,7 @@
Você realmente deseja excluir a chave de API?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7199,7 +7255,7 @@
Por favor, insira a sua chave da API do Ghostfolio:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7211,7 +7267,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7283,7 +7339,7 @@
Guardar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7319,11 +7375,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7335,7 +7391,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7359,7 +7415,15 @@
Please enter your Ghostfolio API key.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7375,7 +7439,7 @@
O link foi copiado para a área de transferência
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7383,7 +7447,7 @@
Lazy
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7391,7 +7455,7 @@
Instant
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7399,7 +7463,7 @@
Preço de mercado padrão
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7407,7 +7471,7 @@
Mode
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7415,7 +7479,7 @@
Selector
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7423,7 +7487,7 @@
HTTP Request Headers
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7431,7 +7495,7 @@
end of day
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7439,7 +7503,7 @@
real-time
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7463,11 +7527,11 @@
Mudar
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7479,19 +7543,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -7518,12 +7582,20 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Armenia
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7531,7 +7603,7 @@
British Virgin Islands
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7539,7 +7611,7 @@
Singapore
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7587,11 +7659,11 @@
Security token
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7599,7 +7671,7 @@
Do you really want to generate a new security token for this user?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
@@ -7607,7 +7679,7 @@
Find account, holding or page...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7623,7 +7695,7 @@
United Kingdom
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7672,7 +7744,7 @@
( ) is already in use.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7680,7 +7752,7 @@
An error occurred while updating to ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7696,7 +7768,7 @@
with API access for
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7744,7 +7816,7 @@
someone
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7817,7 +7889,7 @@
Demo user account has been synced.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7825,7 +7897,7 @@
Sync Demo User Account
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7852,7 +7924,7 @@
150
-
+
Fee Ratio
Fee Ratio
@@ -7860,17 +7932,17 @@
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7995,7 +8067,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8007,7 +8079,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8031,7 +8103,7 @@
Current month
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8039,11 +8111,7 @@
new
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8200,7 +8268,7 @@
Do you really want to generate a new security token?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8224,7 +8292,7 @@
Stocks
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8236,7 +8304,7 @@
Criptomoedas
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8256,7 +8324,7 @@
Gerenciar perfil de ativos
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8676,7 +8744,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf
index cd713e26a..362932e44 100644
--- a/apps/client/src/locales/messages.tr.xlf
+++ b/apps/client/src/locales/messages.tr.xlf
@@ -187,7 +187,7 @@
Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -215,7 +215,7 @@
please
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -223,7 +223,7 @@
Tip
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -235,7 +235,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -251,7 +255,7 @@
Geri Al
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -262,20 +266,12 @@
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
Bu erişim iznini geri almayı gerçekten istiyor musunuz?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -291,7 +287,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -307,7 +303,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -319,7 +315,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -331,7 +327,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -347,15 +343,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -363,7 +359,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -379,7 +375,7 @@
Toplam
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -391,7 +387,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -403,15 +399,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -423,15 +419,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -439,23 +435,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -479,19 +475,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -507,15 +503,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -523,11 +523,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -539,7 +539,7 @@
Bu hesabı silmeyi gerçekten istiyor musunuz?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -547,7 +547,7 @@
Veri Kaynağı
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -559,7 +559,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -571,7 +571,7 @@
Deneme
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -579,7 +579,7 @@
Oluşturuldu
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -587,7 +587,7 @@
Tamamlandı
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -595,11 +595,11 @@
Durum
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -615,7 +615,7 @@
İşleri Sil
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -623,7 +623,7 @@
Varlık Profili
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -635,11 +635,11 @@
Tarihsel Piyasa Verisi
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -647,7 +647,7 @@
Veri Gör
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -655,7 +655,7 @@
Hata İzini Görüntüle
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -663,7 +663,7 @@
İşleri Sil
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -679,7 +679,7 @@
Tarih
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -687,7 +687,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -715,19 +715,11 @@
Para Birimleri
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
-
-
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
+ 95
@@ -735,7 +727,7 @@
Ülkesi Olmayan ETF’ler
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -743,7 +735,7 @@
Sektörü Olmayan ETF’ler
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -751,7 +743,7 @@
Filtrele...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -771,7 +763,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -791,7 +783,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -859,7 +851,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -871,7 +863,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -879,7 +871,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -891,7 +883,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -903,7 +895,7 @@
Sembol Eşleştirme
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -919,7 +911,7 @@
Veri Toplayıcı Yapılandırması
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -927,7 +919,7 @@
Not
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -935,7 +927,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -963,7 +955,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -971,7 +963,7 @@
Bu kuponu gerçekten silmek istiyor musunuz?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -979,7 +971,7 @@
Önbelleği temizlemeyi gerçekten istiyor musunuz?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -987,7 +979,7 @@
Lütfen sistem mesajınızı belirleyin:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -995,7 +987,7 @@
Kullanıcı Sayısı
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -1003,7 +995,7 @@
İşlem Sayısı
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -1011,7 +1003,7 @@
Kullanıcı başına
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -1027,7 +1019,7 @@
Etiketler
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1043,7 +1035,7 @@
Kullanıcı Kaydı
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -1051,7 +1043,7 @@
Salt okunur mod
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -1059,7 +1051,7 @@
Sistem Mesajı
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -1067,7 +1059,7 @@
Mesaj Belirle
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -1075,7 +1067,7 @@
Kupon
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -1083,7 +1075,7 @@
Ekle
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -1095,7 +1087,7 @@
Genel Ayarlar
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -1103,7 +1095,7 @@
Önbelleği temizle
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -1119,11 +1111,11 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -1139,7 +1131,7 @@
Asset profile has been saved
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -1147,7 +1139,15 @@
Bu platformu silmeyi gerçekten istiyor musunuz?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
@@ -1171,7 +1171,7 @@
Current year
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -1187,7 +1187,7 @@
Platformlar
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -1195,7 +1195,7 @@
Bu kullanıcıyı silmeyi gerçekten istiyor musunuz?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -1231,7 +1231,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -1263,11 +1263,11 @@
Could not validate form
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -1303,7 +1303,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -1315,7 +1315,7 @@
Karşılaştırma Ölçütü
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -1351,7 +1351,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -1371,15 +1371,15 @@
Hay Allah! Güvenlik anahtarı yanlış.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -1387,7 +1387,7 @@
İşlemleri Yönet
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -1395,15 +1395,15 @@
Korku
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -1411,15 +1411,15 @@
Açgözlülük
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -1519,7 +1519,7 @@
Current week
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1539,7 +1539,7 @@
Toplam Tutar
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -1567,7 +1567,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -1611,7 +1611,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -1651,7 +1651,7 @@
Toplam Brüt Performans
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -1659,11 +1659,11 @@
Toplam Net Performans
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -1671,11 +1671,11 @@
Net Performans
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -1683,7 +1683,7 @@
Toplam Varlıklar
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -1691,7 +1691,7 @@
Varlıklar
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -1699,7 +1699,7 @@
Alım Limiti
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -1707,7 +1707,7 @@
Analize Dahil Edilmemiştir.
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -1715,7 +1715,7 @@
Yükümlülükler
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -1727,7 +1727,7 @@
Toplam Varlık
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -1735,7 +1735,7 @@
Yıllıklandırılmış Performans
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -1771,15 +1771,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1791,7 +1791,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -1799,7 +1799,7 @@
Rapor Veri Sorunu
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1831,7 +1831,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -1851,7 +1851,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -1867,7 +1867,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -1883,7 +1883,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -1895,7 +1895,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -1911,7 +1911,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -1967,7 +1967,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -1979,7 +1979,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -1987,11 +1987,11 @@
YTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -1999,11 +1999,11 @@
1Y
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -2011,11 +2011,19 @@
5Y
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -2023,11 +2031,11 @@
Maks.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -2051,7 +2059,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -2063,7 +2071,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2079,7 +2087,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -2207,11 +2215,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -2271,7 +2279,7 @@
Piyasa Verileri
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -2305,6 +2313,10 @@
Overview
Özet
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -2323,11 +2335,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -2451,11 +2463,11 @@
Could not parse scraper configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -2471,7 +2483,7 @@
Oturum açmış olduğunuz için demo hesabına erişemezsiniz.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -2583,7 +2595,7 @@
Zen Modu
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -2627,7 +2639,7 @@
Açık Kaynak Yazılım
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -2639,7 +2651,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -2651,11 +2663,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -2707,7 +2719,7 @@
Piyasalar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -2731,7 +2743,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -3095,7 +3107,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -3123,7 +3135,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -3143,11 +3155,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -3159,7 +3171,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -3167,7 +3179,7 @@
Tüm işlemlerinizi silmeyi gerçekten istiyor musunuz?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3211,7 +3223,7 @@
Nakit Bakiyesini Güncelle
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3219,11 +3231,11 @@
Birim Fiyat
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -3235,11 +3247,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -3247,15 +3259,15 @@
Temettüleri İçe Aktar
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3263,7 +3275,7 @@
Veri içe aktarılıyor...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -3271,7 +3283,7 @@
İçe aktarma tamamlandı
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -3287,7 +3299,7 @@
Veri doğrulanıyor...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3375,7 +3387,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -3407,7 +3419,7 @@
Platforma Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -3415,7 +3427,7 @@
Para Birimine Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -3423,7 +3435,7 @@
Varlık Sınıfına Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -3431,7 +3443,7 @@
Varlığa Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -3439,7 +3451,7 @@
Sektöre Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -3447,7 +3459,7 @@
Kıtaya Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -3455,7 +3467,7 @@
Piyasaya Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -3463,11 +3475,11 @@
Bölgeler
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -3487,11 +3499,11 @@
Gelişmiş Piyasalar
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
@@ -3499,7 +3511,7 @@
Latest activities
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -3507,11 +3519,11 @@
Gelişmekte Olan Piyasalar
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -3519,11 +3531,11 @@
Diğer Piyasalar
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -3531,7 +3543,7 @@
Hesaba Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -3539,7 +3551,7 @@
ETF Sağlayıcısına Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
@@ -3547,7 +3559,7 @@
Ülkeye Göre
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -3567,7 +3579,7 @@
Looking for a student discount?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -3583,7 +3595,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -3591,7 +3603,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -3615,7 +3627,7 @@
Para Yatırma
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -3639,7 +3651,7 @@
Üst
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -3647,7 +3659,7 @@
Alt
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -3655,7 +3667,7 @@
Portföyün Gelişimi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -3663,7 +3675,7 @@
Yatırım Zaman Çizelgesi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -3671,7 +3683,7 @@
Güncel Seri
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -3679,7 +3691,7 @@
En Uzun Seri
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -3687,7 +3699,7 @@
Temettü Zaman Çizelgesi
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -3863,7 +3875,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -3879,7 +3891,7 @@
E-posta ve Sohbet Desteği
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -3895,7 +3907,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -3903,7 +3915,7 @@
Tek seferlik ödeme, otomatik yenileme yok.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
@@ -3911,11 +3923,11 @@
Could not save asset profile
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -3923,7 +3935,7 @@
Ücretsiz.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -3939,7 +3951,7 @@
Kıtalar
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -3955,7 +3967,7 @@
Ghostfolio, varlıklarınızı takip etmenizi sağlar.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -4005,6 +4017,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Personal Finance Tools
@@ -4268,11 +4284,11 @@
İsviçre
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -4280,7 +4296,7 @@
Küresel
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -4348,7 +4364,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -4388,7 +4404,7 @@
Bu giriş yöntemini kaldırmayı gerçekten istiyor musunuz?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -4396,7 +4412,7 @@
Geçerli tarih
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -4420,7 +4436,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -4444,7 +4460,7 @@
Sunum Görünümü
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -4452,7 +4468,7 @@
Gerçek performans ve miktar değerleri gibi hassas bilgilerin saklanması için
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -4476,11 +4492,11 @@
Yerel Ayarlar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -4488,7 +4504,7 @@
Tarih ve Sayı Formatları
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -4496,7 +4512,7 @@
Görünüm
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -4504,7 +4520,7 @@
Açık
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -4512,7 +4528,7 @@
Koyu
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -4520,7 +4536,7 @@
Çalkantılı zamanlar için dikkat dağıtmayan bir deneyim
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -4536,7 +4552,7 @@
Biyometrik Kimlik Doğrulama
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -4544,7 +4560,7 @@
Parmak iziyle oturum aç
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -4552,7 +4568,7 @@
Deneysel Özellikler
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -4560,7 +4576,7 @@
Gelecek özelliklere göz atın
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -4572,11 +4588,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -4584,7 +4600,7 @@
Verileri Dışa Aktar
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -4624,11 +4640,11 @@
İşlemleri Dışa Aktar
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -4636,11 +4652,11 @@
Taslakları ICS Olarak Dışa Aktar
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -4648,7 +4664,7 @@
Taslak
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -4656,7 +4672,7 @@
Klonla
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -4664,7 +4680,7 @@
Taslakları ICS Olarak Dışa Aktar
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -4672,7 +4688,7 @@
TBu işlemi silmeyi gerçekten istiyor musunuz?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -4688,7 +4704,7 @@
contact us
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -4699,6 +4715,14 @@
119
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Piyasa verileri tarafından sağlanmıştır
@@ -4748,11 +4772,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -4764,7 +4788,7 @@
Tasarruflar
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -4772,11 +4796,11 @@
Dağılım
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -4792,7 +4816,7 @@
Tümünü göster
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -4804,7 +4828,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -4836,7 +4860,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -4844,7 +4868,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -4868,7 +4892,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -4876,7 +4900,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -4920,7 +4944,7 @@
Acil Durum Fonu
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -4960,7 +4984,7 @@
Japonya
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -4996,7 +5020,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -5007,6 +5031,14 @@
27
+
+ No Activities
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Yaşlılık Provizyonu
@@ -5015,6 +5047,14 @@
28
+
+ Everything in Basic , plus
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Uydu
@@ -5028,7 +5068,7 @@
Sembol
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -5044,7 +5084,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -5080,7 +5120,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -5144,7 +5184,7 @@
Nakit
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -5192,7 +5232,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -5224,7 +5264,7 @@
Borsada İşlem Görmeyen Fonlar (Mutual Fund)
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -5232,7 +5272,7 @@
Kıymetli Metaller
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -5240,7 +5280,7 @@
Özel Menkul Kıymetler
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -5248,7 +5288,7 @@
Hisse Senetleri
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -5256,7 +5296,7 @@
Afrika
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -5264,7 +5304,7 @@
Asya
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -5272,7 +5312,7 @@
Avrupa
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -5280,7 +5320,7 @@
Kuzey Amerika
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -5296,7 +5336,7 @@
Okyanusya
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -5304,7 +5344,7 @@
Güney Amerika
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -5320,11 +5360,11 @@
Veri mevcut değil
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -5332,11 +5372,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5372,7 +5412,7 @@
with your university e-mail address
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -5440,11 +5480,11 @@
Ücret
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5464,7 +5504,7 @@
Bu etiketi silmeyi gerçekten istiyor musunuz?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -5532,7 +5572,7 @@
Üyelik
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -5548,7 +5588,7 @@
Request it
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -5564,7 +5604,7 @@
Varlık Profili
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -5664,7 +5704,7 @@
Aşırı Korku
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -5672,7 +5712,7 @@
Aşırı Açgözlülük
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5680,7 +5720,7 @@
Nötr
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -5688,7 +5728,7 @@
Hay Allah! Geçmiş veriler ayrıştırılamadı.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -5696,7 +5736,7 @@
Bu sistem mesajını silmeyi gerçekten istiyor musunuz?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -5720,7 +5760,7 @@
Nakit Bakiyeleri
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -5740,7 +5780,7 @@
Bu nakit bakiyesini silmeyi gerçekten istiyor musunuz?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -5756,7 +5796,7 @@
Şu anki piyasa fiyatı
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5764,7 +5804,7 @@
Test
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5804,7 +5844,7 @@
Hay Allah! Erişim izni verilemedi.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -5812,7 +5852,7 @@
Argentina
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5860,7 +5900,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
@@ -5868,7 +5908,7 @@
here
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
@@ -5876,7 +5916,7 @@
Close Holding
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5884,7 +5924,7 @@
Mutlak Varlık Performansı
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5892,7 +5932,7 @@
Varlık Performansı
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -5900,7 +5940,7 @@
Mutlak Para Performansı
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -5908,7 +5948,7 @@
Para Performansı
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5916,7 +5956,7 @@
Hafta içi
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5924,11 +5964,11 @@
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5936,7 +5976,7 @@
Ay içi
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5944,11 +5984,11 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5956,7 +5996,7 @@
Yıl içi
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5992,7 +6032,7 @@
Yıl
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6004,7 +6044,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6012,11 +6052,11 @@
Yıllar
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6032,11 +6072,11 @@
Veri Toplama
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6044,7 +6084,7 @@
Genel
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6052,7 +6092,7 @@
Bulut
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6064,7 +6104,7 @@
Kendini Barındırma
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6105,7 +6145,7 @@
Aktif
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6113,7 +6153,7 @@
Kapalı
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6121,7 +6161,7 @@
Indonesia
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -6145,7 +6185,7 @@
İşlemi Yürüt
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6153,7 +6193,7 @@
Öncelik
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6193,7 +6233,7 @@
Etkinlikleri Sil
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6209,7 +6249,7 @@
Ghostfolio hesabınızı kapatmak istediğinize emin misiniz?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6217,7 +6257,7 @@
Tehlikeli Alan
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6225,7 +6265,7 @@
Hesabı Kapat
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6233,7 +6273,7 @@
ETF Portföyü
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -6241,7 +6281,7 @@
Her ETF’nin en üst tutarlarına dayalı yaklaşım
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6257,7 +6297,7 @@
Include in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -6265,7 +6305,7 @@
Oops! Biyometrik kimlik doğrulama ayarlanırken bir hata oluştu.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6281,7 +6321,7 @@
Kıyaslamalar
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -6329,7 +6369,7 @@
Senin özel yatırım stratejinizi iyileştirmek ister misin?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6337,7 +6377,7 @@
Alternatif
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6345,7 +6385,7 @@
App
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6353,7 +6393,7 @@
Bütçeleme
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6369,47 +6409,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6417,7 +6461,7 @@
Aile Ofisi
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6425,7 +6469,7 @@
Yatırımcı
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6437,7 +6481,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6449,7 +6493,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6457,7 +6501,7 @@
Gizlilik
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6465,7 +6509,7 @@
Yazılım
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6473,7 +6517,7 @@
Araç
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6481,7 +6525,7 @@
Kullanıcı Deneyimi
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6489,7 +6533,7 @@
Zenginlik
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6497,7 +6541,7 @@
Zenginlik Yönetimi
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6505,7 +6549,7 @@
Avustralya
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6513,7 +6557,7 @@
Avusturya
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6521,7 +6565,7 @@
Belçika
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6529,7 +6573,7 @@
Bulgaristan
libs/ui/src/lib/i18n.ts
- 83
+ 84
@@ -6537,7 +6581,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6545,7 +6589,7 @@
Kanada
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6553,7 +6597,7 @@
Çek Cumhuriyeti
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6561,7 +6605,7 @@
Finlandiya
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6569,7 +6613,7 @@
Fransa
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6577,7 +6621,7 @@
Almanya
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6585,7 +6629,7 @@
Hindistan
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6593,7 +6637,7 @@
İtalya
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6601,7 +6645,7 @@
Hollanda
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6609,7 +6653,7 @@
Yeni Zelanda
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6617,7 +6661,7 @@
Polonya
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6625,7 +6669,7 @@
Romanya
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6633,7 +6677,7 @@
Güney Afrika
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6641,7 +6685,7 @@
Tayland
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6649,7 +6693,7 @@
Amerika Birleşik Devletleri
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6657,7 +6701,7 @@
Hata
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6681,7 +6725,7 @@
Oops! Could not update access.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
@@ -6709,7 +6753,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6741,7 +6785,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6749,7 +6793,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6761,7 +6805,7 @@
Kapat
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6787,13 +6831,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6805,7 +6853,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6829,7 +6877,7 @@
Portföy Anlık Görüntüsü
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6845,7 +6893,7 @@
If you plan to open an account at
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6896,6 +6944,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
Başlangıçtan beri
@@ -6957,7 +7013,7 @@
to use our referral link and get a Ghostfolio Premium membership for one year
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7061,7 +7117,7 @@
API anahtarını ayarla
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7077,7 +7133,7 @@
Ukraine
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7097,7 +7153,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7113,7 +7169,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7167,7 +7223,7 @@
ın
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7175,7 +7231,7 @@
günlük istekler
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7183,7 +7239,7 @@
API anahtarını kaldır
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7191,7 +7247,7 @@
API anahtarını silmek istediğinize emin misiniz?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7199,7 +7255,7 @@
Ghostfolio API anahtarınızı girin:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7211,7 +7267,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7283,7 +7339,7 @@
Kaydet
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7319,11 +7375,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7335,7 +7391,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7359,7 +7415,15 @@
Lütfen Ghostfolio API anahtarınızı girin.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7375,7 +7439,7 @@
Bağlantı panoya kopyalandı
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7383,7 +7447,7 @@
Tembel
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7391,7 +7455,7 @@
Anında
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7399,7 +7463,7 @@
Varsayılan Piyasa Fiyatı
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7407,7 +7471,7 @@
Mod
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7415,7 +7479,7 @@
Seçici
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7423,7 +7487,7 @@
HTTP İstek Başlıkları
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7431,7 +7495,7 @@
gün sonu
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7439,7 +7503,7 @@
gerçek zamanlı
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7463,11 +7527,11 @@
Değişim
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7479,19 +7543,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -7518,12 +7582,20 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Ermenistan
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7531,7 +7603,7 @@
Britanya Virjin Adaları
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7539,7 +7611,7 @@
Singapur
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7587,11 +7659,11 @@
Güvenlik belirteci
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7599,7 +7671,7 @@
Bu kullanıcı için yeni bir güvenlik belirteci oluşturmak istediğinize emin misiniz?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
@@ -7607,7 +7679,7 @@
Find account, holding or page...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7623,7 +7695,7 @@
Birleşik Krallık
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7672,7 +7744,7 @@
( ) is already in use.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7680,7 +7752,7 @@
Güncelleştirilirken bir hata oluştu ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7696,7 +7768,7 @@
API erişimi için
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7744,7 +7816,7 @@
birisi
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7817,7 +7889,7 @@
Demo kullanıcı hesabı senkronize edildi.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7825,7 +7897,7 @@
Demo Kullanıcı Hesabını Senkronize Et
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7852,25 +7924,25 @@
150
-
+
Fee Ratio
- Ücret Oranı
+ Fee Ratio
apps/client/src/app/pages/i18n/i18n-page.html
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Ücretler, ilk yatırımınızın %${thresholdMax} kadarını aşıyor (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- Ücretler, ilk yatırımınızın %${thresholdMax}’ını (${feeRatio}%) aşmaz
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7995,7 +8067,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8007,7 +8079,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8031,7 +8103,7 @@
Current month
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8039,11 +8111,7 @@
yeni
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8200,7 +8268,7 @@
Do you really want to generate a new security token?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8224,7 +8292,7 @@
Stocks
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8236,7 +8304,7 @@
Cryptocurrencies
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8256,7 +8324,7 @@
Manage Asset Profile
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8676,7 +8744,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf
index c38c8d417..0ccbdb1ba 100644
--- a/apps/client/src/locales/messages.uk.xlf
+++ b/apps/client/src/locales/messages.uk.xlf
@@ -38,7 +38,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -102,7 +102,7 @@
Ризик втрат у торгівлі може бути суттєвим. Не рекомендується інвестувати гроші, які можуть знадобитися в короткостроковій перспективі.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -295,7 +295,7 @@
please
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -355,7 +355,7 @@
Відкликати
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -371,15 +371,7 @@
Посилання скопійовано в буфер обміну
apps/client/src/app/components/access-table/access-table.component.ts
- 99
-
-
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
+ 101
@@ -387,7 +379,7 @@
Ви дійсно хочете відкликати цей наданий доступ?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -403,7 +395,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -419,7 +411,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -427,7 +419,7 @@
Баланс готівки
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -451,7 +443,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -463,7 +455,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -479,15 +471,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -495,7 +487,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -511,7 +503,7 @@
Загалом
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -523,7 +515,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -535,15 +527,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -555,15 +547,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -571,23 +563,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -611,19 +603,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -639,15 +631,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -655,11 +651,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -671,7 +667,7 @@
Ви дійсно хочете видалити цей обліковий запис?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -679,7 +675,7 @@
Тип
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -691,7 +687,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -699,7 +699,7 @@
Профіль активу
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -707,11 +707,11 @@
Історичні ринкові дані
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -719,7 +719,7 @@
Знімок портфеля
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -727,7 +727,7 @@
Джерело даних
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -739,7 +739,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -751,7 +751,7 @@
Пріоритет
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -759,7 +759,7 @@
Спроби
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -767,7 +767,7 @@
Створено
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -775,7 +775,7 @@
Завершено
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -783,11 +783,11 @@
Статус
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -803,7 +803,7 @@
Видалити завдання
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -811,7 +811,7 @@
Переглянути дані
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -819,7 +819,7 @@
Переглянути трасування
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -827,7 +827,7 @@
Виконати завдання
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -835,7 +835,7 @@
Видалити завдання
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -843,7 +843,7 @@
Порівняльні показники
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -851,19 +851,11 @@
Валюти
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
-
-
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
+ 95
@@ -871,7 +863,7 @@
ETF без країн
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -879,7 +871,7 @@
ETF без секторів
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -887,7 +879,7 @@
Фільтрувати за...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -923,7 +915,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -943,7 +935,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -1011,7 +1003,7 @@
Помилка
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -1019,7 +1011,7 @@
Поточна ринкова ціна
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -1059,7 +1051,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -1071,7 +1063,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1079,7 +1071,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -1091,7 +1083,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -1103,7 +1095,7 @@
Зіставлення символів
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -1119,7 +1111,7 @@
Конфігурація скребка
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -1127,7 +1119,7 @@
Тест
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -1135,11 +1127,11 @@
URL
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -1155,7 +1147,7 @@
Asset profile has been saved
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -1163,7 +1155,7 @@
Примітка
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -1171,7 +1163,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -1223,7 +1215,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -1239,7 +1231,7 @@
Ви дійсно хочете видалити цей купон?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -1247,7 +1239,7 @@
Ви дійсно хочете видалити це системне повідомлення?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -1255,7 +1247,7 @@
Ви дійсно хочете очистити кеш?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -1263,7 +1255,7 @@
Будь ласка, встановіть ваше системне повідомлення:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -1279,7 +1271,7 @@
Кількість користувачів
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -1287,7 +1279,7 @@
Кількість активностей
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -1295,7 +1287,7 @@
на користувача
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -1303,7 +1295,7 @@
Реєстрація користувача
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -1311,7 +1303,7 @@
Режим лише для читання
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -1319,11 +1311,11 @@
Збір даних
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -1331,7 +1323,7 @@
Системне повідомлення
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -1339,7 +1331,7 @@
Встановити повідомлення
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -1347,7 +1339,7 @@
Купони
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -1355,7 +1347,7 @@
Додати
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -1367,7 +1359,7 @@
Прибирання
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -1375,7 +1367,7 @@
Очистити кеш
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -1391,7 +1383,15 @@
Ви дійсно хочете видалити цю платформу?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
@@ -1415,7 +1415,7 @@
Current year
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -1439,7 +1439,7 @@
Дійсне до
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -1451,7 +1451,7 @@
з
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -1459,7 +1459,7 @@
щоденних запитів
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -1467,7 +1467,7 @@
Вилучити ключ API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -1475,7 +1475,7 @@
Встановити ключ API
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -1483,7 +1483,7 @@
Платформи
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -1491,7 +1491,7 @@
Теги
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1507,7 +1507,7 @@
Ви дійсно хочете видалити ключ API?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -1515,7 +1515,7 @@
Будь ласка, введіть ваш ключ API Ghostfolio.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
@@ -1551,7 +1551,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -1599,7 +1599,7 @@
Ви дійсно хочете видалити цей тег?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -1623,7 +1623,7 @@
Ви дійсно хочете видалити цього користувача?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -1635,7 +1635,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -1647,7 +1647,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -1679,11 +1679,11 @@
Could not validate form
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -1719,7 +1719,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -1731,7 +1731,7 @@
Порівняльний показник
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -1771,7 +1771,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -1787,7 +1787,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -1807,15 +1807,15 @@
Упс! Неправильний Секретний Токен.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -1831,7 +1831,7 @@
If you plan to open an account at
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -1867,15 +1867,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1895,7 +1895,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -1903,7 +1903,7 @@
Indonesia
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -1919,7 +1919,7 @@
Повідомити про збій даних
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1927,7 +1927,7 @@
Активний
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -1935,7 +1935,7 @@
Закритий
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -1959,7 +1959,7 @@
Керування діяльністю
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -1967,15 +1967,15 @@
Страх
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -1983,15 +1983,15 @@
Жадібність
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -2091,7 +2091,7 @@
Current week
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -2111,7 +2111,7 @@
Загальна сума
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -2139,7 +2139,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -2203,7 +2203,7 @@
Абсолютний валовий дохід
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -2211,11 +2211,11 @@
Абсолютний чистий прибуток
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -2223,11 +2223,11 @@
Чистий прибуток
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -2235,7 +2235,7 @@
Загальні активи
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -2243,7 +2243,7 @@
Активи
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -2251,7 +2251,7 @@
Купівельна спроможність
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -2259,7 +2259,7 @@
Виключено з аналізу
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -2267,7 +2267,7 @@
Зобов’язання
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -2279,7 +2279,7 @@
Чиста вартість
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -2287,7 +2287,7 @@
Річна доходність
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -2295,7 +2295,7 @@
Зберегти
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -2331,11 +2331,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -2407,7 +2407,7 @@
Oops! Could not update access.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
@@ -2439,7 +2439,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -2459,7 +2459,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -2475,7 +2475,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -2491,7 +2491,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -2503,7 +2503,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -2519,7 +2519,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -2567,7 +2567,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -2575,11 +2575,11 @@
З початку року
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -2587,11 +2587,11 @@
1 рік
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -2599,11 +2599,19 @@
5 років
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -2611,11 +2619,11 @@
Максимум
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -2623,7 +2631,7 @@
Упс! Не вдалося надати доступ.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -2631,7 +2639,7 @@
Argentina
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -2667,11 +2675,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -2683,7 +2691,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -2731,7 +2739,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -2807,7 +2815,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -2835,7 +2843,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -2843,7 +2851,7 @@
Ви дійсно хочете закрити ваш обліковий запис Ghostfolio?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -2851,7 +2859,7 @@
Ви дійсно хочете вилучити цей спосіб входу?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -2859,7 +2867,7 @@
Include in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -2867,7 +2875,7 @@
Упс! Виникла помилка під час налаштування біометричної автентифікації.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -2875,7 +2883,7 @@
Режим доповідача
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -2883,7 +2891,7 @@
Захист конфіденційної інформації, такої як абсолютні показники та кількісні значення
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -2915,11 +2923,11 @@
Локалізація
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -2927,7 +2935,7 @@
Формат дати та чисел
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -2935,7 +2943,7 @@
Зовнішній вигляд
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -2943,7 +2951,7 @@
Світлий
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -2951,7 +2959,7 @@
Темний
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -2959,7 +2967,7 @@
Режим дзен
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -2971,7 +2979,7 @@
Досвід без відволікань для неспокійних часів
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -2987,7 +2995,7 @@
Біометрична аутентифікація
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -2995,7 +3003,7 @@
Увійти з відбитком пальця
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -3003,7 +3011,7 @@
Експериментальні функції
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -3011,7 +3019,7 @@
Попередній перегляд майбутніх функцій
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -3019,7 +3027,7 @@
Експортувати дані
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -3027,7 +3035,7 @@
Зона небезпеки
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -3035,7 +3043,7 @@
Закрити обліковий запис
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -3059,7 +3067,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -3079,7 +3087,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -3215,11 +3223,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -3319,7 +3327,7 @@
Ринкові дані
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -3353,6 +3361,10 @@
Overview
Огляд
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -3371,11 +3383,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -3391,7 +3403,7 @@
Будь ласка, введіть ваш ключ API Ghostfolio:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -3507,11 +3519,11 @@
Could not parse scraper configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -3527,7 +3539,7 @@
Оскільки ви вже ввійшли, ви не можете отримати доступ до демонстраційного обліковий запис.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -3555,7 +3567,7 @@
Загальні
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -3563,7 +3575,7 @@
Хмара
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -3575,7 +3587,7 @@
Самохостинг
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -3696,7 +3708,7 @@
Програмне забезпечення з відкритим кодом
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -3708,7 +3720,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -3720,11 +3732,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -3776,7 +3788,7 @@
Ринки
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -3800,7 +3812,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -4192,7 +4204,7 @@
with your university e-mail address
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -4248,7 +4260,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -4284,7 +4296,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -4304,11 +4316,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -4320,7 +4332,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -4388,7 +4400,7 @@
Оновити баланс готівки
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -4396,7 +4408,7 @@
Дата
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -4404,7 +4416,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -4416,11 +4428,11 @@
Ціна за одиницю
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -4432,11 +4444,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -4444,15 +4456,15 @@
Імпорт дивідендів
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -4460,7 +4472,7 @@
Імпортуються дані...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -4468,7 +4480,7 @@
Імпорт завершено
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -4484,7 +4496,7 @@
Перевірка даних...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -4580,7 +4592,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -4612,7 +4624,7 @@
За платформою
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -4620,7 +4632,7 @@
За валютою
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -4628,7 +4640,7 @@
За класом активів
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -4636,7 +4648,7 @@
За активом
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -4644,7 +4656,7 @@
За сектором
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -4652,7 +4664,7 @@
За континентом
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -4660,7 +4672,7 @@
За ринком
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -4668,11 +4680,11 @@
Регіони
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -4692,11 +4704,11 @@
Розвиті ринки
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
@@ -4704,7 +4716,7 @@
Latest activities
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -4712,11 +4724,11 @@
Ринки, що розвиваються
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -4724,11 +4736,11 @@
Інші ринки
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -4736,7 +4748,7 @@
За країною
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -4744,7 +4756,7 @@
За рахунком
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -4752,7 +4764,7 @@
За постачальником ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
@@ -4760,7 +4772,7 @@
За активами ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -4768,7 +4780,7 @@
Наближення на основі провідних активів кожного ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -4788,7 +4800,7 @@
Looking for a student discount?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -4804,7 +4816,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -4812,7 +4824,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -4844,7 +4856,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
@@ -4852,7 +4864,7 @@
here
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
@@ -4876,7 +4888,7 @@
Close Holding
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -4884,7 +4896,7 @@
Абсолютна прибутковість активів
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -4892,7 +4904,7 @@
Прибутковість активів
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -4900,7 +4912,7 @@
Абсолютна прибутковість валюти
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -4908,7 +4920,7 @@
Прибутковість валюти
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -4916,7 +4928,7 @@
Топ
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -4924,7 +4936,7 @@
Низ
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -4932,7 +4944,7 @@
Еволюція портфеля
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -4940,7 +4952,7 @@
Інвестиційний графік
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -4948,7 +4960,7 @@
Поточна серія
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4956,7 +4968,7 @@
Найдовша серія
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4964,7 +4976,7 @@
Графік дивідендів
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -5180,7 +5192,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -5196,7 +5208,7 @@
Підтримка електронної пошти та чату
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -5204,7 +5216,7 @@
Разова оплата, без автоматичного поновлення.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
@@ -5212,11 +5224,11 @@
Could not save asset profile
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -5224,7 +5236,7 @@
Це безкоштовно.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -5243,6 +5255,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
З початку
@@ -5256,7 +5276,7 @@
Континенти
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -5264,7 +5284,7 @@
Чи хотіли б ви удосконалити вашу особисту інвестиційну стратегію ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -5280,7 +5300,7 @@
Ghostfolio надає можливість вам стежити за вашим багатством.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -5310,6 +5330,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Glossary
@@ -5320,7 +5344,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -5336,7 +5360,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -5431,11 +5455,11 @@
Швейцарія
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -5443,7 +5467,7 @@
Глобальний
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -5455,7 +5479,7 @@
Альтернатива
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -5463,7 +5487,7 @@
Додаток
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -5471,7 +5495,7 @@
Бюджетування
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -5487,47 +5511,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -5535,7 +5563,7 @@
Сімейний офіс
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -5543,7 +5571,7 @@
Інвестор
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -5555,7 +5583,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -5567,7 +5595,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -5575,7 +5603,7 @@
Конфіденційність
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -5583,7 +5611,7 @@
Програмне забезпечення
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -5591,7 +5619,7 @@
Інструмент
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -5599,7 +5627,7 @@
Користувацький досвід
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -5607,7 +5635,7 @@
Багатство
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -5615,7 +5643,7 @@
Управління багатством
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -5835,7 +5863,7 @@
to use our referral link and get a Ghostfolio Premium membership for one year
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -6007,7 +6035,7 @@
Членство
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -6023,7 +6051,7 @@
Request it
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -6075,7 +6103,7 @@
Ви дійсно хочете видалити цей рахунок?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -6083,11 +6111,11 @@
Експорт активності
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -6095,11 +6123,11 @@
Експортувати чернетки як ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -6107,7 +6135,7 @@
Видалити активності
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6115,7 +6143,7 @@
Чернетка
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -6123,7 +6151,7 @@
Клонувати
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -6131,7 +6159,7 @@
Експортувати чернетку як ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -6139,7 +6167,7 @@
Ви дійсно хочете видалити ці дії?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -6147,7 +6175,7 @@
Ви дійсно хочете видалити цю активність?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -6155,7 +6183,7 @@
Тиждень до дати
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -6163,11 +6191,11 @@
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -6175,7 +6203,7 @@
Місяць до дати
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -6183,11 +6211,11 @@
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -6195,7 +6223,7 @@
Рік до дати
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -6203,7 +6231,7 @@
рік
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6215,7 +6243,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6223,11 +6251,11 @@
роки
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6235,7 +6263,7 @@
Профілі активів
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -6311,7 +6339,7 @@
contact us
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -6322,6 +6350,14 @@
119
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
Ринкові дані надані
@@ -6375,7 +6411,7 @@
Депозит
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -6387,11 +6423,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -6403,7 +6439,7 @@
Заощадження
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -6419,7 +6455,7 @@
Упс! Не вдалося отримати історичні дані.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -6427,11 +6463,11 @@
Розподіл
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -6447,7 +6483,7 @@
Показати все
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -6459,7 +6495,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -6491,7 +6527,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -6499,7 +6535,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -6523,7 +6559,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -6531,7 +6567,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -6555,7 +6591,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6587,7 +6623,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6595,7 +6631,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6615,7 +6651,7 @@
Закрити
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6641,13 +6677,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6683,7 +6723,7 @@
Резервний фонд
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -6751,7 +6791,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -6770,6 +6810,14 @@
27
+
+ No Activities
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
Пенсійне накопичення
@@ -6778,6 +6826,14 @@
28
+
+ Everything in Basic , plus
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
Satellite
Супутник
@@ -6791,7 +6847,7 @@
Символ
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -6807,7 +6863,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -6843,7 +6899,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -6859,7 +6915,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6895,11 +6951,11 @@
Комісія
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -6939,7 +6995,7 @@
Готівка
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -6995,7 +7051,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -7027,7 +7083,7 @@
Взаємний фонд
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -7035,7 +7091,7 @@
Дорогоцінний метал
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -7043,7 +7099,7 @@
Приватний капітал
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -7051,7 +7107,7 @@
Акція
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -7059,7 +7115,7 @@
Африка
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -7067,7 +7123,7 @@
Азія
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -7075,7 +7131,7 @@
Європа
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -7083,7 +7139,7 @@
Північна Америка
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -7099,7 +7155,7 @@
Океанія
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -7107,7 +7163,7 @@
Південна Америка
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -7115,7 +7171,7 @@
Австралія
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -7123,7 +7179,7 @@
Австрія
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -7131,7 +7187,7 @@
Бельгія
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -7139,7 +7195,7 @@
Болгарія
libs/ui/src/lib/i18n.ts
- 83
+ 84
@@ -7147,7 +7203,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -7155,7 +7211,7 @@
Канада
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -7163,7 +7219,7 @@
Чеська Республіка
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -7171,7 +7227,7 @@
Фінляндія
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -7179,7 +7235,7 @@
Франція
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -7187,7 +7243,7 @@
Німеччина
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -7195,7 +7251,7 @@
Індія
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -7203,7 +7259,7 @@
Італія
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -7211,7 +7267,7 @@
Японія
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -7219,7 +7275,7 @@
Нідерланди
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -7227,7 +7283,7 @@
Нова Зеландія
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -7235,7 +7291,7 @@
Польща
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -7243,7 +7299,7 @@
Румунія
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -7251,7 +7307,7 @@
Південна Африка
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -7259,7 +7315,7 @@
Таїланд
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -7267,7 +7323,7 @@
Україна
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7275,7 +7331,7 @@
Сполучені Штати
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -7283,7 +7339,7 @@
Екстремальний страх
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -7291,7 +7347,7 @@
Екстремальна жадібність
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -7299,7 +7355,7 @@
Нейтрально
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -7331,11 +7387,11 @@
Дані недоступні
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -7343,11 +7399,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -7370,6 +7426,14 @@
174
+
+ Change with currency effect
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
+
+
AI prompt has been copied to the clipboard
Запит AI скопійовано в буфер обміну
@@ -7383,7 +7447,7 @@
Lazy
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7391,7 +7455,7 @@
Instant
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7399,7 +7463,7 @@
Default Market Price
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7407,7 +7471,7 @@
Mode
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7415,7 +7479,7 @@
Selector
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7423,7 +7487,7 @@
HTTP Request Headers
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7431,7 +7495,7 @@
end of day
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7439,7 +7503,7 @@
real-time
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7463,11 +7527,11 @@
Change
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7479,19 +7543,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -7518,12 +7582,20 @@
67
+
+ Total amount
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
Armenia
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7531,7 +7603,7 @@
British Virgin Islands
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7539,7 +7611,7 @@
Singapore
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7587,11 +7659,11 @@
Security token
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7599,7 +7671,7 @@
Do you really want to generate a new security token for this user?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
@@ -7607,7 +7679,7 @@
Find account, holding or page...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7623,7 +7695,7 @@
United Kingdom
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7672,7 +7744,7 @@
( ) is already in use.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7680,7 +7752,7 @@
An error occurred while updating to ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7696,7 +7768,7 @@
with API access for
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7744,7 +7816,7 @@
someone
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7817,7 +7889,7 @@
Demo user account has been synced.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7825,7 +7897,7 @@
Sync Demo User Account
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7852,7 +7924,7 @@
150
-
+
Fee Ratio
Fee Ratio
@@ -7860,17 +7932,17 @@
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7995,7 +8067,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8007,7 +8079,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8031,7 +8103,7 @@
Current month
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8039,11 +8111,7 @@
new
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8200,7 +8268,7 @@
Do you really want to generate a new security token?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8224,7 +8292,7 @@
Stocks
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8236,7 +8304,7 @@
Cryptocurrencies
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8256,7 +8324,7 @@
Manage Asset Profile
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8676,7 +8744,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf
index 6888369ab..17a0227a0 100644
--- a/apps/client/src/locales/messages.xlf
+++ b/apps/client/src/locales/messages.xlf
@@ -203,7 +203,7 @@
The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term.
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -228,14 +228,14 @@
please
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
Type
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -247,7 +247,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -261,7 +265,7 @@
Revoke
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -271,18 +275,11 @@
87
-
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -297,7 +294,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -312,14 +309,14 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
Cash Balances
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -341,7 +338,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -353,7 +350,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -369,15 +366,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -385,7 +382,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -400,7 +397,7 @@
Total
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -411,7 +408,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -423,15 +420,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -442,15 +439,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -458,23 +455,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -497,19 +494,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -524,15 +521,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -540,11 +541,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -555,32 +556,32 @@
Do you really want to delete this account?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
Asset Profile
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
Historical Market Data
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
Data Source
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -592,7 +593,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -603,32 +604,32 @@
Attempts
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
Created
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
Finished
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
Status
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -642,28 +643,28 @@
Delete Jobs
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
View Data
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
View Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
Delete Job
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -677,7 +678,7 @@
Date
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -685,7 +686,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -711,32 +712,25 @@
Currencies
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
-
-
-
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
+ 95
ETFs without Countries
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
ETFs without Sectors
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -750,7 +744,7 @@
Filter by...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -769,7 +763,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -787,7 +781,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -833,7 +827,7 @@
Oops! Could not parse historical data.
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -862,7 +856,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -892,7 +886,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -903,7 +897,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -911,7 +905,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -922,7 +916,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -933,7 +927,7 @@
Symbol Mapping
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -947,14 +941,14 @@
Scraper Configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
Note
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -962,7 +956,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -1002,35 +996,35 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
Do you really want to delete this coupon?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
Do you really want to delete this system message?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
Do you really want to flush the cache?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
Please set your system message:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -1044,21 +1038,21 @@
User Count
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
Activity Count
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
per User
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -1072,42 +1066,42 @@
User Signup
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
Read-only Mode
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
System Message
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
Set Message
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
Coupons
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
Add
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -1118,14 +1112,14 @@
Housekeeping
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
Flush Cache
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -1139,11 +1133,11 @@
Url
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -1158,14 +1152,21 @@
Asset profile has been saved
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
Do you really want to delete this platform?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
+
+
+
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
@@ -1186,7 +1187,7 @@
Current year
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -1200,14 +1201,14 @@
Platforms
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
Tags
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1229,7 +1230,7 @@
Do you really want to delete this tag?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -1250,7 +1251,7 @@
Do you really want to delete this user?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -1283,7 +1284,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -1311,11 +1312,11 @@
Could not validate form
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -1348,7 +1349,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -1359,7 +1360,7 @@
Benchmark
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -1392,7 +1393,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -1411,52 +1412,52 @@
Oops! Incorrect Security Token.
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
Manage Activities
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
Fear
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
Greed
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -1544,7 +1545,7 @@
Current week
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1562,7 +1563,7 @@
Total Amount
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -1588,7 +1589,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -1631,7 +1632,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -1667,7 +1668,7 @@
Absolute Gross Performance
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -1678,64 +1679,64 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
Absolute Net Performance
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
Net Performance
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
Total Assets
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
Assets
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
Buying Power
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
Excluded from Analysis
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
Liabilities
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -1746,14 +1747,14 @@
Net Worth
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
Annualized Performance
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -1785,22 +1786,22 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
Report Data Glitch
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1829,7 +1830,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -1848,7 +1849,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -1863,7 +1864,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -1878,7 +1879,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -1889,7 +1890,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -1904,7 +1905,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -1957,7 +1958,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -1968,51 +1969,58 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
YTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
1Y
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
5Y
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
Max
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -2080,7 +2088,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -2105,28 +2113,28 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
Do you really want to remove this sign in method?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
Presenter View
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
Protection for sensitive information like absolute performances and quantity values
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -2147,46 +2155,46 @@
Locale
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
Date and number format
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
Appearance
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
Light
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
Dark
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
Zen Mode
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -2197,7 +2205,7 @@
Distraction-free experience for turbulent times
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
@@ -2211,28 +2219,28 @@
Biometric Authentication
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
Sign in with fingerprint
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
Experimental Features
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
Sneak peek at upcoming functionality
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -2243,18 +2251,18 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
Export Data
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -2276,7 +2284,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -2287,7 +2295,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2302,7 +2310,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -2421,11 +2429,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -2508,7 +2516,7 @@
Market Data
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -2539,6 +2547,10 @@
Overview
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -2557,11 +2569,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -2683,11 +2695,11 @@
Could not parse scraper configuration
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -2701,7 +2713,7 @@
As you are already logged in, you cannot access the demo account.
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -2830,7 +2842,7 @@
Open Source Software
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -2841,7 +2853,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -2853,11 +2865,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -2906,7 +2918,7 @@
Markets
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -2930,7 +2942,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -3097,6 +3109,13 @@
172
+
+ Everything in Basic , plus
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
trading stocks, ETFs or cryptocurrencies on multiple platforms
@@ -3262,7 +3281,7 @@
with your university e-mail address
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -3312,7 +3331,7 @@
Job ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -3344,7 +3363,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -3364,11 +3383,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -3380,14 +3399,14 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
Do you really want to delete these activities?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3447,18 +3466,18 @@
Update Cash Balance
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
Unit Price
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -3469,40 +3488,40 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
Import Dividends
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
Importing data...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
Import has been completed
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -3516,7 +3535,7 @@
Validating data...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3616,60 +3635,60 @@
By Platform
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
By Currency
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
By Asset Class
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
By Holding
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
By Sector
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
By Continent
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
By Market
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
Regions
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -3687,61 +3706,61 @@
Developed Markets
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
Latest activities
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
Emerging Markets
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
Other Markets
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
By Account
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
By ETF Provider
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
By Country
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -3759,7 +3778,7 @@
Looking for a student discount?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -3774,7 +3793,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -3782,7 +3801,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -3804,7 +3823,7 @@
Deposit
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -3825,49 +3844,49 @@
Top
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
Bottom
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
Portfolio Evolution
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
Investment Timeline
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
Current Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
Longest Streak
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
Dividend Timeline
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -4027,7 +4046,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -4041,7 +4060,7 @@
Email and Chat Support
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -4056,32 +4075,32 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
One-time payment, no auto-renewal.
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
Could not save asset profile
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
It’s free.
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -4095,7 +4114,7 @@
Continents
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -4109,7 +4128,7 @@
Ghostfolio empowers you to keep track of your wealth.
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -4136,6 +4155,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Personal Finance Tools
@@ -4403,18 +4426,18 @@
Switzerland
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
Global
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -4448,7 +4471,7 @@
Membership
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -4463,7 +4486,7 @@
Request it
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -4509,64 +4532,64 @@
Do you really want to delete this account balance?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
Export Activities
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
Export Drafts as ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
Draft
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
Clone
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
Export Draft as ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
Do you really want to delete this activity?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
Asset Profiles
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -4612,7 +4635,7 @@
contact us
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -4622,6 +4645,13 @@
119
+
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
@@ -4665,11 +4695,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -4680,18 +4710,18 @@
Savings
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
Allocation
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -4706,7 +4736,7 @@
Show all
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -4717,7 +4747,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -4747,7 +4777,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -4755,7 +4785,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -4778,7 +4808,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -4786,7 +4816,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -4825,7 +4855,7 @@
Emergency Fund
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -4861,7 +4891,7 @@
Japan
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -4893,7 +4923,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -4903,6 +4933,13 @@
27
+
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
@@ -4921,7 +4958,7 @@
Symbol
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -4937,7 +4974,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -4970,7 +5007,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -5002,11 +5039,11 @@
Fee
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5042,7 +5079,7 @@
Cash
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -5085,7 +5122,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -5113,56 +5150,56 @@
Mutual Fund
libs/ui/src/lib/i18n.ts
- 59
+ 60
Precious Metal
libs/ui/src/lib/i18n.ts
- 60
+ 61
Private Equity
libs/ui/src/lib/i18n.ts
- 61
+ 62
Stock
libs/ui/src/lib/i18n.ts
- 62
+ 63
Africa
libs/ui/src/lib/i18n.ts
- 69
+ 70
Asia
libs/ui/src/lib/i18n.ts
- 70
+ 71
Europe
libs/ui/src/lib/i18n.ts
- 71
+ 72
North America
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -5176,42 +5213,42 @@
Oceania
libs/ui/src/lib/i18n.ts
- 73
+ 74
South America
libs/ui/src/lib/i18n.ts
- 74
+ 75
Extreme Fear
libs/ui/src/lib/i18n.ts
- 106
+ 107
Extreme Greed
libs/ui/src/lib/i18n.ts
- 107
+ 108
Neutral
libs/ui/src/lib/i18n.ts
- 110
+ 111
Valid until
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -5229,11 +5266,11 @@
No data available
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -5241,11 +5278,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5270,28 +5307,28 @@
The current market price is
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
Test
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
Oops! Could not grant access.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
Argentina
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5341,21 +5378,21 @@
Absolute Currency Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
Close Holding
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
Absolute Asset Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5378,71 +5415,71 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
here
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
Asset Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
Currency Performance
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
Year to date
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
Week to date
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
Month to date
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
MTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
WTD
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5474,7 +5511,7 @@
year
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -5486,18 +5523,18 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
years
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -5523,7 +5560,7 @@
Self-Hosting
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -5534,25 +5571,25 @@
Data Gathering
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
General
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
Cloud
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -5577,21 +5614,21 @@
Closed
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
Active
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
Indonesia
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -5612,7 +5649,7 @@
Execute Job
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -5626,7 +5663,7 @@
Priority
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -5654,7 +5691,7 @@
Delete Activities
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -5668,35 +5705,35 @@
Close Account
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
Do you really want to close your Ghostfolio account?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
Danger Zone
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
Approximation based on the top holdings of each ETF
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
By ETF Holding
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -5710,14 +5747,14 @@
Include in
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
Oops! There was an error setting up biometric authentication.
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -5752,7 +5789,7 @@
Benchmarks
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -5773,14 +5810,14 @@
Would you like to refine your personal investment strategy ?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
Wealth
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -5795,159 +5832,163 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
Thailand
libs/ui/src/lib/i18n.ts
- 100
+ 101
India
libs/ui/src/lib/i18n.ts
- 89
+ 90
Austria
libs/ui/src/lib/i18n.ts
- 80
+ 81
Poland
libs/ui/src/lib/i18n.ts
- 95
+ 96
Italy
libs/ui/src/lib/i18n.ts
- 91
+ 92
User Experience
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
App
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
Tool
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
Investor
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
Wealth Management
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
Canada
libs/ui/src/lib/i18n.ts
- 84
+ 85
New Zealand
libs/ui/src/lib/i18n.ts
- 94
+ 95
Netherlands
libs/ui/src/lib/i18n.ts
- 93
+ 94
Alternative
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
Family Office
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -5958,49 +5999,49 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
Software
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
Romania
libs/ui/src/lib/i18n.ts
- 96
+ 97
Germany
libs/ui/src/lib/i18n.ts
- 88
+ 89
United States
libs/ui/src/lib/i18n.ts
- 103
+ 104
Budgeting
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
Belgium
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6011,63 +6052,63 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
Czech Republic
libs/ui/src/lib/i18n.ts
- 85
+ 86
Australia
libs/ui/src/lib/i18n.ts
- 79
+ 80
South Africa
libs/ui/src/lib/i18n.ts
- 98
+ 99
Bulgaria
libs/ui/src/lib/i18n.ts
- 83
+ 84
Privacy
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
Finland
libs/ui/src/lib/i18n.ts
- 86
+ 87
France
libs/ui/src/lib/i18n.ts
- 87
+ 88
Error
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6078,7 +6119,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6110,7 +6151,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6118,7 +6159,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6129,7 +6170,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6157,7 +6198,7 @@
Close
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6183,13 +6224,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6207,7 +6252,7 @@
Oops! Could not update access.
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
@@ -6242,7 +6287,7 @@
Portfolio Snapshot
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6256,7 +6301,7 @@
If you plan to open an account at
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6294,6 +6339,13 @@
42
+
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
offers a free plan
@@ -6334,7 +6386,7 @@
to use our referral link and get a Ghostfolio Premium membership for one year
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -6428,14 +6480,14 @@
Ukraine
libs/ui/src/lib/i18n.ts
- 101
+ 102
Set API key
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -6467,7 +6519,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -6494,7 +6546,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -6531,35 +6583,35 @@
Please enter your Ghostfolio API key:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
of
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
Do you really want to delete the API key?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
Remove API key
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
daily requests
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -6584,7 +6636,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -6633,7 +6685,7 @@
Save
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6669,11 +6721,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -6698,14 +6750,21 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
Please enter your Ghostfolio API key.
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -6719,63 +6778,63 @@
Link has been copied to the clipboard
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
Mode
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
Default Market Price
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
Selector
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
Instant
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
Lazy
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
HTTP Request Headers
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
real-time
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
end of day
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -6796,11 +6855,11 @@
Change
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -6811,19 +6870,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -6844,21 +6903,28 @@
Singapore
libs/ui/src/lib/i18n.ts
- 97
+ 98
+
+
+
+ Total amount
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
Armenia
libs/ui/src/lib/i18n.ts
- 77
+ 78
British Virgin Islands
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -6907,25 +6973,25 @@
Do you really want to generate a new security token for this user?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
Find account, holding or page...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
Security token
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -6939,7 +7005,7 @@
United Kingdom
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -6983,14 +7049,14 @@
( ) is already in use.
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
An error occurred while updating to ( ).
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7004,7 +7070,7 @@
with API access for
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7025,7 +7091,7 @@
someone
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7091,14 +7157,14 @@
Sync Demo User Account
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
Demo user account has been synced.
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7122,22 +7188,22 @@
150
-
+
Fee Ratio
apps/client/src/app/pages/i18n/i18n-page.html
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7250,7 +7316,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -7261,7 +7327,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -7282,18 +7348,14 @@
Current month
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
new
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -7445,14 +7507,14 @@
Do you really want to generate a new security token?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
Cryptocurrencies
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -7463,7 +7525,7 @@
Stocks
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -7481,7 +7543,7 @@
Manage Asset Profile
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -7850,7 +7912,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf
index 02f90631d..64fa63a13 100644
--- a/apps/client/src/locales/messages.zh.xlf
+++ b/apps/client/src/locales/messages.zh.xlf
@@ -216,7 +216,7 @@
交易存在巨大亏损风险,因此不应投入您短期内可能急需的资金。
apps/client/src/app/components/footer/footer.component.html
- 171
+ 182
@@ -244,7 +244,7 @@
请
apps/client/src/app/pages/pricing/pricing-page.html
- 336
+ 333
@@ -252,7 +252,7 @@
类型
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 48
+ 57
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
@@ -264,7 +264,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 163
+ 5
+
+
+ libs/ui/src/lib/activities-table/activities-table.component.html
+ 187
@@ -280,7 +284,7 @@
撤销
apps/client/src/app/components/access-table/access-table.component.html
- 96
+ 97
@@ -291,20 +295,12 @@
87
-
- plus
- plus
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 202
-
-
Do you really want to revoke this granted access?
您真的要撤销此访问权限吗?
apps/client/src/app/components/access-table/access-table.component.ts
- 113
+ 115
@@ -320,7 +316,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 136
+ 143
@@ -336,7 +332,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 86
+ 93
@@ -344,7 +340,7 @@
现金余额
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 148
+ 146
@@ -368,7 +364,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 309
+ 310
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -380,7 +376,7 @@
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 46
+ 58
apps/client/src/app/components/admin-tag/admin-tag.component.html
@@ -396,15 +392,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 139
+ 135
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 43
+ 50
libs/ui/src/lib/activities-table/activities-table.component.html
- 137
+ 161
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -412,7 +408,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 28
+ 23
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -428,7 +424,7 @@
总计
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 55
+ 62
@@ -440,7 +436,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 316
+ 317
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -452,15 +448,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 145
+ 141
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 65
+ 72
libs/ui/src/lib/activities-table/activities-table.component.html
- 283
+ 307
@@ -472,15 +468,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 205
+ 201
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 208
+ 204
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 211
+ 207
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -488,23 +484,23 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 171
+ 178
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 206
+ 213
libs/ui/src/lib/activities-table/activities-table.component.html
- 264
+ 288
libs/ui/src/lib/activities-table/activities-table.component.html
- 300
+ 324
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 98
+ 93
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -528,19 +524,19 @@
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 74
+ 78
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 67
+ 71
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 313
+ 320
libs/ui/src/lib/activities-table/activities-table.component.html
- 457
+ 481
@@ -556,15 +552,19 @@
apps/client/src/app/components/admin-overview/admin-overview.html
- 131
+ 140
apps/client/src/app/components/admin-platform/admin-platform.component.html
- 85
+ 89
apps/client/src/app/components/admin-tag/admin-tag.component.html
- 78
+ 82
+
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 22
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -572,11 +572,11 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 324
+ 331
libs/ui/src/lib/activities-table/activities-table.component.html
- 484
+ 508
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -588,7 +588,7 @@
您确定要删除此账户吗?
libs/ui/src/lib/accounts-table/accounts-table.component.ts
- 150
+ 148
@@ -596,7 +596,7 @@
资产概况
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 52
+ 61
@@ -604,11 +604,11 @@
历史市场数据
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 54
+ 63
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 448
+ 449
@@ -616,7 +616,7 @@
数据源
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 82
+ 91
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -628,7 +628,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 155
+ 151
libs/ui/src/lib/i18n.ts
@@ -640,7 +640,7 @@
尝试次数
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 120
+ 129
@@ -648,7 +648,7 @@
创建
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 134
+ 143
@@ -656,7 +656,7 @@
完成
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 143
+ 152
@@ -664,11 +664,11 @@
状态
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 152
+ 161
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 92
+ 104
@@ -684,7 +684,7 @@
删除任务
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 193
+ 202
@@ -692,7 +692,7 @@
查看数据
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 208
+ 217
@@ -700,7 +700,7 @@
查看堆栈跟踪
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 216
+ 225
@@ -708,7 +708,7 @@
删除任务
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 224
+ 233
@@ -724,7 +724,7 @@
日期
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 161
+ 157
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -732,7 +732,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 172
+ 196
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
@@ -760,19 +760,11 @@
货币
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 132
+ 130
apps/client/src/app/pages/public/public-page.html
- 96
-
-
-
- Everything in
- Everything in
-
- apps/client/src/app/pages/pricing/pricing-page.html
- 199
+ 95
@@ -780,7 +772,7 @@
没有国家的 ETF
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 137
+ 135
@@ -788,7 +780,7 @@
无行业类别的 ETF
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 142
+ 140
@@ -804,7 +796,7 @@
过滤...
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 386
+ 383
@@ -824,7 +816,7 @@
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 50
+ 45
@@ -844,7 +836,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 44
+ 40
@@ -880,7 +872,7 @@
哎呀!无法解析历史数据。
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
- 263
+ 284
@@ -904,7 +896,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.html
- 71
+ 67
@@ -936,7 +928,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 53
+ 78
@@ -948,7 +940,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 396
+ 398
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -956,7 +948,7 @@
apps/client/src/app/pages/public/public-page.html
- 114
+ 113
@@ -968,7 +960,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 407
+ 409
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -980,7 +972,7 @@
代码映射
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 384
+ 387
@@ -996,7 +988,7 @@
刮削配置
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 471
+ 472
@@ -1004,7 +996,7 @@
笔记
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 432
+ 433
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
@@ -1012,7 +1004,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 275
+ 271
@@ -1056,7 +1048,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 124
+ 120
@@ -1064,7 +1056,7 @@
您确实要删除此优惠券吗?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 194
+ 196
@@ -1072,7 +1064,7 @@
您真的要删除这条系统消息吗?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 207
+ 209
@@ -1080,7 +1072,7 @@
您真的要刷新缓存吗?
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 231
+ 233
@@ -1088,7 +1080,7 @@
请设置您的系统消息:
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 251
+ 253
@@ -1104,7 +1096,7 @@
用户数
apps/client/src/app/components/admin-overview/admin-overview.html
- 13
+ 16
@@ -1112,7 +1104,7 @@
活动计数
apps/client/src/app/components/admin-overview/admin-overview.html
- 19
+ 22
@@ -1120,7 +1112,7 @@
每位用户
apps/client/src/app/components/admin-overview/admin-overview.html
- 28
+ 31
@@ -1136,7 +1128,7 @@
用户注册
apps/client/src/app/components/admin-overview/admin-overview.html
- 34
+ 37
@@ -1144,7 +1136,7 @@
只读模式
apps/client/src/app/components/admin-overview/admin-overview.html
- 48
+ 51
@@ -1152,7 +1144,7 @@
系统信息
apps/client/src/app/components/admin-overview/admin-overview.html
- 72
+ 75
@@ -1160,7 +1152,7 @@
设置留言
apps/client/src/app/components/admin-overview/admin-overview.html
- 94
+ 97
@@ -1168,7 +1160,7 @@
优惠券
apps/client/src/app/components/admin-overview/admin-overview.html
- 102
+ 105
@@ -1176,7 +1168,7 @@
添加
apps/client/src/app/components/admin-overview/admin-overview.html
- 176
+ 185
libs/ui/src/lib/account-balances/account-balances.component.html
@@ -1188,7 +1180,7 @@
维护
apps/client/src/app/components/admin-overview/admin-overview.html
- 184
+ 193
@@ -1196,7 +1188,7 @@
刷新缓存
apps/client/src/app/components/admin-overview/admin-overview.html
- 200
+ 209
@@ -1212,11 +1204,11 @@
网址
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 419
+ 420
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 550
+ 551
apps/client/src/app/components/admin-platform/admin-platform.component.html
@@ -1229,10 +1221,10 @@
Asset profile has been saved
- Asset profile has been saved
+ 资产概况已保存
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 579
+ 594
@@ -1240,12 +1232,20 @@
您真的要删除这个平台吗?
apps/client/src/app/components/admin-platform/admin-platform.component.ts
- 107
+ 111
+
+
+
+ Explore
+ Explore
+
+ apps/client/src/app/pages/resources/overview/resources-overview.component.html
+ 11
By
- By
+ 预计到
apps/client/src/app/pages/portfolio/fire/fire-page.html
139
@@ -1264,7 +1264,7 @@
当前年份
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
@@ -1280,7 +1280,7 @@
平台
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 195
+ 212
@@ -1288,7 +1288,7 @@
标签
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 201
+ 218
libs/ui/src/lib/tags-selector/tags-selector.component.html
@@ -1312,7 +1312,7 @@
您真的要删除此标签吗?
apps/client/src/app/components/admin-tag/admin-tag.component.ts
- 103
+ 108
@@ -1336,7 +1336,7 @@
您真的要删除该用户吗?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 216
+ 215
@@ -1357,7 +1357,7 @@
No auto-renewal on membership.
- No auto-renewal on membership.
+ 会员资格不自动续订。
apps/client/src/app/components/user-account-membership/user-account-membership.html
74
@@ -1372,7 +1372,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 89
+ 114
@@ -1401,14 +1401,14 @@
Could not validate form
- Could not validate form
+ 无法验证表单
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 555
+ 570
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 558
+ 573
@@ -1444,7 +1444,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 94
+ 95
libs/common/src/lib/routes/routes.ts
@@ -1456,7 +1456,7 @@
基准
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 376
+ 379
apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts
@@ -1492,7 +1492,7 @@
apps/client/src/app/components/header/header.component.ts
- 297
+ 298
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
@@ -1512,15 +1512,15 @@
哎呀!安全令牌不正确。
apps/client/src/app/components/header/header.component.ts
- 312
+ 313
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 154
+ 152
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 192
+ 191
@@ -1528,7 +1528,7 @@
管理活动
apps/client/src/app/components/home-holdings/home-holdings.html
- 67
+ 64
@@ -1536,15 +1536,15 @@
恐惧
apps/client/src/app/components/home-market/home-market.component.ts
- 42
+ 41
apps/client/src/app/components/markets/markets.component.ts
- 47
+ 46
libs/ui/src/lib/i18n.ts
- 108
+ 109
@@ -1552,15 +1552,15 @@
贪婪
apps/client/src/app/components/home-market/home-market.component.ts
- 43
+ 42
apps/client/src/app/components/markets/markets.component.ts
- 48
+ 47
libs/ui/src/lib/i18n.ts
- 109
+ 110
@@ -1660,7 +1660,7 @@
当前周
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
@@ -1680,7 +1680,7 @@
总金额
apps/client/src/app/components/investment-chart/investment-chart.component.ts
- 143
+ 146
@@ -1708,7 +1708,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 279
+ 288
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -1752,7 +1752,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 329
+ 326
apps/client/src/app/pages/register/register-page.html
@@ -1792,7 +1792,7 @@
绝对总业绩
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 73
+ 77
@@ -1804,7 +1804,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 88
+ 92
@@ -1812,11 +1812,11 @@
绝对净绩效
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 107
+ 111
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 193
+ 259
@@ -1824,11 +1824,11 @@
净绩效
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 123
+ 127
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 212
+ 278
@@ -1836,7 +1836,7 @@
总资产
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 149
+ 153
@@ -1844,7 +1844,7 @@
资产
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 226
+ 233
@@ -1852,7 +1852,7 @@
购买力
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 241
+ 248
@@ -1860,7 +1860,7 @@
从分析中排除
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 267
+ 274
@@ -1868,7 +1868,7 @@
负债
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 295
+ 302
apps/client/src/app/pages/features/features-page.html
@@ -1880,7 +1880,7 @@
净值
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 317
+ 324
@@ -1888,7 +1888,7 @@
年化业绩
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 331
+ 338
@@ -1924,15 +1924,15 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 189
+ 185
libs/ui/src/lib/activities-table/activities-table.component.html
- 193
+ 217
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 74
+ 69
@@ -1940,7 +1940,7 @@
报告数据故障
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 451
+ 456
@@ -1972,7 +1972,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 207
+ 204
@@ -1992,7 +1992,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 211
+ 208
@@ -2008,7 +2008,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 215
+ 212
@@ -2024,7 +2024,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 219
+ 216
@@ -2036,7 +2036,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 223
+ 220
@@ -2052,7 +2052,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 246
+ 243
@@ -2108,7 +2108,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 284
+ 281
@@ -2120,7 +2120,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 365
+ 362
@@ -2128,11 +2128,11 @@
年初至今
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 200
+ 205
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -2140,11 +2140,11 @@
1年
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -2152,11 +2152,19 @@
5年
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
+
+
+
+ Performance with currency effect
+ 含货币影响的表现
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 135
@@ -2164,11 +2172,11 @@
最大限度
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 212
+ 217
libs/ui/src/lib/assistant/assistant.component.ts
- 417
+ 414
@@ -2244,7 +2252,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 268
+ 265
@@ -2272,7 +2280,7 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 172
+ 181
@@ -2280,7 +2288,7 @@
您确实要删除此登录方法吗?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 281
+ 279
@@ -2288,7 +2296,7 @@
演示者视图
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 183
+ 192
@@ -2296,7 +2304,7 @@
保护绝对业绩、金额等敏感信息
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 185
+ 194
@@ -2320,11 +2328,11 @@
语言环境
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 509
+ 510
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 133
+ 142
@@ -2332,7 +2340,7 @@
日期和数字格式
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 135
+ 144
@@ -2340,7 +2348,7 @@
外观
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 158
+ 167
@@ -2348,7 +2356,7 @@
明亮
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 173
+ 182
@@ -2356,7 +2364,7 @@
黑暗
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 174
+ 183
@@ -2364,7 +2372,7 @@
极简模式
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 201
+ 210
apps/client/src/app/pages/features/features-page.html
@@ -2376,12 +2384,12 @@
动荡时期的无干扰体验
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 203
+ 212
this is projected to increase to
- this is projected to increase to
+ 预计将增至
apps/client/src/app/pages/portfolio/fire/fire-page.html
147
@@ -2392,7 +2400,7 @@
生物识别认证
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 218
+ 227
@@ -2400,7 +2408,7 @@
使用指纹登录
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 219
+ 228
@@ -2408,7 +2416,7 @@
实验性功能
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 235
+ 244
@@ -2416,7 +2424,7 @@
预览即将推出的功能
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 237
+ 246
@@ -2428,11 +2436,11 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 252
+ 261
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 11
+ 35
@@ -2440,7 +2448,7 @@
导出数据
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 260
+ 269
@@ -2464,7 +2472,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 195
+ 194
@@ -2476,7 +2484,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 193
+ 192
@@ -2492,7 +2500,7 @@
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 196
+ 195
@@ -2620,11 +2628,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 375
+ 381
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 66
+ 91
apps/client/src/app/pages/accounts/accounts-page.html
@@ -2716,7 +2724,7 @@
市场数据
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 398
+ 403
libs/common/src/lib/routes/routes.ts
@@ -2750,6 +2758,10 @@
Overview
概述
+
+ apps/client/src/app/components/admin-jobs/admin-jobs.html
+ 7
+
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
114
@@ -2768,11 +2780,11 @@
apps/client/src/app/pages/admin/admin-page.component.ts
- 48
+ 45
apps/client/src/app/pages/resources/resources-page.component.ts
- 30
+ 29
libs/common/src/lib/routes/routes.ts
@@ -2893,14 +2905,14 @@
Could not parse scraper configuration
- Could not parse scraper configuration
+ 无法解析抓取器配置
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 510
+ 525
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 513
+ 528
@@ -2916,7 +2928,7 @@
由于您已经登录,因此无法访问模拟帐户。
apps/client/src/app/pages/demo/demo-page.component.ts
- 35
+ 32
@@ -3060,7 +3072,7 @@
开源软件
apps/client/src/app/pages/features/features-page.html
- 295
+ 296
@@ -3072,7 +3084,7 @@
apps/client/src/app/pages/features/features-page.html
- 320
+ 321
apps/client/src/app/pages/landing/landing-page.html
@@ -3084,11 +3096,11 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 363
+ 360
apps/client/src/app/pages/public/public-page.html
- 242
+ 241
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -3140,7 +3152,7 @@
市场
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 378
+ 381
apps/client/src/app/components/footer/footer.component.html
@@ -3164,7 +3176,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 40
+ 39
libs/common/src/lib/routes/routes.ts
@@ -3351,6 +3363,14 @@
172
+
+ Everything in Basic , plus
+ 包含 Basic 所有功能,以及
+
+ apps/client/src/app/pages/pricing/pricing-page.html
+ 199
+
+
trading stocks, ETFs or cryptocurrencies on multiple platforms
在多个平台上交易股票、ETF 或加密货币
@@ -3540,7 +3560,7 @@
使用您的学校电子邮件地址
apps/client/src/app/pages/pricing/pricing-page.html
- 351
+ 348
@@ -3596,7 +3616,7 @@
作业 ID
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 34
+ 43
@@ -3632,7 +3652,7 @@
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html
- 115
+ 113
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
@@ -3652,11 +3672,11 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 342
+ 348
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 75
+ 100
apps/client/src/app/pages/portfolio/activities/activities-page.html
@@ -3668,7 +3688,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 119
+ 126
@@ -3676,7 +3696,7 @@
您确定要删除这些活动吗?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 278
+ 304
@@ -3744,7 +3764,7 @@
更新现金余额
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 112
+ 108
@@ -3752,11 +3772,11 @@
单价
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 214
+ 210
libs/ui/src/lib/activities-table/activities-table.component.html
- 217
+ 241
@@ -3768,11 +3788,11 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 9
+ 28
libs/ui/src/lib/activities-table/activities-table.component.html
- 383
+ 407
@@ -3780,15 +3800,15 @@
导入股息
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 137
+ 136
libs/ui/src/lib/activities-table/activities-table.component.html
- 29
+ 52
libs/ui/src/lib/activities-table/activities-table.component.html
- 397
+ 421
@@ -3796,7 +3816,7 @@
正在导入数据...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 175
+ 174
@@ -3804,7 +3824,7 @@
导入已完成
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 185
+ 184
@@ -3820,7 +3840,7 @@
验证数据...
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
- 299
+ 293
@@ -3932,7 +3952,7 @@
按平台
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 44
+ 42
@@ -3940,7 +3960,7 @@
按货币
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 63
+ 61
@@ -3948,7 +3968,7 @@
按资产类别
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 85
+ 83
@@ -3956,7 +3976,7 @@
通过持有
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 107
+ 105
@@ -3964,7 +3984,7 @@
按部门
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 130
+ 128
@@ -3972,7 +3992,7 @@
按大陆
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 153
+ 151
@@ -3980,7 +4000,7 @@
按市场
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 175
+ 173
@@ -3988,11 +4008,11 @@
区域
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 198
+ 196
apps/client/src/app/pages/public/public-page.html
- 151
+ 150
@@ -4012,11 +4032,11 @@
发达市场
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 222
+ 218
apps/client/src/app/pages/public/public-page.html
- 168
+ 167
@@ -4024,7 +4044,7 @@
最新活动
apps/client/src/app/pages/public/public-page.html
- 211
+ 210
@@ -4032,11 +4052,11 @@
新兴市场
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 231
+ 227
apps/client/src/app/pages/public/public-page.html
- 177
+ 176
@@ -4044,11 +4064,11 @@
其他市场
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 240
+ 236
apps/client/src/app/pages/public/public-page.html
- 186
+ 185
@@ -4056,7 +4076,7 @@
按帐户
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 286
+ 282
@@ -4064,7 +4084,7 @@
按 ETF 提供商
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 306
+ 302
@@ -4072,7 +4092,7 @@
按国家/地区
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 264
+ 260
@@ -4092,7 +4112,7 @@
寻找学生折扣?
apps/client/src/app/pages/pricing/pricing-page.html
- 345
+ 342
@@ -4108,7 +4128,7 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 365
+ 372
apps/client/src/app/pages/features/features-page.html
@@ -4116,7 +4136,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 202
+ 198
apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts
@@ -4129,7 +4149,7 @@
annual interest rate
- annual interest rate
+ 年利率
apps/client/src/app/pages/portfolio/fire/fire-page.html
185
@@ -4140,7 +4160,7 @@
存款
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 377
+ 404
@@ -4164,7 +4184,7 @@
顶部
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 239
+ 305
@@ -4172,7 +4192,7 @@
底部
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 288
+ 354
@@ -4180,7 +4200,7 @@
投资组合演变
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 341
+ 407
@@ -4188,7 +4208,7 @@
投资时间表
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 368
+ 436
@@ -4196,7 +4216,7 @@
当前连胜
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 389
+ 457
@@ -4204,7 +4224,7 @@
最长连续纪录
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 398
+ 466
@@ -4212,7 +4232,7 @@
股息时间表
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 425
+ 495
@@ -4361,7 +4381,7 @@
Free
- 自由的
+ 免费
apps/client/src/app/pages/pricing/pricing-page.html
86
@@ -4388,7 +4408,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 255
+ 252
@@ -4404,7 +4424,7 @@
电子邮件和聊天支持
apps/client/src/app/pages/pricing/pricing-page.html
- 251
+ 248
@@ -4420,7 +4440,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 282
+ 279
@@ -4428,19 +4448,19 @@
一次性付款,无自动续订。
apps/client/src/app/pages/pricing/pricing-page.html
- 288
+ 285
Could not save asset profile
- Could not save asset profile
+ 无法保存资产概况
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 589
+ 604
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 592
+ 607
@@ -4448,7 +4468,7 @@
免费。
apps/client/src/app/pages/pricing/pricing-page.html
- 365
+ 362
@@ -4464,7 +4484,7 @@
大陆
apps/client/src/app/pages/public/public-page.html
- 132
+ 131
@@ -4480,7 +4500,7 @@
Ghostfolio 使您能够跟踪您的财富。
apps/client/src/app/pages/public/public-page.html
- 238
+ 237
@@ -4510,6 +4530,10 @@
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
88
+
+ libs/ui/src/lib/value/value.component.html
+ 18
+
Personal Finance Tools
@@ -4805,11 +4829,11 @@
瑞士
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 57
+ 58
libs/ui/src/lib/i18n.ts
- 99
+ 100
@@ -4817,7 +4841,7 @@
全球的
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 58
+ 59
libs/ui/src/lib/i18n.ts
@@ -4853,7 +4877,7 @@
会员资格
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 48
+ 73
libs/common/src/lib/routes/routes.ts
@@ -4869,7 +4893,7 @@
请求它
apps/client/src/app/pages/pricing/pricing-page.html
- 347
+ 344
@@ -4921,7 +4945,7 @@
您确实要删除该帐户余额吗?
libs/ui/src/lib/account-balances/account-balances.component.ts
- 120
+ 113
@@ -4929,11 +4953,11 @@
导出活动记录
libs/ui/src/lib/activities-table/activities-table.component.html
- 41
+ 64
libs/ui/src/lib/activities-table/activities-table.component.html
- 411
+ 435
@@ -4941,11 +4965,11 @@
将汇票导出为 ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 54
+ 77
libs/ui/src/lib/activities-table/activities-table.component.html
- 424
+ 448
@@ -4953,7 +4977,7 @@
草稿
libs/ui/src/lib/activities-table/activities-table.component.html
- 144
+ 168
@@ -4961,7 +4985,7 @@
克隆
libs/ui/src/lib/activities-table/activities-table.component.html
- 463
+ 487
@@ -4969,7 +4993,7 @@
将汇票导出为 ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 473
+ 497
@@ -4977,7 +5001,7 @@
您确实要删除此活动吗?
libs/ui/src/lib/activities-table/activities-table.component.ts
- 288
+ 314
@@ -4985,7 +5009,7 @@
资产概况
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 106
+ 123
libs/ui/src/lib/assistant/assistant.html
@@ -5037,7 +5061,7 @@
联系我们
apps/client/src/app/pages/pricing/pricing-page.html
- 339
+ 336
@@ -5048,6 +5072,14 @@
119
+
+ Loan
+ Loan
+
+ libs/ui/src/lib/i18n.ts
+ 59
+
+
Market data provided by
市场数据提供者
@@ -5097,11 +5129,11 @@
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 352
+ 359
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 387
+ 414
libs/ui/src/lib/i18n.ts
@@ -5113,7 +5145,7 @@
储蓄
libs/ui/src/lib/fire-calculator/fire-calculator.component.ts
- 397
+ 424
@@ -5121,11 +5153,11 @@
分配
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 241
+ 248
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 122
+ 117
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5141,7 +5173,7 @@
显示所有
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 221
+ 212
@@ -5153,7 +5185,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 315
+ 339
libs/ui/src/lib/i18n.ts
@@ -5185,7 +5217,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 326
+ 327
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -5193,7 +5225,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 290
+ 286
libs/ui/src/lib/i18n.ts
@@ -5217,7 +5249,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 342
+ 343
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
@@ -5225,7 +5257,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 309
+ 305
libs/ui/src/lib/i18n.ts
@@ -5269,7 +5301,7 @@
应急基金
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 164
+ 168
apps/client/src/app/pages/features/features-page.html
@@ -5309,7 +5341,7 @@
日本
libs/ui/src/lib/i18n.ts
- 92
+ 93
@@ -5345,7 +5377,7 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 437
+ 451
@@ -5356,6 +5388,14 @@
27
+
+ No Activities
+ No Activities
+
+ apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+ 145
+
+
Retirement Provision
退休金
@@ -5377,7 +5417,7 @@
代码
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 68
+ 77
apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -5393,7 +5433,7 @@
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 315
+ 318
libs/ui/src/lib/i18n.ts
@@ -5429,7 +5469,7 @@
libs/ui/src/lib/accounts-table/accounts-table.component.html
- 307
+ 314
@@ -5442,7 +5482,7 @@
Sign in with OpenID Connect
- Sign in with OpenID Connect
+ 使用 OpenID Connect 登录
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
55
@@ -5465,11 +5505,11 @@
费用
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 262
+ 258
libs/ui/src/lib/activities-table/activities-table.component.html
- 241
+ 265
libs/ui/src/lib/i18n.ts
@@ -5509,7 +5549,7 @@
现金
apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html
- 212
+ 219
libs/ui/src/lib/i18n.ts
@@ -5554,10 +5594,10 @@
Authentication
- Authentication
+ 认证
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 35
+ 60
@@ -5589,7 +5629,7 @@
共同基金
libs/ui/src/lib/i18n.ts
- 59
+ 60
@@ -5597,7 +5637,7 @@
贵金属
libs/ui/src/lib/i18n.ts
- 60
+ 61
@@ -5605,7 +5645,7 @@
私募股权
libs/ui/src/lib/i18n.ts
- 61
+ 62
@@ -5613,7 +5653,7 @@
股票
libs/ui/src/lib/i18n.ts
- 62
+ 63
@@ -5621,7 +5661,7 @@
非洲
libs/ui/src/lib/i18n.ts
- 69
+ 70
@@ -5629,7 +5669,7 @@
亚洲
libs/ui/src/lib/i18n.ts
- 70
+ 71
@@ -5637,7 +5677,7 @@
欧洲
libs/ui/src/lib/i18n.ts
- 71
+ 72
@@ -5645,7 +5685,7 @@
北美
libs/ui/src/lib/i18n.ts
- 72
+ 73
@@ -5661,7 +5701,7 @@
大洋洲
libs/ui/src/lib/i18n.ts
- 73
+ 74
@@ -5669,7 +5709,7 @@
南美洲
libs/ui/src/lib/i18n.ts
- 74
+ 75
@@ -5677,7 +5717,7 @@
极度恐惧
libs/ui/src/lib/i18n.ts
- 106
+ 107
@@ -5685,7 +5725,7 @@
极度贪婪
libs/ui/src/lib/i18n.ts
- 107
+ 108
@@ -5693,7 +5733,7 @@
中性的
libs/ui/src/lib/i18n.ts
- 110
+ 111
@@ -5701,7 +5741,7 @@
有效期至
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 74
+ 86
libs/ui/src/lib/membership-card/membership-card.component.html
@@ -5721,11 +5761,11 @@
无可用数据
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 250
+ 246
apps/client/src/app/pages/public/public-page.html
- 196
+ 195
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -5733,11 +5773,11 @@
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 439
+ 453
libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts
- 452
+ 467
libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -5765,7 +5805,7 @@
当前市场价格为
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 707
+ 722
@@ -5773,7 +5813,7 @@
测试
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 568
+ 569
@@ -5781,7 +5821,7 @@
哎呀!无法授予访问权限。
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 141
+ 144
@@ -5789,7 +5829,7 @@
阿根廷
libs/ui/src/lib/i18n.ts
- 78
+ 79
@@ -5845,7 +5885,7 @@
绝对货币表现
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 145
+ 211
@@ -5853,7 +5893,7 @@
关闭持仓
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 442
+ 447
@@ -5861,7 +5901,7 @@
绝对资产回报
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 102
+ 168
@@ -5885,7 +5925,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 88
+ 89
@@ -5893,7 +5933,7 @@
这里
apps/client/src/app/pages/pricing/pricing-page.html
- 350
+ 347
@@ -5901,7 +5941,7 @@
资产回报
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 124
+ 190
@@ -5909,7 +5949,7 @@
货币表现
apps/client/src/app/pages/portfolio/analysis/analysis-page.html
- 170
+ 236
@@ -5917,7 +5957,7 @@
今年迄今为止
libs/ui/src/lib/assistant/assistant.component.ts
- 377
+ 374
@@ -5925,7 +5965,7 @@
本周至今
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5933,7 +5973,7 @@
本月至今
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5941,11 +5981,11 @@
本月至今
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
libs/ui/src/lib/assistant/assistant.component.ts
- 373
+ 370
@@ -5953,11 +5993,11 @@
本周至今
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 192
+ 197
libs/ui/src/lib/assistant/assistant.component.ts
- 369
+ 366
@@ -5993,7 +6033,7 @@
年
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 204
+ 209
apps/client/src/app/pages/resources/personal-finance-tools/product-page.html
@@ -6005,7 +6045,7 @@
libs/ui/src/lib/assistant/assistant.component.ts
- 387
+ 384
@@ -6013,11 +6053,11 @@
年
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 208
+ 213
libs/ui/src/lib/assistant/assistant.component.ts
- 411
+ 408
@@ -6046,7 +6086,7 @@
自托管
apps/client/src/app/pages/faq/faq-page.component.ts
- 60
+ 52
libs/common/src/lib/routes/routes.ts
@@ -6058,11 +6098,11 @@
数据收集
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 587
+ 592
apps/client/src/app/components/admin-overview/admin-overview.html
- 60
+ 63
@@ -6070,7 +6110,7 @@
一般的
apps/client/src/app/pages/faq/faq-page.component.ts
- 49
+ 41
@@ -6078,7 +6118,7 @@
云
apps/client/src/app/pages/faq/faq-page.component.ts
- 54
+ 46
libs/common/src/lib/routes/routes.ts
@@ -6106,7 +6146,7 @@
已关闭
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 65
+ 64
@@ -6114,7 +6154,7 @@
活跃
apps/client/src/app/components/home-holdings/home-holdings.component.ts
- 64
+ 63
@@ -6122,7 +6162,7 @@
印度尼西亚
libs/ui/src/lib/i18n.ts
- 90
+ 91
@@ -6146,7 +6186,7 @@
执行作业
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 220
+ 229
@@ -6154,7 +6194,7 @@
优先级
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 96
+ 105
@@ -6194,7 +6234,7 @@
删除活动
libs/ui/src/lib/activities-table/activities-table.component.html
- 69
+ 92
@@ -6210,7 +6250,7 @@
您确定要关闭您的 Ghostfolio 账户吗?
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 207
+ 205
@@ -6218,7 +6258,7 @@
危险区域
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 272
+ 281
@@ -6226,7 +6266,7 @@
关闭账户
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 307
+ 316
@@ -6234,7 +6274,7 @@
按 ETF 持仓
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 333
+ 329
@@ -6242,7 +6282,7 @@
基于每个 ETF 的主要持仓的近似值
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
- 340
+ 336
@@ -6258,7 +6298,7 @@
包含在
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 374
+ 377
@@ -6266,7 +6306,7 @@
哎呀!设置生物识别认证时发生错误。
apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
- 335
+ 328
@@ -6282,7 +6322,7 @@
基准
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
- 127
+ 125
@@ -6330,7 +6370,7 @@
您想 优化 您的 个人投资策略 吗?
apps/client/src/app/pages/public/public-page.html
- 234
+ 233
@@ -6338,7 +6378,7 @@
另类
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 82
+ 83
@@ -6346,7 +6386,7 @@
应用
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 83
+ 84
@@ -6354,7 +6394,7 @@
预算管理
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 84
+ 85
@@ -6370,47 +6410,51 @@
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 90
+ 91
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 94
+ 95
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 98
+ 99
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 102
+ 103
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 106
+ 109
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 110
+ 114
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 114
+ 118
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 118
+ 122
apps/client/src/app/components/user-account-settings/user-account-settings.html
- 123
+ 126
+
+
+ apps/client/src/app/components/user-account-settings/user-account-settings.html
+ 132
apps/client/src/app/pages/features/features-page.html
- 276
+ 277
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 85
+ 86
@@ -6418,7 +6462,7 @@
家族办公室
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 86
+ 87
@@ -6426,7 +6470,7 @@
投资者
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 89
+ 90
@@ -6438,7 +6482,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 90
+ 91
@@ -6450,7 +6494,7 @@
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 92
+ 93
@@ -6458,7 +6502,7 @@
隐私
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 93
+ 94
@@ -6466,7 +6510,7 @@
软件
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 95
+ 96
@@ -6474,7 +6518,7 @@
工具
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 96
+ 97
@@ -6482,7 +6526,7 @@
用户体验
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 97
+ 98
@@ -6490,7 +6534,7 @@
财富
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 98
+ 99
@@ -6498,7 +6542,7 @@
财富管理
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
- 99
+ 100
@@ -6506,7 +6550,7 @@
澳大利亚
libs/ui/src/lib/i18n.ts
- 79
+ 80
@@ -6514,7 +6558,7 @@
奥地利
libs/ui/src/lib/i18n.ts
- 80
+ 81
@@ -6522,7 +6566,7 @@
比利时
libs/ui/src/lib/i18n.ts
- 81
+ 82
@@ -6530,7 +6574,7 @@
保加利亚
libs/ui/src/lib/i18n.ts
- 83
+ 84
@@ -6538,7 +6582,7 @@
查看持仓
libs/ui/src/lib/activities-table/activities-table.component.html
- 450
+ 474
@@ -6546,7 +6590,7 @@
加拿大
libs/ui/src/lib/i18n.ts
- 84
+ 85
@@ -6554,7 +6598,7 @@
捷克共和国
libs/ui/src/lib/i18n.ts
- 85
+ 86
@@ -6562,7 +6606,7 @@
芬兰
libs/ui/src/lib/i18n.ts
- 86
+ 87
@@ -6570,7 +6614,7 @@
法国
libs/ui/src/lib/i18n.ts
- 87
+ 88
@@ -6578,7 +6622,7 @@
德国
libs/ui/src/lib/i18n.ts
- 88
+ 89
@@ -6586,7 +6630,7 @@
印度
libs/ui/src/lib/i18n.ts
- 89
+ 90
@@ -6594,7 +6638,7 @@
意大利
libs/ui/src/lib/i18n.ts
- 91
+ 92
@@ -6602,7 +6646,7 @@
荷兰
libs/ui/src/lib/i18n.ts
- 93
+ 94
@@ -6610,7 +6654,7 @@
新西兰
libs/ui/src/lib/i18n.ts
- 94
+ 95
@@ -6618,7 +6662,7 @@
波兰
libs/ui/src/lib/i18n.ts
- 95
+ 96
@@ -6626,7 +6670,7 @@
罗马尼亚
libs/ui/src/lib/i18n.ts
- 96
+ 97
@@ -6634,7 +6678,7 @@
南非
libs/ui/src/lib/i18n.ts
- 98
+ 99
@@ -6642,7 +6686,7 @@
泰国
libs/ui/src/lib/i18n.ts
- 100
+ 101
@@ -6650,7 +6694,7 @@
美国
libs/ui/src/lib/i18n.ts
- 103
+ 104
@@ -6658,7 +6702,7 @@
错误
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 698
+ 713
@@ -6682,12 +6726,12 @@
哎呀!无法更新访问权限。
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts
- 178
+ 181
, based on your total assets of
- 基于您总资产的
+ 基于您总资产的
apps/client/src/app/pages/portfolio/fire/fire-page.html
96
@@ -6710,7 +6754,7 @@
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 592
+ 597
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6742,7 +6786,7 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 345
+ 341
apps/client/src/app/pages/register/user-account-registration-dialog/user-account-registration-dialog.html
@@ -6750,7 +6794,7 @@
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 46
+ 47
libs/ui/src/lib/i18n.ts
@@ -6762,7 +6806,7 @@
关闭
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 594
+ 599
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -6788,13 +6832,17 @@
apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html
68
+
+ apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
+ 133
+
apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html
107
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 347
+ 343
libs/ui/src/lib/i18n.ts
@@ -6806,7 +6854,7 @@
角色
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 14
+ 39
@@ -6830,7 +6878,7 @@
投资组合快照
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 56
+ 65
@@ -6846,7 +6894,7 @@
如果您计划开通账户在
apps/client/src/app/pages/pricing/pricing-page.html
- 315
+ 312
@@ -6897,6 +6945,14 @@
42
+
+ has been copied to the clipboard
+ has been copied to the clipboard
+
+ libs/ui/src/lib/value/value.component.ts
+ 180
+
+
From the beginning
从头开始
@@ -6947,7 +7003,7 @@
, assuming a
- , assuming a
+ , 假设一个
apps/client/src/app/pages/portfolio/fire/fire-page.html
174
@@ -6958,7 +7014,7 @@
使用我们的推荐链接并获得一年的Ghostfolio Premium会员资格
apps/client/src/app/pages/pricing/pricing-page.html
- 343
+ 340
@@ -7062,7 +7118,7 @@
设置 API 密钥
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 171
+ 188
@@ -7078,7 +7134,7 @@
乌克兰
libs/ui/src/lib/i18n.ts
- 101
+ 102
@@ -7098,7 +7154,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 45
+ 44
libs/common/src/lib/routes/routes.ts
@@ -7114,7 +7170,7 @@
apps/client/src/app/pages/resources/resources-page.component.ts
- 34
+ 33
libs/common/src/lib/routes/routes.ts
@@ -7168,7 +7224,7 @@
的
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 135
+ 152
@@ -7176,7 +7232,7 @@
每日请求
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 137
+ 154
@@ -7184,7 +7240,7 @@
移除 API 密钥
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 161
+ 178
@@ -7192,7 +7248,7 @@
您确定要删除此 API 密钥吗?
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 128
+ 133
@@ -7200,7 +7256,7 @@
请输入您的 Ghostfolio API 密钥:
apps/client/src/app/pages/api/api-page.component.ts
- 43
+ 46
@@ -7212,7 +7268,7 @@
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 98
+ 123
@@ -7284,7 +7340,7 @@
保存
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 603
+ 608
apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html
@@ -7320,11 +7376,11 @@
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html
- 356
+ 352
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor-dialog/historical-market-data-editor-dialog.html
- 48
+ 49
@@ -7336,7 +7392,7 @@
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 260
+ 250
@@ -7360,7 +7416,15 @@
请输入您的 Ghostfolio API 密钥。
apps/client/src/app/components/admin-settings/admin-settings.component.ts
- 147
+ 152
+
+
+
+ Change with currency effect
+ 含货币影响的涨跌
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 116
@@ -7376,7 +7440,7 @@
链接已复制到剪贴板
apps/client/src/app/components/access-table/access-table.component.ts
- 99
+ 101
@@ -7384,7 +7448,7 @@
延迟
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7392,7 +7456,7 @@
即时
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7400,7 +7464,7 @@
默认市场价格
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 481
+ 482
@@ -7408,7 +7472,7 @@
模式
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 518
+ 519
@@ -7416,7 +7480,7 @@
选择器
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 534
+ 535
@@ -7424,7 +7488,7 @@
HTTP 请求标头
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html
- 494
+ 495
@@ -7432,7 +7496,7 @@
收盘
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 226
+ 231
@@ -7440,7 +7504,7 @@
实时
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 230
+ 235
@@ -7464,11 +7528,11 @@
涨跌
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 143
+ 138
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
@@ -7480,19 +7544,19 @@
apps/client/src/app/components/home-overview/home-overview.component.ts
- 55
+ 54
libs/ui/src/lib/holdings-table/holdings-table.component.html
- 166
+ 161
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 368
+ 377
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts
- 381
+ 390
@@ -7519,12 +7583,20 @@
67
+
+ Total amount
+ 总金额
+
+ apps/client/src/app/pages/portfolio/analysis/analysis-page.html
+ 95
+
+
Armenia
亚美尼亚
libs/ui/src/lib/i18n.ts
- 77
+ 78
@@ -7532,7 +7604,7 @@
英属维尔京群岛
libs/ui/src/lib/i18n.ts
- 82
+ 83
@@ -7540,7 +7612,7 @@
新加坡
libs/ui/src/lib/i18n.ts
- 97
+ 98
@@ -7588,11 +7660,11 @@
安全令牌
apps/client/src/app/components/admin-users/admin-users.component.ts
- 237
+ 235
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 170
+ 167
@@ -7600,7 +7672,7 @@
您确定要为此用户生成新的安全令牌吗?
apps/client/src/app/components/admin-users/admin-users.component.ts
- 242
+ 240
@@ -7608,7 +7680,7 @@
查找账户、持仓或页面...
libs/ui/src/lib/assistant/assistant.component.ts
- 153
+ 115
@@ -7624,7 +7696,7 @@
英国
libs/ui/src/lib/i18n.ts
- 102
+ 103
@@ -7673,7 +7745,7 @@
( ) 已在使用中。
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 634
+ 649
@@ -7681,7 +7753,7 @@
在更新到 ( ) 时发生错误。
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 642
+ 657
@@ -7697,7 +7769,7 @@
包含 API 访问权限,适用于
apps/client/src/app/pages/pricing/pricing-page.html
- 238
+ 235
@@ -7745,7 +7817,7 @@
某人
apps/client/src/app/pages/public/public-page.component.ts
- 59
+ 61
@@ -7818,7 +7890,7 @@
演示用户账户已同步。
apps/client/src/app/components/admin-overview/admin-overview.component.ts
- 275
+ 277
@@ -7826,7 +7898,7 @@
同步演示用户账户
apps/client/src/app/components/admin-overview/admin-overview.html
- 195
+ 204
@@ -7853,7 +7925,7 @@
150
-
+
Fee Ratio
费率
@@ -7861,17 +7933,17 @@
152
-
- The fees do exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- 费用超过了您初始投资的 ${thresholdMax}% (${feeRatio}%)
+
+ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ 费用已超过您总投资金额的 ${thresholdMax}%(${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
154
-
- The fees do not exceed ${thresholdMax}% of your initial investment (${feeRatio}%)
- 费用未超过您初始投资的 ${thresholdMax}% (${feeRatio}%)
+
+ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%)
+ 费用未超过您总投资金额的 ${thresholdMax}%(${feeRatio}%)
apps/client/src/app/pages/i18n/i18n-page.html
158
@@ -7996,7 +8068,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 297
+ 294
@@ -8008,7 +8080,7 @@
apps/client/src/app/pages/pricing/pricing-page.html
- 300
+ 297
@@ -8032,7 +8104,7 @@
当前月份
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
- 196
+ 201
@@ -8040,11 +8112,7 @@
新增
apps/client/src/app/components/admin-settings/admin-settings.component.html
- 67
-
-
- apps/client/src/app/pages/admin/admin-page.component.ts
- 56
+ 79
@@ -8201,7 +8269,7 @@
您真的想要生成一个新的安全令牌吗?
apps/client/src/app/components/user-account-access/user-account-access.component.ts
- 175
+ 172
@@ -8225,7 +8293,7 @@
股票
apps/client/src/app/components/markets/markets.component.ts
- 52
+ 51
apps/client/src/app/pages/features/features-page.html
@@ -8237,7 +8305,7 @@
加密货币
apps/client/src/app/components/markets/markets.component.ts
- 53
+ 52
apps/client/src/app/pages/features/features-page.html
@@ -8257,7 +8325,7 @@
管理资产概况
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
- 466
+ 471
@@ -8677,7 +8745,7 @@
注册日期
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 26
+ 51
diff --git a/apps/client/src/main.ts b/apps/client/src/main.ts
index c15703645..f596de5f4 100644
--- a/apps/client/src/main.ts
+++ b/apps/client/src/main.ts
@@ -1,5 +1,6 @@
import { InfoResponse } from '@ghostfolio/common/interfaces';
import { filterGlobalPermissions } from '@ghostfolio/common/permissions';
+import { GF_ENVIRONMENT } from '@ghostfolio/ui/environment';
import { GfNotificationModule } from '@ghostfolio/ui/notifications';
import { Platform } from '@angular/cdk/platform';
@@ -89,6 +90,10 @@ import { environment } from './environments/environment';
provide: DateAdapter,
useClass: CustomDateAdapter
},
+ {
+ provide: GF_ENVIRONMENT,
+ useValue: environment
+ },
{
provide: MAT_DATE_FORMATS,
useValue: DateFormats
diff --git a/apps/client/src/styles.scss b/apps/client/src/styles.scss
index b7a031bfa..f5a4e9c80 100644
--- a/apps/client/src/styles.scss
+++ b/apps/client/src/styles.scss
@@ -2,7 +2,7 @@
@import './styles/table';
@import './styles/variables';
-@import 'svgmap/dist/svgMap';
+@import 'svgmap/style.min';
:root {
--dark-background: rgb(25, 25, 25);
@@ -546,6 +546,10 @@ ngx-skeleton-loader {
padding: 9px 24px !important;
}
+.no-height {
+ height: unset !important;
+}
+
.no-min-width {
min-width: unset !important;
}
diff --git a/eslint.config.cjs b/eslint.config.cjs
index 5962e261d..76d627d18 100644
--- a/eslint.config.cjs
+++ b/eslint.config.cjs
@@ -28,9 +28,7 @@ module.exports = [
onlyDependOnLibsWithTags: ['*']
}
],
- enforceBuildableLibDependency: true,
- // Temporary fix, should be removed eventually
- ignoredCircularDependencies: [['client', 'ui']]
+ enforceBuildableLibDependency: true
}
],
'@typescript-eslint/no-extra-semi': 'error',
diff --git a/libs/common/eslint.config.cjs b/libs/common/eslint.config.cjs
index a78dde897..990c264b4 100644
--- a/libs/common/eslint.config.cjs
+++ b/libs/common/eslint.config.cjs
@@ -18,7 +18,9 @@ module.exports = [
{
files: ['**/*.ts', '**/*.tsx'],
// Override or add rules here
- rules: {}
+ rules: {
+ '@typescript-eslint/prefer-nullish-coalescing': 'error'
+ }
},
{
files: ['**/*.js', '**/*.jsx'],
diff --git a/libs/common/src/lib/calculation-helper.ts b/libs/common/src/lib/calculation-helper.ts
index d67384a30..2097fa52a 100644
--- a/libs/common/src/lib/calculation-helper.ts
+++ b/libs/common/src/lib/calculation-helper.ts
@@ -9,7 +9,7 @@ import {
subDays,
subYears
} from 'date-fns';
-import { isNumber } from 'lodash';
+import { isFinite, isNumber } from 'lodash';
import { resetHours } from './helper';
import { DateRange } from './types';
@@ -28,7 +28,7 @@ export function getAnnualizedPerformancePercent({
exponent
);
- if (!isNaN(growthFactor)) {
+ if (isFinite(growthFactor)) {
return new Big(growthFactor).minus(1);
}
}
@@ -36,14 +36,16 @@ export function getAnnualizedPerformancePercent({
return new Big(0);
}
-export function getIntervalFromDateRange(
- aDateRange: DateRange,
- portfolioStart = new Date(0)
-) {
- let endDate = endOfDay(new Date());
- let startDate = portfolioStart;
+export function getIntervalFromDateRange(params: {
+ dateRange: DateRange;
+ endDate?: Date;
+ startDate?: Date;
+}) {
+ const { dateRange } = params;
+ let endDate = params.endDate ?? endOfDay(new Date());
+ let startDate = params.startDate ?? new Date(0);
- switch (aDateRange) {
+ switch (dateRange) {
case '1d':
startDate = max([startDate, subDays(resetHours(new Date()), 1)]);
break;
@@ -75,8 +77,8 @@ export function getIntervalFromDateRange(
break;
default:
// '2024', '2023', '2022', etc.
- endDate = endOfYear(new Date(aDateRange));
- startDate = max([startDate, new Date(aDateRange)]);
+ endDate = endOfYear(new Date(dateRange));
+ startDate = max([startDate, new Date(dateRange)]);
}
return { endDate, startDate };
diff --git a/libs/common/src/lib/chart-helper.ts b/libs/common/src/lib/chart-helper.ts
index 697f39467..1f385e901 100644
--- a/libs/common/src/lib/chart-helper.ts
+++ b/libs/common/src/lib/chart-helper.ts
@@ -1,4 +1,13 @@
-import { Chart, TooltipPosition } from 'chart.js';
+import type { ElementRef } from '@angular/core';
+import type {
+ Chart,
+ ChartType,
+ ControllerDatasetOptions,
+ Plugin,
+ Point,
+ TooltipOptions,
+ TooltipPosition
+} from 'chart.js';
import { format } from 'date-fns';
import {
@@ -15,7 +24,7 @@ export function formatGroupedDate({
date,
groupBy
}: {
- date: Date;
+ date: number;
groupBy: GroupBy;
}) {
if (groupBy === 'month') {
@@ -27,47 +36,55 @@ export function formatGroupedDate({
return format(date, DATE_FORMAT);
}
-export function getTooltipOptions({
+export function getTooltipOptions({
colorScheme,
currency = '',
groupBy,
locale = getLocale(),
unit = ''
}: {
- colorScheme?: ColorScheme;
+ colorScheme: ColorScheme;
currency?: string;
groupBy?: GroupBy;
locale?: string;
unit?: string;
-} = {}) {
+}): Partial> {
return {
backgroundColor: getBackgroundColor(colorScheme),
bodyColor: `rgb(${getTextColor(colorScheme)})`,
borderWidth: 1,
borderColor: `rgba(${getTextColor(colorScheme)}, 0.1)`,
+ // @ts-expect-error: no need to set all attributes in callbacks
callbacks: {
label: (context) => {
- let label = context.dataset.label || '';
+ let label = (context.dataset as ControllerDatasetOptions).label ?? '';
+
if (label) {
label += ': ';
}
- if (context.parsed.y !== null) {
+
+ const yPoint = (context.parsed as Point).y;
+
+ if (yPoint !== null) {
if (currency) {
- label += `${context.parsed.y.toLocaleString(locale, {
+ label += `${yPoint.toLocaleString(locale, {
maximumFractionDigits: 2,
minimumFractionDigits: 2
})} ${currency}`;
} else if (unit) {
- label += `${context.parsed.y.toFixed(2)} ${unit}`;
+ label += `${yPoint.toFixed(2)} ${unit}`;
} else {
- label += context.parsed.y.toFixed(2);
+ label += yPoint.toFixed(2);
}
}
+
return label;
},
title: (contexts) => {
- if (groupBy) {
- return formatGroupedDate({ groupBy, date: contexts[0].parsed.x });
+ const xPoint = (contexts[0].parsed as Point).x;
+
+ if (groupBy && xPoint !== null) {
+ return formatGroupedDate({ groupBy, date: xPoint });
}
return contexts[0].label;
@@ -92,16 +109,17 @@ export function getTooltipPositionerMapTop(
if (!position || !chart?.chartArea) {
return false;
}
+
return {
x: position.x,
y: chart.chartArea.top
};
}
-export function getVerticalHoverLinePlugin(
- chartCanvas,
- colorScheme?: ColorScheme
-) {
+export function getVerticalHoverLinePlugin(
+ chartCanvas: ElementRef,
+ colorScheme: ColorScheme
+): Plugin {
return {
afterDatasetsDraw: (chart, _, options) => {
const active = chart.getActiveElements();
@@ -110,8 +128,8 @@ export function getVerticalHoverLinePlugin(
return;
}
- const color = options.color || `rgb(${getTextColor(colorScheme)})`;
- const width = options.width || 1;
+ const color = options.color ?? `rgb(${getTextColor(colorScheme)})`;
+ const width = options.width ?? 1;
const {
chartArea: { bottom, top }
@@ -119,13 +137,16 @@ export function getVerticalHoverLinePlugin(
const xValue = active[0].element.x;
const context = chartCanvas.nativeElement.getContext('2d');
- context.lineWidth = width;
- context.strokeStyle = color;
- context.beginPath();
- context.moveTo(xValue, top);
- context.lineTo(xValue, bottom);
- context.stroke();
+ if (context) {
+ context.lineWidth = width;
+ context.strokeStyle = color;
+
+ context.beginPath();
+ context.moveTo(xValue, top);
+ context.lineTo(xValue, bottom);
+ context.stroke();
+ }
},
id: 'verticalHoverLine'
};
diff --git a/libs/common/src/lib/class-transformer.ts b/libs/common/src/lib/class-transformer.ts
index 328e2bf9e..60e0eab60 100644
--- a/libs/common/src/lib/class-transformer.ts
+++ b/libs/common/src/lib/class-transformer.ts
@@ -16,7 +16,7 @@ export function transformToMapOfBig({
return mapOfBig;
}
-export function transformToBig({ value }: { value: string }): Big {
+export function transformToBig({ value }: { value: string }): Big | null {
if (value === null) {
return null;
}
diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts
index 169ab80c1..42e1f6b63 100644
--- a/libs/common/src/lib/config.ts
+++ b/libs/common/src/lib/config.ts
@@ -46,11 +46,19 @@ export const ASSET_CLASS_MAPPING = new Map([
AssetSubClass.STOCK
]
],
- [AssetClass.FIXED_INCOME, [AssetSubClass.BOND]],
+ [AssetClass.FIXED_INCOME, [AssetSubClass.BOND, AssetSubClass.LOAN]],
[AssetClass.LIQUIDITY, [AssetSubClass.CRYPTOCURRENCY]],
[AssetClass.REAL_ESTATE, []]
]);
+export const BULL_BOARD_COOKIE_NAME = 'bull_board_token';
+
+/**
+ * WARNING: This route is mirrored in `apps/client/proxy.conf.json`.
+ * If you update this value, you must also update the proxy configuration.
+ */
+export const BULL_BOARD_ROUTE = '/admin/queues';
+
export const CACHE_TTL_NO_CACHE = 1;
export const CACHE_TTL_INFINITE = 0;
@@ -67,6 +75,8 @@ export const PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_HIGH = 1;
export const PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE_PRIORITY_LOW =
Number.MAX_SAFE_INTEGER;
+export const STATISTICS_GATHERING_QUEUE = 'STATISTICS_GATHERING_QUEUE';
+
export const DEFAULT_CURRENCY = 'USD';
export const DEFAULT_DATE_FORMAT_MONTH_YEAR = 'MMM yyyy';
export const DEFAULT_HOST = '0.0.0.0';
@@ -78,6 +88,63 @@ export const DEFAULT_PROCESSOR_GATHER_HISTORICAL_MARKET_DATA_CONCURRENCY = 1;
export const DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY = 1;
export const DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_TIMEOUT = 30000;
+export const DEFAULT_REDACTED_PATHS = [
+ 'accounts[*].balance',
+ 'accounts[*].balanceInBaseCurrency',
+ 'accounts[*].comment',
+ 'accounts[*].dividendInBaseCurrency',
+ 'accounts[*].interestInBaseCurrency',
+ 'accounts[*].value',
+ 'accounts[*].valueInBaseCurrency',
+ 'activities[*].account.balance',
+ 'activities[*].account.comment',
+ 'activities[*].comment',
+ 'activities[*].fee',
+ 'activities[*].feeInAssetProfileCurrency',
+ 'activities[*].feeInBaseCurrency',
+ 'activities[*].quantity',
+ 'activities[*].SymbolProfile.symbolMapping',
+ 'activities[*].SymbolProfile.watchedByCount',
+ 'activities[*].value',
+ 'activities[*].valueInBaseCurrency',
+ 'balance',
+ 'balanceInBaseCurrency',
+ 'balances[*].account.balance',
+ 'balances[*].account.comment',
+ 'balances[*].value',
+ 'balances[*].valueInBaseCurrency',
+ 'comment',
+ 'dividendInBaseCurrency',
+ 'feeInBaseCurrency',
+ 'grossPerformance',
+ 'grossPerformanceWithCurrencyEffect',
+ 'historicalData[*].quantity',
+ 'holdings[*].dividend',
+ 'holdings[*].grossPerformance',
+ 'holdings[*].grossPerformanceWithCurrencyEffect',
+ 'holdings[*].holdings[*].valueInBaseCurrency',
+ 'holdings[*].investment',
+ 'holdings[*].netPerformance',
+ 'holdings[*].netPerformanceWithCurrencyEffect',
+ 'holdings[*].quantity',
+ 'holdings[*].valueInBaseCurrency',
+ 'interestInBaseCurrency',
+ 'investmentInBaseCurrencyWithCurrencyEffect',
+ 'netPerformance',
+ 'netPerformanceWithCurrencyEffect',
+ 'platforms[*].balance',
+ 'platforms[*].valueInBaseCurrency',
+ 'quantity',
+ 'SymbolProfile.symbolMapping',
+ 'SymbolProfile.watchedByCount',
+ 'totalBalanceInBaseCurrency',
+ 'totalDividendInBaseCurrency',
+ 'totalInterestInBaseCurrency',
+ 'totalValueInBaseCurrency',
+ 'value',
+ 'valueInBaseCurrency'
+];
+
// USX is handled separately
export const DERIVED_CURRENCIES = [
{
@@ -118,6 +185,27 @@ export const GATHER_HISTORICAL_MARKET_DATA_PROCESS_JOB_OPTIONS: JobOptions = {
removeOnComplete: true
};
+export const GATHER_STATISTICS_PROCESS_JOB_OPTIONS: JobOptions = {
+ attempts: 5,
+ backoff: {
+ delay: ms('1 minute'),
+ type: 'exponential'
+ },
+ removeOnComplete: true
+};
+
+export const GATHER_STATISTICS_DOCKER_HUB_PULLS_PROCESS_JOB_NAME =
+ 'GATHER_STATISTICS_DOCKER_HUB_PULLS';
+
+export const GATHER_STATISTICS_GITHUB_CONTRIBUTORS_PROCESS_JOB_NAME =
+ 'GATHER_STATISTICS_GITHUB_CONTRIBUTORS';
+
+export const GATHER_STATISTICS_GITHUB_STARGAZERS_PROCESS_JOB_NAME =
+ 'GATHER_STATISTICS_GITHUB_STARGAZERS';
+
+export const GATHER_STATISTICS_UPTIME_PROCESS_JOB_NAME =
+ 'GATHER_STATISTICS_UPTIME';
+
export const INVESTMENT_ACTIVITY_TYPES = [
Type.BUY,
Type.DIVIDEND,
@@ -144,9 +232,13 @@ export const PROPERTY_API_KEY_GHOSTFOLIO = 'API_KEY_GHOSTFOLIO';
export const PROPERTY_API_KEY_OPENROUTER = 'API_KEY_OPENROUTER';
export const PROPERTY_BENCHMARKS = 'BENCHMARKS';
export const PROPERTY_BETTER_UPTIME_MONITOR_ID = 'BETTER_UPTIME_MONITOR_ID';
+export const PROPERTY_DOCKER_HUB_PULLS = 'DOCKER_HUB_PULLS';
+export const PROPERTY_GITHUB_CONTRIBUTORS = 'GITHUB_CONTRIBUTORS';
+export const PROPERTY_GITHUB_STARGAZERS = 'GITHUB_STARGAZERS';
export const PROPERTY_COUNTRIES_OF_SUBSCRIBERS = 'COUNTRIES_OF_SUBSCRIBERS';
export const PROPERTY_COUPONS = 'COUPONS';
export const PROPERTY_CURRENCIES = 'CURRENCIES';
+export const PROPERTY_CUSTOM_CRYPTOCURRENCIES = 'CUSTOM_CRYPTOCURRENCIES';
export const PROPERTY_DATA_SOURCE_MAPPING = 'DATA_SOURCE_MAPPING';
export const PROPERTY_DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS =
'DATA_SOURCES_GHOSTFOLIO_DATA_PROVIDER_MAX_REQUESTS';
@@ -159,6 +251,7 @@ export const PROPERTY_OPENROUTER_MODEL = 'OPENROUTER_MODEL';
export const PROPERTY_SLACK_COMMUNITY_USERS = 'SLACK_COMMUNITY_USERS';
export const PROPERTY_STRIPE_CONFIG = 'STRIPE_CONFIG';
export const PROPERTY_SYSTEM_MESSAGE = 'SYSTEM_MESSAGE';
+export const PROPERTY_UPTIME = 'UPTIME';
export const QUEUE_JOB_STATUS_LIST = [
'active',
@@ -193,6 +286,7 @@ export const SUPPORTED_LANGUAGE_CODES = [
'es',
'fr',
'it',
+ 'ko',
'nl',
'pl',
'pt',
diff --git a/libs/common/src/lib/dtos/create-asset-profile.dto.ts b/libs/common/src/lib/dtos/create-asset-profile.dto.ts
index 80d45ba42..85ad73cc0 100644
--- a/libs/common/src/lib/dtos/create-asset-profile.dto.ts
+++ b/libs/common/src/lib/dtos/create-asset-profile.dto.ts
@@ -5,7 +5,6 @@ import {
IsArray,
IsBoolean,
IsEnum,
- IsObject,
IsOptional,
IsString,
IsUrl
@@ -66,10 +65,6 @@ export class CreateAssetProfileDto {
@IsString()
name?: string;
- @IsObject()
- @IsOptional()
- scraperConfiguration?: Prisma.InputJsonObject;
-
@IsArray()
@IsOptional()
sectors?: Prisma.InputJsonArray;
@@ -77,12 +72,6 @@ export class CreateAssetProfileDto {
@IsString()
symbol: string;
- @IsObject()
- @IsOptional()
- symbolMapping?: {
- [dataProvider: string]: string;
- };
-
@IsOptional()
@IsUrl({
protocols: ['https'],
diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts
index 25779cf39..a339c6dab 100644
--- a/libs/common/src/lib/helper.spec.ts
+++ b/libs/common/src/lib/helper.spec.ts
@@ -25,7 +25,7 @@ describe('Helper', () => {
it('Get decimal number with group (dot notation)', () => {
expect(
- extractNumberFromString({ locale: 'de-CH', value: '99’999.99' })
+ extractNumberFromString({ locale: 'de-CH', value: `99'999.99` })
).toEqual(99999.99);
});
@@ -54,12 +54,12 @@ describe('Helper', () => {
});
it('Get de-CH number format group', () => {
- expect(getNumberFormatGroup('de-CH')).toEqual('’');
+ expect(getNumberFormatGroup('de-CH')).toEqual(`'`);
});
it('Get de-CH number format group when it is default', () => {
languageGetter.mockReturnValue('de-CH');
- expect(getNumberFormatGroup()).toEqual('’');
+ expect(getNumberFormatGroup()).toEqual(`'`);
});
it('Get de-DE number format group', () => {
diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts
index 7452b604c..4db1fcf2d 100644
--- a/libs/common/src/lib/helper.ts
+++ b/libs/common/src/lib/helper.ts
@@ -11,7 +11,21 @@ import {
parseISO,
subDays
} from 'date-fns';
-import { ca, de, es, fr, it, nl, pl, pt, tr, uk, zhCN } from 'date-fns/locale';
+import {
+ ca,
+ de,
+ es,
+ fr,
+ it,
+ ko,
+ nl,
+ pl,
+ pt,
+ tr,
+ uk,
+ zhCN
+} from 'date-fns/locale';
+import { get, isNil, isString } from 'lodash';
import {
DEFAULT_CURRENCY,
@@ -130,7 +144,7 @@ export function extractNumberFromString({
}: {
locale?: string;
value: string;
-}): number {
+}): number | undefined {
try {
// Remove non-numeric characters (excluding international formatting characters)
const numericValue = value.replace(/[^\d.,'’\s]/g, '');
@@ -184,6 +198,8 @@ export function getDateFnsLocale(aLanguageCode: string) {
return fr;
} else if (aLanguageCode === 'it') {
return it;
+ } else if (aLanguageCode === 'ko') {
+ return ko;
} else if (aLanguageCode === 'nl') {
return nl;
} else if (aLanguageCode === 'pl') {
@@ -207,8 +223,8 @@ export function getDateFormatString(aLocale?: string) {
);
return formatObject
- .map((object) => {
- switch (object.type) {
+ .map(({ type, value }) => {
+ switch (type) {
case 'day':
return 'dd';
case 'month':
@@ -216,7 +232,7 @@ export function getDateFormatString(aLocale?: string) {
case 'year':
return 'yyyy';
default:
- return object.value;
+ return value;
}
})
.join('');
@@ -242,12 +258,22 @@ export function getLocale() {
return navigator.language ?? locale;
}
+export function getLowercase(object: object, path: string) {
+ const value = get(object, path);
+
+ if (isNil(value)) {
+ return '';
+ }
+
+ return isString(value) ? value.toLocaleLowerCase() : value;
+}
+
export function getNumberFormatDecimal(aLocale?: string) {
const formatObject = new Intl.NumberFormat(aLocale).formatToParts(9999.99);
- return formatObject.find((object) => {
- return object.type === 'decimal';
- }).value;
+ return formatObject.find(({ type }) => {
+ return type === 'decimal';
+ })?.value;
}
export function getNumberFormatGroup(aLocale = getLocale()) {
@@ -255,9 +281,9 @@ export function getNumberFormatGroup(aLocale = getLocale()) {
useGrouping: true
}).formatToParts(9999.99);
- return formatObject.find((object) => {
- return object.type === 'group';
- }).value;
+ return formatObject.find(({ type }) => {
+ return type === 'group';
+ })?.value;
}
export function getStartOfUtcDate(aDate: Date) {
@@ -368,7 +394,7 @@ export function isRootCurrency(aCurrency: string) {
});
}
-export function parseDate(date: string): Date {
+export function parseDate(date: string): Date | undefined {
if (!date) {
return undefined;
}
diff --git a/libs/common/src/lib/interfaces/activities.interface.ts b/libs/common/src/lib/interfaces/activities.interface.ts
index 8c88cc2cf..b9e64984b 100644
--- a/libs/common/src/lib/interfaces/activities.interface.ts
+++ b/libs/common/src/lib/interfaces/activities.interface.ts
@@ -8,7 +8,7 @@ export interface Activity extends Order {
error?: ActivityError;
feeInAssetProfileCurrency: number;
feeInBaseCurrency: number;
- SymbolProfile?: EnhancedSymbolProfile;
+ SymbolProfile: EnhancedSymbolProfile;
tagIds?: string[];
tags?: Tag[];
unitPriceInAssetProfileCurrency: number;
diff --git a/libs/common/src/lib/interfaces/admin-data.interface.ts b/libs/common/src/lib/interfaces/admin-data.interface.ts
index 23821a86b..dd25b516d 100644
--- a/libs/common/src/lib/interfaces/admin-data.interface.ts
+++ b/libs/common/src/lib/interfaces/admin-data.interface.ts
@@ -1,12 +1,12 @@
import { DataProviderInfo } from './data-provider-info.interface';
export interface AdminData {
+ activitiesCount: number;
dataProviders: (DataProviderInfo & {
assetProfileCount: number;
useForExchangeRates: boolean;
})[];
settings: { [key: string]: boolean | object | string | string[] };
- transactionCount: number;
userCount: number;
version: string;
}
diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts
index 13baf723c..396ce7f47 100644
--- a/libs/common/src/lib/interfaces/index.ts
+++ b/libs/common/src/lib/interfaces/index.ts
@@ -34,7 +34,6 @@ import type { PortfolioPerformance } from './portfolio-performance.interface';
import type { PortfolioPosition } from './portfolio-position.interface';
import type { PortfolioReportRule } from './portfolio-report-rule.interface';
import type { PortfolioSummary } from './portfolio-summary.interface';
-import type { Position } from './position.interface';
import type { Product } from './product';
import type { AccessTokenResponse } from './responses/access-token-response.interface';
import type { AccountBalancesResponse } from './responses/account-balances-response.interface';
@@ -174,7 +173,6 @@ export {
PortfolioReportResponse,
PortfolioReportRule,
PortfolioSummary,
- Position,
Product,
PublicKeyCredentialCreationOptionsJSON,
PublicKeyCredentialRequestOptionsJSON,
diff --git a/libs/common/src/lib/interfaces/info-item.interface.ts b/libs/common/src/lib/interfaces/info-item.interface.ts
index 119a94a7c..01897c066 100644
--- a/libs/common/src/lib/interfaces/info-item.interface.ts
+++ b/libs/common/src/lib/interfaces/info-item.interface.ts
@@ -1,4 +1,4 @@
-import { Platform, SymbolProfile } from '@prisma/client';
+import { SymbolProfile } from '@prisma/client';
import { Statistics } from './statistics.interface';
import { SubscriptionOffer } from './subscription-offer.interface';
@@ -13,10 +13,6 @@ export interface InfoItem {
globalPermissions: string[];
isDataGatheringEnabled?: string;
isReadOnlyMode?: boolean;
-
- /** @deprecated */
- platforms: Platform[];
-
statistics: Statistics;
subscriptionOffer?: SubscriptionOffer;
}
diff --git a/libs/common/src/lib/interfaces/lookup-item.interface.ts b/libs/common/src/lib/interfaces/lookup-item.interface.ts
index fa91ed690..6cedeca09 100644
--- a/libs/common/src/lib/interfaces/lookup-item.interface.ts
+++ b/libs/common/src/lib/interfaces/lookup-item.interface.ts
@@ -7,7 +7,7 @@ export interface LookupItem {
assetSubClass: AssetSubClass;
currency: string;
dataProviderInfo: DataProviderInfo;
- dataSource: DataSource;
+ dataSource: DataSource | null;
name: string;
symbol: string;
}
diff --git a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts
index c0c3802d8..0698004d5 100644
--- a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts
+++ b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts
@@ -7,4 +7,5 @@ export interface PortfolioPerformance {
netPerformancePercentageWithCurrencyEffect: number;
netPerformanceWithCurrencyEffect: number;
totalInvestment: number;
+ totalInvestmentValueWithCurrencyEffect: number;
}
diff --git a/libs/common/src/lib/interfaces/portfolio-position.interface.ts b/libs/common/src/lib/interfaces/portfolio-position.interface.ts
index e277ba468..c4ef2e3dc 100644
--- a/libs/common/src/lib/interfaces/portfolio-position.interface.ts
+++ b/libs/common/src/lib/interfaces/portfolio-position.interface.ts
@@ -3,18 +3,52 @@ import { Market, MarketAdvanced } from '@ghostfolio/common/types';
import { AssetClass, AssetSubClass, DataSource, Tag } from '@prisma/client';
import { Country } from './country.interface';
+import { EnhancedSymbolProfile } from './enhanced-symbol-profile.interface';
import { Holding } from './holding.interface';
import { Sector } from './sector.interface';
export interface PortfolioPosition {
+ activitiesCount: number;
allocationInPercentage: number;
+
+ /** @deprecated */
assetClass?: AssetClass;
+
+ /** @deprecated */
assetClassLabel?: string;
+
+ assetProfile: Pick<
+ EnhancedSymbolProfile,
+ | 'assetClass'
+ | 'assetSubClass'
+ | 'countries'
+ | 'currency'
+ | 'dataSource'
+ | 'holdings'
+ | 'name'
+ | 'sectors'
+ | 'symbol'
+ | 'url'
+ > & {
+ assetClassLabel?: string;
+ assetSubClassLabel?: string;
+ };
+
+ /** @deprecated */
assetSubClass?: AssetSubClass;
+
+ /** @deprecated */
assetSubClassLabel?: string;
+
+ /** @deprecated */
countries: Country[];
+
+ /** @deprecated */
currency: string;
+
+ /** @deprecated */
dataSource: DataSource;
+
dateOfFirstActivity: Date;
dividend: number;
exchange?: string;
@@ -22,25 +56,38 @@ export interface PortfolioPosition {
grossPerformancePercent: number;
grossPerformancePercentWithCurrencyEffect: number;
grossPerformanceWithCurrencyEffect: number;
+
+ /** @deprecated */
holdings: Holding[];
+
investment: number;
marketChange?: number;
marketChangePercent?: number;
marketPrice: number;
markets?: { [key in Market]: number };
marketsAdvanced?: { [key in MarketAdvanced]: number };
+
+ /** @deprecated */
name: string;
+
netPerformance: number;
netPerformancePercent: number;
netPerformancePercentWithCurrencyEffect: number;
netPerformanceWithCurrencyEffect: number;
quantity: number;
+
+ /** @deprecated */
sectors: Sector[];
+
+ /** @deprecated */
symbol: string;
+
tags?: Tag[];
- transactionCount: number;
type?: string;
+
+ /** @deprecated */
url?: string;
+
valueInBaseCurrency?: number;
valueInPercentage?: number;
}
diff --git a/libs/common/src/lib/interfaces/portfolio-summary.interface.ts b/libs/common/src/lib/interfaces/portfolio-summary.interface.ts
index ccf94dcf7..8db6b39bb 100644
--- a/libs/common/src/lib/interfaces/portfolio-summary.interface.ts
+++ b/libs/common/src/lib/interfaces/portfolio-summary.interface.ts
@@ -6,7 +6,6 @@ export interface PortfolioSummary extends PortfolioPerformance {
annualizedPerformancePercent: number;
annualizedPerformancePercentWithCurrencyEffect: number;
cash: number;
- committedFunds: number;
dateOfFirstActivity: Date;
dividendInBaseCurrency: number;
emergencyFund: {
diff --git a/libs/common/src/lib/interfaces/position.interface.ts b/libs/common/src/lib/interfaces/position.interface.ts
deleted file mode 100644
index d1f74380b..000000000
--- a/libs/common/src/lib/interfaces/position.interface.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { MarketState } from '@ghostfolio/common/types';
-
-import { AssetClass, AssetSubClass, DataSource } from '@prisma/client';
-
-export interface Position {
- assetClass: AssetClass;
- assetSubClass: AssetSubClass;
- averagePrice: number;
- currency: string;
- dataSource: DataSource;
- firstBuyDate: string;
- grossPerformance?: number;
- grossPerformancePercentage?: number;
- investment: number;
- investmentInOriginalCurrency?: number;
- marketPrice?: number;
- marketState?: MarketState;
- name?: string;
- netPerformance?: number;
- netPerformancePercentage?: number;
- netPerformancePercentageWithCurrencyEffect?: number;
- netPerformanceWithCurrencyEffect?: number;
- quantity: number;
- symbol: string;
- transactionCount: number;
- url?: string;
-}
diff --git a/libs/common/src/lib/interfaces/responses/accounts-response.interface.ts b/libs/common/src/lib/interfaces/responses/accounts-response.interface.ts
index 0a6af978f..90f1303e0 100644
--- a/libs/common/src/lib/interfaces/responses/accounts-response.interface.ts
+++ b/libs/common/src/lib/interfaces/responses/accounts-response.interface.ts
@@ -2,9 +2,9 @@ import { AccountWithValue } from '@ghostfolio/common/types';
export interface AccountsResponse {
accounts: AccountWithValue[];
+ activitiesCount: number;
totalBalanceInBaseCurrency: number;
totalDividendInBaseCurrency: number;
totalInterestInBaseCurrency: number;
totalValueInBaseCurrency: number;
- transactionCount: number;
}
diff --git a/libs/common/src/lib/interfaces/responses/create-stripe-checkout-session-response.interface.ts b/libs/common/src/lib/interfaces/responses/create-stripe-checkout-session-response.interface.ts
index 1222ac6e9..8ac1a8279 100644
--- a/libs/common/src/lib/interfaces/responses/create-stripe-checkout-session-response.interface.ts
+++ b/libs/common/src/lib/interfaces/responses/create-stripe-checkout-session-response.interface.ts
@@ -1,6 +1,3 @@
export interface CreateStripeCheckoutSessionResponse {
- /** @deprecated */
- sessionId: string;
-
sessionUrl: string;
}
diff --git a/libs/common/src/lib/interfaces/responses/export-response.interface.ts b/libs/common/src/lib/interfaces/responses/export-response.interface.ts
index 8b1697ca4..fa592faf2 100644
--- a/libs/common/src/lib/interfaces/responses/export-response.interface.ts
+++ b/libs/common/src/lib/interfaces/responses/export-response.interface.ts
@@ -27,7 +27,12 @@ export interface ExportResponse {
> & { dataSource: DataSource; date: string; symbol: string })[];
assetProfiles: (Omit<
SymbolProfile,
- 'createdAt' | 'id' | 'updatedAt' | 'userId'
+ | 'createdAt'
+ | 'id'
+ | 'scraperConfiguration'
+ | 'symbolMapping'
+ | 'updatedAt'
+ | 'userId'
> & {
marketData: MarketData[];
})[];
diff --git a/libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts b/libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts
index 31f027ee9..76bc7dc02 100644
--- a/libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts
+++ b/libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts
@@ -1,5 +1,4 @@
import {
- Activity,
Benchmark,
DataProviderInfo,
EnhancedSymbolProfile,
@@ -9,15 +8,14 @@ import {
import { Tag } from '@prisma/client';
export interface PortfolioHoldingResponse {
- activities: Activity[];
activitiesCount: number;
averagePrice: number;
dataProviderInfo: DataProviderInfo;
+ dateOfFirstActivity: string;
dividendInBaseCurrency: number;
dividendYieldPercent: number;
dividendYieldPercentWithCurrencyEffect: number;
feeInBaseCurrency: number;
- firstBuyDate: string;
grossPerformance: number;
grossPerformancePercent: number;
grossPerformancePercentWithCurrencyEffect: number;
diff --git a/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts b/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts
index cb06800be..eae14cec6 100644
--- a/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts
+++ b/libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts
@@ -14,16 +14,31 @@ export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 {
[symbol: string]: Pick<
PortfolioPosition,
| 'allocationInPercentage'
+
+ /** @deprecated */
| 'assetClass'
+ | 'assetProfile'
+
+ /** @deprecated */
| 'countries'
| 'currency'
+
+ /** @deprecated */
| 'dataSource'
| 'dateOfFirstActivity'
| 'markets'
+
+ /** @deprecated */
| 'name'
| 'netPerformancePercentWithCurrencyEffect'
+
+ /** @deprecated */
| 'sectors'
+
+ /** @deprecated */
| 'symbol'
+
+ /** @deprecated */
| 'url'
| 'valueInBaseCurrency'
| 'valueInPercentage'
@@ -39,7 +54,7 @@ export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 {
})[];
markets: {
[key in Market]: Pick<
- PortfolioDetails['markets'][key],
+ NonNullable[key],
'id' | 'valueInPercentage'
>;
};
diff --git a/libs/common/src/lib/interfaces/statistics.interface.ts b/libs/common/src/lib/interfaces/statistics.interface.ts
index 2852d34ab..670cdaf4c 100644
--- a/libs/common/src/lib/interfaces/statistics.interface.ts
+++ b/libs/common/src/lib/interfaces/statistics.interface.ts
@@ -5,6 +5,6 @@ export interface Statistics {
gitHubContributors: number;
gitHubStargazers: number;
newUsers30d: number;
- slackCommunityUsers: string;
+ slackCommunityUsers: number;
uptime: number;
}
diff --git a/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts b/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts
index bdef3e169..60a76d468 100644
--- a/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts
+++ b/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts
@@ -9,7 +9,7 @@ export interface XRayRulesSettings {
EconomicMarketClusterRiskDevelopedMarkets?: RuleSettings;
EconomicMarketClusterRiskEmergingMarkets?: RuleSettings;
EmergencyFundSetup?: RuleSettings;
- FeeRatioInitialInvestment?: RuleSettings;
+ FeeRatioTotalInvestmentVolume?: RuleSettings;
RegionalMarketClusterRiskAsiaPacific?: RuleSettings;
RegionalMarketClusterRiskEmergingMarkets?: RuleSettings;
RegionalMarketClusterRiskEurope?: RuleSettings;
diff --git a/libs/common/src/lib/models/timeline-position.ts b/libs/common/src/lib/models/timeline-position.ts
index f683c0951..13f9001d5 100644
--- a/libs/common/src/lib/models/timeline-position.ts
+++ b/libs/common/src/lib/models/timeline-position.ts
@@ -9,12 +9,15 @@ import { Big } from 'big.js';
import { Transform, Type } from 'class-transformer';
export class TimelinePosition {
+ activitiesCount: number;
+
@Transform(transformToBig, { toClassOnly: true })
@Type(() => Big)
averagePrice: Big;
currency: string;
dataSource: DataSource;
+ dateOfFirstActivity: string;
@Transform(transformToBig, { toClassOnly: true })
@Type(() => Big)
@@ -32,8 +35,6 @@ export class TimelinePosition {
@Type(() => Big)
feeInBaseCurrency: Big;
- firstBuyDate: string;
-
@Transform(transformToBig, { toClassOnly: true })
@Type(() => Big)
grossPerformance: Big;
@@ -50,6 +51,8 @@ export class TimelinePosition {
@Type(() => Big)
grossPerformanceWithCurrencyEffect: Big;
+ includeInTotalAssetValue?: boolean;
+
@Transform(transformToBig, { toClassOnly: true })
@Type(() => Big)
investment: Big;
@@ -90,8 +93,6 @@ export class TimelinePosition {
@Type(() => Big)
timeWeightedInvestmentWithCurrencyEffect: Big;
- transactionCount: number;
-
@Transform(transformToBig, { toClassOnly: true })
@Type(() => Big)
valueInBaseCurrency: Big;
diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts
index cb4eb175b..f9cb19562 100644
--- a/libs/common/src/lib/permissions.ts
+++ b/libs/common/src/lib/permissions.ts
@@ -4,15 +4,16 @@ import { Role } from '@prisma/client';
export const permissions = {
accessAdminControl: 'accessAdminControl',
+ accessAdminControlBullBoard: 'accessAdminControlBullBoard',
accessAssistant: 'accessAssistant',
accessHoldingsChart: 'accessHoldingsChart',
createAccess: 'createAccess',
createAccount: 'createAccount',
createAccountBalance: 'createAccountBalance',
+ createActivity: 'createActivity',
createApiKey: 'createApiKey',
createMarketData: 'createMarketData',
createMarketDataOfOwnAssetProfile: 'createMarketDataOfOwnAssetProfile',
- createOrder: 'createOrder',
createOwnTag: 'createOwnTag',
createPlatform: 'createPlatform',
createTag: 'createTag',
@@ -21,8 +22,8 @@ export const permissions = {
deleteAccess: 'deleteAccess',
deleteAccount: 'deleteAccount',
deleteAccountBalance: 'deleteAccountBalance',
+ deleteActivity: 'deleteActivity',
deleteAuthDevice: 'deleteAuthDevice',
- deleteOrder: 'deleteOrder',
deleteOwnUser: 'deleteOwnUser',
deletePlatform: 'deletePlatform',
deleteTag: 'deleteTag',
@@ -53,10 +54,10 @@ export const permissions = {
toggleReadOnlyMode: 'toggleReadOnlyMode',
updateAccount: 'updateAccount',
updateAccess: 'updateAccess',
+ updateActivity: 'updateActivity',
updateAuthDevice: 'updateAuthDevice',
updateMarketData: 'updateMarketData',
updateMarketDataOfOwnAssetProfile: 'updateMarketDataOfOwnAssetProfile',
- updateOrder: 'updateOrder',
updateOwnAccessToken: 'updateOwnAccessToken',
updatePlatform: 'updatePlatform',
updateTag: 'updateTag',
@@ -74,19 +75,19 @@ export function getPermissions(aRole: Role): string[] {
permissions.createAccess,
permissions.createAccount,
permissions.createAccountBalance,
+ permissions.createActivity,
permissions.createWatchlistItem,
permissions.deleteAccountBalance,
permissions.deleteWatchlistItem,
permissions.createMarketData,
permissions.createMarketDataOfOwnAssetProfile,
- permissions.createOrder,
permissions.createOwnTag,
permissions.createPlatform,
permissions.createTag,
permissions.deleteAccess,
permissions.deleteAccount,
+ permissions.deleteActivity,
permissions.deleteAuthDevice,
- permissions.deleteOrder,
permissions.deletePlatform,
permissions.deleteTag,
permissions.deleteUser,
@@ -99,10 +100,10 @@ export function getPermissions(aRole: Role): string[] {
permissions.readWatchlist,
permissions.updateAccount,
permissions.updateAccess,
+ permissions.updateActivity,
permissions.updateAuthDevice,
permissions.updateMarketData,
permissions.updateMarketDataOfOwnAssetProfile,
- permissions.updateOrder,
permissions.updatePlatform,
permissions.updateTag,
permissions.updateUserSettings,
@@ -125,15 +126,15 @@ export function getPermissions(aRole: Role): string[] {
permissions.createAccess,
permissions.createAccount,
permissions.createAccountBalance,
+ permissions.createActivity,
permissions.createMarketDataOfOwnAssetProfile,
- permissions.createOrder,
permissions.createOwnTag,
permissions.createWatchlistItem,
permissions.deleteAccess,
permissions.deleteAccount,
permissions.deleteAccountBalance,
+ permissions.deleteActivity,
permissions.deleteAuthDevice,
- permissions.deleteOrder,
permissions.deleteWatchlistItem,
permissions.readAiPrompt,
permissions.readMarketDataOfOwnAssetProfile,
@@ -141,9 +142,9 @@ export function getPermissions(aRole: Role): string[] {
permissions.readWatchlist,
permissions.updateAccount,
permissions.updateAccess,
+ permissions.updateActivity,
permissions.updateAuthDevice,
permissions.updateMarketDataOfOwnAssetProfile,
- permissions.updateOrder,
permissions.updateUserSettings,
permissions.updateViewMode
];
@@ -194,7 +195,7 @@ export function hasReadRestrictedAccessPermission({
return false;
}
- const access = user.accessesGet?.find(({ id }) => {
+ const access = user?.accessesGet?.find(({ id }) => {
return id === impersonationId;
});
diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts
index 6d0a85fb2..063b4254c 100644
--- a/libs/common/src/lib/personal-finance-tools.ts
+++ b/libs/common/src/lib/personal-finance-tools.ts
@@ -33,6 +33,15 @@ export const personalFinanceTools: Product[] = [
origin: 'Switzerland',
slogan: 'Simplicity for Complex Wealth'
},
+ {
+ founded: 2018,
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'altruist',
+ name: 'Altruist',
+ origin: 'United States',
+ slogan: 'The wealth platform built for independent advisors'
+ },
{
founded: 2023,
hasFreePlan: false,
@@ -116,6 +125,17 @@ export const personalFinanceTools: Product[] = [
origin: 'Switzerland',
slogan: 'Schweizer Budget App für einfache & smarte Budgetplanung'
},
+ {
+ founded: 2015,
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'boldin',
+ name: 'Boldin',
+ note: 'Originally named as NewRetirement',
+ origin: 'United States',
+ pricingPerYear: '$144',
+ slogan: 'Take control with retirement planning tools that begin with you'
+ },
{
key: 'budgetpulse',
name: 'BudgetPulse',
@@ -841,6 +861,16 @@ export const personalFinanceTools: Product[] = [
pricingPerYear: '$108',
slogan: 'Build Financial Plans You Love.'
},
+ {
+ founded: 2022,
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'prostocktracker',
+ name: 'Pro Stock Tracker',
+ origin: 'United Kingdom',
+ pricingPerYear: '$60',
+ slogan: 'The stock portfolio tracker built for long-term investors'
+ },
{
founded: 2015,
hasSelfHostingAbility: false,
@@ -1014,6 +1044,16 @@ export const personalFinanceTools: Product[] = [
regions: ['Austria', 'Germany', 'Switzerland'],
slogan: 'Dein Vermögen immer im Blick'
},
+ {
+ founded: 2025,
+ hasFreePlan: false,
+ hasSelfHostingAbility: false,
+ key: 'turbobulls',
+ name: 'Turbobulls',
+ origin: 'Romania',
+ pricingPerYear: '€39.99',
+ slogan: 'Your complete financial dashboard. Actually private.'
+ },
{
hasFreePlan: true,
hasSelfHostingAbility: false,
diff --git a/libs/common/src/lib/routes/interfaces/internal-route.interface.ts b/libs/common/src/lib/routes/interfaces/internal-route.interface.ts
index 02f205979..f08cf8b5c 100644
--- a/libs/common/src/lib/routes/interfaces/internal-route.interface.ts
+++ b/libs/common/src/lib/routes/interfaces/internal-route.interface.ts
@@ -2,7 +2,7 @@ import { User } from '@ghostfolio/common/interfaces';
export interface InternalRoute {
excludeFromAssistant?: boolean | ((aUser: User) => boolean);
- path: string;
+ path?: string;
routerLink: string[];
subRoutes?: Record;
title: string;
diff --git a/libs/common/src/lib/routes/routes.ts b/libs/common/src/lib/routes/routes.ts
index 53ecd104e..2785efdde 100644
--- a/libs/common/src/lib/routes/routes.ts
+++ b/libs/common/src/lib/routes/routes.ts
@@ -15,7 +15,7 @@ if (typeof window !== 'undefined') {
};
}
-export const internalRoutes: Record = {
+export const internalRoutes = {
account: {
path: 'account',
routerLink: ['/account'],
@@ -169,9 +169,9 @@ export const internalRoutes: Record = {
},
title: $localize`Overview`
}
-};
+} satisfies Record;
-export const publicRoutes: Record = {
+export const publicRoutes = {
about: {
path: $localize`:kebab-case@@routes.about:about`,
routerLink: ['/' + $localize`:kebab-case@@routes.about:about`],
@@ -336,4 +336,4 @@ export const publicRoutes: Record = {
path: $localize`:kebab-case@@routes.start:start`,
routerLink: ['/' + $localize`:kebab-case@@routes.start:start`]
}
-};
+} satisfies Record;
diff --git a/libs/common/src/lib/types/account-with-value.type.ts b/libs/common/src/lib/types/account-with-value.type.ts
index 08af86454..23cb14749 100644
--- a/libs/common/src/lib/types/account-with-value.type.ts
+++ b/libs/common/src/lib/types/account-with-value.type.ts
@@ -1,12 +1,12 @@
import { Account as AccountModel, Platform } from '@prisma/client';
export type AccountWithValue = AccountModel & {
+ activitiesCount: number;
allocationInPercentage: number;
balanceInBaseCurrency: number;
dividendInBaseCurrency: number;
interestInBaseCurrency: number;
platform?: Platform;
- transactionCount: number;
value: number;
valueInBaseCurrency: number;
};
diff --git a/libs/common/src/lib/types/market-data-preset.type.ts b/libs/common/src/lib/types/market-data-preset.type.ts
index 0dbf914fa..2622feac3 100644
--- a/libs/common/src/lib/types/market-data-preset.type.ts
+++ b/libs/common/src/lib/types/market-data-preset.type.ts
@@ -2,4 +2,5 @@ export type MarketDataPreset =
| 'BENCHMARKS'
| 'CURRENCIES'
| 'ETF_WITHOUT_COUNTRIES'
- | 'ETF_WITHOUT_SECTORS';
+ | 'ETF_WITHOUT_SECTORS'
+ | 'NO_ACTIVITIES';
diff --git a/libs/common/src/lib/utils/form.util.ts b/libs/common/src/lib/utils/form.util.ts
index 425aa4699..6a6c32b1f 100644
--- a/libs/common/src/lib/utils/form.util.ts
+++ b/libs/common/src/lib/utils/form.util.ts
@@ -1,6 +1,17 @@
+import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';
import { FormGroup } from '@angular/forms';
import { plainToInstance } from 'class-transformer';
-import { validate } from 'class-validator';
+import { isJSON, validate } from 'class-validator';
+
+export function jsonValidator(): ValidatorFn {
+ return (control: AbstractControl): ValidationErrors | null => {
+ if (!isJSON(control.value)) {
+ return { invalidJson: true };
+ }
+
+ return null;
+ };
+}
export async function validateObjectForForm({
classDto,
@@ -29,7 +40,7 @@ export async function validateObjectForForm({
if (formControl) {
formControl.setErrors({
- validationError: Object.values(constraints)[0]
+ validationError: Object.values(constraints ?? {})[0]
});
}
@@ -37,7 +48,7 @@ export async function validateObjectForForm({
if (formControlInCustomCurrency) {
formControlInCustomCurrency.setErrors({
- validationError: Object.values(constraints)[0]
+ validationError: Object.values(constraints ?? {})[0]
});
}
}
diff --git a/libs/common/src/lib/utils/index.ts b/libs/common/src/lib/utils/index.ts
index 2bdd03fdc..371126790 100644
--- a/libs/common/src/lib/utils/index.ts
+++ b/libs/common/src/lib/utils/index.ts
@@ -1,3 +1,3 @@
-import { validateObjectForForm } from './form.util';
+import { jsonValidator, validateObjectForForm } from './form.util';
-export { validateObjectForForm };
+export { jsonValidator, validateObjectForForm };
diff --git a/libs/common/src/lib/validators/is-currency-code.ts b/libs/common/src/lib/validators/is-currency-code.ts
index 76c6f4fe2..52d99816b 100644
--- a/libs/common/src/lib/validators/is-currency-code.ts
+++ b/libs/common/src/lib/validators/is-currency-code.ts
@@ -9,7 +9,7 @@ import {
import { isISO4217CurrencyCode } from 'class-validator';
export function IsCurrencyCode(validationOptions?: ValidationOptions) {
- return function (object: Object, propertyName: string) {
+ return function (object: object, propertyName: string) {
registerDecorator({
propertyName,
constraints: [],
diff --git a/libs/common/tsconfig.json b/libs/common/tsconfig.json
index a14e0fc44..2b4603b71 100644
--- a/libs/common/tsconfig.json
+++ b/libs/common/tsconfig.json
@@ -12,6 +12,7 @@
],
"compilerOptions": {
"module": "preserve",
- "lib": ["dom", "es2022"]
+ "lib": ["dom", "es2022"],
+ "strictNullChecks": true
}
}
diff --git a/libs/ui/src/lib/account-balances/account-balances.component.html b/libs/ui/src/lib/account-balances/account-balances.component.html
index caef922ed..29037a985 100644
--- a/libs/ui/src/lib/account-balances/account-balances.component.html
+++ b/libs/ui/src/lib/account-balances/account-balances.component.html
@@ -12,7 +12,7 @@
Date
-
+
@@ -37,7 +37,7 @@
@@ -58,7 +58,7 @@
- @if (showActions) {
+ @if (showActions()) {