diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18737cd5e..bbe0c055a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## Unreleased
+
+### Changed
+
+- Moved the notification module to `@ghostfolio/ui`
+- Improved the language localization for German (`de`)
+
## 2.222.0 - 2025-12-07
### Added
diff --git a/README.md b/README.md
index 1a5cc6e95..822825b57 100644
--- a/README.md
+++ b/README.md
@@ -85,24 +85,39 @@ We provide official container images hosted on [Docker Hub](https://hub.docker.c
### Supported Environment Variables
-| Name | Type | Default Value | Description |
-| ------------------------ | --------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
-| `ACCESS_TOKEN_SALT` | `string` | | A random string used as salt for access tokens |
-| `API_KEY_COINGECKO_DEMO` | `string` (optional) | | The _CoinGecko_ Demo API key |
-| `API_KEY_COINGECKO_PRO` | `string` (optional) | | The _CoinGecko_ Pro API key |
-| `DATABASE_URL` | `string` | | The database connection URL, e.g. `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?sslmode=prefer` |
-| `HOST` | `string` (optional) | `0.0.0.0` | The host where the Ghostfolio application will run on |
-| `JWT_SECRET_KEY` | `string` | | A random string used for _JSON Web Tokens_ (JWT) |
-| `LOG_LEVELS` | `string[]` (optional) | | The logging levels for the Ghostfolio application, e.g. `["debug","error","log","warn"]` |
-| `PORT` | `number` (optional) | `3333` | The port where the Ghostfolio application will run on |
-| `POSTGRES_DB` | `string` | | The name of the _PostgreSQL_ database |
-| `POSTGRES_PASSWORD` | `string` | | The password of the _PostgreSQL_ database |
-| `POSTGRES_USER` | `string` | | The user of the _PostgreSQL_ database |
-| `REDIS_DB` | `number` (optional) | `0` | The database index of _Redis_ |
-| `REDIS_HOST` | `string` | | The host where _Redis_ is running |
-| `REDIS_PASSWORD` | `string` | | The password of _Redis_ |
-| `REDIS_PORT` | `number` | | The port where _Redis_ is running |
-| `REQUEST_TIMEOUT` | `number` (optional) | `2000` | The timeout of network requests to data providers in milliseconds |
+| Name | Type | Default Value | Description |
+| ------------------------ | --------------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
+| `ACCESS_TOKEN_SALT` | `string` | | A random string used as salt for access tokens |
+| `API_KEY_COINGECKO_DEMO` | `string` (optional) | | The _CoinGecko_ Demo API key |
+| `API_KEY_COINGECKO_PRO` | `string` (optional) | | The _CoinGecko_ Pro API key |
+| `DATABASE_URL` | `string` | | The database connection URL, e.g. `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?sslmode=prefer` |
+| `HOST` | `string` (optional) | `0.0.0.0` | The host where the Ghostfolio application will run on |
+| `JWT_SECRET_KEY` | `string` | | A random string used for _JSON Web Tokens_ (JWT) |
+| `LOG_LEVELS` | `string[]` (optional) | | The logging levels for the Ghostfolio application, e.g. `["debug","error","log","warn"]` |
+| `PORT` | `number` (optional) | `3333` | The port where the Ghostfolio application will run on |
+| `POSTGRES_DB` | `string` | | The name of the _PostgreSQL_ database |
+| `POSTGRES_PASSWORD` | `string` | | The password of the _PostgreSQL_ database |
+| `POSTGRES_USER` | `string` | | The user of the _PostgreSQL_ database |
+| `REDIS_DB` | `number` (optional) | `0` | The database index of _Redis_ |
+| `REDIS_HOST` | `string` | | The host where _Redis_ is running |
+| `REDIS_PASSWORD` | `string` | | The password of _Redis_ |
+| `REDIS_PORT` | `number` | | The port where _Redis_ is running |
+| `REQUEST_TIMEOUT` | `number` (optional) | `2000` | The timeout of network requests to data providers in milliseconds |
+| `ROOT_URL` | `string` (optional) | `http://0.0.0.0:3333` | The root URL of the Ghostfolio application, used for generating callback URLs and external links. |
+
+#### OpenID Connect OIDC (Experimental)
+
+| Name | Type | Default Value | Description |
+| -------------------------- | --------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------- |
+| `ENABLE_FEATURE_AUTH_OIDC` | `boolean` (optional) | `false` | Enables _OpenID Connect_ authentication |
+| `OIDC_AUTHORIZATION_URL` | `string` (optional) | | Manual override for the OIDC authorization endpoint (falls back to the discovery from the issuer) |
+| `OIDC_CALLBACK_URL` | `string` (optional) | `${ROOT_URL}/api/auth/oidc/callback` | The OIDC callback URL |
+| `OIDC_CLIENT_ID` | `string` | | The OIDC client ID |
+| `OIDC_CLIENT_SECRET` | `string` | | The OIDC client secret |
+| `OIDC_ISSUER` | `string` | | The OIDC issuer URL, used to discover the OIDC configuration via `/.well-known/openid-configuration` |
+| `OIDC_SCOPE` | `string[]` (optional) | `["openid"]` | The OIDC scope to request, e.g. `["email","openid","profile"]` |
+| `OIDC_TOKEN_URL` | `string` (optional) | | Manual override for the OIDC token endpoint (falls back to the discovery from the issuer) |
+| `OIDC_USER_INFO_URL` | `string` (optional) | | Manual override for the OIDC user info endpoint (falls back to the discovery from the issuer) |
### Run with Docker Compose
diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts
index de82c7d9c..12a7b0de9 100644
--- a/apps/client/src/app/app.component.ts
+++ b/apps/client/src/app/app.component.ts
@@ -3,6 +3,7 @@ import { InfoItem, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { internalRoutes, publicRoutes } from '@ghostfolio/common/routes/routes';
import { ColorScheme } from '@ghostfolio/common/types';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import {
ChangeDetectionStrategy,
@@ -35,7 +36,6 @@ import { GfFooterComponent } from './components/footer/footer.component';
import { GfHeaderComponent } from './components/header/header.component';
import { GfHoldingDetailDialogComponent } from './components/holding-detail-dialog/holding-detail-dialog.component';
import { HoldingDetailDialogParams } from './components/holding-detail-dialog/interfaces/interfaces';
-import { NotificationService } from './core/notification/notification.service';
import { DataService } from './services/data.service';
import { ImpersonationStorageService } from './services/impersonation-storage.service';
import { TokenStorageService } from './services/token-storage.service';
diff --git a/apps/client/src/app/components/access-table/access-table.component.ts b/apps/client/src/app/components/access-table/access-table.component.ts
index 1127e5629..fe2c81199 100644
--- a/apps/client/src/app/components/access-table/access-table.component.ts
+++ b/apps/client/src/app/components/access-table/access-table.component.ts
@@ -1,7 +1,7 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { Access, User } from '@ghostfolio/common/interfaces';
import { publicRoutes } from '@ghostfolio/common/routes/routes';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { Clipboard, ClipboardModule } from '@angular/cdk/clipboard';
import { CommonModule } from '@angular/common';
diff --git a/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts b/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts
index 8ed72445f..66bac76f5 100644
--- a/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts
+++ b/apps/client/src/app/components/admin-jobs/admin-jobs.component.ts
@@ -1,4 +1,3 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { AdminService } from '@ghostfolio/client/services/admin.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import {
@@ -9,6 +8,7 @@ import {
} from '@ghostfolio/common/config';
import { getDateWithTimeFormatString } from '@ghostfolio/common/helper';
import { AdminJobs, User } from '@ghostfolio/common/interfaces';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { CommonModule } from '@angular/common';
import {
diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
index 3f60cb8c5..eaad32c0e 100644
--- a/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
+++ b/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts
@@ -1,4 +1,3 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { AdminService } from '@ghostfolio/client/services/admin.service';
import { ghostfolioScraperApiSymbolPrefix } from '@ghostfolio/common/config';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
@@ -11,6 +10,7 @@ import {
AssetProfileIdentifier,
AdminMarketDataItem
} from '@ghostfolio/common/interfaces';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { Injectable } from '@angular/core';
import { EMPTY, catchError, finalize, forkJoin } from 'rxjs';
diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
index b2ef4f17b..3fe944a25 100644
--- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
+++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
@@ -1,5 +1,4 @@
import { AdminMarketDataService } from '@ghostfolio/client/components/admin-market-data/admin-market-data.service';
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
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';
@@ -24,6 +23,7 @@ import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
import { GfHistoricalMarketDataEditorComponent } from '@ghostfolio/ui/historical-market-data-editor';
import { translate } from '@ghostfolio/ui/i18n';
import { GfLineChartComponent } from '@ghostfolio/ui/line-chart';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPortfolioProportionChartComponent } from '@ghostfolio/ui/portfolio-proportion-chart';
import { GfSymbolAutocompleteComponent } from '@ghostfolio/ui/symbol-autocomplete';
import { GfValueComponent } from '@ghostfolio/ui/value';
diff --git a/apps/client/src/app/components/admin-overview/admin-overview.component.ts b/apps/client/src/app/components/admin-overview/admin-overview.component.ts
index 0b4b36d06..e4be7b062 100644
--- a/apps/client/src/app/components/admin-overview/admin-overview.component.ts
+++ b/apps/client/src/app/components/admin-overview/admin-overview.component.ts
@@ -1,4 +1,3 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { AdminService } from '@ghostfolio/client/services/admin.service';
import { CacheService } from '@ghostfolio/client/services/cache.service';
import { DataService } from '@ghostfolio/client/services/data.service';
@@ -20,6 +19,7 @@ import {
User
} from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule } from '@angular/common';
diff --git a/apps/client/src/app/components/admin-platform/admin-platform.component.ts b/apps/client/src/app/components/admin-platform/admin-platform.component.ts
index 64e7ff7cf..832a70503 100644
--- a/apps/client/src/app/components/admin-platform/admin-platform.component.ts
+++ b/apps/client/src/app/components/admin-platform/admin-platform.component.ts
@@ -1,10 +1,10 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
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 { CreatePlatformDto, UpdatePlatformDto } from '@ghostfolio/common/dtos';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import {
ChangeDetectionStrategy,
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 ec44b6e65..cabf4e589 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,7 +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 { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
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';
@@ -15,6 +14,7 @@ import {
} from '@ghostfolio/common/interfaces';
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 { GfValueComponent } from '@ghostfolio/ui/value';
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 a891baa45..305eb4628 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,8 +1,8 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
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 { NotificationService } from '@ghostfolio/ui/notifications';
import {
ChangeDetectionStrategy,
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 6c366a16c..99fbe7901 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,6 +1,5 @@
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 { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
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';
@@ -19,6 +18,7 @@ import {
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 { GfValueComponent } from '@ghostfolio/ui/value';
diff --git a/apps/client/src/app/components/header/header.component.ts b/apps/client/src/app/components/header/header.component.ts
index 80239d56f..b7bf4cb98 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 { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { DataService } from '@ghostfolio/client/services/data.service';
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import {
@@ -17,6 +16,7 @@ import { internalRoutes, publicRoutes } from '@ghostfolio/common/routes/routes';
import { DateRange } from '@ghostfolio/common/types';
import { GfAssistantComponent } from '@ghostfolio/ui/assistant/assistant.component';
import { GfLogoComponent } from '@ghostfolio/ui/logo';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { CommonModule } from '@angular/common';
diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts
index c98a26831..04c0f507c 100644
--- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts
+++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts
@@ -1,4 +1,3 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import {
getLocale,
getNumberFormatDecimal,
@@ -8,6 +7,7 @@ import {
PortfolioPerformance,
ResponseError
} from '@ghostfolio/common/interfaces';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule } from '@angular/common';
diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
index 7eab9172e..9e9bb13d3 100644
--- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
+++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts
@@ -1,8 +1,8 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { NUMERICAL_PRECISION_THRESHOLD_6_FIGURES } from '@ghostfolio/common/config';
import { getDateFnsLocale, getLocale } from '@ghostfolio/common/helper';
import { PortfolioSummary, User } from '@ghostfolio/common/interfaces';
import { translate } from '@ghostfolio/ui/i18n';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule } from '@angular/common';
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 9aa07feee..05c047dc6 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,7 +1,7 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { DataService } from '@ghostfolio/client/services/data.service';
import { CreateAccessDto, UpdateAccessDto } from '@ghostfolio/common/dtos';
import { validateObjectForForm } from '@ghostfolio/common/utils';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import {
ChangeDetectionStrategy,
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 da2e8f508..11960b8aa 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,5 +1,4 @@
import { GfAccessTableComponent } from '@ghostfolio/client/components/access-table/access-table.component';
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
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';
@@ -7,6 +6,7 @@ import { CreateAccessDto } from '@ghostfolio/common/dtos';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
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 {
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 ae9183c13..069ea4b0e 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 { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
@@ -7,6 +6,7 @@ import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
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 { CommonModule } from '@angular/common';
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 32e3d132e..e17425676 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,4 +1,3 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { DataService } from '@ghostfolio/client/services/data.service';
import {
KEY_STAY_SIGNED_IN,
@@ -12,6 +11,7 @@ import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { downloadAsFile } from '@ghostfolio/common/helper';
import { User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import {
ChangeDetectionStrategy,
diff --git a/apps/client/src/app/core/layout.service.ts b/apps/client/src/app/core/layout.service.ts
index a6fb65006..fd435acdb 100644
--- a/apps/client/src/app/core/layout.service.ts
+++ b/apps/client/src/app/core/layout.service.ts
@@ -1,9 +1,9 @@
+import { NotificationService } from '@ghostfolio/ui/notifications';
+
import { Injectable } from '@angular/core';
import { DeviceDetectorService } from 'ngx-device-detector';
import { Observable, Subject } from 'rxjs';
-import { NotificationService } from './notification/notification.service';
-
@Injectable({
providedIn: 'root'
})
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 2bb6457a5..2b496e4fb 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 { NotificationService } from '@ghostfolio/client/core/notification/notification.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';
@@ -12,6 +11,7 @@ import {
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 { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
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 720bb4974..9eba64788 100644
--- a/apps/client/src/app/pages/demo/demo-page.component.ts
+++ b/apps/client/src/app/pages/demo/demo-page.component.ts
@@ -1,7 +1,7 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
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 { Component, OnDestroy } from '@angular/core';
import { Router } from '@angular/router';
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 88958ea0d..6ed8dfd31 100644
--- a/apps/client/src/app/pages/pricing/pricing-page.component.ts
+++ b/apps/client/src/app/pages/pricing/pricing-page.component.ts
@@ -1,10 +1,10 @@
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
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 { translate } from '@ghostfolio/ui/i18n';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { CommonModule } from '@angular/common';
diff --git a/apps/client/src/assets/oss-friends.json b/apps/client/src/assets/oss-friends.json
index 8a64650fe..2d5b994d3 100644
--- a/apps/client/src/assets/oss-friends.json
+++ b/apps/client/src/assets/oss-friends.json
@@ -1,5 +1,5 @@
{
- "createdAt": "2025-11-21T00:00:00.000Z",
+ "createdAt": "2025-12-08T00:00:00.000Z",
"data": [
{
"name": "Activepieces",
@@ -76,6 +76,11 @@
"description": "Mockoon is the easiest and quickest way to design and run mock REST APIs.",
"href": "https://mockoon.com"
},
+ {
+ "name": "Onyx",
+ "description": "Onyx is the open-source AI chat connected to your docs, apps, and people.",
+ "href": "https://onyx.app"
+ },
{
"name": "OpenBB",
"description": "Democratizing investment research through an open source financial ecosystem. The OpenBB Terminal allows everyone to perform investment research, from everywhere.",
diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf
index e2740945e..2944e43fb 100644
--- a/apps/client/src/locales/messages.ca.xlf
+++ b/apps/client/src/locales/messages.ca.xlf
@@ -38,11 +38,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -607,7 +607,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -643,7 +643,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -795,7 +795,7 @@
Veure Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -803,7 +803,7 @@
Executar Procés
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -811,7 +811,7 @@
Suprimir Procés
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -1503,7 +1503,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -1531,7 +1531,7 @@
Actuar com un altre Usuari
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -1539,7 +1539,7 @@
Eliminar Usuari
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -1623,7 +1623,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -1639,7 +1639,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -1671,7 +1671,7 @@
Oooh! El testimoni de seguretat és incorrecte.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -2043,7 +2043,7 @@
Manteniu la sessió iniciada
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -2471,7 +2471,7 @@
per any
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -2487,7 +2487,7 @@
Prova Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -2495,7 +2495,7 @@
Bescanviar el cupó
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -4076,7 +4076,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -4092,7 +4092,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -5229,7 +5229,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -5301,7 +5301,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -5313,7 +5313,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -5337,7 +5337,7 @@
Clonar
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -5345,7 +5345,7 @@
Exporta l’esborrany com a ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -5929,7 +5929,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -5944,6 +5944,14 @@
33
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Comprar
@@ -6061,7 +6069,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -6209,7 +6217,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -6461,7 +6469,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6729,7 +6737,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7167,7 +7175,7 @@
API Key
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7175,7 +7183,7 @@
Generate Ghostfolio Premium Data Provider API key for self-hosted environments...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7531,7 +7539,7 @@
Generate Security Token
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7907,7 +7915,7 @@
Limited Offer!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7919,7 +7927,7 @@
Get extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8592,7 +8600,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf
index 65e71fbd8..02ef33acd 100644
--- a/apps/client/src/locales/messages.de.xlf
+++ b/apps/client/src/locales/messages.de.xlf
@@ -254,7 +254,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -290,7 +290,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -418,7 +418,7 @@
Stacktrace anzeigen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -426,7 +426,7 @@
Job löschen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -674,7 +674,7 @@
Keine automatische Erneuerung der Mitgliedschaft.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -758,11 +758,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -778,7 +778,7 @@
Ups! Falsches Sicherheits-Token.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -890,7 +890,7 @@
Eingeloggt bleiben
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -1226,7 +1226,7 @@
pro Jahr
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -1242,7 +1242,7 @@
Premium ausprobieren
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -1250,7 +1250,7 @@
Gutschein einlösen
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -2254,7 +2254,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -2266,7 +2266,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -2278,7 +2278,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -2286,7 +2286,7 @@
Kopieren
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -2294,7 +2294,7 @@
Geplante Aktivität als ICS exportieren
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -2870,7 +2870,7 @@
Authentifizierung
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -3266,7 +3266,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -3278,7 +3278,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -3466,7 +3466,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3726,7 +3726,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3746,7 +3746,7 @@
Benutzer verwenden
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -3754,7 +3754,7 @@
Benutzer löschen
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -4006,7 +4006,7 @@
Details anzeigen
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -4385,6 +4385,14 @@
73
+
+ Sign in with OpenID Connect
+ Einloggen mit OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Kauf
@@ -5468,7 +5476,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -6093,7 +6101,7 @@
Job ausführen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6485,7 +6493,7 @@
Position ansehen
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6753,7 +6761,7 @@
Rolle
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7191,7 +7199,7 @@
API-Schlüssel
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7199,7 +7207,7 @@
Ghostfolio Premium Datenanbieter API-Schlüssel für selbst gehostete Umgebungen erstellen...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7555,7 +7563,7 @@
Sicherheits-Token generieren
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7907,7 +7915,7 @@
Begrenztes Angebot!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7919,7 +7927,7 @@
Erhalte extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8592,7 +8600,7 @@
Registrierungsdatum
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf
index 2703aebb8..4314903be 100644
--- a/apps/client/src/locales/messages.es.xlf
+++ b/apps/client/src/locales/messages.es.xlf
@@ -255,7 +255,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -291,7 +291,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -419,7 +419,7 @@
Visualiza Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -427,7 +427,7 @@
Elimina el trabajo
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -659,7 +659,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -743,11 +743,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -763,7 +763,7 @@
Vaya! Token de seguridad incorrecto.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -875,7 +875,7 @@
Seguir conectado
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -1211,7 +1211,7 @@
por año
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -1227,7 +1227,7 @@
Prueba Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -1235,7 +1235,7 @@
Canjea el cupón
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -2239,7 +2239,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -2251,7 +2251,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -2263,7 +2263,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -2271,7 +2271,7 @@
Clonar
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -2279,7 +2279,7 @@
Exportar borrador como ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -2855,7 +2855,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -3251,7 +3251,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -3263,7 +3263,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -3451,7 +3451,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3703,7 +3703,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3723,7 +3723,7 @@
Suplantar usuario
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -3731,7 +3731,7 @@
Eliminar usuario
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -3983,7 +3983,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -4362,6 +4362,14 @@
73
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Comprar
@@ -5445,7 +5453,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -6070,7 +6078,7 @@
Ejecutar Tarea
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6462,7 +6470,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6730,7 +6738,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7168,7 +7176,7 @@
Clave API
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7176,7 +7184,7 @@
Genere la clave API del proveedor de datos premium de Ghostfolio para entornos autohospedados...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7532,7 +7540,7 @@
Generar token de seguridad
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7908,7 +7916,7 @@
¡Oferta limitada!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7920,7 +7928,7 @@
Obtén extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8593,7 +8601,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf
index 81da3848d..41dc3d391 100644
--- a/apps/client/src/locales/messages.fr.xlf
+++ b/apps/client/src/locales/messages.fr.xlf
@@ -310,7 +310,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -346,7 +346,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -474,7 +474,7 @@
Voir la Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -482,7 +482,7 @@
Supprimer Tâche
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -870,7 +870,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -966,11 +966,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -986,7 +986,7 @@
Oups! Jeton de Sécurité Incorrect.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -1146,7 +1146,7 @@
Rester connecté
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -1494,7 +1494,7 @@
par an
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -1510,7 +1510,7 @@
Essayer Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -1518,7 +1518,7 @@
Utiliser un Code Promotionnel
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -2710,7 +2710,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -2722,7 +2722,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -2734,7 +2734,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -2742,7 +2742,7 @@
Dupliquer
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -2750,7 +2750,7 @@
Exporter Brouillon sous ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -3058,7 +3058,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -3250,7 +3250,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -3262,7 +3262,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -3450,7 +3450,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3702,7 +3702,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3722,7 +3722,7 @@
Voir en tant que ...
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -3730,7 +3730,7 @@
Supprimer l’Utilisateur
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -3982,7 +3982,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -4361,6 +4361,14 @@
73
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Achat
@@ -5444,7 +5452,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -6069,7 +6077,7 @@
Execute la tâche
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6461,7 +6469,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6729,7 +6737,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7167,7 +7175,7 @@
Clé API
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7175,7 +7183,7 @@
Générer la clé API du fournisseur de données Ghostfolio Premium pour les environnements auto-hébergés...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7531,7 +7539,7 @@
Générer un jeton de sécurité
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7907,7 +7915,7 @@
Offre Limitée !
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7919,7 +7927,7 @@
Obtenez supplémentaires
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8592,7 +8600,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf
index 6618d2463..e5bc9ccc6 100644
--- a/apps/client/src/locales/messages.it.xlf
+++ b/apps/client/src/locales/messages.it.xlf
@@ -255,7 +255,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -291,7 +291,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -419,7 +419,7 @@
Visualizza Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -427,7 +427,7 @@
Elimina il lavoro
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -659,7 +659,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -743,11 +743,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -763,7 +763,7 @@
Ops! Token di sicurezza errato.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -875,7 +875,7 @@
Rimani connesso
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -1211,7 +1211,7 @@
per anno
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -1227,7 +1227,7 @@
Prova Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -1235,7 +1235,7 @@
Riscatta il buono
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -2239,7 +2239,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -2251,7 +2251,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -2263,7 +2263,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -2271,7 +2271,7 @@
Clona
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -2279,7 +2279,7 @@
Esporta la bozza come ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -2855,7 +2855,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -3251,7 +3251,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -3263,7 +3263,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -3451,7 +3451,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3703,7 +3703,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3723,7 +3723,7 @@
Imita l’utente
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -3731,7 +3731,7 @@
Elimina l’utente
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -3983,7 +3983,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -4362,6 +4362,14 @@
73
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Compra
@@ -5445,7 +5453,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -6070,7 +6078,7 @@
Esegui il lavoro
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6462,7 +6470,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6730,7 +6738,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7168,7 +7176,7 @@
API Key
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7176,7 +7184,7 @@
Genera API key per Ghostfolio Premium Data Provider per ambienti self-hosted...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7532,7 +7540,7 @@
Genera Token di Sicurezza
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7908,7 +7916,7 @@
Offerta limitata!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7920,7 +7928,7 @@
Get extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8593,7 +8601,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf
index 43f22714b..5d1bec1b5 100644
--- a/apps/client/src/locales/messages.nl.xlf
+++ b/apps/client/src/locales/messages.nl.xlf
@@ -254,7 +254,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -290,7 +290,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -418,7 +418,7 @@
Bekijk Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -426,7 +426,7 @@
Taak verwijderen
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -658,7 +658,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -742,11 +742,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -762,7 +762,7 @@
Oeps! Onjuiste beveiligingstoken.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -874,7 +874,7 @@
Aangemeld blijven
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -1210,7 +1210,7 @@
per jaar
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -1226,7 +1226,7 @@
Probeer Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -1234,7 +1234,7 @@
Coupon inwisselen
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -2238,7 +2238,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -2250,7 +2250,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -2262,7 +2262,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -2270,7 +2270,7 @@
Kloon
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -2278,7 +2278,7 @@
Concept exporteren als ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -2854,7 +2854,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -3250,7 +3250,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -3262,7 +3262,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -3450,7 +3450,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3702,7 +3702,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3722,7 +3722,7 @@
Gebruiker immiteren
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -3730,7 +3730,7 @@
Gebruiker verwijderen
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -3982,7 +3982,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -4361,6 +4361,14 @@
73
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Koop
@@ -5444,7 +5452,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -6069,7 +6077,7 @@
Opdracht Uitvoeren
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6461,7 +6469,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6729,7 +6737,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7167,7 +7175,7 @@
API-sleutel
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7175,7 +7183,7 @@
Genereer een Ghostfolio Premium Gegevensleverancier API-sleutel voor zelfgehoste omgevingen...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7531,7 +7539,7 @@
Beveiligingstoken Aanmaken
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7907,7 +7915,7 @@
Beperkt aanbod!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7919,7 +7927,7 @@
Krijg extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8592,7 +8600,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf
index 1ae972c8e..6e167a355 100644
--- a/apps/client/src/locales/messages.pl.xlf
+++ b/apps/client/src/locales/messages.pl.xlf
@@ -531,7 +531,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -567,7 +567,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -691,7 +691,7 @@
Wyświetl Stos Wywołań
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -699,7 +699,7 @@
Usuń Zadanie
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -1331,7 +1331,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -1359,7 +1359,7 @@
Wciel się w Użytkownika
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -1367,7 +1367,7 @@
Usuń Użytkownika
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -1459,11 +1459,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -1479,7 +1479,7 @@
Ups! Nieprawidłowy token bezpieczeństwa.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -1739,7 +1739,7 @@
Pozostań zalogowany
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -2059,7 +2059,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -2187,7 +2187,7 @@
rocznie
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -2203,7 +2203,7 @@
Wypróbuj Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -2211,7 +2211,7 @@
Wykorzystaj kupon
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -3703,7 +3703,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -3719,7 +3719,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -4339,7 +4339,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -4756,7 +4756,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -4820,7 +4820,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -4832,7 +4832,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -4848,7 +4848,7 @@
Sklonuj
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -4856,7 +4856,7 @@
Eksportuj Wersję Roboczą jako ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -5296,7 +5296,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -5311,6 +5311,14 @@
33
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Zakup
@@ -5420,7 +5428,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -5568,7 +5576,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -6069,7 +6077,7 @@
Wykonaj Zadanie
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6461,7 +6469,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6729,7 +6737,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7167,7 +7175,7 @@
Klucz API
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7175,7 +7183,7 @@
Generowanie klucza API Ghostfolio Premium Data Provider dla środowisk hostowanych samodzielnie...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7531,7 +7539,7 @@
Generowanie Tokena Zabezpieczającego
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7907,7 +7915,7 @@
Oferta ograniczona czasowo!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7919,7 +7927,7 @@
Uzyskaj dodatkowo
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8592,7 +8600,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf
index 9c928731a..8b63acdf6 100644
--- a/apps/client/src/locales/messages.pt.xlf
+++ b/apps/client/src/locales/messages.pt.xlf
@@ -310,7 +310,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -346,7 +346,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -474,7 +474,7 @@
Ver Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -482,7 +482,7 @@
Apagar Tarefa
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -738,7 +738,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -834,11 +834,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -854,7 +854,7 @@
Oops! Token de Segurança Incorreto.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -1022,7 +1022,7 @@
Manter sessão iniciada
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -1482,7 +1482,7 @@
por ano
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -1498,7 +1498,7 @@
Experimentar Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -1506,7 +1506,7 @@
Resgatar Cupão
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -2610,7 +2610,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -2622,7 +2622,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -2634,7 +2634,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -2642,7 +2642,7 @@
Clonar
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -2650,7 +2650,7 @@
Exportar Rascunho como ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -2902,7 +2902,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -3250,7 +3250,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -3262,7 +3262,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -3450,7 +3450,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3702,7 +3702,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3722,7 +3722,7 @@
Personificar Utilizador
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -3730,7 +3730,7 @@
Apagar Utilizador
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -3982,7 +3982,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -4361,6 +4361,14 @@
73
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Comprar
@@ -5444,7 +5452,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -6069,7 +6077,7 @@
Executar trabalho
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6461,7 +6469,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6729,7 +6737,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7167,7 +7175,7 @@
Chave de API
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7175,7 +7183,7 @@
Gerar chave de API do Provedor de Dados do Ghostfolio Premium para ambientes auto-hospedados...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7531,7 +7539,7 @@
Generate Security Token
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7907,7 +7915,7 @@
Limited Offer!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7919,7 +7927,7 @@
Get extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8592,7 +8600,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf
index 810f91cfa..bc687b3d4 100644
--- a/apps/client/src/locales/messages.tr.xlf
+++ b/apps/client/src/locales/messages.tr.xlf
@@ -491,7 +491,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -527,7 +527,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -655,7 +655,7 @@
Hata İzini Görüntüle
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -663,7 +663,7 @@
İşleri Sil
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -1199,7 +1199,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -1227,7 +1227,7 @@
Kullanıcıyı Taklit Et
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -1235,7 +1235,7 @@
Kullanıcıyı Sil
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -1319,11 +1319,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -1339,7 +1339,7 @@
Hay Allah! Güvenlik anahtarı yanlış.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -1599,7 +1599,7 @@
Oturumu açık tut
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -1919,7 +1919,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -3183,7 +3183,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -3199,7 +3199,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -3827,7 +3827,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -4324,7 +4324,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -4332,7 +4332,7 @@
yıllık
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -4348,7 +4348,7 @@
Premium’u Deneyin
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -4356,7 +4356,7 @@
Kupon Kullan
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -4540,7 +4540,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -4552,7 +4552,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -4568,7 +4568,7 @@
Klonla
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -4576,7 +4576,7 @@
Taslakları ICS Olarak Dışa Aktar
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -4988,7 +4988,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -5003,6 +5003,14 @@
33
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Al
@@ -5096,7 +5104,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -5444,7 +5452,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -6069,7 +6077,7 @@
İşlemi Yürüt
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6461,7 +6469,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6729,7 +6737,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7167,7 +7175,7 @@
API Anahtarı
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7175,7 +7183,7 @@
Kendi barındırılan ortamlar için Ghostfolio Premium Veri Sağlayıcı API anahtarı oluştur...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7531,7 +7539,7 @@
Güvenlik belirteci oluştur
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7907,7 +7915,7 @@
Sınırlı Teklif!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7919,7 +7927,7 @@
Get extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8592,7 +8600,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf
index 24bc12dd1..166b79a13 100644
--- a/apps/client/src/locales/messages.uk.xlf
+++ b/apps/client/src/locales/messages.uk.xlf
@@ -38,11 +38,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -623,7 +623,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -659,7 +659,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -819,7 +819,7 @@
Переглянути трасування
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -827,7 +827,7 @@
Виконати завдання
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -835,7 +835,7 @@
Видалити завдання
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -1427,7 +1427,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -1567,7 +1567,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -1647,7 +1647,7 @@
Видавати себе за користувача
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -1655,7 +1655,7 @@
Видалити користувача
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -1739,7 +1739,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -1755,7 +1755,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -1779,7 +1779,7 @@
Упс! Неправильний Секретний Токен.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -2135,7 +2135,7 @@
Залишатися в системі
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -2759,7 +2759,7 @@
на рік
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -2775,7 +2775,7 @@
Спробуйте Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -2783,7 +2783,7 @@
Обміняти купон
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -4376,7 +4376,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -4392,7 +4392,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -5947,7 +5947,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -6019,7 +6019,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -6031,7 +6031,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -6055,7 +6055,7 @@
Клонувати
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -6063,7 +6063,7 @@
Експортувати чернетку як ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -6763,7 +6763,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -6783,7 +6783,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -6794,6 +6794,14 @@
34
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
Купити
@@ -6911,7 +6919,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -7063,7 +7071,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -7223,7 +7231,7 @@
Ключ API
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7231,7 +7239,7 @@
Згенерувати ключ API для постачальника даних Ghostfolio Premium для self-hosted середовищ...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7531,7 +7539,7 @@
Generate Security Token
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7907,7 +7915,7 @@
Limited Offer!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7919,7 +7927,7 @@
Get extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8592,7 +8600,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf
index 800f238ef..92d1c9639 100644
--- a/apps/client/src/locales/messages.xlf
+++ b/apps/client/src/locales/messages.xlf
@@ -509,7 +509,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -544,7 +544,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -656,14 +656,14 @@
View Stacktrace
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
Delete Job
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -1254,7 +1254,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -1279,14 +1279,14 @@
Impersonate User
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
Delete User
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -1370,11 +1370,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -1389,7 +1389,7 @@
Oops! Incorrect Security Token.
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -1627,7 +1627,7 @@
Stay signed in
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -1919,7 +1919,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -2034,7 +2034,7 @@
per year
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -2049,14 +2049,14 @@
Try Premium
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
Redeem Coupon
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -3417,7 +3417,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -3432,7 +3432,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -3989,7 +3989,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -4378,7 +4378,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -4442,7 +4442,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -4453,7 +4453,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -4467,14 +4467,14 @@
Clone
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
Export Draft as ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -4888,7 +4888,7 @@
View Details
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -4902,6 +4902,13 @@
33
+
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
@@ -5000,7 +5007,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -5130,7 +5137,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -5541,7 +5548,7 @@
Execute Job
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -5841,7 +5848,7 @@
View Holding
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6058,7 +6065,7 @@
Role
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -6488,14 +6495,14 @@
Generate Ghostfolio Premium Data Provider API key for self-hosted environments...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
API Key
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -6854,7 +6861,7 @@
Generate Security Token
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7168,7 +7175,7 @@
Limited Offer!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7179,7 +7186,7 @@
Get extra
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7772,7 +7779,7 @@
Registration Date
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf
index 5c2508f8d..6a9abc040 100644
--- a/apps/client/src/locales/messages.zh.xlf
+++ b/apps/client/src/locales/messages.zh.xlf
@@ -540,7 +540,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 453
+ 457
@@ -576,7 +576,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 480
+ 484
libs/ui/src/lib/benchmark/benchmark.component.html
@@ -700,7 +700,7 @@
查看堆栈跟踪
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 215
+ 216
@@ -708,7 +708,7 @@
删除任务
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 222
+ 224
@@ -1340,7 +1340,7 @@
No auto-renewal on membership.
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 73
+ 74
@@ -1368,7 +1368,7 @@
模拟用户
apps/client/src/app/components/admin-users/admin-users.html
- 232
+ 234
@@ -1376,7 +1376,7 @@
删除用户
apps/client/src/app/components/admin-users/admin-users.html
- 253
+ 255
@@ -1468,11 +1468,11 @@
apps/client/src/app/components/header/header.component.ts
- 290
+ 297
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 68
+ 79
libs/common/src/lib/routes/routes.ts
@@ -1488,7 +1488,7 @@
哎呀!安全令牌不正确。
apps/client/src/app/components/header/header.component.ts
- 305
+ 312
apps/client/src/app/components/user-account-access/user-account-access.component.ts
@@ -1748,7 +1748,7 @@
保持登录
apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
- 55
+ 66
@@ -2068,7 +2068,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 20
+ 21
apps/client/src/app/pages/pricing/pricing-page.html
@@ -2196,7 +2196,7 @@
每年
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 32
+ 33
apps/client/src/app/pages/portfolio/fire/fire-page.html
@@ -2212,7 +2212,7 @@
尝试高级版
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 52
+ 53
@@ -2220,7 +2220,7 @@
兑换优惠券
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 66
+ 67
@@ -3712,7 +3712,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 382
+ 383
@@ -3728,7 +3728,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 394
+ 397
@@ -4348,7 +4348,7 @@
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 18
+ 19
apps/client/src/app/pages/pricing/pricing-page.html
@@ -4777,7 +4777,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 37
+ 40
@@ -4849,7 +4849,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 407
+ 411
@@ -4861,7 +4861,7 @@
libs/ui/src/lib/activities-table/activities-table.component.html
- 420
+ 424
@@ -4877,7 +4877,7 @@
克隆
libs/ui/src/lib/activities-table/activities-table.component.html
- 459
+ 463
@@ -4885,7 +4885,7 @@
将汇票导出为 ICS
libs/ui/src/lib/activities-table/activities-table.component.html
- 469
+ 473
@@ -5341,7 +5341,7 @@
查看详细信息
apps/client/src/app/components/admin-users/admin-users.html
- 225
+ 226
libs/ui/src/lib/accounts-table/accounts-table.component.html
@@ -5356,6 +5356,14 @@
33
+
+ Sign in with OpenID Connect
+ Sign in with OpenID Connect
+
+ apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html
+ 55
+
+
Buy
买入
@@ -5465,7 +5473,7 @@
Authentication
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 32
+ 35
@@ -5613,7 +5621,7 @@
libs/ui/src/lib/membership-card/membership-card.component.html
- 42
+ 45
@@ -6070,7 +6078,7 @@
执行作业
apps/client/src/app/components/admin-jobs/admin-jobs.html
- 218
+ 220
@@ -6462,7 +6470,7 @@
查看持仓
libs/ui/src/lib/activities-table/activities-table.component.html
- 446
+ 450
@@ -6730,7 +6738,7 @@
角色
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 36
+ 14
@@ -7168,7 +7176,7 @@
API 密钥
libs/ui/src/lib/membership-card/membership-card.component.html
- 18
+ 21
@@ -7176,7 +7184,7 @@
为自托管环境生成 Ghostfolio Premium 数据提供者 API 密钥...
libs/ui/src/lib/membership-card/membership-card.component.html
- 26
+ 29
@@ -7532,7 +7540,7 @@
生成安全令牌
apps/client/src/app/components/admin-users/admin-users.html
- 242
+ 244
@@ -7908,7 +7916,7 @@
限时优惠!
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 40
+ 41
apps/client/src/app/pages/pricing/pricing-page.html
@@ -7920,7 +7928,7 @@
获取额外
apps/client/src/app/components/user-account-membership/user-account-membership.html
- 43
+ 44
apps/client/src/app/pages/pricing/pricing-page.html
@@ -8593,7 +8601,7 @@
注册日期
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.html
- 20
+ 26
diff --git a/apps/client/src/main.ts b/apps/client/src/main.ts
index fc8a9ef7a..2a22b7b7b 100644
--- a/apps/client/src/main.ts
+++ b/apps/client/src/main.ts
@@ -1,6 +1,7 @@
import { locale } from '@ghostfolio/common/config';
import { InfoResponse } from '@ghostfolio/common/interfaces';
import { filterGlobalPermissions } from '@ghostfolio/common/permissions';
+import { GfNotificationModule } from '@ghostfolio/ui/notifications';
import { Platform } from '@angular/cdk/platform';
import {
@@ -33,7 +34,6 @@ import { authInterceptorProviders } from './app/core/auth.interceptor';
import { httpResponseInterceptorProviders } from './app/core/http-response.interceptor';
import { LanguageService } from './app/core/language.service';
import { ModulePreloadService } from './app/core/module-preload.service';
-import { GfNotificationModule } from './app/core/notification/notification.module';
import { PageTitleStrategy } from './app/services/page-title.strategy';
import { environment } from './environments/environment';
diff --git a/libs/ui/src/lib/account-balances/account-balances.component.ts b/libs/ui/src/lib/account-balances/account-balances.component.ts
index 5fe47347e..608ee1c75 100644
--- a/libs/ui/src/lib/account-balances/account-balances.component.ts
+++ b/libs/ui/src/lib/account-balances/account-balances.component.ts
@@ -1,10 +1,9 @@
-/* eslint-disable @nx/enforce-module-boundaries */
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { CreateAccountBalanceDto } from '@ghostfolio/common/dtos';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { DATE_FORMAT, getLocale } from '@ghostfolio/common/helper';
import { AccountBalancesResponse } from '@ghostfolio/common/interfaces';
import { validateObjectForForm } from '@ghostfolio/common/utils';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import {
CUSTOM_ELEMENTS_SCHEMA,
diff --git a/libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts b/libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts
index aeda82fd9..53c59a95f 100644
--- a/libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts
+++ b/libs/ui/src/lib/accounts-table/accounts-table.component.stories.ts
@@ -7,10 +7,10 @@ import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { moduleMetadata } from '@storybook/angular';
import type { Meta, StoryObj } from '@storybook/angular';
-import { NotificationService } from 'apps/client/src/app/core/notification/notification.service';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { GfEntityLogoComponent } from '../entity-logo';
+import { NotificationService } from '../notifications';
import { GfValueComponent } from '../value';
import { GfAccountsTableComponent } from './accounts-table.component';
diff --git a/libs/ui/src/lib/accounts-table/accounts-table.component.ts b/libs/ui/src/lib/accounts-table/accounts-table.component.ts
index 898231168..699de6d7e 100644
--- a/libs/ui/src/lib/accounts-table/accounts-table.component.ts
+++ b/libs/ui/src/lib/accounts-table/accounts-table.component.ts
@@ -1,8 +1,7 @@
-/* eslint-disable @nx/enforce-module-boundaries */
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { getLocale } from '@ghostfolio/common/helper';
import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { GfValueComponent } from '@ghostfolio/ui/value';
import { CommonModule } from '@angular/common';
diff --git a/libs/ui/src/lib/activities-table/activities-table.component.stories.ts b/libs/ui/src/lib/activities-table/activities-table.component.stories.ts
index a0ad690d7..e7a2ba819 100644
--- a/libs/ui/src/lib/activities-table/activities-table.component.stories.ts
+++ b/libs/ui/src/lib/activities-table/activities-table.component.stories.ts
@@ -13,12 +13,12 @@ import { RouterModule } from '@angular/router';
import { IonIcon } from '@ionic/angular/standalone';
import { moduleMetadata } from '@storybook/angular';
import type { Meta, StoryObj } from '@storybook/angular';
-import { NotificationService } from 'apps/client/src/app/core/notification/notification.service';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
import { GfActivityTypeComponent } from '../activity-type/activity-type.component';
import { GfEntityLogoComponent } from '../entity-logo';
import { GfNoTransactionsInfoComponent } from '../no-transactions-info/no-transactions-info.component';
+import { NotificationService } from '../notifications';
import { GfValueComponent } from '../value';
import { GfActivitiesTableComponent } from './activities-table.component';
diff --git a/libs/ui/src/lib/activities-table/activities-table.component.ts b/libs/ui/src/lib/activities-table/activities-table.component.ts
index 476fca5fb..e53f37872 100644
--- a/libs/ui/src/lib/activities-table/activities-table.component.ts
+++ b/libs/ui/src/lib/activities-table/activities-table.component.ts
@@ -1,5 +1,3 @@
-/* eslint-disable @nx/enforce-module-boundaries */
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import {
DEFAULT_PAGE_SIZE,
TAG_ID_EXCLUDE_FROM_ANALYSIS
@@ -12,6 +10,7 @@ import {
} from '@ghostfolio/common/interfaces';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { OrderWithAccount } from '@ghostfolio/common/types';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { SelectionModel } from '@angular/cdk/collections';
import { CommonModule } from '@angular/common';
diff --git a/libs/ui/src/lib/benchmark/benchmark.component.ts b/libs/ui/src/lib/benchmark/benchmark.component.ts
index 5793300c1..fe53240ed 100644
--- a/libs/ui/src/lib/benchmark/benchmark.component.ts
+++ b/libs/ui/src/lib/benchmark/benchmark.component.ts
@@ -1,5 +1,3 @@
-/* eslint-disable @nx/enforce-module-boundaries */
-import { NotificationService } from '@ghostfolio/client/core/notification/notification.service';
import { ConfirmationDialogType } from '@ghostfolio/common/enums';
import { getLocale, resolveMarketCondition } from '@ghostfolio/common/helper';
import {
@@ -7,6 +5,7 @@ import {
Benchmark,
User
} from '@ghostfolio/common/interfaces';
+import { NotificationService } from '@ghostfolio/ui/notifications';
import { CommonModule } from '@angular/common';
import {
diff --git a/apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts b/libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts
similarity index 100%
rename from apps/client/src/app/core/notification/alert-dialog/alert-dialog.component.ts
rename to libs/ui/src/lib/notifications/alert-dialog/alert-dialog.component.ts
diff --git a/apps/client/src/app/core/notification/alert-dialog/alert-dialog.html b/libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html
similarity index 100%
rename from apps/client/src/app/core/notification/alert-dialog/alert-dialog.html
rename to libs/ui/src/lib/notifications/alert-dialog/alert-dialog.html
diff --git a/apps/client/src/app/core/notification/alert-dialog/alert-dialog.scss b/libs/ui/src/lib/notifications/alert-dialog/alert-dialog.scss
similarity index 100%
rename from apps/client/src/app/core/notification/alert-dialog/alert-dialog.scss
rename to libs/ui/src/lib/notifications/alert-dialog/alert-dialog.scss
diff --git a/apps/client/src/app/core/notification/alert-dialog/interfaces/interfaces.ts b/libs/ui/src/lib/notifications/alert-dialog/interfaces/interfaces.ts
similarity index 100%
rename from apps/client/src/app/core/notification/alert-dialog/interfaces/interfaces.ts
rename to libs/ui/src/lib/notifications/alert-dialog/interfaces/interfaces.ts
diff --git a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts b/libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.component.ts
similarity index 100%
rename from apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.component.ts
rename to libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.component.ts
diff --git a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.html b/libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.html
similarity index 100%
rename from apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.html
rename to libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.html
diff --git a/apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.scss b/libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.scss
similarity index 100%
rename from apps/client/src/app/core/notification/confirmation-dialog/confirmation-dialog.scss
rename to libs/ui/src/lib/notifications/confirmation-dialog/confirmation-dialog.scss
diff --git a/apps/client/src/app/core/notification/confirmation-dialog/interfaces/interfaces.ts b/libs/ui/src/lib/notifications/confirmation-dialog/interfaces/interfaces.ts
similarity index 100%
rename from apps/client/src/app/core/notification/confirmation-dialog/interfaces/interfaces.ts
rename to libs/ui/src/lib/notifications/confirmation-dialog/interfaces/interfaces.ts
diff --git a/libs/ui/src/lib/notifications/index.ts b/libs/ui/src/lib/notifications/index.ts
new file mode 100644
index 000000000..864083b16
--- /dev/null
+++ b/libs/ui/src/lib/notifications/index.ts
@@ -0,0 +1,3 @@
+export * from './interfaces/interfaces';
+export * from './notification.module';
+export * from './notification.service';
diff --git a/apps/client/src/app/core/notification/interfaces/interfaces.ts b/libs/ui/src/lib/notifications/interfaces/interfaces.ts
similarity index 100%
rename from apps/client/src/app/core/notification/interfaces/interfaces.ts
rename to libs/ui/src/lib/notifications/interfaces/interfaces.ts
diff --git a/apps/client/src/app/core/notification/notification.module.ts b/libs/ui/src/lib/notifications/notification.module.ts
similarity index 100%
rename from apps/client/src/app/core/notification/notification.module.ts
rename to libs/ui/src/lib/notifications/notification.module.ts
diff --git a/apps/client/src/app/core/notification/notification.service.ts b/libs/ui/src/lib/notifications/notification.service.ts
similarity index 100%
rename from apps/client/src/app/core/notification/notification.service.ts
rename to libs/ui/src/lib/notifications/notification.service.ts
diff --git a/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts b/libs/ui/src/lib/notifications/prompt-dialog/prompt-dialog.component.ts
similarity index 100%
rename from apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.component.ts
rename to libs/ui/src/lib/notifications/prompt-dialog/prompt-dialog.component.ts
diff --git a/apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.html b/libs/ui/src/lib/notifications/prompt-dialog/prompt-dialog.html
similarity index 100%
rename from apps/client/src/app/core/notification/prompt-dialog/prompt-dialog.html
rename to libs/ui/src/lib/notifications/prompt-dialog/prompt-dialog.html